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 [2, 5,
7, 8]. Ellos son conocidos con slow start, congestion avoidance, fast
retransmit y fast recovery.
Los algoritmos slow start y
congestion avoidance, deben ser utilizados por la fuente TCP a los efectos de controlar
la cantidad de tráfico inyectado en la red.
Para esto se cuenta con tres
variables de estado delprotocolo. Estas son cwnd (congestion 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 que 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 que2 x SMSS1 bytes y no mayor a dos segmentos. El valor de ssthresh
debería ser lo más alto posible al comienzo (por ejemplo, igual a rwnd) 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.
A partir de allí se inicia la
fase de congestion avoidance donde cwnd se incrementa en un segmento por
round-triptime (tiempo que transcurre entre que sale un segmento y llega el ACK
asociado). Esta fase continua hasta que se alcanza la congestión nuevamente.
No hay comentarios:
Publicar un comentario