1 <!-- EDG Chapter Works -->
4 <chapter id="ChapterWorks">
5 <title>How Ethereal Works</title>
7 <section id="ChWorksIntro">
8 <title>Introduction</title>
10 This chapter will give you a short overview, how Wireshark is working.
14 <section id="ChWorksOverview">
15 <title>Overview</title>
17 The following will give you a simplified overview of Ethereals function blocks:
18 <figure id="ChWorksFigOverview">
20 <application>Ethereal</application> function blocks.
22 <graphic entityref="EtherealFunctionBlocks" format="PNG"/>
26 The function blocks in more detail:
28 <varlistentry><term><command>GTK 1/2</command></term>
31 Handling of all user input/output (all windows, dialogs and such).
32 Source code can be found in the <filename>gtk</filename> directory.
36 <varlistentry><term><command>Core</command></term>
39 Main "glue code" that holds the other blocks together, source
40 code can be found in the root directory.
44 <varlistentry><term><command>Epan</command></term>
47 Ethereal Package ANalyzing (XXX - is this correct?) the packet
48 analyzing engine, source code can be found in the
49 <filename>epan</filename> directory.
54 Protocol-Tree - Keep data of the capture file protocol information.
59 Dissectors - The various protocol dissectors in
60 <filename>epan/dissectors</filename>.
65 Plugins - Some of the protocol dissectors are implemented as plugins, source
66 code at <filename>plugins</filename>.
71 Display-Filters - the display filter engine at
72 <filename>epan/dfilter</filename>.
78 <varlistentry><term><command>Capture</command></term>
85 <varlistentry><term><command>Wiretap</command></term>
88 The wiretap library is used to read/write capture files in libpcap
89 and a lot of other file formats, the source code is in the
90 <filename>wiretap</filename> directory.
95 <term><command>Win-/libpcap (not part of the Wireshark package)</command></term>
98 The platform dependant packet capture library, including the capture
99 filter engine. That's the reason why we still have different display
100 and capture filter syntax, as two different filtering engines used.
108 <section id="ChWorksCapturePackets">
109 <title>Capturing packets</title>
111 Capturing will take packets from a network adapter, and save them to a file
115 To hide all the lowlevel machine dependant details from
116 Ethereal, the libpcap/WinPcap (see <xref linkend="ChLibsPcap"/>) library
117 is used. This library provides a general purpose interface to capture
118 packets from a lot of different network interface types (Ethernet,
123 <section id="ChWorksCaptureFiles">
124 <title>Capture Files</title>
126 Ethereal can read and write capture files in it's natural file format, the
127 libpcap format, which is used by many other network capturing tools,
128 e.g. tcpdump. In addition to this, as one of it's strengths,
129 Ethereal can read/write files in many different file formats of other
130 network capturing tools. The wiretap library, developed together with
131 Ethereal, provides a general purpose interface to read/write all the file
132 formats. If you need to add another capture file format, this is the place
137 <section id="ChWorksDissectPackets">
138 <title>Dissect packets</title>
140 While Wireshark is loading packets from a file, each packet is dissected.
141 Ethereal tries to detect what kind of packet it is and getting as much
142 information from it as possible. In this run, only the information showed
143 in the packet list pane is needed though.
146 As the user selects a specific packet in the packet list pane, this packet
147 will be dissected again. This time, Ethereal tries to
148 get every single piece of information and put it into
149 the packet details pane then.
154 <!-- End of EDG Chapter Works -->