Отправка Ethernet-пакетов в режиме одноадресной передачи

Отправка Ethernet-пакетов в режиме одноадресной передачи

Я пытаюсь создать такой тип кадра Ethernet:

Адрес назначения (первые биты нулевые) + Адрес источника + IP-адрес источника + IP-адрес назначения + Данные

Но я не знаю, нужен ли эфирный тип IpV4 08 00 или что-то в этом роде.

Я хочу установить связь пара-пара по протоколу Ethernet, чтобы использовать пакетный кадр unicast, но как это сделать. Как подготовить кадр Ethernet под unicast? Я искал в Google, но ничего полезного не нашел, как продолжить? У меня есть stm32 lwip и коммутатор Ethernet для этой цели.

Как мне создать одноадресные пакеты Ethernet точка-точка, пожалуйста, помогите мне.

решение1

Обычная структура для Ethernet выглядит следующим образом:

dest-MAC source-MAC type/length source-ip dest-ip data ...

(Если поле типа/длины равно 1536 или больше, оно интерпретируется как код типа Ethernet, в противном случае это длина кадра.)

Если вы не используете поле ethertype для указания типа, оно может быть интерпретировано как поле длины (если оно меньше 1536).

Вероятно, это осуществимо, когда два устройства находятся на одном коммутаторе или напрямую соединены кабелем, чтобы иметь возможность общаться без правильного использования поля ethertype (как ethertype или length). Но если я предполагаю, что вы хотите общаться на уровне 3 или выше (следовательно, включая IP-адреса в ваш кадр), вы можете столкнуться с маршрутизаторами, которые фрагментируют/обрезают/отклоняют пакеты, когда вы поместили начало исходного IP-адреса там, где он ожидает длину/тип кадра.

Правильные поля фрейма можно посмотреть на странице Википедии для "Ethernet-фрейм".

Связанный контент