在谈路由协议之前,我们先来看1下路由器的结构:
路由器是1种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。
路由选择部份的核心是路由处理机,路由处理机可以根据选定的路由协议构造前途由表,同时常常或定期和相邻路由器交换路由信息来更新和保护本身的路由表。
分组转发部份包括1组输入端口、交换结构和1组输出端口。交换结构又称交换组织,它的作用就是根据转发表把收到的IP数据报从路由器适合的端口转发出去。交换结构可看成1个在路由器中的网络。
由于笔者主要研究WMN,所以首先从WMN的路由协议说起,但是WMN路由协议很多都是鉴戒有线网络的路由协议,所以目的在于让读者对网络层的路由协议有个全局的认识。本篇虽然有1些专业术语,但基本都在上下文可以找到解释。如果有些内容遗漏或解释不到位,请读者自己搜索资料,请见谅。
WMN的动态性,多跳性使得传统的路由协议不能够很好的处理无线网状网中拓扑结构和链路状态的快速变化。
WMN由Ad hoc网络发展而来,Ad hoc网络重点在移动,而WMN重点在无线。目前主流的WMN路由协议也是从Ad hoc网络路由协议发展而来。主要包括3种类型的路由协议:先验式路由协议、反应式路由协议、混合式路由协议。
在先验式路由协议中,不管是不是有通讯需求,每一个节点采取周期性的路由分组广播保护1张包括到达其他节点的路由信息的路由表,当检测到网络拓扑结构变化的时候,节点在网络中交换并更新路由表。源节点1旦要送分组,可以立即取得指向目的节点的路由。
这类的路由协议通常是通过修改现有的有线路由协议来适应 Ad Hoc无线网络要求,如通过修改路由信息协议(RIP)得到的目的节点序列距离矢量协议(DSDV)。 因此这类路由协议的时延较小,但是协议需要大量的路由控制报文路由,协议的开消较大。 经常使用的先验式路由协议有 DSDV,HSR,GSR,WRP等。
DSDV协议
DSDV协议的基本原理是:每个节点保持1个到其它节点的路由表,表的内容为路由的“下1跳”节点。DSDV创新的地方是为每条路由设置1个序列号,序列号大的路由为优选路由,序列号相同时,跳数少的路由为优选路由。正常情况下,节点广播的序列号是单调递增的偶数,当节点B发现到节点D的路由(路由序列号为s)中断后,节点B就广播1个路由信息,告知该路由的序列号变成s+l,并把跳数设置为无穷大,这样,任何1个通过B发送信息的节点A的路由表中就包括1个无穷大的距离,这1进程直到A收到1个到达D的有效路由(路由序列号为s+1⑴)为止。
使用分层次的路由选择方法,可将因特网的路由协议划分为:
内部网关协议IGPI(nterior Gateway Protocol):具体的协议有多种,如:RIP和OSPF等。
外部网关协议EGP(External Gateway Protocol):目前使用的协议就是BGP
下面我们分别介绍:
路由信息协议RIP(RoutingInformation Protocol)
RIP采取距离向量算法,最大优点是简单。在实际使用中已较少适用。RIP协议允许1条路径最多只能包括15个路由器。因此,“距离”等于16时即相当于不可达。可见RIP只适用于小型互联网。对范围较大的网络应当使用OSPF协议。RIP不能在两个网络之间同时使用多条路由。RIP选择1条具有最少路由器的路由(即最短路由),哪怕还存在另外一条高速(低时延)但路由器较多的路由。RIP进程使用UDP的520端口来发送和接收RIP分组。RIP分组每隔30s以广播的情势发送1次,为了避免出现“广播风暴”,其后续的的分组将做随机延时后发送。在RIP中,如果1个路由在180s内未被刷,则相应的距离就被设定成无穷大,并从路由表中删除该表项。RIP分组分为两种:要求分组和响应分组。
RIP协议的特点是:
仅和相邻路由器交换信息
路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表
依照固定的时间间隔交换路由信息
RIP协议存在的1个问题是:当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
开放最短路径优先OSPF(OpenShortest Path First)
OSPF原理简单,实现复杂,使用了Dijkstra提出的最短路径算法SPF。
OSPF最主要特点是使用散布式链路状态协议,而不是像RIP那样的距离向量协议。和RIP协议相比,OSPF的3个要点和RIP都不1样。
1、 向本自治系统中所有路由器发送信息。这里使用的方法是洪泛法(Flooding)
洪泛法(Flooding)
在OSPF协议中,当链路状态产生变化时要用Flooding向所有路由器发送信息。
例如,源节点希望发送1段数据给目标节点。源节点首先通过网络将数据副本传送给它的每一个邻居节点,每一个邻居节点再将数据传送给各自的除发送数据来的节点以外的其他。如此继续下去,直到数据传送目标节点或数据设定的生存期限为0为止。
2、 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部份信息,“链路状态”包括本路由器和哪些路由器相邻,和链路的1些度量信息。而RIP协议发送的是到所有路由器的距离和下1跳路由器。
3、 只有当链路状态产生变化时,路由器才向所有路由器用洪泛法发送此信息。
由于各路由器之间频繁的交换路由信息,因此所有路由器终究都能建立1个链路状态数据库,这个数据库实际上就是全网的拓扑结构图。RIP协议中的每个路由器虽然知道所有网络的距离和下1跳路由器,但却不知道全网的拓扑结构(只有到了下1跳路由器,才能知道再下1跳应当怎样走)。
OSPF的更新进程收敛的快是其重要优点。(“收敛”就是在自治系统中所有的节点都得到正确的路由选择信息的进程)
OSPF不用UDP而是直接用IP数据报传送(其IP数据报首部的协议字段值为89)
OSPF共有以下5种分组类型:
1、问候(Hello)分组,用来发现和保持邻站的可达性。
2、数据库描写(Database Description)分组,向邻站发出自己链路状态数据库中所有链路状态项目的摘要信息。
3、链路状态要求(Link State Request)分组,像对方要求发送某些链路状态项目的详细信息。
4、链路状态更新(Link State Update)分组,用洪泛法对全网更新链路状态。
5、链路状态确认(Link State Acknowledgment)分组,对链路更新分组的确认。
为了使OSPF能够用于范围很大的网络,OSPF将1个自治系统再划分为若干个更小的范围,叫做区域。下图表示1个自治系统划分为4个区域。每一个区域都有1个32位的区域标志符(用点分10进制表示)
固然,1个区域也不能太大,1个区域内的路由器最好不超过200个。
划分区域的好处就是把利用洪泛法交换链路状态信息的范围局限于每个区域而不是全部自治系统,这就减少了全部网络上的通讯量。
外部网关协议BGP
BGP是不同AS(Area System)的路由器之间交换路由信息的协议。
边界网关协议BGP只能是力求寻觅1条能够到达目的网络且比较好的路由(不能兜圈子),而并不是要寻觅1条最好路由。BGP采取了路径向量路由选择协议。
1般说来,两个BGP发言人都是通过1个同享网络连接起来的。1个BGP发言人要与其他自治系统的BGP发言人交换路由信息,就要先建立TCP连接(端口号为179),然后在此连接上交换BGP报文以建立BGP会话,利用BGP会话交换路由信息。
在RFC4271中规定了BGP⑷的4种报文:
1、OPEN(打开)报文,用来与相邻的另外一个BGP发言人建立关系,使通讯初始化。
2、UPDATE(更新)报文,用来通告某1路由的信息,和列出要撤消的多条路由。
3、KEEPALIVE(保活报文),用来周期性的证实邻站的连通性。
4、NOTIFICATION(通知)报文,用来发送检测到的过失。
在RFC2918中增加了ROUTER—REQUEST报文,用来要求对等端重新通告。
反应式路由协议
反应式路由协议又称为随选型路由协议或按需路由协议。是专门针对移动自组织网络工作组MANET(Mobile
Ad-hoc NETworks)环境提出来的。与表驱动路由协议相反,该类协议其实不事前生成路由,而是仅在源节点需要时才这样做。因此,路由表信息是按需建立的,它可能仅仅是全部拓扑结构信息的1部份。
节点其实不保存全部网络的及时准确的路由信息。当源节点要向目的节点发送报文时,源节点在网络中发起路由查找进程,找到相应的路由后,才开始发送报文。为了提高效力,节点可以将找到的路由保存在缓存中供后续发送使用。反应式路由协议按需路由的特点可以较好地适应节点移动较为频繁的无线网络环境,节点产生移动后,只需要更新需要发送数据的相干路径的路由信息便可。
混合式路由协议
混合式路由是将先验式路由协议和反应式路由协议两种路由方式的组合,在局部范围内使用先验式路由协议,保护准确的路由信息,并可以缩小路由控制消息传播的范围。当目标节点较远时,则使用反应式路由协议查找发现路由。ZRP协议就是混合式路由协议的代表。
ZRP协议是1种专为多变的通讯环境(如可重构无线网络,RwN)设计的平铺式路由协议。在每一个节点定义1个区域,此区域包括1些节点,这些节点的距离(也就是跳数)在1个限定的范围以内。这个距离被成为区域半径rzone。每个节点只需要知道它的路由区域内的拓扑结构,而且其路由信息随着区域内的拓扑更新而更新。这样,虽然网络很大,但更新仅仅在局部区域进行。由于距离大于1,这样区域就有大量堆叠。
参考资料:
1、无线网状网络的路由协议分析 .TechTarget[援用日期2016⑹⑵7]
2、谢希仁. 计算机网络(第5版)[M]. 北京:电子工业出版社, 2012.
下一篇 jvm内存回收机制