LINUX.ORG.RU

send raw socket. bug или нет ?

 , ,


0

1

До этого была проблема с тем как забиндить сокет к сетевому интерфейсу. Вроде получилось. Но теперь выходят какие странности с интерфейсами eth0 и eth1. Вот код : http://pastebin.com/JidxBVSS

Вот странности : http://oi65.tinypic.com/29h474.jpg

Тут видно что из интерфейс(а) исходит лишний пакет всегда в 60 байт заполненый 0-ми поверх «TEXTEXTEXTTEXT!!!». Это происходит только когда одновременно с пк , необязательно с одной программы Исходят пакеты на Raw Socket уровне. Т е все работает хорошо , если отсылать только из одного из них. В чем проблема ?

P. S. Из «lo» и «ham0» интерфейсов пакеты исоходят без лишних 60-ти байт.

Картинка (с отключённым javascript) у меня не открылась. Если хочешь, пробуй другой хостинг.

всегда в 60 байт заполненый 0-ми

        FDS[(*i)] = socket(AF_PACKET, SOCK_RAW, ETH_P_ALL);

Ты создаёшь сокет по Ethernet. А минимальный размер пакета 60 байт (+ 4 байта контрольная сумма на аппаратном уровне). Значит, меньшие пакеты забиваются нулями. Об этом можно почитать прямо на сайте Wireshark: Ethernet (IEEE 802.3)

P. S. Из «lo» и «ham0» интерфейсов пакеты исоходят без лишних 60-ти байт.

Они не физические, значит, ограничение не обязательно.

gag ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.