Groupe de travail Réseau	J. Mogul (Stanford)	
Request for Comments : 950	J. Postel (ISI)	
STD 5	août 1985	
Traduction Claude Brière de L’Isle		

Procédure standard de mise en sous-réseau sur l’Internet

Statut du présent mémoire
La présente RFC spécifie un protocole pour la communauté ARPA-Internet. Il est fortement recommandé d’appliquer les procédures qui suivent en cas de mise en œuvre de sous-réseaux. La distribution du présent mémoire n’est soumise à aucune restriction.

Résumé
Le présent mémoire discute de l’utilité des "sous-réseaux" des réseaux de l’Internet, qui sont des sous-sections logiquement visibles d’un réseau Internet unique. Pour des raisons administratives ou techniques, de nombreuses organisations ont choisi de diviser un réseau Internet en plusieurs sous-réseaux, au lieu d’acquérir des numéros de réseau Internet. Le présent mémoire spécifie les procédures d’utilisation des sous-réseaux. Ces procédures sont pour les hôtes (par exemple, les stations de travail). Les procédures utilisées dans et entre les routeurs de sous-réseau ne sont pas complètement décrites. Des explications et des informations de base importantes sur la mise en sous-réseau standard sont fournies dans la RFC 940 [7].

Remerciement
Le présent mémoire se fonde sur la RFC-917 [1]. De nombreuses personnes ont contribué au développement des concepts décrits ici. J. Noel Chiappa, Chris Kent, et Tim Mann, en particulier, ont fourni d’importantes suggestions. Des contributions supplémentaires à la mise en forme de ce mémoire ont été faites par Zaw-Sing Su, Mike Karels, et l’équipe de travail Gateway Algorithms and Data Structures (GADS).

1.	Motivation

La vision originelle de l’univers Internet était une hiérarchie à deux niveaux : le niveau supérieur est l’Internet pris comme un tout, et le niveau en dessous est celui des réseaux individuels, chacun ayant son propre numéro de réseau. L’Internet n’a pas une topologie hiérarchique, c’est plutôt l’interprétation des adresses qui est hiérarchisée. Dans ce modèle à deux niveaux, chaque hôte voit son réseau comme une seule entité; c’est-à-dire que le réseau peut être traité comme une "boîte noire" à laquelle un ensemble d’hôtes est connecté.

Bien que cette vision se soit révélée simple et puissante, un certain nombre d’organisations l’ont trouvée inadéquate, et ont ajouté un troisième niveau à l’interprétation des adresses Internet. Dans cette approche, un réseau Internet donné est divisé en une collection de sous-réseaux.

Le modèle à trois niveaux est utile dans les réseaux appartenant à des organisations de taille modérée (par exemple, des universités ou des compagnies avec plus d’un bâtiment), où il est souvent nécessaire d’utiliser plus d’un câble LAN pour couvrir une "zone locale". Chaque LAN peut alors être traité comme un sous-réseau.

Une organisation peut vouloir couvrir un campus avec plus d’un câble pour plusieurs raisons :

-	Des technologies différentes : En particulier dans un environnement de recherche, il peut y avoir l’utilisation de plus d’une sorte de LAN ; par exemple, une organisation peut avoir une sorte d’équipements qui accepte Ethernet, et une autre qui fonctionne avec un réseau en anneau.

-	Les limites des technologies : La plupart des technologies de LAN imposent des limites, fondées sur des paramètres électriques, au nombre des hôtes connectés, et à la longueur totale du câble. Il est facile de dépasser ces limites, en particulier celles de longueur de câble.

-	L’encombrement du réseau : Il est possible qu’un petit sous-ensemble des hôtes d’un LAN monopolise la plus grande partie de la bande passante ; une solution courante à ce problème est de diviser les hôtes en cliques de communication mutuelle élevée, et de mettre ces cliques sur des câbles séparés.

-	Liaisons point à point : Parfois une "zone locale", telle qu’un campus universitaire, est partagée en deux localisations trop éloignées l’une de l’autre pour se connecter en utilisant la technologie préférée du LAN. Dans ce cas, des liaisons point à point à grande vitesse peuvent connecter plusieurs LAN.

Une organisation forcée d’utiliser plus d’un LAN a le choix entre trois possibilités pour allouer des adresses Internet :

1.	Acquérir un numéro de réseau Internet distinct pour chaque câble ; les sous-réseaux ne sont pas utilisés du tout.

2.	Utiliser un seul numéro de réseau pour toute l’organisation, mais allouer des numéros d’hôte sans tenir compte du LAN sur lequel un hôte est situé ("sous-réseaux transparents").

3.	Utiliser un seul numéro de réseau, et partager l’espace d’adresse de l’hôte en allouant des numéros de sous-réseau pour les LAN ("sous-réseaux explicites").

Chacune de ces approches a ses inconvénients. La première, bien que n’exigeant pas de protocoles nouveaux ou modifiés, résulte en une explosion de la taille des tableaux d’acheminement de l’Internet. Les informations sur les détails internes de la connexité locale sont propagées partout, bien qu’elles soient de peu d’utilité (ou même d’aucune) en-dehors de l’organisation locale. En particulier, comme les mises en œuvre de passerelles actuelles n’ont pas beaucoup d’espace pour les tableaux d’acheminement, il serait bon d’éviter ce problème.

La seconde approche exige une convention ou protocole qui fasse apparaître la collection de LAN comme étant un seul réseau Internet. Par exemple, cela peut être fait sur des LAN où chaque adresse Internet est traduite en adresse de matériel en utilisant un protocole de résolution d’adresse (ARP, Address Resolution Protocol), en faisant que les ponts entre les LAN interceptent les demandes d’ARP pour les cibles non locales, voir la RFC 925 [2]. Cependant, il n’est pas possible de faire cela pour toutes les technologies de LAN, en particulier celles où les protocoles d’ARP ne sont pas utilisés actuellement, ou si le LAN ne prend pas en charge les diffusions. Un problème plus fondamental est que les ponts doivent découvrir quel LAN est un hôte, peut-être en utilisant un algorithme de diffusion. Comme le nombre de LAN augmente, le coût de la diffusion augmente en proportion ; aussi, la taille des mémoires cache de traduction exigée dans les ponts augmente avec le nombre total d’hôtes dans le réseau.

La troisième approche est d’accepter explicitement les sous-réseaux. Cela a un inconvénient, en ce qu’il s’agit d’une modification du protocole Internet, et donc exige des changements des mises en œuvre IP déjà en service (si ces mises en œuvre doivent être utilisées sur un réseau en sous-réseaux). Cependant, ces changements sont relativement mineurs, et une fois faits, ils donnent une solution simple et efficace au problème. Aussi, cette approche évite t-elle tout changement qui serait incompatible avec les hôtes existants sur des réseaux non subdivisés en sous-réseaux.

De plus, lorsque les choix de conception appropriés sont faits, il est possible aux hôtes qui croient qu’ils sont sur un réseau non subdivisé en sous-réseaux d’être utilisés sur un réseau en sous-réseaux, comme expliqué dans la RFC-917 [1]. Ceci est utile lorsqu’il n’est pas possible de modifier certains des hôtes de façon à ce qu’ils prennent en charge explicitement le sous réseautage, ou quand une transition graduelle est préférée.

2.	Normes pour l’adressage des sous-réseaux

La présente section décrit d’abord une proposition d’interprétation des adresses Internet pour la prise en charge des sous-réseaux. Elle expose ensuite les changements à apporter au logiciel d’hôte pour la prise en charge des sous-réseaux. Finalement, elle présente une procédure pour découvrir quelle interprétation d’adresse est utilisée sur un réseau donné (c’est-à-dire, quel gabarit d’adresse est utilisé).

2.1	Interprétation des adresses Internet

Supposons qu’un numéro d’adresse internet ait été alloué à une organisation, qui a ensuite subdivisé ce réseau en un ensemble de sous-réseaux, et qu’elle veuille allouer des adresses d’hôte : comment ceci devrait-il être fait ? Comme il y a des restrictions minimales sur l’allocation de la partie "adresse locale" de l’adresse Internet, plusieurs approches ont été proposées pour représenter le numéro de sous-réseau :

1.	Champ de largeur variable : N’importe quel nombre des bits de la partie adresse locale est utilisé pour le numéro de sous-réseau ; la taille de ce champ, bien que constante pour un réseau donné, varie d’un réseau à l’autre. Si la largeur du champ est zéro, les sous-réseaux ne sont alors pas utilisés.

2.	Champ de largeur fixe : un nombre spécifique de bits (par exemple, huit) est utilisé pour le numéro de sous-réseau, si les sous-réseaux sont utilisés.

3.	Champ auto codant de largeur variable : de même que la largeur (c’est-à-dire, la classe) du champ de numéro de réseau est codée par ses bits de plus fort poids, la largeur du champ de sous-réseau est codée de façon similaire.

4.	Champ auto codant de largeur fixe : un nombre spécifique de bits est utilisé pour le numéro de sous-réseau.

5.	Gabarit binaire : utilisation d’un gabarit binaire ("gabarit d’adresse") pour identifier quels bits du champ d’adresse locale indiquent le numéro de sous-réseau.

Quels critères peuvent être utilisés pour choisir un de ces cinq schémas ? D’abord, devrions nous utiliser un schéma auto codant ? Et devrait-il être possible de dire en examinant une adresse Internet si elle se réfère à un réseau en sous-réseaux, sans se référer à d’autres informations ?

Une caractéristique intéressante de l’auto codage est qu’il permet de diviser l’espace d’adresse d’un réseau en sous-réseaux de tailles différentes, normalement un sous-réseau de la moitié de l’espace d’adresse et un ensemble de petits sous-réseaux.

Par exemple, considérons un réseau de classe C qui utilise un schéma d’auto codage avec un bit pour indiquer si c’est ou non le grand sous-réseau, et trois bits supplémentaires pour identifier les petits sous-réseaux. Si le premier bit est zéro, c’est alors le grand sous-réseau, si le premier bit est un, les bits suivants (3 dans cet exemple) donnent le numéro de sous-réseau. Il y a un sous-réseau avec 128 adresses d’hôtes, et huit sous-réseaux avec 16 hôtes chacun.

Pour établir une norme de mise en sous-réseau, les paramètres et l’interprétation du schéma d’auto codage doivent être fixés et cohérents dans tout l’Internet.

On devrait supposer que tous les réseaux sont en sous-réseau. Cela permettrait d’interpréter les adresses sans se référer à d’autres informations.

C’est un avantage significatif pour une mise en œuvre qu’une fois donnée l’adresse Internet aucune information supplémentaire ne soit nécessaire pour déterminer si deux adresses sont sur le même sous-réseau. Cependant, ceci peut aussi être vu comme un inconvénient : cela peut causer des problèmes pour les réseaux qui ont des numéros d’hôtes existants qui utilisent des bits arbitraires dans la partie adresse locale. En d’autres termes, il est utile d’être capable de contrôler si un réseau est en sous-réseau indépendamment de l’allocation des adresses d’hôte.

L’autre solution est de séparer le fait qu’un réseau soit en sous-réseaux et celui de l’établissement de l’adresse. Si on découvre, de quelque façon que ce soit, que le réseau est en sous-réseaux, les règles d’adresse de réseau en sous-réseau auto codées standard s’appliquent ; autrement, ce sont les règles d’adressage de réseau non subdivisé en sous-réseau qui s’appliquent.

Si on utilise pas un schéma d’auto codage, il n’y a pas de raisons d’utiliser un schéma de champ de largeur fixe : comme il doit y avoir dans tous les cas un "fanion" particulier au réseau pour indiquer si des sous-réseaux sont utilisés, le coût additionnel de l’utilisation d’un entier (une largeur de champ de sous-réseau ou un gabarit d’adresse) au lieu d’un booléen est négligeable. L’avantage d’utiliser le schéma de gabarit d’adresse est qu’il permet à chaque organisation de choisir la meilleure façon d’allouer des bits relativement rares de l’adresse locale aux numéros de sous-réseau et d’hôte. Donc, nous choisissons le schéma de gabarit d’adresse : c’est le schéma le plus souple, qui ne coûte pas plus cher à mettre en œuvre que n’importe quel autre.

Par exemple, l’adresse Internet pourrait être interprétée comme :

<numéro-de-réseau><numéro-de-sous-réseau><numéro-d’hôte>

où le champ <numéro-de-résau> est comme défini dans IP [3], le champ <numéro-d’hôte> est au moins large d’un bit, et la largeur du champ <numéro-de-sous-réseau> est constante pour un réseau donné. Aucune autre structure n’est nécessaire pour les champs <numéro-de-sous-réseau> ou <numéro-d’hôte>. Si la largeur du champ <numéro-de-sous-réseau> est de zéro, le réseau n’est alors pas en sous-réseaux (c’est-à-dire que l’interprétation de [3] est utilisée).

Par exemple, sur un réseau de classe B avec un champ de sous-réseau d’une largeur de 6 bits, une adresse serait structurée comme suit :

0	1	2	3	
0 1 2 3 4 5 6 7 8 9	0 1 2 3 4 5 6 7 8 9	0 1 2 3 4 5 6 7 8 9	0 1	
1 0	Réseau	Sous-réseau	Numéro d’hôte	

Comme les bits qui identifient le sous-réseau sont spécifiés par un gabarit binaire, il n’est pas nécessaire qu’ils soient adjacents dans l’adresse. Cependant, nous recommandons que les bits de sous-réseau soient contigus et localisés comme bits de plus fort poids de l’adresse locale.

Adresses particulières :

D’après le document sur les numéros alloués [9] :
"Dans certains contextes, il est utile d’avoir des adresses fixées avec une signification fonctionnelle plutôt que comme identifiants d’hôtes spécifiques. Quand une telle utilisation est faite, l’adresse zéro est à interpréter comme signifiant "ce", comme dans "ce réseau". L’adresse toute en uns est à interpréter comme signifiant "tous", comme dans "tous les hôtes". Par exemple, l’adresse 128.9.255.255 pourrait être interprétée comme signifiant tous les hôtes sur le réseau 128.9. Ou, l’adresse 0.0.0.37 pourrait être interprétée comme signifiant l’hôte 37 sur ce réseau."

Il est utile de préserver et étendre l’interprétation de ces adresses spéciales dans les réseaux en sous-réseaux. Cela signifie que les valeurs de tout à zéro et de tout à un dans le champ de sous-réseau ne devraient pas être allouées à des sous-réseaux réels (physiques).

Dans l’exemple ci-dessus, le champ de sous-réseau d’une largeur de 6 bits peut avoir n’importe quelle valeur excepté 0 et 63.

Prière de noter qu’il n’y a pas d’effet ou de nouvelles restrictions des adresses d’hôtes sur les réseaux qui ne sont pas en sous-réseau.

2.2	Changer le logiciel de l’hôte pour la prise en charge des sous-réseaux

Dans la plupart des mises en œuvre de IP, il y a du code dans le module qui traite les datagrammes sortants pour décider si un datagramme peut être envoyé directement à la destination sur le réseau local ou s’il doit être envoyé à une passerelle.

Généralement, le code est quelque chose comme :

SI ip_net_number(dg.ip_dest) = ip_net_number(my_ip_addr)
             ALORS
                 send_dg_locally(dg, dg.ip_dest)
             AUTREMENT
                 send_dg_locally(dg,
                                  gateway_to(ip_net_number(dg.ip_dest)))

(Si le code accepte les réseaux à connexion multiple, cela sera plus compliqué, mais cela n’a rien à voir avec l’exposé en cours.)

Pour prendre en charge les sous-réseaux, il est nécessaire de mémoriser une quantité de 32 bits supplémentaires appelée my_ip_mask (mon gabarit IP). C’est un gabarit binaire avec des bits établis dans les champs correspondants au numéro de réseau IP, et des bits supplémentaires établis correspondant au champ de numéro de sous-réseau.

Le code devient alors :

SI bitwise_and(dg.ip_dest, my_ip_mask)
                                   = bitwise_and(my_ip_addr, my_ip_mask)
            ALORS
                 send_dg_locally(dg, dg.ip_dest)
             AUTREMENT
                 send_dg_locally(dg,
                        gateway_to(bitwise_and(dg.ip_dest, my_ip_mask)))

Bien sûr, une partie de l’expression du conditionnel peut être pré calculée.

Il peut être ou non nécessaire de modifier la fonction "gateway_to", de façon qu’elle aussi prenne en compte les bits du champ de sous-réseau lorsqu’elle effectue les comparaisons.

Pour la prise en charge des hôtes à connexions multiples, le code peut être changé pour conserver les quantités "my_ip_addr" et "my_ip_mask" sur la base de l’interface ; l’expression dans le conditionnel doit alors être évaluée pour chaque interface.

2.3	Trouver le gabarit d’adresse

Comment un hôte peut-il déterminer le gabarit d’adresse qui est utilisé sur un sous-réseau auquel il est connecté ?  Le problème est analogue à plusieurs autres problèmes "d’amorçage" pour les hôtes Internet : comment un hôte détermine t-il sa propre adresse, et comment localise t-il une passerelle sur son réseau local. Dans les trois cas, il y a deux solutions de base : des informations incorporées au matériel, et des protocoles fondés sur la diffusion. 

Les informations incorporées sont celles qui sont disponibles pour un hôte sans accéder au réseau. Elles peuvent être compilées, ou (de préférence) mémorisées sur un fichier disque. Cependant, pour le cas de plus en plus courant de stations de travail dépourvues de disque qui sont amorcées sur un LAN, n’importe laquelle des solutions incorporées est satisfaisante.

Au lieu de cela, comme la plupart des techniques de LAN acceptent la diffusion, une meilleure méthode est que l’hôte qui vient de s’amorcer diffuse une demande des informations nécessaires. Par exemple, pour déterminer son adresse Internet, un hôte peut utiliser le protocole de résolution d’adresse inverse (RARP, Reverse Address Resolution Protocol) [4].

Cependant, comme un hôte qui vient de s’amorcer a normalement besoin de rassembler plusieurs faits (par exemple, son adresse IP, l’adresse du matériel d’une passerelle, l’adresse IP d’un serveur de noms de domaine, le gabarit d’adresse de sous-réseau), il serait meilleur d’acquérir toutes ces informations en une seule demande si possible, plutôt que de faire de nombreuses diffusions sur le réseau. Les mécanismes conçus pour l’amorçage des stations de travail sans disque peuvent aussi charger des fichiers de configuration spécifiques hôte par hôte qui contiennent des informations requises (par exemple, voit la RFC 951 [8]). Il est possible, et souhaitable, d’obtenir tous les faits nécessaires au fonctionnement d’un hôte à partir d’un serveur d’amorçage en utilisant seulement un message en diffusion.

Dans le cas où il est nécessaire à un hôte de trouver le gabarit d’adresse par une opération distincte, on fournit le mécanisme suivant :

Pour fournir les informations de gabarit d’adresse, le protocole ICMP [5] est étendu en ajoutant une nouvelle paire de types de messages ICMP, "Demande de gabarit d’adresse" et "Réponse de gabarit d’adresse", analogue aux messages ICMP "Demande d’informations" et "Réponse d’informations". Ils sont décrits en détails dans l’Appendice I.

Ces nouveaux messages ICMP sont destinés à un hôte, lors de l’amorçage, qui diffuse un message de "Demande de gabarit d’adresse". Une passerelle (ou un hôte agissant en guise de passerelle) qui reçoit ce message répond par une "Réponse de gabarit d’adresse". Si la demande ne comporte pas l’indication de l’hôte qui l’envoie (c’est-à-dire que l’adresse de source IP est zéro), la réponse sera aussi en diffusion. L’hôte demandeur entendra la réponse, et déterminera à partir d’elle le gabarit d’adresse.

Comme il n’y a qu’une valeur possible qui puisse être envoyée dans une "Réponse de gabarit d’adresse" sur tout LAN donné, il n’est pas besoin que l’hôte demandeur confronte les réponses qu’il entend à la demande qu’il a envoyée ;  de façon similaire, il n’y a pas de problème si plus d’une passerelle répond. On suppose que les hôtes ne réamorcent pas fréquemment, aussi la charge de diffusion sur le réseau venant de l’utilisation de ce protocole devrait-elle être faible.

Si un hôte est connecté à plus d’un LAN, il pourrait avoir à trouver le gabarit d’adresse pour chacun.

Un problème potentiel est ce que devrait faire un hôte si il ne peut pas découvrir le gabarit d’adresse, même après un nombre raisonnable d’essais. Trois interprétations peuvent être faites de la situation :
1.	Le réseau local existe dans l’isolement (permanent) de tous les autres réseaux.
2.	Les sous-réseaux ne sont pas utilisés, et aucun hôte ne peut fournir le gabarit d’adresse.
3.	Toutes les passerelles sur le réseau local sont (temporairement) mortes.

La première et la seconde situations impliquent que le gabarit d’adresse est identique au gabarit de numéro de réseau Internet. Dans la troisième situation, il n’y a aucune façon de déterminer quelle est la valeur appropriée ; le choix le plus sûr est donc un gabarit identique au gabarit de numéro de réseau Internet. Bien que cela puisse se révéler faux, cela n’empêchera pas les transmissions qui auraient réussi autrement. Il est possible qu’un hôte se récupère d’un mauvais choix : lorsqu’une passerelle se connecte, elle devrait diffuser une "Réponse de gabarit d’adresse" ; lorsqu’un hôte reçoit un tel message qui est en désaccord avec ce qu’il supposait, il devrait changer son gabarit pour se conformer à la valeur reçue. Aucun hôte ou passerelle ne devrait envoyer une "Réponse de gabarit d’adresse" fondées sur une valeur "devinée".

Finalement, on notera qu’aucun hôte n’est obligé d’utiliser ce protocole ICMP pour découvrir le gabarit d’adresse ; il est parfaitement raisonnable pour un hôte avec une mémoire non volatile d’utiliser des informations mémorisées (y compris un fichier de configuration provenant d’un serveur d’amorçage).

Appendice I.	Gabarit d’adresse ICMP

Demande de gabarit d’adresse ou Réponse de gabarit d’adresse

0	1	2	3	
0 1 2 3 4 5 6 7 8 9	0 1 2 3 4 5 6 7 8 9	0 1 2 3 4 5 6 7 8 9	0 1	
Type	Code	Somme de contrôle	
Identifiant	Numéro de séquence	
Gabarit d’adresse	

Champs IP :

Adresses
L’adresse de la source dans un message de demande de gabarit d’adresse sera la destination du message de réponse du gabarit d’adresse. Pour former un message de réponse de gabarit d’adresse, l’adresse de source de la demande devient l’adresse de destination de la réponse, l’adresse de source de la réponse est réglée à l’adresse de celui qui répond, le code de type est changé en AM2, la valeur du gabarit d’adresse est insérée dans le champ Gabarit d’adresse, et la somme de contrôle recalculée. Cependant, si l’adresse de source dans le message de demande est zéro,l’adresse de destination pour le message de réponse devrait alors indiquer une diffusion.

Champs ICMP :

Type
AM1 pour un message de demande de gabarit d’adresse
AM2 pour un message de réponse de gabarit d’adresse

Code
0 pour un message de demande de gabarit d’adresse
0 pour un message de réponse de gabarit d’adresse

Somme de contrôle
La somme de contrôle est le complément à un de 16 bits de la somme des compléments à un du message ICMP commençant par le Type ICMP. Pour calculer la somme de contrôle, le champ somme de contrôle devrait être zéro. Cette somme de contrôle pourra être remplacée à l’avenir.

Identifiant
Un identifiant pour aider à faire correspondre les demandes et les réponses, peut être zéro.

Numéro de séquence
Un numéro de séquence pour aider à faire correspondre les demandes et les réponses, peut être zéro.

Gabarit d’adresse
Un gabarit de 32 bits.

Description
Une passerelle qui reçoit une demande de gabarit d’adresse devrait le retourner avec le champ de gabarit d’adresse réglé au gabarit de 32 bits des bits identifiant le sous-réseau et le réseau, pour le sous-réseau sur lequel la demande a été reçue.

Si l’hôte demandeur ne connaît pas sa propre adresse IP, il peut laisser le champ de source à zéro ; la réponse devrait alors être diffusion. Cependant, cette approche devait être évitée si possible, car elle augmente la charge de diffusion superflue pour le réseau. Même lorsque les réponses sont en diffusion, car il y a un seul gabarit d’adresse possible pour un sous-réseau, il n’est pas besoin de faire correspondre les demandes et les réponses. Les champs "Identifiant" et "Numéro de séquence" peuvent être ignorés.

Type AM1 peut être reçu d’une passerelle ou d’un hôte.

Type AM2 peut être reçu d’une passerelle, ou d’un hôte agissant à la place d’une passerelle.

Appendice II.	Exemples

Ces exemples montrent comment un hôte peut découvrir le gabarit d’adresse en utilisant les messages ICMP Demande de gabarit d’adresse et Réponse de gabarit d’adresse. Pour les exemples suivants, on suppose que l’adresse 255.255.255.255 note "diffusion sur ce support physique" [6].

II.1.	Cas de réseau de classe A

Pour ce cas, on suppose que l’hôte demandeur est sur un réseau 36.0.0.0 de classe A, qu’il a l’adresse 36.40.0.123, qu’il y a une passerelle à 36.40.0.62, et qu’un champ de sous-réseau d’une largeur de 8 bits est utilisée, c’est-à-dire que le gabarit d’adresse est 255.255.0.0.

La méthode la plus efficace, que nous recommandons, est que l’hôte découvre d’abord sa propre adresse (peut-être en utilisant "RARP" [4]), puis envoie ensuite la demande ICMP à 255.255.255.255:

Adresse de source :	36.40.0.123	
Adresse de destination :	255.255.255.255	
Protocole :	ICMP = 1	
Type :	Demande de gabarit d’adresse = AM1	
Code :	0	
Gabarit :	0	

La passerelle peut alors répondre directement à l’hôte demandeur.

Adresse de source :	36.40.0.62	
Adresse de destination :	36.40.0.123	
Protocole :	ICMP = 1	
Type :	Réponse de gabarit d’adresse = AM2	
Code :	0	
Gabarit :	255.255.0.0	

Supposons que 36.40.0.123 est une station de travail sans disque, et qu’elle ne connaît même pas son propre numéro d’hôte. Elle pourrait envoyer le datagramme suivant :

Adresse de source :	0.0.0.0	
Adresse de destination :	255.255.255.255	
Protocole :	ICMP = 1	
Type :	Demande de gabarit d’adresse = AM1	
Code :	0	
Gabarit :	0	

36.40.0.62 va entendre le datagramme, et devrait répond par ce datagramme :

Adresse de source :	36.40.0.62	
Adresse de destination :	255.255.255.255	
Protocole :	ICMP = 1	
Type :	Réponse de gabarit d’adresse = AM2	
Code :	0	
Gabarit :	255.255.0.0	

Noter que cette passerelle utilise la diffusion la plus étroite possible pour répondre. Même ainsi, la surcharge de diffusion représente une charge inutile pour tous les hôtes du sous-réseau, aussi l’utilisation de l’adresse de source "anonyme" (0.0.0.0) devait être réduite au minimum.

Si la diffusion n’est pas permise, on suppose que les hôtes ont des informations incorporées sur les passerelles voisines ; et donc, 36.40.0.123 pourrait envoyer ce datagramme :

Adresse de source :	36.40.0.123	
Adresse de destination :	36.40.0.62	
Protocole :	ICMP = 1	
Type :	Demande de gabarit d’adresse = AM1	
Code :	0	
Gabarit :	0	

36.40.0.62 devrait répondre exactement comme dans le cas précédent.

Adresse de source :	36.40.0.62	
Adresse de destination :	36.40.0.123	
Protocole :	ICMP = 1	
Type :	Réponse de gabarit d’adresse = AM2	
Code :	0	
Gabarit :	255.255.0.0	

II.2.	Cas de réseau de classe B

Pour ce cas, supposons que l’hôte demandeur est sur un réseau 128.99.0.0 de classe B, qu’il a l’adresse 128.99.4.123, qu’il est une passerelle à 128.99.4.62, et qu’un champ de sous-réseau d’une largeur de 6 bits est utilisé, c’est-à-dire que le gabarit d’adresse est 255.255.252.0.

L’hôte envoie la demande ICMP à 255.255.255.255 :

Adresse de source :	128.99.4.123	
Adresse de destination :	255.255.255.255	
Protocole :	ICMP = 1	
Type :	Demande de gabarit d’adresse = AM1	
Code :	0	
Gabarit :	0	

La passerelle répond alors directement à l’hôte demandeur.

Adresse de source :	128.99.4.62	
Adresse de destination :	128.99.4.123	
Protocole :	ICMP = 1	
Type :	Réponse de gabarit d’adresse = AM2	
Code :	0	
Gabarit :	255.255.252.0	

Dans le cas de la station de travail sans disque, l’hôte envoie :

Adresse de source :	0.0.0.0	
Adresse de destination :	255.255.255.255	
Protocole :	ICMP = 1	
Type :	Demande de gabarit d’adresse = AM1	
Code :	0	
Gabarit :	0	

128.99.4.62 va entendre le datagramme, et devrait répondre par ce datagramme :

Adresse de source :	128.99.4.62	
Adresse de destination :	255.255.255.255	
Protocole :	ICMP = 1	
Type :	Réponse de gabarit d’adresse = AM2	
Code :	0	
Gabarit :	255.255.252.0	

Si la diffusion n’est pas permise, 128.99.4.123 envoie :

Adresse de source :	128.99.4.123	
Adresse de destination :	128.99.4.62	
Protocole :	ICMP = 1	
Type :	Demande de gabarit d’adresse = AM1	
Code :	0	
Gabarit :	0	

128.99.4.62 devrait répondre exactement comme dans le cas précédent.

Adresse de source :	128.99.4.62	
Adresse de destination :	128.99.4.123	
Protocole :	ICMP = 1	
Type :	Réponse de gabarit d’adresse = AM2	
Code :	0	
Gabarit :	255.255.252.0	

II.3.	Cas de réseau de classe C (illustrant des bits de sous-réseau non contigus)

Pour ce cas, supposons que l’hôte demandeur est sur un réseau 192.1.127.0 de classe C, a l’adresse 192.1.127.19, que c’est une passerelle à 192.1.127.50, et que sur le réseau est utilisé un champ de sous-réseau de 3 bits (01011000), c’est-à-dire que le gabarit d’adresse est 255.255.255.88.

L’hôte envoie la demande ICMP à 255.255.255.255 :

Adresse de source :	192.1.127.19	
Adresse de destination :	255.255.255.255	
Protocole :	ICMP = 1	
Type :	Demande de gabarit d’adresse = AM1	
Code :	0	
Gabarit :	0	

La passerelle peut alors répondre directement à l’hôte demandeur.

Adresse de source :	192.1.127.50	
Adresse de destination :	192.1.127.19	
Protocole :	ICMP = 1	
Type :	Réponse de gabarit d’adresse = AM2	
Code :	0	
Gabarit :	255.255.255.88.	

Dans le cas d’une station de travail sans disque, l’hôte envoie :

Adresse de source :	0.0.0.0	
Adresse de destination :	255.255.255.255	
Protocole :	ICMP = 1	
Type :	Demande de gabarit d’adresse = AM1	
Code :	0	
Gabarit :	0	

192.1.127.50 va entendre le datagramme, et devrait répondre par ce datagramme :

Adresse de source :	192.1.127.50	
Adresse de destination :	255.255.255.255	
Protocole :	ICMP = 1	
Type :	Réponse de gabarit d’adresse = AM2	
Code :	0	
Gabarit :	255.255.255.88.	

Si la diffusion n’est pas permise, 192.1.127.19 envoie :

Adresse de source :	192.1.127.19	
Adresse de destination :	192.1.127.50	
Protocole :	ICMP = 1	
Type :	Demande de gabarit d’adresse = AM1	
Code :	0	
Gabarit :	0	

192.1.127.50 devrait répondre exactement comme dans le cas précédent.

Adresse de source :	192.1.127.50	
Adresse de destination :	192.1.127.19	
Protocole :	ICMP = 1	
Type :	Réponse de gabarit d’adresse = AM2	
Code :	0	
Gabarit :	255.255.255.88	

Appendice III.	Glossaire

Pont (Bridge)
Nœud connecté à deux ou plus sous-réseaux administrativement indistinguables mais physiquement distincts, qui transmet automatiquement les datagrammes quand nécessaire, mais dont l’existence n’est pas connues des autres hôtes. Aussi appelé un "répéteur logiciel".

Passerelle (Gateway)
Nœud connecté à deux ou plus réseaux ou sous-réseaux administrativement distincts, auquel les hôtes envoient des datagrammes à retransmettre.

Champ d’hôte (Host Field)
Le champ binaire utilisé dans une adresse Internet pour noter un hôte spécifique.

Internet
Collection des réseaux connectés qui utilisent le protocole IP.

Adresse locale
Le champ restant de l’adresse Internet (tel que défini dans [3]).

Réseau
Un seul réseau Internet (qui peut être ou pas divisé en sous-réseaux).

Numéro de réseau
Le champ réseau de l’adresse Internet.

Sous-réseau
Un ou plusieurs réseaux physiques formant un sous-ensemble d’un réseau Internet. Un sous-réseau est explicitement identifié dans l’adresse Internet.

Champ de sous-réseau (Subnet Field)
Le champ binaire qui dans une adresse Internet note le numéro de sous-réseau. Les bits qui constituent le champ ne sont pas nécessairement contigus dans l’adresse.

Numéro de sous-réseau
Numéro identifiant un sous-réseau au sein d’un réseau.

Appendice IV.	Numéros alloués

Les allocations suivantes sont faites pour les paramètres de protocole utilisés pour la prise en charge des sous-réseaux. Les seules allocations nécessaires sont pour le protocole de message de commande Internet (ICMP, Internet Control Message Protocol) [5].

Types de message ICMP :
AM1 = 17
AM2 = 18

Références

[1]	J. Mogul, "Sous-réseaux Internet", RFC 917, Stanford University, octobre 1984.

[2]	J. Postel, "Résolution d’adresse multi-LAN", RFC 925, USC/Information Sciences Institute, octobre 1984.

[3]	J. Postel, "Protocole Internet", RFC 791, USC/Information  Sciences Institute, septembre 1981.

[4]	R. Finlayson, T. Mann, J. Mogul, M. Theimer, "Protocole de résolution inverse d’adresse internet", RFC 903, Stanford University, juin 1984.

[5]	J. Postel, "Protocole des messages de commande Internet", RFC 792, USC/Information Sciences Institute, septembre 1981.

[6]	J. Mogul, "Diffusion des datagrammes sur l’Internet", RFC 919, Stanford University, octobre 1984.

[7]	 GADS, "Vers un schéma de norme de l’Internet pour la mise en sous-réseau", RFC 940, Network Information Center, SRI International, avril 1985.

[8]	B. Croft et J. Gilmore, "BOOTP – Protocole Bootstrap pour UDP", RFC 951, Stanford University, août 1985.

[9	J. Reynolds et J. Postel, "Numéros alloués", RFC 943, USC/Information Sciences Institute, avril 1985.