1 |
Erweiterung der Endsystemverbindungen zu sicheren
Teilnehmerverbindungen
Ein Transportprotokoll soll die Dienste der Vermittlungsschicht
verwenden, um unabhängig von anderen Prozessen, die evtl. auf dem
gleichen Rechner laufen, eine Übermittlung zwischen zwei Prozessen auf
verschiedenen (oder auch dem gleichen) Rechner durchzuführen. Die
Anwendungsprozesse sehen durch die Transportschicht jeweils eine eigene
Verbindung zu einem anderen Anwendungsprozess. |
2 |
Multiplexen von Prozessverbindungen über die gleiche
Endsystemverbindung
Um die Vermittlungsschicht zu entlasten, sollten gegebenenfalls
Verbindung zwischen den gleichen Endsystemen über die gleiche
Endsystemverbindung geführt werden. Dieses wird als Multiplexen
bezeichnet. Beispielsweise ist bei der Verwendung öffentlicher
Datenverbindung wie ISDN solch eine Möglichkeit die einzig mögliche, um
mehrere Verbindungen gleichzeitig zu betreiben. |
3 |
Kontrollierte Datenversendung
Ein Sender kann dem Empfänger mitteilen, dass gewisse Daten zeitliche
Priorität über andere haben und innerhalb einer gewissen Zeit bearbeitet
werden müssen. (z.B. der URGENT-Mechanismus in TCP) Darüber hinaus
kontrolliert der Sender den Zeitpunkt, zu dem Daten abgesendet werden. Als
Kriterien können beispielsweise verwendet werden
| periodische zeitgesteuerte Übertragung, |
| Füllung von Puffern, |
| bestimmte Zeichen in der Datenfolge (<crlf>) |
(z.B. der PUSH-Mechanismus in TCP) |
4 |
Wahlweise Strom- oder Blockdatenübertragung
Eine stromorientierte Übertragung stellt dem Anwendungsprozess einen
unendlichen Datenstrom ohne innere Struktur zur Verfügung, in dem
beliebig viele Daten übertragen werden können. Häufig ist bei einer
Übertragung jedoch die Länge der Datenblöcke bekannt, so dass das
Transportprotokoll die Segmentierung der Daten effektiv unterstützen
könnte. Ein Segment der Länge unendlich würde dann einem
unstrukturierten Strom von Daten entsprechen. |
5 |
Die Übertragung großer Datenblöcke durch Kontrollpunkte sichern
Werden sehr große Datenblöcke übertragen, so sollten diese in
Abschnitte eingeteilt werden können, um beim Abbruch der Verbindung die
Übertragung an solchen Kontrollpunkten wieder aufzunehmen. |
6 |
Effizienter Verbindungsaufbau mit möglichst geringem Overhead
Beim Aufbau einer Verbindung sollten möglichst wenig Daten übertragen
werden, um den Overhead gering zu halten. Im Falle kurzer Verbindungen
sollte der Overhead sogar möglichst null sein. |
7 |
Effiziente, adaptierbare Sicherungsverfahren für unverfälschte
Datenübertragung
Werden Verbindungen durch ein ARQ-Verfahren gesichert, so sollte
Sicherungsinformation wie Quittungen (ACK) und Zurückweisungen (REJ)
möglichst mit gesendeten Daten übertragen werden. Außerdem sollten
Fenstergrößen optimal gewählt werden. |
8 |
Automatische Fehlererholung
Treten Fehler bei der Übertragung auf, so sollten diese automatisch
korrigiert werden, z.B. durch ein ARQ-Verfahren. Ist eine Fehlererholung
nicht möglich, so ist dieses dem Anwendungsprozess zu melden. |
9 |
Effiziente Realisierung spezieller Diensttypen wie
- Einzelne Nachricht gesichert an einen anderen Prozess senden (Alarm,
Notification).
- Einzelne Nachricht gesichert an mehrere andere Prozesse senden (Broadcast
bzw. Multicast).
- Transaktionsunterstützung (nur Anfrage mit Antwort, z.B.
Datenbanken oder HTTP).
Wenn für derartige Dienste jeweils Verbindung auf- und später
wieder abgebaut werden müssen, so ist dieses für einen Anwendungsprozess
sehr umständlich zu handhaben und bei komplexem Verbindungsaufbau
ebenfalls sehr ineffizient. Ein Anwendungsprozess sollte in solchen
Fällen die jeweiligen Daten der Transportschicht zur Verfügung stellen
und diese erledigt dann den Rest der Arbeit, indem sie
- Die Nachricht gesichert an den Empfänger sendet und nur bei einem
Fehler den Anwendungsprozess informiert.
- Die Nachricht an einen Router sendet, der sie gegebenenfalls
kopiert und an die verschiedenen Zielrechner weiterleitet. Dadurch
soll das Übertragen von Kopien so weit es geht vermieden werden.
- Wird eine Verbindung nach der Übertragung wieder abgebaut, so
kann dieses u.U. effizienter durchgeführt werden, wenn die
Transportschicht die Verbindung nur in dem unbedingt notwendigen
Umfang aufbaut bzw. eine verbindungslose Kommunikation durchführt.
|
10 |
Sicherung gegen Mithören
Die Transportschicht sollte wahlweise geeignete
Verschlüsselungsverfahren anbieten und effizient durchführen. |
11 |
Sicherung gegen absichtliche Verfälschung
Daten sollten nicht absichtlich verfälscht werden können, ohne dass der Empfänger dieses bemerkt.
Entsprechende Dienste sollten unterstützt bzw. von der Transportschicht
angeboten werden. |
12 |
Anpassbare Blocklängen im Vermittlungsdienst
Ist die Blocklänge zu groß, so kann die Fehlerwahrscheinlichkeit
unerträglich groß werden, ist sie zu klein, so ist der Overhead bei zu
kleinen Blocklängen zu
groß. Die Transportschicht sollte dieses automatisch anpassen, abhängig
von der Fehlerwahrscheinlichkeit der Übertragungswege bzw. der
Endsystemverbindung. |
13 |
Anpassbare Fehlererkennungswahrscheinlichkeit
Um die Daten gegen unbeabsichtigte Fehler zu schützen werden
Fehlererkennungsverfahren verwendet. Deren Sicherheit hängt vom Umfang
der Prüfinformation ab, die beim CRC-Verfahren meist zwischen 8 und 32
Bits beträgt. Abhängig von der gewünschten Sicherheit sollte der Anwendungsprozess
die Fehlererkennungswahrscheinlichkeit und auch das
Verfahren (Prüfsumme, CRC usw.) einstellen können.
Können Fehler für gewisse Dienste toleriert werden (z.B.
Sprachübertragung), so kann die Erkennung von Datenfehlern auch ganz
ausgeschaltet werden; je nach Anwendung müssten lediglich verlorene Blöcke erkannt und
entsprechend neu angefordert werden. |
14 |
Managebarkeit
Die Transportprotokolle sollten über SNMP und gegebenenfalls andere
Netzwerkmanagement-Protokolle administriert werden können. |
15 |
Mehrpunktverbindung
Daten sollten zwischen mehreren Teilnehmern gleichzeitig übermittelt
und an alle anderen Teilnehmer verschickt werden. |