Principles of Congestion Control Congestion q informally too

  • Slides: 11
Download presentation
Principles of Congestion Control Congestion: q informally: “too many sources sending too much data

Principles of Congestion Control Congestion: q informally: “too many sources sending too much data too fast for network to handle” q different from flow control! = end-to-end issue! q manifestations: o lost packets (buffer overflow at routers) o long delays (queue-ing in router buffers) q a top-10 problem! 1

Causes/costs of congestion: scenario q two senders, two receivers q one router, infinite buffers

Causes/costs of congestion: scenario q two senders, two receivers q one router, infinite buffers q no retransmission q large delays when congested q maximum achievable throughput 2

Approaches towards congestion control Two broad approaches towards congestion control: end-to-end congestion control: Network-assisted

Approaches towards congestion control Two broad approaches towards congestion control: end-to-end congestion control: Network-assisted congestion control: q no explicit feedback from q routers provide feedback network q congestion inferred from end-system observed loss, delay q approach taken by TCP to end systems o single bit indicating congestion (SNA, ATM) o explicit rate sender should send at 3

TCP Congestion Control q How to detect congestion? q Timeout caused by packet loss:

TCP Congestion Control q How to detect congestion? q Timeout caused by packet loss: reasons o Transmission errors : Rare for wired networks o Packed discarded at congested router Packet loss Hydraulic example illustrating two limitations for sender! 4

TCP congestion control 5

TCP congestion control 5

TCP Congestion Control q How to detect congestion? q Timeout caused by packet loss:

TCP Congestion Control q How to detect congestion? q Timeout caused by packet loss: reasons o Transmission errors : Rare o Packed discarded at congested router Packet loss congestion Approach: 2 windows for sender Minimum of Receiver window Congestion window 6

TCP Congestion Control q end-end control (no network assistance) q transmission rate limited by

TCP Congestion Control q end-end control (no network assistance) q transmission rate limited by congestion window size, Congwin, over segments: Congwin q w segments, each with MSS bytes sent in one RTT: throughput = w * MSS Bytes/sec RTT 7

TCP Congestion Control: q “probing” for usable bandwidth: q two “phases” o slow start

TCP Congestion Control: q “probing” for usable bandwidth: q two “phases” o slow start o congestion avoidance o ideally: transmit as fast as possible (Congwin as large as q important variables: possible) without loss o Congwin o increase Congwin until loss o threshold: defines (congestion) threshold between two o loss: decrease Congwin, then phases: begin probing (increasing) • slow start phase again • congestion control phase 8

TCP Slow start Host A initialize: Congwin = 1 for (each segment ACKed) Congwin++

TCP Slow start Host A initialize: Congwin = 1 for (each segment ACKed) Congwin++ until (loss event OR Cong. Win > threshold) RTT Slow start algorithm Host B one segme nt two segme nts four segme nts q exponential increase (per RTT) in window size (not so slow!) q loss event: timeout (Tahoe TCP) and/or three duplicate ACKs (Reno TCP) time 9

TCP Congestion Avoidance Congestion avoidance /* slowstart is over */ /* Congwin > threshold

TCP Congestion Avoidance Congestion avoidance /* slowstart is over */ /* Congwin > threshold */ Until (loss event) { every w segments ACKed: Congwin++ } threshold = Congwin/2 Congwin = 1 1 perform slowstart 1: TCP Reno skips slowstart (fast recovery) after three duplicate ACKs 10

TCP congestion control 11

TCP congestion control 11