Documente Academic
Documente Profesional
Documente Cultură
Reading: Book Chapter 2 Data and Computer Communications, 8th edition By William Stallings
1
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
Section 1
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
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
Semantics
Includes control information for coordination and error handling
Timing
Includes speed matching and sequencing
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
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
to to to to
identify the two computers? convert the data into bit stream? convert the bit stream into signals? detect and handle data loss and data error?
7
(Cont.)
Most of the network apps share some common modules
Application A Application B Application C
Module B
Module C
Module T
Module I Module N Module P
Module T
Module I Module N Module P
8
Common modules
Module P
(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, its more flexible to implement a stack of protocols!
Reduce the design and development workload significantly!
9
Vertical Stack
Application A Application B Application C Application developers
Module A
Module B
Module C
Operating System
Hardware
Module W
10
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
11
A Two-layer example
Higher A Layer
How to communicate?
messages in Spanish
messages in English D
12
Section 2
13
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
14
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
15
Example
World Wide Web
Replies on the HTTP protocol
Web browser Web server
Layer 5 Layer 4
HTTP TCP IP
IEEE 802.11 IEEE 802.11g
HTTP TCP IP
IEEE 802.3
IEEE 802.3 1000BASE-SX
16
Layer 3
Layer 2 Layer 1
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 todays Operating Systems all provide such reliable service.
17
Physical Layer
The job of physical layer is to send individual bits from one node to a directly connected node. 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.
18
19
The Internet layer routes a datagram through a series of packet switches called routers between source and destination.
20
Postal System
21
22
Every host needs to have a unique IP address E.g., 158.182.6.41 is the IP address of our cslinux1 server. Its not possible to connect any two hosts directly, therefore we need some switches to help. These switches are called IP Routers.
23
IP Operation
24
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
25
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.
26
18.x.x.x B
Next Hop B C D E
18.x.x.x 21.x.x.x
145.26.x.x 212.134.7.x
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.
Todays 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!
28
Provides reliable data transmission service Includes source and destination port numbers
Identify respective applications A connection refers to a pair of ports
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.
30
Demultiplexing:
UDP accepts incoming datagrams from the IP module, and demultiplexes based on the UDP destination port.
31
UDP Applications
UDPs 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
TCP
RFC 793 TCP provides reliable communication between pairs of processes (by using positive acknowledgement with retransmission). TCP is connection-oriented stream service.
No data loss, no error, no out-of-order (from the applications point of view). TCP uses the idea of retransmission to recover packet loss. From the hosts point of view, two applications need to setup a TCP connection (like virtual circuit) before they use TCP to exchange data. http://www.ietf.org/rfc/rfc793.txt
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.
But from the networks point of view, they are still processing normal IP packets. Routers dont distinguish between UDP packets and TCP packets.
33
TCP/IP Concepts
34
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.
35
TCP
TCP is the most complicated protocol in Internet. It is evolving all the time. More than 90% of todays 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
36
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]
38
Addressing Issue
Address is used to identify an object
It is common to use several addresses together to identify an object
39
40
41
Section 3
42
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.
44
OSI Layers
45
46
Transport Layer
Exchange of data between end systems Error free In sequence No losses No duplicates Quality of service
48
49
Presentation Layer
Data formats and coding Data compression Encryption
Application Layer
Means for applications to access OSI environment
50
OSI v TCP/IP
51
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 sevenlayer Open Systems Interconnection (OSI) model.
52