Découpant le réseau en sous-réseau permet de réduire le trafic global. De plus, Pour la sécurité, on peut empecher certain sous-réseau d'accéder à d'autres sous-réseaux.
En pratique, une partie des octets destinés à coder la partie hote de la machine est utilisée pour la partie de sous-réseau. Par exemple, pour un réseau de classe C (d'adresse 192.168.100.202, par exemple) on a un masque de 255.255.255.0, soit 11111111.11111111.11111111.00000000 en binaire :
Adresse IP | 192 | 168 | 100 | 202 | |
11000000 | 10101000 | 1100100 | 11001010 | ||
ET | Masque de réseau | 255 | 255 | 255 | 0 |
11111111 | 11111111 | 11111111 | 00000000 | ||
= | Adresse réseau | 192 | 168 | 100 | 0 |
11000000 | 10101000 | 1100100 | 00000000 |
En prenant un bit de la partie hote pour le sous-réseau, on créé deux sous-réseaux, le bit prit à la partie hote indiquant deux valeurs possibles (0 ou 1) :
Adresse IP | 192 | 168 | 100 | 202 | |
11000000 | 10101000 | 1100100 | 11001010 | ||
ET | Masque de réseau | 255 | 255 | 255 | 128 |
11111111 | 11111111 | 11111111 | 10000000 | ||
= | Adresse réseau | 192 | 168 | 100 | |
11000000 | 10101000 | 1100100 | 10000000 |
Si on veut 8 sous-réseaux, on peut appliquer le meme raisonnement en prenant 3 bits de la partie hote pour la partie sous-réseau (car
) :
Adresse IP | 192 | 168 | 100 | 202 | |
11000000 | 10101000 | 1100100 | 11001010 | ||
ET | Masque de réseau | 255 | 255 | 255 | 128 |
11111111 | 11111111 | 11111111 | 11100000 | ||
= | Adresse réseau | 192 | 168 | 100 | |
11000000 | 10101000 | 1100100 | 11000000 |
Le calcul de l'adresse de diffusion reste le meme que dans le cas de réseaux classiques.
La RFC 1878 [2] contient tous les masques de sous-réseaux possibles ainsi que les adresses valides.