路由协议:用于路由器动态寻找网络最佳路径,保证所有路由器拥有相同的路由表,一般路由协议决定数据包在网络上的行走路径。
路由协议简单分为静态路由协议和动态路由协议。
静态路由协议简单说就是手工配置路由选项,以后保持不变。
我们关注动态路由协议。
1)RIP(Routing Information Protocol,路由信息协议)
是应用较早、使用较普通的内部网关协议,适用于小型同类网络的一个自治系统(AS)内的路由信息的传递。
RIP采用距离向量算法,即路由器根据距离选择路由,所以也称为距离向量协议。路由器收集所有可到达目的地的不同路径,并且保存有关到达每个目的地的最少站点数的路径信息,除到达目的地的最佳路径外,任何其它信息均予以丢弃。同时路由器也把所收集的路由信息用RIP协议通知相邻的其它路由器。这样,正确的路由信息逐渐扩散到了全网。
RIP使用非常广泛,它简单、可靠,便于配置。但是RIP只适用于小型的同构网络,因为它允许的最大站点数为15,任何超过15个站点的目的地均被标记为不可达。而且RIP每隔30s一次的路由信息广播也是造成网络的广播风暴的重要原因之一。
下面内容摘自《计算机网络,谢希仁》:
路由信息协议RIP是根据路由跳数(经过的路由器的个数)来决定路由的优劣,RIP只选择一条具有最少路由器的路由,哪怕还存在一个高速率但经过路由器多的路由也不选。
RIP使用UDP(UDP熟知端口520)来传送信息,位于运输层。
RIP协议的三个特点P147:1)仅和相邻路由器交换信息;2)交换本路由器所知道的全部信息;3)定时交换信息。
使用RIP协议时路由表的更新(距离向量法)P148-P149:
对每一个相邻路由器发来的RIP报文,进行下面步骤:
1) 对地址为X的相邻路由器发来的RIP报文,先修改报文中的所有项目:把“下一跳”字段中的地址改为X,把“距离”字段加1。(每个路由项目有三个关键数据:目的网络N,距离d,下一跳路由器是X)
2) 对修改后的RIP报文中的每一个项目,进行以下步骤:
2.1)若原来路由表中没有目的网络N,则把该项目加入路由表中
2.2)否则,若下一跳路由地址是X,则把该项目替换原来路由表中的项目
2.3)否则,若收到项目的距离d小于路由表中的距离,则将距离改为d,下一跳改为X。
2.4)否则,什么都不做
3) 若3分钟没收到相邻路由器的更新路由表,则把该路由器标记为不可到达的路由器,即把距离d设置为16.
4) 返回
RIP协议有“好消息传播得快,坏消息传播的慢”的特点P151:网络出故障时,要很长时间才能将此信息传到所有路由器。
2)OSPF(Open Shortest Path First,开放式最短路径优先)
80年代中期,RIP已不能适应大规模异构网络的互连,OSPF随之产生,属于内部网关协议。
OSPF是一种基于链路状态的路由协议,需要每个路由器向其同一管理域的所有其它路由器发送链路状态广播信息。在OSPF的链路状态广播中包括所有接口信息、所有的量度和其它一些变量。利用OSPF的路由器首先必须收集有关的链路状态信息,并根据一定的算法计算出到每个节点的最短路径。
OSPF提出了“区域(area)”的概念,每个区域中所有路由器维护着一个相同的链路状态数据库(LSDB)。区域又分为骨干区域(骨干区域的编号必须为0)和非骨干区域(非0编号区域),如果一个运行OSPF的网络只存在单一区域,则该区域可以是骨干区域或者非骨干区域。如果该网络存在多个区域,那么必须存在骨干区域,并且所有非骨干区域必须和骨干区域直接相连。由于OSPF将一个自治域再划分为区,相应地即有两种类型的路由选择方式:当源和目的地在同一区时,采用区内路由选择;当源和目的地在不同区时,则采用区间路由选择。这就大大减少了网络开销,并增加了网络的稳定性。当一个区内的路由器出了故障时并不影响自治域内其它区路由器的正常工作,这也给网络的管理、维护带来方便。OSPF利用所维护的链路状态数据库,通过最短路径优先算法(SPF算法)计算得到路由表。OSPF的收敛速度较快。由于其特有的开放性以及良好的扩展性,目前OSPF协议在各种网络中广泛部署。
下面内容摘自《计算机网络,谢希仁》:
OSPF使用IP数据报(首部协议字段值为89)来传送信息,位于网络层。
OSPF协议的三个特点P152:1)仅自治系统中所有路由器交换信息;2)交换与本路由器相邻的所有路由器的链路状态;3)网络拓扑结构发生变化时才交换信息。
使用OSPF协议时路由表的更新(Dijkstra算法):
3)BGP(Border Gateway Protocol,边界网关协议)
BGP是为TCP/IP互联网设计的外部网关协议,为了维护各个ISP的独立利益,标准化组织制定了ISP间的路由协议BGP,用于多个自治域之间。它既不是基于纯粹的链路状态算法,也不是基于纯粹的距离向量算法。它的主要功能是与其它自治域的BGP交换网络可达信息。各个自治域可以运行不同的内部网关协议。BGP更新信息包括网络号/自治域路径的成对信息。自治域路径包括到达某个特定网络须经过的自治域串,这些更新信息通过TCP传送出去,以保证传输的可靠性。
下面内容摘自《计算机网络,谢希仁》:
边界网关协议BGP只能力求寻找一条能够到达目的地网络的比较好的路由(不兜圈子),而并非要找到一条最佳的路由。BGP使用路径向量路由选择协议,涉及到BDP边界路由器、交换信息前首先建立TCP连接(端口号为179)等内容。
4)IGRP(Interior Gateway Routing Protocol,内部网关路由协议)
属于Cisco私有协议。IGRP和RIP一样,同属距离矢量路由协议,因此在诸多方面有着相似点,如IGRP也是周期性的广播路由表,也存在最大跳数(默认为100跳,达到或超过100跳则认为目标网络不可达)。IGRP最大的特点是使用了混合度量值,同时考虑了链路的带宽、延迟、负载、MTU、可靠性5个方面来计算路由的度量值,而不像其他IGP协议单纯的考虑某一个方面来计算度量值。目前已被EIGRP取代。
5)EIGRP协议(增强型内部网关路由协议)
EIGRP属于高级距离矢量路由协议(又称混合型路由协议),继承了IGRP的混合度量值,最大特点在于引入了非等价负载均衡技术,并拥有极快的收敛速度。EIGRP协议在Cisco设备网络环境中广泛部署。
6)IS-IS(Intermediate system to intermediate system,中间系统到中间系统)协议
属于链路状态路由协议。标准IS-IS协议是由国际标准化组织制定的ISO/IEC 10589:2002 所定义的,标准IS-IS不适合用于IP网络,因此IETF制定了适用于IP网络的集成化IS-IS协议(Integrated IS-IS)。和OSPF相同,IS-IS也使用了“区域”的概念,同样也维护着一份链路状态数据库,通过最短路径优先算法(SPF算法)计算出最佳路径。IS-IS的收敛速度较快。集成化IS-IS协议是ISP骨干网上最常用的IGP协议。