Введение

Интерфейс программирования приложений для захвата сетевого трафика, API для перехвата пакетов. В области администрирования компьютерных сетей 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 предоставляют механизмы захвата и фильтрации пакетов для многих сетевых инструментов с открытым и коммерческим исходным кодом, включая анализаторы протоколов (снифферы пакетов), сетевые мониторы, системы обнаружения сетевых вторжений, генераторы трафика и сетевые тестеры. libpcap, WinPcap и Npcap также поддерживают сохранение захваченных пакетов в файл и чтение файлов, содержащих сохраненные пакеты. Приложения могут быть разработаны с использованием libpcap, WinPcap или Npcap для захвата сетевого трафика и его анализа, или для чтения сохраненного захвата и анализа с использованием того же кода. Файл захвата, сохраненный в формате, используемом libpcap, WinPcap и Npcap, может быть прочитан приложениями, поддерживающими этот формат, такими как tcpdump, Wireshark, CA NetMaster или Microsoft Network Monitor 3.x. Формат файла описан в Internet Draft draft-ietf-opsawg-pcap; текущая версия проекта также доступна. MIME-тип для формата файла, создаваемого и читаемого libpcap, WinPcap и Npcap, – application/vnd.tcpdump.pcap. Типичным расширением файла является pcap, хотя также часто используются расширения cap и dmp.

История

libpcap был первоначально разработан создателями tcpdump в сетевой исследовательской группе Лоуренс-Берклейской национальной лаборатории. Код низкоуровневого захвата пакетов, чтения файлов захвата и записи файлов захвата из tcpdump был выделен и преобразован в библиотеку, с которой затем и был связан tcpdump. В настоящее время разработка libpcap ведется той же командой tcpdump.org, что и разработка tcpdump.

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

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

Win10Pcap

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

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

Apache Drill — это SQL-движок с открытым исходным кодом для интерактивного анализа больших объемов данных. EndaceProbe — высокопроизводительная система захвата пакетов, непрерывно записывающая сетевой трафик на протяжении недель или месяцев.