Modul 5: TCP-Flusskontrolle

Ähnliche Dokumente
Grundlagen der Rechnernetze. Transportschicht

Internet Networking TCP Congestion Avoidance and Control

Vorab: Überblick TCP. Grundeigenschaften Punkt-zu-Punkt-Verbindung Streaming-Schnittstelle

TCP flow control, congestion avoidance

TCP Überlastkontrolle. SS 2014 Grundlagen der Rechnernetze Transportschicht 31

Peer-to-Peer- Netzwerke

Übung 9. Tutorübung zu Grundlagen: Rechnernetze und Verteilte Systeme (Gruppen Mo-T1 / Di-T11 SS 2016) Dennis Fischer

TCP-Verbindungen und Datenfluss

TCP Sliding Window Protokoll

Ermitteln der RTT. Ein Sample RTT(i) bei gegebener Segment Sendezeit s und Acknowledgement Zeit a für das ite versendete Segment:

TCP Teil 2. TCP Teil 2: Tilmann Kuhn Betreuer: Dr. Thomas Fuhrmann 1/18

Lehrveranstaltung Rechnernetze Einschub für das Labor

TCP. Transmission Control Protocol

Kommunikationsnetze Prof. Dr. rer. nat. habil. Seitz. Sara Schaarschmidt Eric Hänsel

Vorab: Überblick TCP. Grundeigenschaften Punkt-zu-Punkt-Verbindung Streaming-Schnittstelle

Mobilkommunikationsnetze. - Transportschicht -

Modul 8: UDP, TCP, SCTP und HTTP

Stauvermeidung in TCP Tahoe

Flusskontrolle. Grundlagen der Rechnernetze Übertragungssicherung 68

Kommunikationsnetze 1. TCP/IP-Netze 1.2 TCP. University of Applied Sciences. Kommunikationsnetze. 1. TCP/IP-Netze 1.

Dienste der Transportschicht

Vorlesung: Netzwerke (TK) WS 2011/12 Kapitel 5 Ende-zu-Ende-Protokolle Session 17

Grundkurs Routing im Internet mit Übungen

Transportprotokolle im TCP/IP- Referenzmodell

TCP/UDP PROF. DR. M. FÖLLER NORD INSTITUT EMBEDDED AND MOBILE COMPUTING

Übung 5: Transport. Rechnernetze. Wintersemester 2014/ Allgemeine TCP Verständnisfragen

Klausur Rechnernetze für Studierende des Studiengangs Scientific Programming und Auszubildende zum Beruf des Math.-Tech. Software-Entwicklers

Chapter 11 TCP. CCNA 1 version 3.0 Wolfgang Riggert,, FH Flensburg auf der Grundlage von

Transportschicht (Schicht 4) des Internet

Merkzettel für die Klausur

Transportschicht. Einleitung Transmission Control Protocol, RFC793. Transportschicht

Transportschicht. Transmission Control Protocol (TCP) Zuverlässiger Bytestrom. 9. Kapitel Fragen des Protokolls: Ausgewählte Netzwerkprotokolle

Themen. Flußkontrolle. Stefan Szalowski Rechnernetze Sicherungsschicht

Transportprotokolle im TCP/IP- Referenzmodell

Themen. Dienste der Transportschicht. 3-Wege-Handshake. TCP-Protokoll-Header. Real-Time-Protocol

Einfluss der Window Scale Option auf die Fairness in TCP/IP-Netzen

Vorlesung: Netzwerke (TK) WS 2011/12 Kapitel 1 Vorbereitung für Praktikum Session 03

Lösungsvorschlag zur 12. Übung

Version: Das Versionsfeld gibt an ob es sich um IPv4 oder um IPv6 handelt.

Beispiel TCP-/IP-Datenübertragung

Netzwerktechnologien 3 VO

Übung 10. Tutorübung zu Grundlagen: Rechnernetze und Verteilte Systeme (Gruppen Mo-T1 / Di-T11 SS 2016) Dennis Fischer

Grundlagen Rechnernetze und Verteilte Systeme (GRNVS)

11. Foliensatz Betriebssysteme und Rechnernetze

TCP - Kollisionsvermeidung und verwandtes

Tutorübung zur Vorlesung Grundlagen Rechnernetze und Verteilte Systeme Übungsblatt 8 (10. Juni 17. Juni 2013)

Vorlesung SS 2001: Sicherheit in offenen Netzen

Device Management Schnittstellen. Referat von Peter Voser Embedded Development GmbH

Vorlesung: Netzwerke (TK) WS 2009/10 Kapitel 5 Ende-zu-Ende-Protokolle Session 15

Multiuser Client/Server Systeme

Rheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik IV Prof. Dr. rer. nat. Otto Spaniol TCP / UDP.

11. Foliensatz Betriebssysteme und Rechnernetze

Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2017

Transportschicht. Transmission Control Protocol, RFC793. (Fortsetzung TCP)

6. Die Transportschicht

Modul 4: IPsec Teil 1

IPv4 - Internetwork Protocol

IPv4- und IPv6 Header Analyse und Vergleich

Grundlegende Steuer- und Verwaltungsfunktionen (ICMP)

Rechnernetze und Internettechnologien

Transkript:

Modul 5: TCP-Flusskontrolle M. Leischner Internetkommunikation Folie 1

Prinzip des Sliding-Window: Zuverlässigkeit + Effizienz A B A B A B A B unbestätigtes Senden Stop-and-Wait Sliding-Window Sliding Window (Piggybacking) (bei TCP) unzuverlässig effizient zuverlässig ineffizient zuverlässig effizient zuverlässig effizient M. Leischner Netze, BCS, 2. Semester Folie 2

Sliding-Window - detaillierter Anwendung produziert 2 Segmente Diese Segmente liegen im und im Was ist der Unterschied zwischen und Was ist die Aufgabe von und Größe des s: 5 Größe des s: 3 Zeit M. Leischner Netze, BCS, 2. Semester Folie 3

Sliding-Window - detaillierter ACK 1 ACK 2 Was passiert jetzt Beide Segmente können gesendet werden Auswirkungen auf den und das Zeit M. Leischner Netze, BCS, 2. Semester Folie 4

Sliding-Window - detaillierter ACK 1 ACK 2 ACK 3 Anwendung produziert zwei weitere Segmente Was macht der Zeit M. Leischner Netze, BCS, 2. Semester Folie 5

Sliding-Window - detaillierter ACK 1 ACK 2 ACK 3 Anwendung produziert ein weiteres Segment Was passiert Was wäre, wenn sie zwei weitere Segmente produziert Seg 5 Zeit M. Leischner Netze, BCS, 2. Semester Folie 6

Sliding-Window - detaillierter ACK 1 ACK 2 ACK 3 ACK 1 kommt nun beim an Was passiert Seg 5 Zeit M. Leischner Netze, BCS, 2. Semester Folie 7

Sliding-Window - detaillierter Schieben des Fensters Versenden von Segment 4 Seg 5 ACK 1 ACK 2 ACK 3 ACK 4 Zeit M. Leischner Netze, BCS, 2. Semester Folie 8

Sliding-Window - detaillierter ACK 1 ACK 2 ACK 3 Nun kommt ACK 2 Was passiert Seg 5 ACK 4 Zeit M. Leischner Netze, BCS, 2. Semester Folie 9

Sliding-Window - detaillierter Schieben des Fensters Versenden von Seg 5 ACK 1 ACK 2 Für Fortgeschrittene: ACK 3 Was passiert, wenn ACK 4 und ACK 5 vor ACK 3 kommen Seg 5 ACK 4 Seg 5 ACK 5 Frage an alle: Wie groß soll das sein Wer legt das fest Zeit M. Leischner Netze, BCS, 2. Semester Folie 10

TCP-Sliding-Window Sende- und Empfangspuffer Spezielle Variante des Sliding-Window-Grundalgorithmus dynamische Fluss-Steuerung mittels "Advertised Window" Einbeziehung der verarbeitenden Anwendungen LastByteAcked+1 NextByteToBeSent LastByteSendable LastByteRead NextByteExpected Jetzt alles auf Byte-Niveau! LastByteReceived LastByteAcceptable Vergangenheit gesendet, aber noch nicht bestätigt kann gesendet werden im produzierende Anwendung freier nicht verwendbar abgearbeitet (gesendet und bestätigt) Vergangenheit verbrauchende Anwendung im Empfangspuffer und bereits bestätigt M. Leischner Internetkommunikation Folie 11 Empfangsfenster Empfangspuffer abgearbeitet (empfangen und weitergeleitet), ist wieder frei wird verworfen noch ausstehendes Byte außer der Reihe empfangen akzeptierbar (freies Empfangsfenster)

TCP-Flusskontrolle Segmente auf seite zu sendendes Segment Source Port Destination Port Sequence Number Acknowledgement Number Offset Reserved U A P R R CK SH ST G S YN F IN Advertised Window Size Checksum Urgent Pointer Options (variable Länge) Padding Source Port Destination Port Sequence Number Acknowledgement Number Offset Reserved U R G A CK P SH R ST S YN F IN empfangenes Segment Advertised Window Size Checksum Urgent Pointer Options (variable Länge) Padding LastByteAcked+1 Vergangenheit NextByteToBeSent "LastByteSendable" nicht verwendbar Advertised Window Size: Anzahl der Bytes, die der bereit ist, zu empfangen Formel: AdvertisedWinSize <= EmpfPuffer - (LastByteReceived- LastByteRead) produzierende Anwendung M. Leischner Internetkommunikation Folie 12

TCP-Flusskontrolle "Zero advertised window size" deadlock AdWin=0 AdWin=4096 dieses Segment geht verloren! Dargestelltes Problem: Wie kommt es zum Deadlock Lösung des Problems: benutzt einen persistenten Timer, um periodisch ein Zero-Window-Probe- Segment zu senden, sobald das fenster geschlossen ist. (Algorithmus: Exponentieller Back-Off-Algorithmus: Startwert 1.5 Sek., Verdopplung nach jedem Ack bis Limit, z.b. 60 s, erreicht. 1,5 3 6 12 24 48 60 60 60 60 60..) Probe-Segment enthält keine Nutzdaten. Spezifikation erlaubt explizit das Senden von Probe Segmenten auch nach geschlossenem fenster. (Beachte: solange das Probe-Segment nicht verarbeiten kann, enthält das ACK die Sequenz-Nummer des letzten angenommen Bytes) M. Leischner Internetkommunikation Folie 13

TCP-Flusskontrolle "Small Packet Problem" (Appl.: Telnet) 1 Byte ACK, AdWin=4 ACK, AdWin=5 1 Byte ACK, AdWin=4 ACK, AdWin=5 dargestelltes Problem: Versenden von zwei Byte erzeugt 240 Byte Overhead (2 Datensegmente á 40 Byte, 2 Acknowledgements á 40 Byte, 2 Fensteraktualisierungen á 40 Byte) Lösungen: seitig: delayed Acknowledgement: Verzögerung von Bestätigung und Fensteraktualisierungen um 200 ms (Idee dahinter: Huckepack, Sammeln von ACKs ) seitig: Nagle's Algorithm (RFC 896, 1984): Falls Daten byteweise von Anwendung kommen, sende nur das erste Byte, sammle Bytes auf und sende diese in einem Segment, sobald MSS erreicht oder das erste Byte bestätigt wird. Bei IP über LAN wenig Einfluss, aber bei WAN. Probleme bei interaktiven Anwendungen (Nagle's Algorithmus führt z.b. bei X-Window zu ruckeliger Arbeit). Daher ist Nagle's Alg. über Sockets abschaltbar. M. Leischner Internetkommunikation Folie 14

TCP-Flusskontrolle "Silly Window Syndrome (SWS) RFC 813" ACK, AdWin=0 ACK, AdWin=1 1 Byte ACK, AdWin=0 ACK, AdWin=1 dargestelltes Problem: Byteweise Verarbeitung auf seite: Der wird animiert, kleine Segmente zu senden. Lösungen: seitig: (1) Versenden von kleinen Datenmengen vermeiden. (2) Nagle's Algorithm. seitig: Fensteraktualisierungen nur bei größerem Betrag (z.b. wenn 30% vom Empfangspuffer oder 2 MSS frei) 1 Byte M. Leischner Internetkommunikation Folie 15

Fast Retransmit (Grundprinzip) Seg 5 Seg 6 Retransmit RTO ACK 1 ACK 2 dack 2 dack 2 dack 2 ACK 6 dargestelltes Problem: Grobe Einstellung des RTO führt zu Wartezeiten bei Paketverlust Lösung: Bei dreifachem duplicate ACK Retransmission des fehlenden Pakets ohne auf Ablaufen des Retransmissiontimers zu warten Neues Problem: Verlorenes Paket ist Zeichen für Überlastung des Netzes. Daher nach Fast Retransmit Reaktion auf Netzüberlast notwendig. > Themenstellung Überlastkontrolle Anmerkung: Fast Recovery: Algorithmus, um nach Fast Retransmit Datenfluss zu erhalten SACK (Selective Acknowledgement, RFC2018): Bestätigung der tatsächlich erhaltenen Segemente M. Leischner Internetkommunikation Folie 16

TCP-Acknowledgements (gemäß RFC 1122, 10/89) Ereignis Ankunft eines direkt nachfolgenden Segments, keine Lücke, alle vorhergehenden Segmente sind bereits bestätigt. Ankunft von direkt nachfolgenden Segmenten, keine Lücke Ankunft eines Segments, das ganz oder teilweise eine Lücke füllt (so dass ein Teil des Bytestroms vervollständigt wird). Ankunft eines out-of-order Segments größer als NextByteExpected (es entsteht Lücke). Reaktion TCP- delayed Acknowledgement: Warte bis zu 200 ms, ob neues Segment kommt, wenn bis dahin keines kommt, muss ein ACK gesendet werden. Senden eines kummulativen ACKs: Bestätigen von mehreren Segmenten mit einem Acknowledgement Immediate Acknowledgement: Sofortiges Senden eines ACKs. Senden eines duplicate ACKs: wiederholtes Senden des letzten ACKs (=Beginn der Lücke) M. Leischner Internetkommunikation Folie 17