This article relies too much on references to primary sources. (April 2012) (Learn how and when to remove this template message)
BIC TCP (Binary Increase Congestion control) is one of the congestion control algorithms that can be used for Transmission Control Protocol (TCP). BIC is optimized for high speed networks with high latency: so-called "long fat networks". For these networks, BIC has significant advantage over previous congestion control schemes in correcting for severely underutilized bandwidth.
BIC implements a unique congestion window (cwnd) algorithm. This algorithm tries to find the maximum cwnd by searching in three parts: binary search increase, additive increase, and slow start. When a network failure occurs, the BIC uses multiplicative decrease in correcting the cwnd.
Define the following variables:
Smax: the maximum increment Smin: the minimum increment wmax: the maximum window size β: multiplicative window decrease factor cwnd: congestion window size bic_inc: window increment per RTT (round trip time)
At every RTT interval update cwnd with the following:
If no packets are dropped, the congestion window (cwnd) increases in three distinct ways: binary search increase, additive increase, and slow start. In each step, one is used as an increment.
One step of increasing cwnd:
if (cwnd < wmax) // binary search OR additive bic_inc = (wmax - cwnd) / 2; else // slow start OR additive bic_inc = cwnd - wmax; if (bic_inc > Smax) // additive bic_inc = Smax; else if (bic_inc < Smin) // binary search OR slow start bic_inc = Smin; cwnd = cwnd + (bic_inc / cwnd);
If one or more packets are dropped, the cwnd is reduced using multiplicative decrease. This requires β, which is used in decreasing cwnd by (100×β)%. In the case of two flows, one with a large cwnd and the other a small cwnd, fast convergence is used to decrease the greater cwnd flow's wmax at a greater rate than the smaller cwnd's flow to allow faster convergence of the greater cwnd's flow when increasing its cwnd.
One step of decreasing cwnd:
if (cwnd < wmax) // fast convergence wmax = cwnd * (2-β) / 2; else wmax = cwnd; cwnd = cwnd * (1-β);
- "BIC FAQ". www4.ncsu.edu. Retrieved December 25, 2018.
- "Binary increase congestion control (BIC) for fast long-distance networks - IEEE Conference Publication". ieeexplore.ieee.org. Retrieved December 24, 2018.
-  Home Page.
|This computer networking article is a stub. You can help Wikipedia by expanding it.|