Brief Tutorial on
Networks and Communications
CS-4513 Distributed Systems
(Slides include materials from Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne,
Distributed Systems: Principles & Paradigms, 2nd ed. By Tanenbaum and Van Steen, and
Distributed Systems: Concepts and Design, 4th ed., by Coulouris, et. al.)
CS-4513, D-Ter
m 2010
Networks and
Communication
Context
Networking was formerly regarded as just
another form of I/O
Today, focus is Distributed Computing
Shared files and other resources among physically separated
systems on networks
NFS, remote printing, etc.
Integrated computations across network
Airline reservations, ATMs, etc.
Interactive games and multimedia
Note: this topic overlaps with CS-3516
Also with CS-513/ECE-506
CS-4513, D-Ter
m 2010
Networks and
Communication
Topics
Fundamentals
Socket interface
Protocol Stack
Kinds of network connections
Kinds of Communication
Remote Procedure Call
Message-oriented communication
Stream-oriented communication
Naming
Names, addresses, routes
CS-4513, D-Ter
m 2010
Networks and
Communication
Computer C
Process j
Computer A
The Network
Process k
Computer B
Process i
CS-4513, D-Ter
m 2010
Networks and
Communication
Network Goal
Allow activities on multiple computer
systems to communicate with each other
Shared memory, files, or data
Message passing
Remote Procedure Call
Integrated applications distributed across
physical space
Create abstractions that make these
(relatively) transparent
CS-4513, D-Ter
m 2010
Networks and
Communication
Principal Abstraction Socket
Originally created in BSD Unix
Subsequently, part of most operating systems
Allows opening a connection between two
processes across network
Connection:
a serial conversation between two end points
e.g., processes, threads, tasks on different machines
organized as a sequence of messages or datagrams
distinct from all other connections
CS-4513, D-Ter
m 2010
Networks and
Communication
Computer C
Thread r
Process j
Computer A
The Network
Process p
Process k
Computer B
Task q
Process i
CS-4513, D-Ter
m 2010
Networks and
Communication
Definition Protocol
Formal set of rules that govern the formats,
contents, and meanings of messages from
computer to computer, process to process,
etc.
Must be agreed to by all parties to a
communication
May be defined in terms of other protocols
CS-4513, D-Ter
m 2010
Networks and
Communication
There are many, many protocols
TCP, UDP, IP, NCP, SMTP, SNNP, NNTP,
FTP, TFTP, POP, IMAP, HTTP, VMRL,
Appletalk, Netware,
Remote Procedure Call, NFS,
CORBA, GLOBE, JINI,
Network Streaming,
How to make sense out of all of them?
CS-4513, D-Ter
m 2010
Networks and
Communication
Network Stack
1983 Open System Interconnection (OSI) 7 layer
Reference Model
Working group of the International Standards
Organization (ISO)
Defines seven layers
Describe how applications communicate with each other
Via network-aware devices
Most day-to-day protocols
work on a slightly modified layer system
E.g. TCP/ IP uses a 6-rather than a 7-layer model
CS-4513, D-Ter
m 2010
Networks and
Communication
10
OSI 7-layer model
Primarily a software and protocol architecture
Layers of model correspond to layers of abstraction
Each layer has a well-defined function
Layers chosen so that
international standards can be defined
Boundaries between layers chosen to
minimize information flow across interfaces
Number of layers:
Large enough
Distinct functions need not be thrown together
Small enough
Architecture does not become unwieldy
CS-4513, D-Ter
m 2010
Networks and
Communication
11
The OSI 7-layer model
(in a nutshell)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Silbershatz, 16.6-16.7
Coulouris et al, 3.3.4
Physical
Layer
CS-4513, D-Ter
m 2010
Networks and
Communication
12
Annotated OSI 7-Layer Stack
Silbershatz,
page 630
CS-4513, D-Ter
m 2010
Networks and
Communication
13
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Layer 2 Data Link Layer
Take the raw transmission facility and
transform it into an abstract link that appears
free of errors to layer 3.
Error correcting coding (e.g. FEC)
Rate Control (Slow device not overrun by high
speed device)
Defines Packet abstraction
Layer 1 Physical Layer
Physical
Layer
CS-4513, D-Ter
m 2010
Defines the physical and electrical
characteristics of the network.
Transmitting of raw bits over the communication
channel
Defines Bit abstraction
Networks and
Communication
14
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Layer 2 Data Link Layer
Take the raw transmission facility and
transform it into an abstract link that appears
free of errors to layer 3.
Error correcting coding (e.g. FEC)
Rate Control (Slow device not overrun by high
speed device)
Defines Packet abstraction
Layer 1 Physical Layer
Physical
Layer
CS-4513, D-Ter
m 2010
Defines the physical and electrical
characteristics of the network.
Transmitting of raw bits over the communication
channel
Defines Bit abstraction
Networks and
Communication
15
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Layer 3 Network Layer
Physical
Layer
CS-4513, D-Ter
m 2010
Controlling the operation of the subnet
How packets are routed
Congestion Control
Accounting function (billing)
Network Statistics
Example - IP layer (IPv4, IPv6)
Differences between v4, v6 source/destination
addressing
V4 32 bit addressing
V6 128 bit addressing
Defines Internet abstraction i.e., packets that
can be sent from anywhere to anywhere
Networks and
Communication
16
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Layer 4 Transport Layer
Physical
Layer
CS-4513, D-Ter
m 2010
Accept data from higher layers
Split it up into smaller units if need be
Passes these to the network layer
Ensures that the packets all arrive correctly at the
destination in the right order
Isolates higher layers from changes in the underlying
hardware
Two types of service to provide
Reliable or unreliable delivery
True end-to-end layer
Example: TCP or UDP
Defines Connection abstraction i.e., data to
destination
Networks and
Communication
17
The OSI 7-layer model (continued)
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
CS-4513, D-Ter
m 2010
Layer 7 Application Layer
User layer protocol, multiple protocols required
Example http, ftp, smtp
Layer 6 Presentation Layer
Performs certain functions that are requested sufficiently
often to warrant finding a general solution for them rather
than letting each user solve the problem
Example encoding data
Layer 5 - Session Layer
Allows users on different machines to establish sessions
between them
Example SSL, RPC
Networks and
Communication
18
Summary OSI 7-layer model
Sending
Process
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
CS-4513, D-Ter
m 2010
Receiving
Process
Data
AH
PH
Data
SH
TH
NH
DH
Data
Data
Data
Data
Data
DT
Application
Layer
Presentation
Layer
Session
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
Bits
Networks and
Communication
19
Layered Protocols
OSI 7-layer model was intended to be a
foundation of a family of international
standard protocols
Those protocols never gained much
acceptance
Role of Session and Presentation layers is
murky, at best.
Internet protocols (TCP/IP, etc.) are
dominant
CS-4513, D-Ter
m 2010
Networks and
Communication
20
The TCP/IP Protocol Layers
TCP/IP
CS-4513, D-Ter
m 2010
Networks and
Communication
21
The TCP/IP Protocol Layers
TCP/IP
Subsumed by middleware
Defined by manufacturers,
industry sub-groups, and
separate standards bodies
CS-4513, D-Ter
m 2010
Networks and
Communication
22
Modified Layers
CS-4513, D-Ter
m 2010
Networks and
Communication
23
Examples of Middleware
Authentication protocols
Commit protocols for atomic transactions
Multimedia protocols
Remote Procedure Call protocols (RPC)
CS-4513, D-Ter
m 2010
Networks and
Communication
24
Styles of Communication
Message-oriented
Remote Procedure Call
Streaming
CS-4513, D-Ter
m 2010
Networks and
Communication
25
Some Terms
Packet:
A unit of communication at Data Link layer
aka datagram
IP Address:
A four-part number used by Network Layer to route a packet
from one computer to another
Port:
A 16-bit number used within one computer to identify who/where
to send packet to
Well-known port:
A port with number < 1024, used by agreement for standard
services e.g.,
telnet (23), ftp (21), smtp (25), pop (110)
CS-4513, D-Ter
m 2010
Networks and
Communication
26
More Terms
Socket:
End point of a communication
Usually used in pairs, one for each direction
Comprises [IP Address: Port #]
Connection:
A logical linkage between pairs of sockets at
two endpoints for purposes of a particular
communication between those endpoints
i.e., a serial conversation between endpoints
Usually two-way
CS-4513, D-Ter
m 2010
Networks and
Communication
27
Connection
The backbone of most message-oriented
communication protocols
Each party retains knowledge of the other
Each party retains information about state of the
other (vis a vis the protocol itself)
Each party knows if connection is broken
Note: some popular protocols are connectionless
one side retains no state information about other side
CS-4513, D-Ter
m 2010
Networks and
Communication
28
Establishing a Connection
Process a on machine m creates a socket
OS assigns a new port number q to that socket
Process a attempts to open a connection to machine n:p
p is a well-known port
Process b on machine n is listening on p
Receives request from m:q
Process b forks a process or spawns a thread c to talk with
m:q, then resumes listening on p
Thread/process c
Creates a new socket r for this connection
Replies to m:q with return address n:r
a and c continue to communicate over this pair of sockets
until they are finished.
CS-4513, D-Ter
m 2010
Networks and
Communication
29
Typical Client-Server Connection
Create socket
On server side
Bind
I.e., connect socket to port # (usually well-known port)
Listen
Sit and wait for a communication to come in
Accept
Create new socket for purpose of responding to this caller
CS-4513, D-Ter
m 2010
Networks and
Communication
30
Notes
Responder to request for connection does
not have to be the original server machine
Delegate workload to other server systems
Systems often include a connection ID as
part of request to open connection
Unique or randomly chosen
Reduces spoofing of server responses
Unix/Linux will not re-use a socket # within
30 seconds
To avoid confusion between old connection and new
CS-4513, D-Ter
m 2010
Networks and
Communication
31
Reliable Connections
Transport layer partitions messages into packets
TCP Transmission Control Protocol
Sequence number of current packet
Sequence number of last packet received correctly
Receiver keeps track of seq. # of packets
Reassembles in right order
Notify sender of missing, broken packets
Sender keeps copy of each packet until receipt
acknowledged
Retransmits packets if no acknowledgement
Window defines how many packet buffers to
maintain for efficient transmission
Allows many packets in flight
CS-4513, D-Ter
m 2010
Networks and
Communication
32
Reliable Connections (continued)
Packet i
Packet i+1
Packet i+2
Packet i+3
Packet i+k
recd i
time
CS-4513, D-Ter
m 2010
Networks and
Communication
33
Reliable Connections (continued)
Packet i
Packet i+1
Packet i+2
Packet i+3
Packet i+k
recd i
recd i
time
CS-4513, D-Ter
m 2010
Networks and
Communication
34
Reliable Connections (continued)
Packet i
Packet i+1
Packet i+2
Packet i+3
Packet i+k
recd i
recd i
recd i+2
time
CS-4513, D-Ter
m 2010
Networks and
Communication
35
Reliable Connections (continued)
Packet i
Packet i+1
Packet i+2
Packet i+3
Packet i+k
lost
recd i
recd i
recd i+2
recd i+2
time
CS-4513, D-Ter
m 2010
Networks and
Communication
36
Reliable Connections (continued)
If acknowledgement received for packet i
Delete from buffer all packets i
If no acknowledgement received within a
reasonable time for packet k
Retransmit from buffer all packets k
Result
Recovers from loss of packets
Recovers from loss of acknowledgements
Works well for reasonably reliable internet
Doesnt work so well for noisy, unreliable networks
CS-4513, D-Ter
m 2010
Networks and
Communication
37
Reminder
How do we know if a packet is received
correctly?
Cyclic Redundancy Check (CRC)
Polynomial computed from packet header and
body
Usually 16 or 32 bits, computed by hardware
Appended to message
Recomputed on reception, compared with
transmitted CRC
Equal packet received correctly
CS-4513, D-Ter
m 2010
Networks and
Communication
38
Examples of Connection-based Protocols
Telnet (virtual terminal)
2-way communication by character stream
Line-by-line organization
SMTP (Simple Mail Transport Protocol)
For sending mail
Layered on top of telnet protocol
POP (Post Office Protocol)
For receiving your mail
Layered on top of telnet protocol
FTP (File Transfer Protocol)
For transmitting ASCII or binary files
Binary data transmission not layered on telnet protocol
CS-4513, D-Ter
m 2010
Networks and
Communication
39
Connection-less communication
Some communication protocols dont need the
overhead of reliable connections
When some number of errors can be tolerated
Where recovery from those errors is easy
UDP User Datagram Protocol
The internet connection-less protocol (layer 4)
Breaks messages into packets
Messages delivered atomically or not at all
Does not send acknowledgement of correct receipt
CS-4513, D-Ter
m 2010
Networks and
Communication
40
Examples
HTTP (HyperText Transport Protocol)
Web server responds directly to requests
If client does not get response, retries request
NFS (Network File System)
For access to files on servers as if they are local
If client does not get response, retries request
RPC (Remote Procedure Call)
Next topic
CS-4513, D-Ter
m 2010
Networks and
Communication
41
Summary
Socket, connection
Network stack, 7-layer model
Establishing a connection
Reliable transmission
Reading assignment
Coulouris, Chapter 3
CS-4513, D-Ter
m 2010
Networks and
Communication
42