Utilization von Stop‐and‐Wait ARQ
Es sei p Paket‐Fehlerrate. Was ist die erwartete Anzahl N der Übertragungsversuche?
Es sei tp der Propagation‐Delay und tf die Transmission‐Time. Was ist die Utilization U?
Mit a = Propagation‐Delay/Transmission‐Time erhält man:
Utilization in Abhängigkeit von a
Utilization
Erinnerung: Satelliten‐
Link‐Beispiel: a = 100 p=10‐1
p=10‐2
p=10‐3
Go‐Back‐N ARQ
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Fall: Frame(i) ist Damaged oder Lost:
B macht nichts
1. Fall: A sendet Frame(i+1)
B empfängt Out-of-Order Frame(i+1) B sendet REJ(i)
A muss Frame(i) und nachfolgende reübertragen
2. Fall: A sendet zunächst nicht Timer von A läuft ab
A sendet RR(„mit P-Bit=1“) B muss mit RR(i) antworten
A sendet bei Empfang von RR(i) (Alternative zu Fall 2: A sendet
Frame(i) nach Ablauf des Timers)
Go‐Back‐N ARQ
Fall: Frame(i) ist Damaged oder Lost:
B macht nichts
1. Fall: A sendet Frame(i+1)
B empfängt Out-of-Order Frame(i+1) B sendet REJ(i)
A muss Frame(i) und nachfolgende reübertragen
2. Fall: A sendet zunächst nicht Timer von A läuft ab
A sendet RR(„mit P-Bit=1“) B muss mit RR(i) antworten
A sendet bei Empfang von RR(i) (Alternative zu Fall 2: A sendet
Frame(i) nach Ablauf des Timers)
Timeout
Go‐Back‐N ARQ
Fall: RR(i) ist Damaged oder Lost:
1. Fall: A empfängt ein späteres RR(j) (ACK sind kummulativ)
A weiß, dass Frame(i),...,Frame(j-1) korrekt angekommen sind
A macht weiter wie bisher 2. Fall: Timer von A läuft ab
A versucht wiederholt:
(mit einem P-Bit-Timer)
A sendet RR(„mit P-Bit=1“) B muss mit RR(i) antworten
Wenn nach einigen Versuchen keine Antwort, dann startet A eine Reset-Prozedur
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Go‐Back‐N ARQ
Fall: RR(i) ist Damaged oder Lost:
1. Fall: A empfängt ein späteres RR(j) (ACK sind kummulativ)
A weiß, dass Frame(i),...,Frame(j-1) korrekt angekommen sind
A macht weiter wie bisher 2. Fall: Timer von A läuft ab
A versucht wiederholt:
(mit einem P-Bit-Timer)
A sendet RR(„mit P-Bit=1“) B muss mit RR(i) antworten
Wenn nach einigen Versuchen keine Antwort, dann startet A eine Reset-Prozedur
Go‐Back‐N ARQ
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Fall: REJ ist Damaged oder Lost:
Timer von A läuft ab
A sendet RR(„mit P-Bit=1“)
B muss mit RR(i) oder REJ antworten A sendet bei Empfang von RR(i)
Timeout
*
Maximal erlaubte Window‐Größe?
A
B
A
B
* * * * * * *
Piggybacked ACK in Übertragung von B nach A
Damit ist für k Bit Sequenznummern die maximal erlaubte Window‐Größe smax: Sequenznummergröße sei 3 Bits; Annahme wir nutzen die volle Window‐Größe 8
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Reübertragung von Frames mit negative ACK
Reübertragung von Frames mit Timeout
Selective‐Reject ARQ
Verwendung der Window‐Größe 2 k ‐1?
A
B
*
Timeout
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 … Window von B
A
B
*
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 … Window von B
Maximal erlaubte Window‐Größe?
Lösung: mache Fenster kleiner, so dass keine Überlappungen vorhanden sind.
Also, damit ist für k Bit Sequenznummern die maximal erlaubte Window‐Größe smax: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 …
Empfänger‐Fenster
Problem: Sender‐Fenster und Empfänger‐Fenster überlappen (d.h. haben gemeinsame Sequenznummern)
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 … Sender‐Fenster
Utilization von Go‐Back‐N und Selective‐Reject
Allgemeine Beobachtung:
U = Utilization eines Verfahrens ohne Berücksichtigung von Paketverlusten Ue
= Utilization eines Verfahrens mit Berücksichtigung von Paketverlusten
tf
= Transmission‐Time für ein Paket
to
= gesamt benötigte Zeit für eine Paketübertragung (d.h. inklusive Delays)
n= Anzahl übertragener Pakete
k
= Erwartete Anzahl an Paketwiederholungen pro Paket bis zum Erfolgsfall
Es gilt:
Utilization bei Selective‐Reject ARQ
Wir hatten für Sliding‐Window ohne Fehler die Utilization U schon hergeleitet:
(mit W = Fenstergröße, a = Propagation‐Delay / Transmission‐Delay)
Mit voriger Beobachtung erhält man für a = Propagation‐Delay/Transmission‐Time und Ue = Utilization mit Berücksichtigung von Paket‐Verlusten:
Wir hatten für Paket‐Fehlerrate p die erwartete Anzahl k der Übertragungsversuche schon hergeleitet:
Utilization bei Go‐Back‐N ARQ
Es sei m die Anzahl zu übertragender Frames, wenn ein Frame reübertragen werden muss.
Es sei p die Paketfehlerrate.
1.) Gesamtanzahl Reübertragungen f(i), wenn ein Frame iVersuche brauchte:
2.) Erwartete Gesamtanzahl k an Reübertragungen für ein Frame:
3.) Somit ergibt sich mit voriger Beobachtung für a = Transmission‐Time/Propagation‐Delay und Ue = Utilization mit Berücksichtigung von Paket‐Verlusten:
Wir hatten für Sliding‐Window ohne Fehler die Utilization U schon hergeleitet:
(mit W = Fenstergröße, a = Propagation‐Delay / Transmission‐Delay)
Utilization bei Go‐Back‐N ARQ
m für W ≥ 2a + 1:
Also, gemäß voriger Folie:
Utilization bei Go‐Back‐N ARQ
m für W < 2a + 1:
Also, gemäß voriger Folie:
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Utilization
a = Propagation‐Delay / Transmission‐Time
Vergleich für p=10 ‐3
Erinnerung: Satelliten‐
Link‐Beispiel: a = 100
Framing
Problemstellung
100010110111011011011101…
Frame 1 Frame 2 Frame 3 Frame 4
Link‐Layer Link‐Layer
Physical Layer Physical Layer
Upper Layers Upper Layers
Asynchrone Übertragung
Framing
Synchrone Übertragung mittels Character‐Count, Byte‐ und Bit‐Stuffing
Character‐Count
Beispiel für Character‐Count‐Verfahren ohne Übertragungsfehler
Beispiel für Fehler bei Character‐Count‐Verfahren aufgrund von Übertragungsfehler
Flag‐Bytes und Byte‐Stuffing
Bildquelle: Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003
Start‐ und End‐Flags mit Bit‐Stuffing
Frames beginnen und enden mit speziellem Bit‐Pattern: z.B. 01111110
01111110 | Header | Payload | Trailer | 01111110
Framing
Beispiel für synchrone Übertragung mittels Enoding‐Violations
Erinnerung: NRZ und das Clocking‐Problem
00111010101000000000000000000000000000000000000000000 Daten
Signal Sender
Sampling Empfänger
Zeit
Clock‐Drift Zeit Clock‐Synchronization
4B/5B
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
...
Data 5‐Bit‐Code 0000 11110 0001 01001 0010 10100 0011 10101 0100 01010 0101 01011 0110 01110 0111 01111 1000 10010 1001 10011 1010 10110 1011 10111 1100 11010 1101 11011 1110 11100 1111 11101