BAD UDP LENGTH> IP LAYLTH LENGTH (WIRESHARK) - ПОЧЕМУ? - PullRequest
0 голосов
/ 24 марта 2020

Я работаю над проектом FPGA ETHE RNET. Моя проблема заключается в следующем: пакет UDP / IP, отправленный с FPGA, перехватывается «wireshark», и он выдает мне следующее предупреждение: «BAD UDP LENGTH 26> IP PAYLOAD LENGTH Len = 18 (Malformed Packet)». BAD_UDP_LENGTH (PICTURE)

1004 * На самом деле, я пытаюсь отправить следующий пакет: 55555555555555D598EECB9B6EF400123456789008004500002EB3FE0000801108BDA9FE1504A9FE1503FA00FA00001A45630 00102030405060708090A0B0C0D0E0F1011 06A07518 1008 * Вы можете видеть, что последний байт данные 11 , и эта часть данных не отображается "wireshark". Эта часть данных, очевидно, передается , как я видел это на осциллографе. Я пробовал количество различных генераторов пакетов Ethe rnet (PacketETH, EthernetUDP, C#), и все они генерировали одинаковые пакеты (я думаю, что нет проблем в пакетах или генераторах пакетов). Также я перехватил пакеты с помощью другого программного обеспечения для мониторинга сети «Omnipeek», которое дало мне тот же результат, что и «wireshark»: ПОСЛЕДНИЙ БАЙТ НЕ ОТОБРАЖЕН

Если отображается последний байт, я думаю, «wireshark» не выдаст мне эту ошибку.

Кто-нибудь знает, как решить эту проблему?

Here I will give you additional details :

1) Я использую Digilent Anvyl FPGA , которая имеет LAN8720A-CP-TR трансивер. Я написал код на VHDL, а также запустил симуляцию в ISIM, которая дала мне правильный результат, а именно: все биты отправляются последовательно с соответствующими значениями . Кроме того, я проверил результат моделирования в реальности, исследуя выводы передачи трансивера LAN8720A-CP-TR с помощью Digilent Electronics Explorer

2) Для генерации пакетов Ethe rnet я использую простую программу которую вы можете скачать здесь EthernetUDP (fpga4fun.com) вот изображение пакета, сгенерированного этой программой Изображение EthernetUDP

1 Ответ

0 голосов
/ 24 марта 2020

Если я копирую данные кадра из изображения, я получаю это:

0000  98 ee cb 9b 6e f4 00 12 34 56 78 90 08 00 45 00
0010  00 2e b3 fe 00 00 80 11 08 bd a9 fe 15 04 a9 fe
0020  15 03 fa 00 fa 00 00 1a 45 63 00 01 02 03 04 05
0030  06 07 08 09 0a 0b 0c 0d 0e 0f 10 11
0040

И если я сохраняю это в файле с именем packet.txt, затем запускаю text2pcap packet.txt packet.pcap, затем загружаю полученный файл захвата Вернувшись в Wireshark, я получаю полностью действительный пакет, включающий завершающий байт 0x11, и «байты на проводе» обозначаются как 60 байтов вместо 59 байтов. быть переданным Wireshark; поэтому он просто не был захвачен по какой-то причине, и именно поэтому он не отображается. Почему это не было захвачено - открытый вопрос. Возможно, он был передан, как вы говорите, поскольку вы можете видеть его на осциллографе, но что-то об этом или ваше оборудование для захвата неверно.

...