为了解决大规模网络的路由选择与管理问题,每个大规模网络可以被组织成多个自治系统(autonomous system,AS),每个AS由处于同一个管理机构控制之下的网络和路由器组成。
AS之间使用的域间路由协议统称为外部网关协议(exterior gateway protocol,EGP),因特网上的外部网关协议事实标准为边界网关协议(border gateway protocol,BGP)的第4版本BGP4,不同省份、不同国家之间的路由大多要依靠BGP协议。
BGP协议是运行于TCP上的一种域间路由协议,用于在不同的AS之间交换网络可达信息实现AS之间无环路的域间路由。BGP协议既不是纯粹的矢量距离协议,也不是纯粹的链路状态协议,通常被称为通路向量路由协议。这是因为BGP在发布到一个目的网络可达性的同时,包含了在IP分组到达目的网络过程中所必须经过的AS列表。利用通路向量信息,只要简单地查找一下BGP路由更新的AS编号就能有效地避免环路的出现,对网络拓扑结构没有限制。
当两个AS需要交换路由信息时,每个AS都必须指定一个运行BGP的节点来代表此AS与其他AS交换路由信息。这个节点可以是一个主机,但通常是路由器。两个AS中利用BGP交换信息的路由器也被称为边界网关(border gateway)或边界路由器(border router)。由于可能与不同的AS相连,在一个AS内部可能存在多个运行BGP的边界路由器。同一个AS内的两个或多个边界路由器之间运行的BGP被称为IBGP(interior BGP),归属不同AS的边界路由器之间运行的BGP称为EBGP(exterior BGP)。一般情况下,EBGP的优先级高于内部网关协议IGP,而IGP的优先级又高于IBGP。
BGP的邻居关系(或称通信对端/对等实体)是通过人工配置实现的,对等实体之间通过TCP(端口179)会话交互数据。BGP路由器会周期地发送19字节的保持存活(keep-alive)消息来维护连接(默认周期为30秒)。在路由协议中,只有BGP使用TCP作为传输层协议。