首页
会员中心
到顶部
到尾部
计算机

数据转发路由技术研究

时间:2020/10/27 9:25:34  作者:  来源:  查看:0  评论:0
内容摘要:毕业设计总体方案大延迟下的路由模型        在大延迟条件下的网络中,网络节点间会存在较大的通信延迟。而目前还没有专门针对大延迟条件下的无线网络路由协议。因此本设计重点在间歇延迟路由算法实现其的基础上,利用...

毕业设计总体方案
大延迟下的路由模型
        在大延迟条件下的网络中,网络节点间会存在较大的通信延迟。而目前还没有专门针对大延迟条件下的无线网络路由协议。因此本设计重点在间歇延迟路由算法实现其的基础上,利用该平台实现大延迟条件下的数据转发路由。
       本设计所建立的模型中使用了间歇延迟路由算法。在模型中要求数据的发送端节点A向数据的接收端节点C发送数据。在该模型中节点A首先在自己的通信范围内查找有无目的节点C,假如查找到节点C在自己的通信范围内(图3-1)则节点A首先向节点C请求连接并发送数据的基本信息(如文件名,文件大小)。同时节点C根据数据的基本信息判断是否要接收节点A发送来的数据,若要接收数据就与节点A建立连接接收数据,并将接收数据保存到硬盘中。
 假如节点A在自己的通信范围内没有查找到目的节点C(即节点C不在节点A的通信范围内。如图3-2 )。此时节点A通过读取自己内核的路由信息查找在自己的通信范围内有无其它节点(本设计中将节点通信范围内的其它节点称为“邻居节点” )。
在本模型中假设节点B和节点D为数据的中转节点。节点A查找邻居节点的过程是使用AODV进行查找。节点A查找到节点B在自己的通信范围内(即节点B是节点A的邻居节点),节点A就向节点B发送数据。此时节点B首先查找在自己的通信范围内有无目的节点C或者其它节点(即节点B的邻居节点D)。若节点B查找到有目的节点C或有邻居节点D。节点B就将节点A发送来的数据通过缓存转发到目的节点C或者到它的邻居节点D。
       若节点B没有查找到目的节点或邻居节点,节点B首先将节点A发送来的数据保存到硬盘中。节点B将数据接收完后,继续查找自己通信范围内有无目的节点C或其它邻居节点。如查找到目的节点C或邻居节点D,就向节点C或邻居节点D转发从节点A接收到的数据。如果此时节点B仍然查找不到目的节点C和邻居节点D,则节点B一直等待(此时整个网络处于大时延),直到找到目的节点C或找到邻居节点D。
      当节点B先查找到邻居节点D后,节点D首先查找在自己的通信范围内有无目的节点或邻居节点。若有则节点D将节点B的发送来数据通过缓存发送到目的节点C或其它邻居节点。若节点D在自己的通信范围内没有查找到目的节点C或其它邻居节点。则节点D首先将节点B发送来的数据保存到硬盘中,然后重复节点B的过程。
      当节点B先查找到目的节点C, 则节点B直接将数据发送给节点C。节点C首先接收到数据的基本信息,然后节点C判断是否要接收该数据。若不接收则不与该节点进行连接。若要接收该数据则和该节点建立连接并接收该数据,然后将接收的数据保存到硬盘中。
     通过以上模型可以看出间歇延迟路由算法与目前许多无线路由协议的区别。当数据的源端与目的端不能直接建立连接时,目前的路由协议不能进行数据的传输,而间歇延迟路由算法可以保证数据的传输。并且由于在该算法中的各节点都是将数据保存至硬盘,所以可以忽略网络中的时间延迟,从而保证该算法在大时延情况下能正常工作。


路由设计思想
路由查找过程
       本论文提出的间歇延迟路由算法所使用的路由查找思想是基于Epidemic 路由技术。在本设计中基于AODV中的前驱列表建立一个类似Epidemic 路由技术中的SV。
       对于节点维持的每一条有效路由表项,节点同样维护了一个可能用来转发报文的前驱列表。在节点检测到下一跳链路丢失的情况下,将会向前驱节点发出通知。路由表项中的前驱列表就是使用了这条路由的所有邻居节点(一个或者多个)。
        如果节点确定它需要一条到目的节点的路由而该路由并不可用,则节点发布一个RREQ。这种情况可能是:目的节点之前对于当前节点是未知的,或者曾经有效的到目的节点的路由已经过期或标记为无效。该RREQ中包含了目的节点的IP地址,目的节点的序列号,路由请求RREQ源节点的IP地址,源节点的目的序列号和其它标志位。在广播RREQ以前,源节点在PATH_DISCOVERY_TIME时间内缓存RREQ的ID和RREQ源节点的IP地址。以这种方式,如果节点再从它的邻居收到同样的RREQ报文,它将不对此进行重新处理和转发。RREQ ID 和源节点的IP地址联合起来标志一个独一无二的RREQ报文。节点每秒钟不应该产生多于RREQ_RATELIMIT次的RREQ协议帧。广播出一个RREQ以后,节点等待RREP(或者具有关于正确目的节点路由当前信息的其它控制信息)的到来。如果在NET_TRAVERSAL_TIME微秒的时间内没有获得路由,则节点广播另一个RREQ试图重新进行路由查找过程,直到在最大TTL值时达到了RREQ_RETRIES次重传。

路由的建立
        本设计中路由的建立主要基于AODV路由协议中的路由应答消息的产生和接收。如果节点收到一个到某个目的节点的路由请求,当节点具有一条足够新的路由来满足该路由请求,或者它本身就是目的节点,那么这个节点产生一个RREP协议帧,节点拷贝RREQ协议帧中的目的节点IP地址和源节点序列号到RREP的对应字段。一旦建立了RREP,就把RREP单播至通往RREQ源节点的下一跳,该下一跳在到源节点的路由表项中指出。随着RREP逐步被转发回发起RREQ协议帧的源节点,跳数字段也在每中转一次就增加1。这样,当RREP到达发起RREQ的节点,跳数就代表从目的节点到源节点的距离。
1、目的节点产生路由应答
        如果产生RREP的节点是目的节点本身,假如RREQ报文中的序列号等于目的节点本身的序列号加1,则节点必须把自己的序列号再加1(RREQ报文中的序列号大于目的节点维护的自身序列号的情况:某节点因为检测到通往目的节点的链路中断,将目的节点序列号加1,然后重发路由请求)。否则,目的节点在产生RREP协议帧之前不改变它的序列号。目的节点将它自己的序列号放入RREP的目的节点序列号字段当中,并把跳数字段值设置为0。目的节点拷贝MY_ROUTE_TIMEOUT的值到RREP的生存期字段,每个节点可以在适度限制的情况下重新配置MY_ROUTE_TIMEOUT的值。
2、中间节点产生路由应答
        当产生RREP的节点不是目的节点,而是源节点到目的节点路径上的一个中间节点,它将拷贝已知的目的节点序列号至RREP协议帧中的目的节点序列号字段。中间节点通过把上一跳节点放入转发路由表项的前驱表中来更新转发路由表项。上一跳节点指的是向它发送RREQ的节点,可以从IP头的源IP地址字段获得。中间节点同时更新到RREQ源节点的路由表项,这一操作通过将通往目的节点的下一跳节点放入反向路由表项的前驱表中实现。中间节点将它到目的节点的跳数放入RREP中的跳数字段。RREP的生存期字段由路由表项的过期时刻减去当前时刻得出。
        当节点收到RREP协议帧,它首先建立或更新无有效序列号的到上一跳的路由表项,然后RREP中的跳数值加1,将通过中间节点的新一跳计入其中。称已经增加了1的跳数为“新跳数”。随后,如果到目的节点的转发路由不存在,则建立转发路由;否则的话,节点对RREP协议帧中的目的节点序列号和本身存储的目的节点序列号进行比较,比较以后,现存的表项在下列情况下进行更新:
       现存路由表项中的序列号无效;现存路由表项中的序列号有效,但RREP中的目的节点序列号大于节点路由表项中保存的目的节点序列号;序列号相同,但是路由不再有效;序列号相同,但RREP中标明的“新跳数”小于路由表项中的跳数。
       当节点收到来自邻居的AODV协议帧,或者为特定目的节点建立或更新了一条路由的时候,它会检测路由表中对应的目的节点的表项。在没有该目的节点的表项的时候,就新建该表项。该表项的目的序列号或者由包含在协议帧的信息确定,或者将有效序列号字段设置为假。路由表项仅在下列情况下进行更新:
1、协议帧中的新序列号高于本机路由表中的目的节点序列号
2、协议帧中的新序列号与本机路由表中序列号相等,但是新路由的跳数加1
3、小于本机路由表中的跳数
4、本机路由表表项中的目的序列号未知
       路由表项中的生存期字段或者由控制报文确定,或者初始化为ACTIVE_ROUTE_TIMEOUT。这一路由现在可以用来发送任何排队等待的用户数据分组,完成任何没有完成的路由请求。每次使用路由进行数据的转发时,它到源、目的节点和通往目的节点路径的下一跳的有效路由生存期更新为大于等于当前时间加上ACTIVE_ROUTE_TIMEOUT。由于在本设计中认为源和目的节点之间的路由是对称的,那么沿着逆向路径返回到源节点的下一跳的有效路由生存期也同样更新为大于等于当前时间加上ACTIVE_ROUTE_TIMEOUT。
 

Tags:路由



相关评论
广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号