Data Communication and Networking

52
1 Data Communications and Networking Chapter 2 Protocol Architecture: TCP/IP model and OSI Model Reading: Book Chapter 2 Data and Computer Communications, 8th edition By William Stallings

Transcript of Data Communication and Networking

Page 1: Data Communication and Networking

1

Data Communications and Networking

Chapter 2

Protocol Architecture: TCP/IP model and OSI Model

Reading:Book Chapter 2Data and Computer Communications, 8th editionBy William Stallings

Page 2: Data Communication and Networking

2

Outline• Section 1: The need for a protocol

architecture• Section 2: TCP/IP protocol architecture• Section 3: OSI model

• Learning outcomes:—Describe the network protocol architectures

and reference models

Page 3: Data Communication and Networking

3

Section 1

The Need for a Protocol Architecture

Page 4: Data Communication and Networking

4

What is a protocol?• From dictionary:

—A general definition: the accepted or established code of procedure or behavior in any group, organization, or situation

—For computing:set of rules governing the exchange or transmission of data electronically between devices

Page 5: Data Communication and Networking

5

Protocol• To perform a task, the involved parties usually

follow a common protocol designed for this task—The protocol is just a set of rules or conventions —Different tasks use different protocols

• Some key features of a protocol —Syntax

• Concerns the format of the data blocks—Semantics

• Includes control information for coordination and error handling

—Timing• Includes speed matching and sequencing

Page 6: Data Communication and Networking

6

Examples of Protocol• Two protocols will be studied in your first lab

— HTTP is the protocol used for browsing website• Web browser <----> Web server• http://www.youtube.com/watch?v=1IQFjTnDozo&feature=related

— SMTP is the protocol used for sending emails• Email client software < ---- > SMTP server

• A new application usually uses a new protocol, e.g. BitTorrent protocol: http://en.wikipedia.org/wiki/BitTorrent_(protocol)

• TCP is a protocol used by Internet hosts for reliable data transmission— Recall that Internet packets could be lost inside the Internet

• IEEE 802.11 is the protocol used in WiFi— How to coordinate a number of wireless devices within a WiFi

network?

Page 7: Data Communication and Networking

7

Need For Protocol Architecture• There are lots of network applications• Building each application from scratch is

very time-consuming and challenging—What commands should be supported?—How to respond to each command?—How to identify the two peer applications?

• Each computer may run multiple applications!—How to identify the two computers?—How to convert the data into bit stream?—How to convert the bit stream into signals?—How to detect and handle data loss and data

error?• The network is not perfect!

—Etc.

Page 8: Data Communication and Networking

8

(Cont.)• Most of the network apps share some

common modulesApplication A

Module A

Module T

Module I

Module N

Module P

Application B

Module B

Module T

Module I

Module N

Module P

Application C

Module C

Module T

Module I

Module N

Module P

Common modules

Page 9: Data Communication and Networking

9

(Cont.)• A complex task is broken into subtasks: modular

design—Each subtask is implemented separately as a layer,

arranged in a vertical stack• Each layer performs a related subset of the functions

required to communicate with another system. —It relies on the next lower layer to perform more primitive

functions and to conceal the details of those functions. —It provides services to the next higher layer.—Layers should be defined so that changes in one layer do

not require changes in other layers.• So, instead of using a single complex protocol, it’s

more flexible to implement a stack of protocols!—Reduce the design and development workload significantly!

Page 10: Data Communication and Networking

10

Vertical StackApplication A

Module A

Module T

Module I

Module N

Module P

Application B

Module B Module C

Application C

Module Wcan be replaced by other modules

Application developers

Operating System

Hardware

Page 11: Data Communication and Networking

11

Example• E.g., A can only speak Chinese, B can only

speak Spanish, how can A communicate with B?—A finds a translator C, who can speak Chinese

and English—B finds a translator D, who can speak Spanish

and English• Two layers:

—Higher layer: A and B—Lower layer: C and D

Page 12: Data Communication and Networking

12

A Two-layer example

messages in Chinese

messages in English

messages in Spanish

How to communicate?A

C

B

D

Higher Layer

Lower Layer

Lower layer provides services to the next higher layer.

Page 13: Data Communication and Networking

13

Section 2

TCP/IP Protocol Architecture

Page 14: Data Communication and Networking

14

Protocol Architecture• Tasks of communications are broken up into

modules—Each module (or layer) can have its own protocol

• In very general terms, communications can be said to involve three components: applications, computers, and networks.

• For example, file transfer could use three modules (or layers)—File transfer application—Communications service module—Network access module

• The stack of protocols is called “Protocol Stack”—Or Protocol Architecture

Page 15: Data Communication and Networking

15

TCP/IP Protocol Architecture• Developed by the US Defense Advanced Research Project

Agency (DARPA) for its packet switched network (ARPANET)• Used by the global Internet• It consists of a large collection of protocols that have been

issued as Internet standard by the Internet Architecture Board (IAB).— Check http://www.ietf.org/rfc/rfc2026.txt

• The TCP/IP protocol architecture organizes the communication task into five relatively independent layers:— Layer 5: Application layer— Layer 4: Transport layer, or Host to host (TCP belongs to

this layer)— Layer 3: Internet layer, or Network layer (IP belongs to this

layer)— Layer 2: Network access layer, or Link layer— Layer 1: Physical layer

• Remark: Each layer can have lots of different protocols!

Page 16: Data Communication and Networking

16

Example• World Wide Web

—Replies on the HTTP protocolWeb browser

HTTP

TCP

IP

IEEE 802.11

IEEE 802.11g

Web server

HTTP

TCP

IP

IEEE 802.3

IEEE 802.3 1000BASE-SXLayer 1

Layer 2

Layer 3

Layer 4

Layer 5

Page 17: Data Communication and Networking

17

Benefit of layering• The most challenging problem: how to

provide a reliable data transfer service on top of an unreliable data network?—This problem is so important that today’s

Operating Systems all provide such reliable service.

• The burden of network application developers has been reduced significantly!—Hence the application developers can simply

focus on the application layer issues.—We can easily develop thousands of network

applications.

Page 18: Data Communication and Networking

18

Physical Layer• The job of physical layer is to send individual bits

from one node to a directly connected node.—Address the communications issue

• The physical layer also covers the physical interface between a data transmission device (e.g., computer) and a transmission medium or network.

• It is concerned with specifying characteristics of the transmission medium, the nature of the signals, the data rate, and related matters.

• Examples:—Ethernet has many physical layer protocols: one for

twisted-pair copper wire, another one for coaxial cable, some others for optical fiber, and so on.

—IEEE 802.11b, 802.11a, 802.11g are different physical protocols for Wireless LAN, each with different transmission capabilities.

Page 19: Data Communication and Networking

19

Network Access Layer• It is also called “Link layer”.• It solves the problem of exchanging data between two or

more directly connected devices (computers, switches, routers, etc). The link layer packets are usually referred to as frames.— Point-to-point communications— Multiple access communications

• The services provided by network access layer depend on the specific link-layer protocol that is employed over the link.

• Issues to be addressed:— Reliability (error detection and error correction)— Priority (some data may be more important than others)— Addressing (for multiple access)

• Examples of link layer protocols:— Point-to-point Protocol (PPP)— Ethernet: IEEE 802.3— Wireless LAN: IEEE 802.11

Point-to-point

Multiple access

Page 20: Data Communication and Networking

20

Internet Layer (IP)• IP layer is responsible for moving network layer

packets known as datagrams from one host to another.—Main challenge: how to find a path from the source to the

destination?• Two principal components:

—IP protocol: defines the format of the datagram, and how the end systems and routers act on the datagram. [http://www.ietf.org/rfc/rfc0791.txt ]

—Routing protocols: determine the routes that datagrams take between sources and destinations. The Internet uses many routing protocols.

• The Internet layer routes a datagram through a series of packet switches called routers between source and destination.

Page 21: Data Communication and Networking

21

Postal System

To: Mr. Jacky Chan

No. 123, XX Road,

XXX, USA

Page 22: Data Communication and Networking

22

Inside Postal System

Local Post Office (Kowloon Tong)

Central Post Office (Hong Kong)

Local Post Office (Tseung Kwan O)

Central Post Office (Beijing)Central Post Office (New York)

The delivery of your package depends on the postal address.

Page 23: Data Communication and Networking

23

What are the main functions of Internet layer?• Ultimate purpose: to provide a best-effort, connectionless, or datagram

service between end systems— A host can send packets to any other host on the Internet— Best-effort: No guarantee of packet delivery. Packets could be lost, contain

errors, or out-of-order.• How to achieve the purpose?

— Addressing: • Every host needs to have a unique IP address• E.g., 158.182.6.41 is the IP address of our cslinux1 server.

— Networking• It’s not possible to connect any two hosts directly, therefore we need some “switches” to

help. These “switches” are called IP Routers.• E.g., if host A wants to send a packet to host B:

1. If A and B are in the same network:— A can send the packet to B directly, without going through a router

2. If A and B are in different networks (very likely!):— Condition: A must be connected to a router R1, B must be connected to a router R2, R1

may not be connected to R2 directly, but R1 must be able to talk to R2 (through other routers)

— A first sends the packet to R1— R1 helps to send the packet to R2 (this is a core part of the Internet layer) by checking

the destination IP address (i.e., B’s IP address) contained in the IP packet— R2 sends the packet to B

Page 24: Data Communication and Networking

24

IP Operation

LLC and MAC are sub-layers of Layer 2.

Page 25: Data Communication and Networking

25

IP Address• IPv4 address: 32-bit• Dotted decimal notation

—192.5.48.3 <--> 11000000 00000101 00110000 00000011• Each IP packet includes the source IP address and

the destination IP address—So that the routers know how to forward

• Normally, we can think of a 32-bit IP address as having an network portion and local portion, where the network portion identifies a network, and the local portion identifies a host in that network.—E.g., in IP address 158.182.7.15

• 158.182.7 identifies a network of COMP department• 15 identifies a PC in the network

Page 26: Data Communication and Networking

26

Routers• Routers are responsible for receiving and forwarding

packets through the interconnected set of networks.— Each router is connected with a number of other routers.— Routers use buffer to store the incoming packets.— Incoming packets could be dropped if the buffer is too full.

• Each router makes routing decision based on a routing table.— Where to send out each IP packet?— Solution: make a search in the routing table based on the

destination IP address• How to build up the routing table?

— Static method: input by network administrators— Automatic method: by using routing protocols

• Routers exchange routing information using a special routing protocol to build routing tables.

• We will learn the principles of routing protocols in this subject.

Page 27: Data Communication and Networking

27

Example of a Routing Table

A

B C

D E

Network ID Next Hop

18.x.x.x B

21.x.x.x C

145.26.x.x D

212.134.7.x E

Routing table at router A:

18.x.x.x

145.26.x.x

212.134.7.x

F21.x.x.x

G

Page 28: Data Communication and Networking

28

Transport Layer• How do software developers write network application

programs?— They make use of the services provided by Transport Layer,

which is normally part of the Operating System.— In fact, TCP/IP is indispensable for all the contemporary Operating

Systems (even for small devices like PDA or smart phone!).• Transport layer transports application-layer messages

between the client application and the server application.— Today’s multi-task computer can have a number of simultaneous

applications. One task of Transport layer is to differentiate the data from/to different applications.

— Another possible task of transport layer is to provide reliability.• Make the life of application developers much easier!

• How does Transport layer send out the message?— Divide the message into packets— Use the Internet Layer to send out each packet

Page 29: Data Communication and Networking

29

Overview of TCP and UDP• Two most commonly used transport protocols: TCP and UDP• TCP:Transmission Control Protocol

[http://www.ietf.org/rfc/rfc793.txt ]— connection-oriented

• Temporary logical association between entities in different systems— Provides reliable data transmission service— Includes source and destination port numbers

• Identify respective applications• A connection refers to a pair of ports

— The data are organized into TCP segments• UDP: User Datagram Protocol [ http://www.ietf.org/rfc/rfc768.txt

]— Lacks of reliability

• No guaranteed data delivery• No preservation of sequence• No protection against duplication

— With minimum overhead— Includes source and destination port

• An Internet application needs to choose either TCP or UDP.

Page 30: Data Communication and Networking

30

UDP• User Datagram Protocol

—Defined in RFC 768—http://www.ietf.org/rfc/rfc768.txt

• The UDP provides an unreliable connectionless delivery service using IP to transport messages between machines.—Because IP is unreliable—An application program the uses UDP needs to

handle the problem of reliability, including message loss, duplication, delay, out-of-order delivery, etc.

Page 31: Data Communication and Networking

31

UDP Ports: multiplexing and demultiplexing• Today’s operating systems support multi-

processing, i.e., a number of applications can run simultaneously.

• Multiplexing:—Each application program using UDP to send out data

must first negotiate with the operating system to obtain a UDP port.

—Any datagram the application program sends through the port will have that port number in its UDP packet.

• Demultiplexing:—UDP accepts incoming datagrams from the IP module,

and demultiplexes based on the UDP destination port.

Page 32: Data Communication and Networking

32

UDP Applications• UDP’s advantages

—Finer application-level control over what data is sent, and when

—No connection establishment: saves time!—No connection state—Small packet header overhead: only 8 bytes—Can support multicast

• Disadvantage: UDP is unreliable• Applications using UDP:

—Streaming multimedia—Internet Telephony—Network management—Routing protocols—DNS

Page 33: Data Communication and Networking

33

TCP• RFC 793

— http://www.ietf.org/rfc/rfc793.txt• TCP provides reliable communication between pairs of processes

(by using positive acknowledgement with retransmission).— No data loss, no error, no out-of-order (from the application’s point of

view).— TCP uses the idea of retransmission to recover packet loss.

• TCP is connection-oriented stream service.— From the hosts’ point of view, two applications need to “setup” a TCP

connection (like virtual circuit) before they use TCP to exchange data.• But from the network’s point of view, they are still processing normal IP

packets. Routers don’t distinguish between UDP packets and TCP packets.— TCP connection is full-duplex.— A TCP connection is recognized by (IPs, IPD, Ports, PortD, “TCP” )— TCP only supports point-to-point communication between TWO hosts. It

cannot support multicast or broadcast which can be supported by UDP.— Data is regarded as byte stream. The TCP must deliver exactly the

same sequence of bytes to the receiver application, though the IP packets may arrive out of order.

— The stream is unstructured. There is no record boundaries.

Page 34: Data Communication and Networking

34

TCP/IP Concepts

Page 35: Data Communication and Networking

35

TCP segment• A TCP application generates data as a

byte stream.• TCP module receives some bytes from the

byte stream, then composes a TCP segment by adding a TCP header, then sends the segment to IP module.

• The size of TCP header is at least 20 octets.—TCP header can have some options.

Page 36: Data Communication and Networking

36

TCP• TCP is the most complicated protocol in

Internet. It is evolving all the time.• More than 90% of today’s Internet traffic

are TCP. It has very wide applications.• You need to take another course to learn

the details of TCP/IP: —COMP3040: Internet & the World Wide Web

Page 37: Data Communication and Networking

37

Application Layer• Contains the logic needed to support the user applications• Usually, each type of application needs to have one or

more protocols.• E.g.

— Email applications• Sending email -- smtp: [http://www.ietf.org/rfc/rfc821.txt]• Accessing email -- pop3: [http://www.ietf.org/rfc/rfc1939.txt]

— telnet• [http://www.ietf.org/rfc/rfc854.txt]

— File transfer• FTP: File transfer protocol, [http://www.ietf.org/rfc/rfc959.txt]

— Web application• HTTP/1.0: [http://www.ietf.org/rfc/rfc1945.txt]• HTTP/1.1: [http://www.ietf.org/rfc/rfc2616.txt]

— P2P file sharing• Lots of different protocols, like BitTorrent, eDonkey• You can design and implement your own!

Page 38: Data Communication and Networking

38

Some Protocols in TCP/IP Suite

Page 39: Data Communication and Networking

39

Addressing Issue• “Address” is used to identify an object

— It is common to use several addresses together to identify an object

• Process level address: to identify a process— Port number (TCP/UDP)

• Network level address: to identify a host— IP address (IP)— Unique IP address for each end system (computer) and router.

A router has more than one IP addresses, each for a different interface.

• Link level address: to identify a network card— Physical address (MAC address)

• On Windows XP DOS prompt, type:— C:\>ipconfig /all— C:\>netstat -a

Page 40: Data Communication and Networking

40

Trace of Simple Operation• Process associated with port 1 in host A wants to

send message to port 2 in host B—Process at A hands down message to TCP module, with

instructions to send it to host B, port 2—TCP appends a TCP header, hands down to IP module to

send to host B, with instructions to send it to host B—IP appends an IP header, hands down to network access

layer (e.g. Ethernet) to send to router J, with instructions to send it to router J

—Network access layer appends link header, sends out the bits to the connected router J through the network interface

—At router J, the link header is stripped off and the IP header examined. From the IP header, router J knows that this packet is destined to host B, and actions accordingly.

Page 41: Data Communication and Networking

41

Protocol Data Units (PDUs) in TCP/IP Architecture

Page 42: Data Communication and Networking

42

Section 3

The OSI Model

Page 43: Data Communication and Networking

43

OSI Reference Model• OSI: Open Systems Interconnection• It was developed by the International

Organization for Standardization (ISO), starting from 1977.

• Seven layers later, OSI was published as ISO standard, ISO 7498, in 1984.

• A theoretical system delivered too late!• TCP/IP has become the de facto standard

for data communications.

Page 44: Data Communication and Networking

44

OSI - The Model• A layer model

—Each layer performs a related subset of the functions required to communicate with another system.

—Each layer relies on the next lower layer to perform more primitive functions and to conceal the details of those functions.

—Each layer provides services to the next higher layer.—Ideally, changes in one layer do not require changes in

other layers.• The task of ISO was to define a set of layers and

the services performed by each layer.—The partitioning should group functions logically and

should have enough layers to make each layer manageably small, but should not have so many layers that the processing overhead is burdensome.

Page 45: Data Communication and Networking

45

OSI Layers

Seven layers have been defined in OSI architecture.

Page 46: Data Communication and Networking

46

The OSI Environment

Page 47: Data Communication and Networking

47

OSI Layers (1)• Physical Layer

—Physical interface between devices• Mechanical• Electrical• Functional• Procedural

• Data Link Layer—Means of activating, maintaining and deactivating

a reliable link—Error detection and control—Higher layers may assume error free transmission

Page 48: Data Communication and Networking

48

OSI Layers (2)• Network Layer

—Transport of information—Higher layers do not need to know about underlying

technology—Not needed on direct links

• Transport Layer—Exchange of data between end systems—Error free—In sequence—No losses—No duplicates—Quality of service

Page 49: Data Communication and Networking

49

Network layer: use of a Relay

Page 50: Data Communication and Networking

50

OSI Layers (3)• Session Layer

—Control of dialogues between applications—Dialogue discipline—Grouping—Recovery

• Presentation Layer—Data formats and coding—Data compression—Encryption

• Application Layer—Means for applications to access OSI environment

Page 51: Data Communication and Networking

51

OSI v TCP/IP

Page 52: Data Communication and Networking

52

KEY POINTS• A protocol architecture is the layered structure of

hardware and software that supports the exchange of data between systems and supports distributed applications, such as electronic mail and file transfer.

• At each layer of a protocol architecture, one or more common protocols are implemented in communicating systems. Each protocol provides a set of rules for the exchange of data between systems.

• The most widely used protocol architecture is the TCP/IP protocol suite, which consists of the following layers: physical, network access, internet, transport, and application.

• Another important protocol architecture is the seven-layer Open Systems Interconnection (OSI) model.