# Carrier Sense Multiple Access with Collision Detection

Carrier Sense Multiple Access/Collision Detection (CSMA/CD) est un protocole qui gère le partage de l'accès physique. Il est utilisé dans les premières normes du réseau Ethernet (IEEE 802.3).

## Explications

* Carrier Sense Multiple Access (CSMA) : Accès multiple avec écoute de la porteuse.
Cette méthode permet à une station d'écouter le support physique de liaison (câble ou fibre) pour déterminer si une autre station transmet une trame de données (niveau déterminé de tension électrique ou de lumière). Si tel n'est pas le cas (donc s'il n'y a pas eu de signal), elle suppose qu'elle peut émettre. Si la distance entre les périphériques est telle que la latence des signaux d'un périphérique implique que les signaux ne sont pas détectés par un deuxième périphérique, ce dernier peut, lui aussi, commencer à transmettre son message. Les supports disposent désormais de deux périphériques qui transmettent simultanément des signaux. Les messages sont propagés sur les supports jusqu'à ce qu'ils se rencontrent, à ce stade les signaux se mélangent et les messages sont détruits : une collision se produit. Bien que les messages soient endommagés, les signaux restants désordonnés continuent à se propager sur les supports.
* Collision Detection (CD) : Détection des collisions et traitement en envoyant un jam signal.
L’accès multiple implique que plusieurs stations peuvent émettre au même moment ce qui peut provoquer une collision (donc une perte de données). Comme les stations écoutent aussi les collisions, elles savent qu'elles doivent réémettre après avoir attendu pendant un délai aléatoire.
Ce type de protocole est dit « probabiliste », c'est-à-dire qu'il n'est pas possible de déterminer avec certitude le délai d'envoi d'un message. Rappelons que dans un réseau Ethernet avec support physique partagé les stations se partagent le même média de communication, qu'il n'y a pas de jeton ni de priorité d'émission.

## Principe

Listen before talking : si une station veut émettre, elle écoute le réseau pour savoir s'il y a déjà une autre émission en cours (présence ou non de porteuse). Si oui elle attend, sinon elle émet.
La station émet pendant un minimum de temps (supérieur au temps maximal d'aller et retour du signal entre 2 stations), ceci afin que son émission puisse être détectée par les autres stations et donc d'éviter d'autres émissions simultanées. Cependant elle continue à écouter pendant son émission afin de vérifier que ses données n'ont pas été perturbées : Listen while talking
Si une collision a lieu, les deux machines interrompent leur communication et attendent un délai aléatoire (déterminé par l’algorithme de backoff exponentiel), puis la première ayant passé ce délai peut alors réémettre. Si le nombre de collisions dépasse un certain seuil (généralement 16), on considère qu'il y a une erreur fatale et l'émission s'interrompt avec la condition excessive collisions.
La station qui veut émettre doit envoyer un signal suffisamment long pour parcourir tout le réseau (tranche canal). La taille minimale de la trame à envoyer doit être, en Ethernet sur câble coaxial, de 512 bits (en se basant sur la topologie 10BASE5). Si une trame n'atteint pas les 512 bits, on fait un bourrage avec des bits neutres (padding).
Par conséquent plus une trame est grande plus elle est efficace et moins de collisions se produiront sur le réseau.