# Presentation: 573499

## Restricted Slow-Start for TCP

- William Allcock1,2, Sanjay Hegde3 and Rajkumar Kettimuthu1,2
- 1*Argonne National Laboratory*
- 2*The University of Chicago*
- 3*California Institute of Technology*

**Congestion Control Algorithm**
-  Slow-start: Sender window begins at one segment and is incremented by one segment every time an ACK is received.
-  This opens the window exponentially.
-  Congestion-avoidance: Sender window is incremented at most one segment each round-trip time (RTT), regardless of number of ACKs received in that RTT.
-  The congestion control algorithm starts with the slow-start phase. Whenever congestion is detected, it reduces the sender window to half of its value and enters congestion avoidance.
**Limitations**
-  This multiplicative decrease per congestion event is too drastic and linear increase by one packet per RTT in congestion-avoidance phase is too slow for networks with large BDP.
-  Numerous approaches have been formulated to address this limitation
-  These include both loss-based and delay-based solutions and focus on congestion-avoidance phase
-  The current slow-start procedure can result in increasing the sender window by thousands of segments in a single RTT for networks with large BDP.
-  This can result in thousands of packets being dropped in one RTT.
-  This is often counter-productive for the TCP flow itself, and is also hard on the rest of the traffic sharing the congested link.
-  We propose a modification to the slow-start procedure to solve this problem and improve the network utilization.

**Abstract**
-  In network protocol research a common goal is optimal bandwidth utilization, while still being network friendly.
-  Drawback of TCP in networks with large bandwidth-delay products (BDP) due to its Additive Increase Multiplicative Decrease (AIMD) based congestion control mechanism is well known.
-  The congestion control algorithm of TCP has two phases namely slow-start phase and congestion-avoidance phase.
-  We propose a modification to the slow-start phase of the algorithm to achieve better performance.
-  Restricted slow-start algorithm is a simple sender side alteration to the TCP congestion window update algorithm.

**Restricted Slow-Start **
- A brief description of the method is as follows:
- 1.	Select proportional control alone
- 2.	Increase the value of the proportional gain until the point of instability is reached (sustained oscillations), the critical value of gain, Kc, is reached.
- 3.	Measure the period of oscillation to obtain the critical time constant, Tc.
- Once the values for Kc and Tc are obtained, the PID parameters are calculated as follows: Kp = 0.33 Kc; Ti = 0.5 Tc; and Td = 0.33 Tc.
**Experimental Results**
-  Our scheme is implemented in a 2.4.19 Linux kernel and the performance is evaluated through experiments conducted over a 100 Mbps link between Argonne National Laboratory and Lawrence Berkeley National Laboratory, a RTT of 60 ms.
-  We use web100 to get detailed statistics of the TCP state information.
-  Preliminary results show that our scheme is able to achieve 40% improvement in throughput compared to the standard TCP.

-  Average throughput achieved with standard TCP: 60 Mbps
-  Average throughput achieved with the proposed scheme: 85 Mbps

**Background**
-  Congestion occurs when the traffic offered to a communication network exceeds its available transmission capacity.
-  Congestion events are not just pertained to congestion in the network.
-  In some operating systems (for example: Linux), congestion events (send-stalls) are generated due to the saturation of several soft network components such as buffers and queues in the host.
-  These are resource constraints at the sending host and are not in any way indicative of congestion in the network
-  Linux TCP treats these events in the same way as it would treat the network congestion.
**Motivation**
-  The impact of these send-stall events was reflected in the demo that we conducted at IGrid2002.
-  Further analysis revealed that these congestion events (send-stalls) are generated in the slow-start phase rather in the congestion-avoidance phase.
-  We propose a control theory approach that appropriately paces the TCP sender during the slow-start phase to avoid the saturation of soft component such as device queue.
**Alternate Solutions**
-  Increase the size of these soft components to overcome this problem.
-  Deployment of these solutions revealed that still a considerable amount of available bandwidth goes unutilized.
-  Also, increasing the size of the soft components increases the memory usage.
**Restricted Slow-Start**
-  We use a PID control algorithm to determine the rate of increase during the slow-start phase.
-  In the PID control approach, the gain is calculated using a first order differential equation. The controller gains are configurable.
-  The 90% of the maximum value of the interface queue (IFQ) size is used as the set point and the current value of the IFQ is used as the process variable in the controller.
-  The controller compares the process variable (current IFQ) to its set point (max IFQ) and calculates the error.
-  Based on the error (E), a few adjustable settings and its internal structure, the controller calculates an output that determines the new value of the sender window. The PID transfer function used is
- Kp * (E) +  1/Ti 0t (E) dt + Td * d(E)/ dt )
-  We use Ziegler Nichols Tuning Method to calculate the PID parameters (Kp, Ti and Td).