Topologie et collisions
Topologie initiale
Ethernet 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.
Historiquement28, 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 collisions29. [ ]
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 collisions
Une 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 suivant30 :
[ ]
Procédure principale :
1. Trame prête à être transmise.
2. Si le medium n'est pas libre, attendre jusqu'à ce qu'il le devienne puis attendre la durée inter-
trame (9,6 μs pour l'Ethernet 10 Mbit/s) et démarrer la transmission.
3. Si une collision est détectée, lancer la procédure de gestion des collisions en émettant un
signal de collision appelé jam signal (une séquence de 4 à 6 octets)31. Sinon, la transmission
[ ]
est réussie.
Procédure de gestion des collisions :
1. Continuer la transmission à hauteur de la durée d'une trame de taille minimale (64 octets)
pour s'assurer que toutes les stations détectent la collision.
2. Si le nombre maximal de transmissions (16) est atteint, annuler la transmission.
3. Attendre un temps aléatoire dépendant du nombre de tentatives de transmission.
4. Reprendre la procédure principale.
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 local33.
[ ]
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é
Topologies Ethernet initiale et moderne
Implémentation initiale : le médium de transmission est le même pour toutes les stations.
Risque de collisions.
Ethernet commuté : Chaque station communique seulement avec son commutateur, sans
entrer en compétition pour le câble avec les autres stations. Pas de collisions.
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
nettement34 : [ ]
la topologie physique n'est plus en bus mais en étoile (comme avec les hubs) ;
la topologie logique n'est plus celle d'un bus (médium partagé), mais est également en étoile :
les communications entre deux pairs donnés sont isolées (contrairement aux hubs et aux
bus coaxiaux Ethernet), ce qui augmente clairement les capacités de transmission globales du
réseau. Chaque paire hôte1/hôte2 communique ensemble par une sorte de lien point à
point34 virtuel établi par le commutateur ;
[ ]
les communications peuvent se faire en full-duplex (émission et réception simultanées) et il n'y a
plus de collision. Pour ce faire CSMA/CD est désactivé (en mode CSMA/CD l'émetteur écoute ce
qu'il émet, et si quelqu'un parle en même temps que l'émetteur il y a collision, ce qui est
incompatible avec le mode full-duplex) ;
les distances maximales ne sont plus contraintes par la vitesse de propagation (il n'y a plus de
collision à détecter) mais uniquement par l'atténuation des signaux dans les câbles.
Trames Ethernet
Une 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.
Structure d'un paquet et d'une trame Ethernet typique
Cou Préa Délim Adresse Adres Tag 802.1Q ( Ethertype LLC/SNAP Séque Déla
che mbul iteur MAC des se optionnel) (Ethernet (si 802.2) nce i
OSI e de tination MAC s II) + Charge de inter
débu ource ou longue utile vérific -
t de ur (IEEE ation paq
tram de uet
e trame (IPG
802.3)
(SFD) (FCS) )
46 12
7 oct 1 6 4
6 octets (4 octets) 2 octets à 1 500 oc octe
ets octet octets octets
tets ts
Cou
che
2:
tram ← 64 à 1 522 octets →
e
Ethe
rnet
Cou
che
1:
←1
paq
2
uet ← 72 à 1 530 octets →
octe
Ethe
ts →
rnet
&
IPG
Types de trames
Hormis les expérimentations d'avant 1982, on trouve principalement quatre types de trames
Ethernet35.[ ]
Ethernet II (trame DIX – Digital Intel Xerox ; très majoritairement utilisée36, notamment
[ ]
pour IPv4 & IPv6)
Novell « raw IEEE 802.3 » – hors standard
IEEE 802.2 LLC
IEEE 802.2 LLC/SNAP
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 :
En Ethernet II / DIX, il est utilisé comme champ d'identification « EtherType » pour indiquer le
protocole de la couche supérieure (ARP, IPv4, IPv6…). Comme il n'y a pas d'indication sur la
longueur des données, il n'y a pas de couche LLC (Logical Link Control) pour supprimer
un bourrage potentiel, ce sera donc à la couche supérieure (couche réseau) de supprimer le
bourrage s'il y en a.
En IEEE 802.3 il indique la taille de la charge utile (payload), qui est toutefois limitée par la norme
à 1 500 octets.
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 Netware35 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.
Résumé des éléments de détermination du type de trame Ethernet
Type de trame Valeur du champ longueur/type Deux premiers octets du payload
Ethernet II ≥ 1536 Peu importe
Novell raw IEEE 802.3 ≤ 1500 0xFFFF
IEEE 802.2 LLC ≤ 1500 Autres
IEEE 802.2 SNAP ≤ 1500 0xAAAA
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 trame
La taille minimale d'une trame Ethernet (entête, charge utile et FCS) est de 64 octets, pour
permettre le bon fonctionnement du CSMA/CD38. 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érieures
Un commutateur Gigabit Ethernet 5 ports de Netgear. La
LED au-dessus de la prise rouge indique une liaison existante (c'est-à-dire qu'elle est connectée à un
autre appareil), tandis que le câble jaune est déconnecté.
Autonégociation
Une station et un commutateur qui se connectent ensemble peuvent utiliser l'autonégociation43, [ ]
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 flux
En 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.
Backpressure
Dans 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.1Qbb
La 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.1p51. 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 électrique
Les 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-
201653 pour alimenter électriquement avec une paire unique pour des applications automobiles
[ ]
et industrielles54. 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.
Synchronisation
Contrairement 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).