节点网络中选择消息路由的方法和设备的制作方法

文档序号:7570390阅读:186来源:国知局
专利名称:节点网络中选择消息路由的方法和设备的制作方法
背景技术
发明领域本发明是关于配置网络的方法,它包括确定网络的哪些节点可互相通信;以及对这些节点分配标识符。
本发明还涉及在节点网络内为消息选定路由的方法,其中节点由唯一的节点标识符来识别。
本发明也涉及包括多个节点的通信网络,其中节点由唯一的节点标识符来识别;以及涉及在这样的网络中所使用的节点。
本发明还涉及包括用来存储节点的逻辑标识符的存储器在内的通信网络节点,及用于确定节点是否位于去到信宿节点的消息路径上的处理器。
本发明也涉及用于通信网络的包括用来存储网络结构的存储器及处理器在内的网络控制节点。
相关技术描述当今典型的网络,特别是那些用来实时控制现代大楼的网络,包括在大楼建造时就已安装的导线连接的节点。在这些系统中,网络用来控制灯光,取暖/制冷,电梯等。网络节点典型地是带有大量存储器和其它资源的微计算机。由于这些系统由导线相连并具有相当强有力的节点,因此它们很昂贵,通常只是装在最大的建筑物中才证明是恰当的。另外,它们通常不适合于改装较老的建筑物,这可以是特别对于电源使用控制系统的最适合的课题。
所需要的是很低成本的节点的网络,也就是具有最少资源的节点或资源-紧缺的节点,它们以无线方式连接在一起,这样就适合于小到中型的建筑物,也适合于改装较老的建筑物。
在典型的基于控制系统的网络中,数据通信网的各节点在它们之间交换信息单元。这些单元通常被称为信息包,信息帧或信息元。在多跳网络中,各个节点都不存在到网络的每个其它节点的直达通信链路,可能需要通过位于从信源节点到信宿节点的通信路径上的中间节点来向前发送信息包。取决网络的类型及其特征,这种信息包路由选择的功能可包括在中间节点的以下的一个功能1)选择离开中间节点的多个链路中的一条链路(例如,在像Internet那样的点对点的多跳网络中),或2)确定是否向前发送(重新发送)所接收的信息包(例如,在其中所有节点共用同一个信道的无线多跳广播网中)。用于数据通信网的大多数流行的路由选择方法利用路由表或判决表来在一次运行中作出路由决定,在工作中使用信息的地址来访问这些表格以作出路由决定或选择。在中间节点中的路由表通常指出到信息包指定要去的信宿节点的最佳发送链路或最短路径。判决表有助于确定是否进一步向前发送所接收的信息包。然而,这样的表格占用节点的存储器中的空间。例如,在256个节点的网络中,这大约是典型的中型建筑物的节点数,如果每个节点要存储一个简单的路由表,那么就需要至少512个字节来指明把信息包向前发送到的哪个节点。在这样的256节点的网络中的判决表可以占用288个字节,256字节用于节点的地址和32个字节用比特来表示信息包是否向前发送到表格中的每个节点。在低存储器数类型的资源-紧缺的节点的网络中,没有足够的可供使用的存储器来存储这样的表格。在这样的节点中,存储器在各数据通信功能和各系统或特定应用功能之间共用。这样,不同的路由选择方法需要被规划。这些路由方法不仅应当只使用非常少的RAM,而且还应当以可接受的时延有效率地把信息包从信源传送到信宿。
所需要的是具有最少资源,尤其是存储器的节点网络和工作在这类节点上的路由选择协议。
发明概要本发明的一个目的是提供以无线方式连接低成本的最少资源的节点的网络的一个系统。
本发明的还有一个目的,是提供使用广播通信技术连接节点的一个系统。
本发明的附加的目的是提供不需要把路由表存储在节点中的一个网络。
本发明的另一个目的是提供适合用于资源紧缺的节点的网络的路由协议。
本发明还有一个目的是提供构成节点网络的一个系统。
本发明的再一个目的是提供允许装备小型到中型建筑物的以及允许以低成本网络改装较老的建筑物的一个系统。
配置网络的方法的特征在于,该方法包括构成可互相通信的节点的生成树;以及给节点分配的标识符是根据生成树进行的。
为消息规定路由的方法的特征在于,这些节点构成可互相通信的节点的生成树;子节点的标识符的独特部分包括该子节点的母节点的标识符的独特部分;以及该方法包括当消息地址包括当前节点标识符的独特部分时,便发送消息给另一节点。
通信网络的特征在于,这些节点构成可互相通信的节点的生成树;以及子节点的标识符的独特部分包括该子节点的母节点的标识符的独特部分。
通信网络节点的特征在于,处理器被设计成通过把消息的消息地址只与节点的逻辑标识符相比较来完成所述的确定。
网络控制节点的特征在于,处理器被设计成确定网络的节点的被划分的生成树标识符、在网络配置中存储的标识符以及通过使用网络配置发送消息给节点。
优选地,系统包括多跳的(multihop)无线广播的节点的网络,这些节点可以具有例如存储器和处理能力的硬件资源的最小值。网络使用划分的生成树进行配置,并分配节点地址,以使中间节点的地址可以和信息包的信宿地址相比较,作出完整的信息包路由确定。
这些连同以后将会很明显的其它的目的和优点将存在于结构和工作的细节中,正像在此后更充分地描述和权利要求主张的那样,并参照形成其中一部分的附图,其中同样的数字自始至终是指同样的部件。
附图概述

图1描绘了按照本发明的网络的节点;图2描绘了无线多跳节点的网络;图3是由网络控制节点执行的过程的流程图;图4,5,6,10,11,13,19,20和22-25描绘了消息包;图7是带有跳计数的溢出处理的流程图;图8是母节点路由选择过程的流程图;图9描绘了网络控制节点的初始化过程;图12描绘了网络节点的初始化过程;
图14是由网络控制节点执行的图形建立过程的流程图;图15(a)描绘了节点的网络;图15(b)描绘了代表图15(a)的网络的数据结构;图16描绘了图2的网络的生成树;图17显示了分配给按照本发明图1b的网络的节点的地址;图18描绘了网络控制节点的监视和控制过程;以及图21是在网络初始化以后由网络节点执行的过程的流程图。
优选实施例的描述本发明是针对适合于执行简单功能,例如,控制单个房间中的照明水平的低成本节点的网络,而且其中每个节点可引入被控制的装置中,例如,灯开关。这样的网络的节点是“资源紧缺的”。如果一个节点具有不够充分的存储器来存储像路由表那样的路由信息,以及如果一个节点具有不够充分的处理能力,根据如像最短路径,网络阻塞,链路控制等那样的信息,为去向信息包或消息计算“最佳路由”,那么这个节点就被称为资源紧缺的。优选实施例包括网络节点10,如图1所示,其每个节点包括低成本的4或8比特微控制器处理单元(MCU)12,例如Motorola 68 HC 11微控制器,它包括非常有限数量的芯片上的RAM 14(32字节的量级),PROM 18,最好是EEPROM类型的,用于保持可编程的但是非易失性的信息,例如节点地址(也就是,约为4字节),以及ROM 18(约为1K或2K字节),用于保持控制和网络路由程序或软件。每个节点10也包括常规的无线发射机/接收机20,它允许和系统的其它节点进行通信。发射机/接收机20是低功率装置,它典型地只发射几十英尺,例如建筑物的一到三个左右的房间大小的距离。由于节点具有最少的资源,例如RAM存储器,因此节点不能保持取决于路由表或判决表的复杂的路由程序。为了管理网络和确定网络配置,提供了智能的和相当强有力的节点,称之为网络控制节点(NCN)30。NCN 30可以包括和节点10同样的部件,MPU 32、RAM34、PROM 36、ROM38,和发射机/接收机40,还包括常规的串行端口42,它被连接到常规的计算机44,例如PC机或工作站,后者包括常规的盘存储器和适合于执行网络和系统控制,例如,大楼灯光控制的I/O装置。
NCN 30负责执行划分的生成树(PAST)路由协议。本发明的划分的生成树路由协议可应用于任何类型的多跳网络,而且并不使用路由表或判决表。然而,它最适合于资源紧缺的节点的网络(几乎没有处理能力和存储器),并且依赖于网络控制节点的可用性,此网络控制节点具有足够的处理能力和存储器来给其它节点分配地址以及在起动时把网络初始化。
为了更好地理解协议,我们将考虑如图2所示的一个网络,其中端对端的通信出现在NCN 60和资源紧缺的节点62-76之间,但是不出现在两个资源紧缺的节点之间,例如70和72,这与为了把信息包接力传向信宿节点而进行的信息包交换不同。为了描述协议的工作,我们考虑广播信道网络的情况,其中每个节点处在网络的几个其它节点的直接无线通信范围内,例如,节点68在节点62,64,66,70和72的范围内,但不在其它节点范围内。这样,就存在了重迭的邻区(节点66的邻区重迭到节点68的邻区上),每个围绕发射机为中心,在其中可能有发射机的某些相邻节点。
网络中的所有节点使用共同的广播信道。通过使用常规的CSMA(载波检测多址接入)协议来避免冲突,需要每个发射机监视信道,且只在没有业务时才发送。位于两个互相听不到的节点的邻近区域的交叉位置的一个节点,有可能接收到不正确的数据,如果两个相邻节点都认为信道是空闲而同时发射的话。一种隐含逐跳(IHBH)的确认方式被用来矫正这样的冲突,这种IHBH确认方式将在后面讨论。
从资源-紧缺节点,例如74,向NCN 60传递的信息包将被称为上行传递,而从NCN 60到资源-紧缺节点传递信息包将被称为下行传递。每个资源-紧缺节点可以被制做成带有唯一的标识符,称作为它的物理标识符ID,ID可在安装期间人工地分配给节点。
当节点62-76首先被接通时,它们开始进入初始化阶段,此时它们等待来自NCN 60的通信。网络控制节点(NCN)60,它具有很大的处理能力和存储器容量,一开始也在初始化阶段90(见图3)根据由用户输入的关于网络节点号的信息,收集来自资源-紧缺节点62-64的信息,以构成以图形形式的完整和准确的网络表示,例如图2的那种表示。所需要的信息是表明哪些节点可以互相听到,也就是关于哪些节点是在哪些其它节点的广播范围内的清单。信息可藉使用带有跳计数的溢出协议(将在以后讨论)广播初始化消息给网络的所有节点来得到。这种广播一级一级地进行,以使网络的中等级别的节点向低一些的级别的节点广播。这就允许每个节点记录是其母节点的那个节点,也就是它从中接收到第一次初始化广播的那个节点。节点使用母路由协议(将在以后讨论)通过返回的应答消息以所需要的信息进行应答。应答消息也表明,除了母节点以外哪些其它节点可由该节点听到。图形的每条弧代表在两个节点之间连接这两个节点的一段直接链路。然后图形被划分为生成树。这些节点然后被以这样的方式分配以逻辑地址(划分的生成树-PAST),以使信息包所取的路径由信宿节点或发送节点的地址唯一地识别为分别从NCN 60的信息包下行传递或上行传递。在这种寻址方式中,接收信息包的中间节点,例如节点64,简单地检验信宿节点地址(对于信息包下行传递)或检验发送信息包的节点的地址(对于信息包上行传递),这种检验是通过把它和该中间节点的地址进行比较实现的。仅仅根据地址比较,中间节点就能告知该中间节点是否在信息包所取的路径上。如果中间节点在此路径上,它就向前发送信息包,否则就把信息包丢弃。一旦地址被分配后,NCN 60进入监视和控制阶段92,此时有关事件和命令的消息藉使用PAST路由协议通过网络。NCN 60工作的各阶段细节将在后面作更详细的讨论。然而,在讨论初始化阶段的细节之前,了解在初始化阶段所利用的两个路由协议是有帮助的1)带跳计数的溢出(FHC)和2)母节点路由(PA)。这两个协议将参照图7和8在下面来讨论。但首先将说明使用协议在网络中所发送的每个信息包的结构。
在下面的讨论中,所使用的信息包的结构在图4中给出。每个信息包100包含在固定位置处的“标志”字节102。该字节102有下列比特区(右边为最低有效位)比特0和1-保留给将来使用;比特2-信息包优先级1表示“紧急”和0表示“非紧急”的信息包;比特3和4-寻址11表示该信息包是“广播”信息包,即,要由网络中每个节点处理的信息包;10表示该信息包是“多投”信息包,即,网络中由一个群地址识别的多个节点要接收和处理该信息包;01表示该信息包是“单投”信息包,只以一个节点为信宿;比特5和6-路由类型11表示信息包通过使用母节点路由方案来选定路由;10表示该信息包通过使用FHC路由协议来选定路由;以及01表示使用PAST协议;和比特7-传递方向0表示信息包上行传递到NCN;1表示信息包从NCN离开。在第二个字节104中提供了唯一的信息包ID(标识符)。信息包100的下一个区域是可变长度的区,它包括信宿(或信源)节点的逻辑地址。第四区108包括一字节的命令。下一个区110是可变长度的数据区。信息包100的最后一个区112是用来进行错误检验的检验区。
初始化阶段使用图4的信息包100的两种格式,它们被示于图5和6。图5的初始化或INIT信息包120只在FHC下行路由初始化处理(见图7)期间才使用。网络控制节点(NCN)60把图5的信息包广播给位于NCN 60的直接通信范围内的所有节点。带有跳计数的溢出(FHC)路由方案用来广播(标志字节中的地址位被设置为11)信息包120。每个信息包120包含发送节点的物理ID(标识符)104。在数据区110,FHC的跳计数器122被设置为1,这样只有发送节点的紧靠着的邻节点才处理信息包,但并不进一步向前发送信息包(如参照图7更详细地描述的)。发送信息包的节点的地址124包括在数据区110中。信息包120也包含INIT信息包的发送者离开NCN的跳数126。在图5和6的实例中,INIT信息包120从节点ID为ec3f(hex)的节点发出,并由节点ID为6bf1(hex)的节点接收。信息包中的地址区106总被设置为iff(hex),因为跳计数区122确保INIT信息包120不传播到离开一跳以外的地方。图6的应答或RESPONSE_INIT信息包130只被用于上行母路由处理(见图8)。信息包130把地址区106设置为NCN 60的地址(0000 hex)。在数据区110内,包括有称之为用于路由区的母地址的一个区132,其内容由接收该信息包130的、并向前发送(广播)它的每个中间节点的母节点的ID所替代。第二个区134包括用于将由NCN 60构建的网络图形的母节点地址。发送RESPONSE_INIT信息包130的原先节点的地址被存储在下一个区136,以及在原先节点的跳计数中的离NCN的距离被存储在下一个区140。
带跳计数的溢出(FHC)路由方案,如图7所示,使用在每个INIT信息包120中的最大跳计数器(区122),以表示当信息包在广播网络中从信源节点传播到它的信宿时,它可取的最大跳数。信源节点必须知道信息包到达其信宿前所需要的准确的(或最小的)跳数。唯一的信息包标识符也被插入到信息包中。接收(150)信息包的每个中间节点,例如节点64,判决(152)信息包是否为FHC信息包,如果不是的话就丢弃该信息包(154)。否则节点就检验(156)跳计数器,并把计数值减一(158)。如果计数值达到零,则信息包不再被重新发送。否则中间节点广播(160)信息包使相邻节点听到。信息包的标识符也被记录一段合理的时间间隔,这样如果信息包从相邻节点再次被接收,就丢弃该信息包。假如没有一个节点失效的话,则在跳计数值达到零之前就可确定信息包到达信宿节点。这种为信息包选定路由的方法可被用于信息包上行传递以及从NCN的信息包下行传递。在信息包中所规定的信宿节点的物理ID可被信宿节点用来认定(162)该信息包要被处理(164)并不再把它向前发送。很容易看到,这种路由方案是非常没有效率的,因为信息包的多个复制品可能存在于网络的断开的部分。信息包的某些复制品可能从信宿节点传递出来,因而浪费了网络资源。这种路由方案的附加的细节可从Boehm,S.P.和P.Baran所著的书“宽带分布通信网中的棘手的路由问题的数字仿真”(“Digital Simulation of Hot-Potato Routing in a Broadband DistributionCommunication Network”),RAND Corporation,Memorandum RM-3103-PR,August,1964,中得出。图7给出了对于由带跳计数的溢出在路由期间执行的操作的概括性描述,在控制(60)和资源紧缺(62-76)节点处本发明的处理之内的这种路由协议的性能将参照图9和12被更详细地讨论。
在初始化阶段90期间,如图9所示,网络控制节点(NCN)60在用户指明网络中的节点数以后便开始产生(200)初始化信息包120,如图5所示,以ID(区104)为0和FHC跳计数(区122)为1。然后该信息包被发送(202)。接着NCN 60等待直到信息包被接收(204)为止。然后NCN 60判决(206)路由类型是否为FHC。如果不是的话,就判决(208)信息包的路由方法是否为母路由类型。如果不是的话,就丢弃(210)该信息包。如果信息包曾由FHC路由方案进行路由选择,就判决(212)它是否为初始信息包120。如果不是的话,就丢弃214该信息包。如果它是初始信息包120,则判决(216)跳计数值是否为1。如果是的话,就把一个节点插入(218)到网络的节点图中,例如图2的节点图。如果NCN接收并认定(220)母路由应答信息包130包括NCN节点ID,则该插入操作(218)也发生。如果NCN确定(220)图形的所有节点尚未全部进到图中,也就是当由用户规定的网络节点数不等于图中的节点数时,则系统返回到等待另一个信息包。如果图形是完整的,则NCN 60分配(222)逻辑划分的生成树(PAST)地址给各节点,这将在后面更详细地讨论。一旦逻辑地址被分配(222),那么NCN 60就将其地址告知每个节点。这是通过构建(224)SET_ADDRS信息包240(见图10)和把它们发送(226)给节点62-76来完成的。
每个SET_ADDRS信息包240,如图10所示,包含信宿节点的物理ID104和被指派给信宿的逻辑PAST地址242,这样信宿节点可接受信息包,并存储它的逻辑PAST地址。信息包240通过使用前面所讨论的带跳计数的溢出选定路由。从NCN到每个节点的准确的跳计数244是已知的,因为这个信息是从信宿节点接收到的RESPONSE_INIT信息包的一部分。信息包240也包含对逻辑地址中的比特数的表示246。接收SET_ADDRS信息包240的节点,通过发送RESPONSE_SET_ADDRS信息包250(见图11)给NCN60来确认对其PAST地址的接收。这些信息包250通过使用母路由方案选定路由。
资源紧缺节点62-76在初始化阶段期间在确定路由类型时的各项操作与在NCN 60中参照图12的同样操作的标号所表示的一样。在跳计数检验(216)完成以后,第一次接收(240)INIT信息包120的每个节点保存信息包120的发送者的物理ID,并以发送者的母节点来标记(242)该发送者。另外,接收节点把信息包中的值加一,该信息包给出从NCN60到INIT信息包120的发送者的跳数,并存储此结果作为接收节点离网络控制节点(NCN)60的跳数。然后接收节点构成(244)并发送(246)RESPONSE_INIT信息包130给NCN 60,以告知NCN 60接收节点处在发送INIT信息包120的节点(即,母节点)的直接通信范围内。RESPONSE_INIT信息包130通过使用前面讨论的母路由方案选定路由。因而,首先,每个RESPONSE_INIT信息包130包含构建信息包的节点的母节点的物理ID,发送应答信息包130的节点的物理ID,以及它离NCN 60的跳数。然后,该节点广播此信息包,但仅仅是其ID出现在信息包中的母节点,在用它的母节点的ID代替它的ID后,重新发送该信息包。这样,RESPONSE_INIT信息包130首先由导致信息包130的产生的初始化信息包120的发送者向前发送。在接收到RESPONSE_INIT信息包130时,NCN 60在图上产生一个代表发送RESPONSE_INIT信息包130的信源节点的入口。在图上画一条弧线,在链接表数据结构中实际上是箭头,用以连接代表信息包130的发送者和其信息包120造成信息包130的发送的节点的入口。从NCN 60到信息包130的发送者(信源)的跳数也被保存。
第一次接收信息包120的节点,除了发送(246)信息包130给NCN外,还构成(248)(见图12)带有跳计数为1和ffff(hex)的ID的INIT信息包120,并把它广播(250)给所有的紧靠着的相邻节点听。
在第一次以后接收INIT信息包120的节点并不保存信息包120的发送者的物理ID作为母节点。它也不构成和广播初始化信息包120。然而,该节点确实构成(252)HEAR_INIT信息包260。该信息包260在结构和用途上类似于RESPONSE_INIT信息包130,并被示于图13。然而HEAR_INIT信息包260并不经过引起信息包260产生的INIT信息包120的发送者传送。HEAR_INIT信息包260沿第一RESPONSE_INT信息包130从发送HEAR_INIT信息包260的节点到达NCN 60所取的同样路径传送。信息包260也使得NCN 60在图形中插入一条弧线以连接信息包260的发送者和引起信息包260产生的信息包120的发送者。
如果所接收的信息包被确定(254)(图12)成对于该节点的地址设置信息包,那么逻辑地址被保存(256),且进到网络通信和控制阶段,这将参照图21被描述。
构建图形的处理218(见图9)在图14中更详细地被显示。当信息包被NCN 60接收时,对它进行检验(272),以确定信息包的类型(130或260),且如果它是错误类型,则把它丢弃(274)。如果接收到正确类型的信息包,则发送者地址和母节点地址被提取(276),并用来产生(278)链接的列表数据结构的列表入口,这将参照图15(a)和15(b)对它进行更详细的讨论,接着把数据插入(280)到该列表入口中。然后,NCN 60判决(282)在链接的列表中对于母节点的入口是否存在。如果没有的话,就建立(284)对于母节点的入口。接着,各入口间的箭头被插入到(286)各入口中。然后执行先前参照图9所讨论的步骤220和222。
构建图形的过程一直进行下去直到NCN 60从网络中的每个资源紧缺节点62-76接收到应答信息包(130/260),从而能表示出网络的每个节点和链路为止。得出的图形类似于图2的图,它在存储器中被表示为如图15(a)和15(b)所显示的链接表。图15(a)描绘了可以和具有物理标识符(ID)3abc和769的两个节点通信的NCN 300。节点3abc可以和具有ID 209,152和622的节点以及节点769和NCN 300通信。节点769可以和具有ID 152,622和3abc的节点以及NCN 300通信,但不能和节点209通信。具有ID 209,152和622的节点可以听到及发送到由图形连接所表示的节点。这种安排可在图15(b)的箭头指向链接表数据结构310中反映出来。可以看到,在表310中的每个条款或表项312包括包含相应节点的物理ID的物理ID区314,表示母节点的母节点ID区316,包含到根节点或NCN的跳数计数的跳计数区318,表示当前节点可听到的并可进行通信的、在网络中的进一步向下的节点的一个或多个子指针区320(这些节点发送信息包260),以及表示给当前节点发送初始化信息包120的第一节点的母指针322。每个表项312也包括存储将被指派给相应节点的PAST地址的一个区324。这种类型的图形由网络控制节点(NCN)在初始化的下一个阶段使用,以便构造生成树以及分配地址给生成树的各节点。
初始化网络的下一阶段包括从构建在NCN的存储器中的原先图形导出分开的生成树数据结构(图形)。生成树图被构建为分开的图(链接表数据结构)而原先的图被保持用于将来的网络改变和增加。处理包括对图上的图形的修正的深度第一搜索。在深度第一搜索中,选择一个节点(最右端),如果它有子节点,就选择其子节点之一(最右端),如果它又有子节点,再选择此子节点等等直到遇到一片“叶子”时为止。在这时,该叶节点的母系的同属点均被进行深度第一搜索。在这种类型的搜索中,在处理另一条路径前,沿一条路径的处理进行得尽可能深入。在广度第一搜索中,网络中每个级别的所有节点(同属)在这些节点以更深的级别被处理以前先被处理。在本发明的修正的深度第一搜索中,通过可以把一个级别分成两个级别的操作,使每个级别的广度被最小化,以帮助作为结果的地址的长度最优化。在这种讨论中,图2将被用作为原先的或根源的图形。在这个阶段不包括资源紧缺节点在内,且这一整个阶段发生在NCN的存储器内。因为这是一个循环操作,其中发生几件事(产生生成树和地址分配)且不容易用流程图来表示,所以此处给出了包括代码算法的附录。NCN 60以把本身当作生成树的根作为开始,并借助于把图中相邻节点的真实个数加上一来计算其邻居数。例如,NCN 60有两个邻居,这样计算的邻居数是3。如果计算的邻居数是二的乘方,那么每个邻居节点作为子节点进入到生成树中。在现在例中,不是这种情况。如果邻居数不是二的乘方,那么某些邻居节点可以或不可以被排除在生成树的子节点之外。为了判决这一点,NCN 60计算小于邻居数的最大的二的乘方,以↓2表示,以及计算大于邻居数的最小的二的乘方,以↑2表示。如果邻居数接近于↑2而不是↓2,那么所有的邻居节点都作为子节点进入到生成树。然而,如果邻居数接近于↓2,那么NCN 60试着确定图形中的哪些邻居节点可以被排除作为生成树的子节点。在邻居数接近于↑2和↓2同样的情况下,NCN 60确定排除某些邻居。对于这种决定,NCN跟随图形中的弧线,以弄清是否有些邻居节点是可以从其它的邻居之一达到的。在现在的例子中,节点62可以从节点64达到。任何可从任何其它邻居节点达到的节点不能作为子节点进入到生成树,且把邻居数减1。只要邻居数达到↑2,对于当前的节点的邻居所作的排除过程就停止。这些被排除的邻居将在将来进入到生成树中。如果NCN 60确定,没有邻居可被排除当作为生成树的子节点,那么所有邻居都进入生成树。进入到生成树的每个邻居被标记为访问过的,以上的程序再次从每个进入的邻居开始来进行,因而构建了以邻居为根的生成子树。如果找到一个邻居被标记为访问过的,那么这表示已存在一个已访问过的节点为根的生成子树。此过程以尚未访问过的下一个邻居进一步地继续下去。
在邻居数不接近于↑2时,把某些邻居排除作为生成树的子节点的额外工作背后的原因,是保持生成树的广度为最小。这在下面描述了指派逻辑PAST地址的过程后,将会更好地理解。
在此阶段结束时,在NCN的存储器中存在有和原先的图形(见图2)不同的,以NCN 60为根的生成树330,其中存在从NCN 60到网络中的每个节点的以及返回的单条路径,如图16所示。应注意到,此图形由类似于图15(b)的数据结构来表示。所有节点(62-76),除了NCN 60以外,都有以一跳接近于NCN 60的母节点。所有节点,除叶节点(66,70,74和76)以外,都有离开NCN 60为一跳的子节点。一个节点可以有或没有与其共享一个母节点的同属节点。对于图2的其它生成树当然是可能的。
在逻辑划分的生成树(PAST)的网络初始化过程的最后阶段,标识符被分配给网络中的每个节点。更具体地讲,地址可被分配给每个节点。在文件的其余部分,使用了术语寻址。在这种分配方案中,每个子节点继承了其母节点的地址,后者和它自己的独特地址在它的级别上被组合。为了做到这一点,NCN 60以给自己分配一个由全部零比特组成的地址开始(此地址长度根据对资源紧缺的节点的地址分配加以确定,并且长度和生成树的叶节点66,70,74与76的地址长度相等)。
然后,NCN 60借助于使NCN 60的生成树中的实际子节点数加一来计算子节点数。在现在的例子中,这将是二。这样为唯一地寻址每个子节点所需要的最小比特数,比如说是n,便可被计算。如果在构建生成树期间,有些邻居节点被排除作为子节点,那么,↑2就应当是2的此处所计算的比特数次方。如果没有邻居节点被略去,那么比特数应该导致为↓2或精确等于图形中邻居数的2的乘方。在图16的例中这将是单个比特。指派给每个子节点的逻辑PAST地址由把该节点和所有其它子节点区分开的独特的n-比特图案组成。这些n-比特被称为独特子部分。在图17所示的例子中,n-比特构成地址的最高有效位(比特),因而被称为最高有效PAST比特。将会看到,对地址比特的独特部分的其它指派也是可能的。
在指派PAST地址给NCN 60的生成树中的它的子节点以后,NCN60然后对于以每个子节点为根的子树继续进行以上的程序。在生成树中的任何节点的地址的独特部分(在图17的例子中,独特部分由K个最高有效PAST比特构成)包括树中的它的母节点的独特部分(在此例中,n个最高有效PAST比特),它和独特的子节点部分连在一起(在此例中,为独特的m-比特图案,其中m是唯一地寻址每个同属所需要的最小比特数)。因而,在本例中,各个同属的地址仅在m个最低有效位(比特)上不同。其值为零的各比特被用来作为加到K-比特的PAST地址的右边的填充物,以使得每个节点的地址呈现为相同的长度。
本处理过程的结果示于图17,其中最高有效PAST比特用下划的实线来标记。被用来填充每个PAST地址到相等长度的各零值比特没有下划线。在图17中,由于叶节点76需要6个比特用于其地址,因此所有节点地址都被填充以零以得到6比特的地址。通过检验图17可以看到,每个子节点包括其母节点的最高有效位(比特)。
如前面所讨论的那样,一旦每个节点有一个地址,就由网络控制节点(NCN)60把这些地址发送给资源紧缺的节点62-76,并把地址存储在那里的PROM中。至此结束了初始化阶段。
在监视和控制阶段,如图18所示,NCN 60等待来自用户的输入(340)。为了指令(命令)一节点执行一个操作,例如执行一特定操作,或询问一节点和请求它返回任何信息,NCN 60构建(342)一个SEND_VALUE信息包360,如图19所示,其中带有适当的命令。此信息包360被发送344,然后NCN 60等待(346)一个返回信息包。一旦操作完成或询问完成,接收模式就通过使用一个RESPONSE_SEND_VALUE信息包362返回此结果,如图20所示。此信息包被检验(348),以判决它是不是一个使用PAST协议选定路由的信息包,且如果它不是的话,则NCN 60就丢弃(350)此信息包。NCN 60也判决(354)该信息包是否为应答信息包362。如果是的话,NCN 60从而例如通过更新显示器或装置状态来处理信息包362。
当在初始化阶段结束时接收和存储逻辑PAST地址以后,每个节点(62-76)能够为那些其标记字节表明它们是通过使用被划分的生成树(PAST)协议来选定路由的信息包选定路由。在对从NCN 60下行传送的信息包监视和控制阶段期间,每个信息包通过使用PAST选定路由,并且包含信宿节点的PAST地址,例如当节点70是信宿节点时就是110111。上行传送到NCN的信息包包含发出地节点的PAST地址,例如,如果节点62是信源节点,就是111000。中间节点,如图21所示,在接收到(370)一个信息包时,判决(372)该信息包是否通过使用正确的协议进行路由选择的。如果协议是正确的,则把信息包地址和节点地址进行比较(376)。如果它们不一致,则节点把它自己的PAST地址的K个最高有效位(比特)和信息包中的PAST地址(信宿或发送者节点的PAST地址,分别对于下行和上行信息包)进行比较(378)。如果两个地址中全部K个比特一致,那么中间节点肯定位于从NCN 60到信宿/发送者节点的直接路径上。因此中间节点重新发送信息包,以使它向前发送。信息包的所有其它接收者,其PAST地址和信息包的地址没有K-比特的一致性,就阻止重新发送该信息包,并丢弃它(382)。如果信宿地址和节点地址相一致,则信息包被处理(384),并在此执行命令。根据所执行的特定处理过程,结果被放置(386)在RESPONSE_SEND_VALUE 362中(见图20),并且发送此信息包362。如果路由协议不是PAST协议,那么节点判决(390)该协议是否为带跳计数的溢出协议(FHC),如果不是的话,则信息包被丢弃(391)。如果该信息包是FHC信息包,则进行判决(392)该信息包是否为INSERT信息包(见图22)。如果不是的话,则进行判决(394)该信息包是否为INIT信息包120(见图5)。如果是的话,节点进到396初始化阶段。如果信息包是INSERT信息包,则节点建造一个HEAR_INSERT信息包401(见图23),然后发送它380。
在网络被初始化后,即所有的资源-紧缺的节点都已接收到它们的逻辑PAST地址,可能必须把一个新的资源-紧缺的节点加到网络。最简单的解决方法是把整个网络如上面所描述的那样重新初始化。然而,这在许多情况下可能是不希望的。作为一种替换的解决方法,每个新的资源-紧缺的节点可广播一个INSERT信息包400(见图22)。这个信息包被它的邻后节点(它们已被初始化)听到。这些邻居节点产生一个HEAR_INSERT信息包401(见图23),并通过使用PAST协议把它发送给NCN 60。HEAR_INSERT信息包包含新节点的物理ID,产生信息包的节点的ID以及它到NCN 60的跳-计数。
NCN 60在收集了来自新节点的多个邻居节点的HEAR_INSERT信息包以后,试着为新节点选择在生成树中的最佳位置。一个良好的位置是这样的位置,其中把逻辑PAST地址分配给新节点而对其它节点的PAST地址或PAST地址的长度很少有或根本没有改变。在图17的例子中,一个新节点可很容易地作为带有物理ID 2的节点(节点64)的子节点被插入到生成树中。任何其它的放置法都将需要改变其它节点的逻辑PAST地址。因而,如果一个新节点需要插入到节点64的邻居中,那么NCN就分配101000的逻辑PAST地址给这个新节点。然而,如果一个新节点需要插入到节点64的邻居以外,那么某些逻辑PAST地址就需要被改变,以适应新节点的PAST地址。NCN 60可能必须重新分配新的PAST地址给所有节点或许多个节点。改变的节点PAST地址和新节点的新的PAST地址通过使用SET_ADDRS信息包进行传播,并通过使用FHC路由被发送。如果需要的话,NCN 60可以开始进行全部初始化程序。
端到端的应答在本发明中被用来检测节点的故障。如果NCN发送一个对信息的请求或询问给一个节点,且没有接收到返回的应答,那么它假定,在到信宿的路径上的一个节点可能出现故障。然后,它开始沿着通向信宿的在生成树中的路径向下行进,通过使用PAST协议相继地发送ECHO(见图24)信息包402给路径上的每个节点,并等待PAST协议应答。接收到ECHO信息包402的节点简单地复制此信息包,并发回给NCN 60,这样就通知NCN 60,此节点处于正常工作状态。不能接收到对ECHO信息包402的应答,就是向NCN 60表明由ECHO信息包402寻址的节点有故障。然后NCN 60重新构建生成树以便把以失效节点为根的生成子树连接到网络的不同部分,这样子树的新的母节点就在所有新的子节点的听得见的范围内。这种重构是通过取消在原先图形中从母节点到下面的节点的连接弧,以及完成前面描述的生成树和地址分配操作来完成的。NCN 60可能必须打破部分子树,以确保子树中的所有节点被连接到生成树的其它部分。然后NCN 60分配新的逻辑PAST地址给生成树的重构部分并发送出信息包240以便把有关在受影响节点的PAST地址上的变化通知这些受影响的节点。另外,如果失效节点位于网络的关键部分,则可能需要进行网络的完全的重新初始化。
在本发明中所使用的隐含的逐跳确认(IHBH)方案也有助于检测节点故障。发送信息包的每个信源节点或中间节点都期待着听到由其邻居之一(在生成树中同一路径上的节点)重新发送的信息包。如果在规定的一段时间内没有听到重新发送,那么信源节点或中间节点就假定,节点故障阻止其信息包走过生成树的路径。信源节点或中间节点就发送出在它的适当设置的FLAG字节中有它的广播比特的SQUEAL信息包404(见图25)。SQUEAL信息包404包含发送节点的PAST地址,且它通过使用带跳计数的溢出协议选定路由到NCN 60。然后,NCN 60开始它的程序以发现沿着到进行申诉的节点的路径上的哪个节点发生故障。接着进行对部分或全部网络的重新构建。
本发明的许多特征和优点从详细的说明可以显而易见,因而,附加的权利要求想要复盖所有属于本发明的真实精神和范围内的这些特征和优点。而且,由于对于本领域技术人员来说将很容易进行多种修正和改变,因而不希望把本发明局限在已描述和显示的确切的结构和操作上,从而可被采用的所有适当的修正和等价物属于本发明的范围。例如,上述的信息包结构是可以改变的,只要每个信息包中的数据单元的功能由新信息包格式中的类似的其它区来提供。在NCN中执行的并用来为节点产生PAST地址的算法是可以改变的,只要任何新算法能产生带有可唯一地识别每个节点的子节点的比特区的PAST地址。所有节点无需都是对于存储器和处理能力来说是资源-紧缺的,协议可适合于所有类型的节点。PAST协议并不限制网络只在NCN和每个节点之间进行通信,它也可用于在非NCN节点之间的通信。在两个非NCN节点之间的通信可通过首先发送信息包给NCN,再由它把信息包发送给适当的信宿来完成。讨论描述了使用二的乘方的生成树的广度的最小化。这种最小化不需要被执行,它被提供来使PAST地址的长度最优化。被用来代表NCN中的图形的链接表数据结构可以用其它类型的数据结构(例如阵列)来替代,并且链接表数据结构的单元的次序是可以改变的,只要每个单元的功能用新的或新排序的单元来完成。
权利要求
1.配置网络的方法,包括确定网络的哪些节点可以互相通信;以及分配标识符给这些节点,其特征在于此方法包括构成可以互相通信的节点的生成树;以及分配标识符给节点是基于该生成树进行的。
2.如权利要求1所要求的方法,其特征在于,分配标识符包括分配逻辑节点标识符给一子节点,其逻辑节点标识符包括该子节点的母节点的逻辑节点标识符的独特部分。
3.如权利要求2所要求的方法,其特征在于,分配逻辑节点标识符包括为子节点构成在母节点的各子节点之间唯一区分的一个独特的子节点部分;以及通过把母节点的逻辑节点标识符的独特部分和独特的子节点部分相结合,为子节点构成子节点的逻辑节点标识符的独特部分。
4.如权利要求2或3所要求的方法,其特征在于,分配进一步包括把子节点的逻辑节点标识符发送给子节点。
5.如权利要求1,2,3或4所要求的方法,其特征在于,所述确定包括发送初始化消息给所有节点;以及把接收到的初始化消息的各节点之一作为母节点加以记录。
6.如权利要求4或5所要求的方法,其特征在于,发送包括使用带有跳计数的溢出的通信协议。
7.如权利要求5或6所要求的方法,其特征在于,该确定进一步包括对初始化消息的应答。
8.如权利要求7所要求的方法,其特征在于,所述应答包括使用母节点路由通信协议。
9.如前述权利要求的任一项所要求的方法,其特征在于,该方法进一步包括在增加节点到网络中或从网络中去除节点时,通过使用划分的生成树通信协议进行通信,来重新配置网络。
10.如前述权利要求的任一项所要求的方法,其特征在于,所述构成包括通过对响应于最接近的二的乘方的节点进行分段的方法来使网络的广度最小化。
11.如前述权利要求的任一项所要求的方法,其特征在于,生成树包括链接表数据结构,其表项包括母指针,子指针,节点的节点物理标识符,母节点物理标识符,跳计数以及划分的生成树逻辑标识符。
12.在节点网络内为消息选定路由的方法,其中节点由唯一的节点标识符识别,其特征在于节点构成可互相通信的节点的生成树;子节点的标识符的独特部分包括子节点的母节点的标识符的独特部分;以及所述方法包括当消息地址包括当前节点标识符的独特部分时,把消息发送给另一节点。
13.如权利要求12所要求的方法,其特征在于,子节点的标识符的独特部分还包括在母节点的所有子节点中间唯一地识别该子节点的独特子节点部分。
14.如权利要求12或13所要求的方法,其特征在于,消息地址和节点标识符在格式上基本上相一致。
15.如权利要求12,13或14所要求的方法,其特征在于,所述方法包括通过把消息地址只和接收节点的标识符相比较来确定接收消息的接收节点是否在到信宿节点的路径上。
16.如权利要求12,13,14或15所要求的方法,其特征在于,发送包括把消息地址和当前节点标识符进行比较,且如果出现一致,则处理该消息;把当前节点标识符的独特部分和消息地址的相应部分进行比较;如果相应部分不一致则丢弃该消息;以及如果相应部分一致则发送该消息。
17.如权利要求12,13,14,15或16所要求的方法,其特征在于,所述方法还包括确定被发送的消息是否已被重新广播;以及当消息未被重新广播时,表明一个失效的节点。
18.如权利要求17所要求的方法,其特征在于,所述方法还包括相继地轮询沿着到故障节点的路径上的所有节点;以及基于对轮询的应答,重新配置网络。
19.如权利要求12到18的任一项所要求的方法,其特征在于,所述方法包括发送由节点接收到的所有上行信息包给该节点的母节点。
20.包括多个节点的通信网络,其中节点由唯一的节点标识符识别,其特征在于节点构成可互相通信的节点的生成树;以及子节点的标识符的独特部分包括子节点的母节点的标识符的独特部分。
21.如权利要求20所要求的通信网络,其特征在于,网络包括网络控制节点,其中网络控制节点和网络节点的每个包括无线发射机/接收机,通过它们使网络控制节点和网络节点进行通信。
22.一种包括指引计算机配置节点网络的方法的计算机可读存储器,该方法包括确定网络的哪些节点可以互相通信;以及基于划分的生成树协议,分配标识符给节点。
23.通信网络节点,包括存储节点的逻辑标识符的存储器;以及处理器,用于确定节点是否处在去到信宿节点的消息路径上,其特征在于,处理器被设计成通过把消息的消息地址只和节点的逻辑标识符相比较来执行所述的确定。
24.如权利要求23所要求的节点,其特征在于,所述处理器把逻辑标识符的独特部分和消息地址的相应部分进行比较。
25.用于通信网络的网络控制节点,包括存储网络结构的存储器;以及处理器,其特征在于,处理器被设计成确定网络节点的划分的生成树标识符、在网络配置中存储标识符以及通过使用网络配置发送消息给节点。
全文摘要
包括可具有最少硬件资源,例如,存储器和处理能力的节点的多跳广播网络的系统。藉收集有关哪些节点可通过使用带跳计数的溢出和母节点路由协议进行互相通信的信息来配置网络。产生划分的生成树以及分配节点标识符,使得子节点的标识符包括作为它的最高有效位的其母节点的标识符。这就允许使用节点的标识符来确定节点是否要处理或节点是否要重新发送信息包,从而节点只使用它本身的标识符便可作出完整的信息包路由决定。
文档编号H04L12/56GK1161119SQ96190889
公开日1997年10月1日 申请日期1996年6月27日 优先权日1995年6月30日
发明者A·V·达斯吉普塔 申请人:菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1