Data and Computer
Communications
Tenth Edition
by William Stallings
Data and Computer Communications, Tenth
Edition by William Stallings, (c) Pearson
Education
CHAPTER 2
Protocol Architecture, TCP/IP, and
Internet-Based Applications
To destroy communication completely, there
must be no rules in common between
transmitter and receiver—neither of alphabet
nor of syntax.
—On Human Communication,
Colin Cherry
The Need for a Protocol
Architecture
desired destination system
the network of the identity of the 2.) The source system must
communications path or inform ascertain that the destination
activate the direct system is prepared to receive
1.) The source must either data
To transfer data
several tasks
must be
performed:
3.) The file transfer application on are different
the source system must ascertain formats used on the two systems
that the file management program or the other system if the file
on the destination system is may need to be performed by one
prepared to accept and store the 4.) A format translation function
file for this particular user
Functions of Protocol
Architecture
Breaks logic into subtask modules which
are implemented separately
Modules are arranged in a vertical stack
• Each layer in the stack performs a
subset of functions
• Relies on next lower layer for primitive
functions
• Provides services to the next higher layer
• Changes in one layer should not require
changes in other layers
Key Features of a Protocol
A protocol is a set of rules or conventions
that allow peer layers to communicate
The key features of a protocol are:
• Format of data
Syntax blocks
• Control
information for
Semantics coordination and
error handling
• Speed matching
Timing and sequencing
A Simple Protocol Architecture
Communication Layers
Concerned with the
exchange of data between a
Network access layer
computer and the network to
which it is attached
Communication tasks are Collects mechanisms in a
organized into three relatively Transport layer common layer shared by all
independent layers: applications
Contains logic to support
Application layer
applications
Applications
1 2
() ()
ol Transport
protoc
tion
lica
App
l Network access
toco
rt pro
nsp o
Applications Tra
Computer A
1 2 3 4
() ()()()
Transport
Network
accesss protocol Communications Port, or
Network access network Serviceaccess
point (SAP)
Computer C Applications
1 2 3
() () ()
Transport
Network address
Network access
Computer B
Figure2.1 Protocol Architectures and Networks
C
om
pu n
io
te at
r
A lic
Entity X data pp
A
1 2 t
() () or
nsp
"to port 2 on computer B" a
Tr
from to data
1 2
k
() or
tw ss
e e
"to computer B" N acc
a
dat from to from to data
to A B 1 2
m 2
fro
to 1
m B
fro
A
Communications
Network
fr A
om
C
om
to
n
B
pu
io
fr 1
te at
om
r
B il c
Entity Y pp
data A
to
2
1 2
da
t
() () or
ta
nsp
a
from to data Tr
1 2
k
() or
tw ss
"this is to me" e e
N acc
from to from to data
A B 1 2
Figure2.2 Protocols in a Simplified Architecture
TCP/IP Protocol Architecture
TCP/IP Protocol Architecture
• Result of protocol research and
development conducted on ARPANET
• Referred to as TCP/IP protocol suite
• TCP/IP comprises a large collection of
protocols that are Internet standards
Application
Provides ccess to the
TCP/IP environment for SMTP, FTP, SSH, HTTP
users and also provides
distributed information
services.
Transport
Transfer of data between
end points. May provide TCP, UDP
error control, flow control,
congestion control, reliable
delivery.
Internet ICMP,
OSPF,
Shield higher layers from
RSVP
details of physical network IPv4, IPv6 ARP
configuration. Provides
routing. May provide QoS,
congestion control.
Network Access/
Data Link
Logical interface to network Ethernet, WiFi, ATM, frame relay
hardware. May be stream or
packet oriented. May
provide reliable delivery.
Physical
Transmission of bit stream;
specifies medium, signal Twisted pair, optical fiber, satellite,
encoding technique, data terrestrial microwave
rate, bandwidth, and
physical connector.
Figure2.3 TheTCP/IP Layers and ExampleProtocols
Physical Layer
Coversthe physical interface between
computer and network
Concerned with issues like:
Characteristics of transmission medium
Nature of the signals
Data rates
Network Access/Data Link Layer
Covers the exchange of data between an
end system and the network that it is
attached to
Concerned with:
Access to and routing data across a network
for two end systems attached to the same
network
Implements
procedures
needed to allow
data to travel
across multiple
interconnected
networks
Interne
Internet Layer
t Layer
Uses the
Implemented Internet
in end Protocol (IP)
systems and to provide
routers routing
function
Host-to-Host (Transport) Layer
• May provide
TCP
reliable end-to-end
service or merely • Most commonly
an end-to-end used protocol to
delivery service provide this
without reliability functionality
mechanisms
Transmission
Control Protocol
Application Layer
Contains the logic needed to support the
various user applications
A separate module is needed for each
different type of application that is peculiar
to that application
Host A Host B
App X App Y
App Y App X
Port
1 2 3 2 4 6
Logical connection
(TCP connection)
TCP TCP
Global internet
IP address IP
Network Access Network Access
Protocol #1 Protocol #2
Logical connection
Physical Subnetwork attachment (e.g., virtual circuit) Physical
point address Router J
IP
NAP 1 NAP 2
Network 1 Network 2
Physical Physical
Figure2.4 TCP/IP Concepts
TCP/IP Address Requirements
Two levels of addressing are needed:
Each host on a subnetwork must
have a unique global internet
address
Each process with a host must
have an address (known as a
port) that is unique within the host
Application
User data
bytestream
TCP TCP
header segment
IP IP
header datagram
Network Network-level
header packet
Figure2.5 Protocol Data Units (PDUs) in theTCP/IP Architecture
Transmission Control Protocol
(TCP)
TCP is the transport layer protocol for most
applications
TCP provides a reliable connection for transfer
of data between applications
A TCP segment is the basic protocol unit
TCP tracks segments between entities for
duration of each connection
Bit: 0 4 8 16 31
SourcePort Destination Port
SequenceNumber
20 octets
Acknowledgement Number
Header
Reserved Flags Window
length
Checksum Urgent Pointer
Options +Padding
(a) TCP Header
Bit: 0 16 31
SourcePort Destination Port
8 octets
Segment Length Checksum
(b) UDP Header
Figure2.6 TCP and UDP Headers
User Datagram Protocol
(UDP)
Alternativeto TCP
Does not guarantee delivery, preservation of
sequence, or protection against duplication
Enables a procedure to send messages to other
procedures with a minimum of protocol mechanism
Adds port addressing capability to IP
Used with Simple Network Management Protocol
(SNMP)
Includes a checksum to verify that no error occurs in
the data
Bit: 0 4 8 14 16 19 31
Version IHL DS ECN Total Length
Identification Flags Fragment Offset
20 octets
Timeto Live Protocol Header Checksum
SourceAddress
Destination Address
Options +Padding
(a) IPv4 Header
Bit: 0 4 10 12 16 24 31
Version DS ECN Flow Label
Payload Length Next Header Hop Limit
(a) IPv4 Header
Bit: 0 4 10 12 16 24 31
Version DS ECN Flow Label
Payload Length Next Header Hop Limit
SourceAddress
40 octets
Destination Address
(b) IPv6 Header
DS =Differentiated services field Note: The 8-bit DS/ECN fields were formerly
ECN =Explicit congestion notification field known as the Type of Service field in the IPv4
header and the Traffic Class field in the IPv6
header.
Figure2.7 IP Headers
MIME
BGP FTP HTTP SMTP SSH SNMP
TCP UDP
ICMP IGMP OSPF RSVP
IP
BGP = Border Gateway Protocol OSPF = Open Shortest Path First
FTP = FileTransfer Protocol RSVP = ResourceReSerVation Protocol
HTTP = Hypertext Transfer Protocol SMTP = SimpleMail Transfer Protocol
ICMP = Internet Control MessageProtocol SNMP = SimpleNetwork Management Protocol
IGMP = Internet Group Management Protocol SSH = SecureShell
IP = Internet Protocol TCP = Transmission Control Protocol
MIME = MultipurposeInternet Mail Extension UDP = User Datagram Protocol
Figure2.8 SomeProtocols in theTCP/IP Protocol Suite
Application
Serviceto Layer N+1
Layer (functional description Addressing
for internal use) (port or service
access point)
Protocol with peer
Layer N
(precisesyntax and
Layer N Layer N semanticsfor
interoperability)
Physical
Layer
Figure2.9 A Protocol Architectureas a Framework for Standardization
Service Primitives and
Parameters
Services between adjacent layers
Expressed as:
• Primitives
• Specify the function to be performed
• Parameters
• Used to pass data and control information
Table 2.1
Service Primitive Types
Serviceuser Serviceprovider Serviceuser Serviceuser Serviceprovider Serviceuser
Request Request
Indication Indication
Response
Confirm
(a) Confirmed Service (b) Nonconfirmed Service
Figure2.10 TimeSequenceDiagrams for ServicePrimitives
Traditional Internet-Based
Applications
Threecommon applications that have been
standardized to operate on top of TCP are:
Simple Mail Transfer Protocol (SMTP)
• Provides a mechanism for transferring messages among separate
hosts
File Transfer Protocol (FTP)
• Used to send files from one system to another under user command
• Both text and binary files are accommodated
Secure Shell (SSH)
• Provides a secure remote logon capability
Table 2.2
Multimedia Terminology
TECHNOLOGIES
Quality of service
Protocols
Communications/networking
Synchronization
Compression
User interface
Database
Operatingsystem s
d hic n
t n ap tio
x u r o
Computer architecture Te So G M
MEDIA TYPE
MM e-mail
Collaborativework systems
MM conferencing
Streamingaudio/video
VoIP
APPLICATION
Figure2.11 A Multimedia Taxonomy
Media Types
audio generally image supports the
encompasses sounds that communication of
are produced by the human individual pictures, charts,
speech mechanism or drawings
text is information that can
video service carries
be entered via a keyboard
sequences of pictures in
and is directly readable and
time
printable
Table 2.3
Domains of Multimedia Systems
and Example Applications
Domai n Exampl e Appl i cat i on
Information management Hypermedia, multimedia-capable databases, content-
based retrieval
Entertainment Computer games, digital video, audio (MP3)
Telecommunication Videoconferencing, shared workspaces, virtual
communities
Information Online training, electronic books, streaming media
publishing/delivery
Multimedia Applications
Information systems Communication
• Information kiosks, electronic systems
books that include audio and • Support collaborative work,
video, and multimedia expert such as videoconferencing
systems
Entertainment systems Business systems
• Computer and network games • Business-oriented multimedia
and other forms of presentations, video
audiovisual entertainment brochures, and online
shopping
Educational systems
• Electronic books with a
multimedia component,
simulation and modeling
applets, and other teaching
support systems
Multimedia Technologies
Sometechnologies that are relevant to the
support of multimedia applications are:
Communication Quality of
Compression Protocols
s/networking service (QoS)
Refers to the Can deal
JPG for still transmission with priority,
images and RTP delay
networking constraints,
technologies delay
that can variability
support high- constraints,
MPG for volume and other
SIP
video multimedia similar
traffic requirements
Sockets Programming
Concept was developed in the 1980s in the
UNIX environment as the Berkeley Sockets
Interface
De facto standard application programming
interface (API)
Basis for Window Sockets (WinSock)
Enables communication between a client and
server process
May be connection oriented or connectionless
The Socket
Formed by the concatenation of a port value and an IP
address
Unique throughout the Internet
Used to define an API
Generic communication interface for writing programs that use TCP
or UDP
Stream sockets
All blocks of data sent between a pair of sockets are guaranteed for
delivery and arrive in the order that they were sent
Datagram sockets
Delivery is not guaranteed, nor is order necessarily preserved
Raw sockets
Allow direct access to lower-layer protocols
Format Function Parameters
socket( ) domain Protocol family of the socket to be created
Initialize a socket
type
(AF_UNIX, AF_INET, AF_INET6)
Type of socket to be opened (stream, datagram,
raw)
Table
2.4
protocol Protocol to be used on socket (UDP, TCP, ICMP)
bind( ) Bind a socket to a sockfd Socket to be bound to the port address
port address localaddress Socket address to which the socket is bound
addresslength Length of the socket address structure
listen( ) Listen on a socket sockfd Socket on which the application is to listen
for inbound queuesize Number of inbound requests that can be queued
connections at any time
accept( ) Accept an
inbound
sockfd Socket on which the connection is to be
accepted Core
connection remoteaddress Remote socket address from which the
connection was initiated
addresslength Length of the socket address structure
Socket
Connect sockfd Socket on which the connection is to be
Functions
connect( )
outbound to a opened
server remoteaddress Remote socket address to which the
connection is to be opened
addresslength Length of the socket address structure
send( ) Send and receive sockfd Socket across which the data will be sent or read
recv( )
data on a stream data Data to be sent, or buffer into which the read
read( ) socket (either data will be placed
write( ) send/recv or datalength Length of the data to be written, or amount of
read/write can be data to be read
used)
sendto( ) Send and receive sockfd Socket across which the data will be sent or read
recvfrom( ) data on a data Data to be sent, or buffer into which the read
datagram socket data will be placed (Table can be found
datalength Length of the data to be written, or amount of on page 78 in
data to be read textbook)
close( ) Close a socket sockfd Socket which is to be closed
Server Client
socket() Open communication
endpoint
Register well-known
bind()
address with system
Establish client's connection;
listen()
request queuesize
Accept first client connection
accept()
request on thequeue
blocksuntil
connection Open communication
from client socket() endpoint
connection
accept() creates
establishment Set up connection
a new socket to connect()
to server
servethenew
client request
data (request)
receive() send() Send/receivedata
process
request
data (reply)
send() receive() Send/receivedata
close() close() Shutdown
Figure2.12 Socket System Calls for Connection-Oriented Protocol
(Figure 2.13 can be
found on page 81 in
textbook)
1 #include <stdio.h>
2 #include <sys/types.h>
3 #include <sys/socket.h>
4 #include <netinet/in.h>
5 #include <netdb.h>
6 void error(char *msg)
7 {
8 perror(msg);
9 exit(0);
10 }
11 int main(int argc, char *argv[])
12 {
13 int sockfd, portno, n;
14 struct sockaddr_in serv_addr;
15 struct hostent *server;
16 char buffer[256];
17 if (argc < 3) {
18 fprintf(stderr,"usage %s hostname port\n", argv[0]);
19 exit(0);
20 }
21 portno = atoi(argv[2]);
22 sockfd = socket(AF_INET, SOCK_STREAM, 0);
23 if (sockfd < 0)
24 error("ERROR opening socket");
25 server = gethostbyname(argv[1]);
26 if (server == NULL) {
27 fprintf(stderr,"ERROR, no such host\n");
28 exit(0);
29 }
30 bzero((char *) &serv_addr, sizeof(serv_addr));
31 serv_addr.sin_family = AF_INET;
32 bcopy((char *)server->h_addr,
33 (char *)&serv_addr.sin_addr.s_addr,
34 server->h_length);
35 serv_addr.sin_port = htons(portno);
36 if (connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr)) < 0)
37 error("ERROR connecting");
38 printf("Please enter the message: ");
39 bzero(buffer,256);
40 fgets(buffer,255,stdin);
41 n = write(sockfd,buffer,strlen(buffer));
42 if (n < 0)
43 error("ERROR writing to socket");
44 bzero(buffer,256);
45 n = read(sockfd,buffer,255);
46 if (n < 0)
47 error("ERROR reading from socket");
48 printf("%s\n",buffer);
49
50 }
return 0; (Figure 2.14 can be
found on page 82 in
Figure2.14 Sockets Client
textbook)
Summary
The need for a protocol
architecture Traditional internet-
Simple protocol architecture based applications
TCP/IP protocol architecture Multimedia
TCP/IP layers Media types
Operation of TCP and IP Multimedia applications
TCP and UDP
IP and IPv6
Multimedia
Protocol interfaces
technologies
Standardization within a Sockets programming
protocol architecture The socket
Standards and protocol layers Sockets interface calls
Service primitives and
parameters