Netzwerktechnik Aachen, den 16.06.03 Stephan Zielinski Dipl.Ing Elektrotechnik Horbacher Str. 116c 52072 Aachen Tel.: 0241 / 174173 zielinski@fh-aachen.de zielinski.isdrin.de 15 Transportschicht (Schicht 4) Mit dem Schlagwort "Dienstgüte" (Quality of Service) wird oft der Zweck der Schicht 4, der Transportschicht, beschrieben. Die Hauptfunktion der Transportschicht besteht darin, den Informationsfluss von der Quelle zum Ziel zu transportieren und zu steuern - und dies so zuverlässig und exakt wie möglich. Die Steuerung von Endsystem zu Endsystem mit Hilfe sogenannter "Sliding Windows", und die Zuverlässigkeit durch fortlaufende Nummerierung sowie Bestätigungen sind die wesentlichen Merkmale der Schicht 4. 15.1 Flusskontrolle und Zuverlässigkeit Die Flusskontrolle und die Zuverlässigkeit der Transportschicht lässt sich mit einem Schüler vergleichen, der eine Fremdsprache nur ein Jahr an der Schule lernt und dann in das Land fährt, in dem diese Sprache gesprochen wird. Immer, wenn der Schüler sich mit den Einheimischen unterhalten möchte, muss er jeden, möglicherweise öfters, bitten, seine Sätze zu wiederholen (dies entspricht der Zuverlässigkeit) und langsam zu sprechen (dies entspricht der Flusskontrolle). Dieser Kurs behandelt schwerpunktmäßig TCP/IP Ethernet- Netzwerke. Das TCP/IP-Protokoll von Schicht 4 (Transportschicht) umfasst zwei Protokolle - TCP-Stack und UDP. 15_Schicht 4 (Transportschicht).doc Kapitel 15 Schicht 4 (Transport) Seite 1 von 5
15.1.1 TCP/UDP TCP stellt einen virtuellen Schaltkreis zwischen den Endbenutzer-Anwendungen zur Verfügung. TCP weist folgende Eigenschaften auf: Verbindungsorientiert Zuverlässig Unterteilt ausgehende Nachrichten in Segmente Setzt die Nachrichten an der Zielstation wieder zusammen Sendet alles, was an der Zielstation nicht angekommen ist, erneut Stellt die Nachrichten aus den eingehenden Segmenten wieder zusammen UDP weist folgende Eigenschaften auf: Verbindungslos Unzuverlässig Überträgt Nachrichten Führt keine software-basierte Prüfung der Segmentübertragung durch (unzuverlässig) 15.1.2 TCP/IP TCP/IP besteht aus einer Kombination von zwei einzelnen Protokollen - TCP und IP. Bei IP handelt es sich um ein Protokoll der Schicht 3 - einen verbindungslosen Dienst, der die Übertragung in einem Netzwerk nur so gut wie möglich durchführt, sie aber nicht garantiert. Bei TCP handelt es sich um ein Protokoll der Schicht 4 - einen verbindungsorientierten Dienst, der Flusskontrolle und Zuverlässigkeit gewährleistet. Durch ihre Kombination können die beiden Protokolle eine größere Zahl an Diensten erbringen. Gemeinsam stellen sie die gesamte Protokollgruppe dar. Bei TCP/IP handelt es sich um das Schicht 3- und Schicht 4-Protokoll, das dem Internet zugrunde liegt. 15_Schicht 4 (Transportschicht).doc Kapitel 15 Schicht 4 (Transport) Seite 2 von 5
15.2 TCP Protokoll Das Transmission Control Protocol (TCP) ist ein verbindungsorientiertes Protokoll der Schicht 4 (Transportschicht), das für eine zuverlässige Vollduplex- Datenübertragung sorgt. TCP ist Teil des TCP/IP-Protokoll- Stacks. 15.2.1 Felddefinitionen im TCP-Segment Quell-Port - Nummer des anrufenden Ports Ziel-Port - Nummer des angerufenen Ports Sequenznummer - Nummer, mit der die korrekte Reihenfolge der ankommenden Daten sichergestellt wird Bestätigungsnummer - nächstes erwartetes TCP-Oktett HLEN - die Anzahl von 32-Bit-Wörtern im Header reserviert - auf Null gesetzt Code-Bits - Steuerungsfunktionen (wie Einrichten und Beenden einer Sitzung) Fenster - Anzahl von Oktetten, die der Sender akzeptiert Prüfsumme - berechnete Prüfsumme der Header- und Datenfelder Urgent Pointer - markiert das Ende der dringenden Daten Optionsfeld - genutzt beispielsweise für die Übermittlung der maximale TCP-Segmentgröße Daten - Daten des höheren Protokolls 15.3 UDP Protokoll Beim User Datagram Protocol (UDP) handelt es sich um das verbindungslose Transportschichtprotokoll im TCP/IP-Protokoll-Stack. Das UDP ist ein einfaches Protokoll, das Datagramme ohne Bestätigung oder garantierte Lieferung austauscht, weshalb die Fehlerverarbeitung und Neuübertragung von anderen Protokollen durchgeführt werden muss. 15_Schicht 4 (Transportschicht).doc Kapitel 15 Schicht 4 (Transport) Seite 3 von 5
UDP arbeitet nicht mit der Fenstertechnik oder Bestätigungen. Daher wird die Zuverlässigkeit der Übertragung mit Hilfe von Protokollen der Anwendungsschicht gewährleistet. UDP eignet sich für Anwendungen, die Segmente nicht in einer bestimmten Reihenfolge zusammensetzen müssen. UDP wird unter anderem von folgenden Protokollen verwendet: TFTP SNMP DHCP DNS (Domain Name System) 15.4 Ports bei TCP/UDP Sowohl TCP als auch UDP verwenden Port- (oder Socket- )Nummern für das Übermitteln der Informationen an die höheren Schichten. Port-Nummern werden eingesetzt, um unterschiedliche Konversationen, die zur gleichen Zeit im Netzwerk stattfinden, verfolgen zu können. Die Entwickler von Anwendungssoftware sind überein gekommen, die allgemein bekannten Port-Nummern zu verwenden, die in RFC1700 definiert sind (z. B., dass jede Konversation für eine FTP- Anwendung die Standard-Port- Nummer 21 verwendet). Konversationen, die keine Anwendungen mit allgemein bekannten Port-Nummern betreffen, werden Port-Nummern zugewiesen, die zufällig aus einem festgelegten Nummernbereich gewählt wurden. Diese Port-Nummern werden als Quell- und Zieladressen im TCP-Segment verwendet. Einige Ports sind sowohl in TCP als auch in UDP reserviert, obwohl sie vom Programmcode einiger Anwendungen möglicherweise nicht unterstützt werden. Port-Nummern sind folgende Nummernbereiche zugewiesen: Nummern unter 255 beziehen sich auf öffentliche Anwendungen. Nummern von 255 bis 1023 sind Unternehmen für marktfähige Anwendungen zugewiesen. Nummern über 1023 sind für keinen bestimmten Zweck reserviert. Die Port-Nummern werden von den Endsystemen zum Auswählen der entsprechenden Anwendungen verwendet. Die Quell-Port-Nummern werden vom Quell-Host dynamisch zugewiesen. In der Regel handelt es sich dabei eine Nummer oberhalb von 1023. 15_Schicht 4 (Transportschicht).doc Kapitel 15 Schicht 4 (Transport) Seite 4 von 5
15.5 Verbindungsaufbau TCP Eine Verbindung wird an beiden Endsystemen über eine Drei-Schritte- Handshake/Verbindungsaufbau- Sequenz synchronisiert, bevor die zu übertragenden Daten an den Endsystemen ankommen. Über den Austausch von Einleitungs- Sequenznummern während der Verbindungssequenz wird sichergestellt, dass alle Daten, die aufgrund späterer Probleme verloren gehen, wiederhergestellt werden können. 15.5.1 Fenstergröße Die Fenstergröße bestimmt die Datenmenge, die auf einmal übertragen werden kann, bevor eine Bestätigung eintrifft. Nachdem ein Host die in der Fenstergröße angegebene Anzahl Bytes übertragen hat, muss er eine Bestätigung erhalten, bevor er weitere Nachrichten senden kann. Beispielsweise muss bei einer Fenstergröße von 1 jedes einzelne Segment bestätigt werden, bevor das nächste Segment übertragen werden kann. Dies führt zu einer ineffizienten Bandbreitennutzung durch die Hosts. Die Fenstergröße bezieht sich auf die Anzahl von Nachrichten, die übertragen werden können, bevor eine Bestätigung empfangen wird. Je größer die Zahl für die Fenstergröße (in Bytes), desto größer ist die Menge der übertragbaren Daten. TCP arbeitet mit erwarteten Bestätigungsmeldungen, d. h., die Bestätigungsnummer entspricht dem nächsten erwarteten Oktett. Bei den "Sliding Windows") bezieht sich "Sliding" (variabel) auf die Tatsache, dass die Fenstergröße während der TCP- Session dynamisch ausgehandelt wird. TCP sieht für die Reihenfolge der Segmente eine Bestätigungsmeldung mit Vorwärtsreferenz vor. Jedes Datagramm wird vor der Übertragung mit einer Nummer versehen. An der Zielstation setzt TCP die Segmente zu einer vollständigen Nachricht zusammen. Wenn eine Sequenznummer in dieser Folge fehlt, wird dieses Segment neu übertragen. Segmente, die innerhalb eines bestimmten Zeitraums nicht bestätigt werden, werden automatisch neu übertragen. 15_Schicht 4 (Transportschicht).doc Kapitel 15 Schicht 4 (Transport) Seite 5 von 5