На канальном уровнеуправление потоком в канале связи между двумя узлами реализуется за счет применения:
• механизма квитирования;
• механизма тайм-аута;
• механизма скользящего окна.
Квитирование
Механизм квитированияпредназначен для обеспечения надёжной передачи данных (кадров или пакетов) и может быть реализован как на канальном, так и на более высоком уровне (например, сетевом или транспортном) OSI-модели. Реализация механизма квитирования на канальном уровне (в звене передачи данных) показана на рис. 1.47 Положим, что в некоторый момент времени узел У1отправляет в узел У2 кадр с данными (Д), причём копия отправленного кадра сохраняется в буферной памяти узла (рис.1.47,а). Узел У2 после получения кадра от узла У1 подсчитывает контрольную сумму и сравнивает её со значением, содержащимся в концевике. Если эти значения не совпадают, то узел У2 формирует и отправляет узлу У1 специальный служебный кадр (К-), называемый отрицательной квитанцией, свидетельствующей о том, что кадр был передан с ошибкой (рис. 1.47,б). Узел У1 анализирует квитанцию и, если квитанция была отрицательной, повторно посылает тот же самый кадр Д (рис.1.47,в). Если подсчитанная в узле У2 контрольная сумма совпадает со значением, содержащимся в концевике, то узел У2 формирует и отправляет положительную квитанцию (К+),свидетельствующую о том, что кадр был передан без ошибок (рис.1.47,г). Узел У1 анализирует квитанцию и, если квитанция была положительной, удаляет сохранённую копию этого кадра из буферной памяти (рис.1.47,д).
Недостаток рассмотренного механизма квитирования состоит в том, что в случае потери кадра данных или квитанции в процессе передачи между узлами У1и У2 узел-отправитель У1может ожидать прихода квитанции бесконечно долго. При этом становится невозможной передача других данных к узлу У2, что может привести в конечном счёте к прекращению передачи данных в сети. Для исключения подобной ситуации был реализован механизм тайм-аута,заключающийся в следующем. Узел-отправитель У1 после завершения передачи данных (кадра) к узлу У2 запускает таймер и ожидает поступления квитанции (положительной или отрицательной) в течение ограниченного промежутка времени , называемого тайм-аутом.
Величина тайм-аута выбирается из следующего условия: должно быть больше, чем удвоенное время передачи кадра между узлами, то есть . Время передачи кадра между узлами складывается из времени распространения сигнала по каналу связи и времени передачи кадра максимальной длины
Время распространения сигнала по каналу связи определяется как
где L - длина канала и v - скорость распространения сигнала в среде передачи. Время передачи кадра максимальной длины зависит от длины кадра и пропускной способности канала
Тогда: и условие для выбора величины тайм-аута примет вид:
Если по истечении тайм-аута узел-отправитель У1не получает квитанцию, то он повторно передаёт тот же кадр. Для исключения бесконечного числа передач одного и того же кадра обычно устанавливается некоторое предельное количество попыток передать кадр, после которого передача этого кадра прекращается, и данное направление передачи (маршрут) исключается из рассмотрения и в дальнейшем не используется, поскольку предполагается, что канал или узел данного маршрута находится в неисправном состоянии. Для рассматриваемого кадра выбирается новое направление передачи в соответствии с используемым методом маршрутизации.
Недостатком рассмотренного способа передачи данных является низкий коэффициент полезной загрузки канала, обусловленный большими накладными расходами на ожидание и передачу служебных квитанций. Коэффициент полезной загрузки канала, измеряемый как доля времени, используемого для передачи непосредственно пользовательских данных, составляет менее 30%, в чём несложно убедиться, используя следующие рассуждения.
Пусть время передачи кадра данных равно . Как показано выше,
величина тайм-аута выбирается из условия: , где -время распространения сигнала в канале связи, - время передачи кадра максимальной длины. С учётом того, что , положим
. Тогда коэффициент полезной загрузки канала .
Следует иметь в виду, что этот результат справедлив при условии, что положительная квитанция поступила с первого раза. Если же первая передача кадра окажется неудачной, и в узел-отправитель поступит отрицательная квитанция, что потребует повторной передачи кадра, коэффициент полезной загрузки канала окажется гораздо ниже и составит:
, то есть менее 20%. Это означает, что реальная скорость
передачи данных по каналу с пропускной способностью 10 Мбит/с будет составлять менее 2 Мбит/с. Очевидно, что такая ситуация является экономически неприемлемой, особенно для высокоскоростных каналов.