Exercices – Formats, parité et sommes de contrôle
BTS SIO SISR 1re année – Mathématiques pour l'informatique – S15
Note
Comment travailler. Cherche d'abord sur papier, avec la méthode du cours : écris les étapes, pas seulement le résultat. Ouvre ensuite « Voir la réponse » pour te corriger. À l'épreuve, la calculatrice est autorisée selon les consignes du sujet : entraîne-toi à poser les calculs.
Exercice 1 – Octet valide ?
Pour chaque chaîne, dire si elle représente un octet décimal valide (règles du cours) : "192", "256", "07", "", "12a", "0".
Voir la réponse
"192" : oui. "256" : non (supérieur à 255). "07" : non (zéro initial). "" : non (vide). "12a" : non (caractère qui n'est pas un chiffre). "0" : oui (zéro seul).
Exercice 2 – Adresse IPv4 valide ?
Dire si chaque chaîne est une adresse IPv4 valide et donner la première règle violée : (a) 10.0.0.1 ; (b) 10.0.0 ; (c) 172.16.256.1 ; (d) 192.168.1.1. ; (e) 1.2.3.04.
Voir la réponse
(a) valide. (b) non : 3 morceaux au lieu de 4. (c) non : 256 > 255. (d) non : split(".") donne 5 morceaux, le dernier est vide. (e) non : "04" a un zéro initial.
Exercice 3 – Masque valide ?
Les octets possibles d'un masque de sous-réseau sont ceux dont l'écriture binaire est une suite de 1 suivie de 0.
- Écrire les neuf valeurs possibles d'un octet de masque.
- Parmi
255.255.255.192,255.255.255.100,255.255.0.255, dire lesquels sont des masques valides.
Voir la réponse
- \(0, 128, 192, 224, 240, 248, 252, 254, 255\) (de zéro à huit bits à 1, en tête).
255.255.255.192: valide.255.255.255.100: non, \(100 = 01100100_2\) n'est pas de la forme 1…10…0.255.255.0.255: non, après un octet nul, tous les octets suivants doivent être nuls.
Exercice 4 – Bit de parité
- Donner le bit de parité (parité paire) de
1011001,1110000,0000000,1111111. - Parmi les mots reçus
10110010,11100001,10011000,11000011(parité paire, bit de parité compris), lesquels sont acceptés ? - Le mot
10110010est altéré en10010011pendant la transmission. Le contrôle le détecte-t-il ? Pourquoi ?
Voir la réponse
1011001: 4 uns, bit 0.1110000: 3 uns, bit 1.0000000: 0 un, bit 0.1111111: 7 uns, bit 1.- Nombre de 1 : 4, 4, 3, 4. Seul
10011000(nombre impair) est refusé. - Deux bits ont changé (rangs 3 et 8). Le mot reçu contient 4 uns : le nombre est pair, l'erreur n'est pas détectée. La parité ne voit pas un nombre pair d'erreurs.
Exercice 5 – Parité à deux dimensions
La grille suivante (3 lignes et 3 colonnes de données, plus les bits de parité) a été reçue avec au plus une erreur.
- Quelles lignes et quelles colonnes ont une parité fausse ?
- Quel bit est erroné ? Donner la grille corrigée.
Voir la réponse
- Ligne 1 (un seul 1) et colonne 2 (un seul 1). Les autres lignes et colonnes comptent 2 uns ou aucun.
- Le bit à l'intersection, ligne 1, colonne 2 : il vaut 0, on le remplace par 1. La ligne 1 devient
0 1 1 | 0, la colonne 2 compte 2 uns : toutes les parités sont justes.
Exercice 6 – Somme de contrôle
- Calculer l'octet de contrôle \(c\) pour les octets \(200, 100, 50\).
- On reçoit \(200, 100, 51\) avec \(c = 162\). Le contrôle réussit-il ?
- On reçoit \(201, 99, 50\) avec \(c = 162\). Le contrôle réussit-il ? Que conclure ?
Voir la réponse
- Somme \(350\) ; \(350 \bmod 256 = 94\) ; \(c = 256 - 94 = 162\). Vérification : \(350 + 162 = 512 = 2 \times 256\).
- \(200 + 100 + 51 + 162 = 513 \equiv 1 \pmod{256}\) : le résultat n'est pas nul, l'erreur est détectée.
- \(201 + 99 + 50 + 162 = 512 \equiv 0\) : le contrôle réussit alors que deux octets sont faux. Deux erreurs qui se compensent ne sont pas détectées.
Exercice 7 – OU exclusif de contrôle
- Calculer \(\texttt{0xC0} \oplus \texttt{0xA8} \oplus \texttt{0x0A} \oplus \texttt{0x4D}\) (ce sont les octets de
192.168.10.77), en binaire puis en hexadécimal. - Quel est le OU exclusif des cinq octets obtenus en ajoutant ce résultat aux quatre premiers ?
Voir la réponse
- \(11000000 \oplus 10101000 = 01101000\) ; \(00001010 \oplus 01001101 = 01000111\) ; \(01101000 \oplus 01000111 = 00101111\), soit
0x2F(47 en décimal). - 0 : chaque bit apparaît un nombre pair de fois, car \(x \oplus x = 0\).
Exercice 8 – Choisir les tests
On écrit une fonction mac_valide(s). Proposer six chaînes de test : deux valides et quatre invalides, chacune pour une raison différente.
Voir la réponse
Valides : 00:1A:2b:3C:4d:5E (mélange majuscules et minuscules) et ff:ff:ff:ff:ff:ff. Invalides : 00:1A:2b:3C:4d (5 groupes) ; 00:1A:2b:3C:4d:5G (G n'est pas hexadécimal) ; 0:1A:2b:3C:4d:5E (groupe d'un seul caractère) ; la chaîne vide. D'autres choix sont possibles : l'essentiel est que chaque règle soit violée par au moins un test.
Je sais faire
Coche honnêtement ; ce que tu ne coches pas se reprend avant la séance suivante.
- Écrire les règles d'un format et les traduire en tests ;
- Choisir des cas limites pour un validateur ;
- Calculer un bit de parité et contrôler un mot reçu ;
- Localiser une erreur isolée avec une parité à deux dimensions ;
- Calculer une somme de contrôle et un OU exclusif de contrôle.
Ce que je dois reprendre : ______________________
Ma question à poser à l'enseignant : ______________________