Эталонная модель OSI: оборудование уровня 2
Если вы хотите прочитать другие части этой серии статей, перейдите по ссылке:
- Эталонная модель OSI: оборудование уровня 1
- Эталонная модель OSI: оборудование уровня 3
- Эталонная модель OSI: оборудование уровня 4
В моей последней статье я представил эталонную модель Open System Interconnect (OSI) и обсудил ее первый уровень; Физический уровень. В этой статье я расскажу о втором уровне, канальном уровне, с аппаратной точки зрения.
Канальный уровень предоставляет функциональные и процедурные методы передачи данных между двумя точками. Существует пять общих функций, за которые отвечает канальный уровень. Эти функции:
- Логическое управление ссылками
- Контроль доступа к медиа
- Фрейминг данных
- Адресация
- Обнаружение ошибок
Логическое управление ссылками
Управление логическим каналом (LLC) обычно считается подуровнем уровня канала передачи данных (DLL), а не функцией DLL. Этот подуровень LLC в первую очередь связан с протоколами мультиплексирования, которые должны быть отправлены через подуровень управления доступом к среде (MAC). LLC делает это, разбивая отправляемые данные на более мелкие кадры и добавляя к этим кадрам описательную информацию, называемую заголовками.
Контроль доступа к медиа
Как и LLC, управление доступом к среде (MAC) считается подуровнем DLL, а не функцией DLL. В этот подуровень входит так называемый MAC-адрес. MAC-адрес обеспечивает этот подуровень уникальным идентификатором, чтобы каждая точка доступа к сети могла связываться с сетью. Подуровень MAC также отвечает за фактический доступ к сетевому кабелю или среде связи.
Фрейминг данных
Если бы кто-то просто отправлял данные в сетевой носитель, ничего бы не произошло. Получатель должен знать, как и когда считывать данные. Это может произойти несколькими способами и является единственной целью кадрирования. В общих чертах, кадрирование организует данные для передачи и окружает эти данные описательной информацией, называемой заголовками. Что и сколько информации содержат эти заголовки, определяется протоколом, используемым в сети, например Ethernet.
Структура фрейма, связанного с протоколом Ethernet, показана ниже на рисунке 1.
Рисунок 1: Структура кадра Ethernet (любезно предоставлено Википедией)
Адресация
Адресация на уровне 2 происходит, как я упоминал ранее, с MAC-адресом подуровня MAC. Очень важно не путать это с сетевой или IP-адресацией. Может быть полезно связать MAC-адрес с конкретной точкой доступа к сети и сетевым или IP-адресом, связанным со всем устройством (например, с компьютером, сервером или маршрутизатором).
Говоря о маршрутизаторах, имейте в виду, что маршрутизаторы работают на уровне 3, а не на уровне 2. Коммутаторы и концентраторы работают на уровне два и, следовательно, направляют данные на основе адресации уровня 2 (MAC-адреса) и не знают об IP или сетевой адресации. И просто для того, чтобы мой почтовый ящик не был заполнен жалобами… да, я знаю… некоторые маршрутизаторы также включают функциональность уровня 2. Я буду обсуждать маршрутизаторы с функциональностью уровня 2 в другой будущей статье.
Обнаружение ошибок и обработка
Всякий раз, когда данные отправляются по любому типу среды передачи, существует вероятность того, что данные не будут получены точно так, как они были отправлены. Это может быть связано со многими факторами, включая помехи и, в случае длительных передач, затухание сигнала. Итак, как получатель может узнать, свободны ли полученные данные от ошибок? Есть несколько методов, которые могут быть реализованы для достижения этой цели. Некоторые из этих методов просты и несколько эффективны, другие сложны и очень эффективны.
Биты четности являются примером простого протокола обнаружения ошибок, который, несмотря на его ограниченную эффективность, широко используется. Проще говоря, бит четности — это дополнительный бит, добавляемый к сообщению. Есть два варианта значения этого бита. Какое значение будет выбрано, зависит от типа используемого определения бита четности. Эти два варианта являются четным и нечетным определением четности. Если используется четная четность, то бит четности устанавливается в значение («1» или «0»), чтобы количество «1» в сообщении было четным. Аналогичным образом, если используется нечетная четность, бит четности устанавливается на значение, необходимое для того, чтобы количество единиц в сообщении было нечетным.
При использовании обнаружения ошибок бита четности приемник будет проверять все единицы в кадре, включая бит четности. Приемник будет иметь настройку четности или нечетности; если количество единиц в кадре не соответствует этому параметру, обнаруживается ошибка. Это здорово, но, как я упоминал ранее, эффективность этого метода обнаружения ошибок ограничена. Он ограничен, потому что если в кадре есть четное количество ошибок, то будет поддерживаться четность или нечетность количества единиц, и этот метод не сможет обнаружить никаких ошибок - поэтому необходим более строгий метод обнаружения ошибок.
Метод обнаружения ошибок контрольной суммы может дать нам больше строгости, особенно если используется с методом битов четности. Метод контрольной суммы, как следует из его названия, в основном проверяет сумму всех «1» в сообщении и сравнивает это значение со значением контрольной суммы, добавленным отправителем к сообщению. Хотя метод контрольной суммы может обеспечить большую точность при обнаружении ошибок, все же существуют ограничения. Например, простая контрольная сумма не может обнаружить четное количество ошибок, сумма которых равна нулю, вставку байтов, сумма которых равна нулю, или даже изменение порядка байтов в сообщении. Хотя есть несколько более продвинутых реализаций метода контрольной суммы, включая метод контрольной суммы Флетчера, здесь я рассмотрю еще более строгий метод.
Одним из самых строгих методов обнаружения ошибок является контроль циклическим избыточным кодом (CRC). Что делает CRC, так это преобразует сообщение в полином, где значения коэффициентов соответствуют битам в сообщении, а затем делит этот полином на заданный или стандартный полином, называемый ключом. Ответ, точнее оставшаяся часть ответа, — это то, что отправляется вместе с сообщением получателю. Получатель выполняет такое же полиномиальное деление с тем же ключом, а затем проверяет ответ. Если ответы совпадают, то вероятность того, что ошибок не было, довольно высока. Я говорю довольно хорошо, потому что существует множество возможных полиномов, которые можно использовать для ключа, и не все полиномы обеспечивают одинаково хорошее обнаружение ошибок. Как правило, более длинные полиномы обеспечивают лучшее обнаружение ошибок, но математика, связанная с этим, довольно сложна, и, как и во многих аспектах технологии, ведутся споры о том, какие реализации этого метода обеспечивают лучшее обнаружение ошибок.
Наконец, я хотел бы отметить, что эти методы обнаружения ошибок не ограничиваются передачей данных по сети; их можно одинаково хорошо использовать в сценарии хранения данных, когда нужно проверить, не были ли данные повреждены.
В моей следующей статье я расскажу о третьем уровне модели OSI. Я также объясню немного подробнее, почему маршрутизаторы (в основном) относятся к 3-му слою, а не ко 2-му. И, как всегда, если у вас есть какие-либо вопросы по поводу этой или любой предыдущей статьи, пожалуйста, не стесняйтесь, пишите мне по электронной почте, и я сделаю все возможное, чтобы ответить на любые вопросы.
- Эталонная модель OSI: оборудование уровня 1
- Эталонная модель OSI: оборудование уровня 3
- Эталонная модель OSI: оборудование уровня 4