Tupel für TCP Socket Adressierung
Quell-IP, Ziel-IP, Quell-Port, Ziel-Port
Tupel für UDP Socket Adressierung
Ziel-IP, Ziel-Port
Name für Datenpaket auf Transport-Ebene
Segment
Eigenschaften von TCP
Verbindungsorientiert
Zuverlässig
Reihenfolgeerhaltend
Flusskontrolle
Staukontrolle
Eigenschaften von UDP
Verbindungslos
Minimale Schicht über IP
Anwendungen, die UDP nutzen
Media Streaming, insbesondere Live
DNS
SNMP
RDT
Reliable Data Transfer
Fehlerbild RDT 1.0
Fehlerfreie Netzwerkschicht unter der Transportschicht
Fehlerbild RDT 2.x
Einführung von Bitfehlern, kein Paket geht verloren
Fehlerbild RDT 3.0
Zu Bitfehlern kommen Paketverluste hinzu
Fehlerbild RDT 4711
Nur Paketverluste
Lösungsansatz RDT 2.x
Bestätigungen (ACKs, bis 2.1 auch NAKs, dann ACKs mit #)
Prüfsumme in Paketen (Datenpakete wie ACK-Pakete)
Wiederholtes Senden von Paketen
Sequenznummern, um Dubletten von neuen Daten unterscheiden zu können
Lösungsansatz RDT 3.x
Wie RDT 2.2, plus
Timer auf Senderseite
Handling
Bei Paketversand Timer stellen
Nach Timeout Wiederholung des Paketes, dann Timer neu stellen
Bei Empfang des richtigen ACK Timer stoppen
Strategie "Go-Back-N"
N Pakete gleichzeitig in Übertragung
Empfänger erwartet Pakete in korrekter Reihenfolge, kumulatives ACK
Bei Timeout Wiederholung des ältesten unbestätigten Paketes sowie aller folgenden Pakete
Minimiert Speicherbedarf beim Empfänger
Strategie "Selective Repeat"
Empfänger puffert Pakete, die außerhalb der Reihenfolge kommen
Für jedes Paket ein einzelnes ACK
Pro Paket ein Timer auf Senderseite
Bei Timeout Wiederholung nur des einen Paketes
Minimiert Netzwerklast vom Sender zum Empfänger
TCP Header
2 Byte Größe
Quellport
Zielport
Receiver Window
Checksum
Urgent Data Pointer
4 Byte Größe
Sequence number
Acknowledgement number
Sonstiges
Header Length
Flags UAPRSF
Options
TCP Charakteristika
Punkt-zu-Punkt
Übertragung zuverlässigen Bytestroms
Voll-Duplex
pipelined
Flußkontrolle
Berechnung TCP Timeout
EstimatedRTT + 4*DevRTT
Glättung EstimatedRTT
(1-a)*EstimatedRTT + a*SampleRTT
für beispielsweise a = 1/8
Glättung DevRTT
(1-b)*DevRTT + b*|SampleRTT-EstimatedRTT|
für beispielsweise b = 1/4
TCP RDT
Einen Timer für das älteste unbestätigte Paket
Kumulative ACKs
Bei Timeout senden nur des ältesten unbestätigten Paketes
Neuversand bei Timeout oder bei 3 Dubletten in den ACKs
Puffer bei Empfänger für Pakete ausserhalb der Reihenfolge kann, muss aber nicht implementiert werden ("not specified")
TCP Congestion Control
Duplikate in den ACKs --> Halbierung der letzten Datenrate, dann lineares Wachstum
Timeout --> Reduktion der Datenrate auf 1 unbestätigtes Paket, dann TCP Slow Start bis 1/2 mal letztes Maximum, dann linear weiter
ATM ABR Congestion Control
RM-Zellen
NI-Bit --> No Increase
CI-Bit --> Congestion Indication
TCP congestion Control AIMD
AIMD = Additive Increase - Multiplicative Decrease
TCP Slow Start
Exponentielles Wachstum bis entweder Paketverlust oder Schwellwert (1/2 * letztes Maximum)
TCP CUBIC
Nach Halbierung der Datenrate, zu Beginn schnellere Annäherung an altes Maximum, dann vorsichtigere Annäherung durch kubische Kurve
Delay-based TCP congestion control
Basis: Minimal beobachtete RTT
RTT nahe RTT-min: cwnd linear erhöhen
RTT viel höher: cwnd linear verringern
QUIC
HTTP/2 using UDP
Schnellerer Verbindungsaufbau, da kein separater TLS Handshake nötig
Bei Paketverlust
Kein HOL-Blocking
Keine Halbierung cwnd
Last changed2 years ago