Beispiel Two‐Dimensional‐Parity
0 1 0 1
1 1 1 0
0 1 1 0
1 0 0 1
Erkenn‐ und Korrigierbarkeit von Fehlern
0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1
0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1
Ein‐Bit‐Fehler immer korrigierbar
0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 1 0
Zwei‐Bit‐Fehler nicht korrigierbar
0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 1 0
Zwei‐Bit‐Fehler immer erkennbar Nicht‐erkennbarer Fehler
Hamming‐Distanz
Hamming‐Distanz d(v1, v2) zwischen zwei n‐Bit‐Sequenzen v1 und v2
Beispiel: vier 4‐Bit‐Sequenzen mit einer paarweisen Hamming‐Distanz von
mindestens 2
Wieviele Bit‐Fehler können erkannt werden?
Allgemein:
Ablauf der Übertragung im Falle keiner Bitfehler
Block‐Codes
Datenblock Codewort 00 -> 00000 01 -> 00111 10 -> 11001 11 -> 11110
Erkennen von Bit‐Fehlern: Es sei Code = {b1,...,bk} und es werde b empfangen:
Sender
Empfänger
f : Datenblock
Codewort
Korrigieren von Bit‐Fehlern: Es sei Code = {b
1,...,b
k} und es werde b empfangen:
Korrigieren von Bitfehlern
Empfangen Nächstes gültiges CW Daten Datenblock Codewort
00 -> 00000
01 -> 00111
10 -> 11001
11 -> 11110
Für k Daten‐Bits und n‐Bit Code‐Wörter gilt
Eindeutiges C‐Wort für jeden D‐Block, also
Benötigte Anzahl gültiger Code‐Wörter
Redundante Bits und Code‐Redundanz
Code‐Rate
Code‐Distanz für Code {b1,...,bk}
Benötigtes Verhältnis zwischen k und r=n‐
k zum Korrigieren von allen 1‐Bit‐Fehlern?
Hamming‐Code
1 2 3 4 5 6 7 8 9 10 11
Daten‐Bits Check‐Bits
3 = 0 0 1 1 5 = 0 1 0 1 6 = 0 1 1 0 7 = 0 1 1 1 9 = 1 0 0 1 10 = 1 0 1 0 11 = 1 0 1 1
Beispiel‐Daten‐Bits:
1 0 0 1 0 0 0
Erkennen eines Ein‐Bit‐Fehlers
0 0 1 1 0 0 1
1 2 3 4 5 6 7 8 9 10 11
0 0 0 0
0 0 1 1 0 1 1 0 0 0 0
Original Code‐Wort Ein‐Bit‐Fehler
3 = 0 0 1 1 5 = 0 1 0 1 6 = 0 1 1 0 7 = 0 1 1 1 9 = 1 0 0 1 10 = 1 0 1 0 11 = 1 0 1 1
Check Ergebnis
Daten‐Bits Check‐Bits
Hamming‐Code erreicht die Schranke
Wie eben für k Daten‐Bits und n‐Bit Code‐Wörter ausgerechnet:
Benötigtes Verhältnis zwischen k und r=n‐k zum Korrigieren von allen 1‐Bit‐
Fehlern:
r+k+1 ≤ 2 r
Beispiel für unten abgebildeten Hamming‐Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Was wenn Daten nur bis 11?
Umgang mit Bit‐Fehler‐Bursts
Also:
Fakten zu allgemeinen Block‐Codes
Code‐Distanz von dmin = 2t+1 kann bis zu wie viele c‐Bit‐Fehler korrigieren?
Und wie viele d‐Bit‐Fehler erkennen?
Also: Code‐Distanz von dminerlaubt Korrektur von bis zu wie vielen Fehlern?
Und Erkennen von wie vielen Fehlern?
Coding‐Gain
coding gain
Flusskontrolle
Stop‐and‐Wait
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 tf auf 1), dann ist:
Utilization in Abhängigkeit von a
Utilization
Beispiel: 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
…
• Sender‐Fenster: Frames, die versendet werden dürfen (SWS= Sender‐Fenster‐Größe; hier z.B. 4)
• Empfänger‐Fenster: Frames die erwartet werden (RWS = Empfänger‐Fenster‐Größe ; hier z.B. 4)
• Jedes Frame hat eine Frame‐Nummer
• Empfang der am weitesten links stehenden Frames rückt Empfänger‐Fenster vor
• Empfangene Frames werden vom Sender mittels ACK (mit dessen Frame‐Nummer+1) bestätigt
•