CSMA/CA : Définition et explication de la méthode
CSMA (en français : accès multiple avec écoute de la porteuse) est une méthode de base qui contrôle la communication de plusieurs participants sur un support de transmission partagé et décentralisé. Cependant, il est désormais disponible en trois variantes différentes, qui dépendent du support de transmission. Alors que CSMA/CA est principalement 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 (Controller Area Networks) qui sont principalement utilisés dans de nombreuses industries, notamment l’automobile.
Pour comprendre exactement ce qu’est le Carrier Sense Multiple Access with Collision Avoidance, il est important et logique d’examiner les composants individuels :
- Carrier Sense (CA) : l’idée est que les participants ne peuvent envoyer des données via le réseau que si le support de transmission 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 disponible.
- Multiple Access (MA) : plusieurs stations partagent un même support de transmission. Pour que la communication soit efficace, il est essentiel qu’elles adhèrent à un protocole contraignant.
- Collision Avoidance (CA) : un plan de structure complexe tente de s’assurer que deux participants ou plus ne démarrent pas une transmission en même temps. Cela permet donc d’éviter les collisions. S’il se produit néanmoins des chevauchements, ceux-ci sont détectés et la transmission 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 participants au réseau partagent un medium de transmission : un câble, le dit « bus ». Les réseaux sans fil ne connaissent naturellement 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 transmission, à savoir une certaine portée radio. A cet égard, le Wifi (IEEE802.11) est comparable aux premiers réseaux Ethernet demi Duplex. Par conséquent, il doit y a avoir un protocole pour un réseau sans fil qui réglemente l’utilisation du support.
La règle la plus importante, qui est aussi connue pour d’autres situations de communication comportant plusieurs participants est la suivante : une seule personne à la fois peut transmettre/parler. Si tout le monde communique dans la confusion, personne ne peut comprendre les discours. Les contributions de chacun, en l’occurrence sous forme de paquets de données, peuvent aussi se chevaucher dans les réseaux. C’est ce que l’on appelle une collision : les paquets de données se rencontrent et aliènent ainsi leur contenu.
La méthode CSMA/CA tente de réduire la fréquence de ces collisions 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 transmissions dans les réseaux sans fil ne peuvent pas fonctionner dans le même ordre qu’avec un câble en raison de la technologie utilisée. Dans un réseau décentralisé, il est nécessaire que tous les participants suivent ensemble des règles communes et organisent ainsi la communication entre eux.
Le problème des stations cachées (hidden station)
Les différences techniques 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 participants d’un réseau ne se perçoivent pas les uns les autres.
Il est concevable, et non improbable, 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 transferts peuvent donc se chevaucher 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 transmission. Le CSMA/CA ne peut pas à lui seul résoudre ce problème, c’est pourquoi une extension optionnelle 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 traitement des collisions (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 directement les collisions. Au lieu de cela, le protocole interprète les collusions comme une évidence et établit alors un mécanisme permettant aux participants du réseau de procéder en cas de collision pour éviter notamment que celle-ci ne se reproduise lors d’une seconde tentative. Une période de temps aléatoire (déterminée par l’algorithme de backoff) doit alors être respectée par les stations après l’échec d’une transmission afin que les deux participants ne recommencent pas à émettre de manière simultané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 collisions 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 conséquent, l’accent doit être mis sur la réduction de la probabilité de collisions. CSMA/CA tire la stratégie « Backoff » en amont du processus et l’utilise déjà avant le premier processus d’expédition. La probabilité que les participants du réseau lancent une transmission de manière simultanée, causant des collisions, est donc réduite.
Le fonctionnement 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 transmission. Mais ce n’est que la première étape. D’autres fonctions au sein du processus garantissent dans une large mesure l‘évitement des collisions.
Distributed Coordination Function (DCF)
Dans CSMA/CA, la technique DCF (Distributed Coordination Function) contrôle le temps d’attente d’une station avant d’initier une transmission sur un support (médium) libre. DCF attribue aussi certaines durées du slot aux participants du réseau pour d’autres actions créant ainsi une structure temporelle contraignante. Cette procédure est l’axe central de la prévention des collisions. La structure temporelle complexe permet en effet d’éviter les collisions. DCF prend en compte divers intervalles, lors de la création de la structure temporelle.
- DCF Interframe Space (DIFS) : dans un premier temps, les participants doivent surveiller le réseau pendant la durée d’un DIFS afin de déterminer si le réseau est bien libre. Pour le CSMA/CA, cela signifie qu’aucune station n’émet à portée au moment de la transmission. Le DIFS, compris entre 28 et 50 µs, résulte du SIFS + 2 fois la durée d’un slot (slot time).
- Contention Window : si les participants déterminent que le canal est libre, ils attendent une période de temps aléatoire avant de commencer à transmettre. Cette durée correspond à la fenêtre de contention. Cette fenêtre temporelle double à chaque collision et correspond au BEB (Binary Exponential Backoff), comme dans le CSMA/CD.
- Short Interframe Space (SIFS) : après l’envoi du paquet de données, le nœud destinataire envoie une notification si la procédure RTS/CTS est aussi utilisée. Cependant cette station attend également une période de temps fixe avant de transmettre. 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.
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 optionnelle CSMA/CA RTS/CTS. Cette procédure se situe en amont de la transmission des données proprement dite. Si un participant détermine que le support de transmission est libre, l’appareil envoie alors d’abord une trame RTS au participant récepteur des données. L’ordinateur de sortie indique clairement qu’il veut démarrer une transmission et occupera le support de transmission pendant un certain temps.
Le destinataire envoie à son tour une trame CTS à l’expéditeur d’origine. Comme pour la trame RTS, tous les autres participants sont informés que le support de transmission est actuellement occupé et que l’émetteur est activé pour la transmission. Ce n’est alors qu’à ce moment-là que l’appareil d’origine commence à transmettre les données. Maintenant, il n’est pas possible pour les participants à un réseau sans fil de détecter les collisions ou bien d’autres interférences pendant la transmission. Pour ces raisons, il est nécessaire que la station de réception envoie un accusé de réception (ACK) lorsque le paquet de données est correctement arrivé.
Si la trame ACK n’apparait pas, l’expéditeur des données suppose qu’une complication s’est produite et renvoie le paquet de données. La station à un droit prioritaire à 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-catégories.
- To Distribution System : est défini si la trame va vers un système de distribution
- From Distribution System : est défini si la trame provient d’un système de distribution.
- More Fragments : ne comporte de contenu que si d’autres trames suivent (uniquement 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 Management : 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 destinataire si les données sont envoyées dans l’ordre correct.
- Duration : indique le temps dont l’expéditeur a besoin pour la transmission des données. Ces informations sont cruciales pour le NAV (Network Allocation Vector). Ce champ a également une taille de 2 octets.
- Receiver Address : contient l’adresse MAC du destinataire (6 octets).
- Transmitter Address : contient l’adresse MAC de l‘expéditeur (6 octets); seulement requis pour RTS, pas pour CTS et ACK.
- Frame Check Sequence : la séquence de caractè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éterminer si la trame de données est arrivée comme prévu. L’expéditeur calcule la somme de contrôle à partir des données de la trame. Le même processus a lieu du côté du destinataire lorsque la trame est arrivée. Si le résultat du récepteur correspond à ce que l‘expéditeur a attaché à la trame en tant que FCS, la transmission 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 intéressant que lors du premier contact avec le destinataire, de sorte qu’il sache avec quel nœud il communique désormais.
Via l’extension du protocole CSMA/CA avec RTS/CTS, il est possible de réduire les collisions à la trame RTS initiale. Il est toujours probable que deux participants envoient une demande d’envoi à la même station simultanément. Dans un tel cas, cependant le destinataire n’envoie pas de trame CTS parce que les trames RTS ne sont pas arrivées correctement. Ainsi, RTS/CTS peut résoudre le problème des stations cachées : même si les deux émetteurs ne se perçoivent 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 transmission 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 maintenant envoyer des données à la station qui se trouve au milieu. Tous les nœuds accessibles 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 maintenant empêchée d’émettre, même si, en fait, une quatrième station complètement différente était la destination de la transmission. Cette transmission ne génèrerait pas de collision et est néanmoins empêchée, ce qui entraîne un ralentissement de l’ensemble du réseau.
Network Allocation Vector (NAV)
Avant qu’un appareil du réseau ne commence une transmission, il envoie d’abord des informations (dans le champ Duration de la trame RTS) à tous les autres participants. La station indique combien de temps le réseau sera occupé par la transmission. Tout autre appareil saisit cette information dans son NAV personnel. Celle-ci est traitée en interne et spécifie le moment à partir duquel une nouvelle tentative de transmission est possible. Le NAV compte continuellement à la baisse et n’est réapprovisionné que par de nouvelles informations 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 expéditeur peut bloquer le support. Les appareils du réseau sont inactifs jusqu’à l’expiration du NAV. Cela permet d’économiser 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 influencée par le CTS et ACK. Ce dernier est le signal pour que tous les participants réinitialisent le NVA à 0 : le support ou médium est donc à nouveau libre.
Aperçu de la procédure CSMA/CA
Si les participants à un réseau sans fil suivent un Carrier Sense Multiple Access with Collision Avoidance, certaines étapes doivent être respectées : tout d’abord, les stations surveillent le support de transmission. Dans le cas du Wifi, cela signifie que le Carrier Sense surveille le canal radio et vérifie si d’autres participants au réseau, dans la mesure où ils sont visibles pour l’appareil respectif, sont en train de réaliser des transmissions.
S’il s’avère que le support de transmission est actuellement 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 à transmettre ou recevoir, font de même. Le temps d’attente aléatoire garantit que les participants ne commencent à transmettre des données en même temps. Cependant, cela ne se produit que si la station n’est pas déjà consciente 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 supplémentaire est utilisé. Si la demande d’envoi est parvenue au destinataire et qu’il n’y a donc pas eu de collision, l’expéditeur reçoit de la trame CTS la permission d’occuper le support d’émission.
En même temps, tous les autres participants sont informés que le réseau est alors actuellement 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. Maintenant, la station démarre la transmission. Lorsque cela est terminé, le destinataire attend la durée d’un SIFS et répond ensuite avec une trame ACK pour confirmer la réception complète à l’expéditeur et régler le NAV à 0, le réseau est libre pour une nouvelle transmission.
Les avantages et les inconvénients du CSMA/CA
CSMA/CA résout certains problèmes qui surviennent dans les réseaux sans fil et qui ne peuvent pas être résolus par CSMA/CD. Cependant, le processus n’est pas sans inconvénient : d’une part, certains cas problématiques ne peuvent pas être résolus complètement et, CSMA/CA apporte de nouvelles difficultés.
Avantages | Inconvénients |
---|---|
Aide à prévenir les collisions de données | Établi un temps d‘attente |
Grâce à la rétroaction, les données ne sont pas perdues. | Provoque du trafic supplémentaire |
Évite le trafic de données inutile avec l’extension RTS/CTS | Résout le problème des stations cachées uniquement par extension RTS/CTS |
Crée le problème de la station exposée par l’intermédiaire de RTS/CTS. |
Que sont les accès multiples coordonnés ?
Comme le processus CSMA/CA est loin d’être parfait, on s’efforce de l’améliorer via des extensions. C’est ainsi que les points faibles doivent être éliminés. Deux procédures, qui suivent toutes deux l’approche des accès multiples coordonnés, ont été développées, mais ne sont guère utilisées pour diverses raisons. Les accès multiples coordonnés constituent une unité organisationnelle centrale : les droits d‘accès des différentes stations au moyen de transmission ne doivent plus être coordonnés exclusivement les uns avec les autres. Au lieu de cela, les requêtes passent par l’Access Point (par exemple via le routeur Wifi).
Point Coordination Function
PCF (Point Coordination Function) est également intégré au processus CSMA/CA et remplace ou complète DCF (Distributed Coordination Function). Le point d’accès (Access Point) joue le rôle de coordinateur (Point Coordinator) et s’adresse spécifiquement aux stations du réseau. Nul ne peut occuper le support de transmission tant que cela n’a pas été fait. Le coordinateur dispose d’une liste de supervision (Polling-List) pour l’ordre des différentes stations.
Selon cette liste, chaque participant au réseau est invité soit simplement l’un après l’autre, soit par ordre de priorité s’il souhaite effectuer une transmission. 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 Interframe 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 positionnement du point d’accès. PCF signifie que les participants 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 coordination des points crée un autre point faible : pour pouvoir utiliser la technologie, tous les participants au réseau doivent être capable d’utiliser PCF. Mais ce n’est pas toujours le cas. Lorsque les appareils ne participent pas au processus PCF, ils et leurs demandes de transfert sont simplement ignorés. C’est pourquoi un système alternatif a été développé : PCF et DCF peuvent alterner afin de donner à tous les appareils du réseau la possibilité de transmission. Le point d’accès fournit pour cela deux périodes de temps : premièrement, il y a une période sans CFP (Contention Free Period), dans laquelle PCF assure un accès multiple coordonné, et la CP (Contention Period), dans laquelle DCF s’applique et les collisions décrites ci-dessus sont évitées en utilisant CSMA/CA. Cette alternance est initiée par une trame de balise que le coordinateur envoie à toutes les stations.
Hybrid Coordination Function Controlled Channel Access (HCCA)
L’autre méthode avec accès multiples coordonnés : HCF Controlled Channel Access, est fortement orientée vers la méthode PCF. Cependant, la HCCA réglemente différemment le changement entre Contention Period et Contention Free Period. Au lieu d’un système alternatif, la HCCA établit la possibilité que le point d’accès puisse passer du CP au CFP à tout moment, c’est ce que l’on appelle la CAP (Controlled Access Phase) dans la HCCA. Pendant cette période l’Hybrid Coordinator (ici aussi le point d‘accès) décide de qui peut envoyer des données et quand, en fonction de la priorité. Le coordinateur les détermine via les Traffic Classes (TC), qui spécifient les stations. De cette façon, différentes priorités peuvent être affectées à différentes classes.
De plus, la HCCA, la période de transmission devient une Transmit Opportunity (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 Contention Period, Enhanced Distributed 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 participantes s’organisent entre elles comme on le connait avec DCF. Les nœuds qui ont un trafic important à transmettre n’ont pas besoin d’attendre un DIFS complet. À la place, ces stations ne s’arrêtent que pour la durée d’Arbitration Interframe Space (AIFS). Pour être précis, il existe plusieurs AIFS qui sont numérotés consécutivement, 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.