Zum Inhalt springen

„Datenflusssteuerung“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(109 dazwischenliegende Versionen von 72 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Mit '''Datenflusskontrolle''' (engl. ''data flow control'') oder '''Datenflusssteuerung''' werden unterschiedliche Verfahren bezeichnet, mit denen die Datenübertragung von Endgeräten an einem Datennetz, die nicht [[Gleichlaufverfahren|synchron]] arbeiten, so gesteuert wird, dass eine möglichst kontinuierliche Datenübermittlung ohne Verluste erfolgen kann.<br>
Mit '''Datenflusssteuerung''' (englisch ''data flow control'') werden unterschiedliche Verfahren bezeichnet, mit denen die [[Datenübertragung]] von Endgeräten an einem [[Kommunikationssystem#Datennetze|Datennetz]], die nicht [[Gleichlaufverfahren|synchron]] arbeiten, so gesteuert wird, dass eine möglichst kontinuierliche Datenübermittlung ohne Verluste erfolgen kann.

Wenn ein schneller Sender mit einem langsamen Empfänger zusammenarbeitet, muss die Datenübertragung zeitweise unterbrochen werden. Der Empfänger würde sonst mit Daten überlastet werden, die er nicht verarbeiten könnte. Die Steuerung dieser Unterbrechungen ist die Aufgabe der Datenflusssteuerung. <br>
Wenn ein schneller [[Absender|Sender]] mit einem langsamen [[Empfänger (Information)|Empfänger]] zusammenarbeitet, muss die Datenübertragung zeitweise unterbrochen werden. Der Empfänger würde sonst mit Daten überlastet werden, die er nicht verarbeiten könnte. Die Steuerung dieser Unterbrechungen ist die Aufgabe der Datenflusssteuerung.

Um den Datenfluss zu steuern, gibt es verschiedene Verfahren.
Um den Datenfluss zu steuern, gibt es verschiedene Verfahren.
* Flusssteuerung auf Protokollebene.
* Hardwareverfahren übertragen Steuerinformationen über Leitungen, die zusätzliche zu den Datenleitungen auf den [[Steckverbinder]] geführt sind
* Hardwareverfahren übertragen Steuerinformationen über Leitungen, die zusätzlich zu den Datenleitungen auf den [[Steckverbinder]] geführt sind.
*Softwareverfahren fügen Steuerinformationen in den Datenstrom ein, sodass keine zusätzliche Leitungen gebraucht werden.
* Softwareverfahren fügen Steuerinformationen in den Datenstrom ein, so dass keine zusätzlichen Leitungen gebraucht werden.
Gewöhnlich arbeitet bei einer Datenübertragung nicht nur ein Verfahren zur Datenflusssteuerung, sondern mehrere gleichzeitig. Wenn beispielsweise ein PC einen Internetzugang über ein [[Modem]] hat, arbeitet an der Schnittstelle vom Modem zum PC ein Hardware-Verfahren (Handshaking über Steuerleitungen), mit dem die Übertragungsgeschwindigkeit zwischen ihnen geregelt wird. Die TCP/IP-Verbindung ihrerseits hat weitere Mechanismen zur Geschwindigkeitsadaption.<br>
Gewöhnlich arbeitet bei einer Datenübertragung nicht nur ein Verfahren zur Datenflusssteuerung, sondern mehrere gleichzeitig. Wenn beispielsweise ein PC einen Internetzugang über ein [[Modem]] hat, arbeitet an der Schnittstelle vom Modem zum PC ein Hardware-Verfahren (Handshaking über Steuerleitungen), mit dem die Übertragungsgeschwindigkeit zwischen ihnen geregelt wird. Die Protokolle der [[Internetprotokollfamilie]] auf höherer Ebene haben jedoch weitere Mechanismen zur Geschwindigkeitsadaption.
Dass meistens mehrere Verfahren gleichzeitig arbeiten liegt daran, dass nicht nur die Datenübertragungsrate zwischen Sender und Empfänger an einem Datennetz geregelt werden muss, sondern in jedem Abschnitt auf dem gesamten Übertragungsweg im Netz. Auch das Datennetz und seine Komponenten arbeiten mit einer bestimmten Geschwindigkeit, die von der Geschwindigkeit von Sender und Empfänger abweichen kann.<br>

Dass meistens mehrere Verfahren gleichzeitig arbeiten, liegt daran, dass nicht nur die [[Datenübertragungsrate]] zwischen Sender und Empfänger an einem Datennetz geregelt werden muss, sondern in jedem Abschnitt auf dem gesamten Übertragungsweg im Netz. Auch das Datennetz und seine Komponenten arbeiten mit einer bestimmten Geschwindigkeit, die von der Geschwindigkeit von Sender und Empfänger abweichen kann.

Die Hardwareverfahren für die Datenflusssteuerung sind im [[OSI-Modell]] der Bitübertragungsschicht zuzuordnen. Softwareverfahren gibt es außerdem auch auf den nächsthöheren Schichten.
Die Hardwareverfahren für die Datenflusssteuerung sind im [[OSI-Modell]] der Bitübertragungsschicht zuzuordnen. Softwareverfahren gibt es außerdem auch auf den nächsthöheren Schichten.
___________________________________________________________________________________
Ziel der Flusskontrolle: Empfangspuffer darf nicht überlaufen.
___________________________________________________________________________________
== Datenflusskontrolle auf Protokollebene ==


== Datenflusssteuerung auf Protokollebene ==
Diese Flusskontrolle ist eine Funktion in einem [[Netzwerkprotokoll]]. Sie ist gewöhnlich in einem [[Protokollstack]] zwischen zwei Schichten angesiedelt ([[OSI-Modell]]), oder aber zwischen zwei gleichberechtigten Schichten (Peer-Entities) auf Empfänger- und Senderseite.
Diese Flusssteuerung ist eine Funktion in einem [[Netzwerkprotokoll]]. Sie ist gewöhnlich in einem [[Protokollstapel]] zwischen zwei Schichten angesiedelt ([[OSI-Modell]]), oder aber zwischen zwei gleichberechtigten Schichten (Peer-Entities) auf Empfänger- und Senderseite, wie z.&nbsp;B. bei einem [[ARQ-Protokoll]].


Diese Algorithmen benutzen eine Art von Feedback: der Empfänger signalisiert dem Sender mit einer Quittung, ob der weiter senden soll. Bei [[Transmission Control Protocol|TCP]] kommt dabei ein Sliding-Window-Protokoll zum Einsatz. "Window" bedeutet hier, dass immer ein ganzes "Fenster" mit empfangenen Daten quittiert wird, "sliding" bedeutet, dass die Fenstergröße mittels des Steuerungsdialoges nach oben oder unten geregelt werden kann. Der Empfänger gibt immer mit an, wieviele Bytes er bereit ist zu empfangen. Somit kann eine TCP-Verbindung automatisch und dynamisch die Flusskontrolle regeln.
Diese Algorithmen benutzen eine Art von Feedback: der Empfänger signalisiert dem Sender mit einer Quittung, ob dieser weiter senden soll. Bei [[Transmission Control Protocol|TCP]] kommt dabei ein [[Sliding Window|Sliding-Window-Protokoll]] zum Einsatz. „Window“ bedeutet hier, dass immer ein ganzes „Fenster“ mit empfangenen Daten quittiert wird, „sliding“ bedeutet, dass die Fenstergröße mittels des Steuerungsdialoges nach oben oder unten geregelt werden kann. Der Empfänger gibt immer mit an, wie viele Bytes er bereit ist zu empfangen. Somit kann eine TCP-Verbindung automatisch und dynamisch den Datenfluss regeln.


Andere Verfahren versenden immer nur ein Paket und verschicken mit der Bestätigung eine Sendeberechtigung (Stop-and-Wait-Protokolle). [[High-Level Data Link Control|HDLC]] verwendet die Blocktypen RR (Receive Ready) und RNR (Receive Not Ready) zur Flusskontrolle.
Andere Verfahren versenden immer nur ein Paket und versenden mit der Bestätigung eine Sendeberechtigung (Stop-and-Wait-Protokolle). [[High-Level Data Link Control|HDLC]] verwendet die Blocktypen RR (Receive Ready) und RNR (Receive Not Ready) zur Flusssteuerung.


== Datenflusskontrolle von Peripheriegeräten ==
== Datenflusssteuerung von Peripheriegeräten ==
Als Peripherie werden hier Drucker, Modems, Terminals oder ähnliche Geräte bezeichnet.
Als Peripherie werden hier Drucker, Modems, Terminals oder ähnliche Geräte bezeichnet.


=== Hardware-Flusskontrolle, Hardware-Handshake oder Hardware-Protokoll ===
=== Hardware-Flusssteuerung, Hardware-Handshake oder Hardware-Protokoll ===
Eine Hardware-Flusssteuerung wird durch entsprechende Signalpegel auf zugehörigen Schnittstellenleitungen realisiert.

Eine Hardware-Flusskontrolle wird durch Schnittstellenleitungen gesteuert.


==== Parallele Datenübertragung (Druckertechnik) ====
==== Parallele Datenübertragung (Druckertechnik) ====
Die oft an Druckern verwendete [[Centronics-Schnittstelle]] benutzt drei Leitungen zur Flusssteuerung:
* {{Overline|Strobe}} – zeigt dem Empfänger an, dass gültige Daten anliegen ([[Logikpegel#Positive und negative Logik|positive Logik]], wie {{Overline|ACK}})
* {{Overline|ACK}} – Acknowledge, Bestätigung der Datenübernahme durch den Drucker
* Busy – zeigt die Bereitschaft des Druckers zur Datenübernahme an ([[Logikpegel#Positive und negative Logik|negative Logik]])


Ein Drucker ist viel langsamer als die steuernde [[Endeinrichtung]]. Durch Deaktivierung der Schnittstellenleitung ''Busy'' dürfen keine weiteren Daten gesendet werden, die Datenübertragung stoppt kurzfristig.
Die oft an Druckern verwendete [[Centronics-Schnittstelle]] benutzt drei Leitungen zur Flusskontrolle:
* Strobe – zeigt dem Empfänger an, dass gültige Daten anliegen
* Ack – Acknowledge, Bestätigung der Datenübernahme durch den Drucker
* Busy – zeigt die Bereitschaft des Druckers zur Datenübernahme an

Ein Drucker ist viel langsamer als die steuernde Endeinrichtung. Durch Deaktivierung der Schnittstellenleitung ''Busy'' dürfen keine weiteren Daten gesendet werden, die Datenübertragung stoppt kurzfristig.


==== Serielle Datenübertragung ====
==== Serielle Datenübertragung ====

===== Allgemein =====
===== Allgemein =====
Die zur Datenübertragung notwendigen Schnittstellenleitungen sind in der [[ITU-T]]-Empfehlung [[V.24]]<ref>[https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-V.24-200002-I!!PDF-E&type=items List of definitions for interchange circuits between data terminal equipment (DTE) and data circuit-terminating equipment (DCE)]</ref>, der [[DIN 66020]] oder [[EIA-232|RS232]] beschrieben. Sie beziehen sich auf eine lokale Endeinrichtung (z.&nbsp;B. PC), die über ein lokales Übertragungsgerät (z.&nbsp;B. Modem) mit einem entfernten Übertragungsgerät (z.&nbsp;B. Modem beim Provider) und der entfernten Endeinrichtung (z.&nbsp;B. Internet-Server) kommuniziert. Die Leitungen werden je nach Norm unterschiedlich bezeichnet. Hier werden die umgangssprachlichen Bezeichnungen genutzt.


Der normale Ablauf einer Datenübertragung ohne Flusssteuerung verläuft folgenderweise:
Die zur Datenübertragung notwendigen Schnittstellenleitungen sind in der [[ITU-T]]-Empfehlung [[V.24]], der [[DIN 66020]] oder [[EIA-232|RS232]] beschrieben. Die Leitungen werden je nach Norm unterschiedlich bezeichnet. Hier werden die umgangssprachlichen Bezeichnungen genutzt.


* Die ''lokale'' Endeinrichtung aktiviert die Schnittstelle DTR (Data terminal ready = Datenendgerät bereit) in Richtung seines Modems und wartet auf dessen Rückmeldung durch DSR (Data set ready = Datenübertragungsgerät bereit). Damit besteht ''lokale'' Betriebsbereitschaft ohne Aktivierung des Senders, der Empfänger wartet.
Der normale Ablauf einer Datenübertragung ohne Flusskontrolle verläuft folgenderweise:
* Wenn die Endeinrichtung senden möchte, setzt es die Schnittstelle RTS (Request to send = Aufforderung zum Senden) und wartet auf die Sendebereitschaft CTS (Clear to send = Erlaubnis zum Senden erteilt) des ''lokalen'' Modems. Durch Einschalten des Senders erkennt das ''entfernte'' Modem Empfangssignalpegel und meldet es seiner Endeinrichtung durch CD (Data channel received line signal detector = Erkennung des Datenkanal-Empfangsleitungssignals, umgangssprachlich ''Carrier detected'' = [[Träger (Nachrichtentechnik)|Träger]] erkannt).


Diese logischen Abläufe sind in einem [[Nullmodem-Kabel]] fest verdrahtet. Ein Nullmodem verbindet zwei Endeinrichtungen mit gleicher Übertragungsgeschwindigkeit.
*Die ''lokale'' Endeinrichtung aktiviert die Schnittstelle DTR (Data terminal ready) in Richtung seines Modems und wartet auf dessen Rückmeldung durch DSR (Data set ready). Damit besteht ''lokale'' Betriebsbereitschaft ohne Aktivierung des Senders, der Empfänger wartet.
*Wenn die Endeinrichtung senden möchte, setzt es die Schnittstelle RTS (Request to send) und wartet auf die Sendebereitschaft CTS (Clear to send) des ''lokalen'' Modems. Durch Einschalten des Senders erkennt das ''entfernte'' Modem Empfangssignalpegel und meldet es seiner Endeinrichtung durch CD (Data channel received line signal detector).


Es gibt eine weitere definierte Schnittstelle: RFR (Ready for receiving = Bereit zum Empfang). Durch Platzprobleme auf dem 25-poligen Stecker wurde eine Doppelbelegung mit RTS (Request to send = Aufforderung zum Senden) auf Pin 4 (9-polig: Pin 7) notwendig: Entweder kann man den Sender steuern, oder der Sender arbeitet mit konstantem Trägersignal, und der Empfänger wird gesteuert. Modems in der Betriebsart [[Duplex (Nachrichtentechnik)|Halbduplex]] können deshalb mit RFR nicht gesteuert werden, da dort der Sender gesteuert werden muss.
Diese logischen Abläufe sind in einem [[Nullmodem]]-Kabel fest verdrahtet. Ein Nullmodem verbindet zwei Endeinrichtungen mit gleicher Übertragungsgeschwindigkeit.


Da beide Schnittstellen aus Richtung der Endeinrichtung arbeiten, werden sie oft gleichgesetzt. Die ITU-T warnt in der Empfehlung V.43 aber ausdrücklich davor<ref>[https://www.itu.int/rec/T-REC-V.43-199802-I/en ITU-T V.43], Abschnitt 4.2.1.1 a: ''In many publications, circuit 133 (Ready for receiving) is, incorrectly, referred to as circuit 105 (Request to send). These two interchange circuits are significantly different in their respective definitions and functions''.</ref>.
Es gibt eine weitere definierte Schnittstelle: RFR (Ready for receiving). Durch Platzprobleme auf dem 25&nbsp;poligen Stecker wurde eine Doppelbelegung mit RTS auf Pin 4 (9&nbsp;polig: Pin 7) notwendig: Entweder kann man den Sender steuern oder der Sender arbeitet mit konstantem Trägersignal und der Empfänger wird gesteuert.
Modems in der Betriebsart [[Halbduplex]] können deshalb mit RFR nicht gesteuert werden, da dort zwingend der Sender gesteuert werden muss.

Da beide Schnittstellen aus Richtung der Endeinrichtung arbeiten werden sie oft gleichgesetzt. Die ITU-T warnt in der Empfehlung V.43 aber ausdrücklich davor: ''In many publications, circuit 133 (Ready for receiving) is, incorrectly, referred to as circuit 105 (Request to send). These two interchange circuits are significantly different in their respective definitions and functions''.

===== Normen mit Beschreibung einer seriellen Datenflusskontrolle =====


===== Normen mit Beschreibung einer seriellen Datenflusssteuerung =====
Folgende Dokumente unterscheiden korrekt zwischen RTS und RFR:
Folgende Dokumente unterscheiden korrekt zwischen RTS und RFR:


*Die [[ITU-T]]-Empfehlung V.43 ''Data flow control'' (02/98) beschreibt verschiedene Möglichkeiten einer Datenflusskontrolle.<br/>Diese Empfehlung entspricht dem [[International Organization for Standardization|ISO]]/IEC-Report 15294.
* Die [[ITU-T]]-Empfehlung V.43 ''Data flow control'' (02/98) beschreibt verschiedene Möglichkeiten einer Datenflusssteuerung. Diese Empfehlung entspricht dem [[International Organization for Standardization|ISO]]/IEC-Report 15294.
*DIN 12900-1 ''Labordatenkommunikation Punkt-zu-Punkt-Verbindung mit RS232'' (August 1998).
* DIN 12900-1 ''Labordatenkommunikation Punkt-zu-Punkt-Verbindung mit RS232'' (August 1998).
*Weitere Hinweise über die offizielle Bezeichnung siehe [[Datenflusskontrolle#Weblinks|Weblinks]]


===== Datenflusskontrolle durch RFR/CTS (oft fälschlich als RTS/CTS bezeichnet) =====
===== Datenflusssteuerung durch RFR/CTS (oft fälschlich als RTS/CTS bezeichnet) =====
* Wenn das Übertragungsgerät keine Daten von dem Endeinrichtungsgerät mehr empfangen kann, schaltet es die Leitung CTS (Clear To Send = Sendebereitschaft) aus. Erst wenn es wieder Daten aufnehmen kann, wird CTS eingeschaltet.
* Es kann sein, dass die Endeinrichtung erst verzögert auf das Ausschalten von CTS reagiert, und weitere Bytes sendet, bevor es die Übertragung unterbricht. Daher sollte das Übertragungsgerät CTS bereits ausschalten, bevor sein Puffer ganz gefüllt ist. V.43 empfiehlt mindestens 2000 Bytes<ref>ITU-T V.43, Abschnitt 4.1.1.1 a</ref>.
* Auch wenn CTS ausgeschaltet ist und von der Endeinrichtung keine weiteren Daten kommen, fährt das Übertragungsgerät mit der Übertragung der Daten über TxD (Transmitted Data = Übertragene Daten) an das entfernte Gerät fort, solange sein Puffer noch Daten enthält.
* In umgekehrter Richtung schaltet die Endeinrichtung RFR (Ready For Receiving = Empfangsbereitschaft) aus, wenn sie zum Datenempfang momentan nicht bereit ist.
* Auch hier kann es sein, dass das Übertragungsgerät erst verzögert reagiert. Anders als bei der umgekehrten Richtung empfiehlt V.43 in diesem Fall aber nur einen kleinen Puffer, da von einer schnellen Reaktion des Übertragungsgeräts ausgegangen werden kann<ref>ITU-T V.43, Abschnitt 4.2.2.1 a</ref>.
* Das Übertragungsgerät gibt die Empfangsdaten des entfernten Gerätes auf RxD (Received Data = Empfangsdaten) erst dann an die Endeinrichtung weiter, wenn RFR wieder aktiv ist.


'''Hinweis:''' Obwohl seit 1995 wichtige Normen bei einer Datenflusssteuerung die Leitung RTS im Zusammenhang mit neueren Duplex-Modems gegen RFR austauschen<ref>{{Webarchiv | url=http://www.rdc.cz/prilohy/hardware/56_Multiplexer%20protocol.pdf?PHPSESSID=onwykdqjng | wayback=20120730045705 | text=Circuit 133}}. Die TIA benutzt offiziell RFR: Circuit 133, RFR (Ready for Receiving) is commonly assigned to the connector pin that is alternatively used for circuit 105, RTS. It is sometimes referred to by that name. (PDF-Datei; 344 kB)</ref><ref>[https://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/pnpcom.rtf Plug and Play External COM Device Specification Version 1.00 February 28, 1995]. Microsoft nennt in diesem Dokument für Entwickler ausdrücklich RTS und RFR; für den Anwender wird auch heute noch in der Hilfe nur RTS beschrieben.</ref>, wird in Handbüchern von einfachen Modems immer noch RTS/CTS beschrieben. Für die Benutzer dieser Modems ändert sich nichts, da die richtige Funktion vorhanden ist.
* Das Übertragungsgerät muss einen Sendespeicher von mindestens 2000 Byte haben. Ist dieser Speicher zur Hälfte gefüllt, soll es Leitung CTS ausschalten. Die Endeinrichtung sollte daraufhin so schnell wie möglich das Senden von Daten unterbrechen, bis CTS wieder eingeschaltet wird.
* Die Endeinrichtung schaltet RFR aus, wenn sie zum Datenempfang momentan nicht bereit ist. Das Übertragungsgerät gibt die Empfangsdaten des entfernten Gerätes auf RXD erst weiter, wenn RFR wieder aktiv ist.


====== Hinweis ======
===== Datenflusssteuerung durch DTR/DSR =====
Dieser Ablauf ist identisch mit dem vorherigen, es werden nur andere Schnittstellenleitungen benutzt.
Besonders bei Modems kann dieser Mechanismus verwendet werden. Er ist zwar nicht genormt, aber gebräuchlich.


===== Datenflusssteuerung durch andere Schnittstellenleitungen =====
Obwohl seit mindestens zehn Jahren wichtige Normen im Zusammenhang mit Datenflusskontrolle die Leitung RTS im Zusammenhang mit neueren Duplex-Modems gegen RFR austauschen, wird in Handbüchern von einfachen Modems immer noch RTS/CTS beschrieben.
Eher selten genutzte Möglichkeiten sind die zeitweise Halbierung der Übertragungsgeschwindigkeit durch die Schnittstelle 111 bzw. 112 oder das Abschalten der Taktung.


=== Software-Flusssteuerung, Software-Handshake, Software-Protokoll oder X-ON/X-OFF ===
Für den Benutzer eines einfachen Modems ändert sich nichts, da die richtige Funktion vorhanden ist.
Eine Software-Flusssteuerung wird durch in die Datenübertragung eingefügte Zeichen gesteuert.
Der Hauptvorteil liegt darin, keine gesonderte (zusätzliche) Schnittstellenleitung zu erfordern.


Im [[ASCII]]-Zeichensatz (ITU-T-Empfehlung [[T.50]]) sind die ersten 32 Zeichen für [[Steuerzeichen|Steuerungsaufgaben]] reserviert. Vier davon, DC1 bis DC4 (Device Control), sind Gerätesteuerzeichen.
===== Datenflusskontrolle durch DTR/DSR =====


Die Software-Flusssteuerung sollte davon die folgenden Zeichen benutzen:
Dieser Ablauf ist identisch zum vorherigen, es werden nur andere Schnittstellenleitungen benutzt.
Besonders bei Modems kann dieser Mechanismus verwendet werden. Er ist allerdings nicht genormt, aber gebräuchlich.


* DC1 (oft als ''X-ON'' bezeichnet, engl. für ''Transmission ON'', Zeichencodierung 11<sub>[[Hexadezimal|hex]]</sub> bzw. 17<sub>[[Dezimalsystem|dez]]</sub>, [[Personal Computer|PC]]-[[Tastatur]]: Strg-Q) und
===== Datenflusskontrolle durch andere Schnittstellenleitungen =====
* DC3 (oft als ''X-OFF'' bezeichnet, engl. für ''Transmission OFF'', Zeichencodierung 13<sub>hex</sub> bzw. 19<sub>dez</sub>,PC-Tastatur: Strg-S).


Diese Zeichen sind sowohl in Richtung Endeinrichtung zum Übertragungsgerät als auch umgedreht nutzbar.
Eher selten genutzte Möglichkeiten sind die zeitweise Halbierung der Übertragungsgeschwindigkeit durch die Schnittstelle 111 bzw. 112 oder das Anhalten der Taktleitungen.


In der Datenübertragung mit Modems gibt es oft die Möglichkeit, diese Zeichen durch Konfiguration umzustellen.
=== Software-Flusskontrolle, Software-Handshake, Software-Protokoll oder X-ON/X-OFF ===


Da das Einfügen und Auswerten dieser Zeichen frühzeitig an Puffern vorbei erfolgen muss, handelt es sich dabei um [[Out of band#Informatik|Out-Of-Band]]-Daten.
Eine Software-Flusskontrolle wird durch in die Datenübertragung eingefügte Zeichen gesteuert.

Im [[ASCII]]-Zeichensatz (ITU-T-Empfehlung T.50) sind die ersten 32 Zeichen für Steuerungsaufgaben reserviert. Vier davon, DC1 - 4 (Device Control), sind Gerätesteuerzeichen.

Die Software-Flusskontrolle sollte davon die folgenden Zeichen benutzen:

* DC1 (oft als ''X-ON'' bezeichnet, engl. für ''Transmission ON'', Zeichencodierung 11<sub>[[Hexadezimal|hex]]</sub>, [[Personal Computer|PC]]-[[Tastatur]]: Strg-Q) und
* DC3 (oft als ''X-OFF'' bezeichnet, engl. für ''Transmission OFF'', Zeichencodierung 13<sub>hex</sub> PC-Tastatur: Strg-S).

Diese Zeichen sind sowohl in Richtung Endeinrichtung zum Übertragungsgerät als auch umgedreht nutzbar.


==== Anwendung ====
==== Anwendung ====

In der Datenübertragung mit Modems gibt es oft die Möglichkeit, diese Zeichen durch Konfiguration umzustellen.

Ist der Sendespeicher des lokalen Modems fast gefüllt, wird das ''X-OFF''-Steuerzeichen in die Empfangsdaten zur eigenen Endeinrichtung eingefügt. Sobald dieser Speicher zur Gegenstelle gesendet wurde und damit wieder leer ist, wird das ''X-ON''-Steuerzeichen eingefügt und damit die Blockierung der Endeinrichtung aufgehoben. Die Übertragungsleitung ist hierdurch vor Datenverlusten gesichert.
Ist der Sendespeicher des lokalen Modems fast gefüllt, wird das ''X-OFF''-Steuerzeichen in die Empfangsdaten zur eigenen Endeinrichtung eingefügt. Sobald dieser Speicher zur Gegenstelle gesendet wurde und damit wieder leer ist, wird das ''X-ON''-Steuerzeichen eingefügt und damit die Blockierung der Endeinrichtung aufgehoben. Die Übertragungsleitung ist hierdurch vor Datenverlusten gesichert.


==== Probleme ====
==== Probleme ====
Beim ''bidirektionalen'' Versand von [[Binärdaten]] dürfen die beiden [[Steuerzeichen]] nicht in den Daten auftauchen, da sonst die Datenübertragung unterbrochen wird. Die Zeichen müssen maskiert werden, z.&nbsp;B. dadurch, dass die ganze Datenübertragung so [[Rekodierung|umkodiert]] wird, dass die Daten als ASCII-Werte der hexadezimalen Zahlen gesendet werden. Ein vor Jahren oft genutztes Format war der [[Hex-Record]] von Intel. Dadurch wurde das zu übertragene Datenvolumen aber verdoppelt. Obwohl durch die Umkodierung innerhalb der zu übertragenen Dateien die ''X-ON''/''X-OFF''-Steuerzeichen nicht mehr vorkommen, war eine Übertragung oft nicht möglich. Das effizientere Protokoll [[X-Modem]] beinhaltet zum Beispiel einen fortlaufenden Blockzähler von 00<sub>hex</sub> bis FF<sub>hex</sub>, so dass unabhängig von den zu übertragenen Daten jedes Datenbyte auftritt. Während X-Modem läuft, muss diese Software-Flusssteuerung vorübergehend deaktiviert werden, und der Empfänger ''muss'' genügend Pufferspeicher für einen Block bereitstellen: Das XON/XOFF-Protokoll wird durch ein [[ACK (Signal)|ACK/NAK]]-Protokoll ersetzt.


Die Software-Flusssteuerung sollte nur genutzt werden, wenn es keine Alternative gibt.
Beim Versand von [[Binärdaten]] dürfen die beiden [[Steuerzeichen]] nicht in den Daten auftauchen, da sonst die Datenübertragung unterbrochen wird. Die Zeichen müssen maskiert werden, z.&nbsp;B. dadurch, dass die ganze Datenübertragung so [[Umkodierung|umkodiert]] wird, dass die Daten als ASCII-Werte der hexadezimalen Zahlen gesendet werden. Ein vor Jahren oft genutzes Format war der [[Hex-Record]] von Intel. Dadurch wurde das zu übertragene Datenvolumen aber verdoppelt. Obwohl durch die Umkodierung innerhalb der zu übertragenen Dateien die ''X-ON''/''X-OFF''-Steuerzeichen nicht mehr vorkommen, war eine Übertragung oft nicht möglich. Das Protokoll [[X-Modem]] beinhaltet zum Beispiel einen fortlaufenden Blockzähler von 00<sub>hex</sub> bis FF<sub>hex</sub>, so das unabhängig von den zu übertragenen Daten jedes Datenbyte auftritt.


Beim ''unidirektionalen'' Transfer von Binärdaten ''kann'' das XON/XOFF-Protokoll problemlos verwendet werden, da es nur im jeweiligen Rückkanal vorkommt. Der Binärdaten-Empfänger darf dann XON/XOFF nicht aus dem Empfangsdatenstrom herausfiltern.
Die Software-Flusskontrolle sollte nur genutzt werden, wenn es keine Alternative gibt.


== Weblinks ==
== Einzelnachweise ==
<references />
*[http://www.cs.net/lucid/intel.htm] Beschreibung des Intel HEX-record Formates
*[http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/pnpcom.rtf] Plug and Play External COM Device Specification Version 1.00 February 28, 1995
: Microsoft nennt in diesem Dokument für Entwickler ausdrücklich RTS und RFR; für den Anwender wird auch heute noch in der Hilfe nur RTS beschrieben.
*[http://ftp.tiaonline.org/tr-8/tr812/Working/2001April/TSB-102%20modifications%20DA.doc] Auch die TIA benutzt offiziell RFR: ''Note that Ready for Receiving (RFR) is used in place of Ready to Send (RTS), and appears on the same connector pin.'' (Seite 67)


== Weblinks ==
* ITU-T-Empfehlung [https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-V.43-199802-I!!PDF-E&type=items V.43 Data flow control] (02/98)


{{Normdaten|TYP=s|GND=4194071-4|LCCN=sh/2005/7524}}
[[Kategorie:Netzwerkprotokoll]]
[[Kategorie:Programmierschnittstelle]]
[[Kategorie:Betriebssystem]]
[[Kategorie:Netzwerk]]
[[Kategorie:Nachrichtentechnik]]


[[Kategorie:Datenübertragung]]
[[en:Handshaking]]
[[it:Handshake]]
[[pl:Handshake]]
[[pt:Handshake]]

Aktuelle Version vom 25. Februar 2025, 16:37 Uhr

Mit Datenflusssteuerung (englisch data flow control) werden unterschiedliche Verfahren bezeichnet, mit denen die Datenübertragung von Endgeräten an einem Datennetz, die nicht synchron arbeiten, so gesteuert wird, dass eine möglichst kontinuierliche Datenübermittlung ohne Verluste erfolgen kann.

Wenn ein schneller Sender mit einem langsamen Empfänger zusammenarbeitet, muss die Datenübertragung zeitweise unterbrochen werden. Der Empfänger würde sonst mit Daten überlastet werden, die er nicht verarbeiten könnte. Die Steuerung dieser Unterbrechungen ist die Aufgabe der Datenflusssteuerung.

Um den Datenfluss zu steuern, gibt es verschiedene Verfahren.

  • Flusssteuerung auf Protokollebene.
  • Hardwareverfahren übertragen Steuerinformationen über Leitungen, die zusätzlich zu den Datenleitungen auf den Steckverbinder geführt sind.
  • Softwareverfahren fügen Steuerinformationen in den Datenstrom ein, so dass keine zusätzlichen Leitungen gebraucht werden.

Gewöhnlich arbeitet bei einer Datenübertragung nicht nur ein Verfahren zur Datenflusssteuerung, sondern mehrere gleichzeitig. Wenn beispielsweise ein PC einen Internetzugang über ein Modem hat, arbeitet an der Schnittstelle vom Modem zum PC ein Hardware-Verfahren (Handshaking über Steuerleitungen), mit dem die Übertragungsgeschwindigkeit zwischen ihnen geregelt wird. Die Protokolle der Internetprotokollfamilie auf höherer Ebene haben jedoch weitere Mechanismen zur Geschwindigkeitsadaption.

Dass meistens mehrere Verfahren gleichzeitig arbeiten, liegt daran, dass nicht nur die Datenübertragungsrate zwischen Sender und Empfänger an einem Datennetz geregelt werden muss, sondern in jedem Abschnitt auf dem gesamten Übertragungsweg im Netz. Auch das Datennetz und seine Komponenten arbeiten mit einer bestimmten Geschwindigkeit, die von der Geschwindigkeit von Sender und Empfänger abweichen kann.

Die Hardwareverfahren für die Datenflusssteuerung sind im OSI-Modell der Bitübertragungsschicht zuzuordnen. Softwareverfahren gibt es außerdem auch auf den nächsthöheren Schichten.

Datenflusssteuerung auf Protokollebene

[Bearbeiten | Quelltext bearbeiten]

Diese Flusssteuerung ist eine Funktion in einem Netzwerkprotokoll. Sie ist gewöhnlich in einem Protokollstapel zwischen zwei Schichten angesiedelt (OSI-Modell), oder aber zwischen zwei gleichberechtigten Schichten (Peer-Entities) auf Empfänger- und Senderseite, wie z. B. bei einem ARQ-Protokoll.

Diese Algorithmen benutzen eine Art von Feedback: der Empfänger signalisiert dem Sender mit einer Quittung, ob dieser weiter senden soll. Bei TCP kommt dabei ein Sliding-Window-Protokoll zum Einsatz. „Window“ bedeutet hier, dass immer ein ganzes „Fenster“ mit empfangenen Daten quittiert wird, „sliding“ bedeutet, dass die Fenstergröße mittels des Steuerungsdialoges nach oben oder unten geregelt werden kann. Der Empfänger gibt immer mit an, wie viele Bytes er bereit ist zu empfangen. Somit kann eine TCP-Verbindung automatisch und dynamisch den Datenfluss regeln.

Andere Verfahren versenden immer nur ein Paket und versenden mit der Bestätigung eine Sendeberechtigung (Stop-and-Wait-Protokolle). HDLC verwendet die Blocktypen RR (Receive Ready) und RNR (Receive Not Ready) zur Flusssteuerung.

Datenflusssteuerung von Peripheriegeräten

[Bearbeiten | Quelltext bearbeiten]

Als Peripherie werden hier Drucker, Modems, Terminals oder ähnliche Geräte bezeichnet.

Hardware-Flusssteuerung, Hardware-Handshake oder Hardware-Protokoll

[Bearbeiten | Quelltext bearbeiten]

Eine Hardware-Flusssteuerung wird durch entsprechende Signalpegel auf zugehörigen Schnittstellenleitungen realisiert.

Parallele Datenübertragung (Druckertechnik)

[Bearbeiten | Quelltext bearbeiten]

Die oft an Druckern verwendete Centronics-Schnittstelle benutzt drei Leitungen zur Flusssteuerung:

  • Strobe – zeigt dem Empfänger an, dass gültige Daten anliegen (positive Logik, wie ACK)
  • ACK – Acknowledge, Bestätigung der Datenübernahme durch den Drucker
  • Busy – zeigt die Bereitschaft des Druckers zur Datenübernahme an (negative Logik)

Ein Drucker ist viel langsamer als die steuernde Endeinrichtung. Durch Deaktivierung der Schnittstellenleitung Busy dürfen keine weiteren Daten gesendet werden, die Datenübertragung stoppt kurzfristig.

Serielle Datenübertragung

[Bearbeiten | Quelltext bearbeiten]

Die zur Datenübertragung notwendigen Schnittstellenleitungen sind in der ITU-T-Empfehlung V.24[1], der DIN 66020 oder RS232 beschrieben. Sie beziehen sich auf eine lokale Endeinrichtung (z. B. PC), die über ein lokales Übertragungsgerät (z. B. Modem) mit einem entfernten Übertragungsgerät (z. B. Modem beim Provider) und der entfernten Endeinrichtung (z. B. Internet-Server) kommuniziert. Die Leitungen werden je nach Norm unterschiedlich bezeichnet. Hier werden die umgangssprachlichen Bezeichnungen genutzt.

Der normale Ablauf einer Datenübertragung ohne Flusssteuerung verläuft folgenderweise:

  • Die lokale Endeinrichtung aktiviert die Schnittstelle DTR (Data terminal ready = Datenendgerät bereit) in Richtung seines Modems und wartet auf dessen Rückmeldung durch DSR (Data set ready = Datenübertragungsgerät bereit). Damit besteht lokale Betriebsbereitschaft ohne Aktivierung des Senders, der Empfänger wartet.
  • Wenn die Endeinrichtung senden möchte, setzt es die Schnittstelle RTS (Request to send = Aufforderung zum Senden) und wartet auf die Sendebereitschaft CTS (Clear to send = Erlaubnis zum Senden erteilt) des lokalen Modems. Durch Einschalten des Senders erkennt das entfernte Modem Empfangssignalpegel und meldet es seiner Endeinrichtung durch CD (Data channel received line signal detector = Erkennung des Datenkanal-Empfangsleitungssignals, umgangssprachlich Carrier detected = Träger erkannt).

Diese logischen Abläufe sind in einem Nullmodem-Kabel fest verdrahtet. Ein Nullmodem verbindet zwei Endeinrichtungen mit gleicher Übertragungsgeschwindigkeit.

Es gibt eine weitere definierte Schnittstelle: RFR (Ready for receiving = Bereit zum Empfang). Durch Platzprobleme auf dem 25-poligen Stecker wurde eine Doppelbelegung mit RTS (Request to send = Aufforderung zum Senden) auf Pin 4 (9-polig: Pin 7) notwendig: Entweder kann man den Sender steuern, oder der Sender arbeitet mit konstantem Trägersignal, und der Empfänger wird gesteuert. Modems in der Betriebsart Halbduplex können deshalb mit RFR nicht gesteuert werden, da dort der Sender gesteuert werden muss.

Da beide Schnittstellen aus Richtung der Endeinrichtung arbeiten, werden sie oft gleichgesetzt. Die ITU-T warnt in der Empfehlung V.43 aber ausdrücklich davor[2].

Normen mit Beschreibung einer seriellen Datenflusssteuerung
[Bearbeiten | Quelltext bearbeiten]

Folgende Dokumente unterscheiden korrekt zwischen RTS und RFR:

  • Die ITU-T-Empfehlung V.43 Data flow control (02/98) beschreibt verschiedene Möglichkeiten einer Datenflusssteuerung. Diese Empfehlung entspricht dem ISO/IEC-Report 15294.
  • DIN 12900-1 Labordatenkommunikation Punkt-zu-Punkt-Verbindung mit RS232 (August 1998).
Datenflusssteuerung durch RFR/CTS (oft fälschlich als RTS/CTS bezeichnet)
[Bearbeiten | Quelltext bearbeiten]
  • Wenn das Übertragungsgerät keine Daten von dem Endeinrichtungsgerät mehr empfangen kann, schaltet es die Leitung CTS (Clear To Send = Sendebereitschaft) aus. Erst wenn es wieder Daten aufnehmen kann, wird CTS eingeschaltet.
  • Es kann sein, dass die Endeinrichtung erst verzögert auf das Ausschalten von CTS reagiert, und weitere Bytes sendet, bevor es die Übertragung unterbricht. Daher sollte das Übertragungsgerät CTS bereits ausschalten, bevor sein Puffer ganz gefüllt ist. V.43 empfiehlt mindestens 2000 Bytes[3].
  • Auch wenn CTS ausgeschaltet ist und von der Endeinrichtung keine weiteren Daten kommen, fährt das Übertragungsgerät mit der Übertragung der Daten über TxD (Transmitted Data = Übertragene Daten) an das entfernte Gerät fort, solange sein Puffer noch Daten enthält.
  • In umgekehrter Richtung schaltet die Endeinrichtung RFR (Ready For Receiving = Empfangsbereitschaft) aus, wenn sie zum Datenempfang momentan nicht bereit ist.
  • Auch hier kann es sein, dass das Übertragungsgerät erst verzögert reagiert. Anders als bei der umgekehrten Richtung empfiehlt V.43 in diesem Fall aber nur einen kleinen Puffer, da von einer schnellen Reaktion des Übertragungsgeräts ausgegangen werden kann[4].
  • Das Übertragungsgerät gibt die Empfangsdaten des entfernten Gerätes auf RxD (Received Data = Empfangsdaten) erst dann an die Endeinrichtung weiter, wenn RFR wieder aktiv ist.

Hinweis: Obwohl seit 1995 wichtige Normen bei einer Datenflusssteuerung die Leitung RTS im Zusammenhang mit neueren Duplex-Modems gegen RFR austauschen[5][6], wird in Handbüchern von einfachen Modems immer noch RTS/CTS beschrieben. Für die Benutzer dieser Modems ändert sich nichts, da die richtige Funktion vorhanden ist.

Datenflusssteuerung durch DTR/DSR
[Bearbeiten | Quelltext bearbeiten]

Dieser Ablauf ist identisch mit dem vorherigen, es werden nur andere Schnittstellenleitungen benutzt. Besonders bei Modems kann dieser Mechanismus verwendet werden. Er ist zwar nicht genormt, aber gebräuchlich.

Datenflusssteuerung durch andere Schnittstellenleitungen
[Bearbeiten | Quelltext bearbeiten]

Eher selten genutzte Möglichkeiten sind die zeitweise Halbierung der Übertragungsgeschwindigkeit durch die Schnittstelle 111 bzw. 112 oder das Abschalten der Taktung.

Software-Flusssteuerung, Software-Handshake, Software-Protokoll oder X-ON/X-OFF

[Bearbeiten | Quelltext bearbeiten]

Eine Software-Flusssteuerung wird durch in die Datenübertragung eingefügte Zeichen gesteuert. Der Hauptvorteil liegt darin, keine gesonderte (zusätzliche) Schnittstellenleitung zu erfordern.

Im ASCII-Zeichensatz (ITU-T-Empfehlung T.50) sind die ersten 32 Zeichen für Steuerungsaufgaben reserviert. Vier davon, DC1 bis DC4 (Device Control), sind Gerätesteuerzeichen.

Die Software-Flusssteuerung sollte davon die folgenden Zeichen benutzen:

  • DC1 (oft als X-ON bezeichnet, engl. für Transmission ON, Zeichencodierung 11hex bzw. 17dez, PC-Tastatur: Strg-Q) und
  • DC3 (oft als X-OFF bezeichnet, engl. für Transmission OFF, Zeichencodierung 13hex bzw. 19dez,PC-Tastatur: Strg-S).

Diese Zeichen sind sowohl in Richtung Endeinrichtung zum Übertragungsgerät als auch umgedreht nutzbar.

In der Datenübertragung mit Modems gibt es oft die Möglichkeit, diese Zeichen durch Konfiguration umzustellen.

Da das Einfügen und Auswerten dieser Zeichen frühzeitig an Puffern vorbei erfolgen muss, handelt es sich dabei um Out-Of-Band-Daten.

Ist der Sendespeicher des lokalen Modems fast gefüllt, wird das X-OFF-Steuerzeichen in die Empfangsdaten zur eigenen Endeinrichtung eingefügt. Sobald dieser Speicher zur Gegenstelle gesendet wurde und damit wieder leer ist, wird das X-ON-Steuerzeichen eingefügt und damit die Blockierung der Endeinrichtung aufgehoben. Die Übertragungsleitung ist hierdurch vor Datenverlusten gesichert.

Beim bidirektionalen Versand von Binärdaten dürfen die beiden Steuerzeichen nicht in den Daten auftauchen, da sonst die Datenübertragung unterbrochen wird. Die Zeichen müssen maskiert werden, z. B. dadurch, dass die ganze Datenübertragung so umkodiert wird, dass die Daten als ASCII-Werte der hexadezimalen Zahlen gesendet werden. Ein vor Jahren oft genutztes Format war der Hex-Record von Intel. Dadurch wurde das zu übertragene Datenvolumen aber verdoppelt. Obwohl durch die Umkodierung innerhalb der zu übertragenen Dateien die X-ON/X-OFF-Steuerzeichen nicht mehr vorkommen, war eine Übertragung oft nicht möglich. Das effizientere Protokoll X-Modem beinhaltet zum Beispiel einen fortlaufenden Blockzähler von 00hex bis FFhex, so dass unabhängig von den zu übertragenen Daten jedes Datenbyte auftritt. Während X-Modem läuft, muss diese Software-Flusssteuerung vorübergehend deaktiviert werden, und der Empfänger muss genügend Pufferspeicher für einen Block bereitstellen: Das XON/XOFF-Protokoll wird durch ein ACK/NAK-Protokoll ersetzt.

Die Software-Flusssteuerung sollte nur genutzt werden, wenn es keine Alternative gibt.

Beim unidirektionalen Transfer von Binärdaten kann das XON/XOFF-Protokoll problemlos verwendet werden, da es nur im jeweiligen Rückkanal vorkommt. Der Binärdaten-Empfänger darf dann XON/XOFF nicht aus dem Empfangsdatenstrom herausfiltern.

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. List of definitions for interchange circuits between data terminal equipment (DTE) and data circuit-terminating equipment (DCE)
  2. ITU-T V.43, Abschnitt 4.2.1.1 a: In many publications, circuit 133 (Ready for receiving) is, incorrectly, referred to as circuit 105 (Request to send). These two interchange circuits are significantly different in their respective definitions and functions.
  3. ITU-T V.43, Abschnitt 4.1.1.1 a
  4. ITU-T V.43, Abschnitt 4.2.2.1 a
  5. Circuit 133 (Memento vom 30. Juli 2012 im Internet Archive). Die TIA benutzt offiziell RFR: Circuit 133, RFR (Ready for Receiving) is commonly assigned to the connector pin that is alternatively used for circuit 105, RTS. It is sometimes referred to by that name. (PDF-Datei; 344 kB)
  6. Plug and Play External COM Device Specification Version 1.00 February 28, 1995. Microsoft nennt in diesem Dokument für Entwickler ausdrücklich RTS und RFR; für den Anwender wird auch heute noch in der Hilfe nur RTS beschrieben.