Глядя на запись Ethernet в Википедии, я не могу понять, как указано, какова длина кадра Ethernet. Поле заголовка EtherType / Length, очевидно, может указывать либо тип фрейма, либо явную длину, и я предполагаю, что в случае с типом фрейма, он должен сделать какую-то другую логику, чтобы выяснить, как долго пакет. Например, если поле EtherType равно 0x0800, это указывает на полезную нагрузку IPv4, и поэтому принимающая сетевая карта должна будет проверить первые 32 бита полезной нагрузки, чтобы найти длину IP-пакета и, следовательно, выяснить общую длину кадр Ethernet, и знать, когда искать контрольную сумму конца кадра и промежуток между кадрами.
Это звучит правильно? Я также рассмотрел спецификацию IEEE 802.3 для Ethernet (часть 1, во всяком случае), которая, кажется, подтверждает это, но она довольно непрозрачна.
источник
Ответы:
Подуровень физического кодирования отвечает за разграничение кадров и отправку их на уровень MAC.
Например, в Gigabit Ethernet схема кодирования 8B / 10B использует 10-битную кодовую группу для кодирования 8-битного байта. Два дополнительных бита сообщают, является ли байт управляющей информацией или данными. Управляющей информацией может быть Конфигурация, Start_of_packet, End_of_packet, IDLE, Carrier_extend, Error_propagation.
Так NIC знает, где начинается и заканчивается кадр. Это также означает, что длина кадра неизвестна до того, как он полностью декодируется, аналогично строке с нулевым символом в Си.
источник
Статья, на которую вы действительно хотите ответить на свой вопрос: http://en.wikipedia.org/wiki/Ethernet_II_framing ; который говорит:
источник
По логике есть только три варианта:
Один из них работает в Ethernet, потому что в настоящее время нет других вариантов для современных сетей;) 1-й и 3-й не подходят для Ethernet, так что вы правы!
источник
Потребовалось время, чтобы решить это один раз, а теперь снова. Не так много информации о нем, что удивительно, поскольку это такой очевидный вопрос. Я наконец остановился на решении, что используются поля длины в заголовках пакетов. Смотрите следующую ссылку
http://www3.rad.com/networks/infrastructure/lans/etherform.htm#_ieee
источник