Une des tâches fondamentale lors de la mise en place d'un réseau TCP/IP consiste à affecter des adresses Internet aux noeuds du réseau. Ce sont les adresses IP. Si l'affectation des adresses IP peut sembler facile à première vue, il est nécessaire de prendre en considération un certain nombre de points. Pour que l 'ensemble soit cohérent et puisse fonctionner, tous les périphériques doivent avoir une adresse unique. De plus, afin de pouvoir communiquer avec les autres noeuds, il est indispensable que ces adresses soient cohérentes entre elles.
La base de l'adressage dans un réseau TCP/IP est l'adresse de la carte réseau (adresse MAC). Elle est inscrite en dur dans le programme implémenté. Pour de nombreuses raisons (changement de carte réseau, facilité de groupage de mêmes types d'adresses), la décision fut prise de mettre en place un système d'adressage logique indépendant au dessus des adresses physiques.
La vision logique de l'Internet créé un réseau virtuel. Chaque connexion de réseau à ce réseau virtuel est identifié de manière distincte au moyen d'une adresse IP. Les concepteurs de TCP/IP ont choisi un adressage sur 32 bits. Le nombre maximal de connexions est donc de 2^32, soit 4 296 967 296. Comme nous le verrons, le nombre maximal effectif de connexions est moindre car certaines adresses ont des significations réservées et ne peuvent être attribuées à des hôtes. Le réseau virtuel est constitué de réseaux reliés entre eux par le biais de périphériques tels que routeurs ou passerelles. Afin d'aiguiller les datagrammes IP, les routeurs doivent être en mesure de distinguer différent réseaux logiques. On a donc décidé de structurer l'adresse IP de façon à ce qu'elle puisse refléter la distinction entre les différents réseaux logiques. Un certain nombre de bits dans l'adresse IP sont utilisés pour identifier le réseau individuel dans le réseau virtuel, et les bits suivants permettent d'identifier l'hôte au sein du réseau.
La méthode consistant à partager l'adresse IP entre un numéro de réseau et un numéro d'hôte constitue un plan d'adressage hiérarchique, ce qui permet de rendre le routage beaucoup plus efficace. La fonction première d'un routeur est d'envoyer un datagramme IP dans au réseau idoine. A cet effet, les routeurs doivent stocker les informations concernant les Netids et non les Hostids. Le nombre de Netids est forcément inférieur aux Hostids, ce qui maintient à un nombre raisonnable la quantité d'informations qu'un routeur doit connaître. Si l'on n'avait pas établit cette distinction entre Netid et Hostid (en choisissant un système d'adressage plat, plutôt qu'un plan d'adressage hiérarchique), les routeurs auraient dû stocker les quatres milliards d'adresses IP.
A partir du nombre de 32 bits utilisé pour l'adresse IP, les concepteurs ont décidé que l'on utiliserait le premier, les 2 premiers ou les 3 premiers octets comme Netid.
Rappel : 1 octet est constitué de 8 bits. Attention à la confusion
avec l'anglais.
bit en français = bit en anglais alors que
octet en français = byte en anglais
L'adresse IP est partitionnée en une paire Netid/Hostid alignée à l'octet.
On obtient ainsi 3 classes d'adresses. Cette alignement à l'octet vient
d'une volonté de simplicité, mais on aurait très bien
pu partitionner l'IP en s'alignant au bit.
Comment distinguer les différents formats d'adresses ? Les bits les plus significatifs permettent de déterminer le format de l'adresse IP, c'est à dire le nombre de bits utilisés pour le Netid et le Hostid.
En plus des 3 classes A, B et C, deux autres classes sont définies. On peut affecter des adresses de classe A, B ou C, tandis que la classe D est réservée à la multidiffusion (multicast), technique utilisée par des protocoles spéciaux pour transmettre simultanément des messages à un groupe donné de noeuds différents. La classe E est réservée à un usage ultérieur.
Les différents types de classes d'adresses IP sont définis pour répondre aux besoins des réseaux de différentes tailles. Sur demande, l'autorité d'enregistrement du réseau affecte un numéro de réseau (Netid) à une organisation. Une fois ce numéro alloué à une organisation, il incombe à cette dernière d'affecter les numéros d'hôte (Hostid).
Pour simplifier les choses, on représente le nombre à 32 bits sous forme de 4 nombres décimaux correspondants à la valeur décimale des 4 octets qui composent l'adresse. Les nombres sont séparés par des points.
Ce tableau donne la classe d'une adresse en fonction de son 1er octet (décimal).
Pour chaque classe, 2 adresses sont réservées et ne peuvent être utilisées. Ce sont l'adresse du réseau lui-même et l'adresse de diffusion dirigée (broadcast).
255.255.255.255 : diffusion limitée : tous les ordinateurs de ce réseau.
0.0.0.0 : correspond à Netid 0 : le réseau d'ici
Hostid 0 : le noeud d'ici
Cette adresse (0.0.0.0) est généralement utilisée par un hôte qui essaye de déterminer sa propre adresse, par l'intermédiaire du protocole Bootp ou Dhcp.
On utilise aussi cette adresse dans les tables de routage pour indiquer l'adresse d'entrée du routeur (passerelle par défaut).
127.X.Y.Z : Bouclage logiciel (loopback)
Tout paquet envoyé par une application TCP/IP vers une adresse de type 127.X.Y.Z à pour conséquence le renvoi de ce paquet à l'application sans que le paquet n'atteigne le support du réseau. Le paquet est copié du buffer de transmission sur le buffer de réception de la machine elle-même. L'adresse de bouclage permet de vérifier rapidement que la pile TCP/IP est correctement configurée. Elle est aussi utile lorsqu'un logiciel client et un logiciel serveur s'exécute sur la même machine. On peut accéder au serveur en utilisant cette adresse. Ex : telnet 127.0.0.1
Lorsque qu'un paquet est envoyé à une adresse IP individuelle, on dit qu'il s'agit d'un paquet UNICAST.
Lorsque qu'un paquet est envoyé à tous les noeuds d'un réseau spécifique, on dit qu'il s'agit d'un paquet de diffusion (BROADCAST).
Enfin, lorsque qu'un paquet est envoyé à une adresse de classe D, on parle de MULTICAST. Tous les hôtes ayant cette adresse, en supplément de leur adresse IP classique, reçoivent ce paquet. Le protocole qui utilise cette technique est appelé IGMP (Internet Group Management Protocol).
Pour réduire le besoin en nouvelles adresses, un groupe d'adresse par classe à été réservé. Ce sont les adresses privées.
Elle ne sont pas routées sur l'internet. Afin de pouvoir sortir du réseau, on doit employer un proxy, passerelle NAT (Network Address Translation) ou tout autre équipement permettant l'utilisation de l'adresse publique de cet équipement.