# Autonegotiation

Autonegotiation oder Auto-sensing bezeichnet ein Verfahren, das es zwei miteinander verbundenen Ethernet-Netzwerkports (z. B. den Netzwerkports eines Computers und denen des Routers, Hubs oder Switches, mit dem dieser z. B. verbunden ist) erlaubt, selbständig die maximal mögliche Übertragungsgeschwindigkeit und das Duplex-Verfahren miteinander auszuhandeln und zu konfigurieren. Das Verfahren gilt nur für Mehrdrahtverbindungen (Twisted-Pair-Kabel) – nicht aber für WLAN-, Glasfaser- oder Koaxialkabelverbindungen.

## Ethernet

Autonegotiation im Ethernet (auch NWay genannt) arbeitet auf der Schicht 1 des OSI-Modells und ist im IEEE Standard 802.3u, inzwischen überarbeitet in IEEE Standard 802.3-1998 definiert.
Nway oder N-way ist eine ältere Bezeichnung für Autonegotiation in der Telekommunikation. Es wurde 1994 vom Unternehmen National Semiconductor entwickelt, um durch die Markteinführung von Fast Ethernet/100BASE-TX (100MBit/s) entstandene Inkompatibilitäten zu Geräten mit den bis dahin üblichen 10BASE-T (10MBit/s) zu beseitigen.
Anders als bei den beiden langsameren Versionen, bei denen auch eine feste Konfiguration von Geschwindigkeit und Duplex-Modus vorgesehen war, ist bei Gigabit-Ethernet (1000BASE-T) die Implementierung der Autonegotiation verpflichtend. Probleme durch Fehlkonfiguration, die häufig Ursache für mangelhafte Performance in Ethernet-Netzwerken sind, werden so reduziert.

### Link Pulse

Bei Ethernet über Kupferkabel (Twisted-Pair-Kabel) erfolgt die Erfassung von Netzwerkknoten, die an aktive Netzwerkkomponenten (wie zum Beispiel ein Hub oder Switch) angeschlossen werden, über Spannungsimpulse, sogenannte Link Pulses. In 10-Mbit/s-Netzen wird dies durch den NLP (Normal Link Pulse) realisiert, einen periodisch alle 16±8 ms auftretenden Impuls.
In 100/1000 Mbit/s-Netzen (Fast/Gigabit-Ethernet) wird der NLP durch einen Fast-Ethernet-Impuls, den Fast Link Pulse (FLP) ersetzt. Dieser FLP wird ebenfalls alle 16±8 ms ausgesendet, was die Kompatibilität zu älteren Netzwerkkarten gewährleistet. Diese behandeln den FLP wie einen NLP und stellen das Vorhandensein einer Verbindung fest, ohne die im FLP kodierte Information auswerten zu können.
Autonegotiation basiert auf Pulsen, wie sie ähnlich auch von 10BASE-T Teilnehmern verwendet werden, um die Anwesenheit von anderen Teilnehmern zu prüfen. Diese Pulse werden alle 16 ms (mit einer Toleranz von 8 ms) ausgesandt, wenn kein Datenverkehr stattfindet. Die Pulse sind positiv unipolar und 100 ns lang. Sie werden in der 10BASE-T-Terminologie auch link integrity test (LIT)-Pulse genannt, bei der Autonegotiation Spezifikation normal link pulses (NLP)
Ein Teilnehmer erkennt einen Link-Fehler, wenn 50 bis 150 ms weder Datenverkehr stattfindet noch ein Puls erkannt wird. Ein Empfänger quittiert einen gültigen Link mit zwei aufeinanderfolgenden LIT-Pulsen.
Autonegotiation verwendet ähnliche Pulse. Sie sind auch positiv unipolar und haben eine Dauer von 100 ns, aber jeder wird durch eine Sequenz von 33 Pulsen ersetzt. Jede Sequenz wird als fast link pulse (FLP)-burst bezeichnet. Der Zeitabstand zwischen jedem Burst ist derselbe wie zwischen NLPs, 16±8 ms.

### Link Code Word

Die 17 „ungeraden“ Pulse eines FLP-Bursts stellen ein Clocksignal dar, die 16 geraden Pulse enthalten Dateninformationen. Ein FLC-Burst setzt sich also aus einem Rahmen von 17 Pulsen mit einem Abstand von jeweils 125 µs zusammen. In der Mitte von jeweils zwei dieser Rahmen-Pulse kann ein weiterer Puls vorhanden sein, was einer logischen „1“ entspricht, oder er kann für eine logische „0“ fehlen. So entsteht ein logisches Wort aus 16 Bits, das link code word (LCW) genannt wird. Bit 0 ist das erste und Bit 15 das letzte Bit.
Ein FLP-Burst kann nicht als ein NLP erkannt werden und ein 10BASE-T Teilnehmer wird den Burst als einen Link-Fehler interpretieren.
Der FLP besteht aus Taktpulsen jeweils gefolgt von Datenpulsen (33 Impulse), womit ein 16-Bit-Datenwort übertragen wird. Wenn nach dem Taktpuls keiner folgt entspricht das einem Wert logisch 0, bei Auftreten eines Folgeimpulses einem Zellenwert von 1.
Das 16 Bit lange Datenwort (LCW) hat in seiner Grundform als Base Link Code Word folgende Bedeutung:
Base Link Code Word Definition
Beide Gegenstellen der Datenübertragung geben im Technology Ability Field ihre Fähigkeiten bekannt und einigen sich für beide Parameter auf die jeweils beste Übereinstimmung (Voll-Duplex vor Halb-Duplex und hohe Geschwindigkeit vor niedriger). Ein Empfänger muss ein LCW dreimal identisch empfangen, bevor er es akzeptiert und durch setzen des ACK-Bits auf „1“ seinerseits bestätigt bzw. quittiert. Erkennt der Empfänger einen Fehler bzw. eine Inkompatibilität so setzt er das RF-Bit auf „1“. Nach erfolgreicher Autonegotiation muss ein LCW, bei dem das RF-Bit auf „0“ und das ACK-Bit auf „1“ gesetzt ist, mindestens sechsmal gesendet werden, um den Prozess abzuschließen.
Damit lässt sich allerdings z. B. 1000BASE-T (eine Gigabit-Ethernet-Verbindung) noch nicht einstellen. Hierzu ist die Übertragung weiterer Informationen in einem weiteren „Word“ erforderlich, da die Bedeutung des Base-LCWs nicht mehr ausreichend erweiterbar ist um auch diese Konfiguration zuzulassen. Hierzu wird das Next Page-Bit im LCW auf „1“ gesetzt, woraufhin das nächste empfangene „Word“, sowie eine oder mehrere folgende unformatierte „pages“, anders zu interpretieren bzw. zu decodieren sind – nämlich als sogenannte Message page (MP) nach IEEE Standard 802.3, Annex 28C.
Das Aushandeln des Übertragungsmodus geschieht auf beiden Seiten anhand einer Prioritätenliste, um die maximal mögliche Performance zu ermitteln:
| 1 | 40GBASE | -T | full duplex |
| 2 | 25GBASE | -T | full duplex |
| 3 | 10GBASE | -T | full duplex |
| 4 | 5GBASE | -T | full duplex |
| 5 | 2.5GBASE | -T | full duplex |
| 6 | 1000BASE | -T | full duplex |
| 7 | 1000BASE | -T | half duplex |
| 8 | 100BASE | -T2 | full duplex |
| 9 | 100BASE | -TX | full duplex |
| 10 | 100BASE | -T2 | half duplex |
| 11 | 100BASE | -T4 | half duplex |
| 12 | 100BASE | -TX | half duplex |
| 13 | 10BASE | -T | full duplex |
| 14 | 10BASE | -T | half duplex |
Falls sich eine Gegenstelle nicht im Autonegotiation-Modus befindet (abgeschaltet oder nicht unterstützt), kann die andere Gegenstelle die Übertragungsgeschwindigkeit über Parallel Detection ermitteln. Eine Bestimmung des Duplex-Modus ist dabei nicht möglich; somit wird stets der Halb-Duplex Modus ausgewählt. Die Gegenstelle ohne Autonegotiation muss in diesem Fall fest auf Halb-Duplex eingestellt werden, andernfalls ist das Ergebnis ein duplex mismatch (eine Seite Voll-Duplex, die andere Seite Halb-Duplex). Typische Auswirkung hiervon ist eine zwar funktionierende, jedoch sehr langsame Verbindung.

## Fibre Channel

Fibre-Channel-Ports können mit Autonegotiation die Übertragungsgeschwindigkeit erkennen.