Groupe de travail Réseau	Linda J. Seamonson	
Request For Copmments : 888	Eric C. Rosen	
	BBN Communications	
Traduction Claude Brière de L’Isle	janvier 1984	

Protocole de passerelle extérieure "de bout"

La présente note décrit le protocole de passerelle extérieure utilisé pour connecter les routeurs d’extrémité à un système autonome de routeurs centraux. Le présent document spécifie le fonctionnement du protocole, et définit un protocole officiel de l’ARPA. Toutes les mises en œuvre de routeurs devraient prêter une grande attention au présent document.

Table des Matières
1. Introduction	1
2. Définitions et généralités	2
3. Acquisition de voisin	2
4. Protocole d’accessibilité de voisin	3
5. Message Accessibilité de réseau (NR)	4
6. Interrogation de messages NR	6
7. Envoi des messages NR	6
8. Voisins indirects	7
9. Limitations	7
Appendice A – Formats de message EGP	8
A.1 Message Acquisition  de voisin	8
A.2 Message Hello de voisin/Je t’entends	9
A.3 Message Interrogation NR	9
A.4 Message Accessibilité réseau	10
A.5 Message Erreur EGP	11

1.	Introduction

On s’attend à ce que le Catenet DARPA soit un système en expansion continue, avec de plus en plus de réseaux participants. Bien sûr, cela va exiger de plus en plus de routeurs. Dans le passé, une telle expansion a eu lieu d’une façon un peu déstructurée. Les nouveaux routeurs, qui contiennent souvent des logiciels radicalement différents de ceux des routeurs existants, vont être ajoutés et vont immédiatement commencer à participer à l’algorithme d’acheminement commun via le protocole GGP. Cependant, comme l’Internet croît de plus en plus, cette méthode simple d’expansion devient de moins en moins faisable. Il y a un certain nombre de raisons à cela :
-	la redondance de l’algorithme d’acheminement devient excessivement importante ;
-	la prolifération de routeurs radicalement différents participant à un seul algorithme d’acheminement commun rend la maintenance et l’isolement des fautes presque impossibles, car il devient impossible de considérer l’Internet comme un système de communications intégré ;
-	le logiciel et les algorithmes des routeurs, en particulier l’algorithme d’acheminement, deviennent trop rigides et inflexibles, car toute proposition de changement doit être faite en trop d’endroits différents et par trop de gens différents.

À l’avenir, on s’attend à ce que l’Internet évolue en un ensemble de sections séparées ou "systèmes autonomes", dont chacun consistera en un ensemble d’un ou plusieurs routeurs relativement homogènes. Les protocoles, et en particulier  l’algorithme d’acheminement qu’utilisent ces routeurs entre eux, seront une affaire privée, et n’auront jamais besoin d’être mis en œuvre dans des routeurs en dehors de leur section ou système particulier.

Dans le plus simple des cas, un système autonome pourrait consister juste un seul routeur qui connecte, par exemple, un réseau local à l’ARPANET. Un tel routeur peut être appelé un "routeur d’extrémité", car son seul objet est de faire l’interface entre le réseau local et le reste de l’Internet, et qu’il n’est pas destiné à être utilisé pour traiter du trafic qui n’est ni originaire ni destiné à ce réseau local particulier. Dans un futur proche, on va commencer à penser l’Internet comme un ensemble de systèmes autonomes, dont l’un consiste en des routeurs DARPA sur l’ARPANET et le SATNET, et dont les autres sont des routeurs d’extrémité pour les réseaux locaux. Le premier système, que nous appellerons le système "cœur", sera utilisé comme système de transport ou "à longue portée" par ces derniers systèmes.

Finalement, l’Internet peut consister en un certain nombre de systèmes autonomes égaux entre eux, dont chacun peut être utilisé comme support de transport pour le trafic généré dans tout système et destiné à tout système. Ce cas plus général fait encore l’objet de recherches.

Le présent article décrit seulement comment les routeurs d’extrémité se connectent au système cœur en utilisant le protocole de passerelle extérieure (EGP, Exterior Gateway Protocol).

2.	Définitions et généralités

Pour les besoins de cet article, on définit comme suit un "routeur d’extrémité" :
-	ce n’est pas un routeur cœur
-	il partage un réseau avec au moins un routeur cœur (il a une interface sur le même réseau qu’un routeur cœur)
-	il a des interfaces avec un ou plusieurs réseaux qui n’ont pas de routeur cœur
-	tous les autres réseaux qui sont accessibles à partir du système central via le bout n’ont pas d’autre chemin pour le système cœur excepté via le bout.

Le routeur d’extrémité est sensé exécuter pleinement le protocole de message de contrôle Internet (ICMP, Internet Control Message Protocol) ainsi que le protocole EGP. En particulier, il doit répondre aux demandes d’écho ICMP, et doit envoyer des messages ICMP Destination morte lorsque approprié. Il est aussi obligé d’envoyer des messages ICMP Redirection lorsque approprié.

Des numéros d’identification de 16 bits seront alloués aux systèmes autonomes (de la même façon que sont actuellement alloués les numéros de protocoles) et chaque en-tête de message EGP contient un champ pour ce numéro. Zéro ne sera alloué à aucun système autonome ; l’utilisation de zéro comme numéro de système autonome est réservée pour une utilisation future.

On dit que deux routeurs sont "voisins" si il y a un réseau avec lequel chacun a une interface. Si deux voisins font partie du même système autonome, on les appelle voisins intérieurs ; par exemple, tous les routeurs cœurs sur le même réseau sont des voisins intérieurs les uns des autres. Si deux voisins ne font pas partie du même système autonome, on les appelle des voisins extérieurs ; par exemple, un routeur d’extrémité et tout routeur cœur qui partagent un réseau sont des voisins extérieurs l’un pour l’autre. Afin qu’un système en utilise un autre comme moyen de transport, les routeurs qui sont des routeurs extérieurs les uns des autres doivent être capables de trouver quels réseaux peuvent être atteints au travers de l’autre. Le protocole de passerelle extérieure permet que ces informations soient passées entre voisins extérieurs. Comme c’est un protocole d’interrogation, il permet aussi à chaque routeur de contrôler son taux d’envoi et de recevoir les informations d’accessibilité de réseau, permettant à chaque système de contrôler sa propre redondance. Il permet aussi à chaque système d’avoir un algorithme d’acheminement indépendant dont le fonctionnement ne peut pas être interrompu par les défaillances des autres systèmes.

Le protocole de passerelle extérieur a trois parties : (a) le protocole d’acquisition de voisin, (b) le protocole d’accessibilité de voisin, et (c) la détermination d’accessibilité de voisin. Noter que tous les messages définis par EGP sont destinés à ne voyager que sur un seul "bond". C’est-à-dire qu’ils sont générés à un routeur et sont envoyés à un routeur voisin sans la médiation d’aucun routeur intermédiaire. Donc, le champ Durée de vie devrait être réglé à une très faible valeur. Les routeurs qui rencontrent dans leur flux de messages des messages EGP qui ne leur sont pas adressés peuvent les éliminer. Chaque message EGP contient un numéro de séquence. Le routeur devrait tenir un numéro de séquence par voisin.

3.	Acquisition de voisin

Avant qu’il soit possible d’obtenir des informations d’acheminement d’un routeur extérieur, il est nécessaire d’acquérir ce routeur comme voisin direct. (La distinction entre voisin direct et indirect sera faite dans une autre section.) Pour que deux routeurs deviennent des voisins directs, ils doivent être voisins, au sens défini ci-dessus, et ils doivent exécuter le protocole d’acquisition de voisin, qui est simplement une prise de contact à deux phases standard.

Un routeur qui souhaite initier l’acquisition de voisin avec un autre routeur envoie une demande d’acquisition de voisin. Ce message devrait être émis de façon répétée (à un rythme raisonnable, peut-être une fois toutes les 30 secondes ou à peu près) jusqu’à ce qu’une réponse d’acquisition de voisin ou un refus d’acquisition de voisin soit reçu. La demande va contenir un numéro d’identification qui est copié dans la réponse afin que demande et réponse puissent être mises en correspondance.

Un routeur qui reçoit une demande d’acquisition de voisin doit déterminer si il souhaite devenir un voisin direct de la source de la demande. Si il ne le veut pas, il peut, à son choix, répondre par un message Refus d’acquisition de voisin, spécifiant facultativement la raison de son refus. Autrement, il devrait envoyer un message Réponse d’acquisition de voisin.

Le routeur qui a envoyé la demande devrait  considérer que l’acquisition de voisin est achevée lorsque il a reçu la réponse du voisin. Le routeur qui a envoyé la réponse devrait considérer que l’acquisition est achevée lorsque il a envoyé la réponse.

Les réponses ou refus qui ne correspondent pas à une demande devraient être éliminés après un délais raisonnable. Cependant, les informations sur de tels messages sans correspondance peuvent être utilisées pour des besoins de diagnostic.

Une demande d’acquisition de voisin provenant d’un routeur qui est déjà un voisin direct devrait recevoir une réponse.

Une demande ou réponse d’acquisition de voisin provenant d’un routeur G  à un routeur G' porte l’intervalle minimum en secondes avec lequel G accepte de répondre aux messages Hello d’accessibilité de voisin provenant de G' et l’intervalle minimum en secondes avec lequel G accepte d’être interrogé pour des messages NR (voir ci-dessous).

Si un routeur souhaite cesser d’être un voisin d’un routeur extérieur particulier, il envoie un message Fin de voisinage.

Un routeur qui reçoit un message Fin de voisinage devrait toujours répondre avec un Accusé de réception de fin de voisinage. Il devrait cesser de traiter l’envoyeur du message comme un voisin de quelque façon que ce soit. Comme il y a une quantité significative d’échanges de protocole entre les voisins directs (voir ci-dessous) si un routeur n’a plus besoin d’être un voisin direct d’un autre routeur, il est "poli" d’indiquer ce fait par un message Fin de voisinage. Le message Fin de voisinage devrait être retransmis (jusqu’à un certain nombre de fois) jusqu’à ce qu’un accusé de réception en soit reçu.

Une fois qu’un message Fin de voisinage a été reçu, le protocole d’accessibilité de voisin (ci-dessous) devrait cesser d’être exécuté.

Un routeur de bout devrait avoir des tableaux configurés avec les adresses d’un petit nombre des routeurs cœurs (pas plus de deux ou trois) avec lesquels il a un réseau commun. Il sera de la responsabilité du routeur de bout d’initier l’acquisition de voisin avec ces routeurs. Si le voisin direct d’un routeur de bout devait avoir une défaillance, il sera de la responsabilité de ce routeur de bout d’acquérir au moins un nouveau voisin direct. Il peut le faire en choisissant un des routeurs cœurs qu’il a comme voisin indirect (voir ci-dessous) et en exécutant avec lui le protocole d’acquisition de voisin.
(Il est possible que pas plus d’un routeur cœur soit jamais d’accord à un instant donné pour devenir un voisin direct d’un certain routeur de bout.)

4.	Protocole d’accessibilité de voisin

Il est important qu’un routeur conserve les informations en temps réel sur l’accessibilité de ses voisins. Si un routeur arrive à la conclusion qu’un voisin particulier ne peut plus être atteint, il devrait cesser de lui transmettre du trafic. Pour faire cette détermination, un protocole d’accessibilité de voisin est nécessaire. Le protocole EGP fournit deux types de messages à cette fin – un message "Hello" et un message "Je t’entends".

Lorsque un message "Hello" est reçu d’un voisin direct, un "Je t’entends" doit être retourné "immédiatement" à ce voisin. Le délai entre la réception d’un "Hello" et le retour d’un "Je t’entends" ne devrait jamais être de plus de quelques secondes.

Les routeurs cœurs vont utiliser l’algorithme suivant pour déterminer l’accessibilité d’un voisin extérieur :

Un voisin accessible devra être déclaré inaccessible si, durant le délai pendant lequel le routeur cœur a envoyé ses n derniers "Hello", il a reçu moins de k "Je t’entends" en retour. Un voisin inaccessible devra être déclaré accessible si, durant le délai pendant lequel le routeur cœur a envoyé ses m derniers "Hello", il a reçu au moins j "Je t’entends" en retour.

Les routeurs de bout peuvent aussi envoyer des "Hello" à leurs voisins directs et recevoir des "Je t’entends" en retour. L’algorithme pour déterminer l’accessibilité peut être similaire à l’algorithme décrit ci-dessus. Cependant, il n’est pas nécessaire que les routeurs de bout envoient des "Hello". Les messages "Hello" et "Je t’entends" ont un champ État qu’utilise le routeur envoyeur pour indiquer si il pense que le routeur receveur est accessible ou non. Ces informations peuvent être utiles à des fins de diagnostic. Elles permettent aussi au routeur de bout de greffer sa détermination d’accessibilité sur le routeur de cœur : seul le routeur de cœur a en fait besoin d’envoyer des messages "Hello", et le routeur de bout peut le déclarer vivant ou mort sur la base du champ État dans le "Hello". C’est-à-dire que le routeur de bout (qui envoie seulement des "Je t’entends") déclare que le routeur cœur (qui envoie seulement des "Hello") est accessible lorsque les "Hello" provenant du cœur indiquent qu’il a déclaré que le bout est accessible.

La fréquence à laquelle sont envoyés les "Hello", et les valeurs des paramètres k, n, j, et m ne peuvent pas être spécifiées ici. Pour les meilleurs résultats, cela va dépendre des caractéristiques du voisin et du réseau que les voisins ont en commun. Cela implique que les paramètres appropriés peuvent devoir être déterminés conjointement par les concepteurs et les développeurs des deux routeurs voisins ; choisir les algorithmes et les paramètres en solitaire, sans considérer les caractéristiques du voisin et du réseau de connexion ne peut être espéré résulter en des déterminations d’accessibilité optimales.

Cependant, les messages Demande et Réponse d’acquisition de voisin fournissent aux voisins un moyen pour s’informer mutuellement de la fréquence minimale à laquelle ils acceptent de répondre aux Hello. Lorsque le routeur G envoie une Demande d’acquisition de voisin au routeur G', il déclare qu’il ne souhaite pas répondre aux Hello provenant de G' plus fréquemment qu’une fois toutes les X secondes. G' dans sa Réponse d’acquisition de voisin déclare qu’il ne souhaite pas répondre aux Hello de G plus fréquemment qu’une fois toutes les Y secondes. Les deux fréquences n’ont pas à être les mêmes, mais chaque voisin doit se conformer à l’intervalle demandé par l’autre. Un routeur peut envoyer des Hello moins fréquemment que demandé, mais pas plus.

Un routeur voisin direct devrait aussi être déclaré inaccessible si le réseau qui le connecte fournit des informations de protocole de niveau inférieur à partir desquelles ceci peut être déduit. Donc, par exemple, si un routeur reçoit un message 1822 Destination morte de l’ARPANET qui indique qu’un voisin direct est mort, il devrait déclarer ce voisin inaccessible. Le voisin ne devrait pas être déclaré à nouveau accessible tant que le nombre requis de paquets Hello/Je t’entends n’a pas été échangé.

Un voisin direct qui est devenu inaccessible ne cesse pas par là d’être un voisin direct. Le voisin peut être déclaré à nouveau accessible sans qu’il soit besoin de passer à nouveau par le protocole d’acquisition de voisin. Cependant, si le voisin reste injoignable pendant une période extrêmement longue, comme une heure, le routeur devrait cesser de le traiter comme un voisin, c’est-à-dire, il devrait cesser de lui envoyer des messages Hello. Le protocole d’acquisition de voisin aurait alors besoin d’être répété avant qu’il puisse redevenir un voisin direct.

Les messages "Hello" provenant de sources autres que de voisins directs devraient être simplement ignorées. Cependant, l’enregistrement dans un journal d’événements de la présence de tels messages peut fournir d’utiles informations de diagnostic.

Un routeur qui a une défaillance, ou dont l’interface au réseau qui le connecte à un certain voisin a une défaillance, devrait envoyer un message Fin de voisinage à tous les voisins directs qui ne seront plus capables de le joindre. Le message Fin de voisinage devrait utiliser le champ Informations pour spécifier la raison comme étant "défaillance". Il devrait retransmettre ce message (jusqu’à un certain nombre de fois) jusqu’à ce qu’il reçoive un Accusé de réception de fin de voisinage. Cela fournit aux voisins une annonce anticipée d’une panne, et leur permet de s’y préparer d’une façon qui minimise les perturbations du trafic existant.

5.	Message Accessibilité de réseau (NR)

Terminologie : Le routeur G a une interface au réseau N. On dit que G est un premier bond approprié du réseau M par rapport au réseau N (où M et N sont des réseaux distincts) si et seulement si la condition suivante tient : le trafic qui est destiné au réseau M, et qui arrive au routeur G sur son interface du réseau N, va être transmis à M par G sur un chemin qui ne comporte aucun autre routeur ayant une interface avec le réseau N.

En bref, G est un premier bond approprié pour le réseau M par rapport au réseau N seulement dans le cas où il n’y a pas de meilleur routeur sur le réseau N au travers duquel acheminer le trafic qui est destiné au réseau M. Pour un acheminement optimal, le trafic dans le réseau N qui est destiné au réseau M devrait toujours être transmis à un routeur qui est un premier bond approprié.

Afin que les voisins extérieurs G et G' (qui sont voisins sur le réseau N) soient capables de s’utiliser l’un l’autre comme commutateur de paquet pour la transmission du trafic aux réseaux distants, chacun a besoin de connaître la liste des réseaux pour lesquels l’autre est un premier bond approprié. Le protocole de passerelle extérieure définit un message, appelé Message  d’accessibilité de réseau (ou message NR) pour le transfert de ces informations.

Soit G un routeur sur le réseau N. Le message NR que G envoie au sujet du réseau N doit alors contenir l’information suivante : une liste de tous les réseaux pour lesquels G est un premier bond approprié par rapport au réseau N.

Si G' peut obtenir cette information du voisin extérieur G, il sait alors qu’aucun trafic destiné aux réseaux qui NE SONT PAS dans cette liste devrait être transmis à G. (Il ne peut cependant pas conclure simplement que tout le trafic pour tous les réseaux de cette liste devrait être transmis via G, car G' peut aussi avoir d’autres voisins qui sont aussi des premiers bonds appropriés pour le réseau N. Par exemple, G et G'' peuvent chacun être voisins de G', mais pourraient être "équidistants" d’un certain réseau M. Chacun serait alors un premier bond approprié.)

Pour chaque réseau de la liste, le message NR spécifie aussi la "distance" (selon une certaine métrique dont la définition est laissée aux concepteurs du système autonome dont est membre le routeur G) de G à ce réseau. Les routeurs cœurs vont faire rapport des distances inférieures à 128 pour les réseaux qui peuvent être joints sans quitter le système cœur, et supérieures ou égales à 128 autrement. Un routeur de bout devrait faire rapport des distances inférieures à 128 pour tous les réseaux énumérés dans la liste de ses messages NR.

La valeur maximale de distance (255) devra être prise pour signifier que le réseau est inaccessible. Toutes les autres valeurs seront prises pour signifier que le réseau est accessible.

Si un message NR provenant d’un routeur G manque à mentionner un réseau N qui était mentionné dans le précédent message NR provenant de G, il est possible que N soit devenu inaccessible à partir de G. Si plusieurs messages NR successifs provenant de G omettent de mentionner N, cela devrait être pris comme signifiant que N n’est plus accessible à partir de G. Cette procédure est nécessaire pour s’assurer que les réseaux qui ne peuvent plus être joints, mais qui n’ont jamais été explicitement déclarés inaccessibles, arrivent en fin de temporisation et sont retirés de la liste des réseaux accessibles.

Il sera souvent le cas que lorsque un routeur cœur G et un routeur de bout G' sont des voisins directs sur le réseau N, G a connaissance de nombreux autres routeurs voisins sur le réseau N, et sait pour quels réseaux ces routeurs sont le premier bond approprié.

Comme le bout G' peut ne pas connaître tous les autres voisins, il est pratique et souvent plus efficace pour lui d’être capable d’obtenir des informations de G. Donc, le message NT EGP contient aussi des champs qui permettent au routeur cœur G de spécifier les informations suivantes :
a)	Une liste de tous les voisins (intérieurs et extérieurs) de G (sur le réseau N) dont G a fiablement déterminé qu’ils sont accessibles. G peut aussi inclure les voisins indirects dans cette liste (voir ci-dessous.)
b)	Pour chacun de ces voisins, la liste des voisins pour lesquels ce voisin est un premier bond approprié (par rapport au réseau N).
c)	Pour chaque paire <voisin, réseau>, la "distance" du voisin à ce réseau.

Donc, le message NR fournit un moyen pour permettre à un routeur de "découvrir" de nouveaux voisins en regardant si un voisin qu’il connaît déjà a des voisins supplémentaires sur le même réseau. Ces informations rendent aussi possible la mise en œuvre de la stratégie de voisin indirect définie ci-dessous.

Une description plus précise du message NR suit.

La portion de données du message va largement consister en blocs de données. Chaque bloc va commencer par une adresse de routeur, qui sera l’adresse soit du routeur qui envoie le message, soit celle des voisins de ce routeur. Chaque adresse de routeur sera suivie par une liste des réseaux pour lesquels ce routeur est un premier bond approprié. Tous les réseaux à la même distance du routeur seront groupés dans cette liste, précédés par la distance elle-même et le nombre de réseaux à cette distance. La liste entière est précédée d’un compte des groupes de distances dans la liste.

Précédant la liste des blocs de données, il y a :
a)	Le compte (un octet) du nombre de voisins intérieurs de G pour lesquels ce message contient des blocs de données. Par convention, ce compte va inclure le bloc d données pour G lui-même, qui devrait être le premier à apparaître.
b)	Le compte (un octet) du nombre de voisins extérieurs de G pour lesquels ce message contient des blocs de données.
c)	L’adresse du réseau que concerne ce message. Si G et G' sont voisins sur le réseau N, alors, dans le message NT qui va de G à G', c’est l’adresse du réseau N. Pour être à l’aise, quatre octets ont été alloués pour cette adresse – les un, deux ou trois octets de queue devraient être à zéro.

Ensuite suivent les blocs de données eux-mêmes, d’abord, le bloc pour G lui-même, puis les blocs pour tous les voisins intérieurs de G (s’il en est) puis les blocs pour les voisins extérieurs. Comme tous les routeurs mentionnés sont sur le même réseau, dont l’adresse a déjà été donnée, les adresses de routeur sont données avec la partie adresse du réseau (un, deux, ou trois octets) omise, pour économiser l’espace.

Dans la liste des réseaux, chaque adresse de réseau est de un, deux, ou trois octets, selon que c’est un réseau de classe A, de classe B, ou de classe C. Aucun octet n’est utilisé en queue.

Le message NR envoyé par un routeur de bout devrait être le plus simple admissible. C’est-à-dire qu’il devrait n’avoir qu’un seul bloc de données, commençant pas sa propre adresse (sur le réseau qu’il a en commun avec le routeur cœur voisin) n’énumérant que les réseaux pour lesquels il est un premier bond approprié. Ce seront, en général, juste les réseaux qui ne peuvent être atteints que de cette façon.

Les routeurs cœurs vont envoyer des messages NR complets, contenant des informations sur tous les autres routeurs sur le réseau commun, routeurs cœurs (qui devront être énumérés comme voisins intérieurs) et les autres routeurs (qui devront figurer comme voisins extérieurs, et peuvent inclure le routeur de bout lui-même). Ces informations vont permettre au bout de devenir un voisin indirect (voir ci-dessous) de tous ces autres routeurs. C’est à dire que le routeur de bout devra transmettre le trafic directement à ces autres routeurs comme approprié, mais qu’il ne deviendra pas leur voisin direct.

Le routeur de bout ne devrait JAMAIS transmettre à aucun routeur cœur voisin (directement ou indirectement) du trafic pour lequel ce routeur n’est pas un premier bond approprié, comme indiqué dans un message NR. Bien sûr, cela ne s’applique pas aux datagrammes qui utilisent l’option Route de source ; de tels datagrammes devraient toujours être transmis comme indiqué dans le champ Option route de source, même si cela exige de transmettre à un routeur qui n’est pas un premier bond approprié.

6.	Interrogation de messages NR

Aucun routeur n’est obligé d’envoyer des messages NR à aucun autre routeur, sauf en réponse à une interrogation NR provenant d’un voisin direct. Cependant, un routeur est obligé de répondre à une interrogation NR provenant d’un voisin direct dans un délai de quelques secondes (sous réserve de la qualification donnée à deux paragraphes d’ici) même si le routeur pense que le voisin est mort.

Le message EGP Interrogation NR est défini à cette fin. Aucun routeur ne peut en interroger un autre par un message NR plus souvent qu’une fois par minute. Un routeur qui reçoit plus d’une interrogation par minute peut simplement ignorer les interrogations en excès, ou peut retourner un message d’erreur.

L’intervalle minimum que va accepter le routeur G comme intervalle d’interrogation de la part du routeur G' et l’intervalle minimum que G' va accepter comme intervalle d’interrogation de la part de G sont spécifiés au moment où G et G' deviennent des voisins directs. La demande d’acquisition de voisin et la réponse d’acquisition de voisin permettent toutes deux à l’envoyeur de spécifier, en secondes, l’intervalle minimum d’interrogation désiré. Si G spécifie à G' que son intervalle minimum d’interrogation est X, G' ne devrait pas interroger G plus fréquemment qu’une fois toutes les X  secondes. G ne garantira pas de répondre à des interrogations plus fréquentes.

Les interrogations ne doivent être envoyées qu’aux voisins directs qui sont déclarés accessibles par le protocole d’accessibilité de voisin.

Un message Interrogation NR contient un numéro de séquence choisi par le routeur interrogateur. Le routeur interrogé va retourner ce numéro dans le message NR qu’il envoie en réponse à l’interrogation, pour permettre au routeur interrogateur de faire correspondre les messages NR reçus avec les interrogations.

En général, une interrogation devrait être retransmise un certain nombre de fois (avec un intervalle raisonnable entre les retransmissions) jusqu’à ce que soit reçu un message NR. Si aucun message NR n’est reçu après le nombre maximum de retransmissions, le routeur interrogateur devrait supposer que le routeur interrogé n’est pas un premier bond approprié pour quelque réseau que ce soit. Les paramètres optimaux pour l’algorithme d’interrogation/retransmission va dépendre des caractéristiques des deux voisins et du réseau qui les connecte.

Les messages NR reçus dont les numéros d’identification ne correspondent pas au numéro d’identification de la plus récente interrogation envoyée devront être ignorés. Il n’y a aucune disposition pour de multiples interrogations en instance au même voisin.

7.	Envoi des messages NR

En général, les messages NR ne sont à envoyer qu’en réponse à une interrogation. Cependant, entre deux interrogations successives de la part d’un voisin extérieur, un routeur peut envoyer un message NR non sollicité et un seul à ce voisin. Cela donne une capacité limitée d’annoncer rapidement des changements d’accessibilité de réseau qui peuvent être survenus dans l’intervalle depuis la dernière interrogation. Les messages NR non sollicités en excédent peuvent être ignorés, ou un message d’erreur peut être retourné.

Un message NR devrait être envoyé dans les quelques secondes de la réception d’une interrogation. Manquer à répondre à temps à une interrogation NR peut résulter en une décision du routeur interrogateur que le routeur interrogé n’est pas un premier bond approprié pour tout réseau.

Les messages NR envoyés en réponse aux interrogations portent le numéro de séquence du message d’interrogation dans le champ "numéro de séquence". Les messages NR non sollicités portent le numéro d’identification de la dernière interrogation reçue, et ont le bit "Non sollicité" établi. (Noter que ceci ne permet qu’un seul message NR non sollicité par période d’interrogation.)

Les interrogations provenant de non voisins, de voisins qui ne sont pas déclarés accessibles, ou avec un mauvais champ de réseau IP de source, devrait avoir pour réponse un message d’erreur EGP, avec le champ "raison" approprié. Si G envoie une interrogation NR à G' avec le réseau IP de source N, et si G' n’est pas un voisin de G sur son interface au réseau N (ou si G' n’a pas d’interface au réseau N) alors le champ Réseau de source sera considéré comme "mauvais".

Un routeur n’est normalement pas obligé d’envoyer plus d’un message NR dans l’intervalle minimum spécifié au moment de l’acquisition de voisin. Une exception à cela doit être faite pour les interrogations dupliquées (des interrogations successives avec le même numéro de séquence) qui surviennent lorsque un message NR est perdu dans le transit. Un routeur devrait envoyer un message NR contenant ses informations les plus récentes en réponse à une interrogation dupliquée.

8.	Voisins indirects

Il faut franchir trois étapes pour devenir un "voisin direct" d’un routeur extérieur : (a) acquisition de voisin, (b) fonctionnement du protocole d’accessibilité de voisin, et (c) interrogation périodique du voisin avec des messages NR. Supposons cependant que le routeur G reçoive un message NR de G', dans lequel G' indique la présence d’autres voisins G1, ..., Gn, dont chacun est un premier bond approprié pour un ensemble de réseaux auxquels G' lui-même n’est pas un premier bond approprié. Il devrait alors être permis à G de transmettre le trafic pour ces réseaux directement à celui de G1, ..., Gn, qui est approprié sans avoir à l’envoyer d’abord à G'. Dans ce cas, G peut être considéré comme un voisin indirect de G1, ..., Gn, car il est un voisin de ces autres routeurs pour les besoins de transmission du trafic, mais n’effectue pas l’acquisition de voisin, l’accessibilité de voisin, ni l’échange de messages NR avec eux. Les informations de voisin et d’accessibilité de réseau sont obtenues indirectement via G', d’où la désignation "voisin indirect". On dit que G est un voisin indirect de G1, ..., Gn via G'.

Si G est un voisin indirect de G' via G'', et qu’alors G reçoit un message NR de G'' qui ne mentionne pas G', G devrait traiter G' comme étant devenu inaccessible.

9.	Limitations

On doit clairement comprendre que le protocole de passerelle extérieure ne constitue pas par lui-même un algorithme d’acheminement de réseau. De plus, il ne fournit pas toutes les informations nécessaires pour mettre en œuvre un algorithme d’acheminement de zone générale. Si la topologie n’obéit pas aux règles données ci-dessus pour les routeurs de bout, le protocole de passerelle extérieure ne fournit pas assez d’informations topologiques pour empêcher les boucles.

Si un routeur envoie un message NR avec de fausses informations, prétendant être un premier bond approprié pour un réseau qu’en fait il ne peut pas joindre, le trafic destiné à ce réseau peut ne jamais être livré. Les mises en œuvre doivent y faire attention.

Appendice A – Formats de message EGP

Le protocole de passerelle extérieure fonctionne sous le protocole Internet comme protocole numéro 8 (décimal).

A.1	Message Acquisition  de voisin
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!N° version EGP !     Type      !     Code      !  Informations !
+---------------+---------------+---------------+---------------+
!   Somme de contrôle           !  N° de système autonome       !
+---------------+---------------+---------------+---------------+
!      N° de séquence           !    Intervalle de Hello NR     !
+---------------+---------------+---------------+---------------+
! Intervalle d’interrogation NR !
+---------------+---------------+

Description : Les messages d’acquisition de voisin sont utilisés par les routeurs intérieurs et extérieurs pour devenir voisin les uns des autres.

N° de version EGP  : 2

Type : 3

Code :
Code = 0	Demande d’acquisition de voisin
Code = 1	Réponse d’acquisition de voisin
Code = 2	Refus d’acquisition de voisin (voir le champ Informations)
Code = 3	Message Fin de voisinage (voir le champ Informations)
Code = 4	Accusé de réception de fin de voisinage

Somme de contrôle : La somme de contrôle EGP est le complément à un sur 16 bits de la somme des compléments à un du message EGP en commençant par le champ Numéro de version EGP. Pour le calcul de la somme de contrôle, le champ Somme de contrôle devrait être à zéro.

Numéro de système autonome  :
Ce numéro sur 16 bits identifie le système autonome qui contient le routeur qui est la source de ce message.

Informations  :
Pour un message de refus, donne la raison du refus :
0	Non spécifié
1	Hors de l’espace du tableau
2	Interdiction administrative
Pour un message de fin de voisinage, donne la raison de la fin du voisinage :
0	Non spécifié
1	Fermeture en cours
2	Plus nécessaire
Autrement, ce champ DOIT être à zéro.

Numéro de séquence : Pour aider à faire correspondre demandes et réponses.

Intervalle de Hello NR : 
Intervalle minimum entre les Hello (en secondes).

Intervalle d’interrogation NR :
Intervalle minimum entre des interrogations NR (en secondes).

A.2	Message Hello de voisin/Je t’entends
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!N° version EGP !    Type       !     Code      !    État       !
+---------------+---------------+---------------+---------------+
!  Somme de contrôle            !  N° de système autonome       !
+---------------+---------------+---------------+---------------+
!     Numéro de séquence        !
+---------------+---------------+

Description :
Les voisins extérieurs utilisent les messages EGP Hello de voisin et Je t’entends pour déterminer la connexité de voisin. Lorsque un routeur reçoit d’un voisin un message EGP Hello de voisin, il devrait répondre avec un message EGP Je t’entends.

N° de version EGP  : 2

Type : 5

Code :
Code = 0 pour Hello
Code = 1 pour Je t’entends

Somme de contrôle
La somme de contrôle EGP est le complément à un sur 16 bits de la somme des compléments à un du message EGP en commençant par le champ Numéro de version EGP. Pour le calcul de la somme de contrôle, le champ Somme de contrôle devrait être à zéro.

Numéro de système autonome
Ce numéro sur 16 bits identifie le système autonome qui contient le routeur qui est la source de ce message.

Numéro de séquence : Pour aider à faire correspondre demandes et réponses.

État :
0	Pas d’état donné
1	Apparaît accessible
2	Apparaît inaccessible selon le protocole d’accessibilité de voisin
3	Apparaît inaccessible selon les informations d’accessibilité du réseau (comme un message 1822 "Destination morte" de l’ARPANET)
4	Apparaît inaccessible par suite de problèmes avec l’interface réseau

A.3	Message Interrogation NR
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!N° version EGP !    Type       !     Code      !  Non utilisé  !
+---------------+---------------+---------------+---------------+
!  Somme de contrôle            !  N° de système autonome       !
+---------------+---------------+---------------+---------------+!   Numéro de séquence          !       Non utilisé             !
+---------------+---------------+---------------+---------------+
!             Réseau IP de source                               !
+---------------+---------------+---------------+---------------+

Description :
Un routeur qui veut recevoir un message NR d’un routeur extérieur va envoyer un message d’interrogation NR. Chaque routeur mentionné dans le message NR aura une interface sur le réseau qui est dans le champ Réseau IP de source.

N° de version EGP  : 2

Type : 2

Code : 0

Somme de contrôle
La somme de contrôle EGP est le complément à un sur 16 bits de la somme des compléments à un du message EGP en commençant par le champ Numéro de version EGP. Pour le calcul de la somme de contrôle, le champ Somme de contrôle devrait être à zéro.

Numéro de système autonome
Ce numéro sur 16 bits identifie le système autonome qui contient le routeur qui est la source de ce message.

Numéro de séquence : Pour aider à faire correspondre demandes et réponses.

Réseau IP de source  :
Chaque routeur mentionné dans le message NR aura une interface sur le réseau qui est dans le champ Réseau IP de source. Le réseau IP de source est codé sur un octet du numéro de réseau suivi par deux octets de zéros pour les réseaux de classe  A, deux octets du numéro de réseau suivis par un octet de zéros pour les réseaux de classe B, et trois octets du numéro de réseau pour les réseaux de classe C.

A.4	Message Accessibilité réseau
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!N° version EGP !     Type      !   Code        !U!  Zéros      !
+---------------+---------------+---------------+-+-------------+
!   Somme de contrôle           !  N° de système autonome       !
+---------------+---------------+---------------+---------------+
!  Numéro de séquence           ! Nbr rtrs intér! Nbr rtrs extér!
+---------------+---------------+---------------+---------------+
!              Réseau IP de source                              !
+---------------+---------------+---------------+---------------+
! Adresse IP du routeur 1 (sans n° de réseau)   ! ; 1, 2 ou 3 octets
+---------------+---------------+---------------+
! Nbr distances !
+---------------+---------------+
!  Distance 1   ! Nbr de réseaux!
+---------------+---------------+---------------+
! réseau 1,1,1  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ; 1, 2 ou 3 octets
+---------------+---------------+---------------+
! réseau 1,1,2  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ; 1, 2 ou 3 octets
+---------------+---------------+---------------+
       ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!  Distance 2   ! Nbr de réseaux!
+---------------+---------------+---------------+
! réseau 1,2,1  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ; 1, 2 ou 3 octets
+---------------+---------------+---------------+
! réseau 1,2,2  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ; 1, 2 ou 3 octets
+---------------+---------------+---------------+
       ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!      Adresse IP du routeur n (sans le numéro de réseau)       !
+---------------+---------------+---------------+---------------+
! Nbr distances !
+---------------+---------------+
!  Distance 1   ! Nbr de réseaux!
+---------------+---------------+---------------+---------------+
! réseau n,1,1  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  ; 1, 2 ou 3 octets+---------------+---------------+---------------+
! réseau n,1,2  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  ; 1, 2 or 3 bytes
+---------------+---------------+---------------+
!  Distance 2   ! Nbr de réseaux!
+---------------+---------------+---------------+---------------+
! réseau n,2,1  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  ; 1, 2 or 3 bytes
+---------------+---------------+---------------+
! réseau n,2,2  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  ; 1, 2 or 3 bytes
+---------------+---------------+---------------+
        ...

Description :
Le message Accessibilité de réseau (NR) est utilisé pour découvrir quels réseaux peuvent être atteints à travers les routeurs extérieurs. Le message NR est envoyé en réponse à un message Interrogation NR.

Numéro de version EGP : 2

Type : 1

Code : 0

Somme de contrôle
La somme de contrôle EGP est le complément à un sur 16 bits de la somme des compléments à un du message EGP en commençant par le champ Numéro de version EGP. Pour le calcul de la somme de contrôle, le champ Somme de contrôle devrait être à zéro.

Numéro de système autonome
Ce numéro sur 16 bits identifie le système autonome qui contient le routeur qui est la source de ce message.

Bit U (Non sollicité)  : Ce bit est établi si le message NR est envoyé sans être sollicité.

Numéro de séquence : C’est le numéro de séquence du dernier message Interrogation NR reçu du voisin à qui ce message NR est envoyé. Pour aider à faire correspondre demandes et réponses.

Réseau IP de source  : Chaque routeur mentionné dans le message NR  aura une interface sur le réseau qui est dans le champ Réseau IP de source.

Nombre de routeurs intérieurs : C’est le nombre de routeurs intérieurs qui sont mentionnés dans ce message.
Nombre de routeurs extérieurs : Nombre de routeurs extérieurs qui sont mentionnés dans ce message.
Adresse IP du routeur : 1, 2 ou 3 octets d’adresse IP de routeur (sans le numéro de réseau).
Nombre de distances : Nombre de distances dans le bloc du routeur.
Distance : La distance.
Nombre de réseaux  : Le nombre de réseaux à cette distance.
Adresse du réseau : 1, 2, ou 3 octets d’adresse réseau du réseau qui peut être joint via le routeur précédent.

A.5	Message Erreur EGP
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!N° version EGP !    Type       !     Code      !  Non utilisé  !
+---------------+---------------+---------------+---------------+
!   Somme de contrôle           ! Numéro de système autonome    !
+---------------+---------------+---------------+---------------+
!  Numéro de séquence           !          Raison               !
+---------------+---------------+---------------+---------------+
!                                                               !
!                     En-tête de message d’erreur               !
!      (trois premiers mots de 32 bits de l’en-tête EGP)        !
!                                                               !
+---------------+---------------+---------------+---------------+

Description :
Un message d’erreur EGP est envoyé en réponse à un message EGP qui a une mauvaise somme de contrôle ou a une valeur incorrecte dans un de ses champs.

Numéro de version EGP  : 2

Type : 8

Code : 0

Somme de contrôle
La somme de contrôle EGP est le complément à un sur 16 bits de la somme des compléments à un du message EGP en commençant par le champ Numéro de version EGP. Pour le calcul de la somme de contrôle, le champ Somme de contrôle devrait être à zéro.

Numéro de système autonome
Ce numéro sur 16 bits identifie le système autonome qui contient le routeur qui est la source de ce message.

Numéro de séquence : Pour aider à faire correspondre demandes et réponses.

Raison :
C’est la raison pour laquelle le message EGP est erroné. Les raisons suivantes sont définies :
0  - Non spécifiée
1  -  Mauvaise somme de contrôle EGP
2  -  Mauvaise adresse IP de source dans l’interrogation ou la réponse NR
3  -  Type ou code EGP non défini
4  -  Interrogation reçue d’un non voisin
5  -  Messages NR non sollicités reçus en excès
6  -  Interrogations reçues en excès
7  -  Comptes erronés dans le message NR reçu
8  -  Pas de réponse reçue à une interrogation NR