TP N°3 : Masque de sous-réseau (Subnetting ou sous-réseautage) Ce qu’on a déjà vu @ IPV4 Les classes d’@ ip @ IPV4 privées
@ IP = ID Réseau + ID machine Pour un préfixe réseau: Le nombre des adresses attribuables aux machine = 2 ^ N - 2 À savoir la classe D pour le multicast et E réservé pour un usage future Le format d’une @ IP « ID réseau & ID machine » : dans la classe A ID réseau tient sur 1 octet et ID machine tient sur 3 octet ,,,,etc. Imaginons une entreprise qui a besoin de 4096 adresses machines. Dans quelle Classe doit on choisir l’@ réseau ?? Réponse : Classe B ( par exemple 129.0.0.0) Cette réponse aurait pu être juste avant les années 90…
Subnetting ou Sous-Réseautage Consiste à choisir quelques bits de poids fort du suffixe hôte pour adresser un sous-réseau C'est à l'administrateur réseau que revient cette fonction. Pour l’exemple: il s’agit d’une adresse classe C @ réseau 205.16.37.0 mais ici il y a un subnetting qui est effectué dont l’indication est donnée par le masque Le masque sous-réseau donne une indication sur cette subdivision
Masque Format: Tient sur 32 bits , les plus à gauches sont des 1 et les plus à droite sont des 0 ( 1111…..111100….0000) Rôle: délimiter les @ IP appartenant au même sous-réseau. Exemple d’un masque: Notation Décimale : 255.255.255.240 En binaire: 11111111. 11111111. 11111111. 11110000 Notation CIDR : / 28 CIDR = classless interdomain Routing
Informations qu’on peut dégager à partir du masque Nbr des 1 = Taille NET_ID (Identificateur du réseau) Nbr des 0 (N) = Taille HOST_ID (Identificateur d’hôte) Nbr des adresses machines disponibles sur le sous-réseau : 2^N - 2 Dans l’exemple: 11111111. 11111111. 11111111. 11110000 28 4 14
Application du TP3-Partie 1 Créer une application avec GUI qui permet de: Lire une @ IP et un masque écrits en décimale Supposons que le masque est valide : Dégager l’ID réseau en binaire Dégager l’ID machine en binaire
Indications pour le code Lecture masque: Integer.parseInt(jTextField .getText()) Conversion: Integer.toBinaryString(…) Concatener des zéros à gauche pour les octets 2 , 3 et 4 while (b.length()<8) { b = "0"+b ;} 4) Calculer le nombre des 1 dans le masque de 32 bits: while (msq.charAt(i) == '1') {i++;} Lecture & conversion pour l’@IP de la même façon 6) Afficher les réponses : jTextField .setText(ip.substring(0,i)); {Deux paramètres} jTextField .setText(ip.substring(i)); {Un seul paramètre}
Exemple d’exécution Lecture masque: 255.240.0.0 Masque en binaire:11111111.11110000.00000000.00000000 Nombre des 1 dans le masque: 12 Lecture IP: 124.15.14.10 IP en binaire: 01111100.00001111.00001110.00001010 ID Réseau: 011111000000 (12 bits) ID Machine: 11110000111000001010 (20 bits)