chapter 3 outline
play

Chapter 3 outline 3.1 transport-layer 3.5 connection-oriented - PowerPoint PPT Presentation

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


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  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 λ in λ out tim imeout ut λ ' in copy A free buffer space! Host B Transport Layer 3-8

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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