Изменения

Перейти к: навигация, поиск

Data link layer - Flow control

14 байт добавлено, 13:17, 10 декабря 2016
Нет описания правки
Управление потоком позволяет получателю контролировать скорость передачи данных, чтобы предотвратить чрезмерную загрузку в случае более быстрого отправителя. Канальный уровень не отвечает за само переполнение, эта проблема решается на более высоких уровнях.
Управление потоком передачи даных выполняется [[Data link layer - LLC | LLC]] подуровнем.
Управление потоком позволяет получателю контролировать скорость передачи данных, чтобы предотвратить чрезмерную загрузку в случае более быстрого отправителя. Канальный уровень не отвечает за само переполнение, эта проблема решается на более высоких уровнях.
Управление потоком можно выполнить двумя способами:
* Получать обратную связь от приемника.
* Статически ограничить скорость передачи.
Второй способ реализуют вышележащими уровнями, поэтому здесь будем рассматривать протоколы , использующие обратную связь.
==Stop-and-wait==
Отправитель шлет следующий кадр только после получения подтверждения.
Если не получаем ACK по тайм-ауту, автоматически отправляем кадр повторно.
При повторных отправках кадра возникает проблема с возможными дубликатами: если был потерян ACK, то получателю кадр придет дважды. Поэтому нам нужно добавить информацию, чтобы различать кадры. Т.к. Так как мы не начинаем отправку следующего кадра, пока не будет получен ACK по предыдущему, нам достаточно , чтобы 2 последовательных кадра имели разный номер. Для этого нужен всего один бит. Номера нужно добавить и в кадры с данными, и в кадры с подтверждениями.
На полученный дубликат нужно тоже выслать подтверждение (чтобы не было бесконечной переотправки), но проигнорировать сам дубликат.
Получатель также работает с принимающим окном, которое указывает, какие кадры в данный момент может принять получатель. Когда приходит кадр с номером соответствующим нижней границе окна - она сдвигается, высылается ACK в котором указывается новая нижняя граница принимающего окна, кадр выдается сетевому уровню.
Кадры , не попадающие в окно , - удаляются. Но при этом мы все равно отправляем ACK с текущей нижней границей.
[[Файл:Window-receive.jpg|center]]
* Возврат на n - игнорируем все кадры с номером выше поврежденного
* Выборочный повтор - буферизуем нормальные кадры.
** (a) Высылаем максимальный ACK (номер новой нижней границы), ждем , что по истечении таймера отправитель , не получив ACK , вышлет потерянный пакет заново.
** (b) Высылаем NAK - запрос на повторную отправку конкретного пакета
[[Файл:Sliding-window-2.jpg|center]]
26
правок

Навигация