3、RIP协议
路由信息协议(RIP)协议是基于DVR距离矢量的路由选择协议。RIP协议中,如果路由器A和网络B直接相连,那么路由器A到网络B的距离就是1。如果从路由器A出发,到达网络B中间需要经过N个路由器,那么路由器A到网络B的距离就是N+1。RIP协议中的距离也称为“跳数”,每增加一个路由器,跳数就加1。
RIP协议允许一条路径上最多包含15个路由器,因此距离的最大值为16(表示网络不可达),所以RIP协议只适合于小型的网络。在RIP协议中,路由表不但要记录到达目的网络的下一站信息,还要记录到达目的网络的距离(跳数)。
RIP协议认为距离最小的路就是最好的路,其工作原理如下:
每个路由器每隔30s给自己的所有的邻居路由器广播RIP报文,报文的内容是这个路由器当前的路由表信息。
收到邻居路由器的路由表信息后,每个路由器都要更新自己的路由表,填加新的路由表项后更改旧的路由表项。这样下一次就可以将更新后的路由表告诉自己的领居。
如果180s内没有收到某个路由器的路由表信息,就认为这个路由器出了故障,路由表中所有以这个路由器为下一站的表项中的距离修改为16,表示目的网络不可达。
经过一段时间后,每个路由器都会知道到达每个网络的路由,构建出完整的路由表。
4、OSPF协议
RIP协议比较简单,但只适用于规模较小的网络(跳数<=16)。并且定期广播路由表会耗费比较大的网络资源。开放的最短路径优先OSPF协议(Open Shortest Path First)是对RIP的改进,支持大型的网络。OSPF是基于链路状态的路由协议。 对于一个路由器而言,它的链路状态是指这个路由器与哪些路由器相邻,以及它们之间链路的“度量”。 OSPF使用带宽、延时、负载、距离和费用等多种因素来考虑度量,度量越小,代价越低。链路状态不包含路由信息,只是表明了两个路由器之间的连接状态。 每个路由器都有一个链路状态数据库,记录当前网络的连接状况。
OSPF支持大型的网络,它将一个自治系统分为若干个区域,每个区域内的路由器相互交换链路状态信息,区域也不能太大,在一个区域内的路由器最好不超过 200 个。 存在一个主干区域,连接各个区域,主干区域负责收集非主干区域发出的汇总路由信息,并将这些信息发送给到各区域。划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。
OSPF由五种类型的分组来完成链路的更新:
类型1,问候(Hello)分组。
类型2,数据库描述(Database Description)分组。
类型3,链路状态请求(Link State Request)分组。
类型4,链路状态更新(Link State Update)分组,用洪泛法对全网更新链路状态。
类型5,链路状态确认(Link State Acknowledgment)分组。
OSPF的工作原理就是由该五类分组完成 :
每个路由器会周期性地向相邻路由器发送探测报文,检测其是否可达。如果邻站给与应答,说明链路正常;否则说明链路出了故障。
如果一个路由器检测到某条链路状态发生了变化,该路由器就发送链路状态更新报文,使用泛洪法对全网更新链路状态。所谓泛洪法是指每个路由器收到更新报文后都将这个报文发送给自己的相邻路由器,直到报文送达到整个网络。
即便链路状态没有发生变化,每隔30分钟路由器要向网络中的其他路由器广播链路状态信息,以确保链路状态数据库与全网保持一致。
每个路由器收到其他路由器的链路状态信息后,更新链路状态数据库,构建整个网络的拓扑图,利用Dijkstra的最短路径算法计算出到达每个网络的最短路径。
5、 BGP协议
BGP 是不同自治系统的路由器之间交换路由信息的协议。 BGP 较新版本是 2006 年 1 月发表的 BGP-4(BGP 第 4 个版本), 可以将 BGP-4 简写为 BGP。因特网的规模太大,使得自治系统之间路由选择非常困难。对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。当一条路径通过几个不同 AS 时,要想对这样的路径计算出有意义的代价是不太可能的。比较合理的做法是在 AS 之间交换“可达性”信息,力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人”。
一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。BGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 AS。当 BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各 AS 的较好路由。
BGP-4 共使用四种报文来完成AS之间的会话,分别是:
打开(OPEN)报文,用来与相邻的另一个BGP发言人建立关系。
更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。
通知(NOTIFICATION)报文,用来发送检测到的差错。
在 RFC 2918 中增加了 ROUTE-REFRESH 报文,用来请求对等端重新通告。
BGP具有以下特点:
可靠的路由更新机制
丰富的Metric度量方法
从设计上避免了环路的发生
支持CIDR(无类别域间选路)
丰富的路由过滤和路由策略
周期性发送keepalive报文效验TCP的连通性
无需周期性更新,路由更新只发送增量路由
全站搜索