一种报文发送方法及相关设备与流程

文档序号:18639369发布日期:2019-09-11 22:47阅读:233来源:国知局
一种报文发送方法及相关设备与流程
本发明涉及通信
技术领域
,尤其涉及一种报文发送方法及相关设备。
背景技术
:无线网状(mesh)网络也称多跳(multi-hop)网络,是一种基于多跳路由、对等网络技术的新型网络结构。其中,无线网状网络中的节点不仅能传送和接收信息,还能向附近的邻居节点转发消息,同时,该无线网状网络可以动态地不断扩展,随着节点的相互连接和路由跳数的增加,总带宽不断变化,且在变化过程中,该无线网状网络还可以实现自主组网、自我管理、自动修复、自我平衡。国际互联网工程任务组(theinternetengineeringtaskforce,ietf)提出了一种基于ipv6的低功耗有损网络的路由协议(ipv6routingprotocolforlow-powerandlossynetworks,rpl),可以用于组建大规模无线网状网络。无线网状网络作为一个网络整体,可以向外网进行通信,rpl路由把无线网状网络内所有节点向外的信道汇集到一个或多个指定的出入口(sink)上去,反之外部的信息也从这些出入口(sink)进入无线网状网络并由sink分发给无线网状网络里面的节点,所以,rpl把整个无线网状网络视为一个有向无环图(directedacyclicgraph,dag),然后再将这个dag图分割为多个以目的为导向的有向无环图(destination-orienteddirectedacyclicgraph,dodag图),每个dodag图含有一个目的节点,该目的节点被称为根节点(root),该根节点即sink,可以接收或发送外网信息。如图1所示,为一种dogag的示例,dodag可以类似于树形网络拓扑。其中,dodag的构建过程可以包括两个部分:首先,根节点n1可以在一定范围内广播dodag信息对象(dodaginformationobject,dio)报文,当某个节点n2接收到该dio报文,决定加入到该网络后,便建立了一条到达dogag的根节点n1的上行路由;然后,在节点n2加入到dogag后,向根节点n1发送dodag目的广告对象(dodagdestinationadvertisementobject,dao)报文,根节点n1接收该dao报文,并根据该dao报文建立一条到达节点n2的下行路由。由于节点是否加入到网络是根据接收的dio报文来确定的,因此,控制dio报文的发送频率十分重要,举例来说,如果发送频率过快,根节点n1不停的广播dio报文,则会造成冗余传输,如果发送频率过慢,根节点n1在很长一段时间内都不广播dio报文,导致其他节点在这段时间内不能接收到该dio报文,便不能加入到该网络中,组网的速度变慢。在rpl路由协议中,dio报文的发送频率是基于定时器(trickletimer)机制控制的。当一个时隙开始时,初始的dio报文发送频率是最小时隙长度和最大时隙长度所构成的区间内的随机数,当一个节点当前收到的邻居节点的dio报文与该邻居节点之前发送的dio报文一致(例如,邻居节点与本节点在网络中的位置关系没有改变)时,该节点dio报文发送间隔(与发送频率成反比)在原来的基础上翻倍,即发送频率在原来的基础上减小一半,当网络发生动荡(例如,邻居节点与本节点在网络中的位置关系改变),dio报文发送频率又回到初始值。然而,trickletimer机制在时间域上控制dio报文的发送频率,并单纯以两倍速率线性递增的方式来调整时隙长度,其频率控制的灵活性较低。技术实现要素:本申请所要解决的技术问题在于如何提高节点控制dio报文的发送频率的灵活性。第一方面,本申请提供了一种报文发送方法,可应用于第一网络设备,该第一网络设备为无线网状网络中的一个路由节点,该第一网络设备根据自身在网络中的层级、自身当前连接的下一跳子节点的数量、第一网络设备下连接的各跳子节点数目以及第一网络设备连接下一跳子节点的能力值等组网参数来综合判断出该第一网络设备发送dio报文的频率,并以确定出的频率广播dio报文,该dio报文包括该第一网络设备的层级以及该第一网络设备当前连接下一跳子节点的能力值,该dio报文用于使接收到dio报文的第二网络设备确定是否选择第一网络设备作为父节点。本申请能使dio报文的发送频率更能适应当前组网状态,由于频率的确定依据具有可变性,且反映当前组网状态,因此,该第一网络设备确定出的dio报文的发送频率更能与当前组网状态相适应,灵活性较高。作为一种可行的实施方式,该第一网络设备在获取该第一网络设备的组网参数之前,还可以接收来自第三网络设备(该第三网络设备为该第一网络设备在该无线网状网络中的邻居节点)的dio报文,并根据该第三网络设备的dio报文获取该第三网络设备的层级和该第三网络设备当前连接下一跳子节点的能力值,最后根据该第三网络设备的层级和该第三网络设备当前连接下一跳子节点的能力值确定出该第一网络设备的层级。可见,通过实施上述可行的实施方式,该第一网络设备可以通过接收到的dio报文来确定自身在网络中的层级,使得该第一网络设备可以在一定程度上感知到当前组网规模,后续决策产生的发送dio报文的频率也更为合理。作为一种可行的实施方式,当该第三网络设备为该第一网络设备的父节点时,该第一网络设备还可以向该第三网络设备发送dao报文,该dao报文里包括该第一网络设备的层级,该dao报文用于建立该第三网络设备到该第一网络设备间的下行路由。可见,通过实施上述可行的实施方式,在该第三网络设备为该第一网络设备的父节点时,第一网络设备向该第三网络设备发送dao报文,并告知父节点该第一网络设备的层级,不仅可以建立二者之间的下行路由,还可以使该第三网络设备知晓其下的子节点的组网情况,更新自身的组网参数,从而让该第三网络设备下一次的频率决策更为合理。作为一个可行的实施方式,该第一网络设备在根据该组网参数确定该第一网络设备发送dio报文的频率之前,还可以确定是否发生预设事件,若没有发生预设事件,则根据该组网参数确定该第一网络设备发送dio报文的频率。作为一种可行的实施方式,该预设事件包括报文换路事件和/或接收到目标报文事件,该目标报文为除dio报文和dao报文之外的报文。预设事件通常为突发性的事件,该预设事件可以影响决策出的频率的准确性。可见,通过实施上述可行的实施方式,第一网络设备将没有发生预设事件作为根据组网参数确定第一网络设备发送dio报文的频率的前提条件,可以保证决策出的频率的准确性。作为一种可行的实施方式,该第一网络设备还可以确定是否发生预设事件,若发生预设事件,则确定该第一网络设备发送dio报文的频率为预设频率。其中,该预设频率可以是该第一网络设备预先设置的最大频率值,无线网状网络中发生了预设事件可能会导致网络的不稳定,因此,通过实施上述可行的实施方式,在发生了预设事件的情况下,按照预设频率发送dio报文可以加快网络状况的稳定。作为一种可行的实施方式,该第一网络设备当前连接下一跳子节点的能力值是根据该第一网络设备的层级、该第一网络设备当前连接的下一跳子节点的数量以及预设对应关系确定的,该预设对应关系包括层级与连接下一跳子节点的能力值之间的一一对应关系。该第一网络设备可以根据实地场景及规划的网络规模等预先设置层级与连接下一跳子节点的能力值之间的对应关系,通过实施上述可行的实施方式,可以提高组网的适应性和合理性。作为一种可行的实施方式,该第一网络设备根据该组网参数确定该第一网络设备发送dio报文的频率,具体可以是根据该组网参数得到单位时间内需要发送dio报文的个数,并根据该单位时间内需要发送dio报文的个数,确定该第一网络设备发送dio报文的频率。可见,通过实施上述可行的实施方式,该第一网络设备将该单位时间内需要发送dio报文的个数作为频率与组网参数的中间参数,而非根据组网参数直接得到频率,丰富了频率的确定方式。作为一种可行的实施方式,该第一网络设备根据该单位时间内需要发送dio报文的个数,确定该第一网络设备发送dio报文的频率,具体可以是将该第一网络设备在单位时间内需要发送dio报文的个数与预设的对比阈值进行对比,当该第一网络设备在单位时间内需要发送的dio报文的个数大于该对比阈值时,根据该单位时间内需要发送dio报文的个数,确定该第一网络设备发送dio报文的频率。可见,通过实施上述可行的实施方式,该第一网络设备将单位时间内需要发送的dio报文的个数大于对比阈值,作为根据单位时间内需要发送的dio报文的个数确定dio报文的发送频率的前提条件,避免了单位时间内需要发送的dio报文的个数小于或等于对比阈值时,确定出的频率太小而导致的即使广播dio报文也对组网的作用较弱的问题。作为一种可行的实施方式,该根据该单位时间内需要发送dio报文的个数,确定该第一网络设备发送dio报文的频率,包括:将该第一网络设备在单位时间内需要发送dio报文的个数与预设的对比阈值进行对比;当该第一网络设备在单位时间内需要发送的dio报文的个数小于或等于该对比阈值时,该第一网络设备不发送dio报文。单位时间内需要发送的dio报文的个数小于或等于对比阈值时,确定出的频率太小而导致的即使广播dio报文也对组网的作用较弱,因此,通过实施上述可行的实施方式,在单位时间内需要发送的dio报文的个数小于或等于对比阈值的情况下,该第一网络设备不发送dio报文,可以节省功耗,避免不必要的资源消耗。作为一个可行的实施方式,该第一网络设备发送的dio报文携带了该第一网络设备的层级和该第一网络设备当前连接下一跳子节点的能力值,该第一网络设备的层级和该第一网络设备当前连接下一跳子节点的能力值处于该dio报文中的保留字段。作为一种可行的实施方式,该第一网络设备发送的dio报文携带了该第一网络设备的层级和该第一网络设备当前连接下一跳子节点的能力值,该第一网络设备的层级和该第一网络设备当前连接下一跳子节点的能力值按照预设格式添加在该dio报文中,该预设格式包括用于组网的路由协议中规定的格式。可见,通过上述可行的实施方式,该第一网络设备的层级和该第一网络设备当前连接下一跳子节点的能力值在dio报文所处的位置可以在dio报文中,也可以在dio报文后,提高了第一网络设备在配置dio报文时的灵活性。作为一种可行的实施方式,在该第一网络设备接收来自第三网络设备的dio报文之后,还可以确定该第三网络设备的层级和该第三网络设备当前连接下一跳子节点的能力是否满足该第一网络设备的预设组网条件,在该第三网络设备的层级和该第三网络设备当前连接下一跳子节点的能力满足该第一网络设备的预设组网条件时,执行确定该第一网络设备的层级的步骤。可见,通过实施上述可行的实施方式,该第一网络设备可以根据该第三网络设备的层级和所述第三网络设备当前连接下一跳子节点的能力确定是否选取该第三网络设备作为父节点,使选取结果更为准确,提高该第一网络设备在无线网状网络中的适应性。第二方面,本发明实施例提供了一种网络设备,该第一网络设备可包括多个功能模块,用于相应的执行第一方面所提供的方法,或者第一方面可能的实施方式中的任意一种所提供的方法。第三方面,本申请提供了一种网络设备,用于执行第一方面描述的方法。所述网络设备可包括:存储器以及处理器,其中:所述存储器用于存储第一方面描述的方法的实现代码,所述处理器用于执行所述存储器中存储的程序代码,即执行第一方面所提供的方法,或者第一方面可能的实施方式中的任意一种所提供的方法。第四方面,提供了一种计算机可读存储介质,所述可读存储介质上存储有实现第一方面所提供的方法,或者第一方面可能的实施方式中的任意一种所提供的方法的程序代码,该程序代码包含运行第一方面所提供的方法,或者第一方面可能的实施方式中的任意一种所提供的方法的执行指令。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例和现有技术中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请提供的一种dogag的情景示意图;图2为本申请提供的一种无线网状网络的架构示意图;图3为申请提供的一种dao报文格式的示意图;图4为申请提供的一种dio报文格式的示意图;图5为本申请提供的一种在3个节点中的trickle算法示例;图6为本申请提供的一种节点控制报文发送频率的方法的示意流程图;图7为本申请提供的一种预设格式的示意图;图8为本申请提供的一种报文发送方法的示意流程图;图9为本申请提供的另一种报文发送方法的示意流程图;图10为本申请提供的一种网络设备的结构示意图;图11为本申请提供的另一种网络设备的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行相应地描述。为了更好理解本发明实施例提供的一种报文发送方法及相关设备,下面首先介绍本申请涉及的一种无线网状网络及相关路由协议。(1)无线网状网络低功耗有损网络(lowpowerandlossynetworks,lln)是一种由功率、存储空间、处理能力等资源受限的设备组成的网络,lln网络中,可以由几十到上千的节点构成,可进行大规模组网。无线网状网络是一种典型的lln网络,它采用无线网络设备代替传统的有线网络设备。如图2所示,为一种无线网状网络的架构示意图。在无线网状网络中的路由节点包括两种:一种是根节点30(也称数据汇聚节点或sink节点)以及传感节点40。其中,根节点30可以负责完整无线网状网络中信息的采集,网络中传感节点40收集的数据可以以多跳方式(即经过多跳路由)传送到根节点30,根节点30将融合后的数据通过有线通信10或者无线通信20的方式传送给外部网络(如因特网等),外网的信息也可以通过根节点30传递到传感节点40。无线网状网络中可以包括几十到上千的大量的节点,可实现大规模组网。节点与节点之间可以相互共享信息,相互合作来完成一些任务,例如,控制,通信,信号处理等。由于无线网状网络中的每个节点都具有自身的特性,例如,单个设备的处理能力、存储容量、通信带宽以及自身所处位置都可能各不相同,因此,无线网络中的每个节点的能耗是有限的。为了节省能耗,无线网状网络中的传感节点必须通过一跳一跳的路由(多跳方式)来传递信息,因此,无线网状网络中具有专用的路由协议。(2)rpl路由协议rpl路由协议是专门针对lln网络提出的路由协议,可适用于无线网状网络。rpl路由协议是一种距离向量路由协议,即根据目的地的远近来选取最好的路径。由于无线网状网络一般没有预先规定好某个发送节点的目标,网络内的节点必须自己去发现其它的节点并按照rpl规则(包括目标函数(objectivefunction,of)、路由度量(routingmetric)以及路由约束(routingconstraint))建立通信。rpl路由把网络拓扑内所有节点向外的信道汇集到一个或多个指定的根节点上去,反之外网的信息也从根节点出来分发给网络里面的节点。所以,rpl把整张网络视为一个有向无环图(directedacyclicgraph,dag),然后再将这个dag图分割为多个dodag图,每个dodag图含有一个根节点。通过rpl路由协议,可以快速发现网络,形成拓扑,建立路由。(3)rpl路由协议的报文rpl通过报文来建立节点与节点之间的路由。其中,rpl中的报文可包括以下四种:dio(dodaginformationobject)报文、dao(dodagadvertisementobject)报文、dis(dodaginformationsolicitaion)报文以及dao-ack(dodagadvertisementobjectacknowledgment)报文。dis报文是一种广播报文,可用于请求周围的邻居节点尽快发送dio报文。在一些可行的实施方式中,一个传感节点在启动之后,可以有两种选择:一、保持静默状态,不发送dis报文,等待接收dio报文;二、周期性的广播发送dis报文,以请求dio报文。dao-ack报文是一种单播报文,可以由收到dao报文的节点回复给发送dao报文的节点,以响应收到的dao报文。dao报文是一种单播报文,可以用于建立下行路由。请参阅图3,为本发明实施例提供的一种dao报文格式,dao报文可包括rpl实例标识(routingprotocolforllninstanceidentification,rplinstanceid)、k、d、标记位(flags)、保留位(reserved)、dao顺序(daosequence)、dodag标识(dodagid)、可选项(options)等字段。其中,“k”位可用于表示收到dao报文是否需要回复一个dao-ack报文。在一些可行的实施方式中,若“k”位置为0,则可以表示不需要回复dao-ack报文,若“k”位置为1,则可以表示需要回复dao-ack报文,当然,上述方式只是举例,而非穷举,包含但不限于上述可选方式。“d”位可表示之后的dodagid字段是否存在,在一些可行的实施方式中,若“d”位置为0,则可以表示dodagid字段不存在,若“d”位置为1,则可以表示dodagid字段存在,当然,上述方式只是举例,而非穷举,包含但不限于上述可选方式。在一个实施例中,dao报文可在option字段处带上此dao报文的发送目的地节点,也可称为目标节点(target),对应的ipv6地址。dio报文是一种广播报文,可用于建立dogag的上行路由。请参阅图4,为本发明实施例提供的一种dio报文格式。dio报文可以申明dogag的存在,包括了rpl实例标识(routingprotocolforllninstanceidentification,rplinstanceid)、版本号(versionofnumber)、排名(rank)、接地位(g)、dodag标识(destination-orienteddirectedacyclicgraphidentification,dodagid)、运行模式(modeofoperation,mop)、优先级(dodagpreference,prf)、目的节点(objectivecodepoint,ocp)、可选项(options)字段等。(4)trickletimer机制在一个实施例中,已经加入dogag的节点可以根据trickletimer机制控制dio报文发送频率。trickletimer机制采用的trickle算法运用了自适应传输周期机制,保证网络中路由信息一致时,发送较少的路由报文;而不一致时迅速发送大量的路由报文,从而快速更新路由信息,保证一致性。trickle算法使用了3个配置参数:最小时隙长度(imin),最大时隙长度(imax),冗余系数(k)。此外,使用了3个变量:当前时隙(i),当前时隙内发送时间点(t),一致性计数器(c)。下面请参阅图5,为本发明实施例提供的一种在3个节点中的trickle算法示例,其中的冗余系数k=2,通过trickletimer机制可执行以下步骤:1)trickle算法开始执行时,在[imin,imax]范围内设置一随机数作为当前时隙i,通常设置首个时隙为imin,图5中imin=100ms;2)当一个时隙开始时,重置一致性计数器c为0,并且在[i/2,i]范围内,随机选取一个发送时间点t;3)当收到一个一致性消息(例如,邻居节点与本节点在网络中的位置关系没有改变)时,一致性计数器自增1;4)当到达时间点t,如果此时一致性计数器c大于或等于冗余系数k(图5中k=2),则不发送dio报文,反之发送dio报文;5)当时隙到期时,当前时隙i=ix2,如果超过了最大时隙长度,则i设置为imax,返回2);6)如果监听到不一致性事件(例如,邻居节点与本节点在网络中的位置关系改变),如果当前时隙不等于imin,则重置当前时隙i=imin并跳转到步骤2),反之不做任何事情。为了避免节点与节点之间的时隙不同步,节点在每个时隙中都选择了一个很小的发送时间点t,无法充分监听到其他节点发送的消息,而是一直在发送报文的问题(也称为shortlisten问题),trickle算法可以在每个时隙都添加一个只听(listen-only)周期,节点在这个周期的时候就只会监听是否有报文需要接收,而不发送dio报文,可减少冗余传输。需要说明的,上述无线网状网络及相关路由协议仅用于对本申请的理解,不应构成限定。基于上述无线网状网络及相关路由协议,本发明实施例还提供了一种节点控制报文发送频率的方法。为了便于理解,首先请参阅表1,为本发明实施例使用到的变量参数的含义表。变量参数含义l(layer)节点在网络中的层级na节点连接下一跳子节点的能力值nc节点当前连接的下一跳子节点的数量arr=[n1,n2,n3,...,nn]节点下连接的各跳子节点数目flag对预设事件的标记i发送报文的间隔f(*)决策函数表1基于上述变量参数的含义表,下面请参阅图6,为本发明实施例提供的一种节点控制报文发送频率的方法的示意流程图,该方法可包括以下步骤:601、预先进行网络规划。在进行组网之前,可以预先根据公司、工厂等实地场景的不同对网络规模、节点的位置、节点间的距离等参数进行规划,并预先确定出l与na的对应关系(例如l=0时,na为6等等),以及决策函数f(*)中需要用到的参数分别对应的权重系数。在一个实施例中,可以人为的根据实地场景进行网络规划,也可以通过服务器、终端等设备来进行规划,本发明实施例对此不作任何限制。602、在组网过程中,节点进行组网参数的更新。在一个实施例中,第一网络设备作为无线网络设备中的一个路由节点,可以在组网过程中,通过接收邻居节点发送过来的dio报文来更新自身参数,其中,该邻居节点为在该第一网络设备的预设范围内的节点。其他节点通过在dio报文格式对应的保留字段中添加自定义参数,使本节点在组网过程中,能够根据接收到的dio报文,获知当前的组网情况,从而更新自身参数。举例来说,其他节点可以在如图4所示的dio报文格式对应的reserved字段,添加用于表示节点所在层级(layer)和节点当前连接下一跳子节点的能力值(ability)两个自定义参数。在一个实施例中,邻居节点也可以在如图3所示的dao报文格式对应的reserved字段中,添加用于表示节点所在层级(layer)的字段。在一个实施例中,邻居节点也可以在dio报文和/或dao报文的选项中按照预设格式添加控制信息。如果添加在dio报文的选项中,该控制信息中可包括用于表示节点所在层级(layer)和节点当前连接下一跳子节点的能力值(ability)两个参数。举例来说,请参阅图7,为本发明实施例提供的一种预设格式的示意图。图7所示的预设格式可以为rpl控制消息选项(rplcontrolmessageoptions)格式,该rplcontrolmessageoptions可包括选项类型(optiontype)字段、选项长度(optionlength)字段、选项数据(optiondata)字段等,在一个实施例中,节点可以在dio报文的optiondata字段中添加用于表示节点所在层级(layer)和节点当前连接下一跳子节点的能力值(ability)两个参数;或者在dao报文的optiondata字段中添加用于表示节点所在层级(layer)的参数。当本节点收到来自邻居节点的dio报文,可以根据dio报文中的ability字段,决定是否选取该节点作为自己的上一跳节点(也称为父节点)。当选取了父节点之后,本节点根据选取的父节点的dio报文的layer字段来获悉自身所在的层级,更新l值,进而根据映射关系确定na值。举例来说,如果dio报文的layer字段为0,那么本节点所在层级则可以为l=1,l值为1时对应的连接下一跳子节点的最大能力值如果为8,且本节点当前已连接的下一跳子节点的数量为3,则本节点确定自身的当前连接下一跳子节点的能力值为5。当节点收到来自子节点的dao报文时,根据dao报文中的layer字段,可以获悉子节点所在的层级,从而计算得到自身与该子节点的跳数,并更新arr中对应跳数的子节点数量,如果是下一跳子节点,则还需更新nc值。举例来说,子节点dao报文中的layer字段表示层级为4,本节点自身所在的层级如果为2,则可以计算得到本节点与该子节点间的跳数为2,并将arr中的n1对应的子节点数量加1。在一个实施例中,当在组网过程中,一旦节点监听到预设事件,则可以标记flag为目标标记参数,例如,标记flag为真,并可以在该节点发送的dio报文对应的flags字段中标记该flag为真。其中,该预设事件可以为监听到dis报文、上行报文突然变为下行报文发送等突发的不一致性事件。如果没有监听到该预设事件,则可以默认该flag参数为假,该节点发送的dio报文对应的flags字段可以默认为假。603、根据组网参数决策dio报文发送的频率。在一个实施例中,当节点初始化或者有参数更新时,节点可以将参数l,nc,na,arr,flag作为决策函数f(*)的输入,得到dio报文发送频率的决策结果。在一个可行的实施方式中,在f(*)中,可以首先判定flag,若flag为真,则代表发生预设事件,此时f(*)可输出最小发送间隔(imin),imin对应着一个最大发送频率fmax;若flag为假,则可根据确定出的组网参数(可包括l、nc、na以及arr)进一步计算单位时间dio报文发送个数n,例如可参照以下公式:其中,ω0为l对应的权重系数,ω1为nc对应的权重系数,ω2为na对应的权重系数,ω0为arr对应的权重系数,δ为节点下各跳连接子节点数目各自对应的权重系数。在一个可行的实施方式中,节点可以将计算得到的n值与对比阈值(nth)进行比较,当n大于阈值时,可以将其倒数作为dio报文发送间隔输出,反正,输出-1,例如可参照一下公式:604、根据决策结果决定发送或者不发送dio报文。在一个实施例中,如果决策函数的决策结果为-1,则本节点本次可以不发送dio报文,如果决策函数的决策结果不为-1,则本节点就可以将决策结果赋值给i(也即i=1/n),节点以间隔i为周期发送dio报文,dio报文的发送频率即为n。相比于上述trickletimer机制,本发明实施例中的节点可基于组网参数动态地调整发送间隔,并非单纯以两倍速率线性递增的方式调整发送间隔,对网络变化具备更好的动态性,适应性和灵活性,并且本发明实施例中的决策发送频率的方式并非在每个时隙中选择发送时间点t,因此无需在时隙中设置listen-only周期,避免了因引入listen-only周期带来的节点入网时间变长,组网速度变慢等问题。综上所述,本发明实施例中的节点可以根据dio报文、dao报文获取自身在网络中的位置信息以及其下连接子节点的入网信息,同时可以通过预先的网络规划确定各节点连接能力以及决策函数,使得节点具备感知网络规模的能力,决策得到的报文发送频率更灵活,且更能适应网络的动态变化,尤其在进行大规模组网的过程中,组网速度可以在一定程度上得到提高,且报文发送频率也更为合理。下面请参阅图8,为本发明实施例提供的一种报文发送方法的流程示意图。如图8所示的方法可包括:s801、第三网络设备广播dio报文。该第三网络设备可以为无线网状网络中的节点,例如为路由器、终端、计算机设备等等。其中,该无线网状网络可以为如图2所示的网络。在一些可行的实施方式中,该第三网络设备可以为无线网状网络中的根节点,也可以为无线网状网络中的传感节点,且该第三网络设备可以是第一网络设备的邻居节点,本发明实施例对此不作任何限制。在一些可行的实施方式中,该dio报文可用于建立第三网络设备与该第一网络设备之间的上行路由。在一些可行的实施方式中,该第三网络设备可以在一定范围内广播该dio报文。其中,该第三网络设备广播该dio报文的范围可以是根据预先规划的该无线网状网络需要达到的规模确定。举例来说,如果该无线网状网络需要达到的规模为100平方米,那么该第三网络设备就可以在20平方米以内的所有设备广播该dio报文。s802、第一网络设备接收来自第三网络设备的dio报文。在一个实施例中,该第一网络设备如果处于该第三网络设备的dio报文的广播范围以内,则可以接收到该第三网络设备的dio报文,并执行s802步骤。其中,该第一网络设备接收到该第三网络设备的dio报文的方式可以为通过无线通信的方式接收。s803、第一网络设备获取第三网络设备的层级和第三网络设备当前连接的下一跳子节点的数量。其中,该第三网络设备的层级可以为表1中的l(layer),该第三网络设备当前连接的下一跳子节点的数量可以为表1中的nc。s804、第一网络设备根据第三网络设备的层级和第三网络设备当前连接下一跳子节点的能力值确定第一网络设备的层级。在一个实施例中,接收来自第三网络设备的dio报文之后,第一网络设备还可以根据第三网络设备的层级和第三网络设备当前连接下一跳子节点的能力值确定是否满足该第一网络设备的预设组网条件,在第三网络设备的层级和第三网络设备当前连接下一跳子节点的能力值满足该第一网络设备的预设组网条件时,执行该确定第一网络设备的层级的步骤。该预设组网条件可用于判断是否选取该第三网络设备作为父节点。举例来说,该第一网络设备可以将该第三网络设备当前连接下一跳子节点的能力值以及该第三网络设备的层级均作为目标函数of中的参考参数进行计算,以根据计算结果判断是否选取该第三网络设备作为父节点。如果计算结果表示该第一网络设备可选取该第三网络设备作为父节点,那么该第一网络设备可以执行该确定第一网络设备的层级的步骤。在一些可行的实施方式中,该第一网络设备也可以将该第三网络设备当前连接下一跳子节点的能力作为该目标函数of中的参考参数进行计算,以判断是否选取该第三网络设备作为父节点。举例来说,该第一网络设备确定第一网络设备的层级的方式可以是:如果从该第三网络设备的dio报文中提取出第三网络设备当前连接下一跳子节点的能力值为3以及该第三网络设备的层级l=0,那么该第一网络设备可以选择该第三网络设备作为父节点,并确定该第一网络设备自身所在层级为0+1,也就是自身的层级l=1。s805、第一网络设备确定第一网络设备当前连接的下一跳子节点的数量以及该第一网络设备下连接的各跳子节点数目。在一些可行的实施方式中,在该第一网络设备为新入网的节点的情况下,该第一网络设备下可能没有连接子节点,该第一网络设备当前连接的下一跳子节点的数量以及网络设备下连接的各跳子节点数目都可以为0。在一些可行的实施方式中,在该第一网络设备下已连接子节点的情况下,该第一网络设备下连接的各跳子节点数目可以根据该第一网络设备接收到的dao报文确定。举例来说,该第一网络设备下连接的各跳子节点均可以向该第一网络设备发送dao报文,用于建立第一网络设备与对应子节点之间的下行路由,其中,该dao报文中可以携带有对应子节点的层级l,在一个实施例中,还可以携带对应子节点的ip地址,对应子节点下连接的子节点数量等等,本发明实施例对此不作任何限制。该第一网络设备可以根据该dao报文中的参数确定对应子节点在网络中的层级,从而计算得到自身与该子节点的跳数,并更新对应跳数的子节点数目;如果该子节点为直接连接在该第一网络设备的下一跳的子节点,该第一网络设备则可以直接更新该第一网络设备当前连接的下一跳子节点的数量。s806、第一网络设备确定该第一网络设备当前连接下一跳子节点的能力值。在一个实施例中,该第一网络设备连接下一跳子节点的能力值可以根据第一网络设备的层级l,第一网络设备当前连接的下一跳子节点的数量以及预设对应关系确定,该预设对应关系包括层级与节点连接下一跳子节点的能力值之间的一一对应关系。例如,可以预先设定层级l=0对应的节点连接下一跳子节点的最大能力值为6,层级l=1对应的节点连接下一跳子节点的最大能力值为10等等,本发明实施例对此不作任何限制。举例来说,第一网络设备可以根据预设对应关系以及自身的层级l,以及当前连接的下一跳子节点的数量确定该第一网络设备连接下一跳子节点的最大能力值为10,如果当前连接的下一跳子节点的数量为4,那么该第一网络设备可以确定出当前连接下一跳子节点的能力值为6。s807、第一网络设备获取第一网络设备的组网参数。其中,该组网参数可以包括网络设备的层级、网络设备当前连接的下一跳子节点的数量、网络设备当前连接下一跳子节点的能力值以及网络设备下连接的各跳子节点数目。s808、第一网络设备根据组网参数确定第一网络设备发送dio报文的频率。需要说明的是,发送该dio报文的频率越大,则发送间隔越小,频率越小,则发送间隔越大。在一个实施例中,该第一网络设备可以将该组网参数按照预设的计算规则进行计算,得到该发送dio报文的频率。例如,该第一网络设备可以预先设置用于确定发送dio报文的频率的决策函数,并为需要用到的组网参数预先设置对应的权重系数,当确定了该组网参数之后,便可以根据该决策函数以及该组网参数确定出该第一网络设备发送dio报文的频率。s809、以确定的频率广播第一网络设备的dio报文。需要说明的是,第一网络设备的dio报文可以用于使接收到该dio报文的第二网络设备确定是否选择该第一网络设备作为父节点,具体的选择方式可参考第一网路设备选择第三网络设备作为父节点的方式,在此不作赘述。在一个实施例中,该第一网络设备在确定了自身发送该dio报文的频率之后,可以按照确定的频率在第一范围内广播该第一网络设备的dio报文,并且,该第一网络设备的dio报文可以携带dio报文参数,该dio报文参数可以包括该第一网络设备的层级和该第一网络设备当前连接的下一跳子节点的数量。s807、第一网络设备向第三网络设备发送dao报文。需要说明的是,该dao报文用于建立第三网络设备到第一网络设备间的下行路由。在一个实施例中,该第一网络设备可以在确定加入到该无线网状网络之后,向该第三网络设备发送dao报文,以建立该第一网络设备与该第三网络设备间的下行路由。在一个实施例中,该第一网络设备可以根据该第三网络设备的层级l,更新该第一网络设备自身的层级l,并将该第一网络设备层级l添加到dao报文,发送给第三网络设备。在一个实施例中,该dao报文还可以包括第一网络设备的ip地址、第一网络设备当前连接的下一跳节点数量等等,本发明实施例对此不作任何限制。其中,当该第一网络设备接收到该第三网络设备的dio报文,并确定加入到该无线网状网络之后,该第三网络设备与该第一网络设备之间可以建立起上行路由。该第一网络设备向该第三网络设备发送了dao报文,该第三网络设备接收到该第一网络设备的dao报文之后,该第三网络设备与该第一网络设备之间可以建立起下行路由。可见,本发明实施例通过第三网络设备的dio报文参数得到该第一网络设备的组网参数,并根据该组网参数决策该第一网络设备自身发送dio报文的频率,该组网参数可以表示网络中节点的组网情况与规模,不仅可以使节点具有网络规模的感知能力,还可以使决策出的dio报文的发送频率更能与当前的组网状态相适应,灵活性较高,提高了网络设备对频率决策的动态性、适应性和灵活性。下面请参阅图9,为本发明实施例提供的另一种报文发送方法的示意流程图。如图9所示的方法可包括:s901、第一网络设备获取第一网络设备的组网参数。所述组网参数包括所述第一网络设备的层级、所述第一网络设备当前连接的下一跳子节点的数量、所述第一网络设备当前连接下一跳子节点的能力值以及所述第一网络设备下连接的各跳子节点数目。s902、第一网络设备确定是否发生预设事件。其中,该预设事件可以包括报文换路事件,该报文换路事件可以是指上行报文突然变为下行报文发送等事件。该预设事件也可以包括接收到目标报文事件,其中,目标报文为除dio报文和dao报文之外的报文,例如接收到dis报文等等。当监听到预设事件时,该第一网络设备可以将该第一网络设备的dao报文中的flags字段对应的标记参数进行更新。在一个实施例中,该dao报文中的标记参数可以默认为假,如果网络设备在更新自身的dio报文参数的过程中,没有监听到该预设事件,那么该第一网络设备中的dio报文对应的标记参数则可以默认为假,如果监听到该预设事件,那么该第一网络设备中的dio报文对应的标记参数可以更新为真。s903、若没有发生所述预设事件,则根据所述组网参数确定所述第一网络设备发送dio报文的频率。如果该第一网络设备的标记参数为假,则可以表示在更新参数的过程中没有监听到该预设事件,该第一网络设备就可以根据预先获取的组网参数确定出网络设备发送dio报文的频率。在一个实施例中,根据组网参数确定网络设备发送dio报文的频率,包括:根据组网参数得到单位时间内需要发送dio报文的个数;根据单位时间内需要发送dio报文的个数,确定网络设备发送dio报文的频率。该单位时间内需要发送dio报文的个数可以用n表示。举例来说,各个组网参数可以预先设置对应的权重系数,该第一网络设备可以将各个组网参数与各自对应的权重系数相乘之后再相加,得到n值,得到n值的方式可以参照本申请中的公式1,在此不作赘述。在一个实施例中,根据单位时间内需要发送dio报文的个数,确定网络设备发送dio报文的频率,包括:将网络设备在单位时间发送dio报文的个数与预设的对比阈值进行对比;在网络设备在单位时间发送dio报文的个数小于或等于对比阈值时,网络设备不发送dio报文。在一个实施例中,在网络设备在单位时间发送dio报文的个数大于对比阈值时,根据单位时间内需要发送dio报文的个数,确定网络设备发送dio报文的频率,举例来说,请参照本申请中的公式2。s906、若发生所述预设事件,则第一网络设备确定第一网络设备发送dio报文的频率为预设频率。在一个实施例中,该预设频率可以为最小发送间隔imin对应的频率值,也即,预设的最大频率值fmax。如果发生该预设事件,则可以表示在更新的过程监听到了突发性的预设事件,那么该第一网络设备的标记参数可以为真,网络设备则可以确定发送dio报文的频率为最大频率值fmax,以便于以最快的速度使网络达到稳定。s907、第一网络设备以确定的频率广播dio报文。在一个实施例中,第一网络设备的dio报文携带了第一网络设备的层级和该第一网络设备当前连接下一跳子节点的能力值,且该第一网络设备的层级和该第一网络设备当前连接下一跳子节点的能力值可以处于dio报文中的保留字段。举例来说,请参阅4,该dio报文的保留字段可以是dio报文中的observe字段,第一网络设备的dio报文参数可以添加在该observe字段中。在一个实施例中,第一网络设备的层级和该第一网络设备当前连接下一跳子节点的能力值也可以按照预设格式添加在网络设备的dio报文中,预设格式包括用于组网的路由协议中规定的格式。举例来说,请参阅7,该预设格式可以是rplcontrolmessageoptions格式,网络设备可以按照该rplcontrolmessageoptions格式,在optiondata字段中添加该第一网络设备的层级和该第一网络设备当前连接下一跳子节点的能力值。可见,网络设备可以更新第三网络设备的dio报文的dio报文参数,更新自身的dio报文参数,并获取到组网参数,根据该组网参数确定发送dio报文的频率,并以确定的频率广播携带了自身的dio报文参数的dio报文,可以提高网络设备对频率决策的动态性、适应性和灵活性,且可以继续向网络中的其他节点广播当前组网情况,帮助其他节点进行频率的决策,可以提高网络设备的智能性。下面请参阅图10,为本发明实施例提供的一种网络设备的结构示意图。如图10所示的网络设备可包括:第一获取模块1001,用于获取该第一网络设备的组网参数,该组网参数包括该第一网络设备的层级、该第一网络设备当前连接的下一跳子节点的数量、该第一网络设备当前连接下一跳子节点的能力值以及该第一网络设备下连接的各跳子节点数目。第一确定模块1002,用于根据该组网参数确定该第一网络设备发送dio报文的频率。广播模块1003,用于以确定的该频率广播dio报文,该dio报文用于使接收到该dio报文的第二网络设备确定是否选择该第一网络设备作为父节点。在一个实施例中,该第一网络设备还包括:接收模块1004,用于接收来自第三网络设备的dio报文,该第三网络设备为该第一网络设备在该无线网状网络中的邻居节点。第二获取模块1005,用于根据该第三网络设备的dio报文获取该第三网络设备的层级和该第三网络设备当前连接下一跳子节点的能力值。第二确定模块1006,用于根据该第三网络设备的层级和该第三网络设备当前连接下一跳子节点的能力值确定该第一网络设备的层级。在一个实施例中,当该第三网络设备为该第一网络设备的父节点时,该第一网络设备还包括:发送模块1007,用于向该第三网络设备发送dao报文,该dao报文里包括该第一网络设备的层级,该dao报文用于建立该第三网络设备到该第一网络设备间的下行路由。在一个实施例中,该第一网络设备还包括:第三确定模块1008,用于确定是否发生预设事件。该第一确定模块1002,具体用于若没有发生该预设事件,则根据该组网参数确定该第一网络设备发送dio报文的频率。在一个实施例中,该预设事件包括报文换路事件和/或接收到目标报文事件,该目标报文为除dio报文和dao报文之外的报文。在一个实施例中,该第一网络设备还包括:第三确定模块1008,用于确定是否发生预设事件。该第一确定模块1002,还用于若发生该预设事件,则确定该第一网络设备发送dio报文的频率为预设频率。在一个实施例中,该第一网络设备当前连接下一跳子节点的能力值是根据该第一网络设备的层级,该第一网络设备当前连接的下一跳子节点的数量以及预设对应关系确定的,该预设对应关系包括层级与连接下一跳子节点的最大能力值之间的一一对应关系。在一个实施例中,该第一确定模块1002,具体用于根据该组网参数得到单位时间内需要发送dio报文的个数,并根据该单位时间内需要发送dio报文的个数,确定该第一网络设备发送dio报文的频率。在一个实施例中,该第一确定模块1002,具体用于将该第一网络设备在单位时间内需要发送dio报文的个数与预设的对比阈值进行对比,当该第一网络设备在单位时间内需要发送的dio报文的个数大于该对比阈值时,根据该单位时间内需要发送dio报文的个数,确定该第一网络设备发送dio报文的频率。在一个实施例中,该第一确定模块1002,具体用于将该第一网络设备在单位时间内需要发送dio报文的个数与预设的对比阈值进行对比,当该第一网络设备在单位时间内需要发送的dio报文的个数小于或等于该对比阈值时,该第一网络设备不发送dio报文。请参阅图11,为本申请提供的另一种网络设备的结构示意图。本实施例中所描述的网络设备,包括:一个或多个处理器1101、存储器1102、通信接口1103、发射器1105、接收器1106。这些部件可通过总线1104或者其他式连接,图11以通过总线连接为例。通信接口1103可用于网络设备与其他通信设备,例如终端设备或其他网络设备,进行通信。具体的,通信接口1103可以是无线通信接口,也可以不限于无线通信接口,网络设备还可以配置有有线的通信接口来支持有线通信,例如一个网络设备与其他网络设备之间的回程链接可以是有线通信连接。发射器1105可用于对处理器1101输出的信号进行发射处理,例如信号调制。接收器1106可用于对天线接收的移动通信信号进行接收处理。例如信号解调。在本申请的一些实施例中,发射器1105和接收器1106可看作一个无线调制解调器。在网络设备中,发射器1105和接收器1106的数量均可以是一个或者多个。存储器1102与处理器1101耦合,用于存储各种软件程序和/或多组指令。具体的,存储器1102可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器1102可以存储操作系统(下述简称系统),例如ucos、vxworks、rtlinux等嵌入式操作系统。存储器1102还可以存储程序,该程序可用于与一个或多个附加设备,一个或多个终端设备,一个或多个网络设备进行通信。本发明实施例中,处理器1101可用于读取和执行计算机可读指令。具体的,处理器1101可用于调用存储于存储器1102中的程序,例如本申请的一个或多个实施例提供的参数调整方法在网络设备侧的实现程序,并执行:获取该第一网络设备的组网参数,该组网参数包括该第一网络设备的层级、该第一网络设备当前连接的下一跳子节点的数量、该第一网络设备当前连接下一跳子节点的能力值以及该第一网络设备下连接的各跳子节点数目;根据该组网参数确定该第一网络设备发送dio报文的频率;以确定的该频率广播dio报文,该dio报文包括所述第一网络设备的层级以及所述第一网络设备当前连接下一跳子节点的能力值,该dio报文用于使接收到该dio报文的第二网络设备确定是否选择该第一网络设备作为父节点。可以理解的,网络设备可以是图2所示的无线网状网络中的网络设备,可实施为计算机、路由器、交换机、终端设备等等。需要说明的,图11所示的网络设备是本发明实施例的一种实现方式,实际应用中,网络设备还可以包括更多或更少的部件,这里不作限制。应理解,本发明实施例是对应方法实施例的实体装置实施例,对方法实施例的描述,也适用于本发明实施例。在本发明的另一实施例中提供一种计算机可读存储介质,该计算机可读存储介质存储有程序,该程序被处理器执行时,可以实现本申请中终端设备所示的方法,或实现网络设备所示的方法。需要说明的是,该计算机可读存储介质被处理器执行的具体过程可参见上述方法实施例中所描述的方法,在此不再赘述。在本发明的又一实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例所述的方法。所述计算机可读存储介质可以是前述任一实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述计算机的外部存储设备,例如所述计算机上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。基于同一发明构思,本发明实施例中提供的计算机解决问题的原理与本发明方法实施例相似,因此该计算机的实施可以参见方法的实施,为简洁描述,在这里不再赘述。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。以上对本发明实施例所提供的一种报文发送方法及相关设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的结构、方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1