Kontinuierliches ARQ (continuous ARQ) Fehlerbehandlung und

Kontinuierliches ARQ (continuous ARQ)
• Sende-und-Warte ARQ ist simpel und benötigt keinen Puffer, aber ist
bezüglich der Kanalauslastung nicht effizient. Denn nach jedem Senden
wartet der Sender auf ACK, bevor er einen neuen Block sendet.
• Kontinuierliches ARQ arbeitet nach folgendem Schema:
• Sender sendet Blöcke, ohne auf die Quittierung zu warten
• Jeder Block enthält eindeutige Blocknummer
• Sender merkt sich in einer Sendeliste jeweils eine Kopie jedes
gesendeten Blocks
• Empfänger speichert alle empfangenen Blocknummern in einer
Empfangsliste
• Empfänger quittiert jeden empfangenen Block mit einem ACK,
das die jeweilige Blocknummer enthält
• Sender löscht aus der Sendeliste alle Blöcke, deren ACK er
empfängt
Fehlerbehandlung und Blocknummernbegrenzung
2 gebräuchliche Varianten zur Fehlerbehandlung
• Selektive Wiederholung (selective retransmission)
• bei nicht direkt aufeinander folgenden ACK-Blocknummern
überträgt der Sender erneut den nicht bestätigten Block
• siehe vorheriges Diagramm
• Go-back-N-ARQ
• bei fehlerhaftem Empfang wird der Sender vom Empfänger
aufgefordert, alle Blöcke seit dem letzten korrekt empfangenen
Block erneut zu übertragen
• belegt mehr Übertragungskapazität, aber leichter zu realisieren
• keine Sortierung im Empfangspuffer nötig
• stabiler bei Mehrfachfehlern als selektive Wiederholung
Huckepack-Quittierung (piggy-back acknowledgement)
• tauschen zwei Stationen gegenseitig Blöcke im Vollduplex aus, wird die
ACK Meldung in speziellen Feldern der ohnehin gesendeten Blöcke
untergebracht
Blocknummernbegrenzung
• damit die Blocknummern nicht beliebig groß wenden können und damit
zu viele Bits im Block zur Codierung verwendet werden müssen, wird
eine maximale Anzahl unbestätigter Blöcke vereinbart und diese als
Fenstergröße bezeichnet
• Fenstergröße = 1 ⇒ Sende-und-Warten ARQ
• siehe auch Gleitendes Fenster
Leistung des S&W-ARQ Protokolls ohne Fehler
Sende-und-Warte ARQ
• betrachte fehlerfreie Übertragung
Leistung des S&W-ARQ Protokolls mit Fehlern
Sende-und-Warte ARQ
• mit Fehlerberücksichtigung
Nr :
durchschnittliche Anzahl der durch Fehler insgesamt
erforderlichen Übertragungen
Tix
P:
P b:
1
(1)
⇒ U = N T + 2 N T = N (1 + 2T / T )
r ix
r p
r
p
ix
Bitfehlerrate
Wahrscheinlichkeit, daß ein Ni-Bit langer Block gestört ist
Pb = 1 − (1 − P) N
Pb ≈ NiP
für NiP « 1 gilt :
Wahrscheinlichkeit, daß ein Ni-Bit langer Block nicht gestört
i
Kanalauslastung U =
Blockübertragungszeit Tix
Tix + Wartezeit _ auf _ ACK
häufig gilt: Bearbeitungszeiten Tip , Tax , Tap « Übertragungszeiten Tix , Tp
⇒
U=
Signalfortpflanzungszeit (Latenzzeit)
Tix
1
=
Tix + 2Tp 1 + 2Tp / Tix
TP =
Übertragungsentfernung[m]
Signalgeschwindigkeit [m/s ]
(i.a. Signalgeschwindigkeit ≈ 2/3 c , c = 3 108 m/s)
Tix =
1
0,9
0,8
0,7
0,6
0,5
0,4
0,3
0,2
0,1
0
1E+04
1E+03
1E+02
1E+01
1E-01
T p /T ix
1E+00
1E-02
1E-03
1E-04
1E-05
⇒
0E+00
U=1/(1+2Tp/Tix))
Blockübertragungszeit
Anzahl übertragener Bits
Übertragungsrate [bps]
hohe Auslastung (U→1) für
Tix » Tp , also geringe Entfernungen und Übertragungsraten
(z.B. Modemübertragungen
übers analoge Telefonnetz)
(1-Pb):
ist
1
⇒ Nr = 1 − P
b
Glg. (2) in Glg. (1) einsetzen ergibt:
1 − Pb
⇒ U = 1 + 2T / T
p
ix
(2)
Leistung des Kont.-ARQ Protokolls ohne Fehler
Leistung des Kont.-ARQ Protokolls mit Fehlern
Kontinuierliches ARQ
Kontinuierliches ARQ
• betrachte keine Fehler
• U = 1, wenn Kanal voll mit Blöcken belegt ist
• z.B. für Tp = 250 ms und Tix = 1 ms würden 250 Blöcke
gleichzeitig auf den Sendekanal passen, nach einer weiteren
Millisekunde wäre der erste Block vollständig im Empfänger
angekommen und ACK wird zurückgesendet, in der Zwischenzeit
weitere 250 Blöcke senden bis ACK am Sender ankommt
⇒ für Fenstergröße K > 500 gilt Kanalauslastung U = 1
• volle Kanalbelegung gesichert, wenn K so gewählt wird, daß gilt:
• berücksichtige auftretende Fehler
• betrachte hier nur das Verfahren der selektiven Wiederholung
nur die defekten Blöcke werden erneut übertragen
Nr :
durchschnittliche Anzahl der durch Fehler insgesamt
erforderlichen Übertragungen
1
Nr = 1 − P
b
(wie bei S&W-ARQ)
Dauer von K Blockübertragungen > Dauer Hin- und Rückübertragung
>
Tix + 2Tp
K Tix
• wenn diese Bedingung nicht erfüllt ist, gilt für K = 1 natürlich die
Kanalauslastungsgleichung für S&W-ARQ.
Für K > 1 steigt U dann linear mit K
• allgemein gilt also für den fehlerfreien Fall:
1
⎧
⎪ KT
K
U =⎨
ix
=
⎪ Tix + 2Tp 1 + 2Tp / Tix
⎩
für K ≥ 1 + 2Tp / Tix
für K < 1 + 2Tp / Tix
• die richtige Wahl der Fenstergröße in Abhängigkeit des Verhältnisses
Tp/Tix ist offensichtlich entscheidend für die Leistungsfähigkeit dieses
Protokolls
reduziert die Kanalausnutzung linear
1 / N r = 1 − Pb
⎧
⎪
K (1 − Pb )
K
U =⎨
=
⎪ N r (1 + 2Tp / Tix ) 1 + 2Tp / Tix
⎩
für K ≥ 1 + 2Tp / Tix
für K < 1 + 2Tp / Tix
Flußkontrolle (flow control)
nötig zur Steuerung unterschiedlicher Sende- und Empfangsgeschwindigkeiten und zur Vermeidung eines Überlaufs im Empfangspuffer
• Leitungsprotokolle Echo-Überwachung und S&W-ARQ führen mit
ihrer Fehlerbehandlung quasi nebenbei, aber nicht besonders effizient,
eine Flußkontrolle durch
• kontinuierliches ARQ ohne Blocknummernbegrenzung jedoch nicht
• X-ON/X-OFF Protokoll
• Empfänger übermittelt an Sender das spezielle Kontrollzeichen
X-OFF (transmission off) , worauf der Sender die Übertragung
stoppt
• der Sender startet die Übertragung, wenn er das Kontrollzeichen
X-ON vom Empfänger erhält
• Einsatz in Terminals und Druckeransteuerung
• ähnlich läuft das Zusammenspiel der RTS/CTS-Leitungen
(Request to send/Clear to send) bei der RS-232/V.24 Schnittstelle
Link-Management
die Funktionen
• Fehlerbehandlung und
• Flußkontrolle
steuern die Übertragung der Daten
Vorher und nachher muß die Verbindung/Leitung kontrolliert aufgebaut
und wieder abgebaut werden. Die dafür nötigen Prozeduren werden als
Link-Management bezeichnet.
Das Zustands-Diagramm zeigt die typischen Vorgänge beim
Linkmanagement und Datentransfer, die in der angegebenen Reihenfolge
durchlaufen werden:
1
4
• Gleitendes Fenster (sliding window)
• bezeichnet das Verfahren, daß aus der Blocknummernbegrenzung
resultiert und auch der Flußkontrolle dient
• mehr als K ( = Fenstergröße) unbestätigte Blöcke werden nicht
gesendet, hier K = 3
2
3
SETUP sent :
UA:
DISC sent:
an Empfänger wird ein Setup-Block mit der
Information zum Verbindungsaufbau geschickt
unnumbered acknowledge = nichtnumeriertes ACK vom
Empfänger, daß “Anweisung” befolgt
an Empfänger wird Disconnect-Block mit der
Information zum Verbindungsabbau geschickt
Schichten und Dienste
Schichten
• haben eine formale Schnittstelle
• weisen als aktive Elemente Entitäten (entities) auf, die mit Entitäten
gleicher Schichten über ein Protokoll kommunizieren. Entitäten sind
quasi als Softwareprozesse zu verstehen.
• bieten einen Dienst an
der durch Angabe einer
Dienstprimitive (service primitive)
zusammen mit den Nutzerdaten (user data)
aufgerufen wird
Beispiel:
ISO 7498 definiert für einen Dienst D vier verschiedene
Typen von Dienstprimitiven:
D.request
D.indication
D.response
D.confirm
Der Dienst D wird angefordert
Eine Entität erhält über D.indication mitgeteilt,
welcher Dienst angefordert wurde
Mit D.response kann eine Entität auf eine
D.indication antworten
Anfordernde Entität erhält über D.confirm die
Bestätigung für die Ausführung des Dienstes D
Dienstarten und ihre Dienstprimitiven
Drei Dienstarten:
bestätigte Dienste: Verwendung aller 4 Dienstprimitiven
unbestätigte Dienste: Beschränkung auf die Dienstprimitiven
D.request und D.indication
vom Dienstanbieter Aktivierung einer Primitive D.indication durch
initiierte Dienste:
den Dienstanbieter, z.B. um den oder die
Dienstbenutzer über Störungen in
unterliegenden Schichten zu informieren
Zeitfolgediagramm
Verdeutlichung der zeitlichen Beziehungen der Primitiven
hier für die verschiedenen Dienstarten
Übersicht über die Funktionen in einfachen
Leitungsprotokollen
Echo check
X-On/X-Off