BGP是一种不同自治系统的路由器之间进行通信的外部网关协议。BGP是A R PA N E T所使用的老E G P的取代品。RFC1267 [Lougheed and Rekhter 1991] 对第3版的BGP进行了描述。
RFC 1268 [Rekhter and Gross 1991] 描述了如何在Internet中使用BGP。下面对于BGP的大部分描述都来自于这两个R F C文档。同时, 1 9 9 3年开发第4版的BGP(见RFC 1467 [To p o l c i c
1 9 9 3 ]),以支持我们将在1 0 . 8节描述的C I D R。
BGP系统与其他BGP系统之间交换网络可到达信息。这些信息包括数据到达这些网络所必须经过的自治系统A S中的所有路径。这些信息足以构造一幅自治系统连接图。然后,可以根据连接图删除选路环,制订选路策略。
首先,我们将一个自治系统中的I P数据报分成本地流量和通过流量。在自治系统中,本地流量是起始或终止于该自治系统的流量。也就是说,其信源I P地址或信宿I P地址所指定的主机位于该自治系统中。其他的流量则称为通过流量。在Internet中使用BGP的一个目的就是减少通过流量。
可以将自治系统分为以下几种类型:
1) 残桩自治系统(stub AS),它与其他自治系统只有单个连接。stub AS只有本地流量。
2) 多接口自治系统(multihomed AS),它与其他自治系统有多个连接,但拒绝传送通过流量。
3) 转送自治系统(transit AS),它与其他自治系统有多个连接,在一些策略准则之下,它可以传送本地流量和通过流量。
这样,可以将Internet的总拓扑结构看成是由一些残桩自治系统、多接口自治系统以及转送自治系统的任意互连。残桩自治系统和多接口自治系统不需要使用BGP——它们通过运行E G P在自治系统之间交换可到达信息。
BGP答应使用基于策略的选路。由自治系统治理员制订策略,并通过配置文件将策略指定给BGP。制订策略并不是协议的一部分,但指定策略答应BGP实现在存在多个可选路径时选择路径,并控制信息的重发送。选路策略与政治、安全或经济因素有关。
BGP与RIP和OSPF的不同之处在于BGP使用T C P作为其传输层协议。两个运行BGP的系统之间建立一条T C P连接,然后交换整个BGP路由表。从这个时候开始,在路由表发生变化时,再发送更新信号。
BGP是一个距离向量协议,但是与(通告到目的地址跳数的) RIP不同的是,BGP列举了到每个目的地址的路由(自治系统到达目的地址的序列号)。这样就排除了一些距离向量协议的问题。采用16 bit 数字表示自治系统标识。
BGP通过定期发送k e e p a l i v e报文给其邻站来检测T C P连接对端的链路或主机失败。两个报文之间的时间间隔建议值为3 0秒。应用层的k e e p a l i v e报文与T C P的k e e p a l i v e选项(第2 3章)是独立的。