2. Канальный уровень
На канальном уровне (Data Link Layer - DLL) реализуются механизмы обнаружения и коррекции ошибок, возникающих в канале связи между узлами.
Задачи уровня звена передачи данных состоят в следующем:
• Цикловая синхронизация. Канальный уровень данных преобразует поток битов, полученных от сетевого уровня в управляемые модули данных, которые называются кадрами.
• Физическая адресация. Если кадры должны быть распределены
между несколькими различными приемниками, уровень звена передачи данных добавляет заголовок к кадру, чтобы определить конкретный передатчик и/или приемникадра. Если кадр предназначен для системы вне сети передатчика, добавляется адрес приемника или адрес устройства, которое подключает его к другой сети.
• Управление потоком. Если скорость, на которой данные поглощаются приемником, меньше, чем скорость, порождаемая в передатчике, уровень звена передачи данных применяет механизм управления потоком, чтобы предотвратить переполнение приемника.
• Контроль ошибок. Для этого пакет, поступающий с вышележащего (сетевого) уровня, преобразуется в кадр, т. е. дополняется контрольной суммой и обрамляется специальной последовательностью "Флаг", позволяющей определить начало и конец кадра. Наприеме "Флаги" отбрасываются, и снова вычисляется контрольная сумма. Если вычисленная контрольная сумма совпадает с суммой, принятой из кадра, то кадр считается правильным и в виде пакета передается на сетевой уровень, а на передающую сторону высылается квитирующий кадр. В случае искажения или пропажи кадра квитирующий кадр не высылается, и передающая сторона через некоторый промежуток времени возобновляет повторную передачу. Поскольку к узлу (например, маршрутизато ру) обычно подключено несколько каналов связи с различными технологиями передачи кадра, то для каждой технологии передачи канальный уровень добавляет к пакету соответствующее дополнительное поле. Сетевому уровню поставляются пакеты единообразного вида.
• Управление доступом. Когда два или более устройств могут использовать одну и ту же линию связи, протоколы уровня звена передачи данных необходимы для того, чтобы определить, какое устройство может иметь доступ к линии связи в конкретный момент времени.
Самые распространенные протоколы на канальном уровне:
• Протокол последовательной передачи HDLC
• IEEE 802.2 LLC и MAC
• Ethernet
• Token Ring
• FDDI
• х 25
• Frame Relay
----- Объяснение, что такое канальный уровень на другом сайте -----
Канальный уровень идет вторым по счету в семиуровневой модели. На этом уровне у устройств появляются адреса, которые однозначно их идентифицируют, сейчас я говорю про MAC-адреса.
У канального уровня есть две очень важных задачи:
• Первая задача заключается в формирование сообщений из последовательности бит. Эти сообщения имеют строгий формат, благодаря которому будет легко управлять логикой передачи в канале связи, а также процессом доступа к ресурсам канальной среды.
• Вторая задача заключается в обнаружении ошибок, некоторые технологии канального уровня умеют только обнаруживать ошибки, некоторые обнаруживать и исправлять, а некоторые обнаруживать и запрашивать повторную передачу. Количество ошибок, которые можно обнаружить и/или исправить зависит от используемых канальных кодов (подробнее читайте у Таненбаума и Скляра, список литературы есть в первой публикации, в которой мы говорили о данном курсе по компьютерным сетям).
Иногда на канальном уровне решается проблема быстрого передатчика и медленного приемника, то есть может быть реализован механизм, который позволяет приемнику давать указанию передатчику о том, с какой скоростью следует передавать данные.
Типичным устройством канального уровня является сетевой коммутатор, именно благодаря появлению коммутатора в Ethernet сетях появилась возможность реализовать топологию звезда, а после того, как появился протокол STP, у нас появилась возможность строить кольца в Ethernet сетях.