CSMA

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

CSMA est l'accronyme de "Carrier Sense Multiple Access". Il s'agit d'un ensemble de méthode pour détecter ou bien éviter les collisions de messages dans les transmissions.

Généralités[modifier | modifier le code]

Pour éviter des erreurs lors de la transmission de données, il est nécessaire d'éviter les collisions. Cependant, selon le média et d'autres paramètres (débit, distance, codage...), il n'est pas possible d'utiliser une seule et unique méthode.

Il existe trois méthodes employées dans les réseaux :

  • CSMA/CD : Collision Detection
  • CSMA/CA : Collision Avoidance
  • CSMA/CR : Collision Resolution (aussi appelé CSMA/BA pour "Bitwize Arbitration" ou CSMA/AMP pour "Arbitration on Message Priority")

Avant de rentrer dans la technique, il est utile pour une bonne compréhension de faire une analogie avec un groupe de personnes souhaitant discuter entres elles :

CSMA/CD correspond à un groupe dans lequel chaque personne peut prendre la parole quand il le souhaite (lors d'un silence). Si deux personnes parlent en même temps, elles s'arrêtent et attendent un petit temps (aléatoire pour chaque personne).

CSMA/CA ressemble plus à un groupe d'élèves dans une classe : lorsqu'un élève veut parler, il doit lever la main et l'enseignant va l'autoriser à parler pour une durée définie. Si un élève au premier rang lève la main, il ne peut pas voir celui qui a levé également la main au fond, d'où l'importance du rôle de l'enseignant.

CSMA/CR sera plus difficile à imaginer : dans un groupe de personne, si deux personnes parlent en même temps, elles continuent de le faire tant qu'elle disent strictement la même chose. Dès que les paroles divergent, un arbitrage logique est fait et l'une des personnes s'arrête, laissant l'autre terminer sa phrase.

CSMA/CD (Collision Detection)[modifier | modifier le code]

La méthode CSMA/CD (Carrier Sense Multiple Access / Collision Detection) est dérivée d'un système de transmission radio appelé Aloha. Son principe est de laisser chacun libre de gérer ses émissions en fonction de ses besoins et de la disponibilité du média.

En l'absence d'information à transmettre, la station écoute (ou reçoit) les paquets qui circulent sur le média dans un sens ou dans l'autre. Quand la station a besoin d'émettre un ou plusieurs paquets, elle vérifie qu'aucune trame n'est émise sur le média. Si c'est le cas elle commence à émettre son paquet. Si ce n'est pas le cas elle attend la fin de la transmission en cours.

Chaque machine ayant à tout instant la possibilité de commencer une transmission de manière autonome, la méthode d'accès est distribuée : elle est dite à accès multiple (Multiple Access : MA). La machine observe le média en cherchant à détecter une porteuse (Carrier Sense : CS). Si aucune trame n'est transmise, elle ne trouve pas de porteuse.

Elle envoie ses paquets sur le support physique et reste à l'écoute du résultat de son émission pendant quelque temps, pour vérifier qu'aucune autre machine n'a suivi le même comportement qu'elle au même instant.

La méthode d'accès étant à détection de collision (Collision Detect : CD), lors de son émission une machine peut déceler un problème de contention, et s'arrêter avec l'intention de renvoyer son paquet ultérieurement quand elle aura de nouveau la parole. De façon à minimiser le risque de rencontrer une deuxième collision avec la même machine, chacune attend pendant un délai aléatoire avant de tenter une nouvelle émission.

Cependant, de manière à ne pas saturer un réseau qui s'avérerait déjà très chargé, la machine n'essaiera pas indéfiniment de retransmettre un paquet si à chaque tentative elle se trouve en conflit avec une autre ; après un certain nombre d'essais infructueux (le nombre maximum de reprises est de 16) le paquet est éliminé. On évite ainsi l'effondrement du réseau. Les couches supérieures sont averties que la transmission du message a échoué.

CSMA/CA (Collision Avoidance)[modifier | modifier le code]

La méthode CSMA/CA s'utilise dans les réseaux sans-fil. En effet, contrairement aux réseaux filaires, deux stations peuvent émettre vers une troisième sans se détecter (la première étant hors de portée de la seconde).

Réseau nécessitant une méthode CSMA/CA
Exemple de réseau nécessitant une méthode CSMA/CA

Pour éviter cela, une station est considéré comme le maître des transmissions qui autorise une station à communiquer lorsque celle-ci le demande. Pour cela, la station doit émettre une courte trame RTS (Ready To Send) contenant quelques informations sur la communication (débit, longueur de la trame, etc.)

Si la station maître accepte cette communication, elle renvoie alors une trame CTS (Clear To Send) et la station peut transmettre son message. En revanche, si la station ne reçoit pas de message et doit attendre à nouveau avant de redemander une autorisation d'émettre.

C'est la méthode utilisée dans les réseaux WiFi (802.11) et la station maître est généralement le point d'accès (AP).

CSMA/CR (Collision Resolution)[modifier | modifier le code]

Fonctionnement détaillé CSMA/CR
Fonctionnement détaillé CSMA/CR

Cette méthode est légèrement plus évoluée que la méthode CSMA/CD : si plusieurs stations transmettent un message, elles appliquent un ET logique entre le signal reçu et le signal émis. Dans le cas d'une inégalité, la station s'arrête de transmettre. Comme le 0 est une valeur dominante, elle écrase donc le 1 (état récessif) : cela signifie que la communication de l'une des stations n'est pas modifiée et permet ainsi de terminer cette communication sans délai d'attente ou de retransmission.

Un réseau utilisant cette méthode peut alors être déterministe. C'est la méthode employée dans les réseaux CAN.

Protocoles utilisant CSMA[modifier | modifier le code]

Sources[modifier | modifier le code]

http://tvaira.free.fr/reseaux/rli_couche_liaison.pdf