Transportschicht Transportschicht-Dienste u. Protokolle bei OSI Funktion Bereitstellung eines Datentransports zuverlässig effizient kostengünstig von Anwendung zu Anwendung d.h. von Endsystem zu Endsystem unabhängig von Eigenschaften des verwendeten Netzwerks Beziehung Dienst Protokoll OSI zum Vergleich Internet Sprachvereinbarung Schicht Dateneinheit Transport Nachricht Vermittlung Paket Sicherung Rahmen/Frame Bitübertragung Bit/Byte bzw Bitstrom Warum Transportschicht, wenn schon Vermittlungsschicht ähnliche Funktionen realisiert? Vermittlungsschicht nicht unter Kontrolle des Benutzers Benutzer wünschen z.b. zuverlässigen Dienst, Zeitgarantien (z.b. QoS) Transportschicht dient der Verbesserung der Qualität des gesamten Netzwerkdienstes Realisierung der Transport-Instanz (-entity) In Software und/oder Hardware Im Kernel, als eigenständiger Prozeß oder als Programmbibliothek Es existieren ISO- (hier nicht weiter dargestellt) und die bald behandelten Internet-Transportprotokolle
Dienste der Transportschicht Adressierung Verbindung Prozeß-zu-Prozeß Verbindungsorientierter Dienst Verbindungsaufbau, Datentransfer, Verbindungsabbau Verbindungsloser Dienst Transfer isolierter Einheiten Datensegementierung/-wiedervereinigung von Datenpaketen Fehlerbehebung Verbindungsneuzuordnung Resynchronisation Flußkontrolle, Sicherstellung der Reihenfolge Bestätigte Datenübertragung Verkettung/Trennung von TPDUs Multiplexen von Transportverbindungen Aufteilung/Zusammenfassung von Transportverbindungen (splitting/recombining) Aufgabe Sender(prozeß) möchte Empfänger(prozeß) ansprechen = adressieren Allgemeine Form der Realisierung Allgemein Service Access Point (SAP) hier Transport / Network SAP Im Internet IP Adresse und lokaler Port (s. unten)
Adressierungsvarianten Schritte der Transportschicht-Kommunikation Adressierung bei gegebener Kenntnis des Diensterbringers TSAP implizit bekannt Dafür vorab Definition allgemein verwendeter Dienste als "well known ports" Adressierung bei gegebener Kenntnis des Endsystems Hierarchische Adressierung TSAP beinhaltet diese Information z.b. <Land>, <Netz>, <Port> Flache Adressierung Dedizierter "Name Server" Eintrag TSAP-Adresse: Adresse des Endsystems Anfrage über Broadcast à la ARP für IP-Adresse zu Ethernet Üblicher Ablauf 1. Diensterbringer (Server) verbindet sich selbst mit TSAP 122 wartet auf Diensteanforderung (Polling, Signalling) 2. Anwendung (Klient) initiiert Verbindung über TSAP 6, d.h. connect.req 3. Transportsystem auf Host 1 identifiziert zugehörigen NSAP initiiert Verbindung auf Vermittlungsschicht kommuniziert mit Transportinstanz auf Host 2 meldet Verbindungswunsch zu TSAP 122 an 4. Transportinstanz auf Host 2 adressiert Server erfragt, ob Verbindungswunsch angenommen wird, d.h. conn.ind 5. usw.
Internet Transport-Schicht und -Protokolle Anwendungen, Prozeße, Adressierung Anwendungen Kommunikation zwischen Anwendungsprogrammen benötigt Anwendungen werden durch Prozeße auf Rechner ausgeführt Interprozeßkommunikation (IPK) erforderlich Transportschicht realisiert IPK über Kommunikationsnetze Adressierung s. vorhergehende allgemeine Überlegungen Kommunikation über Prozeßnummern ungeignet, da Prozeße werden dynamisch erzeugt Prozeß-Nr. i.a. unbekannt Ein Prozeß kann mehrere Dienste erbringen usw. Port-Konzept Ein Dienst ist genau einem Port zugeordnet Port ist mit Puffer verbunden
Beispiele reservierter Port-Nummern 256 "well known" Port-Zuordnungen für TCP und UDP Decimal Keyword UNIX Description Keyword 0 Reserved 1 TCPMUX - TCP Multiplex 5 RJE - Remote Job Entry 7 ECHO echo Echo 9 DISCARD discard Discard 11 USERS systat Active Users 13 DAYTIME daytime Daytime 15 - netstat Network status program 17 QUOTE qotd Quote of the Day 19 CHARGEN chargen Character Generator 20 FTP-DATA ftp-data File Transfer Protocol (data) 21 FTP ftp File Transfer Protocol 23 TELNET telnet Terminal Connection 25 SMTP smtp Simple Mail Transport Protocol 37 TIME time Time 42 NAMESERVER name Host Name Server 43 NICNAME whois Who Is 53 DOMAIN nameserver Domain Name Server 77 - rje Any private RJE service 79 FINGER finger Finger 80 HTTP http Hypertext Transfer Protocol 93 DCP - Device Control Protocol 95 SUPDUP supdup SUPDUP Protocol 101 HOSTNAME hostnames NIC Host Name Server 102 ISO-TSAP iso-tsap ISO-TSAP 103 X400 x400 X.400 Mail Service 104 X400-SND x400-snd X.400 Mail Sending 111 SUNRPC sunrpc SUN Remote Procedure Call 113 AUTH auth Authentication Service 117 UUCP-PATH uucp-path UUCP Path Service 119 NNTP nntp USENET News Transfer Protocol 129 PWDGEN - Password Generator Protocol 139 NETBIOS-SSN - NETBIOS Session Protocol 160-223 Reserved Sender und Empfänger generieren Socket und Streams Socket oder Streams auf Betriebssystemebene Mehrere Verbindungen können denselben Socket verwenden Socket-Identifikation (bei TCP) Über eindeutige Nummer mit IP-Adresse des Endsystems und 16 Bit Portnummer 0... 256 vordefinierte "well known" Ports weitere werden dynamisch vergeben Einfaches Beispiel Server Klient Kommentar OpenServerSocket(80) WarteAufDaten(Output) Server öffnet Socket an einem Port und wartet auf Anfragen OpenSocket(129.30. 24.8,80) Send(Input,"Hallo") Klient öffnet einen Socket zu Port 80 (http) auf Remote-Host Klient sendet Anfrage
UDP-Transportprotokoll UDP: User Datagram Protocol Eigenschaften unzuverlässig verbindungslos nachrichtenorientiert Weitere Merkmale keine Garantie über Reihenfolge der einzelnen Nachrichten keine gesicherte Datenzustellung beim Empfänger duplizierte Pakete sind möglich Rundsenden ist möglich für Medienströme Format von UDP-Nachrichten Bit Paket-Länge in Bytes (einschließlich UDP-Kopf), Minimum 8 Prüfsumme über Kopf und Daten zur Fehlererkennung Verwendung der Prüfsumme ist optional (0..0 = ohne Prüfsumme) Einsatzbereiche von UDP Vorteile von UDP: geringer Ressourcen-Verbrauch kein expliziter Verbindungsaufbau einfache Implementierung, geeignet für Boot-PROM UDP ist vor allem für einfache Klient-Server-Interaktionen geeignet, d.h. typischerweise 1 Anfrage-Paket vom Klienten zum Server 1 Antwort-Paket vom Server zum Klienten Anwendungsbereiche: Zeitabfrage Domain Name Service SNMP: Simple Network Management Protocol System Status Bootstrap Protocol TFTP: Trivial File Transfer Protocol NFS: Network File System
TCP-Transportprotokoll TCP: Transmission Control Protocol TCP ist das erste Protokoll in der Internet-Protokollhierarchie, das eine gesicherte Datenübertragung zwischen Endsystemen leistet. Datenstrom-orientiert: TCP überträgt reihenfolgerichtig einen seriellen Bitstrom in der Form von 8-Bit Bytes Virtuelle Verbindung: Vor der Datenübertragung wird eine Verbindung zwischen beiden Kommunikationspartnern aufgebaut Gepufferte Datenübertragung: Der sequentielle Datenstrom wird zur Übertragung in einzelne Segmente aufgeteilt Fehlende Eigenschaften kein Broadcast keine Möglichkeit alle Anwendungen anzusprechen jedoch mit Verbindungsaufbau nicht unbedingt sinn-voll kein Multicast keine Gruppenadressierung möglich keine Dienstgüteparameter keine Charakterisierung unterschiedlicher Medien keine Echtzeitunterstützung Audio oder Video nicht differenziert zu behandeln z.b. keine Vorwärtsfehlerkorrektur Unstrukturierter Datenstrom: Innerhalb des Datenstroms unterstützt TCP keine Einteilung in höhere Strukturen der Anwendung Zwei-Weg-Kommunikation: Über eine TCP-Verbindung können gleichzeitig Daten vollduplex in beide Richtungen übertragen werden
TCP-Verbindung TCP-Format TCP spezifiziert Format von Daten und Kontrollinformation Fehlererkennung und -behebung Acknowledge von Bytepositionen im Datenstrom und nicht von Segmentnummern Sende & Warte ARQ mit an Netzbelastung adaptierter Wartezeit (time out) Prüfsumme Piggybacking (sende Steuerinfo und Daten zusammen) Flußkontrolle Verbindungsaufbau Passive Open beim Server (Verbindungswunsch würde akzeptiert) Active Open eines Klienten (Verbindung wird angefordert) Verbindungsabbau jedoch nicht die Schnittstelle zum Anwendungsprogramm (sockets, streams) Eine Verbindung wird eindeutig bestimmt durch ein Quintupel aus IP-Adresse von Sender und Empfänger Port-Adresse von Sender und Empfänger TCP-Protokoll-Identifikator Anwendungen können dieselben lokalen Ports für mehrere Verbindungen verwenden SEQUENCE NUMBER ACKNOWLEDGEMENT HLEN CODEBITS URG ACK PSH RST SYN FIN WINDOW URGENT POINTER Bytenummern (jedes Byte der Nachricht ist numeriert) Länge des Headers in 32 Bit Schritten Bits von links nach rechts Urgent Pointer wird verwendet Acknowledgement Nummer ist gültig Daten wurden mit PUSH übergeben Reset: Rücksetzen der Verbindung Synchronisiere Sequenznummern Verbindung abbrechen Byteoffset zur aktuellen Sequenznummer, an der wichtige Daten beginnen
TCP/IP-Format des Headers TCP Verbindungsaufbau Drei-Weg-Handshake mit 3 Nachrichten Bei Verbindungsaufbau werden auch die anfänglichen Sequenznummern beider Seiten ausgetauscht und bestätigt Eine einzige Verbindung kommt auch dann zustande, wenn beide Seiten gleichzeitig aktiv eine Verbindung aufbauen Unterschied zwischen Server und Klient
TCP Verbindungsabbau Geordneter Verbindungsabbau durch 4 Nachrichten Bewertung Vorteile von TCP: gesicherte Datenübertragung effiziente Datenübertragung trotz Komplexität (bis zu 8 Mbps auf Ethernet) einsetzbar im LAN- und WAN-Bereich für geringe Datenraten (z.b. interaktives Terminal) und hohe Datenraten (z.b. Dateitransfer) verwendbar Nachteile gegenüber UDP: Zwischen 2. und 3. kann Partner 2 weiterhin Daten an A senden Verbindungsabbruch: Gegenseite kann keine Daten mehr übertragen sofortige Bestätigung, Freigabe aller Ressourcen. Daten in Transit können verlorengehen höherer Ressourcenbedarf (Zwischenspeicherung, Zustandsinformation, Zeitgeber-Nutzung) Verbindungsaufbau und -abbau auch bei kurzen Datenübertragungen notwendig Anwendungsbereiche: Datei-Transfer (FTP) interaktives Ter minal (Telnet) Email (SMTP) X-Windows