一种无线Mesh网络机会路由方法及路由器的制作方法

文档序号:7860329阅读:226来源:国知局
专利名称:一种无线Mesh网络机会路由方法及路由器的制作方法
技术领域
本发明涉及无线Mesh网络技术领域,特别是涉及一种无线Mesh网络机会路由方法及路由器。
背景技术
所谓无线Mesh网络(无线网状网络)也称为“多跳(multi-hop)”网络。由于与传统的WLAN相比,无线Mesh网络具有快速部署和易于安装、非视距传输、健壮性、结构灵活、高带宽等优点,因此备受关注。其中,传统的无线Mesh网络的数据传输过程为首先根据当前网络状态(如链路的丢包率、带宽、时延等),在源节点和目的节点间选择一条最优传输路径或最短传输路径; 然后,将数据包从源节点发出并按照选定的路径进行传输。但是,由于无线网络的链路质量 受环境影响较大,特别是在电磁干扰相对严重的地区,会存在较高的丢包率,从而使得网络的传输速率、吞吐率或传输质量不高。而机会路由技术从一定程度上缓解了上述问题,其利用了无线网络的广播特性,首先根据源节点的邻居节点到目的节点的链路信息,从中选择一组作为帮助源节点转发数据包的候选中继节点;然后,源节点在广播数据包时,被选定且受到所广播的数据包的候选中继节点帮助转发所接收到的数据包,否则,不转发。可见,与传统的无线Mesh网络的数据传输过程相比,机会路由技术允许更多的节点参与到数据包的转发过程中,提高了节点之间数据传输的成功率,从而使得整个网络的传输速率、吞吐率以及传输质量均有较为明显的提闻。但是,上述的机会路由技术允许多个候选中继节点转发相同的数据包,因此,导致了冗余传输的问题;同时,参与中继转发的节点越多,端到端的传输速率越快,而重复转发数据包的概率越高,这些到加重了网络的负载,降低了整个网络的吞吐率。

发明内容
为解决上述技术问题,本发明实施例提供了一种无线Mesh网络机会路由方法及路由器,以解决现有的机会路由所带来的冗余传输问题,进而提高无线Mesh网络的传输性能,技术方案如下第一方面,本发明实施例提供了一种无线Mesh网络机会路由方法,预先为源节点到目的节点的数据传输过程划分第一数量的时隙,且每一时隙完成第二数量的数据包的传输;所述方法包括源节点广播本时隙第二数量的数据包,所述数据包携带有其自身到目的节点的ETT值,所述ETT为耗时最长的潜在链路的传输时间;接收下一跳节点所反馈的应答包,所述应答包携带有相应下一跳节点所接收到的数据包的标识以及相应下一跳节点到目的节点ETT值;根据所述应答包中数据包的标识以及相应下一跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每一待中转的数据包相对应的一中继节点;向每一中继节点发送相应的任务分配包,所述任务分配包中携带有所述中继节点所需中转的数据包的标识;当接收到目的节点发送的ACK包时,结束本时隙的源节点到目的节点的数据包传输过程。第二方面,本发明实施例提供了一种无线Mesh网络机会路由方法,其特征在于,预先为源节点到目的节点的数据传输过程划分第一数量的时隙,且每一时隙完成第二数量的数据包的传输;所述方法包括当前的中间节点接收本时隙中上一跳节点所广播的数据包,所述数据包携带有上一跳节点到目的节点的ETT值,所述ETT为耗时最长的潜在链路的传输时间;
计算当前的中间节点到目的节点的ETT值;当所述当前的中间节点到目的节点的ETT值不大于上一跳节点到目的节点的ETT值时,向相应的上一跳节点反馈应答包,所述应答包携带有当前的中间节点所接收到的数据包的标识以及其到目的节点ETT值;判断第二时间段内是否接收到上一跳节点发送的任务分配包,如果接收到所述任务分配包,则将自身到目的节点的ETT值加入到所需中转的数据包中并广播自身对应的待中转的数据包;接收下一跳节点所反馈的应答包,所述应答包携带有相应下一跳节点所接收到的数据包的标识以及相应下一跳节点到目的节点ETT值;根据所述应答包中数据包的标识以及相应下一跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每一待中转的数据包相对应的一中继节点;向每一中继节点发送相应的任务分配包,所述任务分配包中携带有所述中继节点所需中转的数据包的标识。第三方面,本发明实施例提供一种路由器,适用于无线Mesh网络中,所述路由器作为源节点,包括第一数据包广播模块,用于广播本时隙待发送的数据包,所述数据包携带有其自身到目的节点的ETT值,所述ETT为耗时最长的潜在链路的传输时间;第一应答包接收模块,用于接收下一跳节点所反馈的应答包,所述应答包携带有相应下一跳节点所接收到的数据包的标识以及相应下一跳节点到目的节点ETT值;第一中继信息确定模块,用于根据所述应答包中数据包的标识以及相应下一跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每一待中转的数据包相对应的一中继节点;第一任务分配包发送模块,用于向每一中继节点发送相应的任务分配包,所述任务分配包中携带有所述中继节点所需中转的数据包的标识;ACK包处理模块,用于当接收到目的节点发送ACK包时,结束本时隙的源节点到目的节点的数据包传输过程。第四方面,本发明实施例提供了一种路由器,适用于无线Mesh网络中,所述路由器作为中间节点,包括数据包接收模块,用于接收本时隙中上一跳节点所广播的数据包,所述数据包携带有上一跳节点到目的节点的ETT值,所述ETT为耗时最长的潜在链路的传输时间;ETT计算模块,用于计算当前的中间节点到目的节点的ETT值;应答包反馈模块,用于当所述当前的中间节点到目的节点的ETT值不大于上一跳节点到目的节点的ETT值时,向相应的上一跳节点反馈应答包,所述应答包携带有当前的中间节点所接收到的数据包的标识以及其到目的节点ETT值;任务分配包处理模块,用于判断第二时间段内是否接收到上一跳节点发送的任务分配包,如果接收到所述任务分配包,则将自身到目的节点的ETT值加入到所需中转的数据包中并广播自身对应的待中转的数据包;第二应答包接收模块,用于接收下一跳节点所反馈的应答包,所述应答包携带有 相应下一跳节点所接收到的数据包的标识以及相应下一跳节点到目的节点ETT值;第二中继信息确定模块,用于根据所述应答包中数据包的标识以及相应下一跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每一待中转的数据包相对应的一中继节点;第二任务分配包发送模块,用于向每一中继节点发送相应的任务分配包,所述任务分配包中携带有所述中继节点所需中转的数据包的标识。与现有技术相比,本发明实施例所提供的方案中,中间节点本时隙接收到上一跳节点所广播的数据包后,当判断得出自身到目的节点的ETT值不大于上一跳节点到目的节点的ETT值时,向上一跳节点反馈应答包;而上一跳节点则根据下一跳节点所反馈的应答包,确定出待中转的数据包以及每一待中转的数据包对应的中继节点,进而向相应的中继节点发送任务分配包,指示该中继节点进行相应数据包的转发。可见,通过符合特定条件的中间节点反馈数据包且每一待中转的数据包对应一中继节点的方式,可以解决现有机会路由所带来的冗余传输问题,进而提高无线Mesh网络的传输性能。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本发明实施例所提供的一种无线Mesh网络机会路由方法的第一种流程图;图2为本发明实施例所提供的一种无线Mesh网络机会路由方法的第二种流程图;图3为本发明实施例所提供的一种无线Mesh网络机会路由方法的第三种流程图;图4为无线Mesh网络中各个节点对应ETT值的计算结果图;图5为无线Mesh网络中各节点接收数据包情况的示意图;图6为本发明实施例所提供的一种路由器的第一种结构示意图;图7为本发明实施例所提供的一种路由器的第二种结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了解决现有机会路由所带来的冗余传输问题,进而提高无线Mesh网络的传输性能,本发明实施例提供了一种无线Mesh网络机会路由方法及路由器。下面首先对本发明实施例所提供的一种无线Mesh网络机会路由方法进行介绍。需要说明的是,本发明实施例所提供的无线Mesh网络机会路由方法中,预先为源节点到目的节点的整个数据传输过程划分第一数量的时隙,且每一时隙完成第 二数量的数据包的传输。其中,该第一数量和第二数量可以根据实际应用场景进行设定,在此不作限定。为了描述清楚,下面以某一时隙中源节点向目的节点发送数据包的过程为例,对本发明实施例所提供无线Mesh网络机会路由方法进行介绍。从源节点的角度,如图I所示,一种无线Mesh网络机会路由方法,可以包括S101,源节点广播本时隙第二数量的数据包;源节点通过广播方式,连续发送本时隙对应的第二数量的数据包,而作为下一跳节点的中间节点则有机会接收到一个或多个源节点所广播的数据包。其中,源节点所广播的每一数据包携带有源节点到目的节点的ETT值,所述ETT为耗时最长的潜在链路的传输时间。由于在多数据流网络中,同一中继节点(即转发上一跳节点发送数据包的中间节点)可能会同时收到多个节点发送的数据包,即存在多条数据流;而且在相对较长时间的数据传输中,中继节点也是相互的,例如,在本次传输中B为A的中继节点,那么在下次传输中可能A为B的中继节点。因此,为了激励节点间的这种相互协作转发,在本发明的实施例中,机会路由技术将信用作为中继节点的收益,并将节点的广播包被转发的优先级与节点的信用相关联,这样在链路状态一定的情况下,节点的自身信用越高,其广播包被转发的优先级也越高。假设每个节点都期望自己的广播包被优先转发,这样就可以采用博弈理论建模为每个节点追求自身的最高信用。其中,在以信用作为中继节点收益的情况下,ETT值的计算方式如下ETT=耗时最长的潜在链路的传输时间;每条潜在链路的传输时间=该潜在链路配的期望传输数据量/该潜在链路对发包节点的分配带宽;每条潜在链路的期望传输数据量=ETX*S*该潜在链路的传输比例;其中,ETX为期望传输次数,且ETX=I/ (I-P), P为所有潜在链路的总丢包率,S为数据包大小。需要说明的是,在计算传输单位数据量的期望时间时s=l。对于每条潜在链路的传输比例而言每条潜在链路都对应着一个下一跳节点,将所有潜在链路的下一跳节点按其到目的节点的ETT值排序,Q为所有下一跳节点的ETT值均大于该潜在链路数据包均丢失,而该潜在链路成功收到数据包且能够将其成功转发至目的节点的概率,那么可以得到每条链路的传输比例=Q/ (I-P)0
对于一潜在链路对发包节点的分配带宽而言初始化所有节点的信用值为1,当节点作为中继成功为其他节点转发一次数据包时,该节点的信用值加1,当前传输的信用值可以由历史传输数据得到;假设同时向某一中间节点发包的节点的总信用值为M,其中的一个发包节点的信用值为N,那么该中间节点所对应的潜在链路分配给该发包节点的带宽可以计算如下该潜在链路对发包节点的分配带宽=N*B1/M,其中,BI为链路带宽。综上,ETT的计算公式可以如下
i ETX X 5 X O IETT = max s-卜
I(i-P)xB J 其中,{、— ;二为当前的节点对应的一潜在链路的传输时间,ETX为期望传输
次数,且ETX=I/ (1-P),其中,P为当前的节点对应所有潜在链路的总丢包率,S为数据包大小,Q为所有下一跳节点的ETT值均大于当前潜在链路数据包均丢失,而当前潜在链路成功收到数据包且能够将其成功转发至目的节点的概率,B为当前的节点对应潜在链路分配给上一跳节点的链路带宽。如图4所示的包含5个节点(A、B、C、D、E)的网络中,A是源节点,E是目的节点,所有链路的链路带宽BI均为5,传输每一数据包所需ETT的计算方法如下目的节点E的ETT为O ;节点D 的 ETT=I/{(1-15%) *5} =0. 24 ;对于C而言假设当前同时给节点D发包的节点有3个,且3个节点的总信用为10,节点C的信用为6,因此C到E的潜在路径C-E的分配带宽为5,而C-D-E的分配带宽仅为5*6/10=3 ;由于丢包方式包括(I )C-D丢包且C-E丢包,(2 )C_E丢包、C-D未丢包但D-E丢包,因此,节点C对应的两条潜在链路的总丢包率为P=O. 3*0. 7+0. 3*0. 3*0. 15=0. 2235,因此,ΕΤΧ=1/0. 7765=1. 29,并且通过概率论算法C-E对应的传输概率为O. 7,而C-D-E对应的传输概率为 O. 0765,因此,ETT=Max{I. 29*0. 7/ (O. 7765*5),I. 29*0. 0765/ (O. 7765*3)} =0. 23。相应的,节点A、B的计算方法与C相同,采用上述公式,最终可以得到所有节点的ETT值如图4所示。S102,接收下一跳节点所反馈的应答包;其中,该应答包携带有相应下一跳节点所接收到的数据包的标识以及相应下一跳节点到目的节点ETT值。在源节点广播出第二数量的数据包后,接收到源节点本时隙所广播数据包的下一跳节点,则会根据自身到目的节点的ETT值,判断是否需要向源节点反馈一应答包,即自身到目的节点的ETT值是否不大于源节点到目的节点的ETT值,并在判断结果表明其需要反馈应答包时,向源节点反馈携带有自身所接收到的数据包的标识以及自身到目的节点的ETT值。而源节点则会接收下一跳节点所反馈的应答包。需要说明的是,由于网络环境的影响,在数据包的传输过程中很可能会发生丢包现象,因此,为了保证数据传输效率以及准确性,源节点在等待第一时间后,会根据第一时间段内所接收到的下一跳节点反馈的应答包,判断是否接收到所广播的所有数据包相关的应答包,即判断是否发生丢包现象,并在判断出发生丢包现象时,继续广播所丢失的数据包,并在接收到关于本时隙所有数据包的应答包时进行后续的处理。其中,第一时间可以根据实际场景中网络环境而设定,在此不作限定。S103,根据所述应答包中数据包的标识以及相应下一跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每一待中转的数据包相对应的一中继节点;其中,根据所述应答包中数据包的标识以及相应下一跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每一待中转的数据包相对应的一中继节点,可以包括将本时隙第二数量的数据包中相应应答包表明下一跳节点不为目的节点的数据包作为待中转的数据包;根据所述待中转的数据包所对应的应答包,逐一判断每一待中转的数据包是否被唯一的下一跳节点所接收到,如果是,将所述唯一的下一跳节点作为所述待中转的数据包 对应的中继节点;否则,将相应的至少两个下一跳节点中ETT值最小的下一跳节点作为所述待中转的数据包对应的中继节点。例如如图5所示,源节点A向目的节点E发送数据包的过程中,本时隙广播的数据包为P1、P2、P3、P4、P5、P6 ;其中,节点B到目的节点的ETT为O. 48,其接收到的数据包为P1、P2、P4、P5 ;节点C到目的节点的ETT为O. 25,其接收到的数据包为P1、P2、P3、P5、P6 ;节点D到目的节点的ETT为O. 24,其未接收到数据包;节点E到自身的ETT为0,其接收到数据包为P5 ;由于节点B、节点C及节点E接收到数据包且各节点到目的节点的ETT均小于源节点到目的节点的ETT值,因此,节点B、节点C及节点E需要向源节点A反馈携带有所接收到数据包的标识及自身到目的节点的ETT值;通过利用上述方式,源节点接收到应答包后,将未被节点E接收到的数据包(Pl、P2、P3、P4、P6)作为待中转的数据包,进而将仅仅被节点B接收到的数据包P4对应的中继节点确定为节点B,将仅仅被节点C接收到数据包P3、P6对应的中继节点确定为节点C,将同时被节点B和C接收到数据包P1、P2对应的中继节点确定为节点C ;综上,节点B作为中继节点需要转发的数据包为{P4},节点C作为中继节点需要转发的数据包为{P1、P2、P3、P6}。在本发明的另一实施例中,根据所述应答包中数据包的标识以及相应下一跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每一待中转的数据包相对应的一中继节点,可以包括将本时隙第二数量的数据包中相应应答包表明下一跳节点不为目的节点的数据包作为待中转的数据包;确定每一待中转的数据包所对应的下一跳节点;确定待中转的数据包中被唯一下一跳节点所接收到数据包对应的中继节点为相应唯一的下一跳节点;分别确定本时隙剩余的待中转的数据包对应的中继节点为能够使本时隙总的ETT值最小的分配方式中相应的下一跳节点。例如如图5所示,源节点A向目的节点E发送数据包的过程中,本时隙广播的数据包为P1、P2、P3、P4、P5、P6 ;其中,节点B到目的节点的ETT为O. 48,其接收到的数据包为P1、P2、P4、P5 ;节点C到目的节点的ETT为O. 25,其接收到的数据包为P1、P2、P3、P5、P6 ;节点D到目的节点的ETT为O. 24,其未接收到数据包;节点E到自身的ETT为O,其接收到数据包为P5 ;由于节点B、节点C及节点E接收到数据包且各节点到目的节点的ETT均小于源节点到目的节点的ETT值,因此,节点B、节点C及节点E需要向源节点A反馈携带有所接收到数据包的标识及自身到目的节点的ETT值;通过利用上述方式,源节点接收到应答包后,将未被节点E接收到的数据包(PU P2、P3、P4、P6)作为待中转的数据包,进而将仅仅被节点B接收到的数据包P4对应的中继节点确定为节点B,将仅仅被节点C接收到数据包P3、P6对应的中继节点确定为节点C ;而由于Pl和P2同时被节点B、节点C接收到,因此,当前存在的数据包对应的中继节点分配方式可以有(I)节点B作为中继节点中转数据包{P4},其对应的ETT为O. 45,节点C作为中继节点中转数据包{P1、P2、P3、P6},其对应的ETT为O. 23*4 ;(2)节点B作为中继节点中转数据包{P1、P4},其对应的ETT为O. 45*2,节点C作为中继节点中转数据包{P2、P3、P6},其对应的ETT为O. 23*3 ;(3)节点B作为中继节点中转数据包{P2、P4},其对应的ETT为O. 45*2,节点C作 为中继节点中转数据包{P1、P3、P6},其对应的ETT为O. 23*3 ;(4)节点B作为中继节点中转数据包{P1、P2、P4},其对应的ETT为O. 45*3,节点C作为中继节点中转数据包{P3、P6},其对应的ETT为O. 23*2 ;综上可知,方式(I)对应的ETT为O. 92、方式(2)对应的ETT为O. 9、方式(3)对应的ETT为O. 9、方式(4)对应的ETT为I. 35,可见,整个传输过程的总的ETT最小的方式为
(2)和(3);综上,节点B作为中继节点需要转发的数据包为{P1、P4},节点C作为中继节点需要转发的数据包为{P2、P3、P6};或者,节点B作为中继节点需要转发的数据包为{P2、P4},节点C作为中继节点需要转发的数据包为{P1、P3、P6}。S104,向每一中继节点发送相应的任务分配包,所述任务分配包中携带有所述中继节点所需中转的数据包的标识;在为待中转的数据包分配中继节点后,则可以为每一中继节点构建一任务分配包,并将所构建的任务分配包发送至相应的中继节点;其中,所述任务分配包中携带有相应中继节点所需中转的数据包的标识。可以理解的是,当中继节点接收到任务分配包后,则对自身所需中转的数据包进行转发,并为待中转的数据包选择下一跳一节点作为中继节点进行转发,直至目的节点接收到本时隙的第二数量的数据包。S105,当接收到目的节点发送ACK包时,结束本时隙的源节点到目的节点的数据包传输过程。当接收到目的节点发送的ACK包时,表明本时隙所发送的第二数量的数据包均发送至目的节点了,此时,结束本时隙的源节点到目的节点的数据包传输过程即可。可以理解的是,上述过程为某一时隙中源节点到目的节点的数据传输过程。在实际应用中,当待传输的数据包较少时,仅仅需要划分一个时隙,即一次将所有的数据包进行传输即可,在接收到目的节点发送的ACK包后,源节点到目的节点的整个数据传输过程完毕;而当待传输的数据包较多时,需要划分出至少两个时隙,每一时隙包含特定数量的数据包;而在当前时隙接收到目的节点发送的ACK后,还需进行相应的时隙判断,以完成源节点到目的节点的整个数据传输过程。因此,在本发明的另一实施例中,在接收到目的节点发送的ACK包,结束本次时隙的数据传输过程后,所述方法还可以包括判断本时隙是否为最后一时隙;当本时隙不为最后一时隙时,进行下一时隙源节点到目的节点的数据包的传输。其中,当本时隙为最后一时隙时,则源节点到目的节点的整个数据传输过程结束。从中间节点的角度,如图2所示,一种无线Mesh网络机会路由方法,可以包括S201,当前的中间节点接收本时隙中上一跳节点所广播的数据包;其中,该数据包携带有上一跳节点到目的节点的ETT值,所述ETT为传输单位数据量的期望时间。 需要说明的是,在当前的中间节点为源节点的下一跳节点时,该当前的中间节点的上一跳节点为源节点,而在当前的中间节点不为源节点的下一跳节点时,该当前的中间节点的上一跳节点为源节点到目的节点之间的中间节点。S202,计算当前的中间节点到目的节点的ETT值;计算当前的中间节点到目的节点的ETT值的方式上述描述中已经给出,在此不再赘述。S203,判断所述当前的中间节点到目的节点的ETT值是否大于上一跳节点到目的节点的ETT值,如果是,则执行步骤S210 ;否则,执行步骤S204 ;在当前的中间节点接收到本时隙中上一跳节点所广播的数据包后,则可以计算自身到目的节点的ETT值,并根据自身到目的节点的ETT值,以及接收到的数据包所携带的上一跳节点到目的节点的ETT值,确定出当前的中间节点是否需要向上一跳节点反馈应答包。当判断出该当前的中间节点到目的节点的ETT值大于上一跳节点到目的节点的ETT值时,表明通过该当前中间节点转发数据包所带来的传输时间较长,因此,需要执行步骤S210 ;而当判断出该当前的中间节点到目的节点的ETT值不大于上一跳节点到目的节点的ETT值时,表明可以通过该当前的中间节点进行数据包转发,此时执行步骤S204即可S204,向相应的上一跳节点反馈应答包;其中,所述应答包携带有当前的中间节点所接收到的数据包的标识以及其到目的节点ETT值。S205,判断第二时间段内是否接收到上一跳节点发送的任务分配包,如果是,执行步骤S206 ;否则,执行步骤S210 ;在当前的中间节点向上一跳节点反馈应答包后,上一跳节点会为自身所对应的数据包中待中转的数据包分配一下一跳节点作为中继节点,并为所确定的中继节点发送任务分配包;而该当前的中间节点会等待第二时间,如果在第二时间段内接收到上一跳节点发送的任务分配包,表明该当前的中间节点将作为上一跳节点所确定的中继节点转发任务分配包中所表明的数据包,此时,执行步骤S206即可;而如果在第二时间段内未接收到上一跳节点发送的任务分配包,表明该当前的中间节点不作为上一跳节点所确定的中继节点转发数据包,此时执行步骤S210即可。需要说明的是,该当前的中间节点的上一跳节点为源节点时,该上一跳中间节点确定待中转的数据包以及为待中转的数据包分配中继节点的方式为步骤S103所示;而当该当前的中间节点的上一跳节点为源节点到目的节点之间的中间节点时,该上一跳中间节点确定待中转的数据包以及为待中转的数据包分配中继节点的方式与上述步骤S103相似,在此不再赘述;并且,第二时间根据实际应用场景的具体的环境而设定,在此不作限定。S206,将自身到目的节点的ETT值加入到所需中转的数据包中并广播自身对应的待中转的数据包;S207,接收下一跳节点所反馈的应答包;其中,所述应答包携带有相应下一跳节点所接收到的数据包的标识以及相应下一跳节点到目的节点ETT值。需要说明的是,由于网络环境的影响,在数据包的传输过程中很可能会发生丢包现象,因此,为了保证数据传输效率以及准确性,该当前的中间节点在等待第三时间后,会根据第三时间段所接收到的下一跳节点反馈的应答包,判断是否接收到所广播的所有数据包相关的应答包,即判断是否发生丢包现象,并在判断出发生丢包现象时,继续广播所丢失的数据包;并在接收到关于本时隙自身所广播的所有数据包的应答包时,执行确定本时隙待中转的数据包以及每一待中转的数据包相对应的一中继节点的步骤。S208,根据所述应答包中数据包的标识以及相应下一跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每一待中转的数据包相对应的一中继节点;S209,向每一中继节点发送相应的任务分配包;其中,所述任务分配包中携带有所述中继节点所需中转的数据包的标识。上述步骤S207-步骤S209为该当前的中间节点为待中转的数据包分配中继节点的过程,其与步骤S102-步骤S104所给出的源节点为待中转的数据包分配中继节点的过程相似,在此不再赘述。S210,丢弃本时隙所接收到的数据包。当该当前的中间节点到目的节点的ETT值大于上一跳节点到目的节点的ETT值时,表明该当前的中间节点不可能作为中继节点转发数据包,此时,则可以丢弃本时隙所接收到的数据包;而当该当前的中间节点在向上一跳节点反馈应答包后,如果在第二时间段内未接收到上一跳节点发送的任务分配包,表明上一跳节点未选择该当前的中间节点作为中继节点,此时,也可以丢弃本时隙所接收到的数据包;同时,当所接收到的任务分配包表示该当前的中间节点仅仅可以转发所接收到数据包中的一部分时,也可以丢弃本时隙所接收到的无需转发的数据包。从目的节点的角度,如图3所示,一种无线Mesh网络机会路由方法,可以包括S301,目的节点接收源节点或中间节点发送的数据包;在源节点到目的节点的数据传输过程中,目的节点可以作为源节点的下一跳节点直接接收到一个或多个数据包,也可以作为中间节点的下一跳节点间接接收数据包。S302,判断是否接收到本时隙源节点需要发送的所有数据包,如果是,则执行步骤S303 ;否则,继续等待;其中,每个数据包的包头中携带有本时隙所需传输的数据包的个数以及该数据包的序号;因此,目的节点可以根据所接收到数据包判断出是否接收到了本时隙需要传输的所有数据包;同时,由于源节点或中继节点根据下一跳节点反馈的应答包可以判断出是否发生丢包现象,并在发生丢包现象的情况下,重发丢失的数据包,因此,目的节点最终会接收到源节点本时隙所发送的所有数据包。当目的节点接收到源节点或中间节点发送的数据包后,判断是否接收到本时隙所有的数据包,根据不同的判断结果进行不同的处理。当判断出接收到本时隙所有数据包后,可以执行步骤S303,进行向源节点发送ACK包的步骤;而当判断出未接收到本时隙发送的数据包后,可以等待接收源节点或中间节点发送的数据包。S303,向源节点发送ACK包,以通知源节点结束本时隙的数据传输。与现有技术相比,本发明实施例所提供的方案中,中间节点本时隙接收到上一跳节点所广播的数据包后,当判断得出自身到目的节点的ETT值不大于上一跳节点到目的节点的ETT值时,向上一跳节点反馈应答包;而上一跳节点则根据下一跳节点所反馈的应答包,确定出待中转的数据包以及每一待中转的数据包对应的中继节点,进而向相应的中继节点发送任务分配包,指示该中继节点进行相应数据包的转发。可见,通过符合特定条件的中间节点反馈数据包且每一待中转的数据包对应一中继节点的方式,可以解决现有机会路由所带来的冗余传输问题,进而提高无线Mesh网络的传输性能。 通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。相应于上面的方法实施例,本发明实施例还提供一种路由器,适用于无线Mesh网络中,所述路由器作为源节点,如图6所示,可以包括第一数据包广播模块610,用于广播本时隙待发送的数据包,所述数据包携带有其自身到目的节点的ETT值,所述ETT为耗时最长的潜在链路的传输时间;第一应答包接收模块620,用于接收下一跳节点所反馈的应答包,所述应答包携带有相应下一跳节点所接收到的数据包的标识以及相应下一跳节点到目的节点ETT值;第一中继信息确定模块630,用于根据所述应答包中数据包的标识以及相应下一跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每一待中转的数据包相对应的一中继节点;第一任务分配包发送模块640,用于向每一中继节点发送相应的任务分配包,所述任务分配包中携带有所述中继节点所需中转的数据包的标识;ACK包处理模块650,用于当接收到目的节点发送ACK包时,结束本时隙的源节点到目的节点的数据包传输过程。更进一步的,所述路由器还可以包括第一判断模块,用于判断本时隙是否为最后一时隙;当本时隙不为最后一时隙时,触发第一数据包广播模块610。更进一步的,所述路由器还可以包括第二判断模块,用于当第一时间段内所接收到的下一跳节点反馈的应答包表明数据包丢失时,触发第一数据包广播模块610继续广播所丢失的数据包;
并在接收到关于本时隙所有数据包的应答包时,触发第一中继信息确定模块630。其中,第一中继信息确定模块630,可以具体用于将本时隙第二数量的数据包中相应应答包表明下一跳节点不为目的节点的数据包作为待中转的数据包;根据所述待中转的数据包所对应的应答包,逐一判断每一待中转的数据包是否被唯一的下一跳节点所接收到,如果是,将所述唯一的下一跳节点作为所述待中转的数据包对应的中继节点;否则,将相应的至少两个下一跳节点中ETT值最小的下一跳节点作为所述待中转的数据包对应的中继节点。其中,第一中继信息确定模块630,可以具体用于将本时隙第二数量的数据包中相应应答包表明下一跳节点不为目的节点的数据包作为待中转的数据包; 确定每一待中转的数据包所对应的下一跳节点;确定待中转的数据包中被唯一下一跳节点所接收到数据包对应的中继节点为相应唯一的下一跳节点;分别确定本时隙剩余的待中转的数据包对应的中继节点为能够使本时隙总的ETT值最小的分配方式中相应的下一跳节点。本发明实施例还提供一种路由器,适用于无线Mesh网络中,所述路由器作为中间节点,如图7所示,可以包括数据包接收模块710,用于接收本时隙中上一跳节点所广播的数据包,所述数据包携带有上一跳节点到目的节点的ETT值,所述ETT为耗时最长的潜在链路的传输时间;ETT计算模块720,用于计算当前的中间节点到目的节点的ETT值;应答包反馈模块730,用于当所述当前的中间节点到目的节点的ETT值不大于上一跳节点到目的节点的ETT值时,向相应的上一跳节点反馈应答包,所述应答包携带有当前的中间节点所接收到的数据包的标识以及其到目的节点ETT值;任务分配包处理模块740,用于判断第二时间段内是否接收到上一跳节点发送的任务分配包,如果接收到所述任务分配包,则将自身到目的节点的ETT值加入到所需中转的数据包中并广播自身对应的待中转的数据包;第二应答包接收模块750,用于接收下一跳节点所反馈的应答包,所述应答包携带有相应下一跳节点所接收到的数据包的标识以及相应下一跳节点到目的节点ETT值;第二中继信息确定模块760,用于根据所述应答包中数据包的标识以及相应下一跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每一待中转的数据包相对应的一中继节点;第二任务分配包发送模块770,用于向每一中继节点发送相应的任务分配包,所述任务分配包中携带有所述中继节点所需中转的数据包的标识。更进一步的,所述路由器还可以包括第三判断模块,用于当第三时间段内所接收到的下一跳节点反馈的应答包表明数据包丢失时,触发任务分配包处理模块740继续广播所丢失的数据包;并在接收到关于本时隙自身所广播的所有数据包的应答包时,触发第二中继信息确定模块760。
与现有技术相比,本发明实施例所提供的方案中,中间节点本时隙接收到上一跳节点所广播的数据包后,当判断得出自身到目的节点的ETT值不大于上一跳节点到目的节点的ETT值时,向上一跳节点反馈应答包;而上一跳节点则根据下一跳节点所反馈的应答包,确定出待中转的数据包以及每一待中转的数据包对应的中继节点,进而向相应的中继节点发送任务分配包,指示该中继节点进行相应数据包的转发。可见,通过符合特定条件的中间节点反馈数据包且每一待中转的数据包对应一中继节点的方式,可以解决现有机会路由所带来的冗余传输问题,进而提高无线Mesh网络的传输性能。对于装置或系统实施例而言,由于其基本相应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置或系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,在没 有超过本申请的精神和范围内,可以通过其他的方式实现。当前的实施例只是一种示范性的例子,不应该作为限制,所给出的具体内容不应该限制本申请的目的。例如,所述单元或子单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或多个子单元结合一起。另外,多个单元可以或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所描述系统,装置和方法以及不同实施例的示意图,在不超出本申请的范围内,可以与其它系统,模块,技术或方法结合或集成。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。以上所述仅是本发明的具体实施方式
,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种无线Mesh网络机会路由方法,其特征在于,预先为源节点到目的节点的数据传输过程划分第一数量的时隙,且每ー时隙完成第二数量的数据包的传输;所述方法包括 源节点广播本时隙第二数量的数据包,所述数据包携帯有其自身到目的节点的ETT值,所述ETT为耗时最长的潜在链路的传输时间; 接收下ー跳节点所反馈的应答包,所述应答包携帯有相应下ー跳节点所接收到的数据包的标识以及相应下ー跳节点到目的节点ETT值; 根据所述应答包中数据包的标识以及相应下ー跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每ー待中转的数据包相对应的一中继节点; 向每一中继节点发送相应的任务分配包,所述任务分配包中携帯有所述中继节点所需中转的数据包的标识; 当接收到目的节点发送的ACK包吋,结束本时隙的源节点到目的节点的数据包传输过程。
2.根据权利要求I所述的方法,其特征在于,所述方法还包括 判断本时隙是否为最后ー时隙; 当本时隙不为最后一时隙时,进行下一时隙源节点到目的节点的数据包的传输。
3.根据权利要求I或2所述的方法,其特征在于,所述方法还包括 当第一时间段内所接收到的下一跳节点反馈的应答包表明数据包丢失时,继续广播所丢失的数据包; 并在接收到关于本时隙所有数据包的应答包时,执行确定本时隙待中转的数据包以及每ー待中转的数据包相对应的一中继节点的步骤。
4.根据权利要求I所述的方法,其特征在于,根据所述应答包中数据包的标识以及相应下ー跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每ー待中转的数据包相对应的一中继节点,包括 将本时隙第二数量的数据包中相应应答包表明下ー跳节点不为目的节点的数据包作为待中转的数据包; 根据所述待中转的数据包所对应的应答包,逐一判断每ー待中转的数据包是否被唯一的下一跳节点所接收到,如果是,将所述唯一的下一跳节点作为所述待中转的数据包对应的中继节点;否则,将相应的至少两个下一跳节点中ETT值最小的下一跳节点作为所述待中转的数据包对应的中继节点。
5.根据权利要求I所述的方法,其特征在于,根据所述应答包中数据包的标识以及相应下ー跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每ー待中转的数据包相对应的一中继节点,包括 将本时隙第二数量的数据包中相应应答包表明下ー跳节点不为目的节点的数据包作为待中转的数据包; 确定每一待中转的数据包所对应的下一跳节点; 确定待中转的数据包中被唯一下一跳节点所接收到数据包对应的中继节点为相应唯一的下一跳节点; 分别确定本时隙剩余的待中转的数据包对应的中继节点为能够使本时隙总的ETT值最小的分配方式中相应的下ー跳节点。
6.根据权利要求I所述的方法,其特征在干,ETT的计算公式为
7.一种无线Mesh网络机会路由方法,其特征在于,预先为源节点到目的节点的数据传输过程划分第一数量的时隙,且每ー时隙完成第二数量的数据包的传输;所述方法包括 当前的中间节点接收本时隙中上一跳节点所广播的数据包,所述数据包携帯有上一跳节点到目的节点的ETT值,所述ETT为耗时最长的潜在链路的传输时间; 计算当前的中间节点到目的节点的ETT值; 当所述当前的中间节点到目的节点的ETT值不大于上ー跳节点到目的节点的ETT值时,向相应的上一跳节点反馈应答包,所述应答包携帯有当前的中间节点所接收到的数据包的标识以及其到目的节点ETT值; 判断第二时间段内是否接收到上一跳节点发送的任务分配包,如果接收到所述任务分配包,则将自身到目的节点的ETT值加入到所需中转的数据包中并广播自身对应的待中转的数据包; 接收下ー跳节点所反馈的应答包,所述应答包携帯有相应下ー跳节点所接收到的数据包的标识以及相应下ー跳节点到目的节点ETT值; 根据所述应答包中数据包的标识以及相应下ー跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每ー待中转的数据包相对应的一中继节点; 向每一中继节点发送相应的任务分配包,所述任务分配包中携帯有所述中继节点所需中转的数据包的标识。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括 当第三时间段内所接收到的下一跳节点反馈的应答包表明数据包丢失时,继续广播所丢失的数据包; 并在接收到关于本时隙自身所广播的所有数据包的应答包吋,执行确定本时隙待中转的数据包以及每ー待中转的数据包相对应的一中继节点的步骤。
9.一种路由器,其特征在于,适用于无线Mesh网络中,所述路由器作为源节点,包括 第一数据包广播模块,用于广播本时隙待发送的数据包,所述数据包携帯有其自身到目的节点的ETT值,所述ETT为耗时最长的潜在链路的传输时间; 第一应答包接收模块,用于接收下一跳节点所反馈的应答包,所述应答包携帯有相应下一跳节点所接收到的数据包的标识以及相应下ー跳节点到目的节点ETT值; 第一中继信息确定模块,用于根据所述应答包中数据包的标识以及相应下ー跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每ー待中转的数据包相对应的一中继节点; 第一任务分配包发送模块,用于向姆一中继节点发送相应的任务分配包,所述任务分配包中携带有所述中继节点所需中转的数据包的标识;ACK包处理模块,用于当接收到目的节点发送ACK包吋,结束本时隙的源节点到目的节点的数据包传输过程。
10. 一种路由器,其特征在于,适用于无线Mesh网络中,所述路由器作为中间节点,包括 数据包接收模块,用于接收本时隙中上一跳节点所广播的数据包,所述数据包携帯有上一跳节点到目的节点的ETT值,所述ETT为耗时最长的潜在链路的传输时间; ETT计算模块,用于计算当前的中间节点到目的节点的ETT值; 应答包反馈模块,用于当所述当前的中间节点到目的节点的ETT值不大于上ー跳节点到目的节点的ETT值时,向相应的上一跳节点反馈应答包,所述应答包携帯有当前的中间节点所接收到的数据包的标识以及其到目的节点ETT值; 任务分配包处理模块,用于判断第二时间段内是否接收到上一跳节点发送的任务分配包,如果接收到所述任务分配包,则将自身到目的节点的ETT值加入到所需中转的数据包中并广播自身对应的待中转的数据包; 第二应答包接收模块,用于接收下一跳节点所反馈的应答包,所述应答包携帯有相应下一跳节点所接收到的数据包的标识以及相应下ー跳节点到目的节点ETT值; 第二中继信息确定模块,用于根据所述应答包中数据包的标识以及相应下ー跳节点到目的节点的ETT值,确定本时隙待中转的数据包以及每ー待中转的数据包相对应的一中继节点; 第二任务分配包发送模块,用于向每一中继节点发送相应的任务分配包,所述任务分配包中携带有所述中继节点所需中转的数据包的标识。
全文摘要
本发明公开了一种无线Mesh网络机会路由方法及路由器。所述方法包括源节点广播本时隙第二数量的数据包,该数据包携带有其自身到目的节点的ETT值;接收下一跳节点所反馈的应答包,该应答包携带有相应下一跳节点所接收到的数据包的标识以及相应下一跳节点到目的节点ETT值;确定本时隙待中转的数据包以及每一待中转的数据包相对应的一中继节点;向每一中继节点发送相应的任务分配包,该任务分配包中携带有所述中继节点所需中转的数据包的标识;当接收到目的节点发送的ACK包时,结束本时隙的源节点到目的节点的数据包传输过程。通过利用本方案,可以解决现有机会路由所带来的冗余传输问题,进而提高无线Mesh网络的传输性能。
文档编号H04W40/04GK102821438SQ201210338379
公开日2012年12月12日 申请日期2012年9月13日 优先权日2012年9月13日
发明者孙玉娥, 黄河, 郑建颖, 鞠华, 汪一鸣 申请人:苏州大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1