Повторная передача ТСР

Последняя функция, о которой следует поговорить, - это возможность ТСР определять, когда осуществлять повторную передачу пакета. Так как данные передаются по сети Internet, в которой происходят различные временные задержки, что обусловлено загруженностью маршрутизаторов и наличием низко- или высокоскоростных сетей, почти невозможно точно определить временную задержку до прихода подтверждения. Подтверждение может прийти, например, за время, измеряемое миллисекундами, а в другой раз это займет секунды, что объясняется гетерогенной природой Internet. ТСР подстраивается под переменные задержки при помощи адаптивного алгоритма повторной передачи. Он резервирует время динамически (не привязываясь к одному значению) и работает следующим образом. Передавая пакет для отправки, ТСР записывает время передачи и порядковый номер сегмента. После получения подтверждения сегмента, ТСР снова записывает время. По этой разнице определяется дискретное время круговой задержки, а затем – среднее время, необходимое для отправления пакета и получения подтверждения. Вычислив новое значение по новым данным, ТСР будет медленно изменять временной интервал ожидания пакета подтверждения.