Поскольку получатель не сможет различить старый пакет или новый пакет.Приемник идентифицирует пакеты на основе порядковых номеров, и для каждого соединения существует конечное число уникальных номеров.Вы не можете иметь бесконечный буфер.
Давайте рассмотрим очевидный сценарий сбоя:
Размер окна больше, чем пространство порядкового номера.Допустим, у нас есть порядковые номера 0, 1, 2. И наш размер окна равен 4. Это означает, что у окна есть два вхождения 0.
0,1,2,0 <- перенос по модулю.Когда мы получаем пакет с последовательностью, равной 0. Это первый пакет или четвертый?Понятия не имею.Теперь эта проблема возникнет, поскольку размер окна превышает половину пространства порядкового номера.Зачем?Потому что всегда существует вероятность того, что получатель просматривает порядковый номер, который МОЖЕТ содержаться в пакете, поступающем от отправителя, который НОВЫЙ или СТАРЫЙ.Это всегда случается?Нет. Но когда это происходит, вот что происходит: </p>
Случай 1:
Окно получателя после правильного приема пакетов 0,1,2.0,1,2, [3,0,1], 2 Но что, если отправленные ACK потеряны?Ну, отправитель отправит 0,1,2.Но 0,1 СТАРЫЙ или НОВЫЙ?Приемник не может сказать.
Случай 2:
То же окно на приемном конце.Три пакета получены.
0,1,2, [3,0,1], 2
Теперь получатель получает ВСЕ подтверждения, но ОДИН из них правильно.Давайте выберем 2-й (1).Теперь он собирается отправить 1. Но получатель смотрит на 1!Так это новый, как он ожидает (нет), или старый?
Поэтому, чтобы гарантировать, что окно никогда не ожидает порядковые номера, которые могут быть использованы потенциальными ожидающими пакетами (либо поступающими изнормальная передача или повторная передача пропущенного подтверждения) мы должны либо уменьшить размер окна, либо увеличить порядковые номера.
Посмотрите, что произойдет, когда мы увеличим пространство порядковых номеров, скажем, до 6.
0,1,2,3,4,5.
Независимо от того, как мы позиционируем окно, никогда не рискует получить пакет со старым порядковым номером.
0,1,2, [3,4,5] 0,1...
К тому времени, когда окно закроется, мы уверены, что уже получили предыдущие по порядку.