Повторная передача TCP неподтвержденных сегментов

Рубрика: Транспортный уровень

Как бы хорошо не была спроектирована сеть, потеря данных будет происходить время от времени. Поэтому TCP обеспечивает методы управления этими потерями сегментов. Среди них механизм для повторной передачи tcp сегментов с неподтвержденными данными.

Повторная передача TCP сегментов

Служба конечного хоста, использующая TCP, обычно подтверждает только данные для байтов непрерывных последовательностей. Если один или более сегментов отсутствуют, только данные в сегментах, которые завершают поток, будут подтверждены.

Например, если бы сегменты с порядковыми номерами 1500 - 3000 и 3400 - 3500 были получены, то число подтверждения было бы 3001. Это потому что есть сегменты с порядковыми номерами 3001 - 3399, которые не были получены.

Когда TCP на исходном хоcте не получает подтверждение после предопределенного количества времени, он возвращается к последнему числу подтверждения, которое он получил, и повторно передает данные с того момента и далее.

Процесс повторной передачи не определен в RFC, а оставлен для конкретной реализации TCP.

В типичном исполнении TCP хост передает сегмент, помещает копию сегмента в очередь повторной передачи, и запускает таймер. Когда подтверждение данных получено, сегмент удаляется из очереди. Если подтверждение не получено прежде, чем таймер истекает, сегмент отправляется повторно.

На сегодняшний день узлы могут также использовать дополнительную функцию, называемую Селективные Подтверждения. Если оба узла поддерживают Селективные Подтверждения, узел назначения может подтверждать байты в прерывистых (несмежных) сегментах, и хост-источник должен будет повторно передать только недостающие данные.

Далее: Контроль потока tcp

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)