Für den erfolgreichen Einsatz von Wireshark (oder Sniffern wie tcp-dump) ist es notwendig, dass man sich im TCP/IP- bzw. im OSI-Schichtenmodell sicher bewegt. Die grundlegenden Zusammenhänge kann man sehr schön in Wireshark verifizieren, ganz unabhängig vom transportieren Protokoll und dem Einsatzzweck.
Angenommen wir sind im klassischen Ethernet kabelgebunden (CAT 6) unterwegs und berücksichtigen nur die unteren 4 Schichten. Dann haben wir es mit folgenden Segment-/Packet- und Frame-Größen zu tun, wobei die Header des TCP- und des IP-Protokolls jeweils 20 Byte (ohne Optionen) umfassen.
Die Kombination aus Header und Trailer beim Ethernet-Frame auf Schicht 2 (der einzige Layer, bei dem man eigentlich real von Kapselung sprechen dürfte) macht 14+4=18 Byte aus. Die Payload wird ergänzt um den Header der jeweils höheren Schicht für die Nutzdaten der darunter liegenden Schicht:
- Layer 4: TCP-Segment = MSS = 1480 = 1460 (Payload) + 20 Byte Header (4 Words)
- Layer 3: IP-Paket = MTU = 1500 = 1480 Payload + 20 Header (4 Words)
- Layer 2: Ethernet-Frame = (bei Ethernet) = 1518 = 1500 Payload + 18 (14 Byte Header + 4 Byte Trailer)
Eine Ausnahme bildet die Verwendung von IEEE 802.1Q-Tags (für VLAN oder Priorisierung). Dort wird der Header um vier Byte erweitert und das Frame damit maximal 1522 Byte groß.
Dazu noch mal zur Erinnerung der Aufbau des Ethernet-Frame (Schicht 2):
Ziel-MAC (6B) – Quell-MAC (6B) – Typ (2B) – Payload (1500B) – FCS (4B) = 1518
Das Typ-Feld gibt an, um welche Art von Packet es sich handelt, das hier von Schicht 3 eingekapselt ist, bei IPv4 z. B. 0x0800.
Bei IP (Schicht 3) ist der Header etwas komplexer aufgebaut und wird meist in 5 Worten untereinander = 20 Byte dargestellt, wobei die Horizontale genau 32 Bit (4 Byte) umfasst. Eine typische Abbildung ist diese:
Die Bedeutung der einzelnen Felder sollte bekannt sein. Übrigens werden Optionen/Füllbits meist nicht genutzt, sodass es beim Header bei genau 5 Worten x 4 Bytes = 20 Bytes bleibt. Diese Zählweise in Worten ist im IHL-Feld spezifiziert. Im Gegensatz zum Ethernet-Frame sind die Quell- und Ziel-IP anders als Ziel- und Quell-MAC auf Layer 3 nicht vertauscht und jeweils 32 Bit (4 Byte) lang (bei IPv4). Relevant für die folgenden Betrachtungen ist das Protocol-Feld. Analog zum Typ-Feld auf Layer 2 gib es an, welches höherwertige Protokoll eingekapselt bzw. transportiert wird. Beispiele wären die Layer-4-Protokolle TCP (Protocol-Nr. 6), UDP (Protocol-Nr. 17) und ICMP mit der Protocol-Nr. 1. Dieses ist allerdings im Gegensatz zu TCP und UDP ein Layer-3-Protokoll wie IP selbst auch.
Werfen wir der Vollständigkeit halber noch einen Blick auf Layer 4, und zwar den TCP-Header, auch wenn wir unsere Analysen mit ICMP starten wollen.
Hier beginnt der Aufbau des ebenfalls 20 Bit langen TCP-Headers (ohne Optionen/Füllbits) mit Quell- und Ziel-Port. Da TCP im Gegensatz zu UDP über eine Flusskontrolle verfügt und immer sicherstellt, dass Segmente auch ankommen, sind für spätere Analysen die Felder Sequence-Number, Acknowledgement-Number, Flags und Window-Size von Bedeutung.