Informationstechnik für Ingenieure Computernetze und Internet Teil 3: Transportschicht (C) U. Stein Wintersemester 2004/2005 Prof. Dr. Thomas Wieland Übersicht Teil 3 z z z z 3.1 3.2 3.3 3.4 Einführung Struktur von TCP/IP Einfache IP-Protokolle Transmission Control Protocol (TCP) Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 2 3.1 Einführung Entstehungsgeschichte des Internet z z z Mythos: Internet wurde für militärische Zwecke entwickelt Tatsache: Ein Mitarbeiter der ARPA (Advanced Research Projects Agency) ärgerte sich, dass für die Verbindung mit drei Unis drei verschiedene Terminals nötig waren Näheres in "ARPA Kadabra" von K. Hafner und M. Lyon Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 4 Pionierzeit z z 1967: ARPA des DoD vergibt Auftrag “Projektstudie ausfalltolerantes Paketnetz” an SRI (Stanford Research Institute) 1969: Erstes “Internet” aus 4 Knoten: University of California at Los Angeles (UCLA), Stanford Research Institute (SRI), University of California at Santa Barbara (UCSB), University of Utah z Entscheidung für paketvermittelndes Netz nach Store-AndForward-Prinzip z z z z z Paket wird von Vermittlungsstation komplett entgegengenommen Weiterleitung erst nach vollständigem Empfang 1971: Betriebsaufnahme des ARPANet 1972: Erste öffentliche Demonstration 1974: Neue Protokollsuite: TCP/IP Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 5 Verbreitung und Kommerzialisierung z z z z z z 1980: Integration der TCP/IP-Protokolle in UNIX 1986: NSFNet (National Science Foundation) als zweiter Backbone 1988: IP-Verbindung zum Internet aus Deutschland 1991: WWW wird entwickelt 1995: Kommerzielle Provider für Internetzugänge von Privatleuten 1999: Mehr als 200 Mio. Internet-Nutzer weltweit Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 6 3.2 Struktur von TCP/IP Struktur von TCP/IP Application ApplicationLayer Layer • korrekte Zustellung von Paketen • Definition von Paketformaten • Protokoll: IP • Zugang zum physikalischen Übertragungsmedium Host-to-Host Host-to-Host Transport Transport Layer Layer Internet InternetLayer Layer • anwendungsnahe Protokolle, z.B. TELNET, FTP, SMTP, DNS • Ende-zu-EndeVerbindung zwischen Hosts • Protokolle: TCP und UDP Network NetworkAccess Access Layer Layer Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 8 Internet-Architektur z z z Definiert von der Internet Engineering Task Force (IETF) "Doppelkegel"-Design Anwendung vs. Anwendungsprotokoll (FTP, HTTP) FTP HTTP NV TFTP UDP TCP IP NET1 NET2 … Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. NETn 9 Network Access Layer z Definiert, wie zugrunde liegendes Netz zur Übertragung von Daten der höheren Schichten genutzt wird z z z ⇒ Anpassung an das Datenformat des Netzes Abbildung von logischen Adressen auf physikalische Adressen des Netzwerks Umfasst etwa Bitübertragungs- und Sicherungsschicht aus ISO/OSI-Modell Protokolle spezifisch für zugrunde liegende Netzvariante Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 10 Internet Protocol (IP) z Protokoll auf Internet Layer z verantwortlich für Übermittlung von Daten zwischen Stationen z z z Entspricht etwa Vermittlungsschicht bei ISO/OSI Erledigt auch Netzüberwachung z z Fehlerbehandlung erfolgt durch andere Schichten Sorgt für Routing der Pakete z z Identifikation und Weitermeldung nicht erreichbarer Empfangsstationen IP: ungesichertes, verbindungsloses Protokoll z z Stationen sind entweder Hosts (Endstationen) oder Gateways (Transitstationen) Suche geeigneter Übermittlungspfade von Sender zum Empfänger "Best effort": Pakete können u.U. verloren gehen oder verfälscht ankommen Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 11 Dienstmodell bei IP z IP: ungesichertes, verbindungsloses Protokoll z z Dienstmodell "Best effort" z z z z z Fehlerbehandlung erfolgt durch andere Schichten Pakete können verloren gehen Pakete können in anderer Reihenfolge eintreffen als gesendet Duplikate von Paketen können eintreffen Pakete können lange verzögert werden D.h.: Übertragung nicht garantiert, Zeit bis zu Auslieferung nicht garantiert z Ungeeignet für Echtzeitanforderungen! Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 12 User Datagram Protocol (UDP) z Unzuverlässiges verbindungsloses Protokoll z z z ungesichert hinsichtlich Paketverlust broadcast- und multicastfähig Arbeitet im Host-to-Host Transport Layer z z Zuständig für Ende-zu-EndeÜbertragung Entspricht der Transportschicht Merkmale: z z z z Vermeidung von Overhead zugunsten möglichst schneller Übermittlung, vor allem für kleine Datenmengen geeignet Flusskontrolle, Fehlererkennung und -behandlung muss anderweitig gewährleistet werden Im Wesentlichen Hinzufügen von Port-Nummern (“Transportadressen”) zu IP Ports können von (den Prozessen) einer Anwendung benutzt werden Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 13 Transmission Control Protocol (TCP) z z z Alternatives Protokoll im Hostto-Host Transport Layer Aufwändiger als UDP zuverlässiges verbindungsorientiertes Protokoll z Segmentierung des eingehenden bzw. Erzeugung des ausgehenden Bytestroms Merkmale: z z Stellt Aspekte der Flusssteuerung bereit Verwendet Sendewiederholung und positiver Bestätigung z z z z Sequenznummern und acknowledge / retransmit Timeouts und Fenstergrössen werden dynamisch angepasst Ebenfalls Ports (16-Bit-Nummern) als Kommunikationsendpunkte Verbindung besteht aus Sendeportnummer, Sende-IPNummer, Empfangsportnummer, Empfangs-IPNummer Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 14 Datenstrukturen in TCP/IP Application Layer Transport Layer Bytestrom Nachricht Segment Paket Datagramm Datagramm Rahmen Rahmen TCP UDP Internet Layer Network Access Layer Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 15 3.3 Einfache IPProtokolle Internet Control Message Protocol (ICMP) z Hilfsprotokoll auf IP-Ebene z z z z ICMP nutzt IP als Transportdienst z z "Partnerprotokoll" Wird bei Fehlern an Quell-Host zurückgeschickt Unterstützt Statusanfragen zur Kontrolle und Fehlersuche Meldet aber keine Fehler über ICMP-Pakete Verschiedene Meldungen definiert, z.B. z z z z Destination unreachable Time exceeded Source quench (Transitstation überlastet, fordert Absender zur Absenkung der Datenrate auf) Redirect (Router informiert Station über bessere Route) Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 17 Statusanfragen mit ICMP z Echo und Echoantwort (echo request and echo reply) z z Zur Überprüfung der Aktivität von Kommunikationssystemen Empfänger einer Anfrage sendet in Antwort die erhaltenen Daten zurück z Zeitstempel und Zeitstempelantwort (timestamp request and timestamp reply) z z z Zur Bestimmung von Paketumlaufzeiten Meldungen umfassen mehrere Felder zur Aufnahme von Zeitstempeln, Damit können Paketbearbeitungszeiten beim Empfänger und die Verzögerung im Netz bestimmt werden Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 18 Beispiel ping z Hilfsprogramm zur Bestimmung von RTTs und Paketverlusten z z Verwendet ICMP-Echo Erster Test beim Aufbau von Netzverbindungen! E:\>ping anna.fh-coburg.de Ping anna.fh-coburg.de [192.129.26.52] mit 32 Bytes Daten: Antwort Antwort Antwort Antwort von von von von 192.129.26.52: 192.129.26.52: 192.129.26.52: 192.129.26.52: Bytes=32 Bytes=32 Bytes=32 Bytes=32 Zeit=76ms Zeit=76ms Zeit=75ms Zeit=75ms TTL=118 TTL=118 TTL=118 TTL=118 Ping-Statistik für 192.129.26.52: Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust), Ca. Zeitangaben in Millisek.: Minimum = 75ms, Maximum = 76ms, Mittelwert = 75ms Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 19 Beispiel traceroute z z Bestimmt die Route eines IP-Pakets Verfahren: z z z z z Absenden von UDP Testpaketen mit kleiner Lebensdauer (time to live, TTL) Warten auf eine ICMP-Nachricht "Time exceeded" von einem Router Beginnt mit einer TTL von 1 und erhöht dann immer um 1 Drei Testpakete werden mit jeder TTL gesendet Ausgabe: TTL, Adresse des Routers, RTT Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 20 Der schnellste Weg zu Yahoo! e:\fh>tracert www.yahoo.de Routenverfolgung zu www2.vip.lng.yahoo.com [217.12.3.11] 1 2 3 4 5 6 7 8 9 10 11 2 ms 3 ms 10 ms 6 ms 15 ms 8 ms 7 ms 6 ms 12 ms 11 ms 15 ms 15 ms 15 ms 16 ms 16 ms 16 ms 33 ms 32 ms 36 ms 31 ms 31 ms 33 ms [208.51.239.162] 12 32 ms 33 ms 13 31 ms 34 ms 14 33 ms 32 ms .167] 15 32 ms 32 ms 16 32 ms 32 ms 2 4 14 7 10 14 14 15 31 32 31 über maximal 30 Abschnitte: ms ms ms ms ms ms ms ms ms ms ms back26.fh-coburg.de [192.129.26.1] Wingate.fh-coburg.de [192.129.26.231] ar-ilmenau2.g-win.dfn.de [188.1.35.197] ar-ilmenau1-ge4-0.g-win.dfn.de [188.1.69.129] cr-leipzig1-po5-1.g-win.dfn.de [188.1.70.45] cr-frankfurt1-po10-0.g-win.dfn.de [188.1.18.189] so-6-0-0.ar2.FRA2.gblx.net [208.48.23.141] pos5-0-2488M.cr2.FRA2.gblx.net [62.16.32.77] pos0-0-2488M.cr1.LON3.gblx.net [67.17.64.34] so6-0-0-2488M.ar2.LON3.gblx.net [64.212.107.146] Level-3public-peering.ge-5-0-0.ar2.LON3.gblx.net 32 ms 37 ms 37 ms ae0-16.mp2.London1.Level3.net [212.187.131.146] so-3-0-0.mp1.London2.Level3.net [212.187.128.46] gige11-0.ipcolo1.London2.Level3.net [212.187.129 32 ms 32 ms unknown.Level3.net [212.113.10.210] www2.vip.lng.yahoo.com [217.12.3.11] Ablaufverfolgung beendet. Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 21 3.4 Transmission Control Protocol (TCP) Ende-zu-Ende-Protokolle z Das Netz arbeitet nur "best effort" z z z z z Verlust von Nachrichten Umordnung von Nachrichten Verdopplung von Nachrichten Begrenzung der Nachrichtengröße Verzögerung von Nachrichten z Ende-zu-Ende-Dienste: z z z z z z Garantieren die Nachrichtenauslieferung Liefern Nachrichten in der gesendeten Reihenfolge aus Liefern genau ein Exemplar jeder Nachricht Unterstützen beliebig lange Nachrichten Erlauben dem Empfänger, auf den Nachrichtenfluss einzuwirken Unterstützen mehrere Anwendungsprozesse auf jeder Station Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 23 Transmission Control Protocol (TCP) z z Protokoll des Transport Layer Aufgaben z z z z z z z z verbindungsorientierte zuverlässige Übermittlung eines Bytestroms Aufbau logischer Ende-zu-Ende-Verbindung zwischen Quell- und Zielhost Zerlegung bzw. Wiederzusammensetzen eines Bytestroms in/aus IP-Paketen positive Bestätigungen mit Neuübertragung Flusssteuerung: Sender soll Empfänger nicht überfordern Überlaufkontrolle: Sender soll Netz nicht überfordern Multiplexen von Übertragungen innerhalb einer Verbindung bei Vollduplexbetrieb ursprüngliche Definition von TCP im RFC 793 z z Klarstellungen und Fehlerkorrekturen im RFC 1122 Erweiterungen in RFCs 1323, 2018 und 2581 Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 24 TCP Overview Anwendungsprozess Anwendungsprozess Schreibe Bytes … … Lies Bytes TCP TCP Empfangspuffer Sendepuffer Segment Segment … Segment Übertrage Segmente Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 25 Sockets und Ports z Sockets als sender- und empfängerseitige Kommunikationsendpunkte z Socket kann mehrere (ungerichtete) Verbindungen gleichzeitig bedienen z z z Socketadresse ergibt sich aus IP-Adresse des Hosts und Portnummer Ports als Dienstzugriffspunkte z standardisierte Belegung von Portnummern für Standarddienste, z.B. z z Kennung einer Verbindung durch Paar beteiligter Sockets Port 21 für FTP, 23 für TELNET, 80 für HTTP ... Segmente als zwischen Sender und Empfänger ausgetauschte Dateneinheiten z z ggf. unterwegs Zerlegung von Segmenten durch Router in kleinere Fragmente maximale Länge von IP-Paketen definiert Obergrenze für Segmentlänge Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 26 Verbindungsaufbau auf TCPEbene z Dreiweg-Handshake Host 1 Host 2 SYN(x) SYN(y), ACK(x+1) Angestoßen durch CONNECT ACK(y+1), Daten • • • SYN : Anfrage Verbindungsaufbau SYN + ACK : Annahme Verbindung plus Synchronisation über Folgenummern x, y ... Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 27 Verbindungsabbau auf TCPEbene z symmetrischer Abbau z jede Richtung der Verbindung wird separat beendet z z nach Abbau der einen Richtung können in der anderen weiterhin Daten übertragen werden erst nach Abbau beider Verbindungsrichtungen wird Verbindung insgesamt gelöst Host 1 Host 2 FIN(x) ACK(x+1) Angestoßen durch CLOSE FIN(y) ACK(y+1) Angestoßen durch CLOSE • FIN : (gerichteter) Verbindungsabbau Informationstechnik für Ingenieure - Computernetze, Wintersemester 28 • ACK2004/2005 : Bestätigung Verbindungsabbau © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. • plus Synchronisation über Folgenummern x, y ... TCP-Zustände eines Client Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 29 TCP-Zustände eines Servers Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 30 Segmentheader 32 bit Quellport Zielport Folgenummer Bestätigungsnummer ≈Länge ≈ reserviert Flags Fenstergröße Urgent-Zeiger Prüfsumme Optionen (beliebig viele 32 Bit-Worte) ≈ ≈ Daten (optional) z Quellport / Zielport z Endpunkte der Verbindung z z zusammen mit IP-Adressen von Sender und Empfänger (aus IP-Header) Identifikation der Sockets und damit der Verbindung Portnummer > 255 beliebig belegbar, kleinere Portnummern standardisiert Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 31 Segmentheader (2) 32 bit Quellport Zielport Folgenummer Bestätigungsnummer Länge reserviert Flags Prüfsumme ≈ ≈ z Urgent-Zeiger ≈ ≈ Optionen (beliebig viele 32 Bit-Worte) Daten (optional) Folgenummer z Bytes eines TCP-Datenstroms fortlaufend numeriert Segment-Folgenummer ist Nummer des ersten Datenbytes z Nummer des als nächstes erwarteten Datenbytes z z Fenstergröße Bestätigungsnummer Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 32 Segmentheader (3) 32 bit Quellport Zielport Folgenummer Bestätigungsnummer Länge reserviert Flags Prüfsumme ≈ ≈ z Urgent-Zeiger ≈ ≈ Optionen (beliebig viele 32 Bit-Worte) Daten (optional) Länge z z Fenstergröße Zahl der 32-Bit-Worte im Header Fenstergröße z Zahl der Datenbytes ab der Bestätigungsnummer (einschließlich), die im nächsten Segment der Gegenseite gesendet werden dürfen Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 33 Segmentheader (4) z Flags: 6 Flags von jeweils 1 Bit Länge z URG: Kennzeichnung, ob Urgent-Zeiger benutzt wird oder nicht z ACK: Kennzeichnung, ob Bestätigungsnummer gültig ist oder z nicht PSH: Kennzeichnung von PUSH-Daten z z RST: Signal zum Rücksetzen einer Verbindung z z Verwendung z.B. nach Absturz eines Kommunikationspartners oder zum Ab-weisen einer Verbindungsanfrage oder eines ungültigen Segments SYN: Verbindungsaufbau z z Sendepuffer durch Segment mit gesetztem PSH-Flag geleert entweder Verbindungsanfrage oder Verbindungsbestätigung (in Abhängigkeit vom ACK-Flag) FIN: Verbindungsabbau Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 34 Segmentheader (5) 32 bit Quellport Zielport Folgenummer Bestätigungsnummer Länge reserviert Flags Prüfsumme ≈ ≈ z Urgent-Zeiger ≈ ≈ Optionen (beliebig viele 32 Bit-Worte) Daten (optional) Prüfsumme z z Fenstergröße Summe der Komplemente aller 16-Bit-Halbworte des Segments einschließlich IP-Pseudoheader (Quell-, Zieladresse, Protokoll, Datenlänge) Urgent-Zeiger z Nummer des- ersten Bytes nicht dringlicher Daten innerhalb Informationstechnik für Ingenieure Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. z davor liegende Bytes damit implizit als dringend gekennzeichnet des Segment 35 Segmentheader (6) 32 bit Quellport Zielport Folgenummer Bestätigungsnummer Länge reserviert Flags Prüfsumme ≈ ≈ z Fenstergröße Urgent-Zeiger ≈ ≈ Optionen (beliebig viele 32 Bit-Worte) Daten (optional) Optionen u.a. z z z Einigung der Hosts auf maximale Segmentlänge (Voreinstellung: 536 Byte) Skalierungsfaktor für Fenstergröße Negative Bestätigung einzelner Segmente Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 36 User Datagram Protocol (UDP) 32 bit Quellport Gesamtlänge z Länge der Daten plus 8 Byte für den Header Prüfsumme z ⇒ Dienstzugriffspunkte auf Quell- und Zielhost wie bei TCP Länge z z Prüfsumme Quellport / Zielport z z Zielport Addition der Komplemente aller 16-Bit-Halbworte wie bei TCP damit Möglichkeit zur verbindungslosen Übertragung roher IP-Datagramme zwischen Anwendungen • z.B. Client/Server-Anwendungen Informationstechnik für Ingenieure - Computernetze, Wintersemester 2004/2005 © Wieland/Landes, FH Coburg, FB Elektrotechnik / Informatik. Alle Rechte vorbehalten. 37