[eMule-Web]  

Zurück   [eMule-Web] > Hardware / Software > Hard- und Software Allgemein

Hard- und Software Allgemein Themen/Fragen zu Hard- und Software wie Hardwareprobleme, OS-bezogene Fragen und andere Software

Antwort
 
LinkBack Themen-Optionen
Alt 31. May 2004, 13:40   #1
Advanced Member
 
Benutzerbild von CyberCop
 
Registriert seit: 10.01.2004
Beiträge: 201

Standard: Unterschied zwischen CRC und anderen Prüfmechanismen Problem: Unterschied zwischen CRC und anderen Prüfmechanismen



Hallöchen!

Dachte mir, ich geben wieder mal etwas Senf zum großen Würstchen (Emule-Board, soll keine Beleidgung sein). Hoffe das der Klecks Senf ein paar Leuten hilft.

Diesmal geht es wie schon im Titel steht um CRC und andere Prüfmechanismen, wenn man Daten überträgt. Ich werde nur ein paar gängige Mechanismen (3) erklären.

Fangen wir nun also an. Ich beschreibe hier das Paritätsbit, die Kreuzparität und CRC.


1. Allgemeines:
===========

Wie sicher jeder (natürlich nicht jeder aber viele) wissen bestehen Daten am PC immer aus Einsen und Nullen (Bsp: binär 00101101 = dezimal 90).
Zur Erinnerung: Dies ist deshalb so, da der Computer nur 2 Zustände erkennt (Strom ein = 1, Strom aus = 0). Nun bei der Datenübertragung kann es passieren (aufgrund von Einstreuungen von Magnetfeldern, oder anderen Störimpulsen) das eines oder mehrere dieser Bits (ein Bit = entweder 1 oder 0) umfallen und aus einer 1 eine 0 wird oder umgekehrt.

Wenn man keine Fehlererkennung und Fehlerkorrektur hätte, würde man fast keine Daten zwischen PC-PC oder PC-Peripherie hin und herschieben können.
Um einzelne eventuelle "Umfaller" (sich verändertes Bit) zu erkennen und zu korrigieren wird das Paritätsbit verwendet.


2. Paritätsbit:
==========

Wenn eine Nachricht versendet wird, wird vom PC der sendet, an die Nachricht ein Paritätsbit angehängt. Ob dieses Paritätsbit 0 oder 1 ist hängt von der Nachricht ab. Der Computer zählt alle Einsen in der Nachricht zusammen. Wenn diese zusammengezählt eine ungerade Zahl ergeben, wird eine 1 an die nachricht angehängt. (dadurch wird die Gesamtzahl an Einsen Gerade). Wenn alle Einsen zusammengezählt schon ohne Paritätsbit Gerade sind wird eine Null angehängt. Die Nachricht wird mitsamt dem Paritätsbit versendet. Der Computer der die Nachricht erhält, schaut als erstes ob das Paritätsbit 0 oder 1 ist und rechnet die Einsen der Nachricht zusammen. Wenn das Ergebnis (Gerade oder Ungerade) mit dem Paritätsbit übereinstimmt, nimmt der Computer an das die Nachricht ohne Fehler übertragen wurde und sendet ein "OK"-Bit an den Sender zurück. Damit ist die Übertragung abgeschlossen. Sollte der Empfänger merken das die Zahl nicht mit dem Paritätsbit übereinstimmt, sendet er ein "Fehler"-Bit zurück an den Sender und dieser überträgt die Nachricht nochmal. Solange bis vom Empfänger ein "OK" kommt.

Man sieht also das Pritätsbit ist einfach und DUMM.

Beispiel: 10110110 + (Paritätsbit) 1
es wird gesendet... 2 Bits fallen um 10011110 + 1

Die Rechnung stimmt, aber die Nachricht ist fehlerhaft.

Man kann nicht erkennen WO das Bit umgefallen ist, oder wieviele.
Daher wurde die nächst bessere Stufe entwickelt. Nämlich die:


3. Kreuzparität (Blockparität):
====================

Bei der Blockparität werden 8x8 Bit in einem Block versendet... jedoch kommt bei dem Block noch eine extra Spalte und eine extra Zeile für die Paritäten hinzu, also werden im Endeffekt 9x9 Bits übertragen:

Skizze:
-------------------*
0 1 0 1 1 0 1 1|1
1 0 0 1 0 0 1 0|1
1 0 1 1 0 1 0 1|1
0 1 1 1 1 1 0 0|0
1 0 1 0 0 1 0 1|0
1 0 0 0 1 0 1 0|1
0 0 1 1 0 1 0 1|0
0 1 1 0 0 1 1 0|0
---------------------
0 1 1 0 1 1 0 0|0 **

* = Die Paritätsspalte, hier werden die Einzelnen Zeilen zusammengerechnet und mit 0 oder 1 ergänzt, wie beim Paritätsbit
**= Die Paritätszeile, hier werden die einzelnen Spalten zusammengerechnet und mit 0 oder 1 ergänzt, wie beim Paritätsbit

Wenn nun ein Bit umfällt (rotes Beispielbit), kann man durch die Kreuzparität rückrechnen wo es sich befindet und es einfach umdrehen.
Schon ist die Nachricht wieder in Ordnung.

Diese Version der Fehlererkennung und Fehlerbehebung funktioniert allerdings nur bei einzelnen Fehlern, wenn nur ein Bit umfällt, und nichtmehrere. Wenn es der Fall ist das mehrere umfallen, benötigt man einen etwas besseren Mechanismus. Kommen wir daher zum CRC:


4. CRC (cyclic redundancy check):
=======================

Diese Version der Fehlerbehebung setzt ein bisschen technisches Verständnis voraus:

Am Anfang steht eine Konstante (eine fixe Zahl) die dem Sender und Empfänger bekannt ist. Die zu sendende Nachricht wird zuerst in Einheiten gegliedert, zum Beispiel:
10011101011101100101010010011101 wird in Bytes aufgespaltet (1 Byte = 8 Bit) = 10011101 - 01110110 - 01010100 - 10011101
Jede dieser Einheiten (Bytes) wird nun durch die oben festgelegte Konstante ganzzahlig dividiert. Der Divisionsrest wird an die Einheit angehängt und mitgesendet.
Sobald die Einheit beim Empfänger angekommen ist, wird die GESAMTE Einheit (+angehängtem Divisionsrest) nochmals durch die gleiche Konstante dividiert. Wenn bei dieser zweiten Division kein Rest herauskommt (also 0) so ist die Übertragung erfolgreich gewesen. Man sieht, auch wenn 2 Bits umfallen (und dadurch ein Fehler kommt, welche dur das einfache Paritätsbit nicht erkennbar wäre) funktioniert diese Fehlererkennung.
Wenn die gewählte Dateneinheit "Byte" ist (8 Bit) so gibt es einige Vorschläge für Konstanten (fixe Zahlen) bei denen die CRC-Prüfung besonders effizient ist.


So, das wars auch schon von mir, ich hoffe ich konnte etwas Licht in die Dunkelheit der Datenübertragung bringen. Wenn jemand noch zusätzliche Fragen hat, so bitte per PN, ICQ oder Mail, oder einfach hier posten


mfg

CyberCop
__________________

The Net is everywhere.
My sysProfile !
CyberCop ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen: Unterschied zwischen CRC und anderen Prüfmechanismen


  1. Der Unterschied zwischen dynamischer IP und Router-DHCP
    DSL Router - 3. September 2019 (4)
  2. Was ist der Unterschied zwischen µtorrent und bittorrent?
    Filesharing - 7. March 2012 (2)
  3. Unterschied zwischen uTorrent und Bit Torrent?
    Filesharing - 2. March 2012 (2)
  4. Was ist der unterschied zwischen uTorrent und BitTorrent
    Filesharing - 9. September 2011 (2)
  5. Was ist eigentlich der unterschied zwischen Rapidshare.com und Rapidshare.de?
    Filesharing - 10. September 2009 (2)
  6. was ist der unterschied zwischen µtorrent und µtorrent turbo boost??
    Filesharing - 6. April 2009 (2)
  7. Was ist der unterschied zwischen Rapidshare und Megaupload ??
    Filesharing - 14. January 2009 (2)
  8. Unterschied im Friend-Upload zwischen Morph und Xtreme
    eMule MODs - Allgemein - 25. February 2007 (2)
  9. unterschied zwischen kad mods und normalen?
    eMule für Neulinge - und auch alte Hasen - 19. March 2005 (3)
  10. Unterschied zwischen 'Takt' und 'Effektiver Takt' ?
    Hard- und Software Allgemein - 4. February 2005 (3)
  11. Unterschied zwischen Disc-at-once und Disc-at-once/96
    Video- und Brenn-Tools - 5. August 2003 (3)
  12. Unterschied Zwischen Lovlace und Original Creditsystem?
    eMule MODs - Allgemein - 11. June 2003 (4)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
PAGERANK