Dans un réseau Ethernet local, les membres du réseau se re­trou­vent gé­né­ra­le­ment sur un support de trans­mis­sion commun : un câble. Cette con­ver­gence vers un même support doit être régulée pour que le transfert des données ne se trans­forme pas en chaos, ce qui pourrait entraîner une perte ou une dé­té­rio­ra­tion des données. La CSMA/CD offre ici une procédure per­met­tant d’organiser cor­rec­te­ment le transfert des données.

Dans un réseau Wi-Fi, cette tech­no­lo­gie n’est pas utile. C’est pourquoi une procédure ajustée a été dé­ve­lop­pé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é­ra­tion offrent d’autres pos­si­bi­li­tés. Il n’est toutefois pas inutile de com­prendre comment fonc­tionne cette ancienne procédure.

Qu’est-ce que la méthode CSMA/CD ? Dé­fi­ni­tion

CSMA/CD est l’abré­via­tion de Carrier sense multiple access/Collision Detection, la Collision Detection (« détection de col­li­sions ») étant une extension du protocole CSMA. Ce dernier met en place une procédure qui règle la façon dont la com­mu­ni­ca­tion doit se dérouler dans un réseau avec un support de trans­mis­sion partagé. L’extension définit quant à elle la procédure à suivre lorsque des col­li­sions sur­vien­nent, c’est-à-dire lorsque deux par­ti­ci­pants ou plus tentent si­mul­ta­né­ment d’envoyer des paquets de données via le support de trans­mis­sion (bus) et que ces paquets de données se gênent mu­tuel­le­ment.

Dé­fi­ni­tion

Afin de com­prendre comment fonc­tionne la procédure CSMA/CD, il est pertinent de dé­com­po­ser les dif­fé­rents éléments du terme :

Carrier Sense (CS) : la détection de l’état de la porteuse veille à ce que tous les par­ti­ci­pants vérifient que le support est libre. Le protocole procède uni­que­ment à la trans­mis­sion des données lorsque cette étape a été effectuée.

Multiple Access (MA) : plusieurs par­ti­ci­pants (or­di­na­teurs connectés au réseau) se partagent un support de trans­mis­sion.

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

Dé­rou­le­ment 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 dis­cus­sion normale au sein d’un groupe : pour une com­mu­ni­ca­tion rai­son­nable, il est né­ces­saire que tous les par­ti­ci­pants à la con­ver­sa­tion ne parlent pas en même temps, mais l’un après l’autre de façon à ce que chaque par­ti­ci­pant puisse com­prendre plei­ne­ment les con­tri­bu­tions des autres. De façon tout à fait in­cons­ciente, notre com­por­te­ment suit un protocole lors d’une telle con­ver­sa­tion : lorsqu’une autre personne prend la parole, nous l’écoutons.

Lorsque l’autre par­ti­ci­pant semble avoir terminé son exposé pour le moment, nous pa­tien­tons un bref instant avant de commencer à parler afin de nous assurer que ce même par­ti­ci­pant ou un autre in­ter­ve­nant 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 in­ter­rom­pons notre tentative et attendons à nouveau avant de re­com­men­cer.

La procédure CSMA/CD suit un processus par­fai­te­ment similaire. La station surveille tout d’abord le support de trans­mis­sion. L’attente se poursuit tant que le support est occupé. C’est uni­que­ment lorsque le support est libre, et ce pendant un temps déterminé (dans l’in­ter­valle in­ter­trame), que la station envoie un paquet de données. Pendant ce temps, l’émetteur continue toutefois de sur­veil­ler le support de trans­mis­sion afin de détecter les col­li­sions de données. Si aucun autre par­ti­ci­pant ne tente d’envoyer ses données via le support avant la fin de la trans­mis­sion, et donc si aucune collision ne survient, la trans­mis­sion est réussie.

Remarque

Les col­li­sions se tra­dui­sent 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 par­ti­ci­pant in­ter­rompt im­mé­dia­te­ment la trans­mis­sion et envoie à la place un signal de per­tur­ba­tion (JAM signal), pour que toutes les autres stations détectent la collision. Le par­ti­ci­pant patiente ensuite pendant un temps aléatoire (backoff) et essaie à nouveau de procéder à la trans­mis­sion. Le backoff doit être aléatoire pour que la prochaine collision ne se produise pas di­rec­te­ment. Comme les deux stations choi­sis­sent une valeur aléatoire, la pro­ba­bi­lité que les deux stations choi­sis­sent à nouveau le même moment pour lancer une tentative de trans­mis­sion est faible.

On recense le nombre de ten­ta­tives de trans­mis­sion. Si les ten­ta­tives suivantes échouent également et si le maximum de ten­ta­tives (16) est atteint, la station signale alors l’erreur à la couche de réseau su­pé­rieure et in­ter­rompt la trans­mis­sion de façon dé­fi­ni­tive. Étant donné qu’il est très peu probable qu’un par­ti­ci­pant 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é­so­lu­tion de la surcharge du réseau Ethernet « Binary Ex­po­nen­tial Backoff » est utilisé afin de dé­sa­mor­cer les col­li­sions de façon durable. Avant de pouvoir faire une nouvelle tentative après une collision, le par­ti­ci­pant 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 mi­cro­se­condes. L’éventail de multiples possibles double avec chaque tentative ratée de telle sorte que la pro­ba­bi­lité d’une trans­mis­sion si­mul­ta­née est ex­po­nen­tiel­le­ment plus faible.

Col­li­sions

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 trans­mis­sion. Si tel n’est pas le cas, une autre station est en train de trans­mettre si­mul­ta­né­ment et fausse ainsi le signal sur le bus. De telles col­li­sions se pro­dui­sent ré­gu­liè­re­ment et font partie du fonc­tion­ne­ment normal d’un réseau local (LAN). La pro­ba­bi­lité de sur­ve­nance de col­li­sions augmente également avec la taille du réseau. Par taille, on entend ici non seulement le nombre de par­ti­ci­pants, mais aussi la longueur des supports de trans­mis­sion.

Dans le cas de câbles de grande longueur, il peut advenir qu’un par­ti­ci­pant a déjà envoyé un signal, mais que celui-ci n’a pas encore été détecté par un autre par­ti­ci­pant. Cette situation engendre elle aussi davantage de col­li­sions ce qui rend le réseau glo­ba­le­ment 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 par­ti­ci­pants partagent un support de trans­mis­sion. Les par­ti­ci­pants ob­tien­nent 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’ef­fi­ca­cité de la procédure de collision, il n’est pas possible d’agrandir les réseaux in­dé­fi­ni­ment. Ceci est dû à la vitesse de trans­mis­sion et au chemin que celle-ci doit prendre.

Remarque

D’après le modèle de référence OSI, les pro­to­coles réseau peuvent être divisés en sept couches abs­traites. Dans la couche su­pé­rieure, la couche ap­pli­ca­tion (« ap­pli­ca­tion layer »), les fonctions sont mises à dis­po­si­tion des ap­pli­ca­tions per­met­tant ainsi également une entrée et une sortie des données pour les uti­li­sa­teurs. 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 or­di­na­teurs en un signal physique adapté au support de trans­mis­sion. Le domaine de collision se trouve également à ce niveau.

Pour que la procédure CSMA/CD fonc­tionne, les messages d’erreur doivent atteindre tous les par­ti­ci­pants 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 cor­res­pon­dant doit atteindre la première station avant que celle-ci n’ait terminé la trans­mis­sion complète du paquet de données. Dans le cas contraire, la station ne détecte pas que les données trans­mises sont déjà en­dom­ma­gées, considère que la trans­mis­sion est un succès et le paquet de données est perdu. De tels incidents sont nommés « col­li­sions tardives » et en­traî­nent une perte de données.

En sachant cela et à l’aide des in­for­ma­tions sur la tech­no­lo­gie 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 trans­mis­sion des données de 10 Mbit/s. Le plus petit paquet de données, demandant par con­sé­quent le moins de temps pour la trans­mis­sion complète et re­pré­sen­tant 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 (mi­cro­se­condes). Le temps slot désigne la durée né­ces­saire à 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 in­ter­si­dé­ral. Il faut tenir compte des données physiques du support de trans­mis­sion. À l’aide d’un facteur de réduction (appelé en anglais « Nominal Velocity of Pro­pa­ga­tion », NVP), on indique par con­sé­quent quel pour­cen­tage de la vitesse de la lumière est atteint dans le support. Les câbles paires torsadés tra­di­tion­nel­le­ment 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 per­met­tent de calculer l’étendue maximale d’un domaine de collision afin de garantir l’ef­fi­ca­cité 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 in­ter­ca­lant des am­pli­fi­ca­teurs de signal (répéteurs), car ces derniers n’ont aucune influence sur la procédure CSMA/CD.

Comment peut-on empêcher les col­li­sions ?

Dans le cas de systèmes semi-duplex, on ne peut gé­né­ra­le­ment pas éviter en­tiè­re­ment les col­li­sions. Elles cons­ti­tuent des per­tur­ba­tions prévues et la procédure CSMA/CD veille à ce que ces col­li­sions n’en­traî­nent pas de problèmes lors de la trans­mis­sion. Ce n’est toutefois vrai que pour la perte de données. De nom­breuses col­li­sions font baisser la vitesse de trans­mis­sion. Comment de trop nom­breuses col­li­sions peuvent-elles survenir ? Si un trop grand nombre de par­ti­ci­pants se trouve dans un domaine de collision, le nombre de col­li­sions 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 res­treints et donc de diviser le réseau. On utilise pour ce faire des com­mu­ta­teurs (« switch ») ou des ponts (« bridge »), tous deux basés sur le MAC. Le Media Access Control (« contrôle d’accès au support ») fonc­tionne 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 com­mu­ni­quer entre elles. Ceci permet d’empêcher que les goulots d’étran­gle­ment des ponts ne réduisent à néant la vitesse gagnée.

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

Dans la tech­no­lo­gie de réseau, on opère une dis­tinc­tion entre semi-duplex et duplex. Les deux modèles dépendent de la tech­no­lo­gie utilisée. Dans le contexte des réseaux ou d’autres tech­no­lo­gies de com­mu­ni­ca­tion, le terme « duplex » désigne en principe les pos­si­bi­li­tés en matière de trans­mis­sion des données. Le réseau semi-duplex permet par exemple une trans­mis­sion 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 tech­no­lo­gie de réseau dispose également de réseaux simplex et dual-simplex. Le premier type permet une trans­mis­sion dans une seule direction, et ce à n’importe quel moment. La radio en est un bon exemple. Il est uni­que­ment possible d’émettre, jamais de recevoir. Le dual-simplex cor­res­pond davantage au principe du duplex : il permet d’émettre et de recevoir à tout moment. Con­trai­re­ment au duplex, cette trans­mis­sion a lieu à travers deux supports dif­fé­rents.

La dif­fé­rence entre semi-duplex et duplex a un impact con­si­dé­rable sur la procédure CSMA/CD : le fait que le semi-duplex ne permette jamais plus d’une seule trans­mis­sion impose une mesure pour éviter les col­li­sions. Cela apparaît plus évident lorsque l’on imagine le support de trans­mis­sion 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é­ces­saire, puisqu’aucune collision ne peut survenir.

Le type duplex dépend des con­di­tions tech­niques et plus con­crè­te­ment des types de câbles utilisés. Les réseaux connectés avec des câbles coaxiaux peuvent seulement fonc­tion­ner en mode semi-duplex. Le duplex est uni­que­ment devenu possible avec l’in­tro­duc­tion 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 ma­jo­ri­tai­re­ment 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 prin­ci­pa­le­ment pour les con­nexions sans fil. Pour dif­fé­rentes raisons, la procédure CSMA/CD ne fonc­tionne 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­çoi­vent pas mu­tuel­le­ment et com­mu­ni­quent avec une troisième station située entre les deux premières, ce qui entraîne iné­vi­ta­ble­ment des col­li­sions.

Comme son nom l’indique, la procédure CSMA/CA tente d’éviter les col­li­sions plutôt que de sim­ple­ment les détecter. Un protocole cor­res­pon­dant est établi en cas de collision. Vu sous cet angle, la procédure CSMA/CA est une adap­ta­tion de la procédure CSMA/CD à un autre support de trans­mis­sion.

Aller au menu principal