Border Gateway Protocol (BGP)
RFC 1105

Document Type RFC - Experimental (June 1989; No errata)
Obsoleted by RFC 1163
Last updated 2013-03-02
Stream Legacy
Formats plain text pdf html bibtex
Stream Legacy state (None)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state RFC 1105 (Experimental)
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                        K. Lougheed
Request for Comments:  1105                                cisco Systems
                                                              Y. Rekhter
                                  T.J. Watson Research Center, IBM Corp.
                                                               June 1989

                    A Border Gateway Protocol (BGP)

Status of this Memo

   This RFC outlines a specific approach for the exchange of network
   reachability information between Autonomous Systems.

   At the time of this writing, the Border Gateway Protocol
   implementations exist for cisco routers as well as for the NSFNET
   Nodal Switching Systems.  A public domain version for "gated" is
   currently being implemented.

   Distribution of this memo is unlimited.

1. Introduction

   The Border Gateway Protocol (BGP) is an inter-autonomous system
   routing protocol.  It is built on experience gained with EGP as
   defined in RFC 904 [1] and EGP usage in the NSFNET Backbone as
   described in RFC 1092 [2] and RFC 1093 [3].

   The primary function of a BGP speaking system is to exchange network
   reachability information with other BGP systems.  This network
   reachability information includes information on the autonomous
   systems (AS's) that traffic must transit to reach these networks.
   This information is sufficient to construct a graph of AS
   connectivity from which routing loops may be pruned and policy
   decisions at an AS level may be enforced.

   BGP runs over a reliable transport level protocol.  This eliminates
   the need to implement explicit update fragmentation, retransmission,
   acknowledgement, and sequencing.  Any authentication scheme used by
   the transport protocol may be used in addition to BGP's own
   authentication mechanisms.

   The initial BGP implementation is based on TCP [4], however any
   reliable transport may be used.  A message passing protocol such as
   VMTP [5] might be more natural for BGP.  TCP will be used, however,
   since it is present in virtually all commercial routers and hosts.
   In the following descriptions the phrase "transport protocol
   connection" can be understood to refer to a TCP connection.  BGP uses
   TCP port 179 for establishing its connections.

Lougheed & Rekhter                                              [Page 1]
RFC 1105                          BGP                          June 1989

2. Summary of Operation

   Two hosts form a transport protocol connection between one another.
   They exchange messages to open and confirm the connection parameters.
   The initial data flow is the entire BGP routing table.  Incremental
   updates are sent as the routing tables change.  Keepalive messages
   are sent periodically to ensure the liveness of the connection.
   Notification messages are sent in response to errors or special
   conditions.  If a connection encounters an error condition, a
   notification message is sent and the connection is optionally closed.

   The hosts executing the Border Gateway Protocol need not be routers.
   A non-routing host could exchange routing information with routers
   via EGP or even an interior routing protocol.  That non-routing host
   could then use BGP to exchange routing information with a border
   gateway in another autonomous system.  The implications and
   applications of this architecture are for further study.

   If a particular AS has more than one BGP gateway, then all these
   gateways should have a consistent view of routing.  A consistent view
   of the interior routes of the autonomous system is provided by the
   intra-AS routing protocol.  A consistent view of the routes exterior
   to the AS may be provided in a variety of ways.  One way is to use
   the BGP protocol to exchange routing information between the BGP
   gateways within a single AS.  In this case, in order to maintain
   consist routing information, these gateways MUST have direct BGP
   sessions with each other (the BGP sessions should form a complete
   graph).  Note that this requirement does not imply that all BGP
   gateways within a single AS must have direct links to each other;
   other methods may be used to ensure consistent routing information.

3. Message Formats

   This section describes message formats and actions to be taken when
   errors are detected while processing these messages.

   Messages are sent over a reliable transport protocol connection.  A
   message is processed after it is entirely received.  The maximum
   message size is 1024 bytes.  All implementations are required to
   support this maximum message size.  The smallest message that may be
   sent consists of a BGP header without a data portion, or 8 bytes.

   The phrase "the BGP connection is closed" means that the transport
   protocol connection has been closed and that all resources for that
   BGP connection have been deallocated.  Routing table entries
Show full document text