|
L'algorithme d'intervalle logarithmique dans la couche MAC, principalement utilisé dans les protocoles CSMA/CA (Carrier Sense Multiple Access with Collision Evidence) comme le Wi-Fi (802.11), vise à résoudre les collisions en introduisant un délai aléatoire avant de retransmettre une trame. C'est "logarithmique" car la plage des retards possibles augmente de façon exponentielle à chaque collision successive. Voici comment cela est mis en œuvre :
1. Détection de collision :
* Le nœud émetteur écoute une collision après l'envoi d'une trame. S'il détecte une collision (par exemple en détectant un autre signal sur le canal pendant la transmission), il sait que sa transmission a échoué.
2. Initialisation du compteur d'attente :
* Un compteur d'attente est initialisé. La valeur initiale est généralement « CWmin » (Contention Window minimum), une valeur fixe définie par la norme (par exemple, 31 dans certaines configurations 802.11). Ce compteur représente le nombre d'intervalles de temps que le nœud doit attendre avant de tenter une retransmission. Un créneau horaire est un intervalle court et prédéfini.
3. Interruption aléatoire :
* Un nombre aléatoire est généré uniformément entre 0 et la valeur actuelle du compteur d'attente (« CW »). Ce nombre aléatoire détermine le délai spécifique avant la retransmission. Ce caractère aléatoire permet d'éviter les collisions persistantes qui pourraient se produire si tous les nœuds retransmettaient exactement en même temps.
4. Décrémentation du compteur d'attente :
* Le nœud attend le nombre aléatoire de créneaux horaires. Pendant cette période d'attente, le nœud continue de détecter le canal. Si le canal est libre, il décrémente le compteur d'intervalle dans chaque intervalle de temps jusqu'à ce qu'il atteigne zéro.
5. Retransmission :
* Lorsque le compteur d'attente atteint zéro, le nœud tente de retransmettre la trame.
6. Résolution des collisions :
* Si une autre collision se produit, la fenêtre de contention (`CW`) est doublée (ou augmentée selon un algorithme spécifique au sein de la norme), jusqu'à une valeur maximale (`CWmax`). Cela garantit que les nœuds étalent leurs tentatives de retransmission sur un intervalle de temps plus long, réduisant ainsi la probabilité de nouvelles collisions.
7. Retard exponentiel :
* Le caractère logarithmique découle de l'augmentation exponentielle de la fenêtre de contention. Chaque collision augmente considérablement la plage des retards possibles, entraînant une diminution rapide de la probabilité de collision. Si un nombre maximum de tentatives de retransmission est atteint sans succès, la trame est rejetée.
8. Exemple :
Disons que « CWmin » vaut 31 et « CWmax » vaut 1023.
* 1ère collision : `CW` =31. Délai aléatoire :0 à 31 créneaux horaires.
* 2e collision : `CW` =63 (doublé). Délai aléatoire :0 à 63 plages horaires.
* 3ème collision : `CW` =127. Délai aléatoire :0-127 créneaux horaires.
* ... et ainsi de suite, jusqu'à ce que « CW » atteigne « CWmax » ou que la trame soit transmise avec succès.
Détails de mise en œuvre (exemple 802.11) :
L'implémentation précise varie légèrement en fonction de la norme 802.11 spécifique (par exemple, 802.11a, 802.11b, 802.11g, 802.11n, 802.11ax). Les détails seraient intégrés dans le micrologiciel ou le pilote de la carte d'interface réseau (NIC) sans fil. Ces détails incluent :
* Valeurs spécifiques de `CWmin` et `CWmax`.
* L'algorithme exact pour doubler ou augmenter la fenêtre de contention.
* Mécanismes de gestion de divers types d'erreurs et de conditions de canal.
Essentiellement, l'algorithme d'intervalle logarithmique est un élément clé pour rendre CSMA/CA efficace dans la gestion des accès simultanés à un support sans fil partagé, en évitant les collisions catastrophiques et en permettant une communication efficace.
|