A Simulation of Adaptive Packet Size in TCP Congestion Control Zohreh Jabbari.

Slides:



Advertisements
Similar presentations
Introduction 1 Lecture 13 Transport Layer (Transmission Control Protocol) slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer.
Advertisements

Simulation-based Comparison of Tahoe, Reno, and SACK TCP Kevin Fall & Sally Floyd Presented: Heather Heiman September 10, 2002.
Transport Layer3-1 TCP. Transport Layer3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection.
Data Communications and Computer Networks Chapter 3 CS 3830 Lecture 16 Omar Meqdadi Department of Computer Science and Software Engineering University.
1 Chapter 3 Transport Layer. 2 Chapter 3 outline 3.1 Transport-layer services 3.2 Multiplexing and demultiplexing 3.3 Connectionless transport: UDP 3.4.
Chapter 3 Transport Layer slides are modified from J. Kurose & K. Ross CPE 400 / 600 Computer Communication Networks Lecture 11.
1 CS492B Project #2 TCP Tutorial # Jin Hyun Ju.
Transport Layer3-1 Summary of Reliable Data Transfer Checksums help us detect errors ACKs and NAKs help us deal with errors If ACK/NAK has errors sender.
Week 9 TCP9-1 Week 9 TCP 3 outline r 3.5 Connection-oriented transport: TCP m segment structure m reliable data transfer m flow control m connection management.
Transport Layer1 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r reliable, in-order byte steam: m no “message boundaries” r pipelined: m TCP congestion.
School of Information Technologies TCP Congestion Control NETS3303/3603 Week 9.
Networking (from an OS perspective) Yin Lou 10/08/2009.
Chapter 3 outline 3.1 transport-layer services
Transport Layer 3-1 Fast Retransmit r time-out period often relatively long: m long delay before resending lost packet r detect lost segments via duplicate.
TCP Details: Roadmap Data Flow Timeout/Retransmission
10/7/ /9/2003 TCP and Congestion Control October 7-9, 2003.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
Transport Layer Transport Layer: TCP. Transport Layer 3-2 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional.
Transport Layer 3-1 Transport Layer r To learn about transport layer protocols in the Internet: m TCP: connection-oriented protocol m Reliability protocol.
1 Announcement r Project 2 out m Much harder than project 1, start early! r Homework 2 due next Tuesday.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley,
1 TCP Transport Control Protocol Reliable In-order delivery Flow control Responds to congestion “Nice” Protocol.
Announcement Project 2 out –Much harder than project 1, start early! Homework 2 due next Tu.
The Future r Let’s look at the homework r The next test is coming the 19 th (just before turkey day!) r Monday will finish TCP canned slides r Wednesday.
Transport Layer3-1 Data Communication and Networks Lecture 7 Transport Protocols: TCP October 21, 2004.
EEC-484/584 Computer Networks Lecture 14 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Announcement Homework 1 graded Homework 2 out –Due in a week, 1/30 Project 2 problems –Minet can only compile w/ old version of gcc (2.96). –Only tlab-login.
Transport Layer session 1 TELE3118: Network Technologies Week 9: Transport Layer Basics Some slides have been taken from: r Computer Networking:
EEC-484/584 Computer Networks Lecture 16 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Transport Layer3-1 TCP sender (simplified) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) { switch(event) event: data received from.
Network LayerII-1 RSC Part III: Transport Layer 3. TCP Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides are, mainly, part.
Transport Layer1 Reliable Transfer Ram Dantu (compiled from various text books)
3: Transport Layer3b-1 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data flow in same connection m MSS: maximum.
2: Transport Layer 21 Transport Layer 2. 2: Transport Layer 22 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 r full duplex data: m bi-directional data.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 04_b Transport Protocols - TCP Instructor: Dr. Li-Chuan Chen Date: 09/22/2003 Based in part upon slides.
CSE679: Computer Network Review r Review of the uncounted quiz r Computer network review.
EE 122: Congestion Control and Avoidance Kevin Lai October 23, 2002.
1 Mao W07 Midterm Review EECS 489 Computer Networks Z. Morley Mao Monday Feb 19, 2007 Acknowledgement: Some.
Transport Layer 3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
1 End-to-End Protocols (UDP, TCP, Connection Management)
Copyright © Lopamudra Roychoudhuri
1 TCP - Part II Relates to Lab 5. This is an extended module that covers TCP data transport, and flow control, congestion control, and error control in.
What is TCP? Connection-oriented reliable transfer Stream paradigm
1 CS 4396 Computer Networks Lab TCP – Part II. 2 Flow Control Congestion Control Retransmission Timeout TCP:
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
1 Computer Networks Congestion Avoidance. 2 Recall TCP Sliding Window Operation.
September 26 th, 2013 CS1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights.
TCP. TCP ACK generation [RFC 1122, RFC 2581] Event at Receiver Arrival of in-order segment with expected seq #. All data up to expected seq # already.
TCP continued. Discussion – TCP Throughput TCP will most likely generate the saw tooth type of traffic. – A rough estimate is that the congestion window.
Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.
Transport Layer3-1 Chapter 3 Transport Layer Computer Networking: A Top Down Approach 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April 2009.
Transport Layer3-1 Transport Layer If you are going through Hell Keep going.
Chapter 3 Transport Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 A note on the use of these.
DMET 602: Networks and Media Lab Amr El Mougy Yasmeen EssamAlaa Tarek.
@Yuan Xue A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their.
DMET 602: Networks and Media Lab
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
Chapter 5 TCP Sequence Numbers & TCP Transmission Control
CS 1652 Jack Lange University of Pittsburgh
TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 full duplex data:
Introduction to Congestion Control
CS1652 TCP Jack Lange University of Pittsburgh
Review: UDP demultiplexing TCP demultiplexing Multiplexing?
Chapter 5 TCP Transmission Control
TCP - Part II Relates to Lab 5. This is an extended module that covers TCP flow control, congestion control, and error control in TCP.
CS4470 Computer Networking Protocols
Chapter 3 outline 3.1 Transport-layer services
CS4470 Computer Networking Protocols
Chapter 3 Transport Layer
Presentation transcript:

A Simulation of Adaptive Packet Size in TCP Congestion Control Zohreh Jabbari

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

Traffic Management Today Routers: Routing Protocols User: Congestion Control Operator: Traffic Engineering

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

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!

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.

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

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

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

The simplified algorithm Timeout: –if ( cwnd 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)

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.

Network Topology Only study the left gateway. –Different Queue Managements. FIFO and RED SendersReceivers 100 M 10 M Pckts drop here!

Simulation Scenarios Scenario NumTCP sendersTCP VP sendersUDP sendersQueuing Policy FIFO FIFO 350 0FIFO FIFO FIFO FIFO RED RED 950 0RED RED RED RED

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)

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.

Results “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 The same plot when the router is using RED in its byte mode.

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.

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

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)

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

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

Summery Scenario DescriptionFIFORED scenarioTCP SourcesVP SourcesUDP SourcesTCPVPTCPVP

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.

Future Work Testing the packet header overhead Hypothesis.

Future Work What is happening here?

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

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

References: [1] V. Jacobson. Congestion avoidance and control. SIGCOMM Comput. Commun. Rev., 18(4): , [2] Sally Floyd and Van Jacobson. Random early detection gateways for congestion avoidance. IEEE/ACM Transactions on Networking, 1(4): , [3] Frank Hutter, Holger Hoos, and Thomas Stützle. Automatic Algorithm Configuration based on Local Search. AAAI, [4] NS-2 network simulator webpage: [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 [7] The official Nsnam Wiki: [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.

Question?

TCP ACK generation [RFC 1122, RFC 2581] 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 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

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

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

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

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

Fast Retransmit 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 algorithm: a duplicate ACK for already ACKed segment fast retransmit 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 }