Выборочный повтор при потере всех подтверждений
Итак, я получил этот вопрос из книги, но сам не могу найти ответа, а также не нашел ничего связанного с ним в другом месте.
В любом случае ситуация такова, что бит порядкового номера равен 2 , поэтому последовательность будет следующей: \
00 01 10 11 00 ....
и размер окна 2^(2-1)=2 .
Таким образом, передача будет выглядеть примерно так (я думаю):
- Отправитель отправляет: 00 и 01.
- Получатель получает: 00 и 01.
- Получатель отправляет ACK для 00 и 01, но оба теряются . Так что таймер для них еще работает.
Итак, теперь получатель ожидает получить 10 и 11. - Когда таймер отправителя истекает, он повторно отправляет 00 и 01, ожидающие пакеты окна отправителя.
- Но получатель отбрасывает их, поскольку эти пакеты находятся за пределами его окна, и отправляет ACK с 10, самым ранним ожидающим пакетом в окне получателя.
- Когда отправитель получает этот ACK, отправитель отбрасывает ACK, потому что ACK находится за пределами окна отправителя.
А в протоколе SR ACK не накапливается, поэтому окно отправителя остается прежним.
И последние три шага повторяются, поэтому передача застревает в цикле.
Так я что-то упускаю? Или это просто ограничение протокола выборочного повтора?