This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: "Pcap" – news · newspapers · books · scholar · JSTOR (October 2010) (Learn how and when to remove this message) This article contains content that is written like an advertisement. Please help improve it by removing promotional content and inappropriate external links, and by adding encyclopedic content written from a neutral point of view. (October 2017) (Learn how and when to remove this message) (Learn how and when to remove this message)
libpcap
Developer(s)The Tcpdump team
Stable release
1.10.4 / April 7, 2023; 12 months ago (2023-04-07)[1]
Repositorylibpcap on GitHub
Written inC
Operating systemLinux, Solaris, FreeBSD, NetBSD, OpenBSD, macOS, other Unix-like
TypeLibrary for packet capture
LicenseBSD[2]
Websitewww.tcpdump.org
WinPcap
Developer(s)Riverbed Technology
Final release
4.1.3 / March 8, 2013; 11 years ago (2013-03-08)[3]
Operating systemWindows
TypeLibrary for packet capture
LicenseFreeware
Websitewww.winpcap.org
Npcap
Developer(s)the Nmap project
Stable release
1.79 / January 19, 2024; 3 months ago (2024-01-19)[4]
Operating systemWindows
TypeLibrary for packet capture
LicenseProprietary (source available)
Websitenpcap.com

In the field of computer network administration, pcap is an application programming interface (API) for capturing network traffic. While the name is an abbreviation of packet capture, that is not the API's proper name. Unix-like systems implement pcap in the libpcap library; for Windows, there is a port of libpcap named WinPcap that is no longer supported or developed, and a port named Npcap for Windows 7 and later that is still supported.

Monitoring software may use libpcap, WinPcap, or Npcap to capture network packets traveling over a computer network and, in newer versions, to transmit packets on a network at the link layer, and to get a list of network interfaces for possible use with libpcap, WinPcap, or Npcap.

The pcap API is written in C, so other languages such as Java, .NET languages, and scripting languages generally use a wrapper; no such wrappers are provided by libpcap or WinPcap itself. C++ programs may link directly to the C API or make use of an object-oriented wrapper.

Features

libpcap, WinPcap, and Npcap provide the packet-capture and filtering engines of many open-source and commercial network tools, including protocol analyzers (packet sniffers), network monitors, network intrusion detection systems, traffic-generators and network-testers.

libpcap, WinPcap, and Npcap also support saving captured packets to a file, and reading files containing saved packets; applications can be written, using libpcap, WinPcap, or Npcap, to be able to capture network traffic and analyze it, or to read a saved capture and analyze it, using the same analysis code. A capture file saved in the format that libpcap, WinPcap, and Npcap use can be read by applications that understand that format, such as tcpdump, Wireshark, CA NetMaster, or Microsoft Network Monitor 3.x. The file format is described by Internet-Draft draft-ietf-opsawg-pcap;[5] the current editors' version of the draft is also available.[6]

The MIME type for the file format created and read by libpcap, WinPcap, and Npcap is application/vnd.tcpdump.pcap. The typical file extension is .pcap, although .cap and .dmp are also in common use.[7]

History

libpcap was originally developed by the tcpdump developers in the Network Research Group at Lawrence Berkeley Laboratory. The low-level packet capture, capture file reading, and capture file writing code of tcpdump was extracted and made into a library, with which tcpdump was linked.[8] It is now developed by the same tcpdump.org group that develops tcpdump.[9]

pcap libraries for Windows

While libpcap was originally developed for Unix-like operating systems, a successful port for Windows was made, called WinPcap. It has been unmaintained since 2013,[10] and several competing forks have been released with new features and support for newer versions of Windows.

WinPcap

WinPcap consists of:[11]

Programmers at the Politecnico di Torino wrote the original code. As of 2008, CACE Technologies, a company set up by some of the WinPcap developers, developed and maintained the product. CACE was acquired by Riverbed Technology on October 21, 2010.[12]

Because WinPcap uses the older NDIS 5.x APIs, it does not work on some builds of Windows 10, which have deprecated or removed those APIs in favor of the newer NDIS 6.x APIs. It also forces some limitations such as being unable to capture 802.1Q VLAN tags in Ethernet headers.

The WinPcap project has ceased development and WinPcap and WinDump are no longer maintained. The last official WinPcap release was 4.1.3 released March 8, 2013.[13]

Npcap

Npcap is the Nmap Project's packet sniffing library for Windows.[14] It is based on WinPcap, but written to make use of Windows networking improvements in NDIS version 6. Its authors rewrote the WinPcap NDIS 5 Protocol Driver as a Light-Weight Filter (LWF) driver, a change that reduces processing overhead.[15] Npcap maintenance releases updated the version of the included libpcap library to the latest available, allowing software authors to use the newer API features that Linux software had already supported.[16] Most software that used WinPcap can be easily ported to use Npcap with minimal changes.[17]

Npcap introduced several innovations that were not available in WinPcap:

Unlike Nmap, Npcap is proprietary software and requires a special license for use and redistribution except for some limited internal uses.[21]

Win10Pcap

Win10Pcap implementation is also based on the NDIS 6 driver model and works stably with Windows 10.[22] The project, however, has been inactive since 2016.[23]

Programs that use or used libpcap

Wrapper libraries for libpcap

Non-pcap libraries that read pcap files

Other applications or devices that read or write pcap or pcapng files

References

  1. ^ "tcpdump and libpcap latest release". tcpdump.org. Retrieved 2023-02-08.
  2. ^ "tcpdump and libpcap license". tcpdump.org. Retrieved 2020-05-02.
  3. ^ "WinPcap Changelog".
  4. ^ "npcap/CHANGELOG.md". GitHub.
  5. ^ PCAP Capture File Format. 23 July 2023. I-D draft-ietf-opsawg-pcap.
  6. ^ "PCAP Capture File Format". 1 March 2024.
  7. ^ Turner, Glen (2011-03-30). "IANA record of application for MIME type application/vnd.tcpdump.pcap". IANA. Retrieved 2023-02-25.
  8. ^ McCanne, Steve. "libpcap: An Architecture and Optimization Methodology for Packet Capture" (PDF). Retrieved December 27, 2013.
  9. ^ "TCPDUMP/LIBPCAP public repository". Retrieved December 27, 2013.
  10. ^ "WinPcap News". Retrieved November 6, 2017.
  11. ^ "WinPcap internals". Retrieved December 27, 2013.
  12. ^ "Riverbed Expands Further Into The Application-Aware Network Performance Management Market with the Acquisition of CACE Technologies" (Press release). Riverbed Technology. 2010-10-21. Archived from the original on 2013-03-08. Retrieved 2010-10-21.
  13. ^ "WinPcap · News". WinPcap. 2013-03-08.
  14. ^ "Npcap".
  15. ^ "Filter drivers". 15 December 2021.
  16. ^ "Release Npcap 1.20". GitHub.
  17. ^ "Updating WinPcap software to Npcap". Developing software with Npcap. Retrieved 2023-02-25.
  18. ^ "Graphical installer options". Npcap Users' Guide. Retrieved 2023-02-25.
  19. ^ "For software that uses Npcap loopback feature". Npcap User's Guide. Retrieved 2023-02-25.
  20. ^ "For software that uses Npcap raw 802.11 feature". Npcap User's Guide. Retrieved 2023-02-25.
  21. ^ "Npcap License". GitHub.
  22. ^ "Win10Pcap: WinPcap for Windows 10".
  23. ^ Win10Pcap: WinPcap for Windows 10 (NDIS 6.x driver model): SoftEtherVPN/Win10Pcap, SoftEther VPN Project, 2019-12-31, retrieved 2020-01-09
  24. ^ Bevens, Bridget (July 31, 2017). "Drill 1.11 Released".
  25. ^ Packet.java on GitHub
  26. ^ "What Can Read or Save a PCAP?". What is a PCAP file?. Endace.