Введение

Второй слой сетевой модели OSI

Слой канального уровня, или слой 2, является вторым слоем семиуровневой модели OSI для компьютерных сетей. Этот слой представляет собой протокольный уровень, который передает данные между узлами в пределах одного сетевого сегмента, используя физический уровень. Слой канального уровня обеспечивает функциональные и процедурные средства для передачи данных между сетевыми сущностями, а также может предоставлять средства для обнаружения и, возможно, исправления ошибок, возникающих на физическом уровне. Слой канального уровня отвечает за локальную доставку кадров между узлами на одном уровне сети. Кадры канального уровня, так называемые протокольные пакеты данных, не пересекают границы локальной сети. Межсетевая маршрутизация и глобальная адресация – это функции более высоких уровней, позволяющие протоколам канального уровня сосредоточиться на локальной доставке, адресации и управлении доступом к среде передачи. Таким образом, слой канального уровня можно сравнить с регулировщиком дорожного движения в районе; он стремится разрешать конфликты между участниками, претендующими на доступ к среде, не заботясь об их конечном пункте назначения. Когда устройства пытаются одновременно использовать среду передачи, происходят коллизии кадров. Протоколы канального уровня определяют, как устройства обнаруживают и восстанавливаются после таких коллизий, и могут предоставлять механизмы для их уменьшения или предотвращения. Примерами протоколов канального уровня являются Ethernet, протоколы IEEE 802.11 WiFi, ATM и Frame Relay. В наборе протоколов TCP/IP функциональность слоя канального уровня содержится в канальном уровне – самом нижнем уровне описательной модели, который считается независимым от физической инфраструктуры.

Функция

Данная линия связи обеспечивает передачу кадров данных между хостами, подключенными к физической среде. В рамках семантики сетевой архитектуры OSI, протоколы канального уровня отвечают на запросы от сетевого уровня и выполняют свои функции, формируя запросы к физическому уровню. Эта передача может быть надежной или ненадежной; многие протоколы канального уровня не предусматривают подтверждений об успешном приеме и обработке кадров, а некоторые даже не выполняют проверку на ошибки передачи. В таких случаях протоколы более высоких уровней должны обеспечивать управление потоком данных, контроль ошибок, подтверждения и повторную передачу. Заголовок кадра содержит адреса отправителя и получателя, указывающие, какое устройство инициировало передачу кадра и какое устройство должно его принять и обработать. В отличие от иерархических и маршрутизируемых адресов сетевого уровня, адреса канального уровня являются плоскими, то есть ни одна часть адреса не может быть использована для идентификации логической или физической группы, к которой он принадлежит. В некоторых сетях, таких как локальные сети IEEE 802, канальный уровень описывается более подробно с использованием подслоев управления доступом к среде (MAC) и управления логической связью (LLC); это означает, что протокол IEEE 802.2 LLC может использоваться со всеми слоями MAC IEEE 802, такими как Ethernet, Token Ring, IEEE 802.11 и т.д., а также с некоторыми слоями MAC, не относящимися к стандарту 802, например, FDDI. Другие протоколы канального уровня, такие как HDLC, определяют использование обоих подслоев, хотя некоторые другие протоколы, такие как Cisco HDLC, используют низкоуровневую структуру кадров HDLC в качестве слоя MAC в сочетании с другим слоем LLC. В стандарте ITU-T G.hn, который позволяет создавать высокоскоростную (до 1 Гбит/с) локальную сеть с использованием существующей домашней проводки (электропроводки, телефонных линий и коаксиальных кабелей), канальный уровень разделен на три подслоя: конвергенция протокола прикладного уровня, управление логической связью и управление доступом к среде.

Подслои

Слой канального уровня часто подразделяется на два подслоя: управление логической связью (LLC) и управление доступом к среде (MAC).

Подслой управления логической связью

Самый верхний подслой, LLC, мультиплексирует протоколы, работающие над уровнем канала передачи данных, и может обеспечивать управление потоком, подтверждение получения и уведомление об ошибках. LLC обеспечивает адресацию и управление каналом передачи данных, определяя механизмы для адресации станций в среде передачи и управления обменом данными между отправляющими и принимающими устройствами.

Подслой управления доступом к медиа

MAC может относиться к подслою, определяющему, кому разрешено использовать среду передачи в любой момент времени (например, CSMA/CD). В других случаях он относится к структуре кадра, передаваемой на основе MAC-адресов внутри него. Существуют, как правило, две формы управления доступом к среде: распределенная и централизованная. Обе эти формы можно сравнить с общением между людьми. В сети, состоящей из говорящих людей, то есть в разговоре, каждый из них будет делать паузу на случайный промежуток времени, а затем пытаться говорить снова, фактически создавая сложную игру в «нет, вы проходите первым». Подслой управления доступом к среде также выполняет синхронизацию кадров, определяющую начало и конец каждого кадра данных в потоке передаваемых битов. Он включает в себя один из нескольких методов: обнаружение по времени, подсчет символов, заполнение байтами и заполнение битами. Метод, основанный на времени, предполагает заданный интервал времени между кадрами. Подсчет символов отслеживает количество оставшихся символов в заголовке кадра. Однако этот метод легко нарушается при повреждении этого поля. Заполнение байтами предшествует кадру специальной последовательностью байтов, такой как DLE STX, и завершается DLE ETX. Встречающиеся символы DLE (байтное значение 0x10) должны быть экранированы другим символом DLE. На приемнике знаки начала и конца кадра обнаруживаются и удаляются, а также удаляются вставленные символы DLE. Аналогично, заполнение битами заменяет эти знаки начала и конца флагами, состоящими из специального битового шаблона (например, 0, шесть 1 и 0). Встречающиеся в передаваемых данных экземпляры этого битового шаблона предотвращаются путем вставки бита. Например, если флаг равен 01111110, после пяти последовательных 1 в потоке данных вставляется 0. Флаги и вставленные нули удаляются на принимающей стороне. Это обеспечивает передачу кадров произвольной длины и упрощает синхронизацию для получателя. Бит заполнения добавляется даже в том случае, если следующий бит данных равен 0, что не может быть ошибочно принято за последовательность синхронизации, чтобы приемник мог однозначно различать биты заполнения и обычные биты.

Отношение к модели TCP/IP

В пакете протоколов Интернета (TCP/IP) функциональность канального уровня модели OSI содержится в его самом нижнем уровне – уровне канала связи. Область действия TCP/IP-уровня канала связи ограничена подключением, к которому подключен хост, и он занимается только аппаратными вопросами до момента получения аппаратных (MAC) адресов для определения местоположения хостов в сети и передачи кадров данных в канал связи. Функциональность канального уровня описана в RFC 1122 и определена иначе, чем канальный уровень модели OSI, охватывая все методы, влияющие на локальный канал связи. Модель TCP/IP не является исчерпывающей эталонной моделью для проектирования сетей, построенной сверху вниз. Она была разработана для иллюстрации логических групп и областей функций, необходимых при проектировании набора сетевых протоколов TCP/IP, необходимых для функционирования Интернета. В целом, следует избегать прямых или строгих сравнений моделей OSI и TCP/IP, поскольку многоуровневость в TCP/IP не является принципиальным критерием проектирования и в целом считается нежелательной (RFC 3439). В частности, TCP/IP не предписывает строгую иерархическую последовательность требований к инкапсуляции, как это характерно для протоколов OSI.