LINUX.ORG.RU

Сообщения vektor554

 

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

Форум — Development

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

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

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

 ,

vektor554
()

RSS подписка на новые темы