CSMA (en français : accès multiple avec écoute de la porteuse) est une méthode de base qui contrôle la com­mu­ni­ca­tion de plusieurs par­ti­ci­pants sur un support de trans­mis­sion partagé et dé­cen­tra­lisé. Cependant, il est désormais dis­po­nible en trois variantes dif­fé­rentes, qui dépendent du support de trans­mis­sion. Alors que CSMA/CA est prin­ci­pa­le­ment utilisé dans les réseaux sans fil, CSMA/CD est développé pour le réseau Ethernet, et CSMA/CR est utilisé dans les réseaux CAN (Con­trol­ler Area Networks) qui sont prin­ci­pa­le­ment utilisés dans de nom­breuses in­dus­tries, notamment l’au­to­mo­bile.

Pour com­prendre exac­te­ment ce qu’est le Carrier Sense Multiple Access with Collision Avoidance, il est important et logique d’examiner les com­po­sants in­di­vi­duels :

  • Carrier Sense (CA) : l’idée est que les par­ti­ci­pants ne peuvent envoyer des données via le réseau que si le support de trans­mis­sion est libre. Le support de détection d’état vérifie donc le canal à tout moment. Les données ne sont pas envoyées tant que le canal n’est pas dis­po­nible.
     
  • Multiple Access (MA) : plusieurs stations partagent un même support de trans­mis­sion. Pour que la com­mu­ni­ca­tion soit efficace, il est essentiel qu’elles adhèrent à un protocole con­traig­nant.
     
  • Collision Avoidance (CA) : un plan de structure complexe tente de s’assurer que deux par­ti­ci­pants ou plus ne démarrent pas une trans­mis­sion en même temps. Cela permet donc d’éviter les col­li­sions. S’il se produit néanmoins des che­vau­che­ments, ceux-ci sont détectés et la trans­mis­sion est alors réessayée.

Qu’est-ce que le CSMA/CA et pourquoi en avez-vous besoin ?

Dans un réseau locaI (LAN), tous les par­ti­ci­pants au réseau partagent un medium de trans­mis­sion : un câble, le dit « bus ». Les réseaux sans fil ne con­nais­sent na­tu­rel­le­ment pas de câble, mais même dans le Wifi, tous les appareils concernés envoient et reçoivent via un seul support ou médium de trans­mis­sion, à savoir une certaine portée radio. A cet égard, le Wifi (IEEE802.11) est com­pa­rable aux premiers réseaux Ethernet demi Duplex. Par con­sé­quent, il doit y a avoir un protocole pour un réseau sans fil qui ré­gle­mente l’uti­li­sa­tion du support.

La règle la plus im­por­tante, qui est aussi connue pour d’autres si­tua­tions de com­mu­ni­ca­tion com­por­tant plusieurs par­ti­ci­pants est la suivante : une seule personne à la fois peut trans­mettre/parler. Si tout le monde com­mu­nique dans la confusion, personne ne peut com­prendre les discours. Les con­tri­bu­tions de chacun, en l’oc­cur­rence sous forme de paquets de données, peuvent aussi se che­vau­cher dans les réseaux. C’est ce que l’on appelle une collision : les paquets de données se ren­contrent et aliènent ainsi leur contenu.

La méthode CSMA/CA tente de réduire la fréquence de ces col­li­sions et fournit en même temps un plan, une structure sur la façon de procéder en cas de collision. Le protocole est aussi important car les trans­mis­sions dans les réseaux sans fil ne peuvent pas fonc­tion­ner dans le même ordre qu’avec un câble en raison de la tech­no­lo­gie utilisée. Dans un réseau dé­cen­tra­lisé, il est né­ces­saire que tous les par­ti­ci­pants suivent ensemble des règles communes et or­ga­ni­sent ainsi la com­mu­ni­ca­tion entre eux.

Le problème des stations cachées (hidden station)

Les dif­fé­rences tech­niques entre les réseaux câblés et sans fil apportent également le problème des stations cachées. Les stations d’un réseau sans fil ont une portée limitée. Il peut arriver que les par­ti­ci­pants d’un réseau ne se per­çoi­vent pas les uns les autres.

Il est con­ce­vable, et non im­pro­bable, que deux stations, qui ne peuvent pas se détecter l’une de l’autre, veuillent atteindre une station, qui se trouve entre elles, et cela en même temps. Les trans­ferts peuvent donc se che­vau­cher au niveau du nœud récepteur et entraîner la perte des données. Les deux émetteurs ne détectent pas la collision et ne dé­clenchent donc pas une nouvelle tentative de trans­mis­sion. Le CSMA/CA ne peut pas à lui seul résoudre ce problème, c’est pourquoi une extension op­tion­nelle a été créée : RTS/CTS (« Request to Send » et « Clear to Send »).

CSMA/CA vs. CSMA/CD

CSMA/CA adapte la procédure de trai­te­ment des col­li­sions (CSMA/CD) utilisée dans les réseaux Ethernet demi duplex aux défis des réseaux sans fil. CSMA/CD n’essaye pas d’éviter di­rec­te­ment les col­li­sions. Au lieu de cela, le protocole in­ter­prète les col­lu­sions comme une évidence et établit alors un mécanisme per­met­tant aux par­ti­ci­pants du réseau de procéder en cas de collision pour éviter notamment que celle-ci ne se re­pro­duise lors d’une seconde tentative. Une période de temps aléatoire (dé­ter­mi­née par l’al­go­rithme de backoff) doit alors être respectée par les stations après l’échec d’une trans­mis­sion afin que les deux par­ti­ci­pants ne re­com­men­cent pas à émettre de manière si­mul­ta­née (ce qui est la cause de l’échec).

Un réseau sans fil ne peut pas être surveillé de manière aussi sûre qu’un réseau câblé. Les col­li­sions peuvent être causées par un deuxième émetteur hors de portée du premier. Ni l’un ni l’autre n’a le moyen de percevoir la tentative d’envoi de l’autre. Par con­sé­quent, l’accent doit être mis sur la réduction de la pro­ba­bi­lité de col­li­sions. CSMA/CA tire la stratégie « Backoff » en amont du processus et l’utilise déjà avant le premier processus d’ex­pé­di­tion. La pro­ba­bi­lité que les par­ti­ci­pants du réseau lancent une trans­mis­sion de manière si­mul­ta­née, causant des col­li­sions, est donc réduite.

Le fonc­tion­ne­ment de CSMA/CA

L’idée de base de CSMA/CA repose sur le principe de « Listen before Talking ». Ce qui signifie qu’il faut d’abord vérifier si le service est libre (« idle ») avant que la station puisse commencer une trans­mis­sion. Mais ce n’est que la première étape. D’autres fonctions au sein du processus ga­ran­tis­sent dans une large mesure l‘évitement des col­li­sions.

Dis­tri­bu­ted Coor­di­na­tion Function (DCF)

Dans CSMA/CA, la technique DCF (Dis­tri­bu­ted Coor­di­na­tion Function) contrôle le temps d’attente d’une station avant d’initier une trans­mis­sion sur un support (médium) libre. DCF attribue aussi certaines durées du slot aux par­ti­ci­pants du réseau pour d’autres actions créant ainsi une structure tem­po­relle con­traig­nante. Cette procédure est l’axe central de la pré­ven­tion des col­li­sions. La structure tem­po­relle complexe permet en effet d’éviter les col­li­sions. DCF prend en compte divers in­ter­valles, lors de la création de la structure tem­po­relle.

  • DCF In­ter­frame Space (DIFS) : dans un premier temps, les par­ti­ci­pants doivent sur­veil­ler le réseau pendant la durée d’un DIFS afin de dé­ter­mi­ner si le réseau est bien libre. Pour le CSMA/CA, cela signifie qu’aucune station n’émet à portée au moment de la trans­mis­sion. Le DIFS, compris entre 28 et 50 µs, résulte du SIFS + 2 fois la durée d’un slot (slot time).
     
  • Con­ten­tion Window : si les par­ti­ci­pants dé­ter­mi­nent que le canal est libre, ils attendent une période de temps aléatoire avant de commencer à trans­mettre. Cette durée cor­res­pond à la fenêtre de con­ten­tion. Cette fenêtre tem­po­relle double à chaque collision et cor­res­pond au BEB (Binary Ex­po­nen­tial Backoff), comme dans le CSMA/CD.
     
  • Short In­ter­frame Space (SIFS) : après l’envoi du paquet de données, le nœud des­ti­na­taire envoie une no­ti­fi­ca­tion si la procédure RTS/CTS est aussi utilisée. Cependant cette station attend également une période de temps fixe avant de trans­mettre. SIFS est le temps qu’il faut pour traiter un paquet de données. La durée dépend de la norme IEEE 802.11 utilisée et se situe entre 10 µs et 16 µs.
Remarque

la durée de slot est le temps qu’il faut pour que les données passent à travers la longueur maximale du réseau. Pour les réseaux sans fil, cela dépend de la norme utilisée et se situe entre 9 µs et 20 µs.

Request to Send et Clear to Send (RTS/CTS)

Les trames Request to Send (RTS) et Clear to Send (CTS) font partie de l’extension op­tion­nelle CSMA/CA RTS/CTS. Cette procédure se situe en amont de la trans­mis­sion des données pro­pre­ment dite. Si un par­ti­ci­pant détermine que le support de trans­mis­sion est libre, l’appareil envoie alors d’abord une trame RTS au par­ti­ci­pant récepteur des données. L’or­di­na­teur de sortie indique clai­re­ment qu’il veut démarrer une trans­mis­sion et occupera le support de trans­mis­sion pendant un certain temps.

Le des­ti­na­taire envoie à son tour une trame CTS à l’ex­pé­di­teur d’origine. Comme pour la trame RTS, tous les autres par­ti­ci­pants sont informés que le support de trans­mis­sion est ac­tuel­le­ment occupé et que l’émetteur est activé pour la trans­mis­sion. Ce n’est alors qu’à ce moment-là que l’appareil d’origine commence à trans­mettre les données. Main­te­nant, il n’est pas possible pour les par­ti­ci­pants à un réseau sans fil de détecter les col­li­sions ou bien d’autres in­ter­fé­rences pendant la trans­mis­sion. Pour ces raisons, il est né­ces­saire que la station de réception envoie un accusé de réception (ACK) lorsque le paquet de données est cor­rec­te­ment arrivé.

Si la trame ACK n’apparait pas, l’ex­pé­di­teur des données suppose qu’une com­pli­ca­tion s’est produite et renvoie le paquet de données. La station à un droit prio­ri­taire à utiliser le média, elle n’a pas besoin d’attendre jusqu’à ce que le canal soit libre. Les trois types de cadres se composent chacun se plusieurs champs.

  • Frame Control : le champ FC contenu dans chaque trame 802.11 est en taille de 2 octets (16 bits) et de nouveau divisé en plusieurs éléments :
    • Protocol Version : spécifie la version du protocole utilisé.
    • Type : indique s’il s’agit d’un bloc de contrôle (comme pour RTS/CTS et ACK), d’un bloc de données ou d’un bloc de gestion.
    • Sub-Typec : spécifie le type de trame, en prenant l’une des 25 sous-ca­té­go­ries.
    • To Dis­tri­bu­tion System : est défini si la trame va vers un système de dis­tri­bu­tion
    • From Dis­tri­bu­tion System : est défini si la trame provient d’un système de dis­tri­bu­tion.
    • More Fragments : ne comporte de contenu que si d’autres trames suivent (uni­que­ment pertinent pour les trames de données et les trames de gestion).
    • Retry : spécifie si et à quelle fréquence la trame a déjà été envoyée.
    • Power Ma­na­ge­ment : affiche le mode économie d‘énergie
    • More Data : indique qu’un plus grand nombre de données doit être envoyé.
    • WEP : indique si les données sont cryptées avec WEP.
    • Order : indique au des­ti­na­taire si les données sont envoyées dans l’ordre correct.
       
  • Duration : indique le temps dont l’ex­pé­di­teur a besoin pour la trans­mis­sion des données. Ces in­for­ma­tions sont cruciales pour le NAV (Network Al­lo­ca­tion Vector). Ce champ a également une taille de 2 octets.
  • Receiver Address : contient l’adresse MAC du des­ti­na­taire (6 octets).
  • Trans­mit­ter Address : contient l’adresse MAC de l‘ex­pé­di­teur (6 octets); seulement requis pour RTS, pas pour CTS et ACK.
  • Frame Check Sequence : la séquence de ca­rac­tères de contrôle de bloc longue de 4 octets est une somme de contrôle. Cela permet à la station de réception de dé­ter­mi­ner si la trame de données est arrivée comme prévu. L’ex­pé­di­teur calcule la somme de contrôle à partir des données de la trame. Le même processus a lieu du côté du des­ti­na­taire lorsque la trame est arrivée. Si le résultat du récepteur cor­res­pond à ce que l‘ex­pé­di­teur a attaché à la trame en tant que FCS, la trans­mis­sion a été réussie.

À l’exception du champ qui spécifie l’adresse de l’émetteur, tous les champs sont contenus dans RTS, CTS et ACK. Cependant, le champ émetteur n’est in­té­res­sant que lors du premier contact avec le des­ti­na­taire, de sorte qu’il sache avec quel nœud il com­mu­nique désormais.

Via l’extension du protocole CSMA/CA avec RTS/CTS, il est possible de réduire les col­li­sions à la trame RTS initiale. Il est toujours probable que deux par­ti­ci­pants envoient une demande d’envoi à la même station si­mul­ta­né­ment. Dans un tel cas, cependant le des­ti­na­taire n’envoie pas de trame CTS parce que les trames RTS ne sont pas arrivées cor­rec­te­ment. Ainsi, RTS/CTS peut résoudre le problème des stations cachées : même si les deux émetteurs ne se per­çoi­vent pas l’un l’autre en raison de la portée limitée, seules les trames RTS sont à risque et non les données réelles. La CSMA/CA prend alors effet et la trans­mis­sion peut se faire de façon ordonnée.

L’échange RTS/CTS résout le principe de la station cachée, mais l’extension provoque un autre problème : celui de la station exposée (exposed station). La situation est similaire à celle du problème des stations cachées : une station est au milieu des deux autres stations qui ne peuvent pas se joindre l’une de l’autre. L’un des deux appareils veut main­te­nant envoyer des données à la station qui se trouve au milieu. Tous les nœuds ac­ces­sibles reçoivent la trame CTS qui les empêche de diffuser. Cela permet d’éviter le problème des stations cachées, mais en crée un nouveau.

Une troisième station est main­te­nant empêchée d’émettre, même si, en fait, une quatrième station com­plè­te­ment dif­fé­rente était la des­ti­na­tion de la trans­mis­sion. Cette trans­mis­sion ne gé­nè­re­rait pas de collision  et est néanmoins empêchée, ce qui entraîne un ra­len­tis­se­ment de l’ensemble du réseau.

Network Al­lo­ca­tion Vector (NAV)

Avant qu’un appareil du réseau ne commence une trans­mis­sion, il envoie d’abord des in­for­ma­tions (dans le champ Duration de la trame RTS) à tous les autres par­ti­ci­pants. La station indique combien de temps le réseau sera occupé par la trans­mis­sion. Tout autre appareil saisit cette in­for­ma­tion dans son NAV personnel. Celle-ci est traitée en interne et spécifie le moment à partir duquel une nouvelle tentative de trans­mis­sion est possible. Le NAV compte con­ti­nuel­le­ment à la baisse et n’est réap­pro­vi­sionné que par de nouvelles in­for­ma­tions provenant d’autres stations.

Un NAV peut augmenter la durée d’un maximum de 33 ms (32.767 µs). Il s’agit de la durée maximale pendant laquelle un ex­pé­di­teur peut bloquer le support. Les appareils du réseau sont inactifs jusqu’à l’ex­pi­ra­tion du NAV. Cela permet d’éco­no­mi­ser de l’énergie. Ce n’est que lorsque le compteur est réglé sur 0 que l‘abonné redevient actif et vérifie le réseau. Le NAV n’est pas seulement ajustée par le RTS, mais elle est aussi in­fluen­cée par le CTS et ACK. Ce dernier est le signal pour que tous les par­ti­ci­pants réi­ni­tia­li­sent le NVA à 0 : le support ou médium est donc à nouveau libre.

Aperçu de la procédure CSMA/CA

Si les par­ti­ci­pants à un réseau sans fil suivent un Carrier Sense Multiple Access with Collision Avoidance, certaines étapes doivent être res­pec­tées : tout d’abord, les stations sur­veil­lent le support de trans­mis­sion. Dans le cas du Wifi, cela signifie que le Carrier Sense surveille le canal radio et vérifie si d’autres par­ti­ci­pants au réseau, dans la mesure où ils sont visibles pour l’appareil respectif, sont en train de réaliser des trans­mis­sions.

S’il s’avère que le support de trans­mis­sion est ac­tuel­le­ment occupé, un backoff aléatoire est déclenché : la station attend une période de temps aléatoire jusqu’à ce qu’un nouveau contrôle commence. Toutes les autres stations, qui ne sont pas occupées à trans­mettre ou recevoir, font de même. Le temps d’attente aléatoire garantit que les par­ti­ci­pants ne com­men­cent à trans­mettre des données en même temps. Cependant, cela ne se produit que si la station n’est pas déjà cons­ciente que le média est occupé en raison du NAV.

Si le réseau est libre, la station initie le DCF : tout d’abord, le canal est vérifié pendant toute la durée du DIFS. S’il reste libre pendant cette période, un backoff aléatoire démarre et l’échange RTS/CTS ne commence qu’à ce moment-là, si ce mécanisme sup­plé­men­taire est utilisé. Si la demande d’envoi est parvenue au des­ti­na­taire et qu’il n’y a donc pas eu de collision, l’ex­pé­di­teur reçoit de la trame CTS la per­mis­sion d’occuper le support d’émission.

En même temps, tous les autres par­ti­ci­pants sont informés que le réseau est alors ac­tuel­le­ment occupé. Cela les amène à augmenter à nouveau leur NAV et à attendre jusqu’à ce qu’ils vérifient une nouvelle fois si le canal est libre. Main­te­nant, la station démarre la trans­mis­sion. Lorsque cela est terminé, le des­ti­na­taire attend la durée d’un SIFS et répond ensuite avec une trame ACK pour confirmer la réception complète à l’ex­pé­di­teur et régler le NAV à 0, le réseau est libre pour une nouvelle trans­mis­sion.

Les avantages et les in­con­vé­nients du CSMA/CA

CSMA/CA résout certains problèmes qui sur­vien­nent dans les réseaux sans fil et qui ne peuvent pas être résolus par CSMA/CD. Cependant, le processus n’est pas sans in­con­vé­nient : d’une part, certains cas pro­blé­ma­tiques ne peuvent pas être résolus com­plè­te­ment et, CSMA/CA apporte de nouvelles dif­fi­cul­tés.

Avantages In­con­vé­nients
Aide à prévenir les col­li­sions de données Établi un temps d‘attente
Grâce à la ré­troac­tion, les données ne sont pas perdues. Provoque du trafic sup­plé­men­taire
Évite le trafic de données inutile avec l’extension RTS/CTS Résout le problème des stations cachées uni­que­ment par extension RTS/CTS
Crée le problème de la station exposée par l’in­ter­mé­diaire de RTS/CTS.

Que sont les accès multiples coor­don­nés ?

Comme le processus CSMA/CA est loin d’être parfait, on s’efforce de l’améliorer via des ex­ten­sions. C’est ainsi que les points faibles doivent être éliminés. Deux pro­cé­dures, qui suivent toutes deux l’approche des accès multiples coor­don­nés, ont été dé­ve­lop­pées, mais ne sont guère utilisées pour diverses raisons. Les accès multiples coor­don­nés cons­ti­tuent une unité or­ga­ni­sa­tion­nelle centrale : les droits d‘accès des dif­fé­rentes stations au moyen de trans­mis­sion ne doivent plus être coor­don­nés ex­clu­si­ve­ment les uns avec les autres. Au lieu de cela, les requêtes passent par l’Access Point (par exemple via le routeur Wifi).

Point Coor­di­na­tion Function

PCF (Point Coor­di­na­tion Function) est également intégré au processus CSMA/CA et remplace ou complète DCF (Dis­tri­bu­ted Coor­di­na­tion Function). Le point d’accès (Access Point) joue le rôle de coor­di­na­teur (Point Coor­di­na­tor) et s’adresse spé­ci­fi­que­ment aux stations du réseau. Nul ne peut occuper le support de trans­mis­sion tant que cela n’a pas été fait. Le coor­di­na­teur dispose d’une liste de su­per­vi­sion (Polling-List) pour l’ordre des dif­fé­rentes stations.

Selon cette liste, chaque par­ti­ci­pant au réseau est invité soit sim­ple­ment l’un après l’autre, soit par ordre de priorité s’il souhaite effectuer une trans­mis­sion. Toutefois, avant que le point d’accès ne commence à répondre à la demande, une période de temps s’écoule comme avec DFC, mais dans la durée d’un PIFS. Le PCF In­ter­frame Space est un créneau de temps plus court que le DIFS et a ainsi une plus grande priorité. PCF prend donc effet plus tôt que DCF.

La méthode fournit une approche pour résoudre le problème des stations cachées : la portée requise peut être réduite de moitié par un bon po­si­tion­ne­ment du point d’accès. PCF signifie que les par­ti­ci­pants n’ont plus à se percevoir les uns les autres. Il suffit que le point d’accès soit placé au milieu et puisse ainsi atteindre toutes stations en forme d’étoile.

Cependant, la fonction de coor­di­na­tion des points crée un autre point faible : pour pouvoir utiliser la tech­no­lo­gie, tous les par­ti­ci­pants au réseau doivent être capable d’utiliser PCF. Mais ce n’est pas toujours le cas. Lorsque les appareils ne par­ti­ci­pent pas au processus PCF, ils et leurs demandes de transfert sont sim­ple­ment ignorés. C’est pourquoi un système al­ter­na­tif a été développé : PCF et DCF peuvent alterner afin de donner à tous les appareils du réseau la pos­si­bi­lité de trans­mis­sion. Le point d’accès fournit pour cela deux périodes de temps : pre­miè­re­ment, il y a une période sans CFP (Con­ten­tion Free Period), dans laquelle PCF assure un accès multiple coordonné, et la CP (Con­ten­tion Period), dans laquelle DCF s’applique et les col­li­sions décrites ci-dessus sont évitées en utilisant CSMA/CA. Cette al­ter­nance est initiée par une trame de balise que le coor­di­na­teur envoie à toutes les stations.

Hybrid Coor­di­na­tion Function Con­trol­led Channel Access (HCCA)

L’autre méthode avec accès multiples coor­don­nés : HCF Con­trol­led Channel Access, est fortement orientée vers la méthode PCF. Cependant, la HCCA ré­gle­mente dif­fé­rem­ment le chan­ge­ment entre  Con­ten­tion Period et Con­ten­tion Free Period. Au lieu d’un système al­ter­na­tif, la HCCA établit la pos­si­bi­lité que le point d’accès puisse passer du CP au CFP à tout moment, c’est ce que l’on appelle la CAP (Con­trol­led Access Phase) dans la HCCA. Pendant cette période l’Hybrid Coor­di­na­tor (ici aussi le point d‘accès) décide de qui peut envoyer des données et quand, en fonction de la priorité. Le coor­di­na­teur les détermine via les Traffic Classes (TC), qui spé­ci­fient les stations. De cette façon, dif­fé­rentes priorités peuvent être affectées à dif­fé­rentes classes.

De plus, la HCCA, la période de trans­mis­sion devient une Transmit Op­por­tu­nity (TXOP). Il s’agit d’une période de temps pendant laquelle les émetteurs peuvent non seulement envoyer une trame, mais aussi autant de trames de données que possible dans la TXOP-Phase. Si un cadre est trop grand pour la période, il doit être ouvert et envoyé en plusieurs parties. Cela empêche les stations plus lentes de ralentir les stations plus rapides.

Toutefois, pendant la Con­ten­tion Period, Enhanced Dis­tri­bu­ted Channel Access (EDCA) s‘applique. L’EDCA renferme aussi un ordre de priorité. Cependant, cet ordre n’est pas organisé par un bureau central : au lieu de cela, les stations par­ti­ci­pantes s’or­ga­ni­sent entre elles comme on le connait avec DCF. Les nœuds qui ont un trafic important à trans­mettre n’ont pas besoin d’attendre un DIFS complet. À la place, ces stations ne s’arrêtent que pour la durée d’Ar­bi­tra­tion In­ter­frame Space (AIFS). Pour être précis, il existe plusieurs AIFS qui sont numérotés con­sé­cu­ti­ve­ment, en fonction de la priorité. AIFS1 a le niveau de priorité le plus élevé et est donc plus petit que DIFS mais plus long que SIFS. Le TXOP s’applique aussi à l’EDCA.

Aller au menu principal