2014-09-30 2 views
0

Я пытаюсь удалить нулевое заполнение из UDP-пакетов, отправленных с компьютера Linux. В настоящее время он заполняет размер пакета до 60 bytes.Удаление прокладки из UDP-пакетов в python (Linux)

Я строю сырую розетку с использованием AF_PACKET и SOCK_RAW. Я создал все из заголовка фрейма ethernet, заголовка ip (в котором я указываю размер пакета меньше 60) и самого пакета udp.

Я отправляю по локальной сети, и наблюдаемый пакет в wirehark имеет нулевое заполнение. Любые советы о том, как преодолеть эту проблему?

+0

Вы пытаетесь отправить неверные пакеты? Минимальный размер кадра ethernet составляет 60 байт из памяти, а драйвер устройства linux будет выставлять меньшие кадры такого размера. –

+0

64 байта, включая контрольную сумму в соответствии с http://en.wikipedia.org/wiki/Ethernet_frame#Structure –

+0

Да, вы пытаетесь отправить неверный пакет, есть ли способ избежать того, чтобы драйвер устройства linux заполнил его до такого размера? –

ответ

1

Это практически невозможно без игры с драйверами Linux. Это не самый лучший ответ, но он должен направлять всех, кто хочет сделать это в правильном direction.3

Тип Судо Ethtool -d eth0 , чтобы увидеть, если ваш водитель имеет площадку короткие пакеты включены.