110 likes | 263 Views
Congestion Control. 1. Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow control! manifestations: lost packets (buffer overflow at routers) long delays ( queueing in router buffers). Principles of Congestion Control.
E N D
Congestion: informally: “too many sources sending too much data too fast for network to handle” different from flow control! manifestations: lost packets (buffer overflow at routers) long delays (queueing in router buffers) Principles of Congestion Control Transport Layer
two senders, two receivers one router, infinite buffers no retransmission large delays when congested maximum achievable throughput lout lin : original data unlimited shared output link buffers Host A Host B Causes/costs of congestion: scenario 1 Transport Layer
one router, finite buffers sender retransmission of lost packet Causes/costs of congestion: scenario 2 Host A lout lin : original data l'in : original data, plus retransmitted data Host B finite shared output link buffers Transport Layer
when (goodput;no loss) “perfect” retransmission only when loss: retransmission of delayed (not lost) packet makes larger (than perfect case) for same l l l > = l l l R/2 in in in R/2 R/2 out out out R/3 lout lout lout R/4 R/2 R/2 R/2 lin lin lin a. b. c. Causes/costs of congestion: scenario 2 “costs” of congestion: • more work (retrans) for given “goodput” • unneeded retransmissions: link carries multiple copies of pkt Transport Layer
four senders multihop paths timeout/retransmit l l in in Causes/costs of congestion: scenario 3 Q:what happens as and increase ? lout lin : original data Host A Host D l'in : original data, plus retransmitted data finite shared output link buffers Host B R1 R4 R2 Host C R3 Transport Layer
Host A Host B Causes/costs of congestion: scenario 3 lout another “cost” of congestion: • when packet dropped, any “upstream transmission capacity used for that packet was wasted! Transport Layer
end-end congestion control: no explicit feedback from network congestion inferred from end-system observed loss, delay approach taken by TCP network-assisted congestion control: routers provide feedback to end systems single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM) explicit rate sender should send at Approaches towards congestion control two broad approaches towards congestion control: Transport Layer
Network assisted congestion control • Active Queue Management • monitor queue, do not just drop upon overflow more intelligent decisions • maintain low average queue length, alleviate phase effects, enforce fairness • Explicit Congestion Notification (ECN) • Instead of dropping, set a bit; • reduced loss - major benefit!
Explicit Congestion Control (ECN) • Receiver informs sender about bit; sender behaves as if a packet was dropped • actual communication between end nodes and the network • Typical incentives: • sender = server; efficiently use connection, fairly distribute bandwidth • use ECN as it was designed • receiver = client; goal = high throughput, does not care about others • ignore ECN flag, do not inform sender about it • Need to make it impossible for receiver to lie about ECN flag when it was set • Solution: nonce = random number from sender, deleted by router when setting ECN • Sender believes “no congestion” if correct nonce is sent back
ECN in action • Nonce provided by bit combination: • ECT(0): ECT=1, CE=0 • ECT(1): ECT=0, CE=1 • Nonce usage specification still experimental