CSMA/CD : explication de la procédure

Dans un réseau Ethernet local, les membres du réseau se retrouvent généralement sur un support de transmission commun : un câble. Cette convergence vers un même support doit être régulée pour que le transfert des données ne se transforme pas en chaos, ce qui pourrait entraîner une perte ou une détérioration des données. La CSMA/CD offre ici une procédure permettant d’organiser correctement le transfert des données.

Dans un réseau Wi-Fi, cette technologie n’est pas utile. C’est pourquoi une procédure ajustée a été développée sous la forme de la procédure CSMA/CA. La méthode CSMA/CD n’est toutefois plus adaptée à la plupart des réseaux câblés, car les câbles nouvelle génération offrent d’autres possibilités. Il n’est toutefois pas inutile de comprendre comment fonctionne cette ancienne procédure.

Qu’est-ce que la méthode CSMA/CD ? Définition

CSMA/CD est l’abréviation de Carrier sense multiple access/Collision Detection, la Collision Detection (« détection de collisions ») étant une extension du protocole CSMA. Ce dernier met en place une procédure qui règle la façon dont la communication doit se dérouler dans un réseau avec un support de transmission partagé. L’extension définit quant à elle la procédure à suivre lorsque des collisions surviennent, c’est-à-dire lorsque deux participants ou plus tentent simultanément d’envoyer des paquets de données via le support de transmission (bus) et que ces paquets de données se gênent mutuellement.

Définition

Afin de comprendre comment fonctionne la procédure CSMA/CD, il est pertinent de décomposer les différents éléments du terme :

Carrier Sense (CS) : la détection de l’état de la porteuse veille à ce que tous les participants vérifient que le support est libre. Le protocole procède uniquement à la transmission des données lorsque cette étape a été effectuée.

Multiple Access (MA) : plusieurs participants (ordinateurs connectés au réseau) se partagent un support de transmission.

Collision Detection (CD) : la détection des collisions est une extension du protocole initial et détermine comment agir en cas de collision de paquets de données.

Déroulement de la procédure CSMA/CD

La méthode CSMA/CD est divisée en plusieurs étapes. La procédure est basée sur une discussion normale au sein d’un groupe : pour une communication raisonnable, il est nécessaire que tous les participants à la conversation ne parlent pas en même temps, mais l’un après l’autre de façon à ce que chaque participant puisse comprendre pleinement les contributions des autres. De façon tout à fait inconsciente, notre comportement suit un protocole lors d’une telle conversation : lorsqu’une autre personne prend la parole, nous l’écoutons.

Lorsque l’autre participant semble avoir terminé son exposé pour le moment, nous patientons un bref instant avant de commencer à parler afin de nous assurer que ce même participant ou un autre intervenant ne demande pas à prendre la parole. Si, par le plus grand des hasards, une autre personne commence à parler en même temps, dans ce cas, nous interrompons notre tentative et attendons à nouveau avant de recommencer.

La procédure CSMA/CD suit un processus parfaitement similaire. La station surveille tout d’abord le support de transmission. L’attente se poursuit tant que le support est occupé. C’est uniquement lorsque le support est libre, et ce pendant un temps déterminé (dans l’intervalle intertrame), que la station envoie un paquet de données. Pendant ce temps, l’émetteur continue toutefois de surveiller le support de transmission afin de détecter les collisions de données. Si aucun autre participant ne tente d’envoyer ses données via le support avant la fin de la transmission, et donc si aucune collision ne survient, la transmission est réussie.

Remarque

Les collisions se traduisent par un décalage de tension continue sur le câble. Les stations sont donc en mesure de les détecter.

Si en revanche, une collision est détectée, le participant interrompt immédiatement la transmission et envoie à la place un signal de perturbation (JAM signal), pour que toutes les autres stations détectent la collision. Le participant patiente ensuite pendant un temps aléatoire (backoff) et essaie à nouveau de procéder à la transmission. Le backoff doit être aléatoire pour que la prochaine collision ne se produise pas directement. Comme les deux stations choisissent une valeur aléatoire, la probabilité que les deux stations choisissent à nouveau le même moment pour lancer une tentative de transmission est faible.

On recense le nombre de tentatives de transmission. Si les tentatives suivantes échouent également et si le maximum de tentatives (16) est atteint, la station signale alors l’erreur à la couche de réseau supérieure et interrompt la transmission de façon définitive. Étant donné qu’il est très peu probable qu’un participant au réseau atteigne ce maximum dans le cadre d’une procédure normale, on part alors du principe que le système comporte une erreur.

Remarque

Le mécanisme de résolution de la surcharge du réseau Ethernet « Binary Exponential Backoff » est utilisé afin de désamorcer les collisions de façon durable. Avant de pouvoir faire une nouvelle tentative après une collision, le participant doit attendre un moment. Cette durée est toujours un multiple aléatoire de ce qu’on appelle le temps slot. Le temps slot dépend du taux de transfert et est de l’ordre de quelques microsecondes. L’éventail de multiples possibles double avec chaque tentative ratée de telle sorte que la probabilité d’une transmission simultanée est exponentiellement plus faible.

Collisions

Afin de détecter si une collision se produit, la station vérifie en même temps si le signal envoyé est identique à celui présent sur le support de transmission. Si tel n’est pas le cas, une autre station est en train de transmettre simultanément et fausse ainsi le signal sur le bus. De telles collisions se produisent régulièrement et font partie du fonctionnement normal d’un réseau local (LAN). La probabilité de survenance de collisions augmente également avec la taille du réseau. Par taille, on entend ici non seulement le nombre de participants, mais aussi la longueur des supports de transmission.

Dans le cas de câbles de grande longueur, il peut advenir qu’un participant a déjà envoyé un signal, mais que celui-ci n’a pas encore été détecté par un autre participant. Cette situation engendre elle aussi davantage de collisions ce qui rend le réseau globalement plus lent.

Qu’est-ce qu’un domaine de collision ?

On entend par domaine de collision la zone d’un réseau dans laquelle les participants partagent un support de transmission. Les participants obtiennent leur accès au réseau par le biais de la procédure CSMA/CD. Dans ce cadre, le domaine de collision ne doit toutefois pas dépasser une certaine taille : si l’on souhaite maintenir l’efficacité de la procédure de collision, il n’est pas possible d’agrandir les réseaux indéfiniment. Ceci est dû à la vitesse de transmission et au chemin que celle-ci doit prendre.

Remarque

D’après le modèle de référence OSI, les protocoles réseau peuvent être divisés en sept couches abstraites. Dans la couche supérieure, la couche application (« application layer »), les fonctions sont mises à disposition des applications permettant ainsi également une entrée et une sortie des données pour les utilisateurs. Elle est suivie par d’autres couches, telles que la couche de transport (avec par exemple le TCP) et la couche de liaison des données (dans laquelle on trouve l’Internet Protocol). La couche la plus basse (« physical layer » ou couche physique) traduit les bits des ordinateurs en un signal physique adapté au support de transmission. Le domaine de collision se trouve également à ce niveau.

Pour que la procédure CSMA/CD fonctionne, les messages d’erreur doivent atteindre tous les participants du domaine de collision en une période donnée : un paquet de données traverse le domaine d’un bout à l’autre et une collision peut se produire sur ce parcours. Le signal correspondant doit atteindre la première station avant que celle-ci n’ait terminé la transmission complète du paquet de données. Dans le cas contraire, la station ne détecte pas que les données transmises sont déjà endommagées, considère que la transmission est un succès et le paquet de données est perdu. De tels incidents sont nommés « collisions tardives » et entraînent une perte de données.

En sachant cela et à l’aide des informations sur la technologie de réseau utilisée, il est alors possible de calculer la taille maximale d’un domaine de collision. Si l’on se base sur un réseau Ethernet semi-duplex classique, celui-ci dispose d’une vitesse de transmission des données de 10 Mbit/s. Le plus petit paquet de données, demandant par conséquent le moins de temps pour la transmission complète et représentant donc le cas le plus extrême, a une taille de 512 bits (64 octets). Il en résulte un temps slot de 51,2 μs (microsecondes). Le temps slot désigne la durée nécessaire à un signal pour faire l’aller-retour jusqu’à l’autre extrémité du domaine de collision.

Les données des réseaux ne sont toutefois pas envoyées à la vitesse de la lumière à travers l’espace intersidéral. Il faut tenir compte des données physiques du support de transmission. À l’aide d’un facteur de réduction (appelé en anglais « Nominal Velocity of Propagation », NVP), on indique par conséquent quel pourcentage de la vitesse de la lumière est atteint dans le support. Les câbles paires torsadés traditionnellement utilisés pour les réseaux locaux ont une valeur NVP de 0,6 et les câbles coaxiaux, qui sont un peu plus anciens, une valeur de 0,77. Les données peuvent donc atteindre 180 000 km/s (60 %) ou env. 230 000 km/s (77 %) de la vitesse de la lumière.

Toutes ces données permettent de calculer l’étendue maximale d’un domaine de collision afin de garantir l’efficacité de la procédure CSMA/CD :

vitesse des données * durée de l’envoi = double de la longueur maximale

230 000 km/s * 0,0000512s = 11,776 km

Dans un réseau, un domaine de collision basé sur des câbles coaxiaux peut donc avoir une étendue maximale de 5,89 km. Dans ce calcul, il faut tenir compte du fait que le chemin doit être parcouru par les signaux dans les deux sens. La taille maximale d’un domaine de collision ne peut pas être étendue en intercalant des amplificateurs de signal (répéteurs), car ces derniers n’ont aucune influence sur la procédure CSMA/CD.

Comment peut-on empêcher les collisions ?

Dans le cas de systèmes semi-duplex, on ne peut généralement pas éviter entièrement les collisions. Elles constituent des perturbations prévues et la procédure CSMA/CD veille à ce que ces collisions n’entraînent pas de problèmes lors de la transmission. Ce n’est toutefois vrai que pour la perte de données. De nombreuses collisions font baisser la vitesse de transmission. Comment de trop nombreuses collisions peuvent-elles survenir ? Si un trop grand nombre de participants se trouve dans un domaine de collision, le nombre de collisions augmente et le nombre de retards avec lui. Dans les cas les plus graves, il est possible de ne pouvoir atteindre que 30 % de la vitesse normale.

Pour ne pas en arriver là, il est utile de former des domaines de collision plus restreints et donc de diviser le réseau. On utilise pour ce faire des commutateurs (« switch ») ou des ponts (« bridge »), tous deux basés sur le MAC. Le Media Access Control (« contrôle d’accès au support ») fonctionne sur la deuxième couche OSI, la couche de liaison (« data link »). Il est ici pertinent de former les sous-réseaux de façon à connecter les stations qui doivent beaucoup communiquer entre elles. Ceci permet d’empêcher que les goulots d’étranglement des ponts ne réduisent à néant la vitesse gagnée.

Semi-duplex ou duplex (« half-duplex/full-duplex »)

Dans la technologie de réseau, on opère une distinction entre semi-duplex et duplex. Les deux modèles dépendent de la technologie utilisée. Dans le contexte des réseaux ou d’autres technologies de communication, le terme « duplex » désigne en principe les possibilités en matière de transmission des données. Le réseau semi-duplex permet par exemple une transmission dans un seul sens à un moment donné. Dans le cas d’un réseau duplex par contre, une station peut émettre et recevoir à tout moment.

La technologie de réseau dispose également de réseaux simplex et dual-simplex. Le premier type permet une transmission dans une seule direction, et ce à n’importe quel moment. La radio en est un bon exemple. Il est uniquement possible d’émettre, jamais de recevoir. Le dual-simplex correspond davantage au principe du duplex : il permet d’émettre et de recevoir à tout moment. Contrairement au duplex, cette transmission a lieu à travers deux supports différents.

La différence entre semi-duplex et duplex a un impact considérable sur la procédure CSMA/CD : le fait que le semi-duplex ne permette jamais plus d’une seule transmission impose une mesure pour éviter les collisions. Cela apparaît plus évident lorsque l’on imagine le support de transmission comme une voie à sens unique. Si le trafic a lieu dans les deux sens en même temps, cela entraîne une collision. En revanche, le duplex dispose de deux supports à tout moment. Les données circulant dans les deux sens peuvent se croiser sans problème. C’est pourquoi le duplex est utilisé dans les réseaux et aucune procédure Carrier sense multiple access/Collision Detection n’est alors nécessaire, puisqu’aucune collision ne peut survenir.

Le type duplex dépend des conditions techniques et plus concrètement des types de câbles utilisés. Les réseaux connectés avec des câbles coaxiaux peuvent seulement fonctionner en mode semi-duplex. Le duplex est uniquement devenu possible avec l’introduction des câbles paire croisée et fibre de verre. Il en résulte que le Fast Ethernet (100 Mbit/s) et le Gigabit Ethernet (1 Gbit/s) sont réalisés majoritairement en duplex et qu’en pratique, la procédure CSMA/CD ne joue plus qu’un faible rôle.

CSMA/CD vs. CSMA/CA

Outre l’extension du protocole Carrier sense multiple access avec la Collision Detection, l’accès aux supports peut également être étendu avec la Collision Avoidance et devenir une procédure CSMA/CA. Cette dernière solution s’impose principalement pour les connexions sans fil. Pour différentes raisons, la procédure CSMA/CD ne fonctionne pas bien dans les réseaux radio. Se pose alors le problème de la station cachée. Il survient lorsque deux stations ne se perçoivent pas mutuellement et communiquent avec une troisième station située entre les deux premières, ce qui entraîne inévitablement des collisions.

Comme son nom l’indique, la procédure CSMA/CA tente d’éviter les collisions plutôt que de simplement les détecter. Un protocole correspondant est établi en cas de collision. Vu sous cet angle, la procédure CSMA/CA est une adaptation de la procédure CSMA/CD à un autre support de transmission.