Chapter 3 outline 3.1 transport-layer 3.5 connection-oriented transport: TCP services • segment structure 3.2 multiplexing and demultiplexing • reliable data transfer • flow control 3.3 connectionless • connection management transport: UDP 3.6 principles of congestion 3.4 principles of reliable control data transfer 3.7 TCP congestion control Transport Layer 3-1
Principles of congestion control 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) a top-10 problem! Transport Layer 3-2
Causes/costs of congestion: scenario 1 original data: λ in throughput: λ out two senders, two receivers Host A one router, infinite buffers unlimited shared output link capacity: R output link buffers no retransmission Host B R/2 delay λ out λ in λ in R/2 R/2 large delays as arrival rate, λ in , maximum per-connection approaches capacity throughput: R/2 Transport Layer 3-3
Causes/costs of congestion: scenario 2 one router, finite buffers sender retransmission of timed-out packet • application-layer input = application-layer output: λ in = λ out • transport-layer input includes retransmissions : λ in λ in ‘ λ in : original data λ out λ ' in : original data, plus retransmitted data Host A finite shared output Host B link buffers Transport Layer 3-4
Causes/costs of congestion: scenario 2 R/2 idealization: perfect knowledge λ out sender sends only when router buffers available λ in R/2 λ in : original data λ out λ ' in : original data, plus copy retransmitted data A free buffer space! finite shared output Host B link buffers Transport Layer 3-5
Causes/costs of congestion: scenario 2 Idealization: known loss packets can be lost, dropped at router due to full buffers sender only resends if packet known to be lost λ in : original data λ out λ ' in : original data, plus copy retransmitted data A no buffer space! Host B Transport Layer 3-6
Causes/costs of congestion: scenario 2 Idealization: known loss R/2 packets can be lost, dropped at router due when sending at R/2, some packets are λ out to full buffers retransmissions but sender only resends if asymptotic goodput is still R/2 (why?) packet known to be lost λ in R/2 λ in : original data λ out λ ' in : original data, plus retransmitted data A free buffer space! Host B Transport Layer 3-7
Causes/costs of congestion: scenario 2 Realistic: duplicates R/2 packets can be lost, dropped at router due to full buffers when sending at R/2, some packets are λ out sender times out prematurely, retransmissions sending two copies, both of including duplicated that are delivered! which are delivered λ in R/2 λ in λ out tim imeout ut λ ' in copy A free buffer space! Host B Transport Layer 3-8
Causes/costs of congestion: scenario 2 Realistic: duplicates R/2 packets can be lost, dropped at router due to full buffers when sending at R/2, some packets are λ out sender times out prematurely, retransmissions sending two copies, both of including duplicated that are delivered! which are delivered λ in R/2 “ costs ” of congestion: more work (retrans) for given “ goodput ” unneeded retransmissions: link carries multiple copies of pkt • decreasing goodput Transport Layer 3-9
Causes/costs of congestion: scenario 3 Q: what happens as λ in and λ in ’ four senders increase ? multihop paths ’ increases, all arriving A: as red λ in timeout/retransmit blue pkts at upper queue are dropped, blue throughput 0 λ out Host A λ in : original data Host B λ ' in : original data, plus retransmitted data finite shared output link buffers Host D Host C Transport Layer 3-10
Causes/costs of congestion: scenario 3 C/2 λ out λ in ’ C/2 another “ cost ” of congestion: when packet dropped, any “ upstream transmission capacity used for that packet was wasted! Transport Layer 3-11
Chapter 3 outline 3.1 transport-layer 3.5 connection-oriented transport: TCP services • segment structure 3.2 multiplexing and demultiplexing • reliable data transfer • flow control 3.3 connectionless • connection management transport: UDP 3.6 principles of congestion 3.4 principles of reliable control data transfer 3.7 TCP congestion control Transport Layer 3-12
TCP congestion control: additive increase multiplicative decrease approach: sender increases transmission rate (window size), probing for usable bandwidth, until loss occurs • additive increase: increase cwnd by 1 MSS every RTT until loss detected • multiplicative decrease : cut cwnd in half after loss additively increase window size … …. until loss occurs (then cut window in half) congestion window size cwnd: TCP sender AIMD saw tooth behavior: probing for bandwidth time Transport Layer 3-13
TCP Congestion Control: details TCP sending rate: sender sequence number space cwnd roughly: send cwnd bytes, wait RTT for ACKS, then send last byte last byte more bytes sent, not- ACKed sent yet ACKed ( “ in- flight ” ) cwnd sender limits transmission: rate ~ bytes/sec ~ RTT LastByteSent- cwnd < LastByteAcked cwnd is dynamic, function of perceived network congestion Transport Layer 3-14
TCP Slow Start Host B Host A when connection begins, increase rate exponentially until first loss event: RTT • initially cwnd = 1 MSS • double cwnd every RTT • done by incrementing cwnd for every ACK received summary: initial rate is slow but ramps up exponentially fast time Transport Layer 3-15
TCP: detecting, reacting to loss loss indicated by timeout: • cwnd set to 1 MSS; • window then grows exponentially (as in slow start) to threshold, then grows linearly loss indicated by 3 duplicate ACKs: TCP RENO • dup ACKs indicate network capable of delivering some segments • cwnd is cut in half window then grows linearly TCP Tahoe always sets cwnd to 1 (timeout or 3 duplicate acks) Transport Layer 3-16
TCP: switching from slow start to CA Q: when should the exponential increase switch to linear? A: when cwnd gets to 1/2 of its value before timeout. Implementation: variable ssthresh on loss event, ssthresh is set to 1/2 of cwnd just before loss event * Check out the online interactive exercises for more examples: h ttp://gaia.cs.umass.edu/kurose_ross/interactive/ Transport Layer 3-17
Summary: TCP Congestion Control New ew New ew AC ACK! K! AC ACK! K! new ACK duplicate ACK cwnd = cwnd + MSS (MSS/cwnd) . new ACK dupACKcount++ dupACKcount = 0 cwnd = cwnd+MSS transmit new segment(s), as allowed dupACKcount = 0 Λ transmit new segment(s), as allowed cwnd = 1 MSS ssthresh = 64 KB cwnd > ssthresh slow congestion dupACKcount = 0 Λ start avoidance timeout ssthresh = cwnd/2 duplicate ACK cwnd = 1 MSS dupACKcount = 0 timeout dupACKcount++ retransmit missing segment ssthresh = cwnd/2 cwnd = 1 MSS dupACKcount = 0 New ew retransmit missing segment timeout ACK! AC K! ssthresh = cwnd/2 cwnd = 1 New ACK dupACKcount = 0 cwnd = ssthresh dupACKcount == 3 dupACKcount == 3 retransmit missing segment dupACKcount = 0 ssthresh= cwnd/2 ssthresh= cwnd/2 cwnd = ssthresh + 3 cwnd = ssthresh + 3 retransmit missing segment retransmit missing segment fast recovery duplicate ACK cwnd = cwnd + MSS transmit new segment(s), as allowed Transport Layer 3-18
TCP throughput avg. TCP thruput as function of window size, RTT? • ignore slow start, assume always data to send W: window size (measured in bytes) where loss occurs • avg. window size (# in-flight bytes) is ¾ W • avg. thruput is 3/4W per RTT avg TCP thruput = 3 W RTT bytes/sec 4 W W/2 Transport Layer 3-19
TCP Futures: TCP over “ long, fat pipes ” example: 1500 byte segments, 100ms RTT, want 10 Gbps throughput requires W = 83,333 in-flight segments throughput in terms of segment loss probability, L [Mathis 1997]: TCP throughput = 1.22 . MSS RTT L ➜ to achieve 10 Gbps throughput, need a loss rate of L = 2 · 10 -10 – a very small loss rate! new versions of TCP for high-speed Transport Layer 3-20
TCP Fairness fairness goal: if K TCP sessions share same bottleneck link of bandwidth R, each should have average rate of R/K TCP connection 1 bottleneck router capacity R TCP connection 2 Transport Layer 3-21
Why is TCP fair? two competing sessions: additive increase gives slope of 1, as throughout increases multiplicative decrease decreases throughput proportionally equal bandwidth share R loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase Connection 1 throughput R Transport Layer 3-22
Fairness (more) Fairness and UDP Fairness, parallel TCP connections multimedia apps often do not use TCP application can open • do not want rate multiple parallel throttled by congestion connections between control two hosts instead use UDP: web browsers do this • send audio/video at e.g., link of rate R with 9 constant rate, tolerate packet loss existing connections: • new app asks for 1 TCP, gets rate R/10 • new app asks for 11 TCPs, gets R/2 Transport Layer 3-23
Recommend
More recommend