Kapitel XII: 12.1 Die Transportschicht 12.1.1. Zweck der Transportschicht Oft wird der Ausdruck "Quality of Service" verwendet, um den Zweck der Transportschicht (Schicht 4) zu beschreiben. Ihre Hauptaufgabe besteht darin, den Datenfluss von der Quelle zum Ziel auf zuverlässige und präzise Weise zu gewährleisten und zu steuern. Die durchgehende "Sliding Window"-Flusskontrolle und die durch Sequenznummern und Bestätigungen erzielte Zuverlässigkeit sind die wichtigsten Aufgaben der Schicht 4. 12.1.2. Protokolle der Schicht 4 Den Schwerpunkt dieses Curriculums bilden TCP/IP-Ethernet-Netze. Das TCP/IP-Protokoll der Schicht 4 des OSI-Modells (der Transportschicht) beinhaltet zwei Protokolle: TCP und UDP. TCP baut eine virtuelle Verbindung zwischen Endbenutzeranwendungen auf. Es besitzt folgende Merkmale: verbindungsorientiert zuverlässig unterteilt ausgehende Nachrichten in Segmente setzt Nachrichten an der Zielstation wieder zusammen sendet alle nicht empfangenen Daten erneut setzt Nachrichten aus eingehenden Segmenten wieder zusammen. UDP transportiert Daten zwischen Hosts unzuverlässig. UDP besitzt folgende Merkmale: verbindungslos unzuverlässig überträgt Nachrichten (als Benutzer-Datagramme bezeichnet) führt keine softwarebasierte Überprüfung der Nachrichtenübermittlung durch (unzuverlässig) setzt eingehende Nachrichten nicht wieder zusammen verwendet keine Bestätigungen bietet keine Flusskontrolle 12.1.3. Vergleich zwischen TCP und IP TCP/IP ist eine Kombination aus zwei einzelnen Protokollen - TCP und IP. IP ist ein Protokoll der Schicht 3 - ein verbindungsloser Dienst, der Best-Effort-Transport in einem Netz bietet. TCP ist ein Protokoll der Schicht 4 - ein verbindungsorientierter Dienst, der Flusskontrolle und Zuverlässigkeit bietet. Durch den gemeinsamen Einsatz können die Protokolle umfangreichere Dienste zur Verfügung stellen. Sie bilden zusammen den am häufigsten verwendeten Protokollstapel der TCP/IPProtokollgruppe. TCP/IP ist das Protokoll der Schichten 3 und 4, auf dem das Internet basiert. 12.2. TCP und UDP 12.21. TCP Transmission Control Protocol (TCP) ist ein verbindungsorientiertes Protokoll der Schicht 4 (Transportschicht), das zuverlässige Duplex-Datenübertragung bietet. TCP ist Teil des TCP/IPProtokollstapels. Nachfolgend die Definitionen der Felder im TCP-Segment: Quell-Port - Die Nummer des anrufenden Ports Ziel-Port - Die Nummer des angerufenen Ports Sequenznummer - Die Nummer, mit der die richtige Reihenfolge der ankommenden Daten sichergestellt wird Bestätigungsnummer - Das nächste erwartete TCP-Oktett HLEN - Die Anzahl von 32-Bit-Wörtern im Header reserviert - auf null gesetzt Code-Bits - Steuerungsfunktionen (beispielsweise Aufbau und Beendigung einer Sitzung) Fenster - Die Anzahl von Oktetten, die der Sender akzeptiert Prüfsumme - Prüfsumme aus den Header- und Datenfeldern Urgent-Zeiger - Gibt das Ende der dringenden Daten an Option - nur eine Option verfügbar - Maximale Größe des TCP-Segments Daten - Daten höherer Protokolle 12.2.2. UDP – Segmentformat User Datagram Protocol (UDP) ist das verbindungslose Transportprotokoll im TCP/IP-Protokollstapel. UDP ist ein einfaches Protokoll, das Datagramme ohne Bestätigungen oder garantierte Übergabe austauscht. Fehlerverarbeitung und Neuübertragung müssen von anderen Protokollen übernommen werden. UDP verwendet keine Fenster oder Bestätigungen, für die Zuverlässigkeit sorgen daher Protokolle der Anwendungsschicht. UDP wurde für Anwendungen konzipiert, für die es nicht erforderlich ist, Segment-Sequenzen zusammenzufügen. Zu den Protokollen, die UDP einsetzen, gehören: TFTP (Trivial File Transfer Protocol) SNMP (Simple Network Management Protocol) DHCP (Dynamic Host Control Protocol) DNS (Domain Name System) 12.3. TCP - Verbindungsmethoden 12.3.1. Port Nummern TCP und UDP verwenden Port-Nummern (Socket-Nummern), um Daten an die höheren Schichten zu übergeben. Mithilfe von Port-Nummern werden unterschiedliche, gleichzeitig das Netz durchlaufende Konversationen verfolgt. Entwickler von Anwendungen haben vereinbart, die allgemein bekannten Port-Nummern zu verwenden, die in RFC 1700 definiert sind. Jede Konversation für die FTPAnwendung verwendet standardmäßig die Port-Nummer 21. Konversationen, an denen keine Anwendungen mit allgemein bekannten Port-Nummern beteiligt sind, erhalten Port-Nummern, die willkürlich aus einem bestimmten Bereich ausgewählt werden. Diese Port-Nummern werden als Quellund Zieladressen in TCP-Segmenten verwendet. Einige Ports sind sowohl in TCP als auch in UDP reserviert, auch wenn eventuell keine Anwendungen vorhanden sind, um sie zu unterstützen. Port-Nummern wurden folgende Bereiche zugewiesen: Nummern unter 255 - für öffentliche Anwendungen Nummern zwischen 255 und 1023 - für Unternehmen für kommerzielle Anwendungen Nummern über 1023 - nicht geregelt Endsysteme verwenden Port-Nummern für die Auswahl geeigneter Anwendungen. Quell-PortNummern werden vom Quell-Host dynamisch vergeben, in der Regel handelt es sich um Nummern über 1023. 12.3.2. Drei Schritte Handshake zum Verbindungsaufabu Verbindungsorientierte Dienste beinhalten drei Phasen. In der Phase des Verbindungsaufbaus wird ein einzelner Pfad zwischen Quelle und Ziel ermittelt. In der Regel werden zu diesem Zeitpunkt Ressourcen reserviert, um einen unveränderten Servicegrad zu gewährleisten. Während der Datenübertragungsphase werden Daten sequenziell über den ermittelten Pfad übertragen und gehen am Ziel in der Reihenfolge ein, in der sie gesendet wurden. In der Phase der Verbindungsbeendigung wird die Verbindung zwischen Quelle und Ziel beendet, wenn sie nicht mehr benötigt wird. TCP-Hosts bauen über einen Drei-Schritte-Handshake eine verbindungsorientierte Sitzung miteinander auf. Bei einer Drei-Schritte-Handshake-Sequenz zum Verbindungsaufbau wird eine Verbindung an beiden Enden synchronisiert, bevor Daten übertragen werden. Dieser Austausch von einleitenden Sequenznummern während der Verbindungssequenz spielt eine wichtige Rolle. Er gewährleistet, dass Daten, die durch Übertragungsprobleme verloren gehen, wiederhergestellt werden können. Zunächst initiiert ein Host eine Verbindung, indem er ein Paket sendet, das die einleitende Sequenznummer x und mit einem bestimmten Bit im Header eine Verbindungsanforderung angibt. Anschließend empfängt der andere Host das Paket, zeichnet die Sequenznummer x auf, antwortet mit der Bestätigung x+1 und fügt die eigene einleitende Sequenznummer y hinzu. Die Bestätigungsnummer x+1 bedeutet, dass der Host alle Oktette einschließlich x erhalten hat und als Nächstes x+1 erwartet. Positive Acknowledgment and Retransmission (PAR) ist eine allgemeine, in vielen Protokollen verwendete Methode für eine zuverlässige Übertragung. Mit PAR sendet eine Quelle ein Paket, startet einen Timer und wartet vor dem Senden des nächsten Pakets auf eine Bestätigung. Wurde nach Ablauf der Wartezeit noch keine Bestätigung empfangen, überträgt die Quelle das Paket erneut und setzt den Timer zurück. Die Fenstergröße bestimmt die Datenmenge, die auf einmal übertragen werden kann, bevor eine Bestätigung vom Ziel eintrifft. Je größer das Fenster (angegeben in Byte), desto mehr Daten kann der Host übertragen. Nachdem ein Host eine dem Fenster entsprechende Anzahl von Bytes übertragen hat, muss er zunächst eine Bestätigung über den Empfang der Daten erhalten, bevor er weitere Nachrichten senden kann. Bei einer Fenstergröße von 1 muss beispielsweise jedes einzelne Segment bestätigt werden, bevor das nächste Segment gesendet werden kann. Für Bestätigungen verwendet TCP Nummern, die sich auf das Oktett beziehen, das als Nächstes erwartet wird. "Sliding" in Sliding Window bezieht sich auf die Tatsache, dass die Fenstergröße während der TCP-Sitzung dynamisch angepasst wird. Dies führt dazu, dass die Hosts die Bandbreite effizient nutzen. Der Fenstermechanismus ist ein Flusskontrollmechanismus, bei dem die Quellstation eine Bestätigung vom Ziel erhalten muss, nachdem eine bestimmte Datenmenge übertragen wurde. Bei einer Fenstergröße von 3 kann das Quellgerät beispielsweise drei Oktette an das Ziel senden. Danach muss es auf eine Bestätigung warten. Wenn das Ziel die drei Oktette erhält, sendet es eine Bestätigung an das Quellgerät, das nun drei weitere Oktette übertragen kann. Wenn das Ziel die drei Oktette aus einem bestimmten Grund, beispielsweise Pufferüberlauf, nicht erhält, sendet es keine Bestätigung. Da die Quelle keine Bestätigung erhält, weiß sie, dass die Oktette erneut gesendet werden müssen und es erforderlich ist, die Übertragungsrate zu verringern. Die Reihenfolge der Segmente wird in TCP mit einer Sendereferenz-Bestätigung festgelegt. Jedes Datagramm erhält vor der Übertragung eine Nummer. An der empfangenden Station fügt TCP die Segmente zu einer vollständigen Nachricht zusammen. Wenn eine Sequenznummer in der Reihe fehlt, wird das betreffende Segment erneut übertragen. Bei Segmenten, die nicht innerhalb eines gegebenen Zeitraums bestätigt werden, erfolgt eine erneute Übertragung. Zusammenfassung Kapitel XII: In diesem Kapitel haben Sie die Funktionen der Transportschicht und die verschiedenen Prozesse kennen gelernt, die ablaufen, wenn Datenpakete diese Schicht durchlaufen. Im Detail haben Sie folgendes gelernt: Die Transportschicht steuert den Datenfluss, um auf zuverlässige und präzise Weise die durchgehende Konnektivität zwischen Host-Anwendungen zu gewährleisten. Das TCP/IP-Protokoll der Schicht 4 (Transportschicht) beinhaltet zwei Protokolle: TCP und UDP TCP und UDP verwenden Port-Nummern (Socket-Nummern), um unterschiedliche, gleichzeitig das Netz durchlaufende Kommunikationsbeziehungen zu verwalten und deren Daten an die oberen Schichten zu übergeben. Bei der Drei-Schritte-Handshake-Sequenz wird eine logische Verbindung zwischen den Endpunkten eines Netzes synchronisiert.