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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend