Перейти к содержимому
vektor555

пакетный сокет

Рекомендуемые сообщения

Добрый день!
Имеется приложение в котором создается пакетный сокет:

pack_sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));

Данным сокетом с канального уровня сетевого стека вычитываются все входящие/выходящие пакеты. Однако, получается что пакетный сокет не удаляет пакет с канального уровня, а только копирует его, после чего пакет передается выше по сетевому стеку/в драйвер для передачи в сеть. 
То есть, если в дополнение к пакетному сокету открыть и присоединить к нужному ip и порту, скажем, udp сокет, то данным сокетом можно повторно вычитать данные  (с удаленными ethernet, ip и udp заголовками), уже полученные пакетным сокетом.
Вопрос: можно ли каким либо образом (выставлением флагов, модификацией стека) предотвратить передачу ВХОДЯЩИХ пакетов, вычитанных пакетным сокетом, выше по сетевому стеку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×