Телекоммуникационные технологии. Том 1




TCP Westwood - часть 2


if(произошел таймаут RTO)

cwin=1;

ssthresh=(BE*RTTmin/seg_size;

if(ssthresh<2)

ssthresh=2;

endif

endif

В случае использования комбинированного алгоритма CRB (Combined RE/BE), где применен более сложный алгоритм оценки загрузки и доступной полосы пропускания, присвоение значений cwin и ssthresh производится согласно следующим соотношениям: (вариант потери с индикацией посредством присылки 3 DUPACK)

if(получено 3 DUPACK)
if(cwin/((RE*RTTmin)/seg_size>0)/* сеть перегружена */
ssthresh = (RE*RTTmin)/seg_size;
else /* перегрузки нет */
ssthresh = (BE*RTTmin)/seg_size;
endif
if(cwin> ssthresh)/* исключение перегрузки */
cwin = ssthresh;
endif;

endif


В случае, когда потеря пакета индицируется по таймауту, значения cwin и ssthresh вычисляются следующим образом.

if(произошел таймаут RTO)

cwin=1;

ssthresh=(BE*RTTmin/seg_size;

if(ssthresh<2)

ssthresh=2;

endif;

endif

Заметим также, что объекты, вовлеченные соединения оказываются в определенной мере синхронизованными. Это связано с тем, что когда происходит любое столкновение, сопряженное с увеличением ширины окна, когда буфер полон, все приходящие ячейки, принадлежащие пакетам, отбрасываются. В предположении о постоянной готовности отправителя к передаче и о том, что временной разброс ячеек не превосходит время пересылки пакета во входном канале, все соединения будут передавать ячейки в течение времени транспортировки пакетов вовлеченных в столкновение. Следовательно, все соединения теряют пакеты и сокращают вдвое ширину окна в пределах RTT.

Помимо таймаута, в протоколе TCP предусмотрена еще одна возможность уведомления отправителя о потере сегмента. Получатель, контролируя номера приходящих сегментов и обнаружив потерю, может начать посылать двойные ACK для пакетов, следующих за потерянным сегментом. Приход таких дублированных ACK позволяет разрешить проблему до истечения времени таймаута RTO (смотри описание алгоритма TCP-reno). Понятно, что для последнего сегмента в сообщении этот метод не работает и остается только таймаут.


Содержание  Назад  Вперед