TCP/UDP Transport Layer
Lernziele 1. Wozu dient die Transportschicht? 2. Was passiert in der Transportschicht? 3. Was sind die wichtigsten Protkolle der Transportschicht? 4. Wofür wird TCP eingesetzt? 5. Wofür wird UDP eingesetzt?
Transport Layer
Die Transportschicht (engl. transport layer, auch: Ende-zu-Ende-Kontrolle, Transport-Kontrolle) Die Transportschicht ist die unterste Schicht, die eine vollständige Ende-zu-Ende Kommunikation zwischen Sender und Empfänger zur Verfügung stellt. Sie bietet den anwendungsorientierten Schichten 5-7 einen einheitlichen Zugriff, so dass diese die Eigenschaften des Kommunikationsnetzes nicht zu berücksichtigen brauchen.
Protokolle / Datenstrukturen
Datenstrukturen bei TCP bzw. UDP (PDU = protocol data unit) TCP UDP Application layer stream message Transport layer segment packet Internet layer datagram datagram Network layer frame frame
Transportschicht transferiert Segmente Kapselt Applikationsdaten und übergibt sie der Netzwerkschicht Wichtigste Protokolle: TCP/UDP
Aufgaben der Transportschicht Realisierung von virtuellen Verbindungen zwischen Instanzen (Prozessen, Programmen) in den Endsystemen Nachrichtensegmentierung (message segmentation): Zerlegung längerer Datenblöcke in mehrere Pakete, die dann in einer gemeinsamen Paketsequenz über einen logischen Kanal gesendet werden Multiplexing: die Daten von mehreren Datenstationen werden gebündelt, übertragen, entbündelt und auf mehrere Datenstationen oder Speicherbereiche übertragen Adressbildung Fehlererkennung Sequenzbildung: z.b. Anforderung der Transportverbindung Annahme einer Transportverbindung -- Datenübertragung Auflösung der Transportverbindung Zustellung zu benannten Prozessen Ende-zu-Ende-Flusskontrolle Die Transportschicht identifiziert jede Sitzung durch ihre Transport- Adresse.
Wiederholung: Encapsulation
multiplexing
Funktionen innerhalb der Transportschicht Adressierung Herstellen einer Verbindung Auflösen einer Verbindung 04.01.2013 NWVS
Transport layer Kommunikation zwischen Quell- & Ziel host Segmentiert Daten Zusammenbau der Segmente zu data-streams Identifiziert unterschiedliche Applikationen
Transport layer Jeder Datenteil benötigt einen header, um eine Zuordnung zur richtigen Anwendung zu gewährleisten Jede Anwendung hat eine Identifizierung: Portnummer Eindeutige Portnummer = Daten erreichen die richtige Anwendung
Transport layer Verschiedene Anwendungen wie senden/empfangen von e-mail, Web surfen, instant messaging, VoIP-Anrufe, haben unterschiedliche Anforderungen Emails müssen komplett sein, kurze Verzögerungen sind akzeptabel VoIP-Anrufe: kleine Teile können verloren gehen, aber Verzögerungen sind nicht akzeptabel 04.01.2013 NWVS
Fragen 1 Welche PDU (Protocol Data Unit) verwendet die Transportschicht? Was wird benutzt, um eine Applikation zu identifizieren?
UDP - User Datagram Protocol UDP ist ein sehr einfaches, wenig leistungsfähiges Protokoll mit nur 8 Byte overhead. (DNS, VoIP, Video streaming) Es erfüllt folgende Services: Hinzufügung einer Port Nummer zur IP-Adresse, damit Identifikation einer Anwendung möglich ist optional: Bildung einer Prüfsumme zur Fehlerkontrolle. Diese Option ist oft zur Leistungsverbesserung abgeschaltet UDP ist ein verbindungsloses Service. Es wird vor allem für kurze Anfragen und Antworten verwendet, die in ein einziges IP-Paket passen. Das Eintreffen der Antwort dient dann gleichzeitig als Bestätigung der erfolgreichen Übertragung. Trifft nicht innerhalb eines bestimmten Zeitraums eine Antwort ein, wird einfach nochmals die Anfrage geschickt.
TCP Transmission Control Protocol TCP ist ein verbindungsorientiertes Protokoll mit 20 Byte Overhead im Header Vor der eigentlichen Datenübertragung und nach ihrem Ende findet ein Handshake zwischen den beiden Endpunkten statt. TCP wirkt so, als ob eine direkte Verbindung zwischen Sender und Empfänger bestehen würde, obwohl eine solche auf den tieferliegenden Schichten nicht existiert. TCP erfüllt diese services durch die Vergabe von Sequenznummern. Aufgrund dieser Sequenznummern können beim Empfänger die Datenpakete wieder in die richtige Reihenfolge gebracht werden. Auch kann der Empfänger so feststellen, ob etwas fehlt. In diesem Fall wird automatisch ein nochmaliges Senden des Fehlenden angefordert. Unter TCP teilt der Empfänger dem Sender mit, wie viele Daten er schon erhalten hat und für wie viel weitere momentan die Ressourcen (Buffer) reichen. Falls momentan kein Buffer vorhanden ist, unterbricht der Sender das Senden bis er wieder eine positive Meldung bekommt.
TCP Transmission Control Protocol TCP liefert zwei Services: garantiertes Eintreffen des Datenpaketes beim Empfänger: wenn beim Sender keine Bestätigung über das unbeschädigte Eintreffen der Daten eintrifft, sendet er die Daten nochmals. Treffen Daten beschädigt ein, verwirft sie der Empfänger ohne Rückmeldung. Da nun keine positive Empfangsbestätigung eintrifft, sendet der Sender die Daten nochmals Serialisierung der Datenpakete, d.h. Anordnung der Datenpakete in der richtigen Reihenfolge beim Empfänger: TCP betrachtet die Daten, die es sendet als zusammenhängenden, segmentierten Bitstrom, nicht als unabhängige Pakete.
TCP/UDP TCP Segment UDP Datagram
TCP Verbindungsaufbau
Port Adressierung Jede Applikation hat eine eindeutige Port Nummer Source port Destination port
Port Adressierung Serverprozesse haben statische Portnummern Clients wählen dynamisch einen Port Request: Zielport des Service muss der Clientanwendung bekannt sein Request: Webbrowser-zu-Webserver TCP and port 80 Request: Source port random number > 1023
Port Adressierung Bekannte (wellknown) Ports: 0 1023 Registrierte Ports: 1024 49151 Applikationen oder Prozessen zugeordnet Prüfung benutzter Ports mit: netstat
Socket Socket: Transport layer port number + Network layer IP-address HTTP Anforderung: 192.168.1.20:80 IP-Adresse port
Fragen 2 Welche Applikationen nutzen UDP und warum? Welche Applikationen verwenden TCP? Beispiel für ein socket server- und clientseitig Beispiele für bekannte Ports?