1 / 36

A Simulation of Adaptive Packet Size in TCP Congestion Control

This simulation study explores the use of adaptive packet size in TCP congestion control, comparing it to traditional TCP methods. The study evaluates the performance of different queue management techniques and analyzes the results using simulation scenarios.

Download Presentation

A Simulation of Adaptive Packet Size in TCP Congestion Control

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. A Simulation of Adaptive Packet Size in TCP Congestion Control Zohreh Jabbari

  2. Application Transport Network Link Physical Traffic management • routing, congestion control and traffic engineering Traffic Management

  3. Traffic Management Today Operator: Traffic Engineering Routers: RoutingProtocols User: Congestion Control

  4. TCP • Send a packet & receive an Acknowledgement (ACK). • Multiple packets. ‘Congestion Window’ (CWND) and ‘Advertised Window’.

  5. TCP Congestion Control • Possible events: • On time Acknowledgement. • Timeout. • Multiple out of order ACKs. → No congestion Open cwnd → Congestion (lost pkt) Slow down! → Congestion (lost pkt) Slow down!

  6. TCP Congestion Control • Congestion control algorithm • On any timeout, • set cwnd to half the current window size (multiplicative decrease). • On each ack for new data, • increase cwnd by 1/cwnd (additive increase). • When sending, • send the minimum of the receiver’s advertised window and cwnd.

  7. TCP Congestion Control • Severe congestion: • Small cwnd. • Large RTT. • Exp backoff • Starved sources • TCP doesn’t work here!

  8. Solution • A more flexible algorithm: • Changes packet size. • Smaller packets when network is congested. • Larger packets otherwise.

  9. TCP VP Congestion Control • ‘Severe congestion’: • Adaptive Packet size • ‘Less congestion’: • Large packets • What is ‘Severe congestion’? • min_cwnd and max_cwnd • min_pkt_size and max_pkt_size

  10. The simplified algorithm • Timeout: • if (cwnd<min_cwnd & pkt_size>min_pkt_size) • Pkt_size/= 2; (Multiplicative Decrease) • Receiving an in-order ACK: • If (cwnd>max_cwnd & pkt_size<max_pkt_size) • Increase pkt_size by pkt_size/(cwnd+1) (Additive Increase)

  11. Working Environment • Working with Ns (Ns-2 or Network Simulator). • Algorithm in C++ (added to Ns source code) • A test network. • Testing scenarios in TCL • Simulating the scenarios.

  12. Network Topology Only study the left gateway. • Different Queue Managements. FIFO and RED Pckts drop here! Senders Receivers 100 M 100 M 10 M

  13. Simulation Scenarios

  14. Queue management • FIFO: • First in First out. • Last ones are dropped. • RED (in byte mode): • Fair sharing! • Per flow Queuing. • Considers the size of the packets (byte mode)

  15. Simulation Analysis1 • 2 scenarios: • 10 UDP sources, 10 TCP sources and 10 TCPVP sources • One with FIFO & one with RED • Sorting the sources: • by the data transferred by each source. • Comparing median of TCP and TCPVP sources over time.

  16. Results The same plot when the router is using RED in its byte mode. “Number of bytes received” vs. “simulation time” for medians of TCP and TCPVP sources in a network with 10 TCP 10 UDP and 10 TCPVP senders in FIFO

  17. Simulation analysis2 • Time independent results: • Long simulations. • Sort sources by their total data transfer. • Plot the CDF of the results for TCP and TCP VP.

  18. Results • (a) TCP and VP comparison in scenario 3 (50 TCP 50 TCPVP, FIFO) • (b) scenario 9 (50 TCP 50 TCPVP, RED)

  19. Results • (a) TCP and VP comparison in scenario 6 (25 TCP, 25 TCPVP, 10 UDP, FIFO) • (b) and scenario 12. (25 TCP, 25 TCPVP, 10 UDP, RED)

  20. Results • A comparison between scenario 1 and 2 in (a) • and between 7 and 8 in (b). • Scenario 1 and 7 are all TCP scenarios, with FIFO and RED respectively. 2 and 8 are all VP scenarios with FIFO and RED respectively

  21. Hypothesis • Why TCP is better? • 40 bytes of header on each pckt! • Decreased throughput for TCP VP.

  22. Summery

  23. Conclusion • When using RED in byte mode: • TCP VP is usually much better than TCP. • Otherwise: • Smaller packet sizes get penalized • Better to use TCP.

  24. Future Work • Testing the packet header overhead Hypothesis.

  25. Future Work • What is happening here?

  26. Future Work • Tuning the TCP VP parameters. • min_pkt_size, min_cwnd & max_cwnd • Minimizing the variance of sent bytes over sources.

  27. Future Work • A study of TCP VP and TCP when both FIFO and RED are present in the network!

  28. References: • [1] V. Jacobson. Congestion avoidance and control. SIGCOMM Comput. Commun. Rev. , 18(4):314-329, 1988. • [2] Sally Floyd and Van Jacobson. Random early detection gateways for congestion avoidance. IEEE/ACM Transactions on Networking, 1(4):397-413, 1993. • [3] Frank Hutter, Holger Hoos, and Thomas Stützle. Automatic Algorithm Configuration based on Local Search.AAAI, 2007. • [4] NS-2 network simulator webpage: http://www.isi.edu/nsnam/ns/. • [5] W. Stevens. TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms, January 1997, RFC2001 • [6] M. Allman, V. Paxson, and W. Stevens. TCP Congestion Control, April 1999, RFC 2581. • [7] The official Nsnam Wiki:http://nsnam.isi.edu/nsnam/index.php/Main_Page • [8] R. Jain, K.K. Ramakrishnan, and D. Chiu. Congestion avoidance in computer networks with a connectionless network layer. Technical Report DEC-TR-506, Digital Equipment Corporation, 1987.

  29. Question?

  30. TCP ACK generation[RFC 1122, RFC 2581] TCP Receiver action Delayed ACK. Wait up to 500ms for next segment. If no next segment, send ACK Immediately send single cumulative ACK, ACKing both in-order segments Immediately send duplicate ACK, indicating seq. # of next expected byte Immediate send ACK, provided that segment starts at lower end of gap Event at Receiver Arrival of in-order segment with expected seq #. All data up to expected seq # already ACKed Arrival of in-order segment with expected seq #. One other segment has ACK pending Arrival of out-of-order segment higher-than-expect seq. # . Gap detected Arrival of segment that partially or completely fills gap

  31. TCP RTT EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT DevRTT = (1-)*DevRTT + *|SampleRTT-EstimatedRTT| (typically,  = 0.25) TimeoutInterval = EstimatedRTT + 4*DevRTT

  32. Question: If TCP frequently timeouts even if it sends only 1 segment per round, does it imply anything, and how does TCP handle it?

  33. Exponential back-off • When? • Consecutive timeouts, possibly due to severe congestion • How? On each timeout • Retransmit the smallest sequence number not yet acknowledged • Double the timer • End of exponential back-off • If ACK is received

  34. Question: What is fast retransmit and how does it work?

  35. Time-out period often relatively long: long delay before resending lost packet Detect lost segments via duplicate ACKs. Sender often sends many segments back-to-back If segment is lost, there will likely be many duplicate ACKs. If sender receives 3 ACKs for the same data, it supposes that segment after ACKed data was lost: fast retransmit:resend segment before timer expires Fast Retransmit

  36. Fast retransmit algorithm: event:ACK received, with ACK field value of y if (y > SendBase) { SendBase = y if (there are currently not-yet-acknowledged segments) start timer } else { increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) { resend segment with sequence number y } a duplicate ACK for already ACKed segment fast retransmit

More Related