Хороший захват с pcap_next_ex (), но с разными размерами заголовков Ethernet.14 с Ubuntu, 4 с FreeBSD - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть работающее приложение, которое необходимо было правильно выполнить как на моей локальной платформе, так и на Ubuntu 18.4, и перекомпилировать, запустить на платформе FreeBSD.

Я столкнулся с проблемой с пакетами, поскольку заголовок Ethernet былНа платформе FreeBSD на 10 байт

Я учел разницу в программном обеспечении после получения пакета, посмотрев в пакет данные из заголовка ICMP, который всегда присутствует в моих данных.Зная смещение этих данных, вы узнаете решение о размере заголовка.

Как только я узнаю размер заголовка Ethernet, я его убираю, и то, что остается единообразным для всех устройств.

НоЯ прослушан, что есть разница, которую я не могу понять.Может кто-нибудь указать мне документацию, описывающую причину, по которой разница составляет 4 или 14 байтов?

Я исследовал сеть в поисках объяснения, но не нашел ничего, что могло бы оправдать разницу.Даже FreeBSD 'Ethernet.h' показывает 14 байтов.

#define ETHER_HDR_LEN (ETHER_ADDR_LEN*2 + ETHER_TYPE_LEN) where that is (6*2)+2 equals 14
...