Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В компьютерных сетях , кадр Ethernet является уровень линии передачи данных блока данных протокола и использует основные Ethernet физического уровня транспортных механизмы. Другими словами, блок данных по каналу Ethernet транспортирует кадр Ethernet в качестве полезной нагрузки. [1]

Ethernet - кадр предшествует преамбулы и ограничителя начала кадра (SFD), которые являются одновременно частью Ethernet - пакета на физическом уровне . Каждый кадр Ethernet начинается с заголовка Ethernet, который содержит MAC-адреса назначения и источника в качестве первых двух полей. Средняя часть кадра - это данные полезной нагрузки, включая любые заголовки для других протоколов (например, Интернет-протокола ), переносимые в кадре. Кадр заканчивается проверочной последовательностью кадра (FCS), которая представляет собой 32-битную циклическую проверку избыточности, используемую для обнаружения любого повреждения данных при передаче.

Структура [ править ]

Пакет данных на проводе и кадр в качестве полезной нагрузки состоят из двоичных данных. Ethernet передает данные со старшим октетом (байтом) первым; однако в каждом октете младший бит передается первым. [а]

Внутренняя структура кадра Ethernet определена в IEEE 802.3. [1] В таблице ниже показан полный пакет Ethernet и кадр внутри в том виде, в каком он был передан, для размера полезной нагрузки до MTU в 1500 октетов. [b] Некоторые реализации Gigabit Ethernet и других высокоскоростных вариантов Ethernet поддерживают большие кадры, известные как jumbo-кадры .

Дополнительный тег 802.1Q занимает дополнительное место в кадре. Размеры полей для этой опции указаны в скобках в таблице выше. IEEE 802.1ad (Q-in-Q) позволяет использовать несколько тегов в каждом кадре. Этот вариант здесь не проиллюстрирован.

Пакет Ethernet - физический уровень [ править ]

Разделитель преамбулы и начала кадра [ править ]

Кадр Ethernet внутри пакета Ethernet, при этом SFD обозначает конец преамбулы пакета и указывает начало кадра. [3]

Пакет Ethernet начинается с семиоктетной преамбулы и однооктетного ограничителя начального кадра (SFD). [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 (0xD5, десятичное 213 в первом битовом порядке LSB Ethernet). [3] : разделы 3.2.2, 3.3 и 4.2.6

Схема приемопередатчика физического уровня (сокращенно PHY) требуется для подключения Ethernet MAC к физической среде. Соединение между PHY и MAC не зависит от физической среды и использует шину из средств массовой информации независимого интерфейс семья ( MII , GMII , RGMII , SGMII , XGMII ). Микросхемы приемопередатчиков Fast Ethernet используют шину MII, которая является четырехбитовой (один полубайт ) шиной, поэтому преамбула представлена ​​как 14 экземпляров 0xA, а SFD - 0xA 0xB (в полубайтах). Гигабитный Ethernet Микросхемы приемопередатчика используют шину GMII, которая представляет собой восьмиразрядный интерфейс, поэтому последовательность преамбулы, за которой следует SFD, будет иметь вид 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xD5 (в байтах).

Кадр - уровень канала передачи данных [ править ]

Заголовок [ править ]

Заголовок содержит MAC-адреса назначения и источника (каждый длиной по шесть октетов), поле EtherType и, необязательно, тег IEEE 802.1Q или тег IEEE 802.1ad .

Поле EtherType имеет длину два октета и может использоваться для двух разных целей. Значения 1500 и ниже означают, что он используется для указания размера полезной нагрузки в октетах, а значения 1536 и выше указывают, что он используется как EtherType, чтобы указать, какой протокол инкапсулирован в полезной нагрузке кадра. При использовании в качестве EtherType длина кадра определяется местоположением межпакетного промежутка и действительной контрольной последовательностью кадра (FCS).

IEEE 802.1Q тег или IEEE 802.1ad тега, если он присутствует, представляет собой поле из четырех октетов , что указывает на то виртуальной локальной сети (VLAN) членство и IEEE 802.1p приоритет. Первые два октета тега называется Т аги Р rotocol ID 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]

Межпакетный разрыв - физический уровень [ править ]

Межпакетный интервал (IPG) - это время простоя между пакетами. После отправки пакета передатчики должны передать как минимум 96 бит (12 октетов) состояния незанятой линии перед передачей следующего пакета.

Типы [ править ]

Есть несколько типов кадров Ethernet:

  • Фрейм Ethernet II, или Ethernet версии 2, [f] или DIX-фрейм является наиболее распространенным типом, используемым сегодня, поскольку он часто используется непосредственно Интернет-протоколом.
  • Необработанный нестандартный вариант кадра Novell IEEE 802.3
  • Кадр IEEE 802.2 Logical Link Control (LLC)
  • Кадр протокола доступа к подсети (SNAP) IEEE 802.2

Различные типы кадров имеют разные форматы и значения 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 и Xerox , основных участников его разработки [8] ), определяет двухоктетное поле EtherType в кадре Ethernet , которому предшествуют MAC-адреса назначения и источника, которые идентифицирует протокол верхнего уровня, инкапсулированный данными кадра. Например, значение 0x0800 EtherType сигнализирует, что фрейм содержит дейтаграмму IPv4 . Аналогично, EtherType 0x0806 указывает на кадр ARP , 0x86DD указывает на IPv6. frame и 0x8100 указывает на наличие тега IEEE 802.1Q (как описано выше).

Наиболее распространенный формат кадра Ethernet, тип II

Поскольку этот промышленно разработанный стандарт прошел формальный процесс стандартизации IEEE , поле EtherType было изменено на поле длины (данных) в новом стандарте 802.3. [g] Поскольку получатель все еще должен знать, как интерпретировать кадр, стандарт требовал, чтобы заголовок 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 включает два восьмибитовых адресных поля, которые в терминологии OSI называются точками доступа к услугам (SAP); когда и исходный, и целевой 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.

Использование канала - это понятие, которое часто путают с эффективностью протокола. Он учитывает только использование канала, не обращая внимания на характер передаваемых данных - полезную нагрузку или служебные данные. На физическом уровне канал связи и оборудование не знают разницы между кадрами данных и управления. Мы можем рассчитать использование канала :

Общее время учитывает время приема-передачи по каналу, время обработки на хостах и ​​время передачи данных и подтверждений. Время, потраченное на передачу данных, включает данные и подтверждения.

Runt frames [ править ]

Короткий кадр - это кадр Ethernet, длина которого меньше минимальной длины в 64 октета согласно стандарту IEEE 802.3. Ошибочные кадры чаще всего вызываются коллизиями ; другие возможные причины - неисправная сетевая карта , опустошение буфера , несоответствие дуплексного режима или проблемы с программным обеспечением. [14]

Заметки [ править ]

  1. ^ Последовательность проверки кадра (FCS) использует другой порядок битов. [2]
  2. ^ Шаблоны битов в преамбуле и начале разделителя кадра записываются как строки битов, причем первый бит передается слева (а не как значения октетов, которые в Ethernet передаются первыми младшими битами). Это обозначение совпадает с обозначением, используемым в стандарте IEEE 802.3.
  3. ^ Преамбула и ограничитель начального кадра не отображаютсяпрограммным обеспечением для сниффинга пакетов, потому что эти биты удаляются на уровне OSI 1 контроллером сетевого интерфейса (NIC) перед передачей на уровень OSI 2 , где анализаторы пакетов собирают свои данные. Существуют анализаторы уровня 2, которые могут захватывать и отображать преамбулу и начальный разделитель кадров, но они дороги и в основном используются для обнаружения проблем, связанных с физическим подключением.
  4. ^ Минимальный размер полезной нагрузки определяется 512-битным временным интервалом, используемым для обнаружения коллизий в архитектуре локальной сети Ethernet.
  5. ^ При наличии 802.1Q допустимы минимальные значения 42 и 46 октетов. [4]
  6. ^ Фрейм Ethernet версии 1 использовался для ранних прототипов Ethernet и содержал 8-битные MAC-адреса и никогда не использовался в коммерческих целях.
  7. ^ Исходные кадры Ethernet определяют свою длину с помощью окружающего кадра, а не с помощью явного счетчика длины.

Ссылки [ править ]

  1. ^ a b 802.3-2018 - Стандарт IEEE для Ethernet . 3.1.1 Формат пакета . IEEE . 2018. с. 118. DOI : 10,1109 / IEEESTD.2018.8457469 . ISBN 978-1-5044-5090-4.
  2. ^ «802.3-2012 - Стандарт IEEE для Ethernet» (PDF) . ieee.org . Ассоциация стандартов IEEE. 28 декабря 2012 г. раздел 3.3 и приложение 31A . Проверено 9 февраля 2014 . Коды операций передаются первыми старшими октетами. В каждом октете сначала передаются младшие биты. [...] Каждый октет кадра MAC, за исключением FCS, передается первым младшим битом.
  3. ^ a b c d e f "802.3-2018 - Стандарт IEEE для Ethernet" (PDF) . ieee.org . Ассоциация стандартов IEEE. 31 августа 2018 . Проверено 31 августа 2018 года .
  4. ^ IEEE 802.1Q-2011, приложение G
  5. ^ https://www.autosar.org/fileadmin/user_upload/standards/classic/4-1/AUTOSAR_SWS_CRCLibrary.pdf#page=24
  6. ^ Чарльз Э. Сперджен (февраль 2000 г.). Ethernet: полное руководство . О'Рейли. стр.  41 , 47. ISBN 9780596552824. Проверено 30 июня 2014 года .
  7. ^ «40.1.3.1 Подуровень физического кодирования (PCS)» (PDF) . Стандарт IEEE для Ethernet, 802.3-2012 - раздел третий . 28 декабря 2012. с. 183 . Проверено 6 июля 2014 года .
  8. ^ Дрю Хейвуд; Зубаир Ахмад (2001). Сетевые службы Windows 2000 Дрю Хейвуда . Sams. п. 53. ISBN 978-0-672-31741-5.
  9. LAN MAN Standards Committee of the IEEE Computer Society (20 марта 1997 г.). IEEE Std 802.3x-1997 и IEEE Std 802.3y-1997 . Институт инженеров по электротехнике и радиоэлектронике, Inc., стр. 28–31.
  10. ^ IEEE Std 802.3-2005, 3.2.6
  11. ^ Дон Provan (17 сентября 1993). «Ethernet-фрейминг» . Группа новостейcomp.sys.novell . Usenet: [email protected] . ( HTML-версия, заархивированная 18 апреля 2015 года на Wayback Machine ) - классическая серия сообщений Usenet Дона Прована из Novell, которые вошли в многочисленные часто задаваемые вопросы и широко считаются окончательным ответом на использование Novell Frame Type.
  12. ^ «RFC1042: Стандарт передачи дейтаграмм IP по сетям IEEE 802» . Сетевая рабочая группа IETF. Февраль 1988 г.
  13. ^ Компьютерное общество, IEEE (2016). IEEE Std 802.11-2016: Часть 11: Характеристики управления доступом к среде беспроводной локальной сети IEEE (MAC) и физического уровня (PHY) . Нью-Йорк, Нью-Йорк: IEEE. п. 249.
  14. ^ «Устранение неполадок Ethernet» . Cisco Systems . Проверено 13 августа +2016 .

Дальнейшее чтение [ править ]

  • Воспроизвести медиа

    Видео, в котором объясняется, как построить Ethernet-фрейм

  • Воспроизвести медиа

    Объяснение минимальной длины кадра в Ethernet