Chapter 11 – TCP CCNA 1 version 3.0 Wolfgang Riggert, FH Flensburg auf der Grundlage von Rick Graziani Cabrillo College Vorbemerkung Die englische Originalversion finden Sie unter : http://www.cabrillo.cc.ca.us/~rgraziani/ Der username ist cisco und das Password perlman • • • Viele der Informationen ergänzen das Online-Curriculum Die Zusatzinformation ist zur Verdeutlichung und weiteren Erklärung der Themen eingefügt. Die Originalversion ist um viele eigene Folien erweitert, um das Verständnis zu fördern Gliederung • • TCP/IP Transportschicht TCP/IP Anwendungsschicht Transport Layer : Dienste – Segmentierung der Daten der höheren Schichten – Aufbau und Verwaltung einer Ende-zu-Ende Übertragung – Übertragung der Segmente zwischen Quell- und Zielstation – Sicherung der Datenzuverlässigkeit – Datenflusskontrolle Zuverlässigkeit • Der Erhalt der Segmente wird durch den Empfänger bestätigt • Erneute Übertragung, wenn ein Segment innerhalb einer Zeitschranke nicht bestätigt wird • Der Empfänger ordnet die Segmente in der korrekten Reihenfolge • Überlastung der Verbindung wird signalisiert Datenflusskontrolle • • Mechanismus, der eine Überschwemmung des Puffers einer Station vermeidet Dadurch wird die Datenintegrität gesichert Aufbau einer TCPVerbindung • Zum Aufbau einer Verbindung müssen mehrere Nachrichten ausgetauscht werden, die sich durch gesetzte Flags in ihrer Bedeutung unterscheiden. TCP-Übertragung und Abbau • • Überlastung kann während der Datenübertragung auftreten Zum Verbindungsabbau überträgt der Sender eine Nachricht, die das Ende der Verbindung anzeigt. Diese Nachricht bedarf der Bestätigung. Three-Way Handshake Der dreistufige Verbindungsaufbau nutzt die Flags ACK und SYN, um eine Synchronisation der Segment-Nr und eine Bestätigung der Gegenstelle zu erreichen. Windowing • • • • • Ein Verfahren zur Kontrolle der Größe der übertragenen Informationen. Die Information kann in Anzahl der Pakete oder Bytes gemessen werden Nach einer bestimmten Informationgröße (festgelegt durch die Windowgröße) muss der Erhalt bestätigt werden Die Windowgröße kann während der Übertragung variieren Größere Windows erhöhen die Kommunikationseffizienz Sliding-Window - Prinzip • • Das Sliding Window-(Schiebefenster) Verfahren ist eine Kombination aus Flusskontrolle und Bestätigung, wobei es möglich ist, mit einem Paket mehrere empfangene zu bestätigen, indem die höchste Nummer aller zu bestätigenden Pakete übertragen wird (Pakete mit niedrigerer Nummer sind damit mitbestätigt). Ein Fenster ist ein Bereich von aufsteigenden Paketnummern, die ohne Bestätigung vom Sender für weitere Pakete benutzt werden können. Die Fenstergröße (Window size) ist damit der maximale Vorlauf, den der Sender gegenüber dem Empfänger haben darf Sliding-Window: Beispiel Angebotenes Window (advertised by receiver) Nutzbares Window 1 2 3 gesendet und bestätigt 4 5 6 gesendet, nicht bestätigt 7 8 9 können gesendet werden 10 11 12 können nicht gesendet werden bis Window vorrückt Sliding Window-Ablauf 1 Sliding-Window-Ablauf 2 Acknowledgment = Bestätigung • • Positive Acknowledgments verlangen vom Empfänger dem Sender den Erhalt der Nachricht zu bestätigen. Der Sender verwaltet eine Liste aller gesendeten Pakete, für die er eine Bestätigung erwartet. Acknowledgement und Retransmission • • • • Ein Timer ist mit jedem Segment verbunden Bei Ablauf des Timers erfolgt automatisch eine Retransmission Der Timer basiert auf der RTT (Round Trip Time) Ein Segment wird solange beim Sender gespeichert, bis er ein Acknowledgement erhalten hat TCP Segmente und Acknowledgment Sequenznummern und Wertebereich • • • Die Sequenznummer dient zur Rekonstruktion der Segmentreihenfolge. Der Startwert beginnt nicht mit 1, denn wenn eine Verbindung unterbrochen und neu aufgebaut (wiederum Start bei 1) wird, während von der alten Verbindung noch Pakete unterwegs sind, kann der Empfänger diese nicht mehr auseinander halten. In der Praxis wird mit Modulo-Werten gearbeitet: – Die Bitbreite für die Nummer sei G – Dann ist die Paketnummer: Nummer mod 2**G – Das bedeutet, dass sich alle 2**G Pakete die Nummern wiederholen. Daher müssen alle Operationen, z. B. Bestätigungen und Wiederholungen, spätestens nach dem Senden von 2**G-1 Pakete abgeschlossen sein. – G ist in der Praxis 4, 8 oder 16 bit. Sequenznummer Beispiel TCP-Nutzung Mehrere Protokolle nutzen TCP als Transportmechanismus: – FTP (File Transfer Protocol) – HTTP (Hypertext Transfer Protocol) – SMTP (Simple Mail Transfer Protocol) – Telnet TCP Header 0 4 8 16 Source TCP Port Nummer 31 Destination TCP Port Nummer Sequenz Nummer Acknowledgement Nummer Offset Flags Reserviert Window Größe TCP Prüfsumme Urgent Pointer Optionen Padding Daten User Datagram Protocol (UDP) - Nutzung • Mehrere Protokolle nutzen UDP zum Datentransport: – TFTP (Trivial File Transfer Protocol) – SNMP (Simple Network Management Protocol) – DHCP (Dynamic Host Control Protocol) – DNS (Domain Name System) UDP Header 0 16 31 Quell -UDP Port Ziel-UDP Port Länge Prüfsumme Daten................ UDP-Merkmale ] ] Unzuverlässiger Datentransport zwischen Sender und Empfänger Liefert keinen Verbindungsaufbau, Flusskontrolle, Überlastmanagement oder Bandbreitengarantie Warum wird UDP benutzt ? ] Weniger Overhead als TCP ] Für Programme geeignet, die einen gewissen Paketverlust tolerieren (Video) TCP versus UDP TCP und UDP Port Nummern • TCP und UDP verwenden Port (socket) Nummern, um Informationen an die höheren Schichten weiterzuleiten – Nummern kleiner als 1024 werden als well-known Portnummern bezeichnet. – Nummern größer als 1024 werden dynamisch zugewiesen – Registered Portnummern sind für herstellerspezifische Anwendungen vorgesehen. Sie liegen üblicherweise oberhalb von 1024, z.B. SAP 300x. TCP und UDP Port Nummern Application Layer: Funktionen • • • Synchronisiert kooperative Anwendungen Kontrolliert die Datenintegrität Identifiziert Kommunikationspartner und prüftderen Verfügbarkeit Application Layer: Beispiele DNS • • Das Domain Name System (DNS) ist ein Protokoll zur Übersetzung von Domänennamen im IP-Adressen Es gibt mehr als 200 top-level Domänen im Internet, die sich aus dem Suffix einer URL herleiten: .us – United States .uk – United Kingdom .edu – educational sites .com – commercial sites .gov – government sites .org – non-profit sites .net – network service FTP und TFTP • • FTP ist ein zuverlässiges, verbindungsorientiertes Protokoll zur Übertragung von Dateien auf der Basis von TCP. TFTP ist ein verbindungsloses Protokoll mit dem gleichen Zweck auf der Grundlage von UDP – TFTP wird von Routern genutzt, um Konfigurationsdateien und IOS Images zu übertragen – TFTP ist einfach zu implementieren und leicht zu nutzen URL-Aufbau http:// www. cisco.com /univerd/ Identifiziert das Protokoll Identifiziert das Hauptverzeichnis des Web-Servers Stellt die Domäne der Web-Site dar Gibt ein Verzeichnis auf dem webServer an SMTP • E-mail Server kommunizieren untereinander mit dem Simple Mail Transport Protocol (SMTP), um Mails zu zustellen und zu empfangen SNMP • Das Simple Network Management Protocol (SNMP) ist ein Protokoll zum Austausch von Managementdaten zwischen Managed Devices und einer Managementstation Telnet • Telnet client software ermöglicht einen Remote-Login in einen Rechner, der als Telnetserver agiert. Dadurch kann der Client Befehle von der Kommandozeile aus ausführen.