Winpcap прослушивает устройство с 2 различными фильтрами - PullRequest
0 голосов
/ 19 июля 2011

Можно ли прослушивать устройство с двумя разными фильтрами и захватывать пакеты? Например, я начинаю прослушивать устройство с фильтром и выгружать пакеты в файл pcap, через 15 минут я могу начать другое прослушивание на том же устройстве с другим фильтром и выгружать пакеты в другой файл pcap, не останавливая старый?

Блокирует ли pcap_open или pcap_next_ex входящие пакеты? Что я имею в виду, если пакет поступает во время прослушивания из двух разных потоков, один из которых получит пакет и будет контролировать его для фильтра, может ли другой поток получить доступ к пакету?

Надеюсь, я извиняюсь за плохой английский.

Ответы [ 2 ]

2 голосов
/ 30 июля 2011

могу ли я запустить другое прослушивание на том же устройстве с другим фильтром и сбросить пакеты в другой файл pcap>, не останавливая старый?

Да. Хотя вам лучше запустить этот слушатель в другом потоке / процессе, чтобы обработать его.

Блокирует ли pcap_open или pcap_next_ex входящие пакеты?

Это не так. Он сбрасывает пакеты на ваш прослушиватель pcap, если одна часть (вы или ОС) не справляются с поступающими пакетами.

pcap также продублирует пакеты (говоря по крайней мере о * nix pcap, предполагая, что winpcap работает одинаково), поэтому, если у вас есть несколько списков pcap, фильтрующих по одним и тем же пакетам, они все получат копию.

0 голосов
/ 30 июля 2011

Для каждого открытого дескриптора устройства у вас есть отдельный фильтр и буфер пакетов. скажи ручку «А» и ручку «В» теперь допустим, что оба дескриптора находятся на одном сетевом устройстве.

Теперь предположим, что сетевое устройство получает 4 пакета.

каждый пакет попадает в драйвер оборудования, затем в winpcap. в этот момент winpcap применяет каждый фильтр дескрипторов по одному. если совпадение сделано, пакет будет скопирован в этот буфер пакетов. после обработки всех дескрипторов пакет передается ОС.

Блокирует ли pcap_open или pcap_next_ex входящие пакеты? Нет.

Дело в том, что операционная система, скорее всего, увидит пакет до того, как ваше приложение его обработает. Я могу ошибаться, но я не думаю, что в winpcap есть какой-либо стандартный метод блокировки пакета.

...