Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Florian Hutter & Nicole Waibel

Ähnliche Präsentationen


Präsentation zum Thema: "Florian Hutter & Nicole Waibel"—  Präsentation transkript:

1 Florian Hutter & Nicole Waibel
Codes Florian Hutter & Nicole Waibel

2 Index Geschichte der Codes ASCII Unicode Huffman-Code Hamming-Code ECC
Aufbau Unicode Huffman-Code Definition Hamming-Code Definition Geschichte Aufbau ECC Arten Fehlererkennung

3 Geschichte der Codes Cäsar Schlüssel
Ende des 19. Jahrhunderts: kommerzielle Chiffren für die Telegraphie Die ersten Kodierungen von Zeichen für Computer (1890) IBM: 6-Bit-BCDIC-Code EBCDIC (8-Bit-Code) 20er Jahre erste Codierungsmaschinen 1. und 2. Weltkrieg: Aufkommen der Kryptographie 1975 Erfindung der Public-Key-Kryptographie Julius Cäsar mit dem Cäsar Schlüssel Ab dem 14. Jahrhundert hatte sich die Verwendung von Codes im Alltag etabliert Ende des 19. Jahrhunderts: kommerzielle Chiffren (Marconi-Code, Edison-Code) für die Telegraphie Die ersten Kodierungen von Zeichen für Computer gehen auf die Hollerith-Lochkarten (benannt nach deren Entwickler Herman Hollerith) zurück, die zur Volkszählung in den USA 1890 entwickelt wurden. Auf diesen Code aufbauend entwickelte IBM den 6-Bit-BCDIC-Code (Binary Coded Decimal Interchange Code), der dann zum EBCDIC (Extended Binary Coded Decimal Interchange Code), einem 8-Bit-Code, erweitert wurde. In den 20er Jahre wurden die ersten Codierungsmaschinen erfunden. 1. und 2. Weltkrieg: Aufkommen der Kryptographie da die Entwicklung durch amerikanische Militärbehörden vorangetrieben wurde 1975 Erfindung der Public-Key-Kryptographie (Whitfield Diffie und Martin Hellman)

4 ASCII - Geschichte Ursprünglich: Darstellung von Schriftzeichen der englischen Sprache Erste Version kannte noch kein Kleinbuchstaben (1963) 1968 der bis heute gültige ASCII achte Bit des Bytes als Prüf- oder Parity-Bit zur Sicherstellung korrekter Übertragungen Ursprünglich: Darstellung von Schriftzeichen der englischen Sprache Erste Version kannte noch kein Kleinbuchstaben (1963) 1968 der bis heute gültige ASCII Für Sonderzeichen anderer Sprachen (z. B. deutsche Umlaute) 8 Bit pro Zeichen auch Acht-Bit-Codes zu wenig Platz mehrere verschiedene spezialisierte Erweiterungen Vor allem für den ostasiatischen Raum einige ASCII-kompatible Mehr-Byte-Kodierungen, die entweder zwischen verschiedenen Codetabellen umschalten oder mehr als ein Byte für jedes Nicht-ASCII-Zeichen benötigen. Wichtig! Keine dieser Acht-Bit-Erweiterungen ist aber „ASCII“, denn dies bezeichnet nur den einheitlichen Sieben-Bit-Code. achte Bit des Bytes als Prüf- oder Parity-Bit zur Sicherstellung korrekter Übertragungen

5 ASCII-Aufbau Es gehört zu jedem möglichen Binärzeichen ein Zeichen.
alphabetischen Zeichen in Groß- und Kleinbuchstaben Sonderzeichen und Steuerzeichen, Einteilung: Zeichen 0 bis 31: Steuerzeichen Zeichen 48 bis 57: Ziffern 0 bis 9 Zeichen 65 bis 90: Großbuchstaben A bis Z Zeichen 97 bis 122: Kleinbuchstaben a bis z Es gehört zu jedem möglichen Binärzeichen ein Zeichen. Die Groß- und die Kleinbuchstaben liegen jeweils in zusammenhängenden Bereichen, was für die Programmierung deutliche Vorteile hat, mit einem Pferdefuß: Werden Strings (Zeichenfolgen, wie etwa Wörter) nach ASCII sortiert, geraten die klein geschriebenen Wörter hinter alle groß beginnenden. Neben den alphabetischen Zeichen in Groß- und Kleinbuchstaben erhält der ASCII-Code noch eine Reihe von Sonderzeichen und Steuerzeichen, Zeichen, die ursprünglich dazu dienten, Drucker oder andere Ausgabegeräte zu steuern. Die 128 Zeichen des ASCII-Codes lassen sich grob so einteilen (in Klammern die hexadezimaler Notierung): * Zeichen 0 bis 31 (1Fh): Steuerzeichen, wie z. B. Tabulatoren, Zeilen- und Seitenvorschub * Zeichen 48 (30h) bis 57 (39h): Ziffern 0 bis 9 * Zeichen 65 (41h) bis 90 (5Ah): Großbuchstaben A bis Z * Zeichen 97 (61h) bis 122 (7Ah): Kleinbuchstaben a bis z Leer- und Interpunktionszeichen, Klammern, Dollarzeichen usw. verteilen sich in den Zwischenräumen. Bei diesem Standard fehlen allerdings Sonderzeichen wie beispielsweise die Umlaute.

6 ASCII-Aufbau ASCII-Code auf 8 Bit erweitert „Code Pages“
Problem: z.B. s nicht korrekt übertragen japanische und chinesische Zeichen nicht darstellbar  DBCS Mit dem Erscheinen des PCs erweiterte IBM den ASCII-Code auf 8 Bit, so dass nun 128 weitere Zeichen darstellbar waren. Neben einigen Sonderzeichen besaß der "erweiterte ASCII-Code" auch eine Reihe von Zeichen zur Darstellung von Blockgrafiken. Mit MS-DOS 3.3 führte Microsoft die sogenannten "Code Pages" ein, die den Zeichen von 128 bis 255 eine flexible auf den jeweiligen Zeichensatz angepasst werden konnte. Damit konnte beispielsweise auch der griechische Zeichensatz dargestellt werden. Die Verwendung unterschiedlicher Codepages machte zwar die für die europäischen Sprachen benötigten Zeichen verfügbar, führt aber bis heute dazu, dass z. B. Umlaute in s nicht korrekt übertragen werden, falls das sendende Mail-Programm nicht korrekt konfiguriert oder fehlerhaft programmiert ist. Noch problematischer war, dass japanische oder chinesische Zeichen nicht dargestellt werden konnten, da ihre Anzahl die 256 möglichen Zeichen bei weitem überstieg. Dazu wurden DBCS (double byte character set) eingeführt, der den Zeichensatz auf 16 Bit erweitert, allerdings auch noch den 8 Bit ASCII-Zeichensatz unterstützt. Mit dem Unicode schließlich wurde ein Schlussstrich unter die Wirrungen in Folge der verschiedenen Erweiterungen gezogen und ein einheitlicher 16-Bit-Zeichensatz eingeführt. Mit Unicode ist es möglich, verschiedene Zeichen und sämtliche vorhandenene Sprachen in einem Zeichensatz darzustellen.

7 Unicode - Geschichte Unicode-Standard 1991 veröffentlicht
1996 von der "International Organization for Standardization" (ISO) als ISO angenommen Unicode-Version Jahr 1991 Version Jahr 1993 Version Jahr 1996 Version Jahr 1998 Version Jahr 2000 Das in Kalifornien ansässige "Unicode Consortium" hat den Unicode-Standard im Jahr 1991 veröffentlicht. Ist im Jahre 1996 von der "International Organization for Standardization" (ISO) als ISO angenommen worden Unicode-Version 1.0 kam im Jahr 1991 heraus Version 1.1 stammt aus dem Jahre 1993 Version 2.0 von 1996 Version 2.1 von 1998 Version 3.0 aus dem Jahr 2000

8 Unicode - Aufbau Unicode (dt. etwa: "Einheitssschlüssel)
alphanumerischer Zeichensatz ISO genormtes System zur Kodierung von Textzeichen "Universal Character Set" (USC; dt.: "Universeller Zeichensatz"). Buchstaben des lateinischen Alphabets, das griechische, kyrillische, arabische, hebräische, thailändische Alphabet und die CJK-Schriften mathematische, kaufmännische und technische Sonderzeichen Unicode (dt. etwa: "Einheitssschlüssel) ist ein alphanumerischer Zeichensatz, ein von der internationalen Standardisierungs-Organisation ISO genormtes System zur Kodierung von Textzeichen. Die offizielle Bezeichnung für den Unicode-Zeichensatz ist "Universal Character Set" (USC; dt.: "Universeller Zeichensatz"). Unicode ist der Versuch, weltweit alle bekannten Textzeichen in einem Zeichensatz zusammenzufassen, also nicht nur die Buchstaben des lateinischen Alphabets, sondern etwa auch das griechische, kyrillische, arabische, hebräische, thailändische Alphabet und die so genannten CJK-Schriften, also die verschiedenen japanischen, chinesischen und koreanischen Schriften. Außerdem können mathematische, kaufmännische und technische Sonderzeichen im Unicode kodiert werden. Jedem Zeichen aus dem Unicode-Zeichensatz ist eine eindeutige Nummer zugewiesen. Der Unicode-Zeichensatz ist in mehrere Ebenen unterteilt.

9 Unicode - Aufbau Die erste Ebene verwendet, die "Basic Multilingual Plane" (BMP; Dt.: "Grundlegende mehrsprachige Ebene“) 16 Bit zur Kodierung jedes Zeichens ( Zeichen) Kodierung: "Universal Character Set 2" (UCS-2; dt.: "Universelle Schriftzeichen-Menge 2") zwei Byte für die Kodierung jedes Zeichens  "Double Byte Character Set" Die ersten 256 Zeichen  "ISO Latin-1" (ISO ); 8 Bit kodiert. Die erste Ebene verwendet, die "Basic Multilingual Plane" (BMP; Dt.: "Grundlegende mehrsprachige Ebene"). In dieser Ebene werden 16 Bit zur Kodierung jedes Zeichens verwendet; es sind also Zeichen möglich. Die Kodierung für Unicode-Zeichen der "Basic Multilingual Plane" wird als "Universal Character Set 2" (UCS-2; dt.: "Universelle Schriftzeichen-Menge 2") bezeichnet, wobei die 2 darauf verweist, dass zwei Byte für die Kodierung jedes Zeichens verwendet werden. UCS-2 ist also ein "Double Byte Character Set". Die ersten 256 der Zeichen des UCS-2 entsprechen den Zeichen des Zeichensatzes "ISO Latin-1" (ISO ); eines ebenfalls von der ISO genormten und weit verbreiteten Zeichensatzes, in dem die Zeichen der west-europäischen Sprachen zusammengefasst sind. In "ISO Latin-1" wird jedes Zeichen mit nur 8 Bit kodiert.

10 Unicode - Aufbau Die übrigen Ebenen des Unicode
historische Schriftzeichen alt-ägyptische Hieroglyphen seltene chinesisches Schriftzeichen 32 Bit kodiert ( Zeichen) Kodierung: "Universal Character Set 4" (USC-4; dt.: "Universelle Schriftzeichen-Menge 4") vier Byte für die Kodierung jedes Zeichens verwendet werden Auf den übrigen Ebenen des Unicode, die über die "Basic Multilingual Plane" hinausgehen, sind selten verwendete, meist historische Schriftzeichen kodiert, zum Beispiel alt-ägyptische Hieroglyphen und kaum noch gebräuchliche chinesisches Schriftzeichen. Für die Darstellung dieser Zeichen aus den höheren Unicode-Ebenen reichen 16 Bit pro Zeichen nicht mehr aus. Dort wird daher jedes Zeichen mit 32 Bit kodiert, so dass insgesamt verschiedene Zeichen möglich sind. Die Kodierung für Unicode-Zeichen der höheren Ebenen des Unicode wird als "Universal Character Set 4" (USC-4; dt.: "Universelle Schriftzeichen-Menge 4") bezeichnet, wobei die 4 darauf verweist, dass vier Byte für die Kodierung jedes Zeichens verwendet werden. Diese Kodierung wird mit Rücksicht auf ihren hohen Speicherplatz-Bedarf nur dann verwendet, wenn auch Unicode-Zeichen verwendet werden sollen, die zu einer höheren Ebene als der "Basic Multilingual Plane" gehören.

11 Unicode - Aufbau Skripten Problem verschiedene Alphabete Firmensymbole
Steuerzeichen Problem verbreitet sich nur langsam Im Unicode sind zusammengehörige Zeichen in so genannten Skripten zusammengefasst: Auf das lateinische Alphabet folgen das griechische, kyrillische, hebräische, arabische, indische und andere, dann folgen Satzzeichen und Symbole; weiter geht es mit den beiden japanischen Schriften Hiragana und Katakana, mit BoPoMoFo (einer phonetischen Transkription des chinesischen PinYin in lateinischen Buchstaben, die vor allem auf Taiwan verwendet wird) und dem koreanischen Hangul. In den chinesischen, japanischen und koreanischen (CJK-) Schriften werden etwa Schriftzeichen verwendet. Da jedoch in der japanischen und chinesischen Sprache rund Schriftzeichen (in der Schreibweise, wenn auch nicht unbedingt in der Bedeutung und Aussprache) übereinstimmen, brauchten im Unicode "nur" rund ost-asiatische Schriftzeichen festgelegt zu werden. Rund Codes sind zum Beispiel für Firmensymbole reserviert. Zum Unicode gehören vier Steuerzeichen, nämlich: * Zeilenende * Absatzende * Schreibrichtung von links nach rechts * Schreibrichtung von rechts nach links. Das Steuerzeichen für die Schreibrichtung von rechts nach links wird zum Beispiel für Arabisch und Hebräisch benötigt. Unicode definiert zwar einen Byte-Wert für alle gängigen (und etliche seltene) Textzeichen, löst jedoch nicht das Problem, wie alle diese Zeichen an einem Computer dargestellt werden können, denn Unicode definiert nur Zeichenwerte und Eigenschaften von Zeichen, enthält aber keine Angaben darüber, wie das Zeichen zum Beispiel auf dem Bildschirm oder im Druck darzustellen ist. Herkömmliche Computer-Schriftarten reichen dazu nicht aus und neue, zum Unicode passende Schriftarten verbreiten sich erst allmählich. Da nach wie vor viele Protokolle, Anwendungen und Programme auf dem ASCII-Zeichensatz beruhen, kann es bei der Verwendung von Schriftzeichen, die nicht zu diesem amerikanischen Zeichensatz gehören, zu Schwierigkeiten kommen. zum Beispiel fußt auf 7 Bit-ASCII-Zeichen. Sollen in einer gleichwohl Sonderzeichen (zum Beispiel die deutschen Umlaute) übertragen werden, müssen diese in ASCII-Zeichen umkodiert werden. Dies ist unter anderem mit Hilfe der "Multipurpose Internet Mail Extensions" (MIME; dt.: "Mehrzweck-Erweiterungen für Internet-Mail") möglich.

12 Huffman-Code Algorithmus der Datenkompression
kodiert die Zeichen eines Textes nach ihrer Häufigkeit Huffman-Kodierbaum Einsatzbereich: Grafikverarbeitung (JPEG, MPEG, Wavelet, LHA) Einer der meistverwendeten Algorithmen der Datenkompression ist der so genannte Huffman-Code. Der Huffman-Algorithmus kodiert die Zeichen eines Textes entsprechend ihrer Häufigkeit und hat damit Ähnlichkeit mit dem Morsecode. Zentraler Bestandteil des Algorithmus ist der Huffman-Kodierbaum, dessen Hierarchie die Häufigkeit der Zeichen widerspiegelt. Huffman- Coding- Trees werden in der Praxis häufig eingesetzt. Vor allem in der Grafikverarbeitung wird die Technik der Huffman-Kodierung zur möglichst redundanzarmen Speicherung der Bilddaten verwendet. Beispiele für Anwendung der Huffman-Kodierung sind JPEG, MPEG, Wavelet, LHA.

13 Ausgangssituation des Huffman-Algorithmus
Huffman-Code - Aufbau Huffman begann den Baum von unten aufwärts zu konstruieren. Er begann mit unverbundenen Knoten für alle vorkommenden Buchstaben der Quelle, jeweils markiert mit der Häufigkeit oder Wahrscheinlichkeit des Auftretens: Ausgangssituation des Huffman-Algorithmus

14 Huffman-Code - Aufbau Jetzt werden immer wieder die zwei Knoten ohne Vorgänger ausgewählt, die die niedrigsten Markierungen haben. Es wird ein neuer Knoten erzeugt, der die beiden ausgewählten Knoten als Nachfolger hat und als Markierung die Summe der beiden Markierungen erhält. Dieser Schritt wird solange wiederholt, bis nur noch ein Knoten keinen Vorgänger hat; in jedem Schritt verringert sich die Anzahl solcher Knoten um eins; gibt es nur noch einen solchen Knoten, ist ein zusammenhängender Baum entstanden. Nach Zusammenfassen von E,F und dann C,D Die beiden Knoten ohne Vorgänger mit Häufigkeit 7 werden zusammengefaßt

15 Huffman-Code - Aufbau Die Häufigkeiten 10 und 14 werden zu 24 zusammengefaßt Der fertige Baum, A:0, B:111, C:100, .., F:1101 Bei dieser Konstruktion ist nicht immer eindeutig festgelegt, welche Knoten zusammengefaßt werden müssen, wenn mehrere Knoten gleiche Markierungen haben. Verschiedene Wahlen führen hier zwar zu unterschiedlichen Kodes, aber immer zur gleichen Länge der kodierten Nachricht, im Beispiel 94 Bits. Wichtig ist dabei vor allem, daß Kodierungs- und Dekodierungsalgorithmus exakt denselben Baum konstruieren.

16 Huffman-Code - Aufbau Nachteile
Umsetzung erfordert umständliche Bitoperationen Optimalität der Kompression Die Nachteile der Huffman-Kodierung sind zunächst dieselben wie bei allen Kodes, die einzelne Zeichen auf Bitfolgen mit unterschiedlichen Längen abbilden: Die Umsetzung erfordert Bitoperationen, die auf den meisten Systemen relativ umständlich sind. Ein weiterer, sehr viel wichtigerer Nachteil betrifft letztlich die Optimalität der Kompression an sich.  Erweiterungen

17 Hamming-Code Richard Hamming linearer fehlerkorrigierender Blockcode
Verwendung: digitalen Signalverarbeitung Nachrichtentechnik zur gesicherten Datenübertragung oder Datenspeicherung Besonderheit dieses Codes: Verwendung mehrerer Paritätsbits Hamming-Code Der Hamming-Code ist ein von Richard Hamming entwickelter linearer fehlerkorrigierender Blockcode, der in der digitalen Signalverarbeitung und der Nachrichtentechnik zur gesicherten Datenübertragung oder Datenspeicherung verwendet wird. Beim Hamming-Code handelt es sich um eine Klasse von Blockcodes unterschiedlicher Länge, welche durch eine allgemeine Bildungsvorschrift gebildet werden. Die Besonderheit dieses Codes besteht in der Verwendung mehrerer Paritätsbits. Diese Bits ergänzen jeweils unterschiedlich gewählte Gruppen von den die Information tragenden Nutzdatenbits. Durch eine geschickte Wahl der Gruppierung, deren mathematische Grundlagen im folgenden beschrieben sind, ist nicht nur eine Fehlererkennung, sondern auch eine Fehlerkorrektur der übertragenden Datenbits möglich. Die einzelnen Codewörter des Hamming-Codes weisen einen Hamming-Abstand von drei auf. Durch diesen Unterschied von jeweils drei Bitstellen kann der Decoder einen Bitfehler in einem Datenblock immer erkennen und korrigieren, bei zwei oder mehr Bitfehlern wird der Datenblock allerdings falsch decodiert. Der erweiterte Hamming-Code mit einem Hamming-Abstand von vier kann durch eine zusätzliche Paritystelle auch zwei Bitfehler in einem Datenblock erkennen, aber nicht korrigieren.

18 Hamming-Code - Geschichte
1940er Jahren: Firma Bell Labs Computer namens Bell Model V Lochkarten durch Abnutzung  Fehler Computer übersprang die fehlerhaften Lochkarten entwickelte speziellen Code Lesefehler selbstständig erkennen korrigieren 1950 publizierte er diesen Hamming-Code In den 1940er Jahren arbeitete Richard Hamming in der Firma Bell Labs an einem Computer namens Bell Model V, welcher mit fehleranfälligen elektromechanischen Relais mit zwei Maschinenzyklen pro Sekunde ausgestattet war. Die zu Dateneingaben verwendeten Lochkarten konnten durch Abnutzung bei der Leseoperation Fehler aufweisen, die zu den normalen Bürozeiten durch Angestellte der Bell Labs von Hand korrigiert werden mussten. Zu den üblichen Arbeitszeiten von Richard Hamming, außerhalb der Bürozeiten und am Wochenende, führten diese Lesefehler dazu, dass der Computer die fehlerhaften Lochkarten übersprang und an anderen Lochkarten weiterarbeitete. Hamming, war durch diese Fehler und den mehrfachen Aufwand frustriert, entwickelte in Folge einen speziellen Code, durch den die Maschine Lesefehler von Lochkarten in bestimmten Umfang selbstständig erkennen und korrigieren konnte. Im Jahr 1950 publizierte er diesen Hamming-Code[1], der noch heute und in teilweise erweiterten Formen im Bereich der Kanalcodierung verbreitete Anwendung findet.

19 Hamming-Code - Aufbau n = 2k − k − 1 n… Datenblock umfasst n Bits
k… fixe Kontrollstellen N… Codewortlänge Binäre Hamming-Codes basieren auf Paritycodes über einem Datenblock fixer Länge. Der Datenblock, auch als „Datenwort“ oder „Nachrichtenwort“ bezeichnet, umfasst n Bits und enthält die eigentliche Nutzinformation. n kann bei dem Hamming-Code nur spezifische ganzzahlige Werte annehmen, welche sich aus der Bildungsvorgabe dieses Codes ergeben. Die Bitkombinationen in dem n Bit umfassenden Datenblock können grundsätzlich beliebig gewählt werden, das heißt es sind alle beliebigen Bitkombinationen zulässig. Das Codewort des Hamming-Codes wird aus dem Datenwort durch Integration zusätzlicher Kontrollstellen, den so genannten Parity-Bits, gewonnen. Dabei wird in jedes Datenwort von n Bit Länge eine fixe Anzahl k Kontrollstellen eingefügt. Daraus ergibt sich das Codewort mit einer Länge von N = n + k. Für ein Codewort sind, da die Kontrollstellen redundante, aus dem Datenblock abgeleitete Information tragen, nur noch bestimmte Bitkombinationen möglich. Auf diesen wesentlichen Umstand gründet sich sowohl die Fehlererkennung, als auch in weiterer Folge die Fehlerkorrektur des Datenwortes. Die Vorgabe zur Codebildung durch eine weitere Gleichung von N zu k ist in folgender Form beschrieben: n = 2k − 1 Dies bedeutet, dass wenn beispielsweise drei binäre Stellen für Kontrollbits (Parity-Bits) zur Verfügung stehen, das Codewort zwangsläufig eine Länge von N=7 aufweisen muss. Für das Datenwort ergibt sich dann eine Länge von n = 7-3 = 4 Bits pro Codewort oder allgemein: n = 2k − k − 1

20 Hamming-Code - Aufbau In folgender Tabelle sind alle möglichen Hamming-Codes unterschiedlicher Codewortlängen bis zur Blockgröße von 255 Bits dargestellt

21 Fehlererkennung & Fehlerkorrektur
Vorwärts Fehlerkorrektur (FEC) Anforderung auf Wiederholung der Übertragung Mögliche Fehlerursachen Rauschen Kurzzeitstörungen Signalverformung Nebensprechen Fehlererkennung Fehlerkorrekturverfahren (englisch: Error Correction Code), dienen dazu, Fehler bei der Speicherung und Übertragung von Daten zu erkennen und, wenn möglich, zu korrigieren. Fehlererkennungsverfahren beschränken sich auf eine reine Fehlererkennung. Dazu wird vor der Speicherung oder Übertragung den Nutzdaten zusätzliche Redundanz in Form zusätzlicher Bits hinzugefügt, die auf der Zielseite zur Bestimmung von Fehlern und Fehlerpositionen genutzt wird. 21

22 Mögliche Fehlerursachen
Rauschen Kann einzelne Bitfehler verursachen Stärke des Rauschens ist entscheidend Kurzzeitstörungen Elektrische Funken, Kratzer auf CDs kosmische Strahlung Signalverformung Nebensprechen Rauschen Rauschen kann unabhängig von der Ursache „hin und wieder“ Bitfehler verursachen. Die Wahrscheinlichkeit für einen Fehler hängt dabei nicht vom Auftreten früherer Fehler ab, sondern nur von der Stärke des Rauschens. Daher ist eine gleichmäßige Verteilung der Fehler in gleich langen Zeitintervallen zu erwarten. * Thermisches und elektronisches Rauschen → Verbreiterung der Entscheidungsschwellen im Augendiagramm → ab und zu wird die Fehlerschwelle überschritten * erzeugt weitgehend gleichmäßig verteilte Fehler (die keine speziellen Schutzmaßnahmen wie z. B. Interleaving erfordern) Signalverformung Dämpfungs- und Phasengang eines Übertragungskanal Nebensprechen Unerwünschter Einfluss benachbarter Digitalkanäle zum Beispiel über kapazitive Kopplung 22

23 Fehlererkennung Erkennung nur bei redundanten Nachrichten möglich.
Mit Hilfe von Paritätsbit Erkennungsverfahren unterscheiden sich nur durch Anzahl von „Schutzbits“ N (Gesammtbit) = M (Nutzbit) + K (Schutzbit) Eine Erkennung von Übertragungsfehlern ist nur dann möglich, wenn diese Nachricht redundant ist, d.h. wenn "überflüssige" Information mit gesendet wurde, die darüber Auskunft gibt, ob eine Verfälschung der Nachricht vorliegt. Ein weit bekanntes Verfahren ist das sog. Paritätsbit, das zur Sicherung von ASCII oder EBCDIC Zeichen verwendet wird. Ohne Redundanz ist eine Erkennung von Fehlern prinzipiell nicht möglich! Verschiedene Verfahren für die Erkennung von Fehlern existieren; sie unterscheiden sich im wesentlichen nur in der Anzahl der hinzukommenden "Schutzbits" und der Sicherheit, mit der einfache und komplexe Störungen der ursprünglichen Nachricht und der Schutzbits erkannt werden. Eine 100-prozentige Garantie für das Erkennen kann jedoch nie gegeben werden! Für jeweils m Nutzbits werden dabei k Schutzbits übertragen, so dass insgesamt n = m + k Bits über die Leitung gehen. Allerdings ist es mathematisch nachweislich, dass die Paritätsbits keinen hohen Schutz bieten, d.h. dass die Sicherheit, mit der aufgetretene Fehler auch erkannt werden, relativ gering ist im Vergleich zu anderen Verfahren. Z.B. CRC 23

24 Fehlerkorrektur 2 Wesentliche Arten: Vorwärts Fehlerkorrektur (FEC)
Anforderung auf Wiederholung der Übertragung (ARQ = automatic repeat request). Für die Fehlerkorrektur sind grundsätzlich zwei verschiedene Methoden bekannt, die Vorwärtsfehlerkorrektur, sowie die aktive und die passive Wiederholung des gesendeten Datenblocks. 24

25 Vorwärts Fehlerkorrektur (FEC)
Vorteil: Kann auf Simplexkanälen vorgenommen werden Nachteil: Hohe Redundanz Die Vorwärtskorrektur hat den Vorteil, dass sie auch auf Simplexkanälen vorgenommen werden kann und dass eine zeitaufwendige Wiederholung vermieden wird. Dafür hat sie den Nachteil, dass immer mit hoher Redundanz gesendet werden muss und nicht nur im Fehlerfall eine Wiederholung stattfindet. 25

26 Beispiel Das folgende Bild zeigt einen Coderaum mit 4 solchen Vektoren. Tritt bei der Übertragung jetzt ein Fehler auf, so wird statt des gesendeten Codewortes ein anderes, ebenfalls gültiges Codewort empfangen, d. h. es ist ein Fehler aufgetreten. Werden aber k Schutzbits hinzugefügt, so ergibt sich ein größerer Code Raum, bei dem nicht alle Vektoren auch gültigen Codeworten entsprechen. Wird bei der Übertragung jetzt ein gültiges Codewort auf ein falsches abgebildet, so kann der Empfänger eindeutig einen Fehler feststellen. Wird noch mehr Redundanz eingeführt indem noch mehr Schutzbits mitgeführt werden und dadurch zwischen den einzelnen Codeworten mehrere Schutzworte im Coderaum angeordnet werden, so kann ein geschickter Empfänger unter Umständen eine Korrektur vornehmen. Ein Maß für die Robustheit des Verfahrens stellt die sogenannte "Haming Distanz" dar; bildlich ist dies durch die Anzahl der zwischen den Codeworten liegenden Schutzworte zu sehen. Wie gezeigt, kann auch ein fehlerkorrigierendes Schutzverfahren immer noch zu fehlerhaftem Empfang von Daten Anlass geben. Das Grundproblem aller Schutz- und Sicherungsverfahren ist eben, dass mit absoluter Sicherheit nur Fehler erkannt werden können. Alle anderen Aussagen sind nur mehr oder weniger zuverlässig, je nachdem wie wahrscheinlich das Auftreten von unerkannten Fehlern ist! Aus diesem Grund müssen auch in Rechnernetzen die Protokolle auf den höheren Ebenen weitere Sicherungsmaßnahmen durchführen, z.B. in Form von sogenannten Software Checksums 26

27 Quellen

28 Danke für eure Aufmerksamkeit


Herunterladen ppt "Florian Hutter & Nicole Waibel"

Ähnliche Präsentationen


Google-Anzeigen