EthernetEthernet est un protocole de communication utilisé pour les réseaux informatiques, exploitant la commutation de paquets. Il réalise les fonctions de la couche physique et de la couche liaison de données (couches 1 et 2) du modèle OSI. C'est une norme internationale ISO/IEC/IEEE 8802-3[1]. Il a été conçu au début des années 1970 pour faire communiquer des ordinateurs rattachés à un même « éther », c'est-à-dire un milieu passif capable de transférer des données, comme un câble coaxial. Depuis les années 1990, on utilise très fréquemment une transmission sur un câble de paires torsadées pour la connexion des postes clients, et sur fibre optique pour le cœur du réseau. D'abord développé pour un débit binaire inférieur à 3 Mb/s[2],[3], Ethernet est maintenant standardisé jusqu'à 400 Gb/s[4] et des débits plus rapides sont à l'étude. À l'origine prévu pour des transmissions sur des réseaux locaux, Ethernet est aujourd'hui utilisé sur tout type de réseau (réseau étendu, dorsale Internet, automobile…) mais aussi pour des communications sur circuit imprimé. Ethernet divise le flux de données en petites sections appelées trames. Chaque trame consiste en un entête contenant des informations liées au message à transmettre, une charge utile contenant le message lui-même et un postambule incorporant un code de détection d'erreurs qui élimine les trames corrompues. La simplicité du protocole le rend très flexible et adaptable à d'autres technologies : c'est la raison de sa popularité. Les trames sont envoyées et reçues à l'aide d'un émetteur-récepteur qui assure la liaison entre le médium de transmission et l'équipement informatique. Ethernet est fréquemment utilisé pour transmettre les télécommunications personnelles ou professionnelles et se combine facilement avec les technologies sans fil (protocoles Wi-Fi). Il a largement supplanté d'autres standards comme le Token Ring, FDDI et ARCnet. Le protocole internet est communément porté par le protocole Ethernet, ce qui fait de ce dernier une importante base technologique d'Internet. Par métonymie, on parle parfois de câble Ethernet et de port Ethernet pour désigner un câble de paires torsadées avec connecteur 8P8C (appelé aussi connecteur RJ45) et du port associé, voire de connexion Ethernet pour désigner tout type de connexion filaire, même si le protocole Ethernet n'est pas forcément utilisé. Origine du nomDans les premiers réseaux Ethernet, le câble coaxial diffusait les données à toutes les machines connectées, de la même façon que les ondes radiofréquences parviennent à tous les récepteurs. Le nom Ethernet dérive de cette analogie[5] : avant le XXe siècle, on imaginait que les ondes se propageaient dans l'éther, milieu hypothétique censé baigner l'Univers. Quant au suffixe net, il s'agit de l'abréviation du mot network (« réseau ») en anglais. On peut écrire parfois le nom francisé Éthernet. Modèle OSILe protocole Ethernet réalise les fonctions de la couche physique (couche 1 du modèle OSI) et de la sous-couche contrôle d'accès au support (MAC, Media Access Control). Il est possible d'ajouter des protocoles supplémentaires en les encapsulant dans la trame Ethernet. Par exemple, quand elle est implémentée, la sous-couche contrôle de la liaison logique (LLC, Logical Link Control), standard IEEE 802.2[6],[7], complète la couche liaison de données (couche 2 du modèle OSI). L'image ci-dessous schématise le rapport entre modèle OSI et le standard IEEE 802.3. HistoireEthernet a été développé au Xerox Palo Alto Research Center, à Palo Alto en Californie (États-Unis), à partir de 1973[5],[8], grâce aux travaux de Robert Metcalfe[9] s'inspirant d'ALOHAnet. Un brevet, dont les inventeurs sont Metcalfe, David Boggs, Charles Thacker et Butler Lampson, est déposé par Xerox en 1975[10]. L'année suivante, Metcalfe et Boggs décrivent, dans un article, un système Ethernet opérationnel pour 256 stations réparties sur un kilomètre de câble coaxial[2]. Metcalfe quitte Xerox en 1979 et fonde l'entreprise 3Com pour promouvoir l'utilisation des ordinateurs personnels et des réseaux locaux. Il convainc Digital Equipment Corporation, Intel et Xerox de travailler ensemble[11] pour promouvoir Ethernet en tant que standard, au terme d'une période au cours de laquelle la réflexion des constructeurs s'oriente vers une informatique décentralisée[12]. 3Com deviendra une compagnie majeure du domaine des réseaux informatiques, jusqu'à son rachat par Hewlett-Packard en 2010. La spécification Ethernet I (10 Mb/s), surnommée « DIX » (pour « DEC Intel Xerox »), est publiée en 1980[13],[14], puis révisée en 1982 (Ethernet II)[15]. L'Institut des ingénieurs électriciens et électroniciens (IEEE) s'inspire de la spécification DIX et publie la norme IEEE 802.3 en 1983[16],[17]. Les standards DIX et 802.3 sont interopérables[18]. Par la suite, les mises à jour normatives ont été formalisées par l'IEEE, et 802.3 a du reste pris officiellement en compte les aspects de DIX en 1998 (révision 802.3-1998)[19]. Ethernet était à l'époque en compétition avec deux systèmes propriétaires, Token ring (IBM, plus récent) et ARCnet (TRW-Matra, plus ancien) ; ces deux systèmes ont au fil du temps diminué en popularité[14] puis disparu face à Ethernet, en raison de la baisse de coûts due à la production de masse, et aux modernisations ultérieures d'Ethernet. Ethernet avait par ailleurs moins de contraintes topologiques que le Token ring (au CeBIT de 1995, on pouvait voir à titre expérimental un simili plafond blanc utilisé comme medium Ethernet, les signaux transitant par infrarouge). NormalisationAu niveau de la couche MAC, le protocole Ethernet a très peu changé depuis son invention. Des protocoles supplémentaires se sont ajoutés pour pallier le manque de fonctionnalités d'Ethernet sans que le principe de base soit bouleversé. Quelques-uns sont décrits à la section Évolutions protocolaires ultérieures de cet article. Au niveau de la couche physique, au contraire, les évolutions d'Ethernet ont été nombreuses et motivées par plusieurs facteurs, dont le besoin d'un plus grand débit, l'adaptation aux structures préexistantes, le coût des équipements et du médium de transmission, etc. La section ci-dessous donne un bref résumé de quelques versions d'Ethernet les plus connues. En plus de tous ces standards officiels, plusieurs fabricants ont implémenté des versions propriétaires pour différentes raisons, par exemple pour opérer à de plus longues distances sur de la fibre optique. Premières versions d'Ethernet sur câble coaxial
Ethernet 10 Mbit/s sur paires torsadées ou fibre optique
Fast Ethernet (100 Mbit/s)
Gigabit Ethernet (1 000 Mbit/s)
10 Gigabit Ethernet10 Gigabit Ethernet (10GbE) et les standards plus rapides encore prennent seulement en charge le mode full duplex. L'utilisation de concentrateurs n'est plus possible. Le standard a été spécifié par le groupe de travail IEEE 802.3ae, dont la première publication date de 2002, puis a été incorporé dans une révision de l'IEEE 802.3.
Sur fibre optique, le mode LAN[22] fonctionne à un débit ligne physique de 10,3 Gbit/s ce qui représente un débit à la couche MAC de 10 Gbit/s, car la sous-couche PCS utilise un codage 64b/66b. Le sur-débit de ce code est de 3 %, à comparer aux 25 % du codage 8B10B du Gigabit Ethernet.
25 Gigabit et 50 Gigabit EthernetLe 25 Gigabit Ethernet et 50 Gigabit Ethernet sont des standards destinés aux connexions de centres de données, définies sous les normes 802.3by[24] et 802.3cd[25], et sont proposés par plusieurs constructeurs. Ils ont été validés en 2016[26]. Ethernet 40 gigabits par seconde et 100 gigabits par secondeCes deux familles de standards (40GBASE et 100GBASE) ont été initialement définies en 2010 sous la norme IEEE 802.3ba. Ethernet 200 gigabits par seconde et 400 gigabits par secondeCes deux familles de standards (200GBASE et 400GBASE) ont été définies en décembre 2017 sous la norme IEEE 802.3bs. Interfaçage avec le médium de transmissionLa connexion entre le médium de transmission (le plus souvent un câble) et l'équipement informatique (parfois via une carte réseau) est très importante, car elle réalise la transition entre lien physique et lien logique. Cette connexion est réalisée grâce à un émetteur-récepteur (transceiver), dont le format a évolué avec les différentes normes Ethernet. Câble coaxiauxDans les premières versions d'Ethernet, l'interfaçage avec le câble coaxial de transmission se fait grâce un adaptateur externe appelé Medium Attachment Unit (MAU). La connexion au médium de transmission est assurée en perçant le câble pour se connecter au centre et à la masse (prises vampires). Par la suite (notamment avec 10BASE2), on utilise des connecteurs BNC en T pour se brancher. Cependant un adaptateur d'impédance (souvent surnommé « bouchon ») à chaque extrémité du bus reste nécessaire pour limiter les pertes par réflexion du signal. Le signal est transféré du MAU à l'ordinateur grâce à un Attachment unit interface (AUI), d'interface D-sub. Modules optiques : couche PMD (PHY)Divers fabricants (Fiberxon, Sumitomo, Finisar[27], etc) proposent des modules optiques (ou cuivre, selon la technologie employée) appelés transceivers en anglais, permettant une interopérabilité. Ces modules permettent de convertir le signal optique (côté ligne) en un signal électrique différentiel (côté matériel) au débit de 10,3 Gbit/s; c'est donc l'équivalent de la couche PHY au niveau PMD du modèle OSI. Il existe plusieurs normes pour ces transceivers, par exemple (en 10 Gb/s) : XENPAK, XPAK, X2, XFP (normalisés selon le XFP MSA Group), SFP+ (normalisés selon le Small Form Factor Committee). Serdes : couche PMA (PHY)Ce signal de 10 Gbit/s, trop rapide à l'époque de sa standardisation, ne pouvait pas être traité directement, il a donc fallu le paralléliser, en général sur 64 bits. Des circuits dédiés spécialisés permettent cette conversion. Le terme serdes vient de l'anglais serialiser/deserialiser. Codage 64b/66b : couche PCS (PHY)Le codage en ligne utilisé 64b/66b transforme le format XGMII (64 bits de données plus 8 bits de contrôle) en mots de 66 bits. L'objectif est multiple :
Le code 66 bits est composé de deux bits de synchronisation suivis de 64 bits de données.
Les 64 bits de données sont chiffrés par un embrouilleur auto synchronisé. À ce niveau-là nous retrouvons un format équivalent MII, les couches suivantes : data link (MAC), network (IP), transport (TCP/UDP) fonctionnant de façon similaire au gigabit Ethernet. Topologie et collisionsTopologie initialeEthernet est initialement fondé sur le principe de membres (ou pairs) connectés sur le réseau et recevant tous les messages transmis à l'intérieur d'un fil ou d'un canal commun. Ainsi, Ethernet est conçu à l'origine pour une topologie physique et logique en bus : tous les signaux émis sont reçus par l'ensemble des machines connectées. On parle de réseau de type diffusion (broadcast). Chaque pair est identifié par une adresse MAC unique, pour s'assurer que tous les postes sur un réseau Ethernet aient des identifiants distincts sans avoir besoin de configuration préalable. Cependant, les pairs ne sont pas synchronisés, il peut donc y avoir des situations où plusieurs trames sont reçues en même temps, d'autant plus fréquemment qu'il y a de pairs. On parle alors de collision de trames. Historiquement[28], Ethernet utilisait des bus sur câbles coaxiaux, avec les normes 10BASE5 puis 10BASE2. Il fut ensuite adapté en 10BASE-T pour utiliser des topologies physiques en étoile sur câbles à paires torsadées, les pairs étant raccordés à des concentrateurs (hubs), ce qui ne change, toutefois, rien à la nature d'Ethernet : la topologie logique reste le bus, le médium reste partagé, tout le monde reçoit toutes les trames, il n'y a toujours qu'un seul segment, tout le monde voit les collisions[29]. Il est possible de raccorder deux segments Ethernet par le biais d'un pont (bridge)[19] qui va répéter et retransmettre à l'identique, contrairement à un routeur, les trames d'un segment vers un autre segment. Les deux segments ainsi raccordés forment un seul domaine de diffusion, en revanche ils forment chacun leur propre domaine de collision car les collisions ne traversent pas le pont. Gestion des collisionsUne technologie connue sous le nom de CSMA/CD (Carrier Sense Multiple Access with Collision Detection, Écoute de porteuse avec accès multiples et détection de collision) régit la façon dont les postes accèdent au médium. Au départ développée durant les années 1960 pour ALOHAnet à Hawaï en utilisant des signaux radio, la technologie est relativement simple comparée à Token Ring ou aux réseaux contrôlés par un maître. Lorsqu'un pair veut envoyer de l'information, il obéit à l'algorithme suivant[30] :
En pratique, CSMA/CD fonctionne comme une discussion ordinaire, où les gens utilisent tous un médium commun, l'air, pour parler à quelqu'un d'autre[32]. Avant de parler, chaque personne attend poliment que plus personne ne parle. Si deux personnes commencent à parler en même temps, les deux s'arrêtent et attendent un court temps aléatoire. Il y a de bonnes chances que les deux personnes attendent un délai différent, évitant donc une autre collision. Des temps d'attente en progression exponentielle sont utilisés lorsque plusieurs collisions surviennent à la suite. Comme dans le cas d'un réseau non commuté, toutes les communications sont émises sur un médium partagé, toute information envoyée par un poste est reçue par tous les autres, même si cette information était destinée à une seule personne. Les ordinateurs connectés par Ethernet doivent donc filtrer ce qui leur est destiné ou non. Ce type de communication « quelqu'un parle, tous les autres entendent » d'Ethernet était une de ses faiblesses, car, pendant que l'un des nœuds émet, toutes les machines du réseau reçoivent et doivent, de leur côté, observer le silence. Ce qui fait qu'une communication à fort débit entre seulement deux postes pouvait saturer tout un réseau local[33]. De même, comme les chances de collision sont proportionnelles au nombre de transmetteurs et aux données envoyées, le réseau devient extrêmement congestionné au-delà de 50 % de sa capacité (indépendamment du nombre de sources de trafic). Suivant le débit utilisé, il faut tenir compte du domaine de collision régi par les lois de la physique et notamment la vitesse de propagation finie des signaux dans un câble de cuivre. Si l'on ne respecte pas des distances maximales entre machines, le protocole CSMA/CD devient inopérant et la détection des collisions ne fonctionne plus correctement. Évolution majeure : Ethernet commuté
Pour résoudre les problèmes liés aux collisions, les commutateurs (switchs) ont été développés afin de maximiser la bande passante disponible. Les premiers commutateurs commerciaux voient le jour en 1989. Un commutateur est une sorte de pont multiport, chaque lien point à point entre un hôte et le commutateur étant alors un segment avec son propre domaine de collision. Dans ce cas, les caractéristiques d'Ethernet changent nettement[34] :
Trames EthernetUne trame Ethernet est un message écrit en système binaire, avec des bits pouvant prendre 0 ou 1 comme valeur. Afin de limiter la taille de l'affichage, on choisit parfois de grouper ces bits en octets et de les représenter sous forme hexadécimale. La trame est précédée d'un préambule et d'un délimiteur de début de trame (SFD, Start Frame Delimiter), qui font partie du paquet Ethernet à la couche physique. Le préambule est un motif de 0 et de 1 en alternance, avec les deux derniers bits valant 1, qui permet aux équipements de réseau de synchroniser leurs horloges au bit près. Le champ SFD, qui suit immédiatement le préambule, est un octet de valeur 0xD5, qui marque le début de la trame, donc qui délimite les octets. Chaque trame Ethernet débute par un entête, qui contient les adresses MAC de destination et de source dans ses deux premiers champs. L'entête est suivi par la charge utile à transmettre, qui contient elle-même les entêtes des protocoles de couche plus haute, par exemple le protocole Internet. La trame finit par une séquence de vérification de trame (FCS, Frame Check Sequence), qui consiste en un contrôle de redondance cyclique de 32 bits utilisé pour détecter si les données sont corrompues pendant la transmission. Le délai inter-paquet (IPG, Interpacket gap) correspond à la durée séparant deux paquets Ethernet, au minimum de 12 octets.
Types de tramesHormis les expérimentations d'avant 1982, on trouve principalement quatre types de trames Ethernet[35].
Ces différents types de trame ont des formats différents mais peuvent coexister sur un même médium physique et être distingués par les membres du réseau[37]. La différence de base entre les trames Ethernet II et les autres trames est l'utilisation du champ de 16 bits (soit 2 octets) situé après les adresses MAC :
Par convention les valeurs de ce champ entre 0 et 1 500 (0x0000 à 0x05DC en système hexadécimal) indiquent une taille de charge utile, donc permettent d'identifier une trame Ethernet 802.3 ; et les valeurs plus grandes indiquent un EtherType, donc l'utilisation du format Ethernet II. Cette utilisation double du même champ justifie son appellation courante de champ « longueur/type ». L'IEEE 802.3 ayant initialement défini ce champ de 16 bits après les adresses MAC comme la longueur du payload, il est fait appel à un nouveau champ pour préciser la charge utile transporté et les niveaux et types de service utilisés (Service Access Point). Les trames 802.3 doivent ainsi avoir un champ LLC de 3 octets défini par la norme IEEE 802.2. Le LLC étant trop petit par rapport aux besoins potentiels, un champ supplémentaire SNAP de 5 octets a été défini ultérieurement, utilisable en option. En examinant le champ LLC, il est possible de déterminer s'il est suivi par un champ SNAP ou non. En outre, Novell a utilisé des trames 802.3 sans LLC (avant la normalisation IEEE 802.2) dans son système d'exploitation Netware[35] pour y faire passer son protocole IPX. Netware ayant été très répandu (à une époque), ce non-standard en est devenu un de fait.
Note : Les valeurs de champ longueur/type entre 1 500 et 1 536 ne sont pas standardisées et ne devraient jamais être employées. Taille de trameLa taille minimale d'une trame Ethernet (entête, charge utile et FCS) est de 64 octets, pour permettre le bon fonctionnement du CSMA/CD[38]. Par conséquent, la taille minimale de la charge utile est de 46 octets. Si les données à transmettre sont de taille encore plus petite, on ajoute artificiellement des 0 (bourrage) à la fin de la charge utile[39]. Si la trame est plus petite que la taille minimale, ce qui arrive parfois en cas de collision, on parle de trame « nabot » (runt). La taille maximum d'une trame Ethernet est importante à connaître, afin de maximiser l'unité de transmission maximale, donc le rapport taille de la charge utile sur taille du paquet Ethernet, ce qui correspond à l'efficacité du protocole. Les trames contiennent, en théorie, au maximum 1 500 octets, l'IEEE n'ayant pas normalisé de valeur supérieure. Cependant, certains équipements modernes savent gérer des trames géantes (jumbo) pouvant dépasser les 9 000 octets de données, sous réserve de configuration locale spécifique. Le champ longueur des trames 802.3 ne peut dépasser 1500 (sous peine d'être reconnues comme des trames Ethernet II), ce qui les empêche apparemment d'utiliser des trames jumbo. Une proposition pour résoudre ce conflit est d'utiliser un EtherType spécial 0x8870 quand une longueur supérieure à 1500 aurait dû être indiquée[40]. Quoique théoriquement obsolète du point de vue de l'IEEE, cette solution est implémentée par certains équipements[41],[42]. Évolutions protocolaires ultérieuresAutonégociationUne station et un commutateur qui se connectent ensemble peuvent utiliser l'autonégociation[43],[44], c'est-à-dire qu'ils négocient automatiquement sans configuration préalable nécessaire, les éléments de la communication Ethernet et notamment, la vitesse, le duplex, et l'utilisation ou non de contrôle de flux. Contrôle de fluxEn Ethernet commuté, toutes les stations du réseau peuvent communiquer en même temps (ou à des vitesses différentes, le médium physique n'étant pas partagé), il est donc possible pour une station que son port soit saturé en réception par plusieurs communications entrantes. Pour limiter la perte de paquets, le commutateur peut alors stocker temporairement et/ou détruire les trames qui ne peuvent être transmises, ou opter pour d'autres méthodes[45],[46] comme le backpressure ou les trames Pause. BackpressureDans ce cas le commutateur génère un signal de collision factice[47] vers la station émettrice (en fait il n'y a pas de collision puisqu'il s'agit d'Ethernet commuté, full-duplex, mais ce signal est toujours pris en compte), ce qui fait cesser temporairement son émission. Trames Pause : 802.3x et 802.1QbbLa norme IEEE 802.3x, publiée en 1997, définit un type de trame Ethernet appelées Pause (EtherType 0x8808). Un équipement dont le lien sature en réception peut envoyer une trame Pause pour faire taire l'émetteur le temps que le lien ne soit plus saturé, fournissant ainsi un mécanisme normalisé de contrôle de flux[48]. Toutefois cette solution ne permet pas d'être spécifique en fonction du trafic car tout le trafic de la station émettrice est stoppé et il n'y a pas d'exception pour les flux prioritaires, ayant une plus haute qualité de service. Une solution, proposée par Cisco Systems puis standardisée en 2011 (IEEE 802.1Qbb), consiste à adapter la durée de la pause selon la classe de service[49]. Réseaux locaux virtuels (VLAN) et Classes de Service (CoS)La norme IEEE 802.1Q permet de créer des réseaux virtuels (VLAN, Virtual LAN) au sein du réseau Ethernet réel. La trame Ethernet est modifiée avec l'ajout d'un champ de quatre octets après les adresses MAC et avant l'EtherType. Les deux premiers octets sont fixés à la valeur de 0x8100 (ce champ correspond à l'EtherType si 802.1Q n'est pas mis en place). Les bits suivants définissent une valeur de priorité et d'identification[50]. Cette valeur de priorité permet de distinguer huit différentes classes de service (Class of Service, CoS) définies par la norme 802.1p[51]. Ainsi, par un mécanisme de qualité de service (Quality of Service, QoS), chaque VLAN peut être traité différemment, selon sa priorité, par les équipements du réseau. Alimentation électriqueLes normes IEEE 802.3af et IEEE 802.3at permettent à un commutateur d'alimenter électriquement un équipement raccordé par paire torsadée dans le cadre du concept d'alimentation électrique par câble Ethernet (Power over Ethernet, PoE)[52]. Le PoDL (Power over Data Lines) a été introduit par l'amendement IEEE 802.3bu-2016[53] pour alimenter électriquement avec une paire unique pour des applications automobiles et industrielles[54]. Sur les normes à deux ou quatre paires utilisant le PoE, l'alimentation est transmise uniquement entre les paires, de sorte qu'à l'intérieur de chaque paire, il n'y a aucune tension présente autre que celle représentant les données transmises. Avec l'Ethernet à une paire, la puissance est transmise en parallèle aux données. Prévue au départ pour les normes 100BASE-T1 et 1000BASE-T1[55], la PoDL a été ajoutée aux variantes à paire unique 10BASE-T1, 2,5GBASE-T et 5GBASE-T et 10GBASE-T1. SynchronisationContrairement aux protocoles multiplexés temporellement (TDM), comme PDH, SDH ou SONET, Ethernet ne contient pas, nativement, de moyens de synchroniser les différents éléments du réseau. Le Synchronous Ethernet (SyncE), standardisé par l'UIT-T G.826x, permet de propager les signaux d'une horloge de référence, appelée Primary Reference Clock (PRC), à partir de la couche physique (en faisant appel à la synchronisation symbole) et, ainsi, de synchroniser en fréquence les différents équipements du réseau. Pour synchroniser en phase et en temps, il faut transporter des protocoles de couches supérieures comme le Network Time Protocol (NTP) ou le Precision Time Protocol (PTP). Notes et références
Voir aussiArticles connexes
Liens externes
Information related to Ethernet |