В исследовательских целях пишу модуль, реализующий сетевой обмен в контексте ядра. На одном хосте модуль формирует IP/UDP пакет и отправляет его чрез стевой интерфейс. На другом хосте такой же модуль ставит ловушку в цепочку PREROUTING и перехватывает пришедшие пакеты. Вроде отладил, как-то это худо бедно заработало. Но заработало при обмене пакетами малых размеров. Специально начал отладку с маленьких пакетов, так как порции данных, которые надо пересылать могут быть разных размеров. Стоило увеличить размер пакетов сетевого обмена, как начались чудеса. Если payload по udp до 208 включительно, то все ок. Ставлю 216 и более - не работает. Т.е. смотрю отправляемый sk_buf перед самой передачей. Ничего подозрительного не видно в обоих случаях. Смотрю wireshark-ом на принимающей стороне. Что маленький, что большой пакеты заполнены так, как и должны (т.е. между ними не наблюдаю принципиальной разницы, кроме соответствующих размеров). Однако ловушка на приемном конце не может нормально принять большой пакет. Причем видно, что ip_total_len у пойманного пакета такая же, как у отправленного (и захваченного wireshark-ом). А вот tail почему-то указывает, что прочитан только IP-заголовок + UDP-заголовок. Ну т.е., если отправлен пакет с payload 216, то получаю разницу между data и head в 76 байт и tail 106, в итоге между data и tail 28 байт, т.е. всего на IP+UDP заголовки. А дальше мусор. Понимаю, что где-то какой-то обидный ляп, а как его теперь ловить - уже ума не приложу.
Ответ на:
комментарий
от zaz
Ответ на:
комментарий
от mky
Ответ на:
комментарий
от zloy_starper
Ответ на:
комментарий
от zloy_starper
Ответ на:
комментарий
от zaz
Ответ на:
комментарий
от zloy_starper
Ответ на:
комментарий
от mky
Ответ на:
комментарий
от mky
Ответ на:
комментарий
от zloy_starper
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Самописный модуль вызывает ошибку в ядре. (2014)
- Форум модули сетевых карт (2009)
- Форум самописный watchdog (2011)
- Форум Самописный init (2008)
- Форум модуль для сетевой карты (2003)
- Форум покритикуйте самописный рогалик (2014)
- Форум Обработка сетевых пакетов и тактовая частота процессора. (2017)
- Форум Не загружается модуль сетевой карты (2002)
- Форум Самописный мост GMusicProxy-mpd (2016)
- Форум Протоколирование работы самописного ПО (2015)