Académique Documents
Professionnel Documents
Culture Documents
Cours
Ex ...
1) introduction
On se propose d’étudier deux techniques de détection d’erreurs dans la transmission de données sur
des moyens de communication non fiables. L’adjonction d’un bit de parité est utilisée un peu
partout : c’est la «clé» dans un numéro de sécurité sociale ou de compte bancaire, ou le treizième
chiffre d’un code barre de supermarché.
Quant au codage CRC, c’est la principale méthode de détection d’erreurs utilisée dans les
télécommunications.
Les données transitant sur le réseau sont des séquences de bits que l’on notera 0 ou 1. Ces
séquences de bits sont découpés en mots b0b1 … bn-1 de longueur n > 1, que l’on représentera par un
tableau d’entiers [|b0;b1; ... ;bn-1|], avec bi [0;1].
Le nombre d’erreurs de transmission du mot b est le nombre de bits ayant changé de valeur après
transmission.
2) Bite de parité
Le «ou exclusif» de deux bits x et y est noté x y et est défini par la table de valeurs suivante :
Il s’agit de rajouter un bit de parité par exemple pour un caractère ASCII codé sur 7 bits, on ajoute
un huitième bit.
Le bit de parité est le MSB il signifie : qu’une parité PAIRE que l’octet envoyé est constitué d’un
nombre paire de 1. Il est a noté que le bit de parité fait parti de la parité du mot. Ce contrôle est
aussi appelé Vertical Redundancy Check).
Se système gagne en efficacité si il lui est associé un contrôle horizontal, en insérant un mot de
contrôle de parité semblable au bit de parité.
Tp / Td
Cours
Ex ...
3) checksum
Une somme de contrôle sur s bits est obtenue en additionnant des blocs de b bits modulo 2s
Généralement b = 8 bits
exemple
6 a 3 7 d 3
0110 1010 0011 0111 1101 0011
En termes de formules mathématiques, si nous notons les mots de 16 bits comme W0,
W1, ..., Wn, et la somme comme S, le calcul serait représenté comme suit :
S=W 0 +W 1 +W 2 +...+W n
S=S +(S ≫16)
checksum=complément à un de S
Où ">>" représente le décalage de bits vers la droite. Cela garantit que tout report
(carry) est ajouté à la somme.
Il est important de noter que le checksum est utilisé pour détecter des erreurs dans
l'en-tête IP pendant la transmission des données, mais il n'est pas
cryptographiquement sécurisé et ne doit pas être utilisé à des fins de sécurité.
Exemple:
Pour calculer le checksum de l'en-tête IP le checksum est 8EA4 il est important de le mettre a 00 00
pour faire le calcul.
L’entête (45000028df0400007c068ea423f4eb1bc0a8016f), voici les étapes :
4500 0028 df04 0000 7c06 0000 23f4 eb1b c0a8 016f
37158 on additionne les valeurs en plaçant le checksum à 00 00
715B 8EA4 On conserve les 2 derniers octet et on complément a 1 (on cherche FFFF)
4500+0028+df04+0000+7c06+8ea4+23f4+eb1b+c0a8+016f=3 7158
Prenez le complément à un de la somme obtenue (sur 2 octet on oublie le msb ici il a déjà été pris
en compte dans le calcul précédent):
On cherche en fait a faire 715B-FFFF=8EA4 (vous pouvez repasser en décimal pour faire ce
calcul)
checksum = complément a un de (715B)=8EA4
0000
on additionne les valeurs en plaçant le checksum à 00 00
On additionne la retenue
Noter les fonctions php que vous avez appris avec le programme précédent et proposer
l’algorithme