br>[0041 ]图6示出根据本发明实施例的节点数据转发方法的流程图。
【具体实施方式】
[0042]以下将参照附图更详细地描述本发明。在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。此外,可能未示出某些公知的部分。
[0043]在下文中描述了本发明的许多特定的细节,例如数据结构、网络协议、网络拓扑结构、网络设备硬件结构等,以便更清楚地理解本发明。但正如本领域的技术人员能够理解的那样,可以不按照这些特定的细节来实现本发明。
[0044]在本申请中使用的术语“源节点”和“目标节点”分别表示产生数据包和预期接收数据包的设备,“源节点”和“目标节点”可以是网络控制器和节点设备中的任一种,“中继节点”则表示转发数据包的节点设备。
[0045]本发明可以各种形式呈现,以下将描述其中一些示例。
[0046]图1示出第一类型的网格网络的拓扑结构。该网格网络包括网络控制器NC和多个节点NI至N15。网络控制器NC例如为手机、电脑等智能终端,也可以是专用的网络控制器,节点设备例如为智能设备,例如具备网络连接功能的电视、冰箱、热水器、LED灯、摄像头、监控器、插座、定时器等。
[0047]第一类型的网格网络为单路径网络,其中,以网络控制器NC为中心提供多条信号路径,在每条信号路径上包括串联的多个节点,且不同信号路径上的多个节点彼此不连接。
[0048]如图1所示,以网络控制器NC为中心,节点N1、N6和NII依次连接在第一信号路径上,节点N2、N7和N12依次连接在第二信号路径上,节点N3、N8和N13依次连接在第三信号路径上,节点N4、N9和N14依次连接在第四信号路径上,节点N5、N10和N15依次连接在第五信号路径上。第一至第五信号路径共同连接至网络控制器,彼此之间未连接。每条路径上的节点在转发数据时,只能转发至同一信号路径上的相邻节点。也即,每个节点只能经由唯一的信号路径转发数据包至相邻的节点或网络控制器。例如,节点N9在转发数据时,只能转发至第四信号路径上的相邻节点N4和NI 4。
[0049]网络控制器NC与外部网络之间采用WIFI协议、移动通信协议或蓝牙协议4.0互联,网络控制器NC与多个节点之间、以及多个节点彼此之间可以采用蓝牙协议4.(KZigBee协议、WIFI协议互联。网络控制器NC不仅控制网格网络内部的数据通信,而且为网格网络与外部网络之间的通信提供路由功能,使得网格网络中的多个节点可以经由网络控制器访问外部网络。
[0050]在网格网络中,节点转发的数据包主要有两种类型:命令数据包和状态数据包。网络控制器NC产生命令数据包,用于向节点发送控制指令和配置数据,以实现对节点的控制。另一方面,网络控制器NC和节点均可以产生状态数据包,其中,用于报告网络控制器NC和节点自身的状态。网格网络中的节点据接收到的指令和配置数据改变自身的状态,或者转发接收到的数据包。
[0051]在第一类型的网格网络中,根据现有的数据转发方法,不论数据包是何种类型,数据包的转发方式均是类似的。在第一种情形下,网络控制器NC产生命令数据包,并且将其发送到所有的节点或者特定的节点,节点NI至N15中的每个节点在收到命令数据包后会根据协议要求来判断是否做数据转发。在第二种情形下,网络控制器NC产生状态数据包,并且将其发送到所有的节点或者特定的节点,节点NI至N15中的每个节点在收到状态数据包后会根据协议要求来判断是否做数据转发。在第三种情形下,节点NI至N15中的一个节点产生状态数据包,并且将其转发同一信号路径上的相邻节点。
[0052]在上述的数据转发方法中,位于同一信号路径的多个节点通过转发数据包,将数据包发送至相邻的节点。相邻的节点转发该数据包,从而中继数据包的传送,直到网络控制器NC收到数据包为止。以第四信号路径上的节点N4为源节点示例说明。节点N4产生状态数据包,并且沿着第四信号路径传送。节点N4与网络控制器NC和节点N9相邻。在节点N4产生的状态数据包到达网络控制器NC之后,网络控制器NC不再转发该数据包。在节点N4产生的状态数据包到达节点N9之后,节点N9既可能向后转发,也可能向前转发。在向后转发时,节点N9向第四信号路径中的下一个节点N14转发数据包。在向前转发时,节点N9向第四信号路径中的上一个节点N4返回数据包。无论向前还是向后转发,每次转发之后,转发计数均递增。
[0053]该网格网络的数据转发方法,由于转发计数始终递增,因此可以利用最大值限制转发次数。该最大值是预设值,对应不同的网络规模大小。通过比较转发计数和该最大值,防止数据包被无限次的无效转发。然而,最大值限制仍然产生过多的转发次数。例如,如图1所示,对于状态数据包而言,节点N4产生的数据包向后传送是不需要的。
[0054]图2示出第二类型的网格网络的拓扑结构。该网格网络包括网络控制器NC和多个节点NI至NI 5。
[0055]第二类型的网格网络为多路径网络,其中,以网络控制器NC为中心提供多条信号路径,在每条信号路径上包括串联的多个节点,且不同信号路径上的多个节点可以彼此连接。
[0056]如图2所示,以网络控制器NC为中心,节点N1、N6和NII依次连接在第一信号路径上,节点N2、N7和N12依次连接在第二信号路径上,节点N3、N8和N13依次连接在第三信号路径上,节点N4、N9和N14依次连接在第四信号路径上,节点N5、N10和N15依次连接在第五信号路径上。第一至第五信号路径共同连接至网络控制器,不同信号路径的信号节点还可以彼此连接。例如第一信号路径上的节点NI与第五信号路径上的节点NlO彼此连接,第二信号路径上的节点N7和第三信号路径上的节点N3彼此连接。每条路径上的节点在转发数据时,不仅可能转发至同一信号路径上的相邻节点,而且可能转发至相邻信号路径上的相邻节点。也即,每个节点可能经由多条不同的信号路径转发数据包至相邻的节点或网络控制器。
[0057]在第二类型的网格网络中,根据现有的数据转发方法,不论数据包是何种类型,数据包的转发方式均是类似的。在第一种情形下,网络控制器NC产生命令数据包,并且将其发送到所有的节点或者特定的节点,节点NI至N15中的每个节点在收到状态数据包后会根据协议要求来判断是否做数据转发。在第二种情形下,网络控制器NC产生状态数据包,并且将其发送到所有的节点或者特定的节点,节点NI至N15中的每个节点在收到状态数据包后会根据协议要求来判断是否做数据转发。在第三种情形下,节点NI至N15中的一个节点产生状态数据包,并且将其转发同一信号路径上的相邻节点。
[0058]在上述的数据转发方法中,网格网络中的多个节点通过转发数据包,将数据包发送至同一信号路径或不同路径上的相邻节点,从而中继数据包的传送,使得目标节点收到数据包。以网络控制器NC作为源节点示例说明。网络控制器NC产生命令数据包,并且沿着第一信号路径传送。节点NI与网络控制器NC相邻。在网络控制器NC产生的命令数据包到达节点NI之后,节点NI既可能向后转发,也可能向前转发。在向后转发时,节点NI向第一信号路径中的相邻节点N6转发数据包,或者向第五信号路径的相邻节点NlO转发数据包。在向前转发时,节点NI向网络控制器NC返回数据包。无论向前还是向后转发,每次转发之后,转发计数均递增。
[0059]该网格网络的数据转发方法,由于转发计数始终递增,因此可以利用最大值限制转发次数。该最大值是预设值,对应不同的网络规模大小。通过比较转发计数和该最大值,防止数据包被无限次的无效转发。然而,最大值限制仍然产生过多的转发次数。
[0060]图3示出根据本发明实施例的数据包的数据结构。数据包不仅包括地址信息、内容信息和校验信息,还包括转发计数。在该数据包中,地址信息可以包括源节点和目标节点的地址,命令数据包和状态数据包的内容信息分别是命令信息和状态信息。校验信息用于对内容信息的正确性和完整性进行检查,例如可以是基于内容信息生成的奇偶校验信息。[0061 ]与现有技术不同,根据本发明实施例的数据转发方法根据数据包的类型和源节点在网络中的相对位置