Petit historique pour les jeunes : La détection d'erreurs, çà a commence avec le bit de parité.
Pour les liens série : parité ou pas. 7 ou 8 bits de données, 0 ou 1 bit de parité. C'est une simple somme de contrôle. Il n'y a rien à faire en cas d'erreur : on ne peut pas savoir lequel des bits a une erreur, seulement qu'on a une erreur. Pour la mémoire : similaire. Sans parité : 8 bits. Avec parité : 9 bits. Si erreur : NMI, BSOD. Un peu plus évolué, la mémoire ECC : 8 bits de données, 3 de parité. Cette mémoire peut corriger 1 bit d'erreur. But : non pas de corriger les erreurs en permanence, mais de faire savoir à l'admin que la mémoire est en train de mourir, çà fait donc gagner un peu de temps en laissant le système fonctionner mais le seul remède c'est de changer la mémoire défectueuse. Les admins qui ignorent les corrections ECC vont bientôt se retrouver dans le même cas d'une erreur de parité : plus qu'un bit d'erreur, BSOD. Un peu plus tard, le RAID5. Même idée, plus de bits que les données à stocker, un disque de plus qu'il est nécessaire. Si un disque dur meurt, remplacer le disque dur. Là encore, la détection et la correction de l'erreur ne sont qu'un moyen de gagner du temps pour résoudre le défaut. Le RAID avec un disque en panne continue à marcher, mais si on ne remplace pas rapidement le disque et qu'on ne reconstruit pas les données, le jour ou un second disque meurt on a tout perdu. Et maintenant, FEC. La même idée : on transmet plus de bits que nécessaire, si le nombre de bits en erreur est inférieur à ce que permet le système, on peut corriger la trame. Pourquoi j'en ai pas besoin : - Si c'est de la voix ou de la vidéo en UDP, et que j'ai 1E-08 de perte, je m'en fous. - Si c'est des données TCP et que j'ai 1E-08 de retransmissions, je m'en fous. En plus, FEC ce n'est pas transparent en terme de latence. Pourquoi : - On transmet plus de bits que nécessaire. - A part la transmission, il faut analyser à l'arrivée si l'information est cohérente, ce qui prend du temps. Au contraire d'un système RAID, il n'y a pas de signe clair que le disque ou le secteur est mort. Les bits arrivent, est-ce qu'il y a une erreur dedans ou non il faut exécuter l'algorithme de contrôle pour savoir, ce qui prend du temps. - Si il y a une erreur, c'est encore pire : l'algorithme de reconstruction est parfois plus compliqué que l'algorithme de détection, donc il va y avoir une forte latence avant que la trame corrigée arrive à destination. Faut pas oublier que pendant que tout ce business de FEC prend place, les paquets continuent à arriver à n x 10G, ou pire. FEC n'enlève pas les erreur. Cà essaie de donner l'illusion qu'il n'y en a pas, ce qui est une solution d'attente à court-terme. Et contrairement à la mémoire ou au disque dur en panne, les données ne sont pas perdues : elle peuvent être retransmises. Le FEC sur la ligne, c'est pas là ou j'en ai besoin. Michel. --------------------------- Liste de diffusion du FRnOG http://www.frnog.org/