5.4.3 CONTROL DE CONGESTIÓN EN TCP
El método
utilizado por TCP para control de la congestión es el basado en la regulación
del tráfico inyectado a la red. Esto supone que implementa funciones que le
permiten estudiar cuándo es posible enviar más tráfico por el enlace, y cuándo
se ha superado la capacidad del mismo y se debe disminuir la carga.
TCP emplea 4
algoritmos relacionados entre sí a los efectos de efectuar el control de
congestión. Ellos son conocidos con slow start, congestion avoidance, fast
retransmit y fast recovery.
Slow-start es
un algoritmo de control de congestión del protocolo TCP.Ni el emisor ni el
receptor tienen forma de saber cuál es el máximo volumen de datos que puede
transmitir la red, ninguno tiene información sobre los elementos de red que
transmitirán la información. Si la red se satura comenzará a descartar
paquetes, que tendrán que ser retransmitidos, lo cual puede incrementar aún más
la saturación de la red. La solución que plantea este algoritmo, consiste en
comenzar enviando un volumen de datos pequeño, que se irá aumentando hasta que
la red se sature, en cuyo caso se reducirá la tasa de envío para reducir la
saturación.

Para esto se
cuenta con tres variables de estado del protocolo. Estas son cwnd (congestión
window), que controla del lado de la fuente la cantidad de datos que se puede
enviar sin haber recibido un ACK, rwnd (receiver’s advertised window) que
indica la cantidad de datos que puede recibir el destino y ssthresh (slow start
threshold) que indica en qué fase de control de congestión se encuentra el
transmisor (slow start si es mayor que cwnd o congestion avoidance si es menor;
de ser iguales, se puede utilizar cualquiera de los dos algoritmos).
El mínimo de
cwnd y rwnd gobierna la transmisión.
El algoritmo
slow start es utilizado al comienzo de una transmisión a los efectos de que TCP
pueda testear la red y conocer su capacidad evitando congestionarla. También es
utilizado en el momento de recuperación ante la pérdida de algún segmento,
indicada por timeout. Luego del three-way handshake, el tamaño de la ventana
inicial de envío (IW: initial window) debe ser menor o igual que 2 x SMSS1 bytes y no mayor a dos segmentos.
El valor de
ssthresh debería ser lo más alto posible al comienzo y deberá reducirse en caso
de congestión. Durante la fase slow start se aumenta cwnd en a lo sumo SMSS
bytes por cada ACK recibido de datos nuevos entregados al receptor. Esta fase
culmina cuando cwnd alcanza a ssthresh o cuando se detecta congestión.
No hay comentarios:
Publicar un comentario