Computer Networks Chapter 3 Transport Layer - Part I Notes
Computer Networks Chapter 3 Transport Layer - Part I Notes
transport layer:
logical communication between processes
TCP
reliable, in-order delivery
congestion control
flow control
connection setup
delay guarantees
bandwidth guarantees
Multiplexing and demultiplexing
Multiplexing/demultiplexing
Multiplexing
gatherng data from multiple sockets, enveloping data with header
Demultiplexing
delivering received segments to correct socket
Connectionless demultiplexing
When host receives UDP segment:
checks dest. port number in segment
directs UDP segment to socket with that port number
IP datagrams witch different source IP addresses and/or source port numbers
directed to same socket
UDP socket identified by two-tuble:
dest. IP address, dest. port number
Connection-oriented demux
TCP socket identified by 4-tuble:
source IP address
source port number
dest IP address
dest port number
recv host uses all four values to direct segment to appropriate socket
Server host may support many simultaneous TCP sockets:
each socket identified by its own 4-tuple
Web servers have different sockets for each connecting client
Connectionless transport: UDP
The Problem with TCP
TCP offers a reliable and easy to use transport protocol to programmers
Congestion control
Retransmissions etc.
However congestion control imposes transmission-rate constraints
If a traffic jam is detected on a path, sender decreases sending rate dramatically
Problem: One cannot switch off funcions of TCP ex. Congestion control
UDP checksum
Sender:
Receiver:
No guarantee for:
incrementally develop sender, receiver sides of reliable data tansfer protocol (rdt)
consider only unidirectional data transfer
but control info will flow on both directions!
use finite state machine (FSM) so specify sender, receiver
Use generic term packet rather than segment
Handling duplicates:
sender retransmits current pkt if ACK/NAK garbled
sender adds sequence number to eacht pkt
receiver discards (doesn't deliver up) duplicate pkt
Receiver:
must check if received packet is duplicate
state indicates whether 0 or 1 is expected pkt seq #
note: receiver can not know if its last ACK received OK at sender
Pipelined protocols
Pipelining: sender allows multiple, in-flight, yet-to-be-acknowledged pkts