You are on page 1of 42

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

You might also like