Обход пакетов из пространства ядра в пространство пользователя

Я пытаюсь смоделировать алгоритм ускорения TCP на Linux-машине. Насколько я понимаю, мне нужно обойти сетевой стек ядра и передать входящие пакеты моему пользовательскому коду. В настоящее время я смотрю на ловушки netfilter для перехвата пакетов, но я пока не понимаю, как передать пакет в пространство пользователя. вы можете помочь?


person wishwa perera    schedule 29.08.2017    source источник
comment
Добро пожаловать в SO — это волшебное место, где люди просто пишут код для вас. Предлагаем вам взглянуть на то, как задать вопрос.   -  person bated    schedule 29.08.2017


Ответы (1)


Я бы посоветовал взглянуть на средство PACKET_MMAP, которое доступно в Ядро Linux и позволяет принимать пакеты, построенные на круговом буферном кольце, сопоставленном с пользовательским пространством. Документ по ссылке является своего рода исчерпывающим, а также существуют различные примеры, такие как libpcap.

person Community    schedule 01.09.2017