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/

Répondre à