26
правок
Изменения
→Протокол скользящего окна.
==Протокол скользящего окна. ==
Каждый исходящий кадр содержит свой порядковый номер.
На этот номер отводится поле размером ''n'' бит. Соответственно максимальный размер окна количество различных номеров ''N'' = <math>2^n</math>
В каждый момент времени отправитель и получатель работают с кадрами, которые попадают в их окно (посылающее и принимающее). Окна у отправителя и получателя могут быть разных размеров. [[Файл:Sliding-window-1.jpg|right|thumb]]
Порядковые номера в посылающем окне указывают на отправленные кадры, по которым еще не пришли подтверждения. При отправке кадра сдвигается верхняя граница окна, и окно расширяется.
При получении подтверждения сдвигается нижняя граница и окно сужается. Все Если не получаем ACK по таймеру, высылаем заново кадры в окне. Поэтому все кадры попадающие в окно, должны оставаться в буфере у отправителя.
Получатель также работает с принимающим окном, которое указывает, какие кадры в данный момент может принять получатель. Когда приходит кадр с номером соответствующим нижней границе окна - она сдвигается, высылается ACKв котором указывается новая нижняя граница принимающего окна, кадр выдается сетевому уровню. Кадры не попадающие в окно - удаляются. Но при этом мы все равно отправляем ACK с текущей нижней границей.
====Протокол однобитового окна====
В случае если на номер отводится 1 бит, и ширина окна w = 1, протокол скользящего окна соответствует протоколу Stop And Wait.
==== Протокол с возвратом на Nn====
Конвейерная обработка.
При ширине окна ''w> 1'', мы можем послать сразу w кадров.
Возможна ошибка при передаче одного из этих w кадров:
* Возврат на N n - игнорируем все кадры с номером выше поврежденного
* Выборочный повтор - буферизуем нормальные кадры.
** (a) Высылаем максимальный ACK(номер новой нижней границы), ждем что по истечении таймера отправитель не получив ACK вышлет потерянный пакет заново.
** (b) Высылаем NAK - запрос на повторную отправку конкретного пакета
[[Файл:Sliding-window-2.jpg]]
Номера кадров ''x'' берутся по модулю ''N''.
Ширина окна может варьироваться. Не трудно заметить, что нет смысла делать принимающее окно размера большего чем посылающее окно.
При этом размер посылающего окна ''w'' должен быть ограничен и удовлетворять неравенству ''N >= 2w''. Ограничение возникает из-за того, что получателю нужно различать новые кадры, и кадры повторно отправленные.
==Ссылки==