Lec 3 - Transport Layer - VIII - Congestion Control
Lec 3 - Transport Layer - VIII - Congestion Control
Communication Networks
EE-357
By Dr Mir Yasir Umair
Associate Professor, MCS, NUST
Transport Layer
Congestion Control
Chapter 3 outline
3.1 transport-layer services 3.5 connection-oriented
3.2 multiplexing and demultiplexing transport: TCP
▪ segment structure
3.3 connectionless transport: UDP ▪ reliable data transfer
3.4 principles of reliable data transfer ▪ flow control
▪ connection management
time
Transport Layer 3-8
TCP Congestion Control: details
sender sequence number space
cwnd TCP sending rate:
❖ roughly: send cwnd
bytes, wait RTT for
last byte last byte ACKS, then send
ACKed sent, not-
yet ACKed
sent
more bytes
(“in-
flight”) cwnd
❖ sender limits transmission: ~
rate~ bytes/sec
RTT
LastByteSent- < cwnd
LastByteAcked
❖ cwnd is dynamic, function of
perceived network
congestion
RTT
loss event:
▪ initially cwnd = 1 MSS
▪ double cwnd every RTT
▪ done by incrementing cwnd for
every ACK received
Implementation:
❖ variable ssthresh
❖ on loss event, ssthresh
is set to 1/2 of cwnd just
before loss event
TCP Reno:
• Uses SS + AIMD + Fast retransmit + Fast Recovery
• Loss indicated by
o timeout: set cwind to 1
o 3 duplicate ACKS: set cwind to 50% since network is
capable of sending packets
TCP Tahoe
If congestion window is
• below threshold: use SS
• above threshold: Use AIMD