Что мне нужно заполнить при использовании IP_HDRINCL - PullRequest
1 голос
/ 15 июля 2010

Я ожидаю появления "Сетевого программирования Linux", но в то же время я подумал, что попрошу здесь моих братьев (и сестер) некоторую информацию. Если я построил сырую структуру пакета, содержащую заголовок ethernet, заголовок ip и заголовок tcp / udp / icmp. Что я на самом деле должен заполнить при использовании опции IP_HDRINCL? Сначала я думал, что мне нужно сделать все, но теперь я понимаю, что адреса src и dest mac заголовка ethernet могут обрабатываться ядром. Но что требуется для заполнения и какие значения должны иметь другие поля, чтобы ядро ​​понимало, что оно должно их заполнять?

Заранее спасибо, мальчики (и девочки)!

1 Ответ

1 голос
/ 16 июля 2010

Вы начинаете с заголовка IP. Но правильно установите все элементы кадров IP и TCP / UDP.

Ваши предположения верны. Не включайте заголовок Ethernet при отправке необработанных IP-кадров. Обычно Ethernet используется как низкоуровневая связь, но есть и другие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...