Какой номер ACK отправляет получатель после быстрой повторной передачи по TCP? - PullRequest
0 голосов
/ 26 декабря 2018

Я узнал, что после трех дублированных ACK (т.е. всего 4 ACK с одинаковым значением) отправитель предполагает, что пакет был потерян, и снова отправляет пакет с этим значением.

Вотграфик из книги, которую я читаю:

enter image description here

В этом случае, что отвечает получатель? ACK 120 илиACK 157?

1 Ответ

0 голосов
/ 26 декабря 2018

Это действительно зависит от того, был ли согласован SACK (Selective ACK).Если он имеет:

  • Каждая повторная передача ACK 100 будет включать в себя опцию TCP SACK, указывающую совокупность байтов, которые были получены после отсутствующего сегмента, ожидающего, если пробел заполнен
  • Учитывая то, что вы показываете, вы должны увидеть SACK, указывающий, что смещения 120-135, затем 120-141, затем 120-157.
  • Когда передаются недостающие 20 байтов, вы увидите ACK 157

Если SACK не был согласован:

  • Вы увидите ACK 100, указывающий отсутствующий сегмент для каждого сегмента после этого
  • Когда отправляется отсутствующий сегмент, если он содержиттолько исходные 20 байтов, ACK будет для 120 и все последующие сегменты также должны быть повторно переданы .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...