Rechnernetze / Kommunikationssysteme

Praktikum TCP-Wireshark

In diesem Versuch werden wir das TCP-Protokoll mittels Wireshark näher betrachten. Es empfiehlt sich, ggf. die Wireshark-Einführung vor dem Versuch zu lesen.

Manche Netzwerkkarten bieten TCP-Offloading (TSO) an (Zusammenfassung mehrerer Pakete in der Netzwerkkarte). Dies muss für eine korrekte Anzeige der gesendeten und empfangenen Pakete ausgeschaltet werden: TCP Large Segment Offload.

Aufgaben

Nutzen Sie diesen Paketmitschnitt und beantworten Sie die Fragen, später könnten Sie auch eigene Datenübertragungen aufzeichnen und auswerten. Notieren Sie die jeweiligen Paketnummern für die Beantwortung der Fragen. Sinnvoll ist eventuell ein Anzeigefilter für TCP-Pakete und eine Deaktivierung von höheren Protokollen (HTTP): (Analyze: Enabled Protocols).

  1. Bestimmen Sie die IP- und Portnummern der beiden Kommunikationspartner!
  2. Ermitteln Sie die Wireshark Paketnummern des Handshakes!
  3. Ermitteln Sie die relativen und echten Sequenznummern von Client und Server am Beginn der Übertragung (Diese werden zufällig erzeugt, Wireshark stellt allerdings die relativen Nummern dar). Alle weiteren Ausführungen beziehen sich auf die relativen SN.
  4. Welche Werte für SN/ACK hat das 3. Segment des Handshakes und warum?
  5. Nutzen Sie die Anzeige Statistiken/Flow Graph um den Fluss der SN + ACK -Nummern zu analysieren.
  6. Bestimmen Sie die Länge der ersten 6 Segmente!
  7. Bestimmen Sie die RTT für die ersten 6 Segmente!
  8. Gesucht ist die minimale und die maximale RTT in der Übertragung. Nutzen Sie die Darstellung Statistik/TCP Stream-Graphen zur Bestimmung der RTT!
  9. Was ist die erste Fenstergröße des Empfängers in der Übertragung?
  10. Was ist die geringste Fenstergröße des Empfängers in der gesamten Übertragung? (TCP Stream-Graphen - Windows Scaling Graph)
  11. Gibt es Anpassungen der Fenstergröße?
  12. Woran erkennt man Segmentwiederholungen? Gibt es in der Übertragung Wiederholungen? Nutzen Sie einen passenden Graphen.
  13. Wieviele Daten bestätigt der Empfänger typischerweise?
  14. Nutzen Sie deinen passenden Graphen zur Bestimmung der Slow Start Phase! Ab welcher Segmentnummer endet die Phase?
  15. Analysieren Sie das Ende der TCP-Verbindung, Wieviele Daten wurden übertragen?
  16. Ermitteln Sie den Datendurchsatz anhand der Daten aus Wireshark!

Lösung

  1. IP-Nummern und Portnummern
  2. Paketnummern der Pakete SYN, SYN-ACK, ACK
  3. Siehe Hinweis [1], die Übertragung beginnt mit der relativen SN 0
  4. SYN erhöht um 1 (Dummy Byte)
  5. Flow Graph Anzeige
  6. Längenangabe in Wireshark: TCP, LEN=1460
  7. Bestimmung der SN der ersten 6 Segmente und Finden der entsprechenden ACK-Pakete: RTT = Sendezeit - ACK-Empfangszeit
  8. RTT ablesbar in Diagramm
  9. Fenstergröße ablesbar in Window size value (5840)
  10. Geringste Fenstergröße ablesbar in Diagramm TCP Stream Graph: Windows Scaling Graph (5840, 6780)
  11. Anpassungen im obigen Diagramm sichtbar (5840 -> 62780)
  12. Segmentwiederholungen sind als Punkt unterhalb der bisherigen Punkte erkennbar (nein)
  13. Differenz der ACK-Nummern ergibt das bestätigte Volumen
  14. Slow Start Phase ist in Diagramm sichtbar
  15. Ende der Verbindung, Datenvolumen mittels letzem ACK
  16. Datendurchsatz: Datenvolumen / Zeit (letztes - erstes Paket)

Big-Download - Paketaufzeichnung auf Serverseite)

Nutzen Sie für diesen Versuch diese Paketaufzeichnung

  1. Wurde die TCP-Verbindung ordnungsgemäß auf- und abgebaut?
  2. Bestimmen Sie die jeweiligen MSS!
  3. Bestimmen Sie die RTT anhand des TCP-Handshakes! Überprüfen Sie das Ergebnis anhand des Diagramms für RTT (Statistik - TCP Graphen).
  4. Bestimmen das Datenratenverzögerungsprodukt (BDP) wenn man von der Bitrate 1 Gbps ausgeht.
  5. Wieviele Segmente passen auf die Leitung?
  6. Bestimmen Sie die übertragene Datenmenge!
  7. Bestimmen Sie den Datendurchsatz!
  8. Welche Informationen werden mittels des ACK-Pakets 7062 übermittelt?
  9. Nutzen Sie das Diagramm tcptrace und ermitteln Sie die folgenden Werte:
    1. Dauer der Slow-Start-Phase
    2. An welchen Stellen behindert das Empfangsfenster die weitere Übertragung?
    3. Warum wird trotz der Paketverluste ab Paket 5662 vom Sender weiter übertragen?
    4. Analysieren Sie das SACK-Paket 7062 (die Option SACKs auswählen muss aktiviert sein)

Lösung

  1. ja
  2. 1440
  3. ca. 13 ms
  4. ca. 1500 KB
  5. Segmente
  6. Datenmenge: 78 MB
  7. Datenrate: 78 MB / 0.9 s = 90 MB/s
  8. SACK 3558: drei Bereiche mit zusammenhängenden Daten: ACK 6321807 TCP Option - SACK 6343407-6409647 6339087-6340527 6336207-6337647
  9. tcptrace
    1. slowstart ca. 0.1s
    2. ab Paket 8609
    3. Sendefenster noch offen
    4. SACK 7062: ACK 6321807 TCP Option - SACK 6343407-6409647 6339087-6340527 6336207-6337647

Voreinstellungen

  1. TCP Large Segment Offload
  2. Capture Filter Beispiel: host 172.18.5.4 and port 53
  3. Display Filter Beispiel: tcp.port eq 25 or icmp and ip.src == 1.1.1.1
  4. TCP-Felder hinzufügen: Calculated windows size und Bytes in flight
  5. Up- und Downlink unterschiedlich einfärben: Farbanpassungen in Wireshark
  6. TCP-Protokoll: Relative Sequenznummern
  7. TCP segment of a reassembled PDU -> Preferences -> Protocol -> TCP

Literatur/Quellen

  1. Kurose, Ross ”Computernetzwerke”, Pearson
  2. http://www.nwlab.net/tutorials/wireshark/
  3. http://gaia.cs.umass.edu/wireshark-labs/TCP-wireshark-file1.html
  4. TCP Trace Graph
  5. Iperf3

Letzte Änderung: 13. November 2025 10:54