BIC TCP ( Binary Increase Congestion Control ) es uno de los algoritmos de control de congestión que se pueden utilizar para el Protocolo de Control de Transmisión (TCP). BIC está optimizado para redes de alta velocidad con alta latencia: las llamadas " redes largas y pesadas ". Para estas redes, BIC tiene una ventaja significativa sobre los esquemas de control de congestión anteriores a la hora de corregir el ancho de banda severamente subutilizado. [1]
BIC implementa un algoritmo de ventana de congestión (cwnd) único. Este algoritmo intenta encontrar la cwnd máxima buscando en tres partes: aumento de búsqueda binaria , aumento aditivo e inicio lento. Cuando ocurre una falla de red, BIC utiliza una disminución multiplicativa para corregir la cwnd. [2]
BIC TCP se implementa y se utiliza de forma predeterminada en los núcleos Linux 2.6.8 y posteriores. La implementación predeterminada se cambió nuevamente a CUBIC TCP en la versión 2.6.19.
Defina las siguientes variables:
S max : el incremento máximo S min : el incremento mínimo w max : el tamaño máximo de la ventana β: factor de disminución de ventana multiplicativa cwnd: tamaño de la ventana de congestión bic_inc: incremento de ventana por RTT (tiempo de ida y vuelta)
En cada intervalo RTT actualice cwnd con lo siguiente:
Si no se descartan paquetes, la ventana de congestión (cwnd) aumenta de tres maneras distintas: aumento de búsqueda binaria, aumento aditivo e inicio lento. En cada paso, se utiliza uno como incremento.
Un paso para aumentar cwnd:
si (cwnd < w max ) // búsqueda binaria O aditiva bic_inc = (w máx - cwnd) / 2; de lo contrario // inicio lento O aditivo bic_inc = cwnd - w máximo ; si (bic_inc > S max ) // aditivo bic_inc = S máx ; de lo contrario si (bic_inc < S min ) // búsqueda binaria O inicio lento bic_inc = S mínimo ; cwnd = cwnd + (bic_inc / cwnd);
Si se descartan uno o más paquetes, el cwnd se reduce mediante una disminución multiplicativa . Esto requiere β, que se utiliza para disminuir el cwnd en (100×β) %. En el caso de dos flujos, uno con un cwnd grande y el otro con un cwnd pequeño, se utiliza la convergencia rápida para disminuir el wmax del flujo de cwnd mayor a una tasa mayor que el flujo del cwnd menor para permitir una convergencia más rápida del flujo del cwnd mayor al aumentar su cwnd.
Un paso para disminuir cwnd:
si (cwnd < w max ) // convergencia rápida wmáx = cwnd * (2-β) / 2 ; demás wmáx = cwnd; cwnd = cwnd * (1-β);
{{cite journal}}
: Requiere citar revista |journal=
( ayuda )