Ретрансляция TCP против быстрой ретрансляции TCP

9

В Wireshark я вижу такие вещи, как «Ретрансляция TCP» и «Быстрая ретрансляция TCP». Какая разница? Как Wireshark может определить разницу?

tony_sid
источник

Ответы:

8

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

TCP Retransmission - это просто пакет, который не подтверждается в течение времени ожидания.

TCP Fast Retransmission - это когда источник получает подтверждение того, что пакет не был получен ... цитата из Fast retransmit - Wikipedia, бесплатная энциклопедия

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

Тео
источник
Вы уверены в количестве ACK? Я видел, как это случилось с тремя ACK.
tony_sid
2
Нет. Я уверен в том, что быстрая повторная передача происходит, когда отправитель обнаруживает проблемы из-за множественных подтверждений последовательности.
Тео,
3
Кроме того, он говорит быстро, но это такая же скорость, как и обычная ретрансляция. Причина, по которой он называется быстрым, заключается в том, что вы получаете уведомление о проблеме, а не ожидаете тайм-аут. Таким образом, весь процесс происходит «быстрее».
Тео
6

Я переварил это от Microsoft :

TCP запускает таймер повторной передачи, когда каждый исходящий сегмент передается на уровень Интернет-протокола (IP). Если TCP не получает подтверждение данных в данном сегменте до истечения таймера, сегмент передается повторно.

Тайм-аут повторной передачи корректируется на лету, чтобы соответствовать характеристикам соединения, используя вычисления сглаженного двустороннего времени (SRTT), как описано в статье Ван Якобсона и Майка Карелса «Предотвращение перегрузки и контроль» в материалах конференции ACM SIGCOMM. о передаче данных, ноябрь 1988 года. Этот документ можно найти в цифровой библиотеке ACM в Ассоциации вычислительной техники. Для получения дополнительной информации о вычислениях SRTT см. RFC 793: Спецификация протокола Интернет-программы DARPA . Время ожидания повторной передачи для данного сегмента удваивается после каждой повторной передачи этого сегмента.

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

При некоторых обстоятельствах TCP повторно передает данные до истечения таймера повторной передачи определенного сегмента. Наиболее распространенное такое обстоятельство возникает из-за функции, известной как быстрая повторная передача.

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

Когда отправитель получает поток дубликатов ACK, которые подтверждают тот же порядковый номер, и указанный порядковый номер является более ранним, чем порядковый номер текущего сегмента, который отправляется, отправитель может сделать вывод, что один или несколько сегментов, которые он ранее отправил, были отброшены. После получения определенного количества дублированных ACK отправители, которые поддерживают алгоритм быстрой повторной передачи, повторно отправляют сегмент или сегменты, которые получатель запрашивает, чтобы заполнить пробел в данных, не дожидаясь истечения таймера повторной передачи для отсутствующих сегментов. Эта оптимизация значительно повышает производительность в загруженной сетевой среде.

При быстрой повторной передаче отправитель повторно передает отсутствующие сегменты TCP до истечения времени их таймеров повторной передачи. Поскольку таймеры повторной передачи не истекли для отсутствующих сегментов TCP, отсутствующие сегменты принимаются в пункте назначения и подтверждаются получателем быстрее, чем они были бы без быстрой повторной передачи, и отправитель может более быстро отправлять более поздние сегменты получателю. Этот процесс известен как быстрое восстановление. Быстрая повторная передача и быстрое восстановление описаны в RFC 2581: TCP Congestion Control .

Majenko
источник
2

Повторная передача, по сути идентичная автоматическому повторному запросу (ARQ), представляет собой повторную отправку пакетов, которые были либо повреждены, либо потеряны. Этот термин относится к одному из основных механизмов, используемых протоколами, работающими в компьютерной сети с коммутацией пакетов, для обеспечения надежной связи. НО Fast Retransmit - это усовершенствование TCP, которое сокращает время ожидания отправителя перед повторной передачей потерянного сегмента. Усовершенствование быстрой повторной передачи работает следующим образом: если отправитель TCP получает указанное количество подтверждений, которое обычно устанавливается на три повторяющихся подтверждения с одним и тем же Подтвердив номер (то есть всего четыре подтверждения с одним и тем же номером подтверждения), отправитель может быть разумно уверен, что сегмент со следующим более высоким порядковым номером был отброшен, и не поступит из строя. Затем отправитель повторно передает пакет, который предположительно был отброшен, прежде чем ожидать истечения времени ожидания. проверьте эту ссылку для более подробной информации и алгоритма http://www.isi.edu/nsnam/DIRECTED_RESEARCH/DR_WANIDA/DR/JavisInActionFastRetransmitFrame.html

Ханна
источник
1

Проще говоря, ретрансляция TCP в основном зависит от времени ожидания пакета для обнаружения пропуска, в то время как в быстрой ретрансляции TCP двойное подтверждение для определенного пакета символизирует его пропущение.

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

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

Rubal
источник