Google Suche

 
Loading...
Loading...

OSI Schicht 4

PDFDruckenE-Mail

Schicht 4: Transport Layer -- Transportschicht

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:

  • 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.

Methoden der Transportschicht:

4.OSI-Schicht Grundlagen Methoden
Transport Layer  Auflösung der Adresse (Name resolution)
  • Service-Requestor initiated
  • Service-Provider initiated
Adressierung (Adressing)
  • Verbindungskennung
  • Transaktionskennung
Segmententwicklung (Segment Development)
  • Teilung und Kombination (Divisoin and Combination)
Verbindungsservices
  • Statisch
  • Dynamisch

 

 Auflösung von Adresse/Name: 
Viele Netzwerkprotokolle stellen dem Benutzer einfache normal sprachliche Namen für komplexe oder schwer zu merkende alphanumerische Adressen zur Verfügung. Die Auflösung von Adresse und Name ist die Funktion, die den Namen und eine alphanumerische Adresse miteinander verknüpft oder gegenseitig zuweist. Die Funktion kann von jeder Einheit innerhalb des Netzwerkes oder von speziellen Serviceanbietern ausgeführt werden.
Service Requestor initiated (SRI):
Bei der Methode SRI sendet jeder Requestor ein besonderes Paket. Dieses Paket fordert Einheiten mit einem bestimmten Namen, einer bestimmten Adresse oder einem bestimmten Service-Typ auf, mit ihren Namen oder ihrer Adresse falls zutreffend zu antworten.

 

Service Provider initiated (SPI):
Bei der Methode SPI sendet jeder Serviceanbieter routinemäßig ein Rundspruchpaket um seine Verfügbarkeit anzuzeigen.
Diese Rundspruchpakete enthalten Namens- und Adressinformationen die von allen anderen Netzwerkeinheiten gesammelt werden können.

 

Adressierung :
In der Netzwerkschicht haben wir gelernt, dass die Serviceadressen die besonderen Softwareprozesse kennzeichnen, die auf den Netzwerkgeräten laufen. Zusätzlich zu diesen Serviceadressen können Serviceanbieter die verschiedenen Kommunikationen verfolgen die sie mit den Requestoren ausführen. 
Die zwei Adressierungsmethoden zur Unterscheidung von Kommunikationen sind: 
  • Verbindungskennung 
  • Transaktionskennung
Adressierungsmethoden:
Verbindungskennung  (Connection ID => CID)
Eine Verbindungskennung (auch Verbindungs-ID, Port oder Socket genannt) kennzeichnet jede Kommunikation. Durch Benutzung der Verbindungskennung kann ein Service-Anbieter, bzw. ein Druck-Server, nacheinander mit mehr als einem Klient kommunizieren. Der Service-Anbieter bezieht sich bei jeder Kommunikation auf eine Nummer und verläßt sich darauf, daß die Transportschicht die Adressen der darunterliegenden Schichten koordiniert. Die Kennung ist mit einer bestimmten Kommunikation verknüpft. 
Transaktionskennung  (Transaction ID => TID)
Transaktionskennung sind den Verbindungs-Kennungen ähnlich, beziehen sich jedoch auf eine Einheit, die kleiner als eine Kommunikation ist. Eine Transaktion besteht aus einer Anforderung und einer Antwort. Service-Anbieter und Requester protokollieren das Absenden und die Ankunft jeder Transaktion, aber nicht die gesamte Kommunikation.

Segmententwicklung:
Teilung und Kombination:
Einige der von den Netzwerkeinheiten Nachrichten sind zu groß und können von der Netzwerkschicht und den darunter liegenden Schichten nicht verarbeitet werden. Die Transportschicht veranlasst die „Teilung“ dieser Nachrichten. Außerdem können einige Nachrichten höherer Schichten kleiner als die zulässige Segmentgröße sein.
Die Transportschicht kann mehrere kleine Nachrichten, die für das selbe Ziel vorgesehen sind, zu einem „kombinierten“ Segment zusammenfassen um den Aufwand im Netzwerk zu reduzieren
Verbindungsservices:
Abhängig von den Zielen des Software-Ingenieurs und den von den anderen Schichten bereitgestellten Verbindungsservices kann die Transportschicht zur Herstellung von zuverlässigen Ende – zu - Ende Verbindungen erforderlich sein. Manchmal werden Verbindungsservices in der Transportschicht zusätzlich zu einer verbindungsorientierten Netzwerkschicht benutzt. Die Transportschicht löst Probleme, wie Fehler durch den Serviceanbieter oder Requestor beim Ausfall des Netzwerkes. 
  • Unbestätigte Verbindungslose Services senden und empfangen Rahmen ohne Flußsteuerung, Fehlererkennung und Paketabfolgesteuerung.· 
  • Verbindungsorientierte Services bieten Flusssteuerung, Fehlererkennung und Paketabfolgesteuerung über Bestätigungen. 
  • Bestätigte verbindungslose Services benutzen Bestätigungen um Flußsteuerung und Fehlererkennung zwischen Punkt – zu – Punkt – Übertragungen zu liefern.
Segmentsequenzierung:
Nachrichten werden häufig segmentiert und können am Ziel in falscher Reihenfolge eintreffen. Die Transportschicht benutzt Segmentsynchronisierung um die korrekte Reihenfolge der Segmente wieder herzustellen. Natürlich erfordert sie Segmentsynchronisierung das in jedem Segment eine Segmentnummer zugewiesen wird, bevor es an die niedrigeren Schichten weitergeleitet wird. Wenn alle Segmente einer bestimmten Nachricht am Ziel eingetroffen sind, wird die Nachricht wieder hergestellt, indem die korrekte Reihenfolge der Segmente wieder hergestellt wird.
Fehlersteuerung:
Daten können auf ihrem Weg durch das Netzwerk verloren gehen oder verzögert werden (dies passiert häufig in Datagramm- Netzwerken). Fehler treten dann auf, wenn ein Datensegment verloren geht oder ein Datensegment mit der selben Abfolgenummer wie ein völlig anderes Segment eintrifft. Um diese Fehler zu überwachen oder zu verhindern kann die Transportschicht eine der folgenden Strategien einsetzten:
  • Ausschließliche Benutzung von virtuellen Leitungen, wobei jeder Sitzung nur eine virtuelle Leitung zugestanden wird.
  • Vergabe eindeutiger Abfolgenummern
  • Benutzung von Zeitüberschreitungen um Pakete zu verwerfen die im Netzwerk zu lange herumgereicht wurden. 

Zusätzlich soll die Transportschicht vor Fehlern schützen, die aus fehlerhaften Segmenten resultieren. Um sicher zu stellen, das Daten- und Adressinformationen beim Transport im Netzwerk nicht fehlerhaft werden, können Prüfsummen hinzugefügt werden. Die Fehlersteuerungsmethoden der Transportschicht werden zutreffend „Ende-zu-Ende- Fehlersteuerung“ genannt.

Ende – zu – Ende – Flusssteuerung:
Die Flusssteuerung auf Transportebene erfolgt Ende-zu-Ende. Das bedeutet, daß im Verbundnetzwerk nur Sender und Empfänger an der Wiederherstellung verlorener oder Verzögerter Pakete beteiligt sind. Die Ende-Zu-Ende-Flusssteuerung erfolgt unter Verwendung von Bestätigungen und denselben Methoden, wie in der OSI- Datensicherungsschicht beschrieben. Während die Datensicherungsschicht für den Datenverkehr zwischen Geräten, und die Netzwerkschicht für den Datenverkehr zwischen zwischengeschalteten Knoten zuständig ist, ist die Transportschicht für den Datenverkehr zwischen zwei Kommunikationen (Verbindungen) auf Endknoten zuständig.
Zusätzlich zu Bestätigungen (ACK) und negativen Bestätigungen (NACK) können Implementationen der Transportschicht „Go-Back-In“ oder „Selective Repeat“-Bestätigungen benutzen. Die „Go-Back-In“ und die „Selective Repeat“ Bestätigungen werden dann benutz, wenn die Endknotenpuffer übergelaufen sind.
Wie der Name schon vermuten lässt fordern Go-Back-In – Bestätigungen den Sender auf, den Teil der Nachricht neu zu senden, der mit der Abfolgenummer mit dem letzten korrekt empfangenen Paket beginnt.
Selective Repeat stellt fest, dass eine Reihe von Paketen korrekt empfangen wurde, wobei nur ein oder zwei eingebettete Pakete verloren gingen. Bei dieser Strategie wird dem Sender mitgeteilt, er soll nur die fehlenden Pakete erneut senden.

Funktionen innerhalb der Transportschicht:

  • Adressierung
  • Herstellen einer Verbindung
  • Auflösen einer Verbindung
Protokolle für die Transportschicht:
  • OSI Service Definition:
    • X.214 Transport service definition, entspricht ISO 8072
  • OSI Protocol Specification:
    • X.224
    • ISO 8073 Connection oriented transport protocol specification
  • LAN:
    • ISO 8072: Transport service definition
    • ISO 8072/1: Connectionless mode transmission
    • ISO 8073: Transport protocol specification
    • ISO 8073/1: Network connection management subprotocol
    • ISO 8073/2: Operation of class 4 over connectionles network service
  • Packet-switched data network:
    • X.214: OSI transport service definition note
  • Public-switched telephone network:
    • T.70: Network independent basic transport services for the telematic services
  • ISDN:
    • --
  • Internet: (Transport Layer)
    • TCP (Transmission Control Protocol) (RFC 793; Standard.
    • UDP (User Datagram Protocol) (RFC 768; Standard.
Die Transportschicht im Internet

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

  • TCP (Transmission Control Protocol) (RFC 793; Standard)
  • UDP (User Datagram Protocol) (RFC 768; Standard)

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:

  • feste Port Number: Port Number des Servers: Identifiziert einen Service. Für wichtige Services gibt es Standard Port Numbers

    Die wichtigsten Standard Port Numbers im Internet sind (Standard Port Numbers müssen in der URL nicht angegeben werden):

    Port Number Service
    21 ftp
    23 telnet
    25 smtp
    70 gopher
    79 finger
    80 http
    88 kerberos
    110 POP-3
    118 SQL (Structured Query Language) Services
    119 nntp (USENET)
    123 ntp (Network Time Protocol)
    194 irc
    210 z39.50
    220 imap 3

     

  • Dynamically Allocated Port Number (dynamisch zugeteilte Port Number): Port Number des Client. Damit jede Verbindung eindeutig identifizierbar ist, ordnet der Client jeder Verbindung eine jeweils einmalige Port Number zu. Diese Port Number identifiziert den Client der betreffenden Verbindung eindeutig

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.

TCP -- Transmission Control Protocol:

â–º siehe auch im Kapitel Netzwerk Protokolle: TCP

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.

UDP -- User Datagram Protocol:

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

  • Hinzufügung einer Port Number zur IP-Adresse, damit Identifikation einer Anwendung
  • optional: Bildung einer Checksum zur Fehlerkontrolle. Diese Option ist oft zur Leistungsverbesserung abgeschaltet

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:

  • RTP/RTCP
  • MBONE
  • NTP -- Network Time Protocol (zur Synchronisierung): RFC 1305. 
Datenstrukturen bei TCP bzw. UDP:
  TCP UDP
Application layer stream message
Transport layer segment packet
Internet layer datagram datagram
Network access layer frame frame
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).

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

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."

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.

Voice and Video over IP, Internettelefonie:

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

  • Verzögerung (latency) zwischen dem Zeitpunkt, wenn die Worte gesprochen werden und dem Zeitpunkt, wenn sie vom Empfänger gehört werden. Große Verzögerungen wirken sehr störend
  • Verzerrungen (distortion), wenn Telefon-Datenpakete verloren gehen und die Internet-Telefon-Software die Lücken ergänzt. Die Lösung, die bei Datenpaketen angewendet wird, nämlich nochmaliges Senden der verlorengegangenen Datenpakete nützt ja bei Echtzeitanwendungen wie Telefon nichts.

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

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.

Transport Layer Security:
  • RFC 2246: TLS Protocol 1.0.

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

  • TLS Record Protokoll: hat zwei Funktionen:
    • die Verbindung ist vertraulich (private): für jede Verbindung werden Schlüssel nach bewährten Verschlüsselungsverfahren erzeugt
    • die Verbindung ist zuverlässig: Integritätscheck mit Message Authentication Code (MAC)
  • TLS Handshake Protokoll: erlaubt die Authentifizierung bevor Daten übertragen bzw. empfangen werden


Wer ist online

Wir haben 80 Gäste online

Besucher

Heute571
Gestern936
Woche3021
Monat17141
Insgesamt496234
   
| Donnerstag, 24. Mai 2012 || Compu-Seite Compu-Seite |