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