Codierung
Um Daten bzw. Pakete von einem Host zum anderen zu senden oder zu empfangen, wird Schicht 1 im OSI Schichtenmodell benötigt. Hierüber wird der Frame aus Bits in eine Serie von Signalen gewandelt und auf das Medium gesendet. An dieser Stelle spricht man von Encoding bzw. Codierung.
Codierung
Wenn Daten in einem Netzwerk versendet werden wird über die Schichten 2 - 7 ein Frame mit den Nutzdaten (Payload) und dem Kopf (Overload) aus Bits bestehend gebildet. Dieser Frame wird dann in eine Serie von Signalen gewandelt und auf das Medium gesendet. Die einzelnen Signale können elektrisch, optisch oder über Funkwellen übertragen werden. Wenn diese Daten auf der Gegenseite ankommen werden sie wieder in einen Frame umgewandelt, der vom auf Schicht 2 liegenden Data Link Layer verarbeitet werden kann.
Ein Frame kann in einen vordefinierten Code umgewandelt werden. Hier spricht man auch von Codierung bzw. im Englischen von Encoding. Dieser Code wird durch Spannungswechsel dargestellt. Beim Encoding wird ein beiden Seiten bekannter Code genutzt, der auch von beiden Seiten decodiert werden kann. Bekannte Beispiele für Codierung bzw. Encoding sind:
Manchester-Codierung
Beim Manchester Encoding wird eine 0 durch einen Spannungswechsel von Hoch (High) zu Tief (Low) dargestellt. Eine 1 wird mit einem Wechsel von Tief (Low) zu Hoch (High) dargestellt. Man spricht hier auch von Flankenwechseln. Dieser Wechsel findet immer bei der Hälfte eines Zeittaktes statt. Sofern 2 oder mehr gleiche Bits gesendet werden sollen, muss in der 2. Hälfte des Zeittaktes ein erneuter Flankenwechsel statt finden, damit im nächsten wieder das gleiche Bit dargestellt werden kann.
Durch die vielen Flankenwechsel wird bei dieser Methode eine relativ hohe Wechselspannungsfrequenz erzeugt. Es kann z.B. bei einem 10 Mbit/s LAN im schlimmsten Fall eine Frequenz von 10 MHz und bei einem 100 Mbit/s LAN sogar 100 MHz entstehen. Dazu sind normale "LAN-Kabel" nicht in der Lage!
Durch die Eindeutigkeit der Flankenwechsel kann die Gegenseite klar erkennen, wann ein Bit gesendet wird und wann nicht. Man spricht hier auch von einem selbstsynchronisierendem Verfahren.
Diese Codierung ist bei RFID, NFC (Near Field Communication) und älteren Ethernets wie dem 10 Mbit/s-LAN vertreten.
Non-Return to Zero (NRZ)
Beim Non-Return to Zero Encoding wird eine 0 durch eine gleichbleibende Spannung dargestellt. Eine 1 wird über eine Veränderung dieser Spannung dargestellt. Bei mehreren gleichen Bits, die unmittelbar hintereinander gesendet werden, bleibt der Pegel unverändert. Da hier aber schwer zu erkennen ist, wann ein Bit beginnt bzw. endet, muss der Gegenstelle dies über besondere 01-Bitgruppen oder einer parallelen Signalleitung mitgeteilt werden. Die kommunizierenden Stellen müssen sich also synchronisieren.
Der Nachteil der NRZ Methode besteht auch darin, dass bei langen aufeinanderfolgenden gleichen Bits auch lange Gleichspannungszustände herrschen. Die Übertragung wird also sehr anfällig gegenüber Spannungsstörungen.
Ein Beispiel für diese Methode ist die RS-232 Schnittstelle.
MLT-3 und 4B/5B
MLT-3 steht für Multi Level Transmission-3 und ist ein Verfahren zur Leitungscodierung wie NRZ- und Manchester-Codierung. Die 3 steht für die 3 Level des MLT-3-Verfahrens (High-0-Low).
Der Levelwechsel findet bei jeder logischen 1 statt. Bei einer 0 bleibt der Pegel unverändert. Eine 4-Bit Folge von 1 führt zu einem kompletten Schwingungsdurchgang, während eine Folge von 0en eine durchgängige Gleichspannung erzeugt. Es wird also die Frequenz um mindestens den Faktor 4 im Verhältnis zur Anzahl der Bits verringert.
Um diesem Problem zu entgehen, werden die 4-Bit Codes in 5-Bit Codes umgewandelt. In diesen Codes werden übertragungstechnisch ungünstige Bitkombinationen mit 3 in folge auftretende Nullen nicht genutzt. Dies wird durch die Anzahl der Kombinationen möglich gemacht:
4 Bit (24) entsprechen 16 Möglichkeiten |
5 Bit (25) entsprechen 32 Möglichkeiten |
Es werden also 25% mehr Bits in Kauf genommen, um ungünstige Bitkombinationen zu vermeiden!
Eine 4B zu 5B Konvertierung sieht dann folgendermaßen aus:
4B | 5B | 4B | 5B | |||
0000 | ⇒ | 11110 | 1000 | ⇒ | 10010 | |
0001 | ⇒ | 01001 | 1001 | ⇒ | 10011 | |
0010 | ⇒ | 10100 | 1010 | ⇒ | 10110 | |
0011 | ⇒ | 10101 | 1011 | ⇒ | 10111 | |
0100 | ⇒ | 01010 | 1100 | ⇒ | 11010 | |
0101 | ⇒ | 01011 | 1101 | ⇒ | 11011 | |
0110 | ⇒ | 01110 | 1110 | ⇒ | 11100 | |
0111 | ⇒ | 01111 | 1111 | ⇒ | 11101 |