Professional Documents
Culture Documents
Transport-layer services
Multiplexing and demultiplexing
Connectionless transport: UDP
Principles of reliable data transfer
Connection-oriented transport: TCP
Principles of congestion control
TCP congestion control
Evolution of transport-layer
functionality
Transport Layer: 3-1
UDP: User Datagram Protocol
“no frills,” “bare bones”
Why is there a UDP?
Internet transport protocol no connection
establishment
“best effort” service, UDP simple: no connection state
segments may be: at sender, receiver
• lost small header size
• delivered out-of-order to app no congestion control
connectionless: UDP can blast away as fast as
desired!
• no handshaking between UDP can function in the face of
sender, receiver congestion
• each UDP segment handled
independently of others
Transport Layer: 3-2
UDP: User Datagram Protocol
UDP use:
streaming multimedia apps (loss tolerant, rate sensitive)
DNS
SNMP (Simple Network Management Protocol): Simple Network Management
Protocol (SNMP) is an Internet Standard protocol for collecting and organizing information about
managed devices on IP networks and for modifying that information to change device behavior.
HTTP/3
if reliable transfer needed over UDP (e.g., HTTP/3):
add needed reliability at application layer
add congestion control at application layer
application application
transport transport
(UDP) (UDP)
link link
physical physical
network (IP)
creates UDP segment network (IP)
link
passes segment to IP link
physical physical
network
UDP h SNMP(IP)
msg message network (IP)
demultiplexes message up
link to application via socket link
physical physical
data to/from
UDP segment format application layer
Transmitted: 5 6 11
Received: 4 6 11
receiver-computed
checksum
= sender-computed
checksum (as received)
sum 1011101110111100
checksum 0100010001000011
Note: when adding numbers, a carryout from the most significant bit needs to be
added to the result
* Check out the online interactive exercises for more examples: h ttp://gaia.cs.umass.edu/kurose_ross/interactive/
Transport Layer: 3-11
Internet checksum: weak protection!
example: add two 16-bit integers
01
1110011001100110 10
1101010101010101
wraparound 11011101110111011 Even though
numbers have
sum 1011101110111100 changed (bit
flips), no change
checksum 0100010001000011 in checksum!
sending receiving
process process
application data data
transport
reliable channel
transport
network
unreliable channel
sending receiving
process process
application data data
transport
sender-side of receiver-side
Complexity of reliable data reliable data
transfer protocol
of reliable data
transfer protocol
transfer protocol will depend
(strongly) on characteristics of transport
network
unreliable channel (lose, unreliable channel
corrupt, reorder data?)
reliable service implementation
sending receiving
process process
application data data
transport
sender-side of receiver-side
reliable data of reliable data
Sender, receiver do not know transfer protocol transfer protocol
the “state” of each other, e.g.,
was a message received? transport
network
unless communicated via a unreliable channel
message
reliable service implementation
unreliable channel
udt_send(): called by rdt rdt_rcv(): called when packet
to transfer packet over Bi-directional communication over arrives on receiver side of
unreliable channel to receiver unreliable channel channel
Transport Layer: 3-19
Reliable data transfer: getting started
We will:
incrementally develop sender, receiver sides of reliable data transfer
protocol (rdt)
consider only unidirectional data transfer
• but control info will flow in both directions!
use finite state machines (FSM) to specify sender, receiver
event causing state transition
actions taken on state transition
state: when in this “state”
next state uniquely state state
determined by next 1 event
event 2
actions