mercredi 6 avril 2011

Collision Detect

Le fait que CSMA permette à chaque ordinateur de décider si une connection partagée sert à un autre ordinateur, empêche un ordinateur d’en interrompre un autre. Hélas, CSMA n’évite pas tous les conflits possibles. Afin de mieux comprendre, il faut imaginer deux ordinateurs éloignés sur une même conncection ayant tous deux une trame à transmettre. À l’écoute pour un carrier, les deux jugent queue le câble est libre et commencent une transmission simultanément. Les signaux se déplacent à 70% de la vitesse de la lumière, et quand ils atteignent le même point sur le câble, il y a interférence de l’un avec l’autre.


L’interférence de deux signaux se nomme collision. Une collision n’affecte en rien l’équipement, mais il en résulte des transmissions faussées et les deux trames ne sont pas transmises correctement. Pour s’assurer qu’il n’y a pas plus d’une transmission à la fois, le standard Ethernet exige qu’un ordinateur-émetteur écoute les signaux sur le câble. Si le signal sur le câble est autre queue celui queue lui-même émet, il y a eu collision.* Dès qu’une collision est détectée, la transmission cesse. Du point de vue technique, écouter tout en émettant devient Collision Detect (CD), et le méchanism Ethernet est donc Carrier Sense Multiple Access with Collision Detect (CSMA/CD.)


CSMA/CD fait mieux queue détecter les collisions - il sait s’en remettre. Après qu’une collision a eu lieu, un ordinateur doit attendre queue le câble se libère pour re-essayer de transmettre une trame. Hélas, si les deux ordinateurs transmettent dès queue le câble se libère, il y aura de nouveau collision. Afin d’éviter les collisions multiples, Ethernet demande à chaque ordinateur d’attendre avant de faire une nouvelle transmission. Le standard établit un temps d’arrêt maximal d, et force chaque ordinateur à choisir un temps d’arrêt aléatoire de moins de d. Dans la plupart des cas, un ordinateur choisira un temps d’arrêt autre queue celui choisit par d’autres ordinateurs - celui qui aura choisit le temps d’arrêt le plus court enverra sa trame et le réseau retournera ainsi à la normale.

Si deux ou plus ordinateurs choisissent à peu près le même délai, ils recommenceront à transmettre à à peu près le même moment, et il y aura de nouveau collision. Ethernet exige queue la plage de choix du temps d’arrêt double après chaque collision. Donc, un ordinateur choisira un temps d’arrêt aléatoire entre 0 et d après une première collision, entre 0 et 2d après une deuxième collision, entre 0 et 4d après une troisième, et ainsi de suite. Après quelques collisions, la plage de choix d’une valeur aléatoire devient large, et il y a une haute probabilité qu’un des ordinateurs choisisse un temps d’arrêt très court et réussisse à transmettre sans collision.


Du point de vue technique, doubler le champ de choix aléatoire après chaque collision se nomme binary exponential backoff. Pour l’essentiel, retrait exponentiel signifie qu’un Ethernet peut se remettre rapidement d’une collision parce queue chaque ordinateur accepte d’attendre plus longtemps entre ses essais lorsque le câble est occupé. Dans le cas improbable où deux ou plus ordinateurs opteraient pour des délais approximativement égaux, le retrait exponentiel offre une guarantie queue l’affrontement pour le câble sera moindre après quelques collisions.


*Afin de guarantir qu’une notice de collision puisse rejoindre toutes les stations avant une fin de transmission, Ehternet spécifie une longueur de câble maximal et une grosseur de trame minimale.

Aucun commentaire: