Примеры сетевых топологий


TCP-reno - часть 3


Рассмотрим узловые этапы реализации алгоритма.


1) Три задублированных ACK:

Когда отправителю приходят три задублированных ACK, а он не находится в состоянии Fast Recovery, проверяется, перекрывает ли поле Cumulative Acknowledgement больший диапазон, чем задано переменной recover. Если это так, то исполняется операция 1A. В противном случае 1B.


1A) Запуск Fast Retransmit:

Если система находится в этом режиме, ssthresh делается равным значению не более, чем задано уравнением 1. (Это уравнение 3 из []).


ssthresh = max (FlightSize / 2, 2*SMSS)   (1)


Кроме того, переменная recover делается равной наибольшему порядковуму номеру переданного пакета, и осуществляется переход к пункту 2.


1B) Без быстрой повторной передачи:

Не производится вход в режим быстрой повторной передачи и быстрого восстановления. В частности не изменяется ssthresh, не выполняется переход к пункту 2, чтобы передать потерянный сегмент, и не делается перехода к пункту 3 при последующих задублированных ACK.


2) Вход в режим быстрой повторной передачи:

Передается потерянный сегмент и устанавливается cwnd равным ssthresh плюс 3*SMSS.

Это искуственно увеличивает окно перегрузки на несколько сегментов (три), которые покинули сеть и буферизованы получателем.


3) Быстрое восстановление:

Для каждого нового дублированного ACK, полученного в режиме быстрого восстановления, cwnd увеличивается на SMSS. Это искуственно увеличивает окно перегрузки, для того чтобы учесть сегмент, который покинул сеть.


4) Быстрое восстановление, продолжение:

Сегмент передается, если это разрешено новым значением cwnd и значением window, объявленным получателем.


5) Когда приходит ACK, подтверждающее получение новых данных, это ACK может быть подтверждением, связанным с повторной передачей во время этапа 2 или с более поздней повторной передачей.


Полное подтверждение:

Если ACK подтверждает все данные вплоть до позиции, указанной переменной recover, тогда ACK подтверждает получение промежуточных сегментов, начиная с передачи потерянного сегмента и получения тройного диблированного ACK. cwnd устанавливается либо (1) min (ssthresh, FlightSize + SMSS) либо (2) ssthresh, где ssthresh равно значению, установленному на этапе 1; это называется снижением ("сдутием") значения окна.


Начало  Назад  Вперед



Книжный магазин