This commit is contained in:
David Schirrmeister 2025-06-11 12:52:54 +02:00
parent 404da27a5b
commit 813f7d63b0
8 changed files with 82 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -10,7 +10,8 @@
- maximale Größe eines TCP-Segments (NUR Daten, ohne Header)
- wird bei Verbindungsaufbau ausgehandelt
- abhängig von der MTU (Maximum Transmission Unit) des darunterliegenden Netzwerks
- Retransmission Timer (Timeout = RTO)
- Nach Ablauf des Timers werden unbestätigte Datenpakete erneut gesendet
## TCP Sequenznummern
- Sequenznummer eines TCP-Segments
- Bytestromnummer des ersten Bytes im Segment
@ -102,7 +103,7 @@
### TCP Server Lifecycle
![image_877.png](image_877.png)
## TCP Zuverlässigkeit sicherstellen (Flusskontrolle)
## TCP Zuverlässigkeit sicherstellen
- Quittungen
- positive ACKs
- kumulative Summenquittungen
@ -111,3 +112,82 @@
- Timeout (RTO)
- Sequenznummern
## TCP Flusskontrolle
### Senden
- TCP-Sender sendet Daten, solange der Sendepuffer nicht voll ist
- enthält die gesendeten, aber noch nicht bestätigten Daten
- ![image_878.png](image_878.png)
- Sendefenster wird dazu benutzt, um die Anzahl von Bytes anzugeben, die der Empfänger bereit ist anzunehmen
- bildet absolute obere Grenze, die vom Sender nicht überschritten werden darf
### Empfangen
- TCP-Empfänger sendet ACKs, solange der Empfangspuffer nicht voll ist
- ![image_879.png](image_879.png)
- Empfangsfenster ist dynamisch
- wird vom Empfänger in jedem ACK aktualisiert
- gibt an, wie viele Bytes der Empfänger noch aufnehmen kann
### Flusskontrolle Beispiel
![image_880.png](image_880.png)
### Datenfluss: Fehlerfreie Übertragung
![image_883.png](image_883.png)
### Datenfluss: Fehlerhafte Übertragung
![image_884.png](image_884.png)
## TCP Pipelining, Sliding Window
### Pipelining
- TCP-Sender kann mehrere Segmente senden, ohne auf die Bestätigung des Empfängers zu warten
- Erlaubt eine höhere Auslastung der Verbindung
- Sender sendet mehrere Segmente in einem Rutsch
- z.B. 3 Segmente mit jeweils 1000 Bytes
- **Konsequenzen**:
- Sender und Empfänger benötigen einen Puffer für mehrere Segmente
- Minimum: Sender muss alle gesendeten, aber noch nicht bestätigten Segmente puffern
- Bereich der Sequenz- und Bestätigungsnummern wird größer
### Sliding Window
![image_881.png](image_881.png)
- Sliding Window ist eine Erweiterung des Pipelining
- Gewährleistet:
- Zuverlässige Übertragung in einem Bytestrom
- Übertragung der Daten in richtiger Reihenfolge
- Flusskontrolle zwischen Sender und Empfänger
- Integrierte Flusskontrolle
- keine feste Sliding Window Größe
- wird Sender vom Empfänger mitgeteilt ("Advertised Window")
- auf Grundlage des Speicherplatzes, der der Verbindung zugewiesen ist
#### Sliding Window Beispiel
![image_882.png](image_882.png)
- **Senderseite** (a)
- LastByteAcked ≤ LastByteSent
- LastByteSent ≤ LastByteWritten
- Bytes zwischen LastByteAcked und LastByteSent puffern
- **Empfängerseite** (b)
- LastByteRead ≤ LastByteExpected
- LastByteExpected ≤ LastByteReceived + 1
- Bytes zwischen LastByteRead und LastByteReceived puffern
## TCP Fehlerbehandlung
- Erfolgt durch Go-Back-N
- Sender sendet Datenpakete, bis er eine Bestätigung erhält
- Bei Verlust eines Pakets wird es erneut gesendet
- Arbeitet mit positiven ACKs
- Empfänger sendet ACKs für empfangene Pakete (ggf. kumulative ACKs)
- Ab dem ersten, nicht quittierten Paket, werden alle folgenden Pakete erneut gesendet
## TCP Überlastungskontrolle
- Funktion der Netzwerkschicht zur Regelung des Datenflusses
- Begrenzung der Übertragungsrate
- Lösungsansatz:
- **TCP-Slow-Start**
- Startet mit einer niedrigen Übertragungsrate
- Erhöht die Rate exponentiell, bis ein Paket verloren geht
- **TCP-Kongestionskontrolle**
- Reduziert die Übertragungsrate, wenn Pakete verloren gehen