# 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 ${\displaystyle \alpha /W}$ for each acknowledgment, and decreases ${\displaystyle W}$ by ${\displaystyle \beta W}$ for each loss event. Unlike the standard TCP, ${\displaystyle \alpha }$ and ${\displaystyle \beta }$ are not constants. Instead, they are functions of average queuing delay ${\displaystyle d_{a}}$: ${\displaystyle \alpha =f_{1}(d_{a}),\beta =f_{2}(d_{a})}$, where ${\displaystyle f_{1}(\cdot )}$ is decreasing and ${\displaystyle f_{2}(\cdot )}$ is increasing.

There are numerous choices of ${\displaystyle f_{1}(\cdot )}$ and ${\displaystyle f_{2}(\cdot )}$. One such class is:

${\displaystyle \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.}$

${\displaystyle \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}

We let ${\displaystyle f_{1}(\cdot )}$ and ${\displaystyle f_{2}(\cdot )}$ be continuous functions and thus ${\displaystyle {\frac {\kappa _{1}}{\kappa _{2}+d_{1}}}=\alpha _{max}}$, ${\displaystyle \beta _{min}=\kappa _{3}+\kappa _{4}d_{2}}$ and ${\displaystyle \beta _{max}=\kappa _{3}+\kappa _{4}d_{3}}$. Suppose ${\displaystyle d_{m}}$ is the maximum average queuing delay and we denote ${\displaystyle \alpha _{min}=f_{1}(d_{m})}$, then we also have ${\displaystyle {\frac {\kappa _{1}}{\kappa _{2}+d_{m}}}=\alpha _{min}}$. From these conditions, we have

${\displaystyle {\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.