18. Сеть. Протокол Ethernet

Канальный уровень сети Ethernet

Пакет данных сети Ethenet педедает кадр Ethernet.

Размер кадра Ethernet измеряется октетами – блоками по 8 бит. Октеты называются октетами во имя однозначности – “байт” не всегда стандартизован, и в общем случае может быть больше или меньше 8 бит.

Кадр состоит из

  1. Преамбулы – 7 октетов
  2. Маркера начала кадра – 1 октет
  3. Целевой MAC-адрес – 6 октетов
  4. MAC-адрес источника – 6 октетов
  5. Тег 802.1Q – 4 октета (опционально)
  6. Длина (IEEE 802.3) или Ethertype (Ethernet II) – 2 октета
  7. Содержимое пакета – 46-1500 октетов
  8. Контрольная сумма (32-битная CRC)
  9. Межпакетный промежуток – 12 октетов

Первые два пункта моделью OSI относятся к первому (физическому) уровню, остальные – к канальному. Остановимся подробнее на каждом из них.

Октеты пересылаются с младшего бита.

Шестнадцатиричное представление преамбулы и маркера начала кадра имеют вид:

55 55 55 55 55 55 55 D5

Или в двоичном коде (в порядке пересылки по проводу):

10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011

MAC-адрес представляет собой “железный” адрес сетевого устройства. Свитчи не имеют MAC-адресов, ими обладают только конечные узлы. MAC расшифровывается как media access control. Первые три октета уникальны к организации, i.e. производителю сетевого устройства. Последние три – серийный номер самого устройства.

Тег IEEE802.1Q содержит информацию о виртуальной сети (VLAN) и приоритет пакета.

Шестое поле содержит длину или тип данных, содержащихся в пакете. Если значение двух октетов меньше 1500, то это длина, если не меньше 1536 – тип данных. Во втором случае, конец пакета устанавливается по межпакетному промежутку.

Содержимое пакета – это соответственно некие данные.

Контрольная сумма считается таким образом, что при расчете контрольной суммы по всему содержимому пакета включая контрольную сумму, всегда получается “волшебное число”. В случае IEEE802.x это число 0xC704DD7B.

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

Сейчас наиболее распространен Ethernet v2. Типичные значения EtherType:

  • 0x0800 – IPv4
  • 0x0806 – ARP
  • 0x86DD – IPv6