Rechnernetze
Home Nach oben

Die Datenphase

Nachdem eine Verbindung aufgebaut wurde, kann die Datenübertragung durchgeführt werden. Wir schreiben im folgenden:

I(N(R),N(S)) für einen Datenblock mit Folgenummern N(R) und N(S)
RR(N(R)) für einen Receive-Ready-Block mit Folgenummer N(R)
RNR(N(R)) für einen Receive-Not-Ready-Block mit Folgenummer N(R)
REJ(N(R)) für einen Reject-Block mit Folgenummer N(R)

Wird ein P/F-Bit gesetzt, so wird dieses unmittelbar hinter den Block geschrieben. Zusätzlich werden in einer weiteren Spalte die Werte der Zähler angegeben.

Bei einer fehlerfreien Übertragung kann die Quittierung empfangener Datenblöcke implizit in den gesendeten Datenblöcken erfolgen.

Wenn jedoch der Empfänger keine Datenblöcke zu senden hat, muß er die Quittierung explizit in einem RR-Block durchführen.

Geht ein Datenblock verloren, so kann der Empfänger dieses erkennen, wenn die Folgenummer des empfangenen Datenblocks nicht mit der erwarteten übereinstimmt, d.h.: N(S)?V(R). Dieses kann der Empfänger dem Sender dadurch mitteilen, daß er einen REJ-Block schickt, in welchem die Nummer des fehlenden Datenblocks angegeben ist. Der Sender muß dann entsprechend dem Protokoll den fehlenden Datenblock und alle auf diesen folgenden Datenblöcke noch einmal senden. Auch der (korrekt) empfangene Datenblock mit einer zu großen Folgenummer muß noch einmal gesendet werden:

Ein Sonderfall tritt auf, wenn der fehlende Datenblock der zuletzt gesendete ist, d.h. nach diesem kein weiterer gesendet wird. Dann kann das Fehlen dieses letzten Datenblocks nicht mehr mit der beschriebenen Methode erkannt werden. Um diese Art von Fehler zu beheben, stößt der Sender nach Senden des letzten Datenblocks einen Timer an, der eine bestimmte Zeit auf die Quittung für diesen letzten Datenblock wartet. Läuft der Timer vor der Quittierung aus, so wird der betreffende Block noch einmal übertragen:

Wenn eine Station nicht mehr imstande ist, eintreffende Datenblöcke zu verarbeiten, z.B. weil interne Puffer überlaufen oder weil kurzzeitig ein Verarbeitungsengpaß im Prozessor aufgetreten ist, so kann sie der Gegenseite signalisieren, keine Datenblöcke mehr zu senden, indem sie RNR sendet. Die Gegenseite fragt dann in bestimmten Abständen immer wieder nach, ob die Station wieder empfangsbereit ist. Sobald diese wieder mit RR antwortet, kann der nächste Datenblock gesendet werden.