Flusskontrolle
Data Link Layer
• Frame synchronization – how to make frames
• Flow control – adjusting the rate of data
• Error control – correction of errors
• Addressing – making the difference between the stations
• Control and data on the same link – distinguishing different type of information
• Link management – initiation, maintenance and
termination of data exchange
Data Link Layer
• Frame synchronization – how to make frames
• Flow control – adjusting the rate of data
• Error control – correction of errors
• Addressing – making the difference between the stations
• Control and data on the same link – distinguishing different type of information
• Link management – initiation, maintenance and
termination of data exchange
Flow control
• Assuring that data rates are matching
Stop and Wait
• The simplest protocol
• Source sends a frame and waits from receiver to acknowledge that it want another transmission
• Destination is in control of the flow of data
• Reasons:
• Buffer sizes
• Longer transmission higher probability of an error
• To allow access to shared medium
Stop‐and‐Wait
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Es sei tp der Propagation‐Delay und tf die Transmission‐Time für einen Frame. Die Gesamtzeit T für n Frames ist:
·
Die Utilization U (d.h. Zeit für Daten in
Relation zur Zeit für Daten plus Overhead) ist:
Definiere a = tp / tf (d.h. normalisiere tfauf 1), dann ist:
Stop‐and‐Wait
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Es sei tp der Propagation‐Delay und tf die Transmission‐Time für einen Frame. Die Gesamtzeit T für n Frames ist:
·
Die Utilization U (d.h. Zeit für Daten in
Relation zur Zeit für Daten plus Overhead) ist:
·
·
Definiere a = tp / tf (d.h. normalisiere tfauf 1), dann ist:
Stop‐and‐Wait
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Es sei tp der Propagation‐Delay und tf die Transmission‐Time für einen Frame. Die Gesamtzeit T für n Frames ist:
·
Die Utilization U (d.h. Zeit für Daten in
Relation zur Zeit für Daten plus Overhead) ist:
·
·
Definiere a = tp / tf (d.h. normalisiere tfauf 1), dann ist:
· ·
Utilization in Abhängigkeit von a
Utilization
a = Propagation‐Delay / Transmission‐Time
1 Mbps Satelliten‐Link und 1000 Bit Frame mit 100ms Propagation‐
Delay:
Utilization in Abhängigkeit von a
Utilization
a = Propagation‐Delay / Transmission‐Time
1 Mbps Satelliten‐Link und 1000 Bit Frame mit 100ms Propagation‐
Delay:
. .
.
Sliding‐Window‐Protokoll
Sender Frame 1 Frame 2 Frame 3 Frame 4 Frame 5 Frame 6
…
Empfänger
Window
Frame 1 Frame 2 Frame 3 Frame 4 Frame 5 Frame 6
…
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Sliding‐Window‐Protokoll: Details
Sliding‐Window‐Protokoll: Beispiel
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Utilization – Fall 1: W ≥ 2a + 1
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Fenstergröße = W, Frame‐Transmission‐Time = 1 und normalisierter Propagation‐Delay = a (a sei ganzzahlig). Was ist die Utilization U in diesem Fall?
·
·
Utilization – Fall 2: W < 2a + 1
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Was ist die Utilization Uin diesem Fall?
· ·
· · · , :
, ·
· ,
Utilization
Erinnerung: Satelliten‐
Link‐Beispiel: a = 100
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Utilization
a = Propagation‐Delay / Transmission‐Time
Zusammenhang zum Delay‐Bandbreiten‐Produkt
Es sei a = Propagation‐Delay / Transmission‐Time
t
p= Propagation‐Delay [s]
t
f= Transmission‐Time [s]
B = Bandbreite [bps]
L = Frame‐Länge [Bits]
Fehlerkontrolle
Error control
• Lost frame
• Damaged frame
• Automatic repeat request (ARQ)
• Stop‐and‐wait ARQ
• Go‐back‐N ARQ
• Selective‐reject ARQ
Automatic‐Repeat‐Request (ARQ)
Fehlerfälle
Fehlerdetektion
Positive‐Acknowledgment
Retransmission nach Timeout
Negative‐Acknowledgment und Retransmission
Techniken
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Stop‐and‐Wait ARQ
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
(A) Lost/Damaged Frame (B) Lost ACK
Utilization von Stop‐and‐Wait ARQ
Es sei p Paket‐Fehlerrate. Was ist die erwartete Anzahl N der Übertragungsversuche?
Probability for exactly k transmissions: · 1
Then:
∑ · ∑ · · 1
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
a = Propagation‐Delay / Transmission‐Time
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
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)
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
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
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
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