# Carrier Sense Multiple Access with Collision Avoidance

Dans les réseaux sans fil, en particulier les réseaux Wi-Fi, la méthode d'accès CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) est un algorithme distribué qui permet le partage du média (le spectre) entre plusieurs stations tout en réduisant la probabilité de collisions entre trames et le risque de brouillage. Elle est notamment utilisée par Localtalk ou par la norme 802.11 dite Wi-Fi.

## La couche liaison de données

La couche Liaison de données de la norme 802.11 est composée de deux sous-couches : la couche de contrôle de la liaison logique (Logical Link Control, notée LLC) et la couche de contrôle d’accès au support (Media Access Control, ou MAC).
La couche MAC définit deux méthodes d'accès différentes :
* La méthode CSMA/CA remplissant la Distributed Coordination Function (DCF)
* La Point Coordination Function (PCF)

## La méthode d'accès CSMA/CA

Dans un réseau local Ethernet en bus, maillé ou plus généralement filaire où plusieurs hôtes se trouvent sur un même segment de réseau, la méthode d'accès utilisée par les machines est le CSMA/CD (Carrier Sense Multiple Access with Collision Detection), pour lequel chaque machine est libre de communiquer lorsque le réseau est libre (aucun signal en cours). Chaque machine envoyant un message vérifie qu'aucun autre message n'a été envoyé en même temps par une autre machine. Si c'est le cas, les deux machines patientent pendant un temps aléatoire avant de recommencer à émettre.
Dans un environnement sans fil ce procédé n'est pas utilisable car il est complexe d'écouter le medium lors de sa propre transmission pour détecter des collisions. Par ailleurs, dans la mesure où deux stations voulant communiquer avec un récepteur commun peuvent être situées à l'opposé l'une de l'autre et ne s'entendent pas forcément mutuellement en raison du rayon de portée du signal radio, problème connu sous le nom du « problème du nœud caché », un mécanisme d'évitement de collisions entre leurs trames est nécessaire.
Le déroulement simplifié du protocole CSMA/CA pour les réseaux Wi-Fi est le suivant :
* Chaque station écoute le medium (Carrier Sensing) afin de déterminer si une autre station est en train d'émettre
* Lorsque l'une trame doit être transmise:
** Si le canal a été libre pendant une durée égale au DIFS (Distributed Inter Frame Space), alors cette trame est transmise.
** Sinon, la station attend que le medium soit libre pendant une durée égale au DIFS, puis engage une procédure de backoff aléatoire. Pour ce faire, elle tire aléatoirement la valeur d'un compteur (sous la forme d'un entier) dans une fenêtre appelée la fenêtre de contention $[0..CW]$(Contention Window). Si le compteur est égal à zéro, elle transmet immédiatement. Sinon, elle diminue la valeur de ce compteur d'une unité pour chaque période $aSlotTime$ pendant laquelle le medium est entièrement libre, et transmet lorsque le compteur atteint zéro.
La valeur de $CW$ est dynamiquement choisie en fonction du nombre de retransmissions observées avec le destinataire des trames dans une fenêtre $[aCWmin..aCWmax]$. Les valeurs de $aCWmin$, $aCWmax$ et $aSlotTime$ dépendent de la couche physique utilisée mais aussi de la bande de fréquence dans laquelle la station opère.