# Exterior Gateway Protocol

El Exterior Gateway Protocol (EGP) fue un protocolo estándar usado para intercambiar información de encaminamiento entre sistemas autónomos en los primeros años de Internet, hasta que fue completamente reemplazado por BGP a mediados de los 90. Las puertas de enlace o pasarelas EGP solamente podían retransmitir información de accesibilidad para las redes de su sistema autónomo (AS). La pasarela debía recoger esta información, habitualmente por medio de un Interior Gateway Protocol (IGP), usado para intercambiar información entre pasarelas del mismo AS.

## Introducción

EGP se basaba en el sondeo periódico empleando intercambios de mensajes "Hello/I Hear You", para monitorizar la accesibilidad de los vecinos y para sondear si había solicitudes de actualización. Esto restringía las pasarelas exteriores al permitirles anunciar solamente las redes de destino accesibles en el AS de la pasarela. De esta forma, una pasarela exterior que emplease EGP pasaba información a sus vecinos EGP pero no anunciaba la información de accesibilidad de estos (las pasarelas eran vecinos si intercambiaban información de encaminamiento) fuera del AS.

## Características

* Soportaba un protocolo NAP (Neighbor Acquisition Protocol). Dos pasarelas se podían considerar vecinas si estaban conectadas por una red que fuera transparente para ambas. No detallaba la forma en que una pasarela decidía inicialmente que quería ser vecina de otra. Para convertirse en vecina, debía enviar un mensaje "Acquisition confirm" como respuesta a un Acquisition Request. Este paso era necesario para obtener información de encaminamiento de otra pasarela.
* Soportaba un protocolo NR (Neighbor Reachability). La pasarela lo usaba para mantener información en tiempo real sobre la accesibilidad de sus vecinos. El protocolo EGP proporcionaba dos tipos de mensajes para ese fin: un mensaje Hello y un mensaje I Hear You (respuesta a Hello).
* Soportaba mensajes de actualización (o mensajes NR) que llevaban información de encaminamiento. No se requería ninguna pasarela para enviar mensajes NR a otra pasarela, excepto como respuesta a una petición de sondeo ("poll request").

## Tipos

Para realizar estas tres funciones básicas, EGP definía diez tipos de mensajes:
* Acquisition Request: solicita que una pasarela se convierta en vecina.
* Acquisition Confirm: respuesta afirmativa a un "acquisition request".
* Acquisition Refuse: respuesta negativa a un "acquisition request".
* Cease Request: solicitud de terminación de la relación de vecindad.
* Cease Confirm: confirmación para que cesen las peticiones.
* Hello: solicitud de respuesta e un vecino, si está vivo.
* I Hear You: respuesta el mensaje Hello.
* Poll Request: solicitud de la tabla de encaminamiento de la red.
* Routing Update: información de accesibilidad de la red.
* Error: respuesta a un mensaje incorrecto.
Los distintos campos son los siguientes (no se considera la cabecera EGP; referirse al RFC 904 para más detalles):
* Int GW: número de pasarelas interiores que aparecen en el mensaje.
* Ext GW: número de pasarelas exteriores que aparecen en el mensaje.
* IP Source Network: la dirección IP de red para la que se mide la accesibilidad.
* GW1 IP addr: Dirección IP sin el número de red de la pasarela para la que se miden las distancias.
* Dist.: número de distancias en el bloque de la pasarela.
* Dist.Da: valor de la distancia.
* Net Da: número de redes a una distancia dada (Da).
* Net1 at distance Da: número IP de la red accesible por GW1 a una distancia Da de GW1.
Los mensajes EGP asociaban un descriptor "distances" a cada ruta. Pero EGP no interpretaba estos valores, simplemente servían como indicación de la accesibilidad o inaccesibilidad de una red (un valor de 255 significaba que la red era inalcanzable). El valor no se podía usar para calcular cuál era la más corta de dos rutas a menos que ambas perteneciesen al mismo AS. Por esta razón, EGP no se podía usar como algoritmo de encaminamiento. Como resultado solamente habría una única ruta del exterior de la pasarela a una red.