stringtranslate.com

pcap

В области администрирования компьютерных сетей pcap — это интерфейс прикладного программирования (API) для захвата сетевого трафика . Хотя название является аббревиатурой от packet capture , это не полное название API. Unix-подобные системы реализуют pcap в библиотеке libpcap ; для Windows существует порт libpcap под названием WinPcap , который больше не поддерживается и не разрабатывается, а также порт под названием Npcap для Windows 7 и более поздних версий, который все еще поддерживается.

Программное обеспечение для мониторинга может использовать libpcap, WinPcap или Npcap для захвата сетевых пакетов, проходящих по компьютерной сети , а в более новых версиях — для передачи пакетов по сети на канальном уровне и для получения списка сетевых интерфейсов для возможного использования с libpcap, WinPcap или Npcap.

API pcap написано на языке C , поэтому другие языки, такие как Java , языки .NET и языки сценариев, как правило, используют обертку ; ни libpcap, ни сама WinPcap не предоставляют таких оберток. Программы на C++ могут напрямую ссылаться на API C или использовать объектно-ориентированную обертку.

Функции

libpcap, WinPcap и Npcap предоставляют механизмы захвата и фильтрации пакетов для многих сетевых инструментов с открытым исходным кодом и коммерческих сетевых инструментов, включая анализаторы протоколов ( анализаторы пакетов ), сетевые мониторы , системы обнаружения сетевых вторжений , генераторы трафика и сетевые тестеры.

Большинство современных Unix-подобных систем предоставляют механизм, с помощью которого программа может захватывать сетевой трафик к машине, на которой запущена программа, и с нее, а в некоторых случаях и другой трафик, к которому подключена эта машина. Однако эти механизмы существенно отличаются друг от друга; библиотека libpcap предоставляет общий API для доступа к этим механизмам, что позволяет писать программы для захвата сетевого трафика, не беспокоясь о деталях всех этих механизмов.

libpcap, WinPcap и Npcap также поддерживают сохранение захваченных пакетов в файл и чтение файлов, содержащих сохраненные пакеты; приложения могут быть написаны с использованием libpcap, WinPcap или Npcap, чтобы иметь возможность захватывать сетевой трафик и анализировать его, или читать сохраненный захват и анализировать его, используя тот же код анализа. Файл захвата, сохраненный в формате, который используют libpcap, WinPcap и Npcap, может быть прочитан приложениями, которые понимают этот формат, такими как tcpdump , Wireshark , CA NetMaster или Microsoft Network Monitor 3.x. Формат файла описан в Internet-Draft draft-ietf-opsawg-pcap; [5] также доступна текущая редакционная версия черновика. [6]

Тип MIME для формата файла, созданного и прочитанного libpcap, WinPcap и Npcap, — application/vnd.tcpdump.pcap. Типичное расширение файла — .pcap, хотя .cap и .dmp также широко используются. [7]

История

libpcap изначально была разработана разработчиками tcpdump в Network Research Group в Lawrence Berkeley Laboratory . Низкоуровневый код захвата пакетов, чтения файла захвата и записи файла захвата tcpdump был извлечен и преобразован в библиотеку, с которой был связан tcpdump. [8] В настоящее время он разрабатывается той же группой tcpdump.org, которая разрабатывает tcpdump. [9]

библиотеки pcap для Windows

Хотя libpcap изначально разрабатывался для Unix-подобных операционных систем, был создан успешный порт для Windows под названием WinPcap. Он не поддерживается с 2013 года, [10] и было выпущено несколько конкурирующих форков с новыми функциями и поддержкой новых версий Windows.

WinPcap

WinPcap состоит из: [11]

Программисты Политехнического университета Турина написали оригинальный код. По состоянию на 2008 год CACE Technologies, компания, созданная некоторыми разработчиками WinPcap, разрабатывала и поддерживала продукт. CACE была приобретена Riverbed Technology 21 октября 2010 года. [12]

Поскольку WinPcap использует старые API NDIS 5.x, он не работает на некоторых сборках Windows 10, которые устарели или удалили эти API в пользу новых API NDIS 6.x. Он также накладывает некоторые ограничения, такие как невозможность захвата тегов VLAN 802.1Q в заголовках Ethernet .

Проект WinPcap прекратил разработку, а WinPcap и WinDump больше не поддерживаются. Последний официальный релиз WinPcap был 4.1.3, выпущенный 8 марта 2013 года. [13]

Npcap

Npcap — это библиотека анализа пакетов Nmap Project для Windows. [14] Она основана на WinPcap, но написана для использования сетевых улучшений Windows в NDIS версии 6. Ее авторы переписали драйвер протокола WinPcap NDIS 5 как драйвер облегченного фильтра (LWF), что снижает накладные расходы на обработку. [15] Техническое обслуживание Npcap обновило версию включенной библиотеки libpcap до последней доступной, что позволило авторам программного обеспечения использовать новые функции API, которые программное обеспечение Linux уже поддерживало. [16] Большинство программного обеспечения, которое использовало WinPcap, можно легко портировать для использования Npcap с минимальными изменениями. [17]

Npcap представил несколько нововведений, которых не было в WinPcap:

В отличие от Nmap , Npcap является проприетарным программным обеспечением и требует специальной лицензии для использования и распространения, за исключением некоторых ограниченных случаев внутреннего использования. [21]

Win10Pcap

Реализация Win10Pcap также основана на модели драйвера NDIS 6 и стабильно работает с Windows 10. [ 22] Однако проект неактивен с 2016 года. [23]

Программы, которые используют или использовали libpcap

Библиотеки-обертки для libpcap

Не-pcap библиотеки, которые читают pcap-файлы

Другие приложения или устройства, которые читают или записывают файлы pcap или pcapng

Ссылки

  1. ^ "tcpdump и libpcap последняя версия". tcpdump.org . Получено 2023-02-08 .
  2. ^ "лицензия tcpdump и libpcap". tcpdump.org . Получено 2020-05-02 .
  3. ^ "Журнал изменений WinPcap".
  4. ^ "npcap/CHANGELOG.md". GitHub .
  5. ^ Формат файла захвата PCAP. 23 июля 2023 г. Идентификатор draft-ietf-opsawg-pcap.
  6. ^ «Формат файла захвата PCAP». 1 марта 2024 г.
  7. ^ Тернер, Глен (2011-03-30). "Запись IANA о заявке на тип MIME application/vnd.tcpdump.pcap". IANA . Получено 2023-02-25 .
  8. ^ МакКейн, Стив. "libpcap: Архитектура и методология оптимизации для захвата пакетов" (PDF) . Получено 27 декабря 2013 г.
  9. ^ "TCPDUMP/LIBPCAP public repository" . Получено 27 декабря 2013 г. .
  10. ^ "WinPcap News" . Получено 6 ноября 2017 г. .
  11. ^ "WinPcap internals" . Получено 27 декабря 2013 г. .
  12. ^ "Riverbed расширяет свое присутствие на рынке управления производительностью сетей с учетом приложений, приобретая CACE Technologies" (пресс-релиз). Riverbed Technology . 2010-10-21. Архивировано из оригинала 2013-03-08 . Получено 2010-10-21 .
  13. ^ "WinPcap · Новости". WinPcap . 2013-03-08.
  14. ^ "Npcap".
  15. ^ "Фильтрация драйверов". 15 декабря 2021 г.
  16. ^ "Выпуск Npcap 1.20". GitHub .
  17. ^ "Обновление программного обеспечения WinPcap до Npcap". Разработка программного обеспечения с помощью Npcap . Получено 2023-02-25 .
  18. ^ "Параметры графического установщика". Руководство пользователя Npcap . Получено 25.02.2023 .
  19. ^ "Для программного обеспечения, использующего функцию обратной связи Npcap". Руководство пользователя Npcap . Получено 25.02.2023 .
  20. ^ "Для программного обеспечения, использующего функцию Npcap raw 802.11". Руководство пользователя Npcap . Получено 25.02.2023 .
  21. ^ "Лицензия Npcap". GitHub .
  22. ^ "Win10Pcap: WinPcap для Windows 10".
  23. ^ Win10Pcap: WinPcap для Windows 10 (модель драйвера NDIS 6.x): SoftEtherVPN/Win10Pcap, проект SoftEther VPN, 2019-12-31 , получено 2020-01-09
  24. Бевенс, Бриджит (31 июля 2017 г.). «Drill 1.11 Released».
  25. ^ Пакет.java на GitHub
  26. ^ "Что может читать или сохранять PCAP?". Что такое файл PCAP? . Endace .

Внешние ссылки