表-路由选择协议 |
比较方面 | RIP | OSPF | BGP |
协议类别 | 内部网关/路由协议 (动态分布式) | 内部网关/路由协议 (动态分布式) | 外部网关/路由协议 |
协议层次 | 应用层协议,使用UDP | 应用层协议,不经过运输层,直接使用IP数据报 | 应用层协议,使用TCP |
协议特征 | 距离向量协议 | 链路状态协议 | 路径向量协议 |
层次结构 | 网络→AS | 网络→区域→AS | AS ↔ AS |
代价定义 | RIP协议的距离也称为跳数,即每经过一个路由器,距离(跳数)加1,并将路由器到直接相连网络的距离定义为1(也可定义为0,因为路由器和直接相连网络之间无需再经其他路由器)。RIP允许一条路径中最多只能包含15个路由器,因此距离等于16时即相当于不可达(可将目的网络作为源反向计算得到。对应路由器到直接相连网络的距离为1的定义)。 | OSPF协议中链路的度量可以有不同的定义,如费用、距离、时延或带宽等,此时统称它们为代价。 | BGP协议中路径的度量可以有不同的定义,如费用、距离、时延或带宽等,此时统称它们为代价。 |
算法基础 | Bellman-Ford算法 算法原理:设X是结点A到B的最短路径上的一个结点。若把路径A→B拆分成两段路径A→X和X→B,则每一段路径A→X和X→B也都分别是结点A到X和结点X到B的最短路径。 | Dijkstra算法 算法原理:按路径长度递增的次序产生最短路径。假设S是已求得的源点为v的最短路径的终点的集合,则下一条最短路径(设其终点为x)或者是弧(v,x),或者是中间只经过S中的顶点而最后到达顶点x的路径。 | 根据可达性信息,寻找一条能够到达目的网络且比较好(条件最佳)的路由(不能兜圈子),而非最佳(绝对最佳)的路由,支持策略路由。 |
实现方法 | AS内的相邻路由器之间交换路由信息 | AS再划分为若干个更小的区域,分为主干区域(上层区域)和普通区域(下层区域)。主干区域通过区域边界路由器连通普通区域,并通过自治系统边界路由器与其他AS交换路由信息。 (网络→区域→AS) | 每个AS系统的AS边界路由器(即网关路由器)作为该AS的BGP发言人,不同AS的BGP发言人之间交换路由信息。 |
路由表中的主要信息 | 网络地址,到该网络的距离,以及应经过的下一跳地址 | 路由表是根据链路状态数据库计算(使用Dijkstra算法)出来的。链路状态包括本路由器和哪些路由器相邻,以及该链路(指网络)的度量。 | 目的网络前缀,下一跳路由器,到达该目的网络所要经过的AS序列(由BGP边界路由器序列构成的路径?) |
和哪些路由器交换信息 | 仅和本AS内与自己相邻的路由器交换信息 | 向本AS内的所有路由器发送信息 | 本AS的BGP发言人(AS边界路由器)与其他AS的BGP发言人(AS边界路由器) |
交换哪些信息 | 当前本路由器所知道的全部信息,即自己的路由表 | 与本路由器相邻的所有路由器的链路状态(虽然每个路由器的链路状态数据库中存有本AS内所有路由器的链路状态,但和其他路由器交换的信息仅是与本路由器相邻的那些路由器的链路状态) | 可达性信息,即要到达某个网络(用网络前缀表示)所要经过的一系列AS |
什么时候交换信息 | 每隔固定间隔 | 链路状态发生变化时 | 可达性发生变化时 |
缺点 | 1) 限制了网络的规模(最大距离为16); 2) 交换的路由信息是路由器中的完整路由表,随网络规模的扩大,开销增加; 3) 坏消息传得慢,收敛时间长; | | |
说明: 1) 自治系统AS 自治系统的经典定义是在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内部的路由,同时还使用一种AS之间的路由选择协议用以确定分组在AS之间的路由。 自治系统的现在定义是强调下面的事实:尽管一个AS使用了多种内部路由选择协议和度量,但重要的是一个AS对其他AS表现出的是一个单一的和一致的路由选择策略。 2) AS可再划分为若干个更小的范围,称为区域。区域分为主干区域(上层区域)和普通区域(下层区域)。主干区域通过区域边界路由器连通普通区域,并通过自治系统边界路由器与其他AS交换路由信息。 3) 若干网络形成一个区域,若干区域形成一个AS,即“网络→区域→AS”。 4) BGP协议中的路径向量是指BGP路由表中的各项为路径向量,即路由途径的各个AS,而每个AS实际代表该AS内部的一条路径。 |