Autonégociation

L'autonégociation est un mécanisme souvent utilisé sur les réseaux de télécommunications, notamment Ethernet, via lequel deux équipements connectés choisissent des paramètres de communication communs, tel que la vitesse, le mode duplex. Via ce mécanisme, les équipements connectés s'échangent dans un premier temps leurs aptitudes, mesurent éventuellement la qualité de la liaison qui les relie et sélectionnent ensuite le mode de transmission le plus rapide supporté par eux deux.

D'un point de vue modèle OSI, l'autonégociation réside dans la couche physique. Elle fut initialement définie dans la norme Ethernet IEEE 802.3u en 1995. Elle a été décrite dans la partie consacrée à Fast Ethernet mais est également rétro-compatible avec le 10BASE-T. Néanmoins, son implémentation était optionnelle et une partie des spécifications ouvertes à interprétation. Ces portions furent supprimées dans la version IEEE 802.3 de 1998. En 1999, le protocole de négociation fut significativement étendu par la nouvelle norme IEEE 802.3, spécifiant le protocole Gigabit Ethernet, rendant le mécanisme d'autonégociation obligatoire pour du Gigabit Ethernet en 1000BASE-T sur paires de cuivre.

Description générale

Le mécanisme d'autonégociation sur une liaison Ethernet peut être utilisé par des équipements capables de transmettre des données à différentes vitesses (10 Mbit/s ou 100 Mbit/s par exemple), ou différents modes duplex (half-duplex et full-duplex), et/ou différents standards à la même vitesse (bien qu'en pratique seul un standard par vitesse est supporté). Chaque terminal annonce toutes ses aptitudes techniques, donc ses principaux modes de communication. Les deux terminaux choisissent le meilleur mode qu'ils ont en commun, en sélectionnant la vitesse la plus élevée (100 Mb/s) et en préférant le mode full-duplex au mode half-duplex pour une même vitesse.

Les équipements provenant de deux constructeurs différents peuvent utiliser chacun un algorithme d'autonégociation différent. Dans ce cas, l'autonégociation ne fonctionnera pas et les deux équipements passeront chacun en "détection parallèle".

La "détection parallèle" est utilisée lorsqu'un terminal supportant l'autonégociation est connecté à un second ne le supportant pas ou l'ayant désactivée logiciellement. Dans ces conditions, le terminal supportant l'autonégociation peut déterminer la vitesse de l'autre équipement et sélectionne la même vitesse que lui. Comme ce mécanisme de "détection parallèle" ne permet pas de déterminer le mode (half-duplex ou full-duplex), le terminal supportant l'autonégociation décide que l'autre équipement est un hub, et choisi le mode half-duplex. Si le terminal sans autonégociation est configuré en full-duplex, une incohérence de mode duplex en résultera. L'impact généralement observé dans ce cas est une connexion fonctionnant à une vitesse très faible.

À part la vitesse et le mode de duplex, l'autonégociation est utilisée pour communiquer le type de port (port unique ou multi-port) ainsi que les paramètres maître/esclave (si configuré manuellement ou non, si le terminal est maître ou esclave si c'est le cas, et le bit "master-slave seed" sinon).

La norme pour le 1000BASE-T (4 paire Cat5) et 1000BASE-TX (2 paires Cat6) nécessite que le mécanisme d'autonégociation soit toujours présent et activé; plusieurs constructeurs empêchent donc la désactivation de l'autonégociation dans ce cas.

Les signaux électriques

Une séquence d'impulsions normales du lien normal, utilisé par les terminaux 10BASE-T pour établir l'intégrité du lien.

L'autonégociation est fondée sur des impulsions similaires à celles utilisées par les terminaux 10BASE-T pour détecter la présence d'autres équipements connectés au lien. Elles sont émises par un équipement lorsqu'il n'émet ou ne reçoit aucune donnée. Il s'agit d'impulsions électriques uni-polaires, uniquement positives, d'une durée de 100 ns, générées à un intervalle de 16,8 ms (avec une tolérance de ms). Ces impulsions sont appelées impulsions de test d'intégrité du lien (link integrity test/LIT) dans la terminologie de la norme 10BASE-T, et sont connues sous le nom d'impulsions normales du lien (normal link pulses/NLP) dans la spécification du mécanisme de l'autonégociation.

Un équipement détecte une panne du lien (soit du média de transmission, soit de l'équipement distant), si ni aucun paquet, ni aucune impulsions ne sont reçus en 50−150 ms. La présence d'un lien valide est signalé par la réception d'un paquet valide ou de deux impulsions LIT. Afin que ceci fonctionne, les équipements émettent des impulsions LIT même s'ils n'en reçoivent aucune.

Trois train d'impulsion 'fast link', utilisé par des équipements avec autonégociation pour annoncer leurs aptitudes..

L'autonégociation utilise des impulsions similaires. Elles sont toujours unipolaires, uniquement positives et d'une durée de 100 ns, mais chacune d'elles est remplacée par un train de, au maximum, 33 impulsions. un tel train est appelé « fast link pulse » (FLP) ou burst. La durée entre le début de chaque burst est identique à la durée entre deux impulsions de lien normal, soit 16 ms avec une tolérance de ms.

Les burst d'impulsions fast link sont réalisés comme suit : il y a 17 impulsions espacées de 125 µs (avec une tolérance de 14 µs). Entre deux couples d'impulsion consécutifs, une autre pulsation peut ou non être présente. Cette présence d'impulsion représente un 1 logique, l'absence, un 0 logique. Ainsi, chaque burst représente un mot logique de 16 bits. Ce mot est appelé 'link code word (LCW). Les 17 impulsions sont toujours présentes et sont utilisées comme horloge, alors que les 16 autres impulsions peuvent être présentes ou non et représentent les informations transmises. Les bits du LOW sont numérotés de 0 à 15, où le bit 0 correspond à la première impulsion possible et le bit 15 à la dernière.

Comment un LWO est encodé dans un burst fast link pulse

Un burst fast link pulse n'est pas reconnu comme une impulsion de lien normal. Donc, un équipement 10BASE-T recevant un tel burst d'un équipement utilisant l'autonégociation détectera une panne du lien. Un lien avec un équipement utilisant l'autonégociation pourra quand même s'établir via le mécanisme parallel device function: l'équipement 10BASE-T gardera ses impulsions de lien normal ou transmettra des paquets. L'équipement avec autonégociation, en les recevant, basculera en mode 10BASE-T half-duplex. Une incohérence de duplex en résultera si l'équipement 10BASE-T fonctionne en mode full-duplex.

Priorité des modes

En fonction des aptitudes reçues des autres équipements, tous les équipements décident du meilleur mode possible supporté par tous les terminaux. La priorité des modes définie dans l'édition de 2002 de la norme 802.3 est la suivante :

  • 1000BASE-T full duplex
  • 1000BASE-T half duplex
  • 100BASE-T2 full duplex
  • 100BASE-TX full duplex
  • 100BASE-T2 half duplex
  • 100BASE-T4
  • 100BASE-TX half duplex
  • 10BASE-T full duplex
  • 10BASE-T half duplex

En d'autres termes, parmi les modes supportés simultanément par tous les terminaux, chacun sélectionne le plus haut placé dans cette liste.

Incohérence duplex

Une incohérence de duplex apparaît lorsque deux équipements inter-connectés sont configurés avec des modes de duplex différents. Ceci peut arriver par exemple si l'un d'eux est configuré avec l'autonégociation alors que le second a son mode fixé en full-duplex (sans autonégociation). Dans ces conditions l'équipement utilisant l'autonégociation détecte correctement la vitesse à utiliser mais est incapable de détecter le mode de duplex correct. Ceci a pour conséquence qu'il utilise la bonne vitesse mais utilise le mode half-duplex.

Lorsqu'un terminal fonctionne en full-duplex alors que le second utilise du half-duplex, la connexion fonctionne mais à une vitesse très faible dès que les deux équipements tentent d'émettre des trames aux mêmes instants. Cela vient du fait que des données peuvent être envoyées dans les deux sens et simultanément dans le mode "full-duplex" mais que dans une seule direction à la fois en mode half-duplex. Ainsi, un équipement full-duplex pourra transmettre des données tout en en recevant. Si l'autre équipement fonctionne en half-duplex, il ne s'attendra pas à recevoir des données (vu qu'il en émet au même moment) ; ainsi, il détectera une collision et tentera de ré-émettre la trame qu'il émettait. Suivant le timing, l'équipement half duplex pourrait détecter une collision tardive, qu'il interprétera comme une erreur 'hard' plutôt qu'une conséquence normale de CSMA/CD et ne tentera pas de ré-émettre la trame. De l'autre côté, le terminal full-duplex ne détecte pas de collision et ne ré-émet pas de trame, même si l'autre équipement a écarté le paquet en raison d'une collision détecté. Néanmoins, l'équipement full-duplex, ne s'attendant pas à recevoir une trame tronquée par le mécanisme de détection de collision, remontera une erreur de séquence de contrôle (Frame Check Sequence/FCS) de trame. Cette combinaison de collisions tardives reportée du côté « half-duplex » et les erreurs FCS reporté par le côté "Full Duplex" peut être symptomatique d'une incohérence de mode duplex.

Cette perte de paquet arrive lorsque les équipements émettent simultanément. Ceci peut arriver même lorsque le lien est utilisé dans un seul sens, d'un point de vue utilisateur. Un flux TCP nécessite que tous les paquets émis soient acquittés par l'équipement récepteur. Même si des données sont émises que dans un seul sens, des collisions peuvent être produites via des paquets d'accusé de réception allant dans le sens opposé.

Notes et références

    • Portail de l’informatique
    • Portail des télécommunications
    Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.