Изменения

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

Data link layer - Flow control

1088 байт добавлено, 16:59, 12 декабря 2016
Нет описания правки
Для надежной передачи данных на канальном уровне необходимо решить следующую проблему:  Если мы попробуем передавать данные сразу как только они у нас появляются, тов случае когда отправитель работает быстрее, чем получатель может обрабатывать поступающую информацию, произойдет переполнение буфера и мы начнем терять данные. Чтобы это предотвратить, нам необходимо осуществлять управление потоком. Управление потоком позволяет получателю контролировать скорость передачи данных, чтобы предотвратить чрезмерную загрузку в случае более быстрого отправителя.  Канальный уровень не отвечает за само [https://en.wikipedia.org/wiki/Network_congestion#Congestion_control переполнение] (что делать, когда буфер переполнился), эта проблема решается на более высоких уровнях.
Управление потоком передачи даных выполняется [[Data link layer - LLC | LLC]] подуровнем.
* Получать обратную связь от приемника.
* Статически ограничить скорость передачи.
Второй способ реализуют вышележащими уровнями, поэтому здесь будем рассматривать рассмотрим протоколыпередачи данных, использующие обратную в которых используется обратная связьдля информирования отправителя о состоянии дел у получателя.
==Stop-and-wait==
При повторных отправках кадра возникает проблема с возможными дубликатами: если был потерян ACK, то получателю кадр придет дважды. Поэтому нам нужно добавить информацию, чтобы различать кадры. Так как мы не начинаем отправку следующего кадра, пока не будет получен ACK по предыдущему, нам достаточно, чтобы 2 последовательных кадра имели разный номер. Для этого нужен всего один бит. Номера нужно добавить и в кадры с данными, и в кадры с подтверждениями.
На полученный дубликат нужно тоже выслать подтверждение (чтобы не было бесконечной переотправки), но проигнорировать сам дубликат.
[[Файл:Stop-wait-sender.jpeg]] [[Файл:Stop-wait-receiver.jpeg]]  
Проблема этого протокола в том, что мы неэффективно используем канал. Всегда занимаемся передачей только одного кадра, во время ожидания ACK ничего не делаем.
==Протокол скользящего окна. ==
Каждый исходящий кадр содержит свой порядковый номер.
На этот номер отводится поле размером ''n'' бит.
26
правок

Навигация