1 / 34

Chapter 3 Transport Layer Part C

Chapter 3 Transport Layer Part C. The majority of these slides are adapted from Jim Kurose, Keith Ross, Addison-Wesley,. Slides from other sources and from Vasos Vassiliou are also included in this presentation. Outline. Multiplexing/De-multiplexing Connection with sockets and ports

hedya
Télécharger la présentation

Chapter 3 Transport Layer Part C

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 3Transport LayerPart C The majority of these slides are adapted from Jim Kurose, Keith Ross, Addison-Wesley,.Slides from other sources and from Vasos Vassiliou are also included in this presentation. Transport Layer

  2. Outline • Multiplexing/De-multiplexing • Connection with sockets and ports • TCP Overview • Segment structure • Seq nums • Tcp connection management • RTT • Rtd: acks, events, fast retransmit • Flow Control • Congestion Control • General causes • Tcp cong control (slow start, AIMD) • TCP Throughput • TCP versions Transport Layer

  3. TCP Congestion Control • Idea • assumes best-effort network. • assumes drop-tail FIFO routers. • uses implicit feedback (packet losses). • each source determines network capacity for itself. • ACKs pace transmission (self-clocking) Transport Layer

  4. TCP Congestion Control • Challenge • determining the available capacity in the first place (Without additional protocols or APIs) • adjusting to changes in the available capacity (Adjustments must be made quickly since a large window may already be out on the network) • Implementation • increase CongestionWindow when congestion goes down (slowly) • decrease CongestionWindow when congestion goes up (quickly) • Question: how does the source determine whether or not the network is congested? Transport Layer

  5. sender limits transmission: LastByteSent-LastByteAcked  CongWin Roughly, CongWin is dynamic, function of perceived network congestion How does sender perceive congestion? loss event = timeout or 3 duplicate acks TCP sender reduces rate (CongWin) after loss event three mechanisms: slow start AIMD conservative after timeout events CongWin rate = Bytes/sec RTT TCP Congestion Control Transport Layer

  6. TCP Slow Start • Objective: determine the available capacity in the first place • When connection begins, CongWin = 1 MSS • Example: MSS = 500 bytes & RTT = 200 msec • initial rate = 20 kbps • available bandwidth may be >> MSS/RTT • desirable to quickly ramp up to respectable rate • When connection begins, increase rate exponentially fast until first loss event Transport Layer

  7. time TCP Slow Start (more) • Available Window = MIN[window, cwnd] • Start connection with cwnd=1 • Double CongWin every RTT = = • Increment cwnd at each ACK, to some max •  cwnd= cwnd+1 Host A Host B one segment RTT two segments four segments Transport Layer

  8. Figure 12.11 Illustration of Slow Start and Congestion Avoidance Transport Layer

  9. Implementation: Variable Threshold At loss event, Threshold is set to 1/2 of CongWin just before loss event TCP AIMD additive increase: Increase CongWin by MSS/CongWin every ACK. Increase CongWin by 1 MSS every RTT in the absence of loss events: probing. multiplicative decrease: cut CongWin in half after loss event Transport Layer

  10. Example trace • Loss event detected only using timeouts. • Problem: course grain TCP timeouts lead to idle periods Value of CongesionWindow Time when transmit timeout Initial transmit of retransmitted packet 70 60 50 40 30 KB 20 10 0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 Transport Layer Time in seconds CongestionThreshold

  11. Fast Retransmit and Fast Recovery • Problem: coarse-grain TCP timeouts lead to idle periods • Fast retransmit: use duplicate ACKs to trigger retransmission Transport Layer

  12. Fast Retransmit and Fast Recovery • Problem: coarse-grain TCP timeouts lead to idle periods • Fast retransmit: use duplicate ACKs to trigger retransmission Transport Layer

  13. TCP with fast retransmit • Fast retransmit: Don’t wait for timeout. Use 3 DUP-ACKs. • Example Trace. 70 60 50 40 30 KB 20 10 0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 Time in seconds Transport Layer

  14. After 3 dup ACKs: CongWin is cut in half window then grows linearly But after timeout event: CongWin instead set to 1 MSS; window then grows exponentially to a threshold, then grows linearly TCP AIMD Refinement Philosophy: • 3 dup ACKs indicates network capable of delivering some segments • timeout before 3 dup ACKs is “more alarming” Transport Layer

  15. multiplicative decrease: cut CongWin in half after loss event. TCP AIMD additive increase: increase CongWin by 1 MSS every RTT in the absence of loss events: probing Long-lived TCP connection • sawtooth behavior for congestion window throughout lifetime of connection Transport Layer

  16. Summary: TCP Congestion Control • When CongWin is below Threshold, sender in slow-start phase, window grows exponentially. • When CongWin is above Threshold, sender is in congestion-avoidance phase, window grows linearly. • When a triple duplicate ACK occurs, Threshold set to CongWin/2 and CongWin set to Threshold. • When timeout occurs, Threshold set to CongWin/2 and CongWin is set to 1 MSS. Transport Layer

  17. TCP sender congestion control Transport Layer

  18. TCP throughput • What’s the average throughout ot TCP as a function of window size and RTT? • Ignore slow start • Let W be the window size when loss occurs. • When window is W, throughput is W/RTT • Just after loss, window drops to W/2, throughput to W/2RTT. • Average throughout: .75 W/RTT • Average throughput as a function of drop probability: Transport Layer

  19. TCP Throughput • Example: 1500 byte segments, 100ms RTT, want 10 Gbps throughput • Requires window size W = 83,333 in-flight segments • Throughput in terms of loss rate: • ➜ L = 2·10-10 Wow • New versions of TCP for high-speed needed! Transport Layer

  20. TCP Fairness Incr: w ← w + a , a =1 Decr: w ← bw , b = 1/2 f1(k+1)=f1(k)+a if f1(k)+f2(k) < B f1(k+1)=bf1(k) if f1(k)+f2(k) >= B f2(k+1)=f2(k)+a if f2(k)+f2(k) < B f2(k+1)=bf2(k) if f1(k)+f2(k) >= B f2(k+1)-f1(k+1)= f2(k)-f1(k) if f1(k)+f2(k) < B f2(k+1)-f1(k+1)= b(f2(k)-f1(k)) if f1(k)+f2(k) >= B Transport Layer

  21. TCP Flavors • TCP-Tahoe • W=1 adaptation on congestion • TCP-Reno • W=W/2 adaptation on fast retransmit, W=1 on timeout • TCP-newReno • TCP-Reno + fast recovery • TCP Vegas • Uses round-trip time as an early-congestion-feedback mechanism • Reduces losses • TCP-SACK • Selective Acknowledgements Transport Layer

  22. TCP Tahoe • Slow-start • Congestion control upon time-out. • Congestion window reduced to 1 and slow-start performed again • Simple • Congestion control too aggressive • It takes a complete timeout interval to detect a packet loss and this empties the pipeline Transport Layer

  23. TCP Reno • Tahoe + Fast re-transmit • Packet loss detected both through timeouts, and through DUP-ACKs • On receiving 3 DUP-ACKs retransmit packet and reduce the ssthresh to half of current window and set cwnd to this value. For each DUP-ACK received increase cwnd by one. If cwnd larger than number of packets in transit send new data else wait. In this way the pipe is not emptied. • Window cut-down to 1 (and subsequent slow-start) performed only on time-out Transport Layer

  24. TCP New-Reno • TCP-Reno with more intelligence during fast recovery • In TCP-Reno, the first partial ACK will bring the sender out of the fast recovery phase • Results in multiple reductions of the cwnd for packets lost in one RTT. • In TCP New-Reno, partial ACK is taken as an indication of another lost packet (which is immediately retransmitted). • Sender comes out of fast recovery only after all outstanding packets (at the time of first loss) are ACKed. Transport Layer

  25. TCP SACK • TCP (Tahoe, Reno, and New-Reno) uses cumulative acknowledgements • When there are multiple losses, TCP Reno and New-Reno can retransmit only one lost packet per round-trip time • SACK enables receiver to give more information to sender about received packets allowing sender to recover from multiple-packet losses faster Transport Layer

  26. TCP SACK (Example) • Assume packets 5-25 are transmitted • Let packets 5, 12, and 18 be lost • Receiver sends back a CACK=5, and SACK=(6-11,13-17,19-25) • Sender knows that packets 5, 12, and 18 are lost and retransmits them immediately Transport Layer

  27. TCP Vegas • Idea: source watches for some sign that some router's queue is building up and congestion will happen soon; e.g., • RTT is growing • sending rate flattens Transport Layer

  28. Algorithm • Let BaseRTT be the minimum of all measured RTTs (commonly the RTT of the first packet) • if not overflowing the connection, then • ExpectedRate = CongestionWindow / BaseRTT • source calculates current sending rate (ActualRate) once per RTT • source compares ActualRate with ExpectedRate • Diff = ExpectedRate – ActualRate • if Diff <  • -->increase CongestionWindow linearly • else if Diff > • -->decrease CongestionWindow linearly • else • -->leave CongestionWindow unchanged Transport Layer

  29. Parameters • Parameters • : 1 packet • : 3 packets • Even faster retransmit • keep fine-grained timestamps for each packet • check for timeout on first duplicate ACK Transport Layer

  30. 1100 900 700 Sending KBps 500 300 100 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 10 5 Queue size in router 0.5 1.0 1.5 4.0 4.5 6.5 8.0 Time (seconds) Intuition 70 60 50 40 KB 30 20 10 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 Time (seconds) Congestion Window Time (seconds) Average send rate at source 2.0 2.5 3.0 3.5 5.0 5.5 6.0 7.0 7.5 8.5 Driving on Ice Average Q length in router Transport Layer

  31. Example TCP Vegas Actual Throughput Expected throughput Transport Layer

  32. Vegas Details • Value of throughput with no congestion is compared to current throughput • If current difference is smaller, increase window size linearly • If current difference is larger, decrease window size linearly • The change in the Slow Start Mechanism consists of doubling the window every other RTT, rather than every RTT and of using a boundary in the difference between throughputs to exit the Slow Start phase, rather than a window size value. Transport Layer

  33. What about fast networks • Assume that we start at zero with the linear increase model • Assume 100ms delay and 10,000 bit max segment size • Assume we have a Gigabit target rate • We only increase by 10,000 bits every round trip. • 109/104=105 round trips = 104 seconds Transport Layer

  34. TCP in fast networks Measured cwnd and throughput time histories on 1Gb/s path between Dublin, Irenland and Chicago, USA. Over 1200s the average throughput achieved is only 218Mb/s. These particular measurements were taken on the afternoon of Dec 9th 2003 using a dedicated trans-atlantic link with no significant competing traffic Transport Layer

More Related