Computervermittelte Kommunikation

cmclogo.gif

Kapitel 10: OSI-Schicht 4: Transport Layer -- Transportschicht


von Margarete Payer

mailto: payer@hbi-stuttgart.de


Zitierweise / cite as:

Payer, Margarete <1942 - >: Computervermittelte Kommunikation. -- Kapitel 10: OSI-Schicht 4: Transport Layer -- Transportschicht - Vermittlungsschicht . -- Fassung vom 11. Juni 1999. -- URL: http://www.payer.de/cmc/cmcs10.htm . -- [Stichwort].

Erstmals publiziert: 1995

Überarbeitungen: 23. Juni 1997; 11.6.1999 [grundlegende Neubearbeitung und Erweiterung]

Anlass: Lehrveranstaltungen an der HBI Stuttgart

©opyright: Dieser Text steht der Allgemeinheit zur Verfügung. Eine Verwertung in Publikationen, die über übliche Zitate hinausgeht, bedarf der ausdrücklichen Genehmigung der Verfasserin.


Zur Inhaltsübersicht von Margarete Payer: Computervermittelte Kommunikation.


10.0. Übersicht



10.1. Merkmale der Transportschicht


Die Transportschicht wird auch als Ende-zu-Ende-Kontrolle (End-to-End-control) bezeichnet. Die Normierung für diese Schicht ist noch nicht weit fortgeschritten. Im OSI-Modell ist die Transportschicht die unterste Schicht, bei der zwischen den miteinander verbundenen Stationen eine Verbindung besteht. Bei den darrunterliegenden Schichten besteht die Verbindung immer nur zwischen benachbarten Netzknoten.

Ein Grund, warum diese Schicht sinnvoll sein könnte, ist, dass die Vermittlungsschicht (Schicht 3) sich zum Teil noch unter der Oberhoheit der WAN-Anbieter (z.B. PTT) befindet. Deshalb müsse der Benutzer die Möglichkeit haben, seine eigenen Verbindungssicherungen darüber legen zu können.

Die allgemeine Aufgabe der Transportschicht ist Aufbau, Verwaltung und Abbau logischer Verbindungen. Durch die logischen Verbindungen entstehen zwischen kooperierenden Programmen, die auf verschiedenen Computern laufen, virtuelle Verbindungen, d.h. die beiden Computer verhalten sich so, als ob sie durch eine Leitung miteinander verbunden wären, obwohl tatsächlich keine solche direkte Verbindung zwischen ihnen besteht.

Die Transportschicht sorgt für den Datentransport und entlastet die höheren Schichten davon, dafür zu sorgen, wie die Daten zuverlässig und kostengünstig übertragen werden können. Die Transportschicht soll die Nutzung der verfügbaren Netzwerkressourcen so optimieren, dass die Kommunikation am kostengünstigsten ist. Die Transportschicht kümmert sich aber nicht um den Datenübertragungsweg: dies ist Aufgabe der tieferen Schichten.


Aufgaben der Transportschicht:

Die Transportschicht identifiziert jede Sitzung durch ihre Transport-Adresse.


Funktionen innerhalb der Transportschicht:


10.2. Protokolle für die Transportschicht



10.3. Die Transportschicht im Internet


Auf der Transportschicht stehen im Internet alternativ zwei Protokolle zur Verfügung:

Die Protokolle der Transportschicht im Internet übermitteln die Datenpakete an die zugehörige Anwendung. Die Anwendung wird aufgrund der sog. Port Number identifiziert (dieselbe Anwendung hat in TCP und UDP unter Umständen eine unterschiedliche Port Number!)

Es gibt zwei Arten von Port Numbers:

Die Verbindung einer IP-Adresse mit einer Port Number nennt man Socket. Ein Socket identifiziert einen Anwendungsprozeß eindeutig. Der Anwender erhält vom Client für die Dauer der Anwendung eine einmalige Port Number (dynamically allocated port number) zugeordnet. So definiert ein Paar von Sockets eine Verbindung innerhalb connection-oriented Protocols wie TCP eindeutig:

  1. IP-Adresse des Servers <+ Protocol Number> + feste Portnummer
  2. IP-Adresse des Client + zugeteilte Portnummer

Also:

  Beispiel
IP-Adresse des Servers identifiziert Computer (genauer: Schnittstelle) Internet-Adresse 192.178.16.2
Protocol Number identifiziert Transportprotokoll Protocol Number 6 = TCP
Port Number des Servers (in Verbindung mit spezifischem Transportprotokoll) spezifiziert einen Service auf diesem Computer. Die Kombination von Transportprotokoll und Port Number identifiziert eine Anwendung, an die ein Datenpaket übermittelt werden soll, eindeutig Protocol Number 6  + Port Number 23 = TELNET
IP-Adresse des Client + dynamisch zugeteilte Port Number identifiziert Client eindeutig Client mit IP-Adresse 128.66.12.2 teilt Verbindung zu Server mit IP-Adresse 192.178.16.2 dynamische Port Number 3044 zu
Socket des Servers (IP-Adresse des Servers <+ Protocol Number> + feste Portnummer des Service) plus Socket des Client (IP-Adresse des Client + dynamisch zugeteilte Portnummer) identifizieren Verbindung einmalig im ganzen Internet
  • Serversocket: 192.178.16.2 + Protocol Number 6  + Port Number 23
  • Clientsocket: 128.66.12.2 + Port 3044.

= TELNET bei 192.178.16.2 für 128.66.12.2 Port 3044.

In UNIX sind Portadressen kleiner als 1024 privilegiert, d.h. nur der Superuser kann Server einrichten, die auf solche Port Numbers reagieren. Dies dient als Sicherheitsmaßnahme, damit z.B. nicht ein Benutzer einen Server für Port 25 einrichten kann, und so die e-mail abfangen kann.

Das System der Port Numbers ermöglicht es, dass auf einem einzigen Computer gleichzeitig zahllose Server laufen.

Damit nicht all diese Server ständig aktiviert sein müssen und so wertvollen Speicherplatz verschwenden, werden viele Server bei Bedarf durch inetd, den Internet Superserver gestartet. inetd hört alle relevanten Ports ab, ob an einem Daten von einem Client eingehen. Wenn an einem Port Daten eingehen, startet inetd den entsprechenden Server (der Server kann auch ein normales UNIX-Programm sein). Wenn z.B. am Telnet Port Daten eingehen, startet inetd, den Telnet Server telnetd, dieser übernimmt den Verkehr mit dem Client und schaltet sich wieder ab, wenn die Sitzung beendet ist.

inetd wird ineffizient oder sogar hinderlich für Anwendungen, die sehr häufig in Anspruch genommen werden. In einem solchen Fall lässt man den Server standalone als Daemon laufen. Ein Server, der als Daemon läuft, beobachtet den ihm zugeordneten Port und macht bei jeder einkommenden Anforderung eine Kopie von sich selbst, die die betreffende Anforderung bearbeitet.


10.3.1. 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 ist ein connection-oriented service. 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.


Weiterführende Ressourcen zu TCP/IP:

Yahoo Categories:


10.3.2. UDP -- User Datagram Protocol


UDP ist ein sehr einfaches, wenig leistungsfähiges Protokoll. Es erfüllt folgende Services:

UDP ist also ein connectionless service. Es wird vor allem verwendet für kurze Anfragen und Antworten, 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.

UDP wird auch verwendet von:


10.3.3. Datenstrukturen bei TCP bzw. UDP


  TCP UDP
Application layer stream message
Transport layer segment packet
Internet layer datagram datagram
Network access layer frame frame

10.3.4. Socket-Library


Sockets in diesem Sinne sind Programmschnittstellen zum Transportlayer des Internet. Besonders wichtig sind die MS Windows Sockets, die Verbindungen zwischen Rechnern mit MS Windows und IP-Rechnern ermöglichen.

Der Industrie-Standard Windows Sockets (WINSOCK) wurde 1992 veröffentlicht und kostenlos freigegeben. WINSOCK ist ein Standard-Interface (API -- Application Programming Interface). WINSOCK ermöglicht, dass unterschiedlichste TCP/IP-Software unter MS Windows oder Windows NT läuft. WINSOCK erlaubt, dass gleichzeitig mehrere Anwendungen mit dem Internet verbunden sein können (also z.B. gleichzeitig ftp und http).


Weiterführende Ressourcen:

Yahoo Categories:


10.4. Oberhalb von TCP/UDP


Vor allem Probleme der Echtzeitübertragung, des Multicasting und der Sicherheit haben dazu geführt, dass oberhalb von TCP/UDP innerhalb der Transportschicht gewissermaßen ein neuer Sublayer entsteht. Die wichtigsten Protokolle, die dafür entwickelt wurden bzw. in Entwicklung sind, gibt folgende Schichtdarstellung wieder:

Transport Layer -- Transportschicht TLS -- Transport Layer Security RTP -- Real-time Protocol RTCP -- Real-time Control Protocol MBONE -- Multicast Backbone

TCP

UDP

Network Layer -- Vermittlungsschicht: IP -- Internet Protocol
Data Link Layer -- Sicherungsschicht: PPP, SLIP
Physical Layer -- Bitübertragungsschicht

Diese und andere Protokolle sollen sowohl traditionelle Datenübertragung als auch Telefon, Video, Radio (Broadcasting) sowie andere Echtzeit-Übertragungen über Internet ermöglichen


10.4.1. ITU H.323


ITU H.323 ("Packet-based multimedia communication systems") ist der internationale Standard für Echtzeit-Multimedia-Übertragung über Internet und Internet-ähnliche Netzwerke. Internet Protokolle für Quality of Service sollten mit diesem Standard kompatibel sein.

"This Recommendation describes terminals and other entities that provide multimedia communications services over Packet Based Networks (PBN) which may not provide a guaranteed Quality of Service. H.323 entities may provide real-time audio, video and/or data communications. Support for audio is mandatory, while data and video are optional, but if supported, the ability to use a specified common mode of operation is required, so that all terminals supporting that media type can interwork."


10.4.2. RTP -- Real-Time Transport Protocol und RTCP -- Real-Time Control Protocol


RTP (mit dem Bestandteil RTCP) dient dazu, verzögerungssensitive Echtzeit-Daten (wie live Video und Audio) zu übertragen. RTP setzt auf UDP (User Datagram Protocol) auf und nutzt UDP als Transportmechanismus.


Weiterführende Ressourcen:

Organisationen:

FAQ:


10.4.3. Voice and Video over IP, Internettelefonie


Telefonverkehr (und Echtzeit-Video, z.B. Videokonferenzen) über das Internet hat vor allem zwei Probleme:

Um beide Probleme in den Griff zu bekommen entwickelt man Protokolle für Quality of Service (QoS), z.B. das Resource Reservation Protocol (RSVP) [Näheres dazu: IETF Resource Reservation Setup Protocol (rsvp) Charter. -- URL:  http://www.ietf.org/html.charters/rsvp-charter.html. -- Zugriff am 11.6.1999]

Probleme der Bandbreite werden inzwischen durch immer bessere Kompressionsverfahren gelöst.


Weiterführende Ressourcen zu Voice und Video over Internet:

Yahoo Categories:

Organisationen:

Magazine:


10.4.4. Multicast over IP: MBONE


Im Internet gibt es verschiedene Mechanismen für Multicasting (Eins-zu-Viele-Kommunikation). In unserem Zusammenhang am wichtigsten ist MBONE (Multicast Backbone). MBONE dient dem Multicasting und Broadcasting von Mitteilungen und Multimedia über das Internet. Ausgangspunkt war Echtzeit-Internet-Radio. MBONE ist ein Virtuelles Netzwerk oberhalb des Internets: viele Internet-Router unterstützen MBONE nicht.


Weiterführende Ressourcen zu MBONE:

Yahoo Categories:


10.4.5. TLS -- Transport Layer Security


Ziel von TLS ist es, Vertraulichkeit (privacy) und Datenintegrität zwischen zwei Anwendungen herzustellen. TLS besteht aus zwei Schichten:


Weiterführende Ressourcen:

Organisationen:


10.5. Weiterführende Ressourcen


Ressourcen in Printform:

Black, Uyless D.: Advanced Internet technologies. -- Upper Saddle River, NJ : Prentice Hall, ©1999. -- 346 S. : Ill. -- ISBN 0137595158. -- [Gibt den aktuellen Stand wieder; empfehlenswert]. -- {Wenn Sie HIER klicken, können Sie dieses Buch bei amazon.de bestellen}

Sheldon, Tom: Encyclopedia of networking. -- Berkeley [u.a.] : McGraw-Hill, ©1998. -- 1164 S. : Ill. + 1 CD-ROM. -- ISBN 0078823331. -- [Unentbehrlich!]. -- {Wenn Sie HIER klicken, können Sie dieses Buch bei amazon.de bestellen}

Tischer, Michael: Internet intern : Technik und Programmierung / [Michael] Tischer, [Bruno] Jennrich. -- Düsseldorf : Data Becker, ©1997. -- 1301 S. : Ill. -- ISBN 3-8158-1160-0. -- [Grundlegend, umfassend, aber sehr technisch]. --  {Wenn Sie HIER klicken, können Sie dieses Buch bei amazon.de bestellen}


Zum nächsten Kapitel:
Kapitel 11: OSI-Schicht 5: Session Layer -- Kommunikationssteuerungsschicht