title: TCP-Illinois
text: # TCP-Illinois
  
  TCP-Illinois is a variant of TCP congestion control protocol, developed at the University of Illinois at Urbana–Champaign. It is especially targeted at high-speed, long-distance networks. A sender side modification to the standard TCP congestion control algorithm, it achieves a higher average throughput than the standard TCP, allocates the network resource fairly as the standard TCP, is compatible with the standard TCP, and provides incentives for TCP users to switch.
  
  ## Principles of operation
  
  TCP-Illinois is a loss-delay based algorithm, which uses packet loss as the primary congestion signal to determine the direction of window size change, and uses queuing delay as the secondary congestion signal to adjust the pace of window size change. Similarly to the standard TCP, TCP-Illinois increases the window size W by $\alpha /W$ for each acknowledgment, and decreases $W$ by $\beta W$ for each loss event. Unlike the standard TCP, $\alpha$ and $\beta$ are not constants. Instead, they are functions of average queuing delay $d_{a}$: $\alpha =f_{1}(d_{a}),\beta =f_{2}(d_{a})$, where $f_{1}(\cdot )$ is decreasing and $f_{2}(\cdot )$ is increasing.
  
  There are numerous choices of $f_{1}(\cdot )$ and $f_{2}(\cdot )$. One such class is:
  
  $\alpha =f_{1}(d_{a})=\left\{{\begin{array}{ll}\alpha _{max}&{\mbox{if }}d_{a}\leq d_{1}\\{\frac {\kappa _{1}}{\kappa _{2}+d_{a}}}&{\mbox{otherwise.}}\end{array}}\right.$
  
  $\beta =f_{2}(d_{a})=\left\{{\begin{array}{ll}\beta _{min}&{\mbox{if }}d_{a}\leq d_{2}\\\kappa _{3}+\kappa _{4}d_{a}&{\mbox{if }}d_{2}<d_{a}<d_{3}\\\beta _{max}&{\mbox{otherwise.}}\end{array}}\right.$
  
  We let $f_{1}(\cdot )$ and $f_{2}(\cdot )$ be continuous functions and thus ${\frac {\kappa _{1}}{\kappa _{2}+d_{1}}}=\alpha _{max}$, $\beta _{min}=\kappa _{3}+\kappa _{4}d_{2}$ and $\beta _{max}=\kappa _{3}+\kappa _{4}d_{3}$. Suppose $d_{m}$ is the maximum average queuing delay and we denote $\alpha _{min}=f_{1}(d_{m})$, then we also have ${\frac {\kappa _{1}}{\kappa _{2}+d_{m}}}=\alpha _{min}$. From these conditions, we have
  
  ${\begin{array}{lcl}\kappa _{1}={\frac {(d_{m}-d_{1})\alpha _{min}\alpha _{max}}{\alpha _{max}-\alpha _{min}}}&{\mbox{and}}&\kappa _{2}={\frac {(d_{m}-d_{1})\alpha _{min}}{\alpha _{max}-\alpha _{min}}}-d_{1}\,,\\\kappa _{3}={\frac {\beta _{min}d_{3}-\beta _{max}d_{2}}{d_{3}-d_{2}}}&{\mbox{and}}&\kappa _{4}={\frac {\beta _{max}-\beta _{min}}{d_{3}-d_{2}}}\,.\end{array}}$ This specific choice is demonstrated in Figure 1.
  
  ## Properties and Performance
  
  TCP-Illinois increases the throughput much more quickly than TCP when congestion is far and increases the throughput very slowly when congestion is imminent. As a result, the window curve is concave and the average throughput achieved is much larger than the standard TCP, see Figure 2.
  
  It also has many other desirable features, like fairness, compatibility with the standard TCP, providing incentive for TCP users to switch, robust against inaccurate delay measurement.
  
  