Интернет через Ethernet

Канальный уровень.



Канальный уровень.

Задача канального уровня - обеспечить взаимодействие устройств внутри локальной сети путем передачи специальных блоков данных, которые называются кадрами (frame). В процессе формирования они снабжаются служебной информацией (заголовком), необходимой для корректной доставки получателю, и, в соответствии с правилами доступа к среде передачи, отправляются на физический уровень.

При приеме данных с уровня PHY необходимо выделить кадры, предназначенные данному устройству, проверить их на отсутствие ошибок, и передать сервису или протоколу, которому они предназначались.

Нужно обратить внимание, что именно канальный уровень отправляет, принимает, и повторяет кадры в случае коллизии. Но определяет состояние разделяемой среды физический уровень. Поэтому процесс доступа (с необходимым уточнением) подробно описан в предыдущей главе.

Информационное взаимодействие на канальном уровне сетей стандарта Ethernet так же, как и на физическом, принято разделять на дополнительные подуровни, которые не были предусмотрены стандартом OSI-7.

  • LLC (Logical Link Control). Уровень управления логическим каналом;
  • MAC (Media Access Control). Уровень доступа к среде.
  • Подуровень MAC

    В идеология множественного доступа к среде Ethernet передачу данных приходится реализовать по широковещательному принципу "каждый для всех" (broadcasting). Это не может не наложить отпечаток на процесс формирования и распознавания кадров. Рассмотрим строение кадра Ethernet DIX, как наиболее часто используемого для передачи IP трафика.

    Для идентификации устройств используются 6-ти байтовые MAC-адреса, которые отправитель обязательно должен указать в передаваемом кадре. Старшие три байта представляют собой идентификатор производителя оборудования (Vendor codes), младше - индивидуальный идентификатор устройства.

    За уникальность последних несет ответственность производитель оборудования. С идентификаторами производителя дело обстоит сложнее. Существует специальная организация в составе IEEE, которая ведет список вендоров, выделяя каждому из них свой диапазон адресов. Кстати, занести туда свою запись стоит совсем не дорого, всего US $1250. Можно отметить, что создатели технологии Ethernet, Ксерокс и DEC, занимают первую и последнюю строчку списка соответственно.


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

    Нужно особо отметить, что на большинстве современных адаптеров можно программным путем установить любой адрес. Это представляет определенную угрозу работоспособности сети, и может быть причиной тяжелых "мистических" неисправностей.



    MAC-адрес может быть записан в различной форме. Наиболее часто используется шестнадцатеричная, в которой пары байтов отделяются друг от друга символами "-" или ":". Например, сетевая карта Realtek, установленная в моем домашнем компьютере, имеет адрес 00:C0:DF:F7:A4:25.

    МАС-адрес позволяет выполнять единичную (Unicast), групповую (Multicast) и широковещательную адресацию кадров (Broadcast).

    Единичная адресация означает, что узел-источник направляет свое сообщение только одному получателю, адрес которого явно указывается.

    В режиме групповой адресации кадр будет обработан теми станциями, которые имеют такой же Vendor Code, как и у отправителя. Признаком такой посылки является "1" в младшем бите старшего байта МАС-адреса (X1:XX:XX:XX:XX:XX). Такой формат достаточно удобен для "фирменного" взаимодействия устройств, но на практике используется достаточно редко.

    Другое дело широковещательная посылка, в которой адрес получателя кодируется специальным значением FF-FF-FF-FF-FF-FF. Переданный пакет будет принят и обработан всеми станциями, которые находятся в локальной сети.

    Таблица 9.2. Формат кадра Ethernet

    Preamble
    Преамбула
    SFD DA Адрес назначения SA Адрес Источника Type/Length
    Тип/Длина
    Data
    Данные
    FCS
    Контрольная сумма
    7 байт 1 байт 6 байт 6 байт 2 байта 46-1500 байт 4 байта
    Для успешной доставки одного адреса назначения явно недостаточно. Нужна дополнительная служебная информация - длина поля данных, тип сетевого протокола и др.

  • Преамбула (Preamble). Состоит из 8 байтов. Первые семь содержат одну и ту же циклическую последовательность битов (10101010), которая хорошо подходит для синхронизации приемопередатчиков. Последний (Start-of-frame-delimiter, SFD), 1 байт (10101011), служит меткой начала информационной части кадра. Это поле не учитывается при определении длины кадра и не рассчитывается в контрольной сумме.
  • МАС-адрес получателя (Destination Address, DA).
  • МАС-адрес отправителя (Source Address, SA). Первый бит всегда равен нулю.
  • Поле длины либо тип данных (Length/Type, L/T). Два байта, которые содержат явное указание длины (в байтах) поля данных в кадре или указывают на тип данных. Ниже, в описании LLC будет показано, что возможно простое автоматическое распознавание разных типов кадров.
  • Данные (Data). Полезная нагрузка кадра, данные верхних уровней OSI. Может иметь длину от 0 до 1500 байт.
  • Для корректного распознавания коллизий необходим кадр не менее чем из 64 байт. Если поле данных менее 46 байт, то кадр дополняется полем заполнения (Padding).
  • Контрольная сумма (Frame Check Sequence, FCS). 4 байта, которые содержит контрольную сумму всех информационных полей кадра. Вычисление выполняется по алгоритму CRC-32 отправителем и добавляется в кадр. После приема кадра в буфер, приемник выполняет аналогичный расчет. В случае расхождения результата вычислений, предполагается ошибка при передаче, и кадр уничтожается.



  • Содержание раздела