基于位置信息的跨层路由方法转让专利

申请号 : CN200910076006.6

文献号 : CN101459947B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张军刘凯李献昌施璇

申请人 : 北京航空航天大学

摘要 :

本发明公开了一种基于位置信息的跨层路由方法,该方法包括本跳节点广播BRTS帧,所述BRTS帧包括转发域、本跳节点位置和目的节点位置信息;邻节点接收所述BRTS帧,根据本跳节点位置信息、目的节点位置信息和自身位置信息进行竞争处理后返回CTS帧;本跳节点接收所述CTS帧,并向返回CTS帧的邻节点发送数据包。本发明技术方案中,本跳节点只需要知道自身位置信息以及目的节点位置信息即可实现数据包的转发,本发明具有较好的扩展性,特别适用于高动态大型网络环境。

权利要求 :

1.一种基于位置信息的跨层路由方法,其特征在于,包括:步骤1、本跳节点广播B类型请求发送BRTS帧,所述BRTS帧包括转发域、本跳节点位置和目的节点位置信息;

步骤2、邻节点接收所述BRTS帧,根据本跳节点位置信息、目的节点位置信息和自身位置信息进行竞争处理后返回清除发送CTS帧;

步骤3、本跳节点接收所述CTS帧,并向返回CTS帧的邻节点发送数据包;

所述步骤2包括:

步骤20、邻节点接收所述BRTS帧,获得BRTS帧中包括的转发域、本跳节点位置和目的节点位置信息;

步骤21、邻节点根据所述目的节点位置信息判断自己是否是目的节点,是则执行步骤

22,否则执行步骤23;

步骤22、邻节点返回CTS帧,结束;

步骤23、邻节点根据所述本跳节点位置信息、目的节点位置信息和自身位置信息判断自己是否在所述转发域内,是则执行步骤25,否则执行步骤24;

步骤24、邻节点放弃回复CTS帧,退出竞争,更新网络分配向量,结束;

步骤25、邻节点根据本跳节点位置信息、目的节点位置信息和自身位置信息计算竞争回复CTS帧等待的接入发送时延;

步骤26、邻节点在所述接入发送时延内侦听信道,判断在所述接入发送时延内信道上是否有其它节点回复的CTS帧,是则执行步骤27,否则执行步骤28;

步骤27、放弃回复CTS帧,邻节点退出竞争,更新网络分配向量,结束;

步骤28、邻节点向本跳节点返回CTS帧;

所述步骤25包括:

步骤250、根据本跳节点位置信息、目的节点位置信息和邻节点自身位置信息计算本跳节点N到临界点P之间的径向距离dist(N,P)=|NP|,其中临界点P 是临界圆与连接线的交点,所述临界圆是以邻节点为圆心、以邻节点的通信距离为半径的圆,所述连接线是本跳节点和目的节点之间的连线;

步骤251、邻节点根据所述径向距离dist(N,P)=|NP|计算影响因子F= 其中,rand为在区间[0,1]范围内的随机值,wp为数值在区间[0,1]内的平衡因子,r为本跳节点的通信半径;

步骤252、邻节点根据所述影响因子F计算竞争回复CTS帧等待的接入发送时延,所述接入发送时延为TCTS_Response=SIFS+(DIFS-SIFS)·F,其中DIFS为分布式的帧间间隙,SIFS为短的帧间间隙。

2.根据权利要求1所述的基于位置信息的跨层路由方法,其特征在于,所述步骤1包括:步骤10、作为中继节点的本跳节点接收上游节点发送的数据包,并缓存;

步骤11、本跳节点向上游节点返回ACK;

步骤12、本跳节点从所述数据包中获得目的节点位置信息,根据所述目的节点位置信息和自身位置信息设置转发域,将所述转发域、目的节点位置和自身位置信息设置在BRTS帧中;

步骤13、本跳节点侦听信道;

步骤14、本跳节点侦听信道是否空闲,是则执行步骤16,否则执行步骤15;

步骤15、本跳节点在退避时间内退避,执行步骤13;

步骤16、本跳节点在所述转发域内广播BRTS帧。

3.根据权利要求1所述的基于位置信息的跨层路由方法,其特征在于,所述步骤1包括:步骤110、作为源节点的本跳节点生成数据包并缓存;

步骤120、本跳节点设置目的节点位置,根据所述目的节点位置信息和自身位置信息设置转发域,将所述转发域、本跳节点位置和目的节点位置设置 在BRTS帧中;

步骤130、本跳节点侦听信道;

步骤140、本跳节点侦听信道是否空闲,是则执行步骤160,否则执行步骤150;

步骤150、本跳节点在退避时间内退避,执行步骤130;

步骤160、本跳节点在所述转发域内广播BRTS帧。

4.根据权利要求2或3所述的基于位置信息的跨层路由方法,其特征在于,所述转发域为以本跳节点和目的节点连线为角平分线、以本跳节点为顶点的60°扇形区域。

5.根据权利要求1所述的基于位置信息的跨层路由方法,其特征在于,所述步骤3包括:步骤30、本跳节点侦听信道;

步骤31、本跳节点判断是否接收到CTS帧,是则执行步骤32,否则执行步骤33;

步骤32、本跳节点向返回CTS帧的邻节点发送数据包,结束;

步骤33、本跳节点判断侦听信道时间是否超过了侦听等待时间,是则执行步骤34,否则执行步骤30;

步骤34、本跳节点判断对BRTS帧重播是否超过了重播次数,是则本跳节点为空洞节点,否则执行步骤1。

说明书 :

基于位置信息的跨层路由方法

技术领域

[0001] 本发明涉及路由技术,特别是一种基于位置信息的跨层路由方法,属于通信技术领域。

背景技术

[0002] 移动AB Hoc网络(Mobile AB-Hoc Network,简称MANET)是一种由许多具有路由功能的移动节点组成的分布式无线多跳网络,它不依赖于预设的基础设施而临时组建,网络中的移动节点利用自身的无线收发设备交换信息,当相互之间不在彼此的通信范围内时,可以借助其他中间节点中继来实现多跳通信。MANET面临的关键问题之一就是路由问题,即如何在众多节点中合理高效地分配无线资源并在源节点和目的节点之间建立稳定有效的路由,从而将数据包传送至目的节点。
[0003] 随着定位技术的发展,网络中的节点可以方便的获得自己的地理位置信息,因此,利用节点的位置信息可以有效改善MANET的路由性能。现有技术中存在一种利用位置信息的路由方法,该路由方法中,本跳节点利用网络拓扑结构中的直接邻居节点进行路由决策,本跳节点在进行数据包转发时需要从所有已知的邻节点中选取一个距离目的节点最近的邻节点作为下一跳节点,并将数据包转发至该下一跳节点,理想情况下,重复此过程实现将数据包发送至目的节点。该种路由方法中本跳节点需要获得所有邻节点的位置信息,以确定距离目的节点最近的邻节点,因此,本跳节点需要获取或维护其邻近所有邻节点的位置信息,节点的开销较大,特别是在高动态大型网络中,网络中各节点的变化频繁,获取或维护节点的开销更大,增大了整个网络的开销。

发明内容

[0004] 本发明的目的是提供一种基于位置信息的跨层路由方法,可有效克服现有技术的缺陷,使得本跳节点只需要知道自身位置信息和目的节点位置信息即可实现数据包的转发,节省了节点的开销。
[0005] 为实现上述目的,本发明提供了一种基于位置信息的跨层路由方法,包括: [0006] 步骤1、本跳节点广播BRTS帧,所述BRTS帧包括转发域、本跳节点位置和目的节点位置信息;
[0007] 步骤2、邻节点接收所述BRTS帧,根据本跳节点位置信息、目的节点位置信息和自身位置信息进行竞争处理后返回CTS帧;
[0008] 步骤3、本跳节点接收所述CTS帧,并向返回CTS帧的邻节点发送数据包; [0009] 所述步骤2包括:
[0010] 步骤20、邻节点接收所述BRTS帧,获得BRTS帧中包括的转发域、本跳节点位置和目的节点位置信息;
[0011] 步骤21、邻节点根据所述目的节点位置信息判断自己是否是目的节点,是则执行步骤22,否则执行步骤23;
[0012] 步骤22、邻节点返回CTS帧,结束;
[0013] 步骤23、邻节点根据所述本跳节点位置信息、目的节点位置信息和自身位置信息判断自己是否在所述转发域内,是则执行步骤25,否则执行步骤24;
[0014] 步骤24、邻节点放弃回复CTS帧,退出竞争,更新网络分配向量,结束; [0015] 步骤25、邻节点根据本跳节点位置信息、目的节点位置信息和自身位置信息计算竞争回复CTS帧等待的接入发送时延;
[0016] 步骤26、邻节点在所述接入发送时延内侦听信道,判断在所述接入发送时延内信道上是否有其它节点回复的CTS帧,是则执行步骤27,否则执行步 骤28;
[0017] 步骤27、放弃回复CTS帧,邻节点退出竞争,更新网络分配向量,结束; [0018] 步骤28、邻节点向本跳节点返回CTS帧;
[0019] 所述步骤25包括:
[0020] 步骤250、根据本跳节点位置信息、目的节点位置信息和邻节点自身位置信息计算本跳节点N到临界点P之间的径向距离dist(N,P)=|NP|,其中临界点P是临界圆与连接线的交点,所述临界圆是以邻节点为圆心、以邻节点的通信距离为半径的圆,所述连接线是本跳节点和目的节点之间的连线;
[0021] 步骤251、邻节点根据所述径向距离dist(N,P)=|NP|计算影响因子F= 其中,rand为在区间[0,1]范围内的随机值,wp为数值在区间[0,1]内的平衡因子,r为本跳节点的通信半径;
[0022] 步骤252、邻节点根据所述影响因子F计算竞争回复CTS帧等待的接入发送时延,所述接入发送时延为TCTS_Response=SIFS+(DIFS-SIFS)·F,其中DIFS为分布式的帧间间隙,SIFS为短的帧间间隙。
[0023] 其中,所述步骤1包括:
[0024] 步骤10、作为中继节点的本跳节点接收上游节点发送的数据包,并缓存; [0025] 步骤11、本跳节点向上游节点返回ACK;
[0026] 步骤12、本跳节点从所述数据包中获得目的节点位置信息,根据所述目的节点位置信息和自身位置信息设置转发域,将所述转发域、目的节点位置和自身位置信息设置在BRTS帧中;
[0027] 步骤13、本跳节点侦听信道;
[0028] 步骤14、本跳节点侦听信道是否空闲,是则执行步骤16,否则执行步骤15; [0029] 步骤15、本跳节点在退避时间内退避,执行步骤13;
[0030] 步骤16、本跳节点在所述转发域内广播BRTS帧。
[0031] 所述步骤3包括:
[0032] 步骤30、本跳节点侦听信道;
[0033] 步骤31、本跳节点判断是否接收到CTS帧,是则执行步骤32,否则执行步骤33; [0034] 步骤32、本跳节点向返回CTS帧的邻节点发送数据包,结束;
[0035] 步骤33、本跳节点判断侦听信道时间是否超过了侦听等待时间,是则执行步骤34,否则执行步骤30;
[0036] 步骤34、本跳节点判断对BRTS帧重播是否超过了重播次数,是则本跳节点为空洞节点,否则执行步骤1。
[0037] 本发明提供了一种基于位置信息的跨层路由方法,本发明技术方案中本跳节点只需要知道自己的位置信息和目的节点的位置信息即可实现数据包的转发,因此在高度动态的网络环境下,即便网络拓扑结构发生剧烈改变也不会影响数据包的投递,其具有较强的可扩展性,适用于扩展性要求较高的动态网络环境。本发明邻节点通过竞争回复CTS帧,距离目的节点最近的邻节点最先回复CTS帧,赢得竞争,并抑制其它邻节点回复CTS帧,成为本跳节点的下一跳节点,使得获得的下一跳节点准确可靠,且具有到达目的节点的最短路径,提高了数据包的转发效率。本发明技术方案能够以较小的开销即可获得较高的数据包投递率和较低的端到端时延,特别适应于高动态大型网络环境。
[0038] 附图说明
[0039] 图1为本发明基于位置信息的跨层路由方法的流程示意图;
[0040] 图2为本发明作为中继节点的本跳节点广播BRTS帧的流程图;
[0041] 图3为本发明作为源节点的本跳节点广播BRTS帧的流程图;
[0042] 图4为本发明邻节点根据接收到的BRTS帧进行竞争处理的流程图;
[0043] 图5为本发明邻节点计算回复CTS帧等待的接入发送时延的流程图; [0044] 图6为本发明邻节点计算回复CTS帧等待的接入发送时延的示意图; [0045] 图7为本发明本跳节点接收到CTS帧后的流程图。

具体实施方式

[0046] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。 [0047] 图1为本发明基于位置信息的跨层路由方法的流程示意图。该方法包括: [0048] 步骤1、本跳节点广播BRTS帧,所述BRTS帧包括转发域、本跳节点位置和目的节点位置信息;
[0049] 步骤2、邻节点接收所述BRTS帧,根据本跳节点位置信息、目的节点位置信息和自身位置信息进行竞争处理后返回CTS帧;
[0050] 步骤3、本跳节点接收所述CTS帧,并向返回CTS帧的邻节点发送数据包。 [0051] 本发明上述技术方案中,当本跳节点(源节点或中继节点)需要发送或转发数据包时,本跳节点广播包括本跳节点位置信息、目的节点位置信息以及转发域的B类型请求发送(B type Request To Send,简称BRTS)帧,在本跳节点广播范围内的所有邻节点均可接收该BRTS帧,邻节点接收到该BRTS帧后,邻节点根据BRTS帧中的本跳节点位置信息、目的节点位置信息以及邻节点自身位置信息进行竞争回复处理后返回清除发送(Clear To Send,简称CTS)帧到本跳节点,本跳节点接收到邻节点返回的CTS帧后,表明BRTS/CTS握手成功,本跳节点向返回CTS帧的邻节点发送数据包,即返回CTS帧的邻节点为本跳节点的下一跳节点,本发明上述技术方案可应用于采用跨层协议设计方法的网络环境中。本发明技术方案中所述的BRTS帧是相对于802.11DCF协议中的请求发送(Request To Send,简称RTS)规定而言的,802.11DCF协议中规定了RTS帧的接收节点,而本发明技术方案中本跳节点在发送RTS帧时并未规定RTS帧的接收节点,因此,为显示这一特性,本发明技术方案中的RTS帧规定为BRTS帧。
[0052] 本发明上述技术方案中本跳节点只需要知道本跳节点位置信息和目的节 点位置信息即可实现数据包的发送或转发,本跳节点不需要知道邻节点的位置信息,通过广播BRTS帧到转发域内的所有邻节点,并由邻节点根据BRTS帧中的本跳节点位置信息、目的节点位置信息以及邻节点自身位置信息进行竞争回复处理后返回CTS帧到本跳节点,最先回复CTS帧的邻节点成为本跳节点的下一跳节点。可以看出,本发明上述技术方案中本跳节点不需要获取和维护其邻节点的位置信息,只需要知道本跳节点自身的位置以及目的节点的位置即可获得到目的节点的下一跳节点,节省了网络中各节点的开销和运算量,使得本发明上述技术方案可以较小的开销即可获得较高的数据包投递率和较低的端到端的时延,特别适合用于高动态大型网络环境。
[0053] 图2为本发明作为中继节点的本跳节点广播BRTS帧的流程图。上述图1技术方案中,中继节点作为本跳节点时,步骤1可包括:
[0054] 步骤10、作为中继节点的本跳节点接收上游节点发送的数据包,并缓存; [0055] 步骤11、本跳节点向上游节点返回ACK;
[0056] 步骤12、本跳节点从所述数据包中获得目的节点位置信息,根据所述目的节点位置信息和自身位置信息设置转发域,将所述转发域、目的节点位置和自身位置信息设置在BRTS帧中;
[0057] 步骤13、本跳节点侦听信道;
[0058] 步骤14、本跳节点侦听信道是否空闲,是则执行步骤16,否则执行步骤15; [0059] 步骤15、本跳节点在退避时间内退避,执行步骤13;
[0060] 步骤16、本跳节点在所述转发域内广播BRTS帧。
[0061] 其中,步骤12中的转发域为以本跳节点和目的节点连线为角平分线、以本跳节点为顶点的60°扇形区域。通过设定转发域,可将到达目的节点的邻节点限制在一定区域内,提高了获得到达目的节点的下一跳节点的有效性,使得到达目的节点的路由准确可靠。 [0062] 上述技术方案中,作为中继节点的本跳节点在接收到上游节点发送的数 据包后缓存,并通过向上游节点返回ACK通知上游节点自己已成功获取数据包。本跳节点获得数据包后,可根据数据包中目的节点位置信息和自身位置信息设置转发域,并将转发域、目的节点位置信息和本跳节点位置信息设置在BRTS帧中,然后侦听信道,在信道空闲时将BRTS帧在转发域内广播出去。如果信道忙,则本跳节点可在退避时间内退避一段时间后再侦听信道,直到将BRTS帧广播出去,其中退避时间可以是随机的一段等待时间,然后再侦听信道。转发域内的邻节点接收到该BRTS帧后即可进行竞争回复CTS帧,最先回复CTS帧的邻节点即为本跳节点的下一跳节点。
[0063] 图3为本发明作为源节点的本跳节点广播BRTS帧的流程图。上述图1技术方案中,源节点作为本跳节点时,步骤1可包括:
[0064] 步骤110、作为源节点的本跳节点生成数据包并缓存;
[0065] 步骤120、本跳节点设置目的节点位置,根据所述目的节点位置信息和自身位置信息设置转发域,将所述转发域、本跳节点位置和目的节点位置设置在BRTS帧中; [0066] 步骤130、本跳节点侦听信道;
[0067] 步骤140、本跳节点侦听信道是否空闲,是则执行步骤160,否则执行步骤150; [0068] 步骤150、本跳节点在退避时间内退避,执行步骤130;
[0069] 步骤160、本跳节点在所述转发域内广播BRTS帧。
[0070] 其中,步骤120中的转发域为以本跳节点和目的节点连线为角平分线、以本跳节点为顶点的60°扇形区域。通过设定转发域,可将到达目的节点的邻节点限制在一定区域内,提高了获得到达目的节点的下一跳节点的有效性,使得到达目的节点的路由准确可靠。 [0071] 上述技术方案中,当本跳节点为源节点时,本跳节点可通过节点定位的方式获得目的节点位置,并根据目的节点位置信息和本跳节点自身位置信息设定转发域,并将转发域、目的节点位置以及本跳节点位置信息设置在BRTS 帧中,本跳节点可侦听信道确认信道是否空闲,若信道空闲则在设定的转发域内广播BRTS帧,否则本跳节点可在退避时间内退避一段时间后再侦听信道,直到将BRTS帧广播出去,其中退避时间可以是随机的一段等待时间。转发域内的邻节点接收到BRTS帧后进行竞争回复CTS帧,最先回复CTS帧的邻节点成为本跳节点的下一跳节点。可以看出,不管本跳节点是源节点或中继节点,本跳节点只需要知道自身位置信息和目的节点位置信息,即可通过将自身位置信息、目的节点位置信息以及设定的转发域放入BRTS帧,并以广播的形式将BRTS帧传送到转发域内的所有邻节点,以获取本跳节点到目的节点的下一跳节点。
[0072] 图4为本发明邻节点根据接收到的BRTS帧进行竞争处理的流程图。在上述图1所示的技术方案中,步骤2可包括:
[0073] 步骤20、邻节点接收所述BRTS帧,获得BRTS帧中包括的转发域、本跳节点位置和目的节点位置信息;
[0074] 步骤21、邻节点根据所述目的节点位置信息判断自己是否是目的节点,是则执行步骤22,否则执行步骤23;
[0075] 步骤22、邻节点返回CTS帧,结束;
[0076] 步骤23、邻节点根据所述本跳节点位置信息、目的节点位置信息和自身位置信息判断自己是否在所述转发域内,是则执行步骤25,否则执行步骤24;
[0077] 步骤24、邻节点放弃回复CTS帧,退出竞争,更新网络分配向量,结束; [0078] 步骤25、邻节点根据本跳节点位置信息、目的节点位置信息和自身位置信息计算竞争回复CTS帧等待的接入发送时延;
[0079] 步骤26、邻节点在所述接入发送时延内侦听信道,判断在所述接入发送时延内信道上是否有其它节点回复的CTS帧,是则执行步骤27,否则执行步骤28;
[0080] 步骤27、放弃回复CTS帧,邻节点退出竞争,更新网络分配向量,结束; [0081] 步骤28、邻节点向本跳节点返回CTS帧。
[0082] 上述技术方案中,邻节点接收到本跳节点广播的BRTS帧后,首先根据获得的BRTS帧中的目的节点信息判断自己是否是目的节点,是则直接返回CTS帧到本跳节点,表明该返回CTS帧的邻节点为本跳节点的下一跳节点,本跳节点接收到该CTS帧后将数据包转发给该邻节点。如果邻节点不是目的节点,则邻节点根据自身位置信息判断自己是否属于BRTS帧中转发域内的节点,是则邻节点根据本跳节点、目的节点以及自身位置信息计算回复CTS帧等待的接入发送时延,并在该接入发送时延内侦听信道,判断信道上是否有其它节点回复的CTS帧,若有,则表明已有邻节点回复CTS帧,本跳节点已找到下一跳节点,则该邻节点放弃回复CTS帧,退出竞争,并根据侦听到的CTS帧更新网络分配向量,若在接入发送时延内没有侦听到信道上有其它节点回复的CTS帧,且信道空闲,则该邻节点返回CTS帧,本跳节点接收到该邻节点返回的CTS帧后,表示BRTS/CTS握手成功,该邻节点即成为本跳节点的下一跳节点,本跳节点即可将需要转发到目的节点的数据包转发给该邻节点。如果邻节点不在BRTS帧的转发域内,则邻节点将退出竞争回复CTS帧,并更新网络分配向量NAV。上述技术方案中,邻节点通过计算回复CTS帧等待的接入发送时延,接入发送时延最短的邻节点最先返回CTS帧,本跳节点接收到该CTS帧后,就可将该邻节点作为本跳节点的下一跳节点。同时,其它邻节点侦听到存在CTS帧回复后,表明本跳节点寻找下一跳节点成功,因此取消自身的CTS帧回复,并根据侦听到的CTS回复更新自身的网络分配向量NAV。 [0083] 图5为本发明邻节点计算回复CTS帧等待的接入发送时延的流程图。具体地,在上述图4所示的技术方案中,步骤25可包括:
[0084] 步骤250、根据本跳节点位置信息、目的节点位置信息和邻节点自身位置信息计算本跳节点N到临界点P之间的径向距离dist(N,P)=|NP|,其中临界点P是临界圆与连接线的交点,所述临界圆是以邻节点为圆心、以邻节点的通信距离为半径的圆,所述连接线是本跳节点和目的节点之间的连线;
[0085] 步骤251、邻节点根据所述径向距离dist(N,P)=|NP|计算影响因子 其中,rand为在区间[0,1]范围内的随机值,wp为数值在区间[0,1]内的平衡因子,r为本跳节点的通信半径;
[0086] 步骤252、邻节点根据所述影响因子F计算竞争回复CTS帧等待的接入发送时延,所述接入发送时延为TCTS_Response=SIFS+(DIFS-SIFS)·F,其中DIFS为分布式的帧间间隙,SIFS为短的帧间间隙。
[0087] 上述技术方案中,邻节点接收到BRTS帧后,首先根据BRTS帧中的本跳节点位置和目的节点位置信息以及邻节点自身位置信息计算竞争回复CTS帧等待的接入发送时延TCTS_Response,并在该接入发送时延内侦听信道。如果邻节点在接入发送时延TCTS_Response内侦听到信道上有来自其它节点向本跳节点回复的CTS帧,表示已有节点先于自己返回CTS帧,本跳节点已找到下一跳节点,则该邻节点竞争回复CTS帧失败,邻节点放弃其预约的在接入发送时延TCTS_Response后对BRTS帧的CTS帧回复,退出竞争,并根据侦听到的来自其它邻节点的CTS帧更新自己的网络分配向量NAV。如果邻节点在接入发送时延TCTS_Response内没有侦听到其它节点回复的CTS帧,且信道空闲,表明邻节点的CTS帧等待接入发送时延最短,可以返回CTS帧,邻节点向本跳节点返回CTS帧,邻节点成为本跳节点的下一跳节点,本跳节点即可向其下一跳节点转发数据包。
[0088] 上述技术方案中,引入了径向距离dist(N,P)的概念。图6为本发明邻节点计算回复CTS帧等待的接入发送时延的示意图。如图6所示,图中的实线圆为本跳节点N以其最大通信距离r为半径的通信范围,虚线圆K为邻节点A以其最大通信距离rA为半径的通信范围,其中,径向距离dist(N,P)计算过程如下:首先以邻节点A为中心,以邻节点A的通信距离rA为半径作圆K,圆K即为临界圆,然后连接本跳节点N和目的节点D,获得本跳节点N和目的节点D之间的径向连接线L,将连接线L和圆K的交点定义为临界点P,则本跳节点N和临界点P之间的直线距离即为径向距离dist(N,P),可以看出,dist(N,P) 越大,说明临界点P距离目的节点D越近,在通信半径rA一定的情况下,说明邻节点A到目的节点D的距离越近。根据影响因子 的计算公式可以看出,在rand和wp一定的情况下,影响因子F与径向距离dist(N,P)=|NP|成反比,即径向距离dist(N,P)=|NP|越大(即邻节点到目的节点之间的距离越小),影响因子F越小。根据TCTS_Response=SIFS+(DIFS-SIFS)·F计算公式可以看出,接入发送时延TCTS_Response与影响因子F的大小成正比,即接入发送时延TCTS_Response与邻节点A到目的节点D的距离成正比,邻节点A到目的节点D的距离越小,邻节点竞争回复CTS帧等待的接入发送时延TCTS_Response越小。也就是说,距离目的节点D近的邻节点A最先向本跳节点回复CTS帧,赢得竞争,并抑制其它邻节点回复CTS帧,从而成为本跳节点的下一跳节点。因此,通过上述技术方案获得的本跳节点的下一跳节点准确可靠,且具有到达目的节点的最短路径,提高了数据转发的效率。 [0089] 在影响因子F的计算公式中,为避免具有相同径向距离的邻节点同时回复CTS帧,造成CTS帧在本跳节点处发生碰撞现象,在影响因子F的计算公式中引入随机项rand。同时,随机项rand的引入还可以避免数据包转发过程中出现转发任务集中在部分径向距离较大的节点中,以平衡网路中各个节点的负载。如果在某一时刻两个或多个邻节点同时向本跳节点返回CTS帧,则本跳节点处就可能存在两个或多个CTS帧碰撞的可能,因此,本跳节点无法接收到任何CTS帧,本跳节点要么重播BRTS帧,要么判定在该转发域内不存在下一跳节点,这不仅增加了时延,也会增大路径跳数和路由开销,降低数据包的投递率。因此,本发明上述技术方案中通过在影响因子F计算公式中引入随机项rand可以最大限度地降低上述情况的发生概率,提高获得下一跳节点的有效性。
[0090] 图7为本发明本跳节点接收到CTS帧后的流程图。在图1所示的技术方案中,步骤3可包括:
[0091] 步骤30、本跳节点侦听信道;
[0092] 步骤31、本跳节点判断是否接收到CTS帧,是则执行步骤32,否则执行步骤33; [0093] 步骤32、本跳节点向返回CTS帧的邻节点发送数据包,结束;
[0094] 步骤33、本跳节点判断侦听信道时间是否超过了侦听等待时间,是则执行步骤34,否则执行步骤30;
[0095] 步骤34、本跳节点判断对BRTS帧重播是否超过了重播次数,是则本跳节点为空洞节点,否则执行步骤1,重新广播BRTS帧。
[0096] 上述技术方案中,当本跳节点接收到邻节点返回的CTS帧后,表明BRTS/CTS握手成功,本跳节点将返回CTS帧的邻节点作为下一跳节点,并将数据包发送至该邻节点。具体地,本跳节点在广播BRTS帧后,需要在规定的侦听等待时间内等待邻节点返回的CTS帧,如果接收到CTS帧,表明BRTS/CTS握手成功,本跳节点将返回CTS帧的邻节点作为下一跳节点,并将数据包发送给该邻节点;如果本跳节点在规定的侦听等待时间内没有收到CTS帧,判断对BRTS帧的重播是否超出了设定的重播次数,是则表明本跳节点为空洞节点,可按照处理空洞节点的方法对其进行处理,否则本跳节点重播BRTS帧,继续等待邻节点的CTS帧回复。
[0097] 上述技术方案中,本跳节点可根据侦听到的信道情况进行相应的处理,本跳节点在规定的侦听时间内接收不到CTS帧后会多次重播BRTS帧,可以最大限度地在转发域内寻找下一跳节点,将数据包转发出去,保证数据包转发的成功率,同时避免因暂时节点移动造成的通信空洞问题。
[0098] 本发明技术方案中,当本跳节点完成BRTS/CTS握手确定其下一跳节点后,本跳节点按802.11DCF协议向下一跳节点转发数据包,不断重复此转发过程,直到将数据包到达目的节点为止。
[0099] 本发明基于位置信息的跨层路由方法技术方案中,本跳节点只需要知道自己的位置信息和目的节点的位置信息即可实现数据包的转发,因此在高度 动态的网络环境下,即便网络拓扑结构发生剧烈改变也不会影响数据包的投递,其具有较强的可扩展性,适用于扩展性要求较高的动态网络环境。本发明技术方案中邻节点通过竞争回复CTS帧,距离目的节点最近的邻节点最先回复CTS帧,赢得竞争,并抑制其它邻节点回复CTS帧,成为本跳节点的下一跳节点,使得获得的下一跳节点准确可靠,且具有到达目的节点的最短路径,提高了数据包的转发效率。本发明技术方案能够以较小的开销即可获得较高的数据包投递率和较低的端到端时延,特别适应于高动态大型网络环境。
[0100] 最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。