orm@doc-tcpip.org

Erstellt: Mai 2003 - Letzte Modifikation: Mai 2003

[ Main | Local ]


Autonegotiation auf einem Ethernet

Warum ist mein Netz so langsam?

Allgemeines

Autonegotiation ist im Ethernet-Standard definiert und dient zur Autokonfiguration von Ethernet Komponenten.

Grundsätzlich wird die Geschwindigkeit und der Modus (Full- oder Half-Duplex) ausgehandelt. Es gibt aber noch weitere Features, die oft propietär sind.

Es gibt verschiedene Systeme für Twisted Pair und optische Fasern.

Konzept

Funktioniert nur über einen Link, also über zwei Geräte. Das können Karten, Hubs oder Switche in belieber Kombination sein.

Wird nur einmal, beim Initialisieren des Links, ausgeführt. Dies geschieht beim Einstecken des Kabels oder dem Einschalten eines Gerätes, noch bevor irgendwelche Daten auf dem Link übertragen wurden.

Die Autonegotiation nutzt ein eigenes Signal-System, das vom Signal-System der Datenübertragung unabhängig ist.

Beide Link-Partner informieren sich gegenseitig über ihre jeweiligen Fähigkeiten. Der höchste gemeinsame Kennwert wird dann für die Datenübertragung auf diesem Link vereinbart.

Wie es funktioniert

Die nötige Information wird mit Fast Link Pulse (FLP) ausgetauscht. Das ist eine besondere Form des Normal Link Pulse (NLP), der auf 10BaseT Links zur ständigen Überprüfung des Link-Status benutzt wird.

Folgende Twisted Pair Medien kann der Standard erkennen: 10BaseT, 100BaseTX, 100BaseT4, 100BaseT2 und 1000BaseT. (Nicht alle dieser Typen sind kommerzialisiert worden).

Im Fall der NLP werden alle 16.8 ms sehr kurze Pulse (weit unter 1 ms) gesandt; immer dann, wenn der Link im Leerlauf ist.

Die Fast Link Pulse werden in Gruppen von 33 kurzen Pulsen gesendet. Die Pulsdauer liegt bei 100 ns, der Intervall ist wie im NLP Fall 16.8 ms. Daher erkennt ein einfaches 10BaseT Gerät diese Pulse als normale NLP und kann so mit der Autonegotiation umgehen.

Der Burst der 33 Pulse setzt sich aus 17 Pulsen zur Synchronisation (Clocking Information) und 16 Pulsen zur bitweisen Datenübertragung zusammen. Die Pulse zur Synchronisation sind alle ungeraden, die Daten-Pulse die Geraden.

Auf diese Art ist es möglich, 16 Bit an Nutz-Daten zu übertragen, ein sogenanntes Link Code Word. Die Anzahl der Wörter, also der Bursts im Zuge einer Verhandlung, sind unbeschränkt und können den Bedürfnissen angepasst werden. Für die vorgegebenen Kennwerte (Geschwindigkeit und Modus) reicht das erste Wort, die Base Page.

 
.                    1 1 1 1 1 1
.0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
==========|###############|
Selector Field
Für den LAN Typ.
.1 0 0 0 0 
.          Technology Arbitry Field
.          10BT
.            10BT FD  
.              100BTX
.                100BTX FD
.                  100BT4
.                    Pause Mode (Flow Control)
.                      2 Bit Reserviert
.                          Remote Fault Indicator
.                          (Setzt Link Partner)      
.                            ACK
.                              Next Page
.                              (Wenn mehrere Wörter
.                              gesendet werden)

Es werden solange FLP Bursts gesendet, bis die Gegenstelle antwortet. Die Gegenstelle sendet nach 3 empfangenen FLP Bursts mit gleichem Inhalt ihrerseits einen FLP Burst mit gesetztem ACK Bit. Die erste Maschine wartet ihrerseits den Empfang 3 solcher Bursts ab, und sendet dann nochmal 6 bis 8 mal den ersten Burst, jetzt aber mit gesetztem ACK Bit. Damit ist die Autonegotiation beendet, da sich aus der Information die gemeinsamen Kennwerte zwangsläufig ergeben. Das ist der Highest Common Denominator (HCD) für diesen Link.

Es werden nun keine FLP Bursts mehr gesendet. Die Stationen prüfen aber ohne Unterbrechung den Status des Links und initialisieren den Link neu, falls sie eine Unterbrechung registrieren.

Die möglichen Geschwindigkeiten bzw. Modi (Technologien) sind hierarchisch geordnet. Es wird immer die schnellste gemeinsame Einstellung gewählt.

Wird keine gemeinsame Einstellung gefunden, so wird der Port abgeschaltet (10BT Karte und 100BTX Switch).

Das Next Page Feld wird z.B. von Gigabit Ethernet benutzt. Ist dieses Bit gesetzt, wird eine Message Page gesendet, die die Anzahl der unformatierten Pages mit Daten anzeigt. Geantwortet wird mit zwei ACK, einmal zur Bestätigung des Erhaltes der Pages, und zum anderen als Bestätigung des Erhaltes der Information.

Probleme mit der Autonegotiation

Viele Hubs unterstützen verschiedene Geschwindigkeiten, naturgemäß aber nur Half-Duplex Betrieb (also CSMA/CD). Schwierig wird es, wenn nun Geräte mit verschiedenen Geschwindigkeiten angeschloßen werden.

Man in diesem Fall entweder alle Geräte auf die niedrige Geschwindigkeit herunterziehen, oder man kann die Geschwindigkeit setzen und langsamere Geräte abweisen. Leistungsstarke Hubs sind oft für mehrer parallele Geschwindigkeiten geeignet, haben intern also eine Switch-funktionalität.

Viele Geräte sind nicht in der Lage, Autonegotiation durchzuführen (das gilt nicht für 1000BT, hier ist die Fähigkeit zur Autonegotiation im Standard festgelegt).

Stoßen nun ein Autonegotiation-fähiges Gerät und ein dazu nicht fähiges Gerät auf einem Link zusammen, so entsteht ein Problem. Für diesen Fall wurde die Parallel Detection (PD) geschaffen. Das zur Autonegotiation fähige Gerät erkennt auf Grund der fehlenden FLP Bursts des Link-Partners diesen Zustand und startet die PD. Da in jedem Fall NLP gesendet werden, kann mittels PD auf 10BT geschloßen werden. Auch andere Geschwindigkeiten sind anhand derartiger Signal Charakteristiken sicher zu erfassen. Daher setzt das Gerät den Port entsprechend, aber immer in Half-Duplex. Es gibt keine Möglichkeit, den Modus sicher festzustellen, und Half-Duplex steht in der Hierarchie tiefer.

Das typische Problem von sehr schlechtem Durchsatz auf einem bestimmten Link hat häufig diese Ursache. Der zur Autonegotiation nicht fähige Partner wurde fest auf eine Geschwindigkeit und den Modus Full-Duplex eingestellt. Die Gegenstelle startet den Prozess zur Autonegotiation, erkennt das Fehlen der Pulse und startet die PD, findet dabei die richtige Geschwindigkeit und stellt diese im Modus Half-Duplex ein (der Standard schreibt das vor).

Jetzt befinden sich auf dem Link ein Partner, der CSMA/CD benutzt, und ein Partner, der sofort sendet.

Die Performance des Links wird extrem schlecht, es sind in den entsprechenden Logs Late Collisions zu sehen. Diese ziehen als Konsequenz Frame Errors und Dropped Frames nach sich.

In diesem Fall müßen beide Enden fest eingestellt werden.


[ Main | Local ]

[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | RPi | SMTP | Tracing | GPS | LW ]

Copyright 2001-2021 by Orm Hager - Es gilt die GPL
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )