- Имеют ли необработанные сокеты какой-либо метод фильтрации, эквивалентный встроенному в ядро BPF (используемому libpcap)?
Что ж, они это делают, и это более чем эквивалентно: они сами поддерживают фильтры BPF. Вы бы прикрепили сокет следующим образом:
setsockopt(socket, SOL_SOCKET, SO_ATTACH_FILTER, &bpf_filter, sizeof(bpf_filter));
(В этот вопрос есть полный пример).
За последние несколько лет BPF претерпел множество изменений в Linux, и теперь вы можете подключать его к различным хукам для работы в сети: к сокетам, а также к входным/выходным интерфейсам tc, XDP (на сетевых адаптерах с совместимыми драйверами). Также: kprobes, точки трассировки, перформанс-события, контрольные группы и многое другое… для трассировки/мониторинга.
Я не достаточно уверен, чтобы ответить на вопросы 2 и 3, извините.
person
Qeole
schedule
03.12.2016