Pcap.net против Sharppcap - PullRequest
       30

Pcap.net против Sharppcap

13 голосов
/ 11 июля 2011

Я просто хочу прослушать сетевое устройство, захватывать пакеты и записывать пакеты в фиктивный файл. Также мне нужно фильтровать пакеты во время прослушивания, так что плохо писать только пакеты, которые проходят фильтр. Мне нужно сделать это на .net c #. Это мои требования. Так какой из них я должен использовать? Высокая скорость передачи и минимальные потери пакетов действительно важны. Спасибо за чтение.

Ответы [ 2 ]

12 голосов
/ 19 августа 2011

Как автор SharpPcap, я могу сказать, что вы сможете выполнять все эти операции с библиотекой. Производительность была критической целью дизайна.

Packet.Net имеет ряд пакетов, которые он может анализировать, и является библиотекой, связанной с SharpPcap для анализа и генерации пакетов. Его архитектура выполняет ленивую оценку везде, где это возможно, чтобы быть максимально быстрой.

Производительность сложная, особенно потому, что захват сетевых пакетов часто является задачей с более низким приоритетом для операционной системы. Чем быстрее ваше приложение обрабатывает пакет, тем больше пакетов можно обработать без отбрасывания. Я был в состоянии захватить 3 МБ / с пакетов без каких-либо отбрасываний. Я не пробовал использовать его на более высоких скоростях передачи данных или писать обширные тесты для генерации и сбора данных с целью оценки производительности. Тем не менее, тесты и реальные результаты приветствуются для добавления в документацию и на веб-сайт.

8 голосов
/ 08 октября 2011

Вся функциональность доступна в Pcap.Net.

Pcap.Net использует C ++ / CLI для упаковки WinPcap, который считается более эффективным, чем PInvoke.

Библиотека пакетов в Pcap.Сеть довольно большая, и сложные пакеты могут быть проанализированы и созданы.Это включает в себя рекурсивные слои, такие как IP поверх IP.Разбор каждого слоя выполняется лениво и только тогда, когда вам это нужно.

Для ваших нужд я вижу только преимущества использования Pcap.Net по сравнению с SharpPcap.

...