Я читал книгу "Компьютерная сеть: подход сверху вниз" и столкнулся с вопросом, который, похоже, не понимаю.
Когда я прочитал, TCP-контроль перегрузки имеет три состояния: медленный старт, предотвращение перегрузки и быстрое восстановление. Я понимаю медленный старт и предотвращение перегрузок, но быстрое восстановление довольно расплывчато. В книге утверждается, что TCP ведет себя следующим образом: (cwnd = окно перегрузки)
Посмотрите на следующий график:
Как мы видим, на 16-м раунде отправитель отправляет 42 сегмента, а так как размер окна перегруженности был уменьшен в два раза (+3), мы можем сделать вывод, что было 3 Duplicate-ACK. Ответ на этот вопрос утверждает, что раунды между 16 и 22 находятся в состоянии предотвращения перегрузки. Но почему бы не Быстрое восстановление? Я имею в виду, что после трех дубликатов ACK TCP вводит быстрое восстановление и все остальные дубликаты ACK, поскольку они должны увеличить окно перегрузки. Почему граф не имеет представления об этом? Единственное разумное объяснение, о котором я мог думать, это то, что на этом графике было только три дубликатных ACK, и ACK, которые были получены с тех пор, не были дублированиями.
Даже если это так, граф выглядел бы, если бы было более трех дублированных ACK? **
Есть ли какое-либо представление быстрого восстановления на графике выше? Почему нет/да?
** Я долгое время пытался ответить на этот вопрос. Я буду очень рад за любой ответ, спасибо!
ОБНОВЛЕНИЕ здесь изображение. Я думаю, что раунд определяется как когда все сегменты в окне ACKed. На фотографии показан круг с кругом.
Почему cwnd растет экспоненциально в состоянии Fast Recovery? (в изображении я случайно написал целесообразно вместо экспоненциально)