Як 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.