next up previous contents
Next: 3 Vermittlung von X.25 Up: Praktikum Rechnernetze: WANs am Previous: 1 V.24 und Modems

Subsections

2 Sicherungsprotokolle (Ebene 2)

2.1 Theorie

2.1.1 Synchrone und Asynchrone Übertragung

(1)
Definition synchrone Übertragung, asynchrone Übertragung, Start-Stop-Übertragung
Bei der synchronen Übertragung haben Sender und Empfänger den gleichen Takt, d.h. während der gesamten Übertragung (bzw. der Verbindung) besteht Schrittgleichlauf.

Bei der asynchronen Übertragung haben Sender und Empfänger nur während der aktuellen Übertragung (z.B. Frame oder Zeichen) den gleichen Takt. Bei verschiedenen Übertragungen muß kein Schrittgleichlauf vorliegen.

Bei der Start-Stop-Übertragung wird jedes einzelne Zeichen einzeln synchronisiert: durch das Startbit wird die Synchronisation während eines Zeichens ``gestartet'', durch das Stopbit beendet, der Empfang also bis zum nächsten Startbit beendet.

(2)
Prinzip Übertragung zwischen PC und Terminal
Zwischen dem PC und externem Terminal wird üblicherweise die Start-Stop-Übertragung verwendet.

(3)
Vergleich synchrone/asynchrone Übertragung
Vorteile synchroner Übertragung:
+
weniger Overhead (Start/Stop-Bits entfallen) = mehr Durchsatz

Vorteile asynchroner Übertragung:

+
einfach zu implementieren (Hardware-Aufwand), da keine Synchronisation während einer längeren Zeitdauer zu gewährleisten ist (Taktgeneratoren)
+
daher oft günstiger

2.1.2 Protokolle der OSI-Schicht 2, HDLC-LAP B, Sichere Übertragung über gestörte Kanäle

(1)
Klassen von Schicht-2-Protokollen
a)
bitorientierte Prozeduren
b)
zeichenorientierte Prozeduren

Framing:
bei a): durch Anfangs- und Endflags; in der Übertragung werden Flags durch Bit-Stopfung (Bit-Stuffing) vermieden
bei b): verschiedene Sonderzeichen werden verwendet (STX, ETX etc.)
Fehlerbehandlung:
bei a): üblicherweise CRC (Cyclic Redundancy Check), verschiedene Längen/Polynome, kann wesentlich mehr Fehler erkennen als Parity/BCC, jedoch keine korrigieren.
bei b): üblicherweise Parity (pro Zeichen), BCC (Block Check Character), kann 1-Bit-Fehler korrigieren und 2-Bit-Fehler erkennen.
Quittierungsmechanismen:
bei a): üblich: Fenstertechnik (Sliding Window Protocol) bei b): Numerierung der Datenblöcke, jeder Block wird einzeln quittiert

Vor/Nachteile von bitorientierten Prozeduren:

+
Codeunabhängigkeit der Übertragung, daher weniger Verwaltungsaufwand im Endgerät, Datenmenge unabhängiger von zu übertragenen Daten
+
CRC erkennt mehr Fehler (insbesondere bei Fehler-''Bursts'')
+
bessere Auslastung der Leitungen (mehrere Pakete können bei der Fenstertechnik ``unterwegs'' sein)

Vor/Nachteile von zeichenorientierten Prozeduren:

+
recht einfach zu implementieren (heute eigentlich kein Thema mehr)
+
weniger Intelligenz erforderlich (heute eigentlich kein Thema mehr)
-
nur für Terminals sinnvoll einsetzbar

Beispiele:

(2)
Fehlererkennungsverfahren

(3)
Generatorpolynom bei HDLC
Bei HDLC wird das 16-Bit-CRC-CCITT-Standardgeneratorpolynom x16+x12+x5+1 verwendet (Quelle: [Hal95, 240])

Erkannt werden damit folgende Fehler: (Begründung Literatur, z.B. [Tan96, Seite 190]

(4)
CRC-Beispiel durchrechnen
Verfahren analog [Hal95, Seite 132] bzw. [Tan96, Seite 189]
      Frame: 1101011101   Generatorpolynom: 10011
                          (Frame wird um 4 0-Bits erweitert)

      10011 | 1101011101 0000 = 1100001
              10011           => 1
              -----
               10011
               10011          => 1
               -----
                00001    
                00000         => 0
                -----
                 00011
                 00000        => 0
                 -----
                  00110
                  00000       => 0
                  -----
                   01101
                   00000      => 0
                   -----
                    1101 0
                    1001 1    => 1
                    ---- -
                     100 10
                     100 11   => 1
                     --- --
                      00 010
                      00 000  => 0
                      -- ---
                       0 0100
                       0 0000 => 0
                       - ----
                         0100
                         ====
Damit wird 1101011101 0100 übertragen.

Überprüfung von 11101111001 0101:

       Frame: 11101111001 0101   Generatorpolynom: 10011
       10011 | 11101111001 0101 = 11111111001 Rest 1110
              10011           => 1
              -----
               11101
               10011          => 1
               -----
                11101    
                10011         => 1
                -----
                 11101
                 10011        => 1
                 ----- 
                  11100
                  10011       => 1
                  -----
                   11110
                   10011      => 1
                   -----
                    11011
                    10011     => 1
                    -----
                     1000 0
                     1001 1   => 1
                     ---- -
                      001 11
                      000 00  => 0
                      --- --
                       01 110
                       00 000 => 0
                       -- ---
                        1 1101
                        1 0011=> 1
                          ---- 
                          1110
                          ====
Der Rest ist von 0 verschieden, also ist die zweite Nachricht nicht korrekt übertragen worden.

(5)
Aufbau I-Frame bei HDLC, Bitstuffing

\includegraphics [width=\linewidth]{HDLC-I-Frame.eps}

Ein I(nformations)-Frame besteht aus einem besonderen Start-of-frame- und End-of-Frame-Bitmuster am Anfang und Ende (je 8 Bit, 01111110), einer Adresse (8 Bit), einem 0-Bit (Kennzeichnung für ein I-Frame), einer Sende-Sequenznummer (3 Bit, N(S)), einer Empfangssequenznummer (3 Bit, R(S)), einem Poll/Final Bit, sowie den zu übertragenden Informationen, und einer CRC-Checksumme.

Bit-Stuffing wird verwendet, um den Anfang und das Ende eines Frames eindeutig zu kennzeichnen. Dabei wird in HDLC ein spezielles Bitmuster verwendet (01111110), welches sechs 1er-Bits beinhaltet. Um nun in der Datenübertragung (also zwischen Start-of-frame und End-of-Frame) ein versehentliches Erkennen von End-of-Frame zu verhindern, und um die Übertragung der Daten transparent zu machen, wird nach jeweils fünf 1-Bits ein 0-Bit ``eingeschoben''. So kann das Bit-Muster 01111110 nie innerhalb eines Frames gesendet werden. Der Empfänger muß innerhalb eines Frames jeweils nach fünf 1-Bits das folgende 0-Bit entfernen.

Bitstuffing ist bei BSC überflüssig, da hier spezielle Steuerzeichen reserviert sind, die nicht innerhalb der Daten vorkommen dürfen (außer durch die vorherige Benutzung von Escape-Sequenzen).

(6)
Flußsteuerung in HDLC

In HDLC wird ein Sliding-Window-Protokoll zur Flußsteuerung verwendet. Desweiteren kann durch RNR/RR die Stop-and-Go-Technik benutzt werden.

(7)
Ungleichung

Die angegebene Ungleichung beschreibt die Fenstergröße im Sliding-Window-Protokoll.

0 ist die (nicht erreichbare) untere Grenze für den Sequenznummernunterschied zwischen Empfänger und Sender, W die konfigurierbare obere Grenze (Fenstergröße).

V(S) beschreibt die Sendesequenznummer des Senders, die dem Empfänger in N(S) mitgeteilt wird. V(S) wird nach dem Senden eines I-Frames um eins (modulo 8) erhöht wird.

V(R) beschreibt beim Empfänger, welches I-Frames als nächstes von der Gegenseite erwartet wird, V(R)-1 Frames wurden also richtig empfangen. Dem Empfänger wird also durch N(R) mitgeteilt, welche Sequenznummer der Sender als nächstes vom Empfänger erwartet.

Falls die Sequenznummern zu weit auseinanderliegen (größer oder gleich W), werden die Pakete erneut übertragen.

2.2 Praktische Versuche

2.2.1 Versuch I: Asynchrone Übertragung

(1)
Versuchsaufbau
durchgeführt
(2)
Aufzeichnung eines asynchronen Zeichenrahmens
Mittels eines Oszilloskops wurde ein ``e'' (Binär 1100101 im ASCII-Code) dargestellt. Folgendes Bild war zu sehen:

\includegraphics [width=\linewidth]{e.eps}

Die Bits werden also ``falsch herum'' übertragen, also von hinten nach vorne. Eine 1 wird durch keinen Strom übertragen, eine 0 durch eine Spannung von 20 V.

2.2.2 Versuch II: HDLC-Protokollanalyse

(1)
Versuchsaufbau
durchgeführt
(2)
Analyse eines HDLC-Normalablaufs

Im Versuch wurde ein von ``blue'' ein Text ``bbb'' eingegeben. Der Ablauf konnte mittels des Protokollanalysators aufgezeichnet werden:

Verbindungs-  ADD  CODE      NS  PF  NR  DATA    Kommentar
  richtung

Verbindungsaufbau
-----------------

red->blue    01    SARM/DM        0              red w"unscht Verbindungsaufbau, 
                                                  Set Asynchronous Response Mode
blue->red    01    SABM           1              blue will Asynchronous Balanced
                                                  Response Mode, will sofort Antwort
red->blue    01    UA             1              red akzeptiert und sendet einen
                                                  unnumbered acknowledge (es gibt noch 
                                                  keine initialisierten Sequenznummern),
                                                  will ebenfalls sofort Antwort
red->blue    03    INFO      0    0   0          N(S) und N(R) werden gegenseitig 
blue->red    01    INFO      0    0   0           auf 0 initialisiert
blue->red    03    RR             0   1          Der Gegenseite wird jeweils mitgeteilt,
red->blue    01    RR             0   1           da"s man bereit ist, Daten zu empfangen


Daten"ubertragung red->blue
--------------------------

red->blue    03    INFO      1    0   1  bbb     Nutzdaten von red an blue
blue->red    03    RR             0   2          blue best"atigt Empfang (N(R) hat sich erh"oht)
blue->red    01    INFO      1    0   1          blue sendet ``leere'' Daten an red
red->blue    01    RR             0   2          red best"atigt Empfang


Daten"ubertragung blue-> red
---------------------------

blue->red    01    INFO           0   2  ccc     Nutzdaten von blue an red
red->blue    01    RR        2    0   3          red best"atigt Empfang (N(R) hat sich erh"oht)
red->blue    03    INFO           0   2          red sendet ``leere'' Daten an blue
blue->red    03    RR        2    0   3          blue best"atigt Empfang
Kommandos (INFO z.B.) enthalten die Zieladressen (01 = DCE = red, 03 = DTE = blue), Meldungen die Absenderadressen (z.B. Receive Ready)

Es werden alle Kommandos durch Meldungen bestätigt.

Das Poll/Final Bit ist gesetzt, wenn der Sender sofort eine Antwort wünscht. Dies ist nur beim Verbindungsaufbau der Fall, alle anderen Pakete können implizit durch die Sequenznummern bestätigt werden.

Die Prüfsequenz, CRC, wurde hier weggelassen; sie dient zur Überprüfung aller Frames; fehlerhafte Frames werden verworfen.

Das verwendete Sequenznummernverfahren ist das Sliding-Window-Protokoll. Durch die beiden ersten INFO-Pakete werden die Sequenznummern auf 0 initialisiert.

Die Vorteile von endlichen Sequenznummernräumen sind die sehr einfache Implementierung, die Länge der Sequenznummern ist bekannt, die Protokolle werden dadurch einfacher; außerdem gibt es keine Probleme mit beschränkten Paketlängen. Nachteilig ist die Problematik der Eindeutigkeit: Sequenznummern dürfen nur nach einer bestimmten Zeit wiederverwendet werden, da es sonst zu Uneindeutigkeiten kommen kann. In der Praxis wird dem dadurch begegnet, daß Pakete eine maximale Lebensdauer bekommen und Sequenznummern erst nach einer Quittung bzw. der maximalen Lebensdauer wiederverwendet werden.

(3)
Analyse eines gestörten Ablaufs

Mittels des Protokollanalysators wurde eine Verbindung gestört. Das Ergebnis (mit Kommentaren) sah wie folgt aus:

Verbindungs-  ADD  CODE      NS  PF  NR  DATA    Kommentar
  richtung

[...]

red->blue    03    INFO       2   0   3  eee...  Normaler Datenaustausch...
blue->red    03    RR             0   3          Best"atigung
blue->red    01    INFO       3   0   3          blue sendet ``leere'' Daten an red
red->blue    01    RR             0   4          red best"atigt Empfang

  -- ST"ORUNG --

red->blue    03    INFO       3   0   4  eee...  Daten werden gesendet
                                                 es kommt keine Best"atigung, da Leitung
                                                 gest"ort wurde.
red->blue    03    INFO       4   0   4  eee...  Sliding Window erlaubt weitere Pakete
red->blue    03    RR             1   4          red will Empfang best"atigt haben
red->blue    03    RR             1   4          red will Empfang best"atigt haben
red->blue    03    RR             1   4          red will Empfang best"atigt haben
red->blue    03    RR             1   4          red will Empfang best"atigt haben
red->blue    03    RR             1   4          red will Empfang best"atigt haben
red->blue    03    RR             1   4          red will Empfang best"atigt haben
[...]
  -- ST"ORUNG BESEITIGT --

blue->red    03    RR             1   3          blue best"atigt aber nur bis Paket 2, erwartet
                                                 also Paket mit Nr. 3
red->blue    03    INFO       3   0   4  eee...  red sendet Daten noch mal
red->blue    03    INFO       4   0   4  eee...  red sendet Daten noch mal
blue->red    03    RR             0   4          blue best"atigt 3
blue->red    03    RR             0   5          blue best"atigt 4
blue->red    01    INFO       4   0   5          blue sendet ``leere'' Daten an red
red->blue    03    RR             0   5          red best"atigt Leerdaten
red->blue    03    INFO       5   0   5  eee...  red sendet Daten wieder normal

[...]
Die Fenstergröße scheint hier nur auf 2 Pakete eingestellt gewesen zu sein, da direkt nach der Störung und dem Senden zweier Pakete eine explizite Quittung von der Gegenseite angefordert wurde (PF=1 bei RR).


next up previous contents
Next: 3 Vermittlung von X.25 Up: Praktikum Rechnernetze: WANs am Previous: 1 V.24 und Modems
Gerhard Müller, Thu Jan 15 22:11:29 CET 1998