Principles of Congestion Control Chapter 3.6 Computer Networking: A top-down approach Principles of Congestion Control Congestion: • informally: “too many sources sending too much data too fast for network to handle” • manifestations: o lost packets (buffer overflow at routers) o long delays (queuing in router buffers) • different from flow control! • a top-10 problem! • 3 examples of cause and costs of congestion control Transport Layer 3-2 Causes/costs of congestion: scenario 1 • two senders, two receivers • one router, infinite buffers • no retransmission Host A Host B lout lin : original data Host C unlimited shared output link buffers Host D • large delays when congested • maximum achievable throughput Transport Layer 3-3 Causes/costs of congestion: scenario 2 • one router, finite buffers • sender retransmission of lost packet Host A Host B Transport Layer lin : original data l'in : original data, plus retransmitted data lout Host C finite shared output link buffers 3-4 Causes/costs of congestion: scenario 2 = l (goodput) out in • “perfect” retransmission only when loss: • always: l l > lout in • retransmission of delayed (not lost) packet makes (than perfect case) for same C/2 lout C/2 l in larger C/2 lin a. C/2 lout lout lout C/3 lin b. C/2 C/4 lin C/2 c. “costs” of congestion: more work needed for given “goodput” (retransmission) unneeded retransmissions: link carries multiple copies of packets Transport Layer 3-5 Causes/costs of congestion: scenario 3 • four senders • multihop paths • timeout/retransmit lin : original data Host A lout l'in : original data, plus retransmitted data R1 Host B finite shared output link buffers Host D R2 Transport Layer Host C 3-6 Causes/costs of congestion: scenario 3 Host A lout Host B Another “cost” of congestion: when packet dropped, any “upstream transmission capacity used for that packet was wasted! Transport Layer 3-7 Approaches towards congestion control Two broad approaches towards congestion control: End-to-end congestion control: Network-assisted congestion control: • no explicit feedback from network • congestion inferred from end-system observed loss, delay • approach taken by TCP • routers provide feedback to end systems o single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM) o explicit rate sender should send at Transport Layer 3-8 Network-assisted congestion control • Feedback in two ways o Direct feedback – network router sender (choke packet) o Network feedback via receiver – Router marks a packet and receiver notify sender