Як Ethernet знає, наскільки довгий кадр?


17

Дивлячись на запис Ethernet у Вікіпедії, я не можу зрозуміти, як вказано, наскільки довгий кадр Ethernet. Поле заголовка EtherType / Length, мабуть, може вказувати або тип кадру, або явну довжину, і я здогадуюсь, що у випадку типу кадру необхідно виконати якусь іншу логіку, щоб визначити, як довго триває пакет. Наприклад, якщо поле EtherType дорівнює 0x0800, це вказує корисну навантаження IPv4, і тому приймаючий NIC повинен був би вивчити перші 32 біти корисного навантаження, щоб знайти довжину пакету IP, а отже, і визначити загальну довжину кадр Ethernet, і знайте, коли шукати контрольну суму та інтервал кадру в кінці кадру.

Це правильно звучить? Я також дивився на IEEE 802.3 специфікацію для Ethernet (частина 1, все одно), яка, здається, підтверджує це, але це досить непрозоро.


Відповіді:


21

Підшар фізичного кодування відповідає за розмежування кадрів та надсилання їх до рівня MAC.

Наприклад, в Gigabit Ethernet, схема кодування 8B / 10B використовує 10-бітну кодову групу для кодування 8-бітового байта. Додаткові два біти визначають, чи байт є керуючою інформацією чи даними. Інформація про управління може бути Конфігурація, Start_of_packet, End_of_packet, IDLE, Carrier_extend, Error_propagation.

Ось як NIC знає, де починається і закінчується кадр. Це також означає, що довжина кадру не відома до того, як вона повністю розшифрується, аналогічно рядку, що закінчується NULL, у C.


1
Це визначено в IEEE Std 802.3-2015 (розділ третій), 36.2.4.2 та 36.2.4.15 (серед інших місць у цій нечитабельній речі, яку вони називають стандартною;).
stefanct

1

Стаття, на яку ви дійсно хочете відповісти на своє запитання, http://en.wikipedia.org/wiki/Ethernet_II_framing ; що говорить:

Оскільки цей розроблений галузевим стандарт пройшов офіційний процес стандартизації IEEE, поле нового EtherType було змінено на поле (довжина даних) у новому стандарті 802.3. (Оригінальні пакети Ethernet визначають їх довжину з обрамленням, яке її оточує, а не з явним підрахунком довжини.) Оскільки одержувач пакету все ще повинен знати, як інтерпретувати пакет, стандарт вимагав заголовка IEEE 802.2, щоб слідкувати за довжиною та вказувати тип пакету.


Я думаю, мені незрозуміло, що означає "Оригінальні пакети Ethernet визначають їх довжину з обрамленням, яке її оточує". Біт преамбули / початкового кадру досить зрозумілий, але як клієнт знає, що кінець кадру досягнуто? Як він відрізняє CRC від міжфрагментного розриву? Чи легко відрізнити IFG випадковий електричний шум від реального сигналу?
брудний край

Кінець кадру в "класичному Ethernet" сигналізується незаконним кодуванням.
Ватін

@womble, Стаття, яку ви пов’язали, є хорошою, але цитата, яку ви цитували, є дуже оманливою поза контекстом. Більшість кадрів у мережі Ethernet сьогодні не використовують явного поля довжини.
Пітер Грін

-3

За логікою, є лише три варіанти:

  1. Використання статичного розміру кадру, як у.
  2. Вказання розміру кадру в його заголовку чи в іншому місці або навіть обмеження його деякими прапорами.
  3. Відправлення кадрів взагалі немає

Одна з таких робіт в Ethernet, оскільки немає інших варіантів сучасних мереж;) 1-й і 3-й неправильні для Ethernet, тому ви правильні!


-3

Знадобився певний час, щоб опрацювати це колись раніше, і знову зараз. Немало інформації про нього, що дивно, адже це таке очевидне питання. Нарешті я вирішив вирішити, що поля довжини в заголовках пакетів використовуються. Дивіться наступне посилання

http://www3.rad.com/networks/infrastructure/lans/etherform.htm#_ieee

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.