6.2. Overview

The following will give you a simplified overview of Wireshark's function blocks:

Figure 6.1.  Wireshark function blocks.

Wireshark function blocks.


The function blocks in more detail:

GTK+ 2

Handling of all user input/output (all windows, dialogs and such). Source code can be found in the gtk directory.

Core

Main "glue code" that holds the other blocks together. Source code can be found in the root directory.

Epan

Ethereal Packet ANalyzer - the packet analyzing engine. Source code can be found in the epan directory.

  • Protocol-Tree - Keep data of the capture file protocol information.

  • Dissectors - The various protocol dissectors in epan/dissectors.

  • Dissector-Plugins - Some of the protocol dissectors are implemented as plugins. Source code can be found in plugins.

  • Display-Filters - the display filter engine at epan/dfilter.

Wiretap

The wiretap library is used to read/write capture files in libpcap and a lot of other file formats. Source code in the wiretap directory.

Capture

The interface with the capture engine. Source code in the root directory.

Dumpcap

The capture engine itself. This is the only part that is to execute with elevated privileges. Source code in the root directory.

WinPcap / libpcap (not part of the Wireshark package)

The platform dependent packet capture library, including the capture filter engine. That's the reason why we still have different display and capture filter syntax, as two different filtering engines are used.