Подтвердить что ты не робот

Pcap.net против Sharppcap

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

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