一种无线网状MESH网络的路由方法和装置与流程

文档序号:12732433阅读:242来源:国知局
一种无线网状MESH网络的路由方法和装置与流程

本发明实施例涉及通信领域,尤其涉及一种无线网状(MESH)网络的路由方法和装置。



背景技术:

无线mesh网络,由路由器(mesh routers)和客户端(mesh clients)组成,其中mesh routers构成骨干网络,并和有线的internet网相连接,负责为mesh clients提供多跳的无线internet连接。无线Mesh网络也称为“多跳(multi-hop)”网络,它是一种与传统无线网络完全不同的新型无线网络技术。

在无线Mesh网络中,采用网状Mesh拓扑结构,是一种多点到多点网络拓扑结构,在这种Mesh网络结构中,各网络节点通过相邻其他网络节点,以无线多跳方式相连。

无线Mesh网络采用网状Mesh拓扑结构,任何无线设备节点都可以同时作为接入点(AP)和路由器,网络中的每个无线设备节点都可以发送和接收信号,每个无线设备节点都可以与一个或者多个对等无线设备节点进行直接通信。如果最近的AP由于流量过大而导致拥塞,那么数据可以自动重新路由到一个通信流量较小的邻近节点进行传输。依此类推,数据包还可以根据网络的情况,继续路由到与之最近的下一个节点进行传输,直到到达最终目的地为止。这样的访问方式就是多跳访问。

与传统的交换式网络相比,无线Mesh网络去掉了节点之间的布线需求,但仍具有分布式网络所提供的冗余机制和重新路由功能。

根据802.11s的定义,WIFI MESH网络采用的是混合无线Mesh路由协议(HWMP,Hybrid Wireless Mesh Protocol),HWMP的混合式路由原理:在MESH网络配置有Portal节点,而且根Portal广播参数AN=1的通告,并且在注册模式下才使用混合路由。当一个Mesh节点S向要给节点D发送数据,但是路由表中却没有到节点D的路径时,节点S可立即向根Portal发送数据帧,而不必发起一个到节点D的路径查找。因为根Portal在注册模式下知道所有的Mesh节点,所以可以识别出节点D在Mesh网络中,则转发一个带有标记的数据帧给目的节点,这样节点S和节点D都在Mesh网络中。这就为节点S触发了一个到节点D的路由查找。再根据之后转发的数据,就设置了一个节点S和节点D之间的最佳路径。和单一的查找过程相比,混合路由条件下,网络中Mesh节点的通信没有潜在的第一帧数据。在最佳路径建立期间,数据可以按照已知路径(通常不是最优的)沿着树结构达到根Portal。这样也会减少初始等待路径学习的过程,可减少在初始建立路由时数据的延迟。

HWMP协议实现通过路径请求(PREQ,Path Request)消息、路径响应(PREP,Path Reply)消息、路径错误(PERR,Path Error)消息、路径响应确定(PREP ACK)消息和根宣告RANN(Root Announcement)消息。PREQ消息用于路由请求,PREP消息用于对路由请求消息的应答,PERR消息用于链路发生错误时进行的应答或维护,以及RANN消息用于对自己根节点身份的消息的广播。

路由过程中关键的两个环节是:空中传播时间链路判据空时链路度量值(Airtime Link Metric)的测量和选择。

如图1所示,为现有技术中一种Mesh网络的结构示意图,所述Mesh网络包括多个节点:节点A、B、C、D、E、F、G、H、I、J和K,假设节点A想寻找到节点H的路径,节点A就会发送一个PREQ消息的广播数据帧,而每个收到PREQ消息的节点都会转发这个PREQ消息并更新相应的路由表项。而最终的H节点收到这个PREQ消息之后,会选择一个最优路径,然后回应一个PREP消息。

度量值(Metric)是链路选择的决定性参数,每个PREQ在被中间节点转发时,中间节点都会更新PERQ消息中的metric字段,加上从上一跳节点到当前节点link的metric值,然后再转发给下一个节点。而PREQ的目的节点很多份被不同节点不同路径传播过来的PREQ消息,而最佳路径的选择就是根据整个link的metric值来进行判断,当PREQ里有相同的或者更新的序号,而metric更优(更小)或最小的时候,目的节点就会选择这条路径作为更优路径并更新路由表项。

每条链路的空口metric主要表示一个8192bits的数据帧(data frame)在空口的传输时间,其计算公式为:

Ca是当前链路的空口airtime link metric值,O代表头开销,包含前导(preamble)和plcphead一起消耗的时长,Bt是固定值8192,r为传输速率,ef表示当前链路的误码率,最终的metric值是按照0.01TU单位的整数倍来衡量。metric值越小,代表当前mesh链路占用空口的时间短,效率更高,是一条更优的路径。

Linux内核在实现HWMP时,在以下两个事件触发下,更新本地的mesh路由表:收到被询问节点的回复报文或收到某个节点的询问报文,内核更新mesh路由表。例如,节点A发送了一个查询报文通过网络中的N个节点,到达目的节点B,节点B发送回复报文,经过N-1个节点,最后通过节点C,最终送达发送方节点A。当节点A收到回复报文时,会更新到目的节点B和C的路由。节点C直接发送了无线报文给节点A,所以节点C与节点A之间的链路质量是可以根据一些参数计算出来的,另外节点B回复的报文,在经过网络中的中间节点时,每个节点会更新相关信息,所以节点B与节点A的链路状况,可以根据报文中的内容得知。

HWMP协议的按需路由是基于RM-AODV(Radio metrice AODV)的协议,HWMP协议中的按需路由使用PREQ和PREP机制在两节点之间建立路由,节点间使用PREQ和PREP消息进行度量信息交互,并且在PREQ中采用序列号(sequence)来保证路由的时效性。

关于sequence的使用机制:

1、当设备发送路由询问报文时,先从本地的路由表中获取对应目的地的sequence值,如果不存在则取初始值0,然后将sequence值加1携带在报文中。

2、任何设备在更新理由表时都会将最新的sequence值,记录到路由表中。

3、如果sequence的值越大,表示与此对应的路由信息越新,在mesh网络中总是倾向于选择新的路由,以适应网络拓扑的变化和链路状况的抖动。

路由表一般包括如下字段:

目的mac:路由的目的地址

Metric:到达该目的路径衡量值,越大表示链路越差

Sequence:越大表示该路径信息越新

Next hop:到达目的mac的下一跳设备的mac地址

Flag:用以标识该条路由信息是否已超时,当该路由信息超时后,下次再向对应的目的mac发送数据时,需要通过询问报文,重新侦测路由路径。

以上策略在下面的场景中会存在问题,如图2所示,为现有技术中一种mesh网络结构示意图,所示mesh网络包括节点A、B和C。

节点A与C进行通信,节点A和B之间的链路质量为M1,节点B和C之间的链路质量为M2,节点A和C之间的链路质量为M3,M1+M2<M3,所以理想的状况是节点A和C通过节点B转发数据的效果比节点A和C直接转发要好。

但是,如果节点A和C都有对方的路由信息,并且已经超时,节点A需要向节点C发送数据,通过查询报文向整个网络询问,整个过程正常执行,并且成功更新到节点C的路由的下一跳为节点B。

因节点A-B-C之间网络繁忙(传输视频流),导致节点C上到节点A的路由信息比节点A上到节点C的路由先到达超时时间,节点C发送的查询报文节点C-A通路比节点C-B-A通路优先到达节点A,就会出现因为节点A都到节点C的查询报文中的sequence值比本地路由表中路由信息大(新),而用大metric的路径替换小metric的路径的问题。

如果节点A到C存在两条路由:

节点A-C:dst:macC,metric:500,next hop:macC,sequence:200

节点A-B-C:dst:macC,metric:200,next hop:macB,sequence:199

本地路由表中只会存在一条,在节点A收到查询报文或回复报文时,会生成一条,系统会根据上文描述的判断逻辑,决定丢弃新的信息,还是用新的信息替换现有的。

以上情况在吞吐量测实测中,一但出现,在每个路由表信息刷新周期,节点A到C的路由都会进行一次切换,即大部分时间节点A通过节点B向节点C发送数据,存在一个短暂的时间点节点A直接发送数据给节点C。在节点A向节点C发送实时视频时,会周期性出现卡顿。



技术实现要素:

本发明实施例提供一种无线网状MESH网络的路由方法和装置,可以降低实时性,解决因系统繁忙和网络突发因素带来的劣质路径替换优质路径的问题。

本发明的一方面提供一种无线网状MESH网络的路由方法,包括:

当前节点接收目的节点的报文;

所述当前节点根据所述目的节点的报文生成目的节点路由信息和目的节点路由信息的序列号sequence;

当所述当前节点判断所述生成的所述目的节点路由信息的sequence减去所述当前节点存储的目标节点路由信息的sequence等于1时,采用所述生成的所述目的节点路由信息和所述存储的目标节点路由信息之中Metric值较小的对应的路由信息为到所述目的节点的路由信息;

当所述当前节点判断所述生成的所述目的节点路由信息的sequence减去所述当前节点存储的目标节点路由信息的sequence大于等于2时,将所述存储的目标节点路由信息替换为所述生成的目的节点路由信息。

可选的,所述方法还包括:所述当前节点将确定采用的所述目的节点路由信息插入所述当前节点维护的路由表中。

可选的,所述目的节点的路由信息包括:目的节点的媒体接入控制MAC地址、链路质量、下一跳节点地址、标志位和存活时间。

可选的,所述根据目的节点报文生成的所述目的节点路由信息的metric值和所述存储的目标节点路由信息对应的metric值均采用如下计算公式计算:

Ca是当前链路的空口airtime link metric值,O代表头开销,包含前导(preamble)和plcphead一起消耗的时长,Bt是固定值8192,r为传输速率,ef表示当前链路的误码率,最终的metric值是按照0.01TU单位的整数倍来衡量。

可选的,所述方法还包括:如果Metric值较小的对应的路由信息为所述根据目的节点报文生成的目的节点路由信息,则将所述根据目的节点报文生成的目的节点路由信息替换所述存储的目标节点路由信息。

可选的,所述方法还包括:如果Metric值较小的对应的路由信息为所述当前节点存储的目标节点路由信息,则不更新所述存储的目标节点路由信息。

可选的,所述Metric越大,表示链路越差,所述sequence越大,表示时间上越新,离当前时间越近。

本发明的另一方面提供一种路由装置,包括:

接收器,用于接收目的节点的报文;

处理器,用于根据所述目的节点的报文生成目的节点路由信息和目的节点路由信息的序列号sequence;判断所述生成的所述目的节点路由信息的sequence减去所述当前节点存储的目标节点路由信息的sequence等于1时,采用所述生成的所述目的节点路由信息和所述存储的目标节点路由信息之中Metric值较小的对应的路由信息为到所述目的节点的路由信息;判断所述生成的所述目的节点路由信息的sequence减去所述当前节点存储的目标节点路由信息的sequence大于等于2时,将所述存储的目标节点路由信息替换为所述生成的目的节点路由信息。

可选的,所述路由装置还包括:存储器,用于存储路由表;

所述处理器还用于将确定采用的所述目的节点路由信息插入所述存储器维护的路由表中。

可选的,所述目的节点的路由信息包括:目的节点的媒体接入控制MAC地址、链路质量、下一跳节点地址、标志位和存活时间。

可选的,所述路由装置还包括:更新模块,用于如果所述Metric值较小的对应的路由信息为所述根据所述目的节点报文生成的目的节点路由信息,则将所述根据所述目的节点报文生成的目的节点路由信息替换所述存储的目标节点路由信息。

可选的,所述处理器,还用于如果Metric值较小的对应的路由信息为所述存储的目标节点路由信息,则确定不更新所述存储的目标节点路由信息。

本发明实施例提供的无线网状MESH网络的路由方法和装置,可以降低实时性,解决因系统繁忙和网络突发因素带来的劣质路径替换优质路径的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中一种Mesh网络的结构示意图;

图2为现有技术中另一种mesh网络结构示意图;

图3为本发明一实施例的一种mesh网络结构示意图;

图4为本发明一实施例的一种mesh网络路由方法流程示意图;

图5为本发明一实施例的一种mesh网络路由装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图3所示,为本发明一实施例的一种mesh网络结构示意图,该mesh网络包括当前节点301,下一跳节点302和目的节点303,结合图3,本发明一实施例的一种无线mesh网络路由的方法如图4所示,为一种无线mesh网络路由的方法流程示意图。

步骤401,当前节点接收目标节点的报文。

例如,所述目标节点的报文可以为目的节点的查询消息或回复消息。

步骤402,当前节点根据目的节点的报文生成目的节点路由信息和目的节点路由信息的序列号(sequence)。

当前节点301根据目的节点303的报文生成目的节点路由信息,该生成的目的节点路由信息除了包括目的节点的媒体接入控制(MAC,Media Access Control)地址字段外,还包括链路质量、下一跳节点302地址(也是MAC地址)、一些标志位、存活时间等信息,生成的目的节点路由信息中的下一跳302就是直接发送这个报文给当前节点301的MAC地址,所述生成的目的节点路由信息所需的其他信息,由系统自动生成,一般是赋一个初始值。

当前节点301根据目的节点303的报文生成目的节点路由信息的sequence。

路由信息的sequence描述的其实是路由信息更新的时间,例如,当节点维护路由表时,一条路由信息新生成时(插入本地路由表)值为0,以后该节点每次主动发询问报文时,这个值都会被加1,发送到mesh网络中去。新的sequence值通过查询、回复报文会在网络中传递,在一次查询中sequence的值保持不变。

步骤403,当前节点判断其是否存储有目的节点路由信息。

例如,当前节点301确定其存储器否存储有目的节点路由信息,存储器存储的路由表包括一字段,用于描述目的节点303路由信息,该目的节点路由信息除了包括目的节点的媒体接入控制(MAC,Media Access Control)地址字段外,还包括链路质量、下一跳节点302地址(也是MAC地址)、一些标志位、存活时间等信息,当前节点301检测其存储器否存储有描述目的节点303的路由的字段。

如果当前节点判断其没有存储有目的节点路由信息,执行步骤404,如果当前节点判断其存储有目的节点路由信息,执行步骤405-407。

步骤404,所述当前节点将所述生成的目的节点路由信息插入当前节点的存储器维护的路由表中。

所述存储器维护的目的节点路由信息对应也有一个sequence。

路由信息的sequence描述的其实是路由信息更新的时间,例如,当节点维护路由表时,一条路由信息新生成时(插入本地路由表)值为0,以后该节点每次主动发询问报文时,这个值都会被加1,发送到mesh网络中去。新的sequence值通过查询、回复报文会在网络中传递,在一次查询中sequence的值保持不变。

当前节点301将所述目的节点路由信息插入当前节点301维护的路由表。

步骤405,所述当前节点判断根据目的节点报文生成的目的节点路由信息的sequence与当前节点存储的目标节点路由信息sequence的大小关系。

步骤406,如果所述当前节点判断根据目的节点报文生成的目的节点路由信息的sequence减去当前节点存储的目标节点路由信息sequence等于1,确定采用所述生成的所述目的节点路由信息和所述存储的目标节点路由信息之中Metric值较小的对应的路由信息为到目的节点的路由信息。

例如,当前节点301根据目的节点303报文生成的目的节点路由信息的sequence,当前节点301当前维护的目的节点路由信息对应也有一个sequence,根据目的节点报文生成的目的节点路由信息的metric值和所述存储的目的节点路由信息对应的metric值均可以采用如下计算公式计算:

Ca是当前链路的空口airtime link metric值,O代表头开销,包含前导(preamble)和plcphead一起消耗的时长,Bt是固定值8192,r为传输速率,ef表示当前链路的误码率,最终的metric值是按照0.01TU单位的整数倍来衡量。metric值越小,代表当前mesh链路占用空口的时间短,效率更高,是一条更优的路径。

如果当前节点301判断根据目的节点报文生成的目的节点路由信息的sequence减去当前节点301存储的目标节点路由信息的sequence等于1,确定采用所述生成的所述目的节点路由信息和所述存储的目标节点路由信息之中Metric值较小的对应的路由信息为到目的节点的路由信息。

如果Metric值较小的对应的路由信息为根据目的节点报文生成的目的节点路由信息,则当前节点301进行路由表更新,即将根据目的节点报文生成的目的节点路由信息替换存储的目标节点路由信息。

如果Metric值较小的对应的路由信息为当前节点301存储的目的节点路由信息,则当前节点301不更新存储的目标节点路由信息。

步骤407,如果所述当前节点判断根据目的节点的报文生成的目的节点路由信息的sequence减去当前节点存储的目的节点路由信息的sequence大于等于2,将根据目的节点报文生成的目的节点路由信息替换存储的目标节点路由信息。

例如,当前节点301到目的节点303可能会有很多条路径选择(大于2条),当前节点301在决定使用哪条路由时需要比较两个维度metric和sequence,Metric越大,表示链路越差,sequence越大,表示时间上越新,离当前时间越近。因此,mesh网络路径选择时,基本采用时间优先(sequence大),然后路径优先(metric小)的原则。

因此,根据上述实施例的描述路由策略:采用时间优先(sequence大),然后路径优先(metric小)的原则,该策略通过一定程度地降低实时性,解决了因系统繁忙和网络突发因素带来的劣质路径替换优质路径的问题,提升了mesh网络中大流量应用(视频)的体验,实测中对于设备位置固定的mesh网络传视频的效果提升较为明显。

如图5所示,为本发明另一实施例的一种mesh网络中一种路由装置的结构示意图,所述路由装置为当前节点或当前节点其中的一部分,包括处理器501、接收器502、存储器503和更新模块504,所述处理器501、接收器502、存储器503和更新模块504相互之间通过总线BUS通信连接。

所述接收器502用于接收目标节点的报文。

例如,所述目标节点的报文可以为目的节点的查询消息或回复消息。

所述处理器501用于根据目的节点的报文生成目的节点路由信息和目的节点路由信息的序列号(sequence)。

所述生成的目的节点路由信息除了包括目的节点的媒体接入控制(MAC,Media Access Control)地址字段外,还包括链路质量、下一跳节点地址(也是MAC地址)、一些标志位、存活时间等信息,生成的目的节点路由信息中的下一跳就是直接发送这个报文给当前节点的MAC地址,所述生产的目的节点路由信息所需的其他信息,由系统自动生成,一般是赋一个初始值。

路由信息的sequence描述的其实是路由信息更新的时间,例如,当节点维护路由表时,一条路由信息新生成时(插入本地路由表)值为0,以后该节点每次主动发询问报文时,这个值都会被加1,发送到mesh网络中去。新的sequence值通过查询、回复报文会在网络中传递,在一次查询中sequence的值保持不变。

所述存储器503用于存储路由表。

所述处理器501还用于判断所述存储器503是否存储有目的节点路由信息。

例如,存储器存储的路由表包括一字段,用于描述目的节点路由信息,该目的节点路由信息除了包括目的节点的媒体接入控制(MAC,Media Access Control)地址字段外,还包括链路质量、下一跳节点地址(也是MAC地址)、一些标志位、存活时间等信息,所述处理器501检测所述存储器503否存储有描述目的节点的路由的字段。

如果所述处理器501判断所述存储器503没有存储有目的节点路由信息,所述更新模块504用于将所述生成的目的节点路由信息插入所述存储器503维护的路由表中。

所述存储器503维护的目的节点路由信息对应也有一个sequence。

路由信息的sequence描述的其实是路由信息更新的时间,例如,当节点维护路由表时,一条路由信息新生成时(插入本地路由表)值为0,以后该节点每次主动发询问报文时,这个值都会被加1,发送到mesh网络中去。新的sequence值通过查询、回复报文会在网络中传递,在一次查询中sequence的值保持不变。

如果所述处理器501判断所述存储器503存储有目的节点路由信息,所述处理器501还用于判断所述生成的目的节点路由信息的sequence与所述存储的目标节点路由信息sequence之间的大小关系,主要如下所述。

例如,所述处理器501还用于判断根据目的节点报文生成的目的节点路由信息的sequence减去所述存储器503存储的目标节点路由信息sequence等于1时,确定采用所述生成的所述目的节点路由信息和所述存储的目标节点路由信息之中Metric值较小的对应的路由信息为到目的节点的路由信息。

例如,所述处理器501根据目的节点报文生成的目的节点路由信息的sequence,所述存储器503当前维护的目的节点路由信息对应也有一个sequence,所述处理器501根据目的节点报文生成的目的节点路由信息的metric值和所述存储的目的节点路由信息对应的metric值均可以采用如下计算公式计算:

Ca是当前链路的空口airtime link metric值,O代表头开销,包含前导(preamble)和plcphead一起消耗的时长,Bt是固定值8192,r为传输速率,ef表示当前链路的误码率,最终的metric值是按照0.01TU单位的整数倍来衡量。metric值越小,代表当前mesh链路占用空口的时间短,效率更高,是一条更优的路径。

如果所述处理器501判断根据目的节点报文生成的目的节点路由信息的sequence减去所述存储器503存储的目标节点路由信息的sequence等于1,确定采用所述生成的所述目的节点路由信息和所述存储的目标节点路由信息之中Metric值较小的对应的路由信息为到目的节点的路由信息。

如果所述处理器501确定Metric值较小的对应的路由信息为根据目的节点报文生成的目的节点路由信息,则所述更新模块504还用于将根据目的节点报文生成的目的节点路由信息替换存储的目标节点路由信息。

如果所述处理器501确定Metric值较小的对应的路由信息为所述存储器503存储的目的节点路由信息,则所述处理器501确定不更新存储的目标节点路由信息。

在例如,所述处理器501还用于判断根据目的节点的报文生成的目的节点路由信息的sequence减去所述存储器503存储的目的节点路由信息的sequence大于等于2时,将根据目的节点报文生成的目的节点路由信息替换存储的目标节点路由信息。

例如,当前节点到目的节点可能会有很多条路径选择(大于2条),所述当前节点的所述存储器503在决定使用哪条路由时需要比较两个维度metric和sequence,Metric越大,表示链路越差,sequence越大,表示时间上越新,离当前时间越近。因此,mesh网络路径选择时,基本采用时间优先(sequence大),然后路径优先(metric小)的原则。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1