Кадр Ethernet - Ethernet frame
В компьютерная сеть, Кадр Ethernet это уровень канала передачи данных блок данных протокола и использует базовый Физический уровень Ethernet транспортные механизмы. Другими словами, блок данных на Ethernet link транспортирует кадр Ethernet в качестве полезной нагрузки.[1]
Ethernet Рамка предшествует преамбула и разделитель начального кадра (SFD), которые являются частью пакета Ethernet в физический слой. Каждый кадр Ethernet начинается с заголовка Ethernet, который содержит пункт назначения и источник. MAC-адреса в качестве первых двух полей. Средняя часть кадра - это данные полезной нагрузки, включая заголовки для других протоколов (например, протокол Интернета ) несут в кадре. Рамка заканчивается последовательность проверки кадра (FCS), который является 32-битным циклическая проверка избыточности используется для обнаружения любого повреждения данных при передаче.
Структура
Пакет данных на проводе и кадр в качестве полезной нагрузки состоят из двоичных данных. Ethernet передает данные с наиболее значимыми октет (байт) первый; однако в каждом октете младший бит передается первым.[а]
Внутренняя структура кадра Ethernet определена в IEEE 802.3.[1] В приведенной ниже таблице показан полный пакет Ethernet и кадр внутри в том виде, в котором он был передан, для размера полезной нагрузки до MTU 1500 октетов.[b] Некоторые реализации Гигабитный Ethernet и другие высокоскоростные варианты Ethernet поддерживают большие кадры, известные как большие кадры.
Слой | Преамбула | Разделитель начального кадра | MAC-адрес назначения | Источник MAC | 802.1Q тег (необязательно) | Ethertype (Ethernet II ) или длина (IEEE 802.3 ) | Полезная нагрузка | Последовательность проверки кадра (32-битный CRC ) | Межпакетный разрыв |
---|---|---|---|---|---|---|---|---|---|
7 октеты | 1 октет | 6 октетов | 6 октетов | (4 октета) | 2 октета | 46‑1500 октетов | 4 октета | 12 октетов | |
Фрейм Ethernet уровня 2 | ← 64–1522 октета → | ||||||||
Пакет Ethernet уровня 1 и IPG | ← 72–1530 октетов → | ← 12 октетов → |
Дополнительный тег 802.1Q занимает дополнительное пространство в кадре. Размеры полей для этой опции указаны в скобках в таблице выше. IEEE 802.1ad (Q-in-Q) позволяет использовать несколько тегов в каждом кадре. Этот вариант здесь не показан.
Пакет Ethernet - физический уровень
Разделитель преамбулы и начального кадра
Пакет Ethernet начинается с семиоктета. преамбула и однооктетный разделитель начального кадра (ЮФО).[c]
Преамбула состоит из 56-битного (семибайтового) шаблона с чередованием 1 и 0 битов, что позволяет устройствам в сети легко синхронизировать свои часы приемника, обеспечивая синхронизацию на уровне битов. За ним следует SFD, чтобы обеспечить синхронизацию на уровне байтов и отметить новый входящий кадр. Для вариантов Ethernet, передающих последовательные биты вместо больших символы, (некодированный) битовый шаблон в проводе для преамбулы вместе с SFD-частью кадра равен 10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011;[3]:разделы 4.2.5 и 3.2.2 Биты передаются по порядку слева направо.[3]:разделы 4.2.5
SFD - это восьмибитовое (однобайтовое) значение, которое отмечает конец преамбулы, которая является первым полем пакета Ethernet, и указывает начало кадра Ethernet. SFD предназначен для разрыва битовой последовательности преамбулы и сигнализации о начале фактического кадра.[3]:раздел 4.2.5 Сразу за SFD следует пункт назначения. MAC-адрес, которое является первым полем кадра Ethernet. SFD - это двоичная последовательность 10101011 (0xAB, десятичное 171 в порядке первых битов LSB Ethernet).[3]:разделы 3.2.2, 3.3 и 4.2.6
Схема приемопередатчика физического уровня (PHY для краткости) требуется для подключения Ethernet MAC к физическому носителю. Соединение между PHY и MAC не зависит от физического носителя и использует шину из семейства независимых от носителя интерфейсов (MII, ГМИИ, RGMII, SGMII, XGMII ). Fast Ethernet Микросхемы приемопередатчиков используют шину MII, которая является четырехбитной (один грызть ) широкую шину, поэтому преамбула представлена как 14 экземпляров 0xA, а SFD - это 0xA 0xB (в полубайтах). Гигабитный Ethernet Микросхемы приемопередатчика используют шину GMII, которая представляет собой интерфейс шириной восемь бит, поэтому последовательность преамбулы, за которой следует SFD, будет иметь вид 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAB (в байтах).
Кадр - уровень канала передачи данных
Заголовок
Заголовок содержит MAC-адреса назначения и источника (длина каждого шесть октетов), EtherType поле и, необязательно, IEEE 802.1Q тег или IEEE 802.1ad тег.
Поле EtherType имеет длину два октета и может использоваться для двух разных целей. Значения 1500 и ниже означают, что он используется для указания размера полезной нагрузки в октетах, а значения 1536 и выше указывают, что он используется как EtherType, чтобы указать, какой протокол инкапсулирован в полезной нагрузке кадра. При использовании в качестве EtherType длина кадра определяется расположением межпакетный разрыв и действительный последовательность проверки кадра (FCS).
В IEEE 802.1Q тег или IEEE 802.1ad тег, если присутствует, представляет собой четырехоктетное поле, которое указывает виртуальная локальная сеть (VLAN) членство и IEEE 802.1p приоритет. Первые два октета тега называются Таг ппротокол Я БЫentifier (TPID) и удваивается как поле EtherType, указывающее, что кадр помечен как 802.1Q, так и 802.1ad. 802.1Q использует TPID 0x8100. 802.1ad использует TPID 0x88a8.
Полезная нагрузка
Минимальная полезная нагрузка составляет 42 октета при наличии тега 802.1Q и 46 октетов при отсутствии.[d] Когда фактическая полезная нагрузка меньше, соответственно добавляются байты заполнения.[e] Максимальная полезная нагрузка - 1500 октетов. Нестандартный большие кадры позволяют увеличить максимальный размер полезной нагрузки.
Последовательность проверки кадра
В последовательность проверки кадра (FCS) - четырехоктетный циклическая проверка избыточности (CRC), который позволяет обнаруживать поврежденные данные во всем кадре, полученном на стороне получателя. Согласно стандарту значение FCS вычисляется как функция защищенных полей кадра MAC: адреса источника и пункта назначения, поля длины / типа, данных клиента MAC и заполнения (то есть всех полей, кроме FCS).
Согласно стандарту, это вычисление выполняется с использованием алгоритма CRC32 BZIP2 со сдвигом влево (poly = 0x4C11DB7, начальный CRC = 0xFFFFFFFF, CRC дополняется после, значение проверки = 0x38FB2284). Стандарт гласит, что данные передаются в первую очередь младшим значащим битом (бит 0), а FCS передается первым старшим битом (бит 31).[3]:раздел 3.2.9 Альтернативой является вычисление CRC с использованием CRC32 со сдвигом вправо (poly = 0xEDB88320, начальный CRC = 0xFFFFFFFF, CRC дополняется после, значение проверки = 0x2144DF1C), что приведет к CRC, который является инверсией битов FCS, и передать сначала данные и младший бит CRC, что приводит к идентичным передачам.
Стандарт гласит, что получатель должен вычислять новую FCS по мере получения данных, а затем сравнивать полученную FCS с FCS, вычисленным получателем. Альтернативой является вычисление CRC как для полученных данных, так и для FCS, что приведет к фиксированному ненулевому значению «проверки». (Результат не равен нулю, потому что CRC дополняется во время генерации CRC). Поскольку данные принимаются в первую очередь младшим значащим битом, и чтобы избежать необходимости буферизовать октеты данных, приемник обычно использует CRC32 со смещением вправо. Это делает значение «проверки» (иногда называемое «магической проверкой») 0x2144DF1C.[5]
Однако аппаратная реализация CRC с логическим сдвигом вправо может использовать сдвиг влево. Регистр сдвига линейной обратной связи в качестве основы для вычисления CRC, перестановки битов и получения проверочного значения 0x38FB2284. Поскольку дополнение CRC может выполняться после вычисления и во время передачи, то, что остается в аппаратном регистре, является результатом без дополнения, поэтому остаток для реализации с правым сдвигом будет дополнением 0x2144DF1C = 0xDEBB20E3, а для левого сдвига реализация, дополнение 0x38FB2284 = 0xC704DD7B.
Конец кадра - физический уровень
В конец кадра обычно обозначается символом конца потока данных на физическом уровне или потерей сигнала несущей; пример 10BASE-T, где принимающая станция определяет конец переданного кадра по потере несущей. Более поздние физические уровни используют явное конец данных или же конец потока символ или последовательность, чтобы избежать неоднозначности, особенно когда несущая постоянно пересылается между кадрами; примером является Gigabit Ethernet с его 8b / 10b схема кодирования, которая использует специальные символы, которые передаются до и после передачи кадра.[6][7]
Межпакетный разрыв - физический уровень
Межпакетный разрыв это простой между пакетами. После отправки пакета передатчики должны передать как минимум 96 бит (12 октетов) состояния незанятой линии перед передачей следующего пакета.
Типы
Тип кадра | Ethertype или длина | Начало полезной нагрузки два байта |
---|---|---|
Ethernet II | ≥ 1536 | Любой |
Novell raw IEEE 802.3 | ≤ 1500 | 0xFFFF |
IEEE 802.2 LLC | ≤ 1500 | Другой |
IEEE 802.2 SNAP | ≤ 1500 | 0xAAAA |
Есть несколько типов кадров Ethernet:
- Фрейм Ethernet II или Ethernet версии 2,[f] или кадр DIX является наиболее распространенным типом, используемым сегодня, поскольку он часто используется непосредственно Интернет-протоколом.
- Novell сырой IEEE 802.3 нестандартная вариация рамы
- IEEE 802.2 Управление логической связью (LLC) кадр
- IEEE 802.2 Протокол доступа к подсети (SNAP) кадр
Различные типы кадров имеют разные форматы и MTU значения, но могут сосуществовать на одном физическом носителе. Различие между типами фреймов возможно на основании таблицы справа.
Кроме того, все четыре типа кадров Ethernet могут дополнительно содержать тег IEEE 802.1Q для определения того, к какой VLAN он принадлежит, и его приоритета (качество обслуживания ). Эта инкапсуляция определена в IEEE 802.3ac спецификации и увеличивает максимальный кадр на 4 октета.
Тег IEEE 802.1Q, если он присутствует, помещается между полями Source Address и EtherType или Length. Первые два октета тега - это значение идентификатора протокола тега (TPID) 0x8100. Он расположен в том же месте, что и поле EtherType / Length в немаркированных кадрах, поэтому значение EtherType 0x8100 означает, что кадр помечен, а истинный EtherType / Length находится после Q-тега. За TPID следуют два октета, содержащие информацию управления тегами (TCI) (приоритет IEEE 802.1p (качество обслуживания ) и идентификатор VLAN). За Q-тегом следует остальная часть кадра, используя один из типов, описанных выше.
Ethernet II
Создание кадра Ethernet II (также известный как DIX Ethernet, названный в честь DEC, Intel и Ксерокс, основные участники его разработки[8]), определяет двухоктетный EtherType поле в Ethernet Рамка, которому предшествуют MAC-адреса назначения и источника, которые определяют протокол верхнего уровня инкапсулированный по данным кадра. Например, значение 0x0800 EtherType сигнализирует, что фрейм содержит IPv4 дейтаграмма. Аналогично, EtherType 0x0806 указывает на ARP кадр, 0x86DD указывает IPv6 frame и 0x8100 указывает на наличие тега IEEE 802.1Q (как описано выше).
Поскольку этот отраслевой стандарт прошел формальную IEEE В процессе стандартизации поле EtherType было изменено на поле длины (данных) в новом стандарте 802.3.[грамм] Поскольку получатель все еще должен знать, как интерпретировать фрейм, стандарт требовал IEEE 802.2 заголовок, чтобы следовать за длиной и указать тип. Много лет спустя стандарт 802.3x-1997 и более поздние версии стандарта 802.3 официально одобрили оба типа кадрирования. Формирование кадров Ethernet II является наиболее распространенным в локальных сетях Ethernet из-за его простоты и меньших накладных расходов.
Чтобы разрешить использование некоторых кадров с использованием кадрирования Ethernet v2 и некоторых с использованием исходной версии кадрирования 802.3 в одном сегменте Ethernet, значения EtherType должны быть больше или равны 1536 (0x0600). Это значение было выбрано, поскольку максимальная длина поля полезной нагрузки кадра Ethernet 802.3 составляет 1500 октетов (0x05DC). Таким образом, если значение поля больше или равно 1536, кадр должен быть кадром Ethernet v2, причем это поле является полем типа.[9] Если оно меньше или равно 1500, это должен быть кадр IEEE 802.3, где это поле является полем длины. Исключительные значения от 1500 до 1536 не определены.[10] Это соглашение позволяет программному обеспечению определять, является ли кадр кадром Ethernet II или кадром IEEE 802.3, обеспечивая сосуществование обоих стандартов на одном физическом носителе.
Novell raw IEEE 802.3
"Необработанный" формат кадра 802.3 от Novell был основан на ранней работе IEEE 802.3. Novell использовала это как отправную точку для создания первой собственной реализации. IPX Сетевой протокол через Ethernet. Они не использовали заголовок LLC, а запустили пакет IPX сразу после поля длины. Это не соответствует стандарту IEEE 802.3, но поскольку IPX всегда имеет FF в качестве первых двух октетов (в то время как в IEEE 802.2 LLC этот шаблон теоретически возможен, но крайне маловероятен), на практике это обычно сосуществует на проводе с другими реализациями Ethernet, за заметным исключением некоторых ранних форм DECnet который запутался этим.
Novell NetWare до середины девяностых годов прошлого века этот тип кадра использовался по умолчанию, и, поскольку NetWare тогда была очень широко распространена, а IP - нет, в какой-то момент большая часть мирового трафика Ethernet проходила через «чистый» 802.3 с IPX. Начиная с NetWare 4.10, NetWare по умолчанию использует IEEE 802.2 с LLC (тип кадра NetWare Ethernet_802.2) при использовании IPX.[11]
IEEE 802.2 LLC
Некоторые протоколы, например, предназначенные для Стек OSI, работают непосредственно поверх инкапсуляции IEEE 802.2 LLC, которая обеспечивает как сетевые сервисы с установлением соединения, так и без установления соединения.
Инкапсуляция IEEE 802.2 LLC в настоящее время не широко используется в обычных сетях, за исключением крупных корпоративных сетей. NetWare установки, которые еще не были перенесены на NetWare IP. В прошлом многие корпоративные сети использовали IEEE 802.2 для поддержки прозрачных мостов трансляции между Ethernet и Token Ring или же FDDI сети.
Существует Интернет-стандарт для инкапсуляции трафика IPv4 в кадры SAP / SNAP IEEE 802.2 LLC.[12] Он почти никогда не реализуется в Ethernet, хотя используется в FDDI, Token Ring, IEEE 802.11 (за исключением Диапазон 5,9 ГГц, где используется EtherType)[13] и другие IEEE 802 ЛВС. IPv6 также может передаваться через Ethernet с использованием IEEE 802.2 LLC SAP / SNAP, но, опять же, это почти никогда не используется.
IEEE 802.2 SNAP
Изучая заголовок 802.2 LLC, можно определить, следует ли за ним заголовок SNAP. Заголовок LLC включает два восьмибитных адресных поля, называемых точки доступа к услугам (SAP) в терминологии OSI; когда как исходный, так и целевой SAP имеют значение 0xAA, за заголовком LLC следует заголовок SNAP. Заголовок SNAP позволяет использовать значения EtherType со всеми протоколами IEEE 802, а также поддерживает пространства идентификаторов частных протоколов.
В IEEE 802.3x-1997 стандарт IEEE Ethernet был изменен, чтобы явно разрешить использование 16-битного поля после MAC-адресов в качестве поля длины или поля типа.
В AppleTalk набор протоколов v2 для Ethernet ("EtherTalk ") использует инкапсуляцию IEEE 802.2 LLC + SNAP.
Максимальная пропускная способность
Мы можем рассчитать накладные расходы протокола для Ethernet в процентах (размер пакета, включая IPG)
Мы можем рассчитать эффективность протокола для Ethernet
Максимальная эффективность достигается при максимально допустимом размере полезной нагрузки и составляет:
для немаркированных кадров, поскольку размер пакета составляет максимум 1500 октетов полезной нагрузки + 8 октетов преамбулы + 14 октетов заголовка + 4 октета завершающей части + минимальный межпакетный интервал, соответствующий 12 октетам = 1538 октетов. Максимальный КПД составляет:
когда используется тегирование 802.1Q VLAN.
В пропускная способность можно рассчитать из эффективности
- ,
где физический уровень чистая скорость передачи (скорость передачи данных в сети) зависит от Физический уровень Ethernet стандартный и может составлять 10 Мбит / с, 100 Мбит / с, 1 Гбит / с или 10 Гбит / с. Максимальная пропускная способность для 100BASE-TX Ethernet, следовательно, 97,53 Мбит / с без 802.1Q и 97,28 Мбит / с с 802.1Q.
Использование канала это понятие часто путают с эффективностью протокола. Он учитывает только использование канала без учета характера передаваемых данных - полезной нагрузки или служебных данных. На физическом уровне канал связи и оборудование не знают разницы между кадрами данных и управления. Мы можем рассчитать использование канала:
Общее время учитывает время приема-передачи по каналу, время обработки на хостах и время передачи данных и подтверждений. Время, потраченное на передачу данных, включает данные и подтверждения.
Бегущие кадры
Короткий кадр - это кадр Ethernet, длина которого меньше минимальной длины в 64 октета согласно стандарту IEEE 802.3. Ошибочные фреймы чаще всего вызываются столкновения; другие возможные причины - неисправность сетевая карта, опустошение буфера, дуплексное несовпадение или проблемы с программным обеспечением.[14]
Примечания
- ^ В последовательность проверки кадра (FCS) использует другой порядок битов.[2]
- ^ Битовые комбинации в преамбуле и начале разделителя кадра записываются как битовые строки, причем первый бит передается слева (нет как значения октетов, которые в Ethernet передаются в первую очередь младшим значащим битом). Это обозначение совпадает с обозначением, используемым в стандарте IEEE 802.3.
- ^ Преамбула и ограничитель начального кадра не отображаются анализ пакетов программное обеспечение, потому что эти биты удаляются на уровне OSI 1 контроллер сетевого интерфейса (NIC) перед передачей на Уровень OSI 2, где анализаторы пакетов собирают свои данные. Существуют анализаторы уровня 2, которые могут захватывать и отображать преамбулу и ограничитель начального кадра, но они дороги и в основном используются для обнаружения проблем, связанных с физическим подключением.
- ^ Минимальный размер полезной нагрузки определяется 512-битным временем слота, используемым для обнаружение столкновения в архитектуре локальной сети Ethernet.
- ^ Как минимум 42 и 46 октетов действительны, когда присутствует 802.1Q.[4]
- ^ Фрейм Ethernet версии 1 использовался для ранних прототипов Ethernet и содержал 8-битные MAC-адреса и никогда не применялся в коммерческих целях.
- ^ Исходные кадры Ethernet определяют свою длину с помощью окружающего кадра, а не с помощью явного подсчета длины.
Рекомендации
- ^ а б 802.3-2018 - Стандарт IEEE для Ethernet. 3.1.1 Формат пакета. IEEE. 2018. с. 118. Дои:10.1109 / IEEESTD.2018.8457469. ISBN 978-1-5044-5090-4.
- ^ «802.3-2012 - Стандарт IEEE для Ethernet» (PDF). ieee.org. Ассоциация стандартов IEEE. 28 декабря 2012 г. раздел 3.3 и приложение 31A. Получено 9 февраля 2014.
Коды операций передаются первыми старшими октетами. В каждом октете сначала передаются младшие биты. [...] Каждый октет кадра MAC, за исключением FCS, передается первым младшим битом.
- ^ а б c d е ж «802.3-2018 - Стандарт IEEE для Ethernet» (PDF). ieee.org. Ассоциация стандартов IEEE. 31 августа 2018 г.. Получено 31 августа 2018.
- ^ IEEE 802.1Q-2011, приложение G
- ^ https://www.autosar.org/fileadmin/user_upload/standards/classic/4-1/AUTOSAR_SWS_CRCLibrary.pdf#page=24
- ^ Чарльз Э. Сперджен (февраль 2000 г.). Ethernet: полное руководство. О'Рейли. стр.41, 47. ISBN 9780596552824. Получено 30 июн 2014.
- ^ «40.1.3.1 Подуровень физического кодирования (PCS)» (PDF). Стандарт IEEE для Ethernet, 802.3-2012 - раздел третий. 28 декабря 2012. с. 183. Получено 6 июля 2014.
- ^ Дрю Хейвуд; Зубаир Ахмад (2001). Сетевые службы Windows 2000 Дрю Хейвуда. Sams. п. 53. ISBN 978-0-672-31741-5.
- ^ Комитет по стандартам LAN MAN Компьютерного общества IEEE (20 марта 1997 г.). IEEE Std 802.3x-1997 и IEEE Std 802.3y-1997. Институт инженеров по электротехнике и радиоэлектронике, Inc., стр. 28–31.
- ^ IEEE Std 802.3-2005, 3.2.6
- ^ Дон Прован (17 сентября 1993 г.). «Ethernet-фрейминг». Группа новостей: comp.sys.novell. Usenet: [email protected]. (Версия в формате HTML В архиве 18 апреля 2015 г. Wayback Machine ) - классическая серия сообщений Usenet Дона Прована из Novell, которые вошли в многочисленные часто задаваемые вопросы и широко считаются окончательным ответом на использование Novell Frame Type.
- ^ «RFC1042: Стандарт передачи дейтаграмм IP по сетям IEEE 802». Сетевая рабочая группа IETF. Февраль 1988 г.
- ^ Компьютерное общество, IEEE (2016). IEEE Std 802.11-2016: Часть 11: Характеристики управления доступом к среде беспроводной локальной сети IEEE (MAC) и физического уровня (PHY). Нью-Йорк, штат Нью-Йорк: IEEE. п. 249.
- ^ «Устранение неполадок Ethernet». Cisco Systems. Получено 13 августа 2016.
дальнейшее чтение
Видео, в котором объясняется, как построить Ethernet-фрейм
Объяснение минимальной длины кадра в Ethernet