TCP-IP-Grundlagen für die Netzwerk-Analyse mit Wireshark


    Tags: ,

    Computer-NetzwerkFür den erfolg­reichen Einsatz von Wireshark (oder Sniffern wie tcp-dump) ist es not­wendig, dass man sich im TCP/IP- bzw. im OSI-Schichten­modell sicher bewegt. Die grund­legenden Zusammen­hänge kann man sehr schön in Wireshark verifi­zieren, ganz unab­hängig vom trans­portieren Proto­koll und dem Einsatz­zweck.

    Ange­nommen wir sind im klassischen Ethernet kabelgebunden (CAT 6) unterwegs und berück­sichtigen 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 Nutz­daten 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)

    Jede Schicht enthält neben der Payload auch den Header der darüber liegenden Schicht.

    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:

    Aufbau des Headers auf Schicht 3

    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. trans­portiert 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 Voll­stän­digkeit halber noch einen Blick auf Layer 4, und zwar den TCP-Header, auch wenn wir unsere Analysen mit ICMP starten wollen.

    Aufbau des TCP-Headers

    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 Fluss­kontrolle 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.

    Wir werden in künftigen Beispielen den TCP-Authentifizierungs-Handshake verfolgen sowie die Flusssteuerung für eine SSH- oder FTP-Kommunikation.

    Keine Kommentare