一种aodv路由方法、节点设备及系统的制作方法_3

文档序号:9691622阅读:来源:国知局
以适当惩罚,使得节点速度越大,则受到的惩罚越大,在路由选择时选中该速度大的节点的 可能就越小。
[0085] 设惩罚权值函数为Φ,节点i的运动速度为V,惩罚因子为α (根据上述102可知, 本实施例根据中间节点不同的拥塞状况在上述102中设定了多种惩罚因子,在缺少102的 情况下,则可考虑设定统一的惩罚因子),节点跳数hopcounti权值(该跳数权值节点是现 有技术中可根据RREQ报文中的信息计算出来的,并且也是应当填写进RREQ报文的内容)。 可以用公式2来表示这种惩罚权值函数的设计:
[0086] metric; = Φ (hopcount;, α , v ;) (2)
[0087] 原本每个节点中用于填写hopcounti权值的域在本实施例中改为惩罚权值域,用 来填写本实施例中计算出的惩罚权值,即用该惩罚权值函数计算出的新惩罚权值替代每个 节点原本应该填写hopcounti权值的地方,即可计算出每个节点i的惩罚权值。在每个节 点转发扩展的RREQ报文包时,需要将自己的惩罚权值metric i累加到惩罚权值域中,这样 到达目的节点后则构成了整条路径的惩罚权值,如公式3所示:
[0089] 上述公式2即为本实施例提供的计算惩罚权值的公式。
[0090] 特别地,本实施例中每个中间节点的路由广播请求表中增加有惩罚度和发送响应 标识。具体而言,例如:中间节点N接着根据速度计算惩罚权值Metric。A0DV方法的每个 节点有一个路由请求广播表,用源节点地址和RREQ报文序号唯一标识RREQ报文,如果在表 中查找到相同的源节点地址和RREQ报文序号,则丢弃此RREQ报文。现在为了选择一条从 源节点到目标节点惩罚度最小的路径,需要改变路由请求广播表项,因此本实施例增加惩 罚度和发送响应标识。其中惩罚度表明链路的拥塞状况和节点移动速率,发送响应标识置 位表明针对这个路由请求报文,目标节点已发送过响应。
[0091] 相应地,以接收到扩展RREQ报文的一个中间节点为例,上述根据惩罚权值域中累 计的惩罚权值确定源节点到本节点的最优路径,具体包括:
[0092] 该中间节点比较惩罚权值域中累计的惩罚权值与惩罚度中记录的惩罚权值大小; 若累计的惩罚权值不大于记录的惩罚权值,则用累计的惩罚权值替代记录的惩罚权值,并 将累计的惩罚权值所对应的路径作为源节点到本节点的最优路径。
[0093] 例如:中间节点N计算节点Μ、N之间的惩罚值Metric,并从扩展的RREQ的惩罚 域中得到从源节点到当前节点N的总惩罚权值Metric path_NEW。在路由请求广播表中 查找以前收到过的RREQ报文,如果没有查到,则插入新的路由请求。如果查到,则取出 找到的那个表项中的总惩罚权值Metric path,记为Metric path_0LD,当Metric path_ 0LD〈Metric path_NEW,说明现有的路由性能比以前的差,丢弃收到的报文,结束处理。当 Metric path_0LD彡Metric path_NEW,说明现有的路由性能优于以前的,是到目前为止源 节点到本节点的最优路径,需要针对中间节点N是中间节点还是目的节点两种情况分别处 理,具体参照下面104。
[0094] 104,该中间节点判断本节点是否为目的节点,若判定本节点非目的节点,则继续 广播RREQ报文。若判定本节点为目的节点,则选择最优路径作为源节点到目的节点的路 由,并根据发送响应标识确定是否需要发送RREP报文。
[0095] 例如:中间节点N判断自己是否为目的节点,若判定是目的节点,且找到的那个表 项中的发送响应标志没有置位时,说明目的节点针对这个RREQ没有发送过RREP响应报文, 则继续处理发送路由响应(RREP)报文;若判定是中间节点,再次广播RREQ报文,同时用本 节点的排队长度、接入时间和移动速度更新REQ2域。
[0096] 上述 103-104 可参照图 4,207-211。
[0097] 207,接收到该扩展RREQ报文的中间节点反向记录下指向源节点的路径和上游节 点的队列长度,判定链路的拥塞状态;
[0098] 208,当确定链路不拥塞时,根据本节点的移动速度计算经过本节点所需的惩罚权 值并更新RREQ的惩罚权值域。
[0099] 209,判断该中间节点是否为目的节点,若该中间节点不是目的节点,则执行210 ; 当该中间节点为目的节点时,执行211
[0100] 210,再重新广播RREQ。
[0101] 211,目的节点计算经过不同路径的总惩罚权值,选择总的惩罚权值最小的路径作 为路由,并发送RREP。
[0102] 如果中间节点知道最新的指向目的节点的路由,它也可以代替目的节点直接发送 RREP,当RREP返回源节点时,每个中间节点记录正向路径上的下一跳节点,这样源节点就 可以沿着建立的路由开始发送数据。
[0103] 在路由维护阶段,本实施例提供的基于稳定性选择的路由方法基本保留了原A0DV 的流程,主要的修改仍然是用惩罚权值替代所有路由维护更新所需的数据包,如RREQ,RREP 等。此外,转发后的处理方法与路由发现过程相同,在此不加以详述。
[0104] 特别地,如果某节点发现某条链路失败时,应当发出主动的RREP到使用该链路的 每个邻居节点,此时将RREP中惩罚权值设为无穷大并将序列号加1 ;该RREP最终将到达所 有使用到这条失败链路的源节点,从而在源节点引发新的路由发现过程;目的节点检测到 与其相连的链路发生错误时,将其序列号加1,但不产生主动的RREP。
[0105] 此外,如图4所示,本实施例还进一步提供了目的节点收到扩展RREQ报文并发送 路由响应消息RREP后的处理方案。
[0106] 212,目的节点若需要更新发送RREP中间节点的反向路由,该路由就是最后源节 点和目的节点通信的路由,则发送RREP报文;收到RREP报文的中间节点则同上面207 - 样,根据队列长度确定链路拥塞状态。
[0107] 213,中间节点同上面208 -样,根据本节点的移动速度计算本节点惩罚权值,累 加在RREP报文的惩罚权值域中,经RREQ阶段所记录反向路由发往源节点。
[0108] 214,判断本节点是否为目的节点(也即源节点),若是,则代表RREP到达源节点执 行201,则源节点到目的节点的路由建立起来,可以发送缓存的数据。若不是,则执行215。
[0109] 215,该中间节点继续转发该RREP报文,后继执行213。
[0110] 本实施例提供的方法中,在发现路由的过程中以考虑链路的稳定性为主,所谓稳 定性选择是指在路由选择时不仅只是简单的考虑跳数,而是综合考虑节点的移动速率。根 据这种策略选出的路由将倾向于选择移动性较低的节点,这样就可避免由于节点频繁移动 而导致快速更新路由所带来的各种开销,使选择的路由更稳定更可靠。因此本实施例提供 的方法是结合拥塞状况和移动速度设计更为通畅和稳定的路由。中间节点可根据自身的移 动速度计算惩罚权值,并根据两节点之间的队列来确定链路的拥塞状况,确保发现的路由 不会因为拥塞或无线移动而产生链路失败或中断等稳定性差的问题,进而实现在实际进行 路由选择时,每个节点会优先选择路径的总惩罚权值Metric path最小的路径,建立起更稳 定可靠的路由。
[0111] 实施例2
[0112] 为了便于实施例1中的方法实现,本实施例继续提供一种A0DV路由节点设备,该 节点设备可以是实施例1中的中间节点,也可以是源节点或目的节点。如图5所示,包括: 接收模块21,计算模块22,确定模块23,执行模块24。
[0113] 接收模块21,用于接收扩展RREQ报文;计算模块22,用于根据本节点设备的移动 速度计算惩罚权值,并将惩罚权值累计到扩展RREQ报文中的惩罚权值域;确定模块23,用 于根据惩罚权值域中累计的惩罚权值确定源节点设备到本节点设备的最优路径;执行模块 24,用于判断本节点设备是否为目的节点设备,若判定本节点设备非目的节点设备,则广播 RREQ报文;若判定本节点设备为目的节点设备,则选择最优路径作为源节点设备到目的节 点设备的路由。
[0114] 进一步地,该设备还包括:扩展模块,更新模块。
[0115] 扩展模块,用于构建扩展RREQ报文,扩展RREQ中增加了上游节点的队列长度、接 入时间和移动速度作为扩展部分;更新模块,用于用本节点设备的队列长度、接入时间和移 动速度更新接收模块接收到的扩展RREQ中对应的扩展部分。
[0116] 进一步地,该设备还包括:
[0117] 拥塞检测模块,用于根据本节点的队列长度确定本节点的拥塞状态是否溢出;若 确定是,则丢弃所述扩展RREQ报文;否则通知计算模块开始执行。
[0118] 其中,拥塞检测模块,具体用于当本节点的队列长度L不大于第一队列长度阈值 时,确定本节点的拥塞状态为正常工作,并预设一个正常惩罚因子;当本节点的队列长度在 第一队列长度阈值和第二队列长度阈值之间时,确定本节点的拥塞状态为轻度拥塞,并预 设一个轻度惩罚因子;当本节点的队列长度在第二队列长度阈值和第三队列长度阈值之间 时,确定本节点的拥塞状态为严重拥塞,并预设一个严重惩罚因子;当本节点的队列长度大 于第三队列长度阈值时,确定本节点的拥塞状态为溢出。
[0119] 其中,计算模块22,具体用于根据本节点移动速度、预设的惩罚因子
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1