Технология Ethernet относится ко второму (канальному) уровню эталонной модели взаимосвязи открытых систем. Протокольным блоком данных этого уровня является кадр. Кадры Ethernet бывают четырех различных форматов, среди которых наиболее часто используется формат EthernetII (или EthernetDIX; DIX – это сокращение от названий трех компаний – DEC, Intel, Xerox, – вместе разработавших спецификации стандарта EthernetDIX), приведенный на рис. 1.8.
Рис. 1. 8. Формат кадра EthernetII (DIX)
Поле преамбула представляет собой последовательность из 7 байт 10101010 и служит для тактовой синхронизации приемника.
Поле SFD, StartofFrameDelimiter – начальный ограничитель кадра. Выполняет функцию флага для цикловой синхронизации приемника. Получив этот байт, приемник понимает, что следующим байтом будет первый байт заголовка кадра.
Адрес назначения и адрес источника – это адреса подуровня управления доступом к среде (MAC, MediaAccessControl) канального уровня структуры стандартов IEEE 802.x, или MAC-адреса. Для простоты эти адреса можно считать адресами канального уровня, т.к., например, в наиболее часто используемом формате кадра EthernetII (DIX) поле подуровня управления логическим каналом (LLC, LogicalLinkControl) отсутствует. MAC-адреса называются также локальными, аппаратными или физическими адресами. В отличие от MAC-адресов, IP-адреса являются логическими и называются также сетевыми или протокольными адресами. Фактически, MAC-адрес – это адрес сетевой платы хоста, записанный ее производителем в ПЗУ. Он состоит из 48 разрядов. Первые 24 разряда являются уникальным идентификатором организации (OUI, OrganizationallyUniqueIdentifier), назначаемым Комитетом IEEE каждому производителю оборудования, вторые 24 разряда назначаются самим производителем каждой изготовленной им плате. Например, для компании Cisco Комитет IEEE назначил OUI 00 60 2F (в шестнадцатеричной форме). Таким образом, в старших 24 разрядах MAC-адреса всех сетевых плат, произведенных компанией Cisco, будет двоичная комбинация 0000 0000 0110 0000 0010 1111.
В поле тип протокола указывается идентификатор протокола вышележащего уровня, вложившего свой пакет в поле данных кадра. Как было упомянуто выше, кадр – это протокольный блок данных канального уровня. Вышележащим по отношению к канальному является сетевой уровень. Примеры протоколов сетевого уровня – IP, IPX. Например, если в поле данных кадра вложен пакет IP, то значение поля тип протокола в шестнадцатеричной форме – 0800, что идентифицирует протокол IP.
В поле данные вкладывается протокольный блок данных вышележащего уровня, например, пакет IP. Для обеспечения надежного распознавания коллизий длина поля данных не должна быть меньше 46 байт. Если в поле данных вкладывается пакет длиной менее 46 байт, поле данных дополняется до 46 байт нулями или единицами.
Контрольная последовательность кадра (FCS, FrameCheckSequence) – это 32 бита циклического избыточного кода для обнаружения ошибок. Контрольная последовательность кадра, вычисляется на основе содержимого заголовка и данных (вместе с заполнителем, но без учета преамбулы и ограничителя) с помощью 32-разрядного циклического избыточного кода (Cyclic Redundancy Code – CRC) с порождающим полиномом:
x32 +x26 +x23 +x22 +x16 +x12 +x11 +x10 +x8 +x7 +x5 +x4 +x2 +x +1.