Está en la página 1de 52

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
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

The Need for a Protocol Architecture

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
4

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

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?

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
How to
How to
How to
error?

identify the two computers?


convert the data into bit stream?
convert the bit stream into signals?
detect and handle data loss and data

The network is not perfect!

Etc.

(Cont.)
Most of the network apps share some
common modules
Application A

Application B

Application C

Module A

Module B

Module C

Module T

Module T

Module T

Module I

Module I

Module I

Module N

Module N

Module N

Module P

Module P

Module P

Common
modules

(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!

Vertical Stack
Application A

Module A

Application B

Module B

Application C

Module C

Module T

Application developers

Operating System

Module I
Module N
Module P

can be replaced by
other modules

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 Chinese
Lower
Layer

messages
in Spanish

messages in English
C

Lower layer provides services to the next higher layer.

12

Section 2

TCP/IP Protocol Architecture

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

The stack of protocols is called Protocol Stack


Or Protocol Architecture

14

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!

15

Example
World Wide Web
Replies on the HTTP protocol
Web browser

Web server

Layer 5

HTTP

HTTP

Layer 4

TCP

TCP

Layer 3

IP

IP

Layer 2

IEEE 802.11

IEEE 802.3

Layer 1

IEEE
802.11g

IEEE 802.3
1000BASE-SX

16

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.

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.

17

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 twistedpair 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

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

Multiple access
Point-to-point

19

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.

20

Postal System

To: Mr. Jacky Chan


No. 123, XX Road,
XXX, USA

21

Inside Postal System


Central Post Office (New York)

The delivery of
your package
depends on the
postal address.

Central Post Office (Beijing)

Central Post Office (Hong Kong)

Local Post Office (Kowloon Tong)

Local Post Office (Tseung Kwan O)

22

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

Its 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., Bs IP address) contained in the IP packet
R2 sends the packet to B

23

IP Operation

LLC and MAC


are sub-layers of
Layer 2.

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.

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.

26

Example of a Routing Table


21.x.x.x
F
18.x.x.x
B

C
A

145.26.x.x
G

Routing table at router A:


Network ID

Next Hop

18.x.x.x

21.x.x.x

145.26.x.x

212.134.7.x E

212.134.7.x
27

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!

How does Transport layer send out the message?


Divide the message into packets
Use the Internet Layer to send out each packet

28

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.

29

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

UDP Ports:
multiplexing and demultiplexing
Todays operating systems support multiprocessing, 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.

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

Disadvantage: UDP is unreliable


Applications using UDP:
Streaming multimedia
Internet Telephony
Network management
Routing protocols
DNS

32

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 applications 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 networks point of view, they are still processing normal IP
packets. Routers dont 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.

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]

P2P file sharing


Lots of different protocols, like BitTorrent, eDonkey
You can design and implement your own!

37

Some Protocols in TCP/IP Suite

38

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

39

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.

40

Protocol Data Units (PDUs)


in TCP/IP Architecture

41

Section 3

The OSI Model

42

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.
43

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.

44

OSI Layers

Seven layers have been


defined in OSI architecture.

45

The OSI Environment

46

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

47

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

48

Network layer: use of a Relay

49

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

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