CN105009642B - 通信方法、通信程序以及节点装置 - Google Patents
通信方法、通信程序以及节点装置 Download PDFInfo
- Publication number
- CN105009642B CN105009642B CN201380073933.7A CN201380073933A CN105009642B CN 105009642 B CN105009642 B CN 105009642B CN 201380073933 A CN201380073933 A CN 201380073933A CN 105009642 B CN105009642 B CN 105009642B
- Authority
- CN
- China
- Prior art keywords
- node
- cluster
- relay
- node apparatus
- subnet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
- H04W88/04—Terminal devices adapted for relaying to or from another terminal or user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/85—Active fault masking without idle spares
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及通信方法、通信程序以及节点装置。使簇间的通信更高效。从第1组选择选择装置,第1组位于第1簇中并且是能够同与第1簇邻接的第2簇中的节点装置进行通信的节点装置的组。选择装置与邻接的节点装置之间收发通知帧,通知帧通知第1组所包括的节点装置的标识符。选择装置从第1组选择对中继帧进行中继的第1中继装置,中继帧用于第1簇中的节点装置与第2簇中的节点装置之间的通信。第1中继装置将第2组所包括的节点装置中与第1中继装置邻接的节点装置决定为第2中继装置,第2中继装置向第2簇中的节点装置中继中继帧。第2组位于第2簇中并且是能够与第1簇中的节点装置进行通信的节点装置的组。
Description
技术领域
本发明涉及在包括多个节点装置的网络中进行的通信。
背景技术
参加自组织网络的节点装置通过与其它节点装置之间收发Hello帧(问候帧),能够形成网络。例如,属于某自组织网络的节点A生成包括节点A所保持的路径信息的Hello帧,并周期性地广播。接收到Hello帧的节点B对节点B所保持的路径信息和Hello帧所包含的信息进行比较,从Hello帧获取节点B没有保持的路径信息。
若自组织网络所包括的节点装置的数量变大,则如图1所示,有时自组织网络被分为多个簇。图1的黑色圆表示节点装置。在图1的例子中,自组织网络被分为簇A~C。图1所示的虚线表示来自各节点装置的电波到达的范围。例如,由于来本节点N1的电波到达节点N2、N4等,所以节点N1能够将帧发送至节点N2、N4。如节点N1那样,位于多个簇相接的边界附近的节点装置能够访问邻接簇所包括的节点装置。因此,例如,如图1中的双划线所示,若形成簇间的通信路径,则簇A所包括的节点装置能够经由节点N1~N3中的任意一个与其它簇所包括的节点装置进行通信。同样地,簇B所包括的节点装置能够经由节点N4~N7与其它簇中的节点装置进行通信,簇C所包括的节点装置能够经由节点N8~N11与其它簇中的节点装置进行通信。
作为相关的技术,也已知一种多个移动节点被分为多个移动组的网络。管理员将移动组所包括的移动节点的一个静态地设定为移动组的组主导。移动组主导进行移动组的管理控制。
专利文献1:日本特表2009-508434号公报
随着自组织网络中的节点装置的数量增大,能够与邻接的簇中的节点装置进行通信的节点装置的数量也有可能增大。不进行簇间通信的节点装置向属于与该节点装置相同的簇的节点装置中能够与邻接的簇中的节点装置进行通信的节点装置转发发往其它簇中的节点装置的帧。因此,对于要与其它簇中的节点装置进行通信的节点装置来说,若能够与邻接的簇中的节点装置进行通信的节点装置的数量增大,则帧的转发目的地的候补的数量增大。在可成为帧的转发目的地的节点装置的数量较多的情况下,节点装置进行用于决定帧的转发目的地的处理,所以帧的转发处理变得复杂起来。另外,若路径的决定处理变得复杂起来,则路径的决定所花费的时间也变长,有可能会产生延迟。
发明内容
本发明在一个方面的目的在于使簇间的通信变得高效。
在实施方式所涉及的方法中,从第1组选择选择装置,上述第1组位于第1簇中并且是能够同与上述第1簇邻接的第2簇中的节点装置进行通信的节点装置的组。选择装置在同与上述选择装置邻接的节点装置之间收发通知帧,上述通知帧通知上述第1组所包括的节点装置的标识符。上述选择装置从上述第1组选择对中继帧进行中继的第1中继装置,上述中继帧用于上述第1簇中的节点装置与上述第2簇中的节点装置之间的通信。上述第1中继装置将第2组所包括的节点装置中与上述第1中继装置邻接的节点装置决定为第2中继装置,上述第2中继装置向上述第2簇中的节点装置中继上述中继帧。此处,第2组位于上述第2簇中并且是能够与上述第1簇中的节点装置进行通信的节点装置的组。
簇间的通信得以高效化。
附图说明
图1是表示自组织网络的例子的图。
图2是说明实施方式所涉及的通信方法的例子的图。
图3是表示Hello帧的格式的例子的图。
图4是表示节点装置的构成的例子的图。
图5是表示从侧簇表的例子的图。
图6是表示主侧簇信息和主侧簇表的例子的图。
图7是表示节点装置的硬件构成的例子的图。
图8是说明子网关的设定方法的例子的图。
图9A是说明第1实施方式中进行的处理的例子的时序图。
图9B是说明第1实施方式中进行处理的例子的时序图。
图10表示主侧簇表的例子的图。
图11是表示从侧簇表和主侧簇表的例子的图。
图12是表示主侧簇表和从侧簇表的例子的图。
图13是表示主侧簇表的例子的图。
图14是表示从侧簇表的例子的图。
图15是说明子网关的变更方法的例子的图。
图16是表示主侧簇表的例子的图。
图17是表示主侧簇表和从侧簇表的例子的图。
图18是表示主侧簇表的例子的图。
图19是表示主侧簇表的例子的图。
图20是表示节点装置进行的处理的例子的流程图。
图21A是说明主侧簇信息的处理的例子的流程图。
图21B是说明主侧簇信息的处理的例子的流程图。
图22是说明Hello帧的发送源所属的簇的信息的处理的例子的流程图。
图23是说明主侧子网关的更新处理的例子的流程图。
图24是表示数据帧的例子的图。
图25是表示第2实施方式所使用的主侧簇表的例子的图。
图26是表示第2实施方式所使用的从侧簇表的例子的图。
图27是说明故障发生所造成的子网关的变更方法的例子的图。
图28是表示主侧簇表的例子的图。
图29是表示主侧簇表的例子的图。
图30是说明故障发生时主侧簇中的边界节点进行的处理的例子的流程图。
图31是说明故障发生时从侧簇中的边界节点进行的处理的例子的流程图。
图32A是说明第2实施方式中的主侧簇信息的处理的例子的流程图。
图32B是说明第2实施方式中的主侧簇信息的处理的例子的流程图。
图33是说明Hello帧的发送源所属的簇的信息的处理的例子的流程图。
具体实施方式
图2是说明实施方式所涉及的通信方法的例子的图。图2中,为了容易理解,以分成2个簇的无线自组织网络为例进行说明。
能够与邻接的簇所包括的节点装置进行通信的节点装置将通知帧发送给邻接的节点装置,上述通知帧包括该节点装置的标识符(节点ID)和所参加的簇的标识符(簇ID)。图2中,为了容易理解,用实线连结相互邻接的节点装置。与某节点装置“邻接”的节点装置是指位于能够接收从某节点装置发送的帧的范围内的节点装置。另外,有时将位于能够接收从某节点装置发送的帧的范围的节点装置记载为该节点装置的“邻接节点装置”。
节点装置对所参加的簇的簇ID和接收到的通知帧所包含的簇ID进行比较。在簇ID所包含的数值较小的簇所包括的节点装置之间,选择对中继装置进行选择的节点装置。以下,将选择中继装置的节点装置记载为“选择装置”。以下,用粗线表示选择装置。在图2的(a)的例子中,簇ID=1中的节点A被选择为选择装置。
选择装置从位于包括选择装置的簇中的节点装置中的、能够与邻接的簇中的节点装置进行通信的节点装置中,选择第1中继装置。选择装置向选择装置的邻接节点通知第1中继装置的节点ID。被通知第1中继装置的节点ID的节点装置向属于相同的簇的邻接节点装置,通知第1中继装置的节点ID。例如,在图2的(a)的例子中,节点B被选择为第1中继装置。另外,簇ID=1所包括的节点装置使用来自节点B的通知,来识别节点B为第1中继装置这一情况。
分配给本节点的节点ID和作为第1中继装置进行动作的节点的ID一致的节点装置识别对本节点位于的簇与邻接的簇之间的通信进行中继。并且,第1中继装置从邻接的节点装置中的邻接簇所包括的节点装置选择第2中继装置。第1中继装置请求第2中继装置开始中继簇间的通信。第2中继装置根据来自第1中继装置的请求,识别被选择为进行簇间通信的中继的节点装置这一情况。在图2的(b)的例子中,被选择为第1中继装置的节点B将作为邻接簇中的邻接节点的节点C选择为第2中继装置。节点C向簇ID=7所包括的其它节点装置通知节点C为第2中继装置这一情况。
之后,第1中继装置和第2中继装置对簇间通信进行中继。因此,在图2的(b)的例子中,簇ID=1的簇所包含的节点装置将发往簇ID=7的簇所包括的节点装置的帧发送给节点B。节点B将发往簇ID=7的簇中的节点装置的帧转发给节点C转发。节点C向目的地的节点装置发送帧。另外,簇ID=7的簇中的节点装置将发往簇ID=1的簇中的节点装置的帧发送给节点C。节点C将发往簇ID=1的簇中的节点装置的帧发送给节点B。节点B将从节点C转发来的帧发送给目的地的节点装置。
这样,在邻接的2个簇中的一方自主决定中继簇间的节点装置,所以对簇间通信进行中继的节点装置的数量减少。并且,从相同簇内的选择装置被选择为对簇间通信进行中继的中继装置的第1中继装置为第1中继装置的邻接节点装置,从邻接的簇中的节点装置选择第2中继装置。因此,即使在未自主地选择对簇间通信进行中继的节点装置的簇中,也限定了对簇间通信进行中继的节点的数量。由于对簇间通信进行中继的节点的数量减少,所以路径的决定处理被简单化,缩短了路径的决定所花费的时间。
<通知帧>
有时使用Hello帧作为通知帧。另外,Hello帧也可以包括用于请求作为第1或者第2中继装置进行动作的信息。若这样变形,则不使用Hello帧以外的控制帧就能够设定中继装置,所以能够设定中继装置,而不会对网络带来负荷。
以下,以使用Hello帧作为通知帧的情况为例进行说明。在以下的说明中,有时将能够直接与邻接的簇所包括的节点装置进行通信的节点装置记载为“边界节点”。另外,将进行簇间通信的节点装置记载为“子网关”。并且,将从相同簇中的节点装置选择子网关的节点装置记载为“主导节点”。为了容易区别邻接的簇,将邻接的簇的组合中主导节点所属的簇记载为“主侧簇”,将不包括主导节点的簇记载为“从侧簇”。因此,被设定成子网关的节点装置是图2中所说明的中继装置的例子,被选择为主导节点的节点装置是参照图2进行说明的选择装置的例子。主导节点从主侧簇中的边界节点中选择子网关。在主侧簇中所选择的子网关变成选择从侧簇的子网关。
图3表示Hello帧的格式的例子。Hello帧包括帧类型、地址信息、路径信息、簇信息(Cluster Information,CI)、主侧簇信息(Master Cluster Information,MCI)、邻接簇数(Cluster Count,CCNT)。地址信息包括全局目的地(Global Destination,GD)、全局发送源(Global Source,GS)、本地目的地(Local Destination,LD)、本地发送源(Local Source,LS)。此外,Hello帧中的主侧簇信息字段由主侧簇所包括的边界节点所生成的Hello帧使用。
帧类型是唯一表示帧种类的信息。例如,在Hello帧中设定为帧类型=0,在数据帧中设定为帧类型=1。“全局目的地”是指帧的最终目的地。另一方面,将生成帧的节点装置记载为“全局发送源”。“本地目的地”是指为了将帧发送至最终目的地而进行的1跳转发时,被指定为目的地的节点装置。“本地发送源”是转发1跳帧的情况下的转发源的节点装置。从发送源的节点装置向1跳的节点装置广播Hello帧。因此,在Hello帧的情况下,本地发送源和全局发送源都是生成了Hello帧的节点装置。另外,Hello帧的本地目的地和全局目的地都是表示向全部邻接节点装置广播的地址。
路径信息包括识别保持生成了Hello帧的节点装置发送帧的路径的节点装置的信息。簇信息是与生成了Hello帧的节点装置所参加的簇有关的信息。簇信息包括簇ID、簇内所包括的节点装置的标识符。并且,对于簇内设定成子网关的节点装置,簇信息也包括表示与分配给节点装置的标识符建立对应地设定成子网关的信息。以下,簇的标识符是在字母C后附加为了唯一确定簇而使用的数值而成的。另一方面,节点装置的标识符是在字母N后附加为了唯一确定节点装置而使用的数值而成的。此外,簇信息根据安装情况还可以包括其它信息。例如,在动态地形成簇的系统中,簇信息有时包含表示簇所包括的节点装置的数量是否达到上限的信息。
为了通知主侧簇的边界节点所保持的信息而使用主侧簇信息字段。对于使用主侧簇信息字段所通知的信息,在后面叙述。
邻接簇数是包括生成了Hello帧的节点装置能够进行通信的节点装置的簇中的、生成了Hello帧的节点装置所参加的簇以外的簇的数量。例如,簇C1中的节点N1的邻接节点装置是节点N2~N6,节点N2~N4包含于簇C1,节点N5包含于簇C2,节点N6包含于簇C3。该情况下,节点N1的邻接簇数为2。
<装置构成>
图4表示节点装置10的构成的例子。图4是通过Hello帧来进行中继装置的设定的情况下所使用的节点装置10的例子。
节点装置10具备接收部11、发送部12、帧处理部13、Hello帧生成部14、数据帧处理部15、簇处理部20、路由处理部25、子网关设定部30、以及存储部50。簇处理部20具有簇管理部21和提取处理部22。路由处理部25具有路径信息处理部26和转发处理部27。子网关设定部30具备处理种类判定部31、从侧表更新部32、主侧表更新部33、以及决定处理部40。决定处理部40具有主导节点确定部41、子网关选择部42、以及中继目的地决定部43。存储部50保持节点种类信息51、路由表52、主侧簇表53、从侧簇表54、簇信息表55、以及数据56。
接收部11接收发送给节点装置10的帧。接收部11将接收到的帧发送给帧处理部13。帧处理部13确认输入的帧所包含的帧类型。帧类型的值根据帧种类而不同,例如,在Hello帧和数据帧中,为不同的值。帧处理部13能够预先存储与节点装置10有可能接收的帧的种类分别对应的帧类型的值,另外,也能够适当地从存储部50获取。帧处理部13将Hello帧输出给提取处理部22和路径信息处理部26,并将数据帧输出给数据帧处理部15。发送部12将从Hello帧生成部14、数据帧处理部15或者转发处理部27输入的帧发送给帧的本地目的地。Hello帧生成部14周期性地生成Hello帧。Hello帧生成部14将Hello帧输出给发送部12。数据帧处理部15利用应用程序对发往本节点的帧进行处理。另一方面,在从帧处理部13输入的帧的全局目的地为其它的节点装置10的情况下,数据帧处理部15对转发处理部27输出帧。
簇处理部20进行与簇的生成、维持有关的处理。此处,簇既可以静态地决定也可以动态地生成。簇管理部21对每个簇所包含的节点装置10的信息进行处理。簇管理部21在静态地决定簇所包含的节点装置10的情况下,基于簇信息表55来确定本节点所参加的簇。簇信息表55与簇的标识符建立对应地记录该簇所包括的节点装置10的标识符。另一方面,在根据自组织网络所包括的节点装置10的数量、节点装置10的位置等,动态地决定簇的情况下,簇管理部21进行簇的生成处理。该情况下,簇管理部21也进行簇的生成、统一等。并且,簇管理部21更新簇信息表55。
提取处理部22从自邻接的节点装置10接收的Hello帧提取簇信息、主侧簇信息、邻接簇数。提取处理部22将Hello帧所包含的簇信息输出给簇管理部21。并且,提取处理部22将簇信息、主侧簇信息、以及邻接簇数输出给处理种类判定部31。
路由处理部25进行与帧的路由有关的处理。路径信息处理部26从自邻接的节点装置10接收的Hello帧获取路径信息,并生成路由表52。转发处理部27根据帧的全局目的地,使用路由表52来决定转发目的地。
子网关设定部30进行与子网关的决定有关的处理。处理种类判定部31判定本节点是否已成为边界节点。在本节点为边界节点的情况下,处理种类判定部31还判定主侧簇是否包括本节点。处理种类判定部31根据判定结果,来决定从提取处理部22输入的信息的输出目的地。处理种类判定部31通过比较本节点所参加的簇的簇ID和从提取处理部22输入的簇信息所包含的簇ID,来进行判定。在未接收到包括本节点所参加的簇ID以外的簇ID的Hello帧的情况下,不对处理种类判定部31输入本节点所参加的簇以外的簇的簇ID。该情况下,处理种类判定部31判定为本节点不是边界节点。因此,处理种类判定部31废弃从提取处理部22输入的信息。
另一方面,对处理种类判定部31输入包括比本节点所参加的簇的簇ID大的数字的簇ID。因此,处理种类判定部31判定为本节点所参加的簇是相对于利用输入的簇ID识别的簇的主侧的簇。因此,处理种类判定部31判定为本节点作为主侧簇的边界节点进行动作。因此,处理种类判定部31将主侧簇信息和邻接簇数输出给主导节点确定部41。
在输入包括比本节点所参加的簇的簇ID小的数字的簇ID的情况下,处理种类判定部31判定为本节点所参加的簇是相对于利用输入的簇ID识别的簇的从侧的簇。因此,处理种类判定部31判定为本节点作为从侧簇的边界节点进行动作。因而,处理种类判定部31将主侧簇信息和邻接簇数输出给从侧表更新部32。
在判定为是从侧簇的边界节点的情况下,从侧表更新部32使用从处理种类判定部31输入的信息,来更新从侧簇表54。图5表示从侧簇表54的例子。从侧簇表54将在主侧簇所设定的子网关的节点标识符与每个主侧簇建立对应地记录。在图5的例子中,示出成为主侧簇的邻接簇为多个(m个)的情况。另外,在图5的例子中,对与主侧簇之间的通信进行中继的子网关也为多个。例如,对与簇C1的通信进行中继的子网关的数量为k1个,在与簇C2的通信中为k2个,在与簇Cm之间为km个。
主侧表更新部33、主导节点确定部41、子网关选择部42、中继目的地决定部43在判定为是主侧簇的边界节点的节点装置10中进行动作。主侧表更新部33使用主侧簇信息,来更新主侧簇表53。图6的(a)表示Hello帧所包含的主侧簇信息的例子。主侧簇信息是将子网关的设定所使用的信息和主导节点的信息与分配给从侧簇的簇ID建立对应的信息。子网关的设定所使用的信息包括从侧簇的子网关的标识符(SID)、主侧簇的子网关的标识符(MGW)、主侧簇的子网关的邻接簇数(SGWCNT)。与主侧子网关有关的序列编号(SGWSN)也包含于主侧簇信息。与主侧子网关有关的序列编号按照主侧子网关的每个Hello为不同的值,被用作与主侧子网关有关的信息的新指标。
主侧簇的主导节点的信息、主侧簇内的子网关候补的信息也包含于主侧簇信息。主侧簇的主导节点的信息包括主导节点的标识符(LID)、和与主导节点有关的序列编号(LIDSN)。与主导节点有关的序列编号是在主导节点生成的每个Hello帧加1而成的值。与主导节点有关的序列编号被用作与主导节点有关的信息的新指标。主侧簇内的子网关候补(CSID)包括被判定为与主侧簇的当前子网关相比作为子网关的条件良好的节点装置10的信息。子网关候补的邻接簇数(CSCNT)与子网关候补的节点ID建立对应。
主侧簇表53是对从侧的每个邻接簇记录主侧簇信息的表。图6的(b)表示主侧簇表53的例子。在图6的(b)的例子中,邻接的从侧的簇的数量为n个。此外,n能够取任意的自然数。
主导节点确定部41将主侧簇信息所包含的主导节点和本节点中的任意一个确定为主导节点。在本节点为主导节点的情况下,将主侧簇信息输出给子网关选择部42,请求选择子网关。另一方面,在本节点不是主导节点的情况下,将主侧簇信息输出给主侧表更新部33。主导节点确定部41将确定出的结果记录于主侧簇表53的主导节点的栏中。主导节点的选择基准预先在各节点装置10中设定。主导节点的选择基准如果在各节点装置10中是同一基准,则能够根据安装情况任意地设定。后面,以节点ID所包含的数值越小,越容易被选择为主导节点的情况为例,对主导节点的选择方法进行说明。
子网关选择部42在被选择为主导节点的节点装置10中进行动作。子网关选择部42决定主侧簇中作为子网关进行动作的节点装置10。主侧簇中的子网关的选择基准预先在各节点装置10的子网关选择部42中设定。主侧簇中的子网关的选择基准如果在各节点装置10中是同一基准,也能够根据安装情况任意地设定。后面,以邻接簇数越大,越容易被选择为子网关的情况为例,对子网关的选择方法进行说明。主导节点的子网关选择部42将选择为子网关的节点装置10的标识符和邻接簇数记录于主侧簇表53。在主侧簇信息包含子网关候补信息的情况下,子网关选择部42比较之前决定的子网关和通知的子网关候补,并将一方选择为子网关。
中继目的地决定部43在被决定为主侧簇的子网关的节点装置10中进行动作。中继目的地决定部43从从侧簇所包含的邻接节点装置选择簇间通信所使用的作为帧的中继目的地的节点装置10。此处所选择的节点装置10为从侧簇中的子网关。中继目的地决定部43将决定的中继目的地的信息记录于主侧簇表53。
节点种类信息51对表示本节点是否被设定成子网关的信息进行保持。数据56是帧处理部13、Hello帧生成部14、数据帧处理部15、簇处理部20、路由处理部25、子网关设定部30的处理所使用的数据。数据56除了包括由操作人员等设定的数据之外,还包括通过帧处理部13、Hello帧生成部14、数据帧处理部15、簇处理部20、路由处理部25、子网关设定部30的处理所得的数据。
图7是标黄色节点装置10的硬件构成的例子的图。节点装置10具备处理器100、总线101(101a~101c)、计时器IC104、Dynamic Random access Memory(DRAM)106、闪存107、以及无线模块108。节点装置10能够包括有线通信所使用的PHYsical layer(PHY)芯片102作为选项。总线101a~101c以能够进行数据的输入输出的方式连接处理器100、PHY芯片102、计时器IC104、DRAM106、闪存107、以及无线模块108。
处理器100是包括MicroProcessingUnit(MPU:微处理器)等任意处理电路。处理器100读取储存在闪存107中固件等程序来进行处理。此时,处理器100能够将DRAM106用作工作存储器。在节点装置10中,处理器100作为帧处理部13、Hello帧生成部14、数据帧处理部15、簇处理部20、路由处理部25、子网关设定部30进行动作。在节点装置10中,DRAM106作为存储部50进行动作。接收部11和发送部12通过无线模块108来实现。
计时器IC104在发送Hello帧的间隔的计测、对从邻接的节点装置10接收Hello帧的间隔进行计测时使用。换句话说,计时器IC104作为Hello帧生成部14、路径信息处理部26等的一部分进行动作。
此外,固件等程序被储存于计算机可读取的存储介质而被提供,也可以安装于节点装置10。或者,程序也可以从网络经由PHY芯片102、无线模块108下载而安装于节点装置10中。另外,根据实施方式,有时利用DRAM106、闪存107以外的其它种类的存储装置。另外,节点装置10也可以由计算机来实现。
<第1实施方式>
以下,分为在新设定子网关的情况下、和因节点装置10的增减而变更子网关的情况,对子网关的设定方法的例子进行说明。
〔子网关的设定〕
图8是说明子网关的设定方法的例子的图。在图8的例子中,簇C1和簇C7邻接。簇C1包括节点N1~N5,簇C7包括节点N6~N8。通过与邻接节点之间收发Hello帧,识别为能够接收来自邻接的簇所包括的节点装置的Hello帧的节点装置是边界节点。在图8的(a)的例子中,节点N3~N6、N8能够成为边界节点。图8中,利用虚线围起能够成为边界节点的节点。边界节点通过比较邻接的节点装置所属的簇的簇ID、和本节点所参加的簇的簇ID,来决定主侧簇。图8的(a)的情况下,簇C1成为主侧簇,簇C7成为从侧簇。因此,节点N3~N5作为主侧簇的边界节点进行动作,节点N6和N8作为从侧簇的边界节点进行动作。
从主侧簇的边界节点中选择主导节点。在节点ID所包含的数值越小越容易成为主导节点的情况下,如图8的(b)所示,节点N3被设定为主导节点。主导节点选择主侧簇中的子网关。在主侧簇中的边界节点未被选择为主导节点的情况下,不能选择子网关,而遵从主导节点的选择。在图8的(c)的例子中,作为主导节点的节点N3将节点N3选择为子网关。因此,在图8的(c)的例子中,节点N3兼作主导节点和子网关。主侧簇的子网关从参加从侧簇的邻接节点决定从侧簇中的子网关。在图8的(d)的例子中,节点N3将节点N6决定为从侧子网关。
此处,根据发送Hello帧的顺序的不同,有时在主导节点决定了子网关后,会产生与已经作为子网关进行动作的节点装置10相比作为子网关的条件良好的节点装置10。因此,主侧簇中的边界节点使用主侧簇信息,来判定是否存在与当前被设定为子网关的节点装置10相比作为子网关的条件良好的节点装置10。若主导节点发现作为子网关的条件更好的节点装置10,则变更子网关。若主导节点以外的边界节点发现与当前被设定为子网关的节点装置10相比作为子网关的条件良好的节点装置10,则将发现的节点装置10的信息作为子网关候补通知给主导节点。主导节点将从主侧簇内的其它边界节点通知的子网关候补的条件与被设定为子网关的节点装置10的条件相比较。如果子网关候补的条件较好,则主导节点变更主侧簇的子网关。从侧簇能够变更主侧簇的子网关。例如,若主侧簇的子网关发现比从侧子网关好的条件的节点装置10则变更子网关。
图9A、图9B是说明第1实施方式中进行的处理的例子的时序图。以下,使用图9A、图9B,对包括变更子网关的过程在内子网关的决定方法的具体例子进行说明。此外,图9A、图9B也说明图8的(a)所示的自组织网络中的例子。此外,在顺序(1)的阶段中,任何的节点装置10都不知晓是否已成为边界节点。另外,在说明图9A、图9B时,有时参照示出主侧簇表53、从侧簇表54的例子的其它图。因此,在图10的(a)~图14中,在表的参照编号后隔着下划线来记载表被更新的次序的编号。例如,通过次序(2)所得的主侧簇表53附加“53_2”这个编号。另外,为了使图的参照变得容易,图9A和图9B表示更新后的表的编号。
(1)若成为生成Hello帧的时刻,则节点N6的Hello帧生成部14生成Hello帧。Hello帧生成部14从簇管理部21获取簇ID(C7),并生成包括以下那样的信息要素的Hello帧。
类型:Hello帧
GS:节点N6
LS:节点N6
簇信息中的簇ID:C7
主侧簇信息:无
邻接簇数:0
Hello帧生成部14将生成的Hello帧输出给发送部12。节点N6的发送部12向邻接的节点装置10发送Hello帧。
(2)节点N3接收从节点N6发送的Hello帧。以下,参照图8,分为次序(2a)~(2d),详细地说明节点N3从N6接收到Hello帧时进行的处理。
(2a)节点N3的帧处理部13将经由接收部11从节点N6接收的Hello帧输出给提取处理部22。提取处理部22将从节点N6接收的Hello帧所包含的簇信息和邻接簇数输出给处理种类判定部31。节点N3的处理种类判定部31存储有节点N3所参加的簇的簇ID为C1这一情况。处理种类判定部31根据节点N3所参加的簇的簇ID为C1这一情况、以及接收到的Hello帧所包含的簇ID为C7这一情况,来判定为节点N3是边界节点。并且,C1和C7中,C1的簇ID中的数字较小,所以如图8的(a)所示,处理种类判定部31将簇C1在与簇C7的组合中设为主侧簇。
(2b)处理种类判定部31将从提取处理部22输入的信息输出给主导节点确定部41。由于节点N3中从哪个节点装置10都没发送来包括主侧簇信息的Hello帧,所以节点N3的主导节点确定部41识别出是边界节点这一情况的节点仅是节点N3。因此,主导节点确定部41如图8的(b)所示,将节点N3设定为主导节点。并且,主导节点确定部41在主侧簇表53中记录以下的信息。
邻接簇ID:C7
主导节点的节点ID:N3
主导节点的序列编号:0
(2c)节点N3的主导节点确定部41请求子网关选择部42选择子网关。子网关选择部42从簇C1中与簇C7的边界节点中将邻接簇数最多的节点装置10选择为子网关。此处,节点N3未识别到节点N3以外的节点作为簇C1与C7之间的边界节点。因此,节点N3的子网关选择部42如图8的(c)所示,将节点N3选择为子网关。因而,子网关选择部42在主侧簇表53的邻接簇ID=C7的项记录以下的信息。
子网关的节点ID:N3
子网关的序列编号:0
子网关的邻接簇数:1
子网关候补:无
子网关候补的邻接簇数:0
(2d)节点N3的中继目的地决定部43将节点N3决定为主侧簇的子网关,所以决定从侧簇的子网关。由于节点N3从节点N6接收到Hello帧,所以中继目的地决定部43判定为节点N6是从侧簇的C7所包括的邻接节点装置。在该时刻,由于未另外检测出从侧簇的C7所包括的邻接节点装置,所以中继目的地决定部43将节点N6选择为从侧簇中的子网关。若将节点N6决定为子网关,则如图8的(d)所示,设定子网关。中继目的地决定部43将所决定的中继目的地的信息记录于主侧簇表53的邻接簇ID=C7的项(entry)中。
通过次序(2a)~(2d)的处理,节点N3所保持的主侧簇表53如图10的(a)所示。其中,在次序(2d)的阶段中,决定节点N3对节点N6请求作为子网关进行动作,但节点N6还未作为子网关进行动作。
(3)在图9A的次序(3)中,对节点N5从节点N6接收到的Hello帧进行处理。节点N5中进行的处理与次序(2)所述的处理相同。通过节点N5中的处理,节点N5所保持的主侧簇表53如图10的(b)所示。
(4)节点N8从节点N6接收Hello帧。接收部11、帧处理部13、提取处理部22的处理如以次序(2a)中节点N3的情况为例所说明那样。处理种类判定部31根据节点N8所参加的簇的簇ID为C7这一情况、以及接收到的Hello帧所包含的簇ID也为C7这一情况,来判定为节点N8不是边界节点。因此,节点N8的处理种类判定部31废弃从提取处理部22输入的信息。另一方面,在根据从相同簇内的节点装置10接收到Hello帧,路径信息处理部26获取Hello帧所包含的路径信息,并更新路由表52。若节点N7也接收来自节点N6的Hello帧,则与节点N8同样地处理。
(5)若成为生成Hello帧的时刻,则节点N3的Hello帧生成部14生成Hello帧。Hello帧生成部14从簇管理部21获取簇ID(C1)。并且,Hello帧包括从图10的(a)所示的主侧簇表53生成的主侧簇信息。主侧簇信息所包含的要素如图6的(a)所示的情况下,生成的Hello帧中包括以下的信息要素。
类型:Hello帧
GS:节点N3
LS:节点N3
簇信息中的簇ID:C1
簇信息中的子网关:节点N3
邻接簇数:1
主侧簇信息
邻接簇ID:C7
从侧子网关的节点ID:N6
主导节点的节点ID:N3
主导节点的序列编号:1
子网关的节点ID:N3
子网关的序列编号:1
子网关的邻接簇数:1
子网关候补:无
子网关候补的邻接簇数:0
Hello帧生成部14将生成的Hello帧输出给发送部12。节点N3的发送部12向邻接的节点装置10发送Hello帧。
(6)节点N4从节点N3接收Hello帧。由于在该时刻,节点N4未从簇C7所包括的节点装置10接收到Hello帧,所以节点N4未识别出节点N4是边界节点。并且,节点N4的处理种类判定部31根据节点N4参加簇C1这一情况、以及接收到的Hello帧所包含的簇ID也为C1这一情况,来判定为节点N4不是边界节点。因此,在节点N4中,与次序(4)的节点N7、N8同样地不进行作为边界节点的处理。此外,在从节点N3接收到的Hello帧的簇信息中记录节点N3为子网关这一情况。因此,节点N4的簇管理部21识别出节点N3为簇C1中的子网关这一情况。
(7)节点N2也从节点N3接收Hello帧。节点N2的处理种类判定部31判定为节点N2不是边界节点,所以节点N2不进行作为边界节点的处理。节点N2的簇管理部21也与节点N4同样地,通过读取Hello帧中的簇信息,来识别节点N3为簇C1中的子网关。
(8)节点N5从节点N3接收Hello帧。节点N5的处理种类判定部31在次序(3)中,将节点N5判定为在簇C1与C7之间的子网关的设定时作为主侧簇中的边界节点进行动作。因此,处理种类判定部31将从节点N3接收到的Hello帧所包含的主侧簇信息输出给主导节点确定部41。
节点N5的主导节点确定部41比较主侧簇信息所包含的主导节点的节点ID、和节点N5保持的主侧簇表53的主导节点的信息。由Hello帧通知来的主导节点为节点N3,记录在主侧簇表53中的主导节点为节点N5。因此,主导节点确定部41判定为与节点N5相比节点N3作为主导节点的条件较好,如图10的(c)所示,变更主导节点的设定。
由于节点N5不是主导节点,所以主侧表更新部33按照从节点N3通知的主侧簇信息,来变更主侧簇表53。因此,如图10的(c)所示,主侧簇的子网关按照作为主导节点的节点N3的决定,变更为节点N3。并且,主侧表更新部33按照主导节点的决定也更新从侧簇的子网关。此处,在接受来自节点N3的通知前,节点N5决定将节点N6作为从侧的子网关,所以不变更从侧簇的子网关的设定。
并且,节点N5的簇管理部21基于簇信息,来识别节点N3为簇C1中的子网关这一情况。另外,簇管理部21从主侧表更新部33也获取节点N5不是子网关这样的信息。
(9)节点N6从节点N3接收Hello帧。节点N6的处理种类判定部31根据节点N6参加簇C7并且接收到的Hello帧所包括的簇ID为C1,判定为节点N6是从侧簇中的边界节点。因此,从侧表更新部32使用主侧簇信息在从侧簇表54生成簇C1为主侧簇的项。由于主侧簇信息所包含的子网关的节点ID与本节点的节点ID一致,所以从侧表更新部32判定为被请求了作为子网关进行动作。通过从侧表更新部32的处理,生成图11的(a)所示的从侧簇表54。节点N6开始作为簇C7的子网关的动作。
(10)节点N8也从节点N3接收Hello帧。节点N8中进行的处理与作为节点N6的处理以次序(9)说明的处理同样。但是,由于主侧簇信息所包含的子网关的节点ID为N6,所以节点N8的从侧表更新部32判定为节点N8没有被请求作为子网关进行动作。因此,节点N8中的从侧簇表54如图11的(b)所示。
(11)若成为生成Hello帧的时刻,则节点N8的Hello帧生成部14生成Hello帧。由于节点N8为从侧簇内的边界节点,所以生成包括以下的信息要素的Hello帧。
类型:Hello帧
GS:节点N8
LS:节点N8
簇信息中的簇ID:C7
主侧簇信息:无
邻接簇数:1
生成的Hello帧被发送给节点N8的邻接节点。
(12)节点N6从节点N8接收Hello帧。节点N6为从侧簇内的边界节点,但由于从相同的簇内的节点装置10接收到Hello帧,所以进行与次序(4)同样的处理。
(13)节点N5从节点N8接收Hello帧。由于节点N5为主侧簇内的边界节点,所以主侧表更新部33将邻接簇数与主侧簇表53的从侧的子网关候补的邻接簇数相比较。在该时刻,如图10的(c)所示,从侧簇的子网关为节点N6,节点N6的邻接簇数为0。因此,节点N5判定为节点N8与节点N6相比作为子网关的条件良好,如图11的(c)所示变更主侧簇表53。
(14)节点N4也从节点N8接收Hello帧。直至节点N4接收到来自节点N8的Hello帧为止,未识别出簇C7与簇C1的边界节点。因此,节点N4中进行的处理与次序(2)所述的处理相同。通过节点N4中的处理,节点N4所保持的主侧簇表53如图12的(a)所示。
(15)节点N3也从节点N8接收Hello帧。由于节点N3为主侧簇中的子网关,所以中继目的地决定部43将邻接簇数与主侧簇表53的从侧的子网关候补的邻接簇数相比较。在该时刻,如图10的(a)所示,从侧簇的子网关为节点N6,在节点N3的主侧簇表53中,节点N6的邻接簇数为0。因此,节点N3判定为节点N8与节点N6相比作为子网关的条件良好,将子网关从节点N6变更为节点N8。并且,从侧的子网关候补也变更为节点N8。因此,节点N3的主侧簇表53图12的(b)所示。
(16)接下来,节点N5生成Hello帧。Hello帧的生成与次序(5)所说明的处理同样地进行。生成Hello帧时的节点N5的主侧簇表53如图11的(c)所示那样。因此,生成的Hello帧中包括以下的信息要素。
类型:Hello帧
GS:节点N5
LS:节点N5
簇信息中的簇ID:C1
簇信息中的子网关:节点N3
邻接簇数:1
主侧簇信息
邻接簇ID:C7
从侧子网关的节点ID:N6
主导节点的节点ID:N3
主导节点的序列编号:1
子网关的节点ID:N3
子网关的序列编号:1
子网关的邻接簇数:1
子网关候补:无
子网关候补的邻接簇数:0
此外,在次序(15)中,节点N3决定将从侧簇的子网关从节点N6变更为节点N8,但节点N3决定子网关的变更后不发送Hello帧。因此,节点N3以外的节点装置10未识别出在从侧簇中子网关被变更这一情况。因此,节点N5生成将从侧子网关的节点ID设定为N6的Hello帧。Hello帧被发送给与节点N5邻接的节点装置10。
(17)节点N3从节点N5接收Hello帧。由于从节点N5接收的Hello帧不包括子网关候补,所以节点N3的子网关选择部42判定为没有变更主侧的子网关。因此,主侧簇表53未被变更。
(18)若节点N6的从侧表更新部32从节点N5接收到Hello帧,则使用从侧簇表54来判定Hello帧的发送源是否已成为主侧簇的子网关。该时刻的节点N6的从侧簇表54如图11的(a)所示那样。因此,从侧表更新部32判定为节点N5不是主侧簇的子网关。因而,从侧表更新部32结束处理。
(19)若节点N8的从侧表更新部32从节点N5接收Hello帧,则判定为Hello帧的发送源不是主侧簇的子网关。节点N8不作为子网关进行动作,所以结束处理。
(20)接下来,假设节点N4生成Hello帧。Hello帧的生成与以次序(5)所说明的处理同样地进行。此时,节点N4将节点N4识别为是主导节点,保持图12的(a)所示的主侧簇表53,所以生成包括以下的信息要素的Hello帧。
类型:Hello帧
GS:节点N4
LS:节点N4
簇信息中的簇ID:C1
簇信息中的子网关:节点N4
邻接簇数:1
主侧簇信息
邻接簇ID:C7
从侧子网关的节点ID:N8
主导节点的节点ID:N4
主导节点的序列编号:1
子网关的节点ID:N4
子网关的序列编号:1
子网关的邻接簇数:1
子网关候补:无
子网关候补的邻接簇数:0
Hello帧被发送给与节点N4邻接的节点装置10。
(21)节点N3从节点N4接收Hello帧。节点N3中的处理与次序(17)相同,主侧簇表53未被变更。
(22)节点N8从节点N4接收Hello帧。在节点N8中,与次序(9)同样地进行处理。因此,节点N8生成图12的(c)所示的从侧簇表54。因此,在次序(22)的时刻,在主侧簇(C1)中,节点N3和节点N4这两个成为主侧子网关,在从侧簇(C7)中,节点N6和节点N8这两个成为从侧子网关。
(23)接下来,节点N6再次生成Hello帧。在此时生成的Hello帧中包括以下的信息。
类型:Hello帧
GS:节点N6
LS:节点N6
簇信息中的簇ID:C7
簇信息中的子网关:节点N6
主侧簇信息:无
邻接簇数:1
Hello帧被发送给与节点N6邻接的节点装置10。
(24)若节点N3从节点N6接收Hello帧,则与次序(15)同样地进行处理。在该时刻,如图12的(b)所示,从侧簇的子网关为节点N8,节点N8的邻接簇数为1。另一方面,利用Hello帧,节点N6也通知邻接簇数为1。由于邻接簇数相同,所以中继目的地决定部43将节点ID中的编号比较小的节点即N6设定为从侧的子网关。并且,中继目的地决定部43也将从侧的子网关候补变更为节点N6,所以节点N3的主侧簇表53如图13的(a)。
(25)节点N5从节点N6接收Hello帧。由于节点N5为主侧簇内的边界节点,所以进行与次序(13)同样的处理。因此,节点N5判定为节点N6与节点N8相比作为子网关的条件良好,如图13的(b)所示变更主侧簇表53。
(26)若节点N7、N8从节点N6接收Hello帧则进行次序(4)所述的处理。并且,不管在节点N7和N8哪个中,簇管理部21都处理簇信息,在簇C7中,识别出节点N6作为子网关进行动作。因此,节点N7将节点N6识别为簇C7中的子网关,节点N8识别为簇C7中的子网关为节点N6和N8。
(27)节点N3再次将Hello帧发送给邻接节点。此时发送的Hello帧除了序列编号以外,包括与顺序(5)相同的信息要素。
(28)若节点N4从节点N3接收Hello帧,则进行与顺序(8)的节点N5同样的处理。此外,此时,节点N4的主侧表更新部33也更新从侧的子网关的信息。因此,节点N4的主侧簇表53如图13的(c)所示被更新。因此,节点N4的簇管理部21识别为簇C1中的子网关是节点N3。
(29)若节点N5从节点N3接收Hello帧,则进行次序(8)所述的处理。此时,对于节点N5的主侧簇表53,序列编号以外未被变更。
(30)若节点N6的从侧表更新部32从节点N3接收Hello帧,则使用从侧簇表54来判定为Hello帧的发送源是主侧簇的子网关。从侧表更新部32判定为未变更从侧簇的子网关的设定,并结束处理。
(31)若节点N8的从侧表更新部32从节点N3接收Hello帧,则判定Hello帧的发送源是否在从侧簇表54中被登记为主侧的子网关。在该时刻,节点N8所保持的从侧簇表54保持图12的(c)所示的信息,主侧子网关变成节点N4。因此,从侧表更新部32没有基于从节点N3接收到的Hello帧来变更从侧簇表54。
(32)节点N8再次发送Hello帧。此时生成的Hello帧包括以下的信息。
类型:Hello帧
GS:节点N8
LS:节点N8
簇信息中的簇ID:C7
簇信息中的子网关:节点N8
主侧簇信息:无
邻接簇数:1
节点N3~N5都处理来自节点N8的Hello帧,但不管在哪个节点装置10中主侧簇表53的信息都未发生变化。
(33)节点N5再次发送Hello帧。节点N3处理来自节点N5的Hello帧,但主侧簇表53的信息没有变化。节点N6、N8也处理来自节点N5的Hello帧,但从侧簇表54的信息没有变化。
(34)节点N4再次发送Hello帧。节点N3处理来自节点N4的Hello帧,但主侧簇表53的信息没有变化。
若节点N8接收来自节点N4的Hello帧,则判定Hello帧的发送源是否在从侧簇表54中被登记为主侧的子网关。在该时刻,节点N8所保持的从侧簇表54保持图12的(c)所示的信息,主侧子网关变成节点N4。因此,从侧表更新部32从主侧簇信息获取从侧簇的子网关的节点ID。由于获取的节点ID为节点N6的ID,所以从侧表更新部32判定为从侧簇的子网关的设定被变更了,结束作为子网关的处理。并且,从侧表更新部32如图14所示变更从侧簇表54。因此,节点N8的簇管理部21识别为节点N6是簇C7中的子网关。
若如一边参照图8~图14一边所说明那样决定子网关,则作为子网关进行动作的节点装置10的标识符包含于Hello帧中的簇信息。不是边界节点的节点装置10能够使用Hello帧中的簇信息,来确定在与本节点相同的簇中作为子网关进行动作的节点装置10。例如,进行图9(b)的次序(28)的处理后,节点N3、N4、N5都发送簇信息包括节点N3作为子网关进行动作这一情况的Hello帧。因此节点N2识别为在簇C1中节点N3作为子网关进行动作。并且,节点N2也广播簇信息包括节点N3为子网关这一情况的Hello帧。因而,节点N1通过从节点N2接收Hello帧,能够识别为经由节点N3与其它簇中的节点装置10进行通信。
之后,例如,在节点N1要向节点N7发送帧的情况下,由于与节点N1不同的簇包括节点N7,所以节点N1决定朝向子网关转发帧。由于已经对节点N1通知了节点N3作为子网关进行动作,所以节点N1向节点N3发送发往节点N7的帧。换句话说,根据第1实施方式,节点N1可以不从边界节点中选择进行簇间通信的中继的节点装置10。因此,节点N1生成发往节点N7的帧之后,用于确定帧转发目的地的处理能够得到简单化。因此,能够缩短在节点N1中发往节点N7的帧的路径决定所花费的时间。从节点N1接收到发往节点N7的帧的节点N2也与节点N1同样地,若确定簇C1不包括节点N7这一情况,则将发往节点N7的帧发送给节点N3。因此,对于节点N2,与从簇C1中的边界节点中选择帧的转发目的地的情况相比,可以说第1实施方式的方法减少了处理负担。
〔子网关的变更方法〕
图15是说明子网关的变更方法的例子的图。一边参照图15,一边对检测出新簇时所进行的子网关的变更方法的例子进行说明。
图15的(a)在图8的(a)所示的自组织网络加入节点N9,以簇C9包括节点N9的情况为例对子网关的变更方法的例子进行说明。如图15的(a)所示,即使节点N9参加自组织网络,在节点N9发送Hello帧前,子网关的设定没有从一边参照图8一边所说明的情况发生变化。图16表示此时的节点N3~N5所保持的主侧簇表53的例子。图16的(a)为节点N3、图16的(b)为节点N5、图16的(c)为节点N4保持的主侧簇表53的例子。
接下来,节点N9发送包括以下信息要素的Hello帧。
类型:Hello帧
GS:节点N9
LS:节点N9
簇信息中的簇ID:C9
主侧簇信息:无
邻接簇数:0
在图15的(a)的例子中,作为节点N9的邻接节点的节点N4接收Hello帧。节点N4利用从节点N9接收到的Hello帧,来检测节点N9和簇C9的存在。因此,节点N4的主侧表更新部33向主侧簇表53追加关于簇C9的项。并且,节点N4的处理种类判定部31判定为簇C1是相对于簇C9的主侧簇,并将主侧簇信息输出给主导节点确定部41。主导节点确定部41将节点N4选择为簇C1与C9之间的子网关的设定时的主导节点。并且,子网关选择部42将节点N4决定为簇C1与C9之间的主侧子网关。中继目的地决定部43将节点N9决定为从侧的子网关。
另外,节点N4将节点N4的邻接簇的数从1变更为2。子网关选择部42根据节点N4的邻接簇数被变更为2,来判定当前簇C1中与被设定为与簇C9以外的簇之间的子网关的节点装置10相比本节点的条件是否较好。簇C1与簇C4之间的通信所使用的子网关为节点N3,节点N3的邻接簇的数量为1。因此,节点N4的子网关选择部42判定为节点N4与节点N3相比作为子网关的条件较好。由于节点N4不是决定簇C1与簇C7之间的通信所使用的子网关时的主导节点,所以节点N4的子网关选择部42将节点N4作为与簇C7之间的子网关候补。通过这些处理,接收到Hello帧后的节点N4的主侧簇表53如图17的(a)所示被更新。
接下来,假设节点N4生成Hello帧。节点N4使Hello帧包含节点N4所保持的主侧簇表53(参照图17的(a))中从侧的子网关候补以外的信息。因此,在主侧簇信息中,簇C7的信息和簇C9的信息包含于Hello帧。节点N4生成的Hello帧被发送给节点N4的邻接节点装置。
若节点N9接收从节点N4发送的Hello帧,则进行与参照图9A所说明的次序(9)的节点N6同样的处理。因此,节点N9的从侧簇表54如图17的(b)所示被更新。
节点N3也接收从节点N4发送的Hello帧。在该时刻,簇C1与C7之间的通信中的主侧子网关为节点N3。因此,节点N3的子网关选择部42比较Hello帧中的子网关候补的信息和节点N3的信息。节点N3的邻接簇数为1,节点N4的邻接簇数为2。因此,节点N3的子网关选择部42判定为节点N4与节点N3相比作为子网关的条件较好。由于节点N3为决定簇C1与簇C7之间的通信所使用的子网关时的主导节点,所以节点N3的子网关选择部42将节点N4设为与簇C7之间的子网关。另外,子网关候补的信息没有记录。因此,节点N3的主侧簇表53如图17的(c)所示的。
并且,假设节点N3生成Hello帧。节点N3使Hello帧中包括节点N3所保持的主侧簇表53(参照图17的(c))中从侧的子网关候补以外的信息。节点N3所生成的Hello帧被发送给节点N3的邻接节点装置。
节点N4从节点N3接收Hello帧。节点N4的子网关选择部42检测出在与簇C1和C7的通信有关的主侧簇信息中节点N4被设定为主侧子网关这一情况。因而,节点N4作为主侧子网关开始动作。因此,如图15的(b)所示,设定子网关。并且,节点N4的主侧表更新部33如图18的(a)所示,使用Hello帧来变更主侧簇表53。
节点N5从节点N3接收Hello帧。节点N5的子网关选择部42若检测出节点N4被设定为主侧子网关这一情况,则如图18的(b)所示,使用Hello帧来变更主侧簇表53。
之后,假设节点N4再次生成Hello帧。节点N4使Hello帧中包含节点N4所保持的主侧簇表53(参照图18的(a))中从侧的子网关候补以外的信息。节点N4生成的Hello帧被发送给节点N4的邻接节点装置。
若节点N8接收从节点N4发送的Hello帧,则节点N8的从侧表更新部32检测到在簇C1与簇C7的通信中节点N8被设定为从侧的子网关这一情况。因此,节点N8作为从侧子网关开始动作。因此,如图15的(c)所示设定子网关。
若节点N3接收从节点N4发送的Hello帧,则节点N3的主侧表更新部33进行关于簇C7的项的处理。主侧表更新部33在簇C7中检测到节点N8被决定为从侧的子网关这一情况。因此,节点N3更新从侧子网关的信息,并如图19的(a)所示更新主侧簇表53。
若节点N9接收从节点N4发送的Hello帧,则节点N9的从侧表更新部32检测到节点N9被设定为从侧的子网关这一情况。因此,节点N9作为从侧子网关开始动作。因此,如图15的(d)所示,设定子网关。
之后,若节点N3生成Hello帧,则将图19的(a)所包含的信息中的子网关候补以外的信息通知给节点N3的邻接节点。因此,节点N5识别出在簇C1与簇C7的通信时作为从侧子网关进行动作的节点为节点N8这一情况。因此,如图19的(b)所示,变更节点N5的主侧簇表53。
图20是表示节点装置10中进行的处理的例子的流程图。此外,步骤S3和S4的顺序能够根据安装来变更。节点装置10判定是否所属于簇(步骤S1)。所属于任意簇的节点装置10判定是否从所属于簇的节点装置10接收到Hello帧(步骤S1:是,步骤S2)。在从所属于簇的节点装置10接收到Hello帧的情况下,节点装置10处理由Hello帧通知的主侧簇信息(步骤S2:是,步骤S3)。并且,节点装置10在是主侧簇中的节点装置10的情况下,更新Hello帧的发送源的节点装置10所参加的簇的信息(步骤S4)。
图21A和图21B是说明接收到的主侧簇信息的处理的例子的流程图。图21A和图21B是接收到Hello帧的节点装置10进行的处理的例子。处理种类判定部31判定接收到的Hello帧中是否有主侧簇信息(步骤S11)。在Hello帧不包含主侧簇信息的情况下,处理种类判定部31判定为未从主侧簇所包括的边界节点接收到Hello帧,并结束主侧簇信息的处理(步骤S11:否)。另一方面,在Hello帧中包含主侧簇信息的情况下,处理种类判定部31将变量n设定为1(步骤S12)。处理种类判定部31尝试从主侧簇信息中获取第n个所包含的项。在以下的说明中,将主侧簇信息中所包含的项记载为“MCI项”。处理种类判定部31在不能够获取第n个MCI项的情况下,结束主侧簇信息的处理(步骤S13:否)。
处理种类判定部31在获取到第n个MCI项的情况下,判定本节点是否属于与Hello帧的发送源相同的簇(步骤S13:是,步骤S14)。假设属于与Hello帧的发送源相同的簇的节点装置10的主导节点确定部41要从主侧簇表53获取与处理对象的MCI项相同的簇ID的项(步骤S14:是,S15)。若主导节点确定部41成功获取项,则将处理对象的MCI项所包含的主导节点的节点ID与主侧簇表53中所设定的主导节点的节点ID相比较(步骤S16:是,步骤S17)。在处理对象的MCI项所包含的主导节点的节点ID中的数字较小的情况下,主导节点确定部41判定为通知了更好的主导节点,并变更主导节点(步骤S17:是,步骤S18)。之后,通过子网关选择部42,进行主侧子网关(SGW)的更新处理(步骤S19)。另一方面,在判定为未通知更好的主导节点的情况下,不变更主导节点,而进行主侧子网关的更新处理(步骤S17:否,步骤S19)。之后,处理种类判定部31将n自加1,来进行步骤S13以下的处理(步骤S20)。
一边参照图21B,一边对步骤S14中判定为否的情况下进行处理进行说明。在不属于与Hello帧的发送源相同的簇的节点装置10中,从侧表更新部32判定处理对象的MCI项中的从侧簇是否已成为本节点的簇(步骤S31)。在处理对象的MCI项中的从侧簇不是本节点的簇的情况下,处理种类判定部31判定为获取了MCI项,该MCI项包括用于决定使用于邻接簇与其它簇之间的通信的子网关的信息。因此,处理种类判定部31判定为获取的MCI项不是处理对象,废弃(步骤S31:否,步骤S32)。
在从侧簇为本节点的簇的情况下,从侧表更新部32从从侧簇表54获取同与处理对象的MCI项相同的簇ID建立对应的项(步骤S31:是,步骤S33)。接下来,从侧表更新部32判定处理对象的MCI项中,本节点是否被指定为从侧子网关(步骤S34)。在本节点未被指定为从侧子网关的情况下,从侧表更新部32判定从侧簇表54中,Hello帧的发送源是否被登记为主侧子网关(步骤S34:否)。如果有Hello帧的发送源为子网关的项,则从侧表更新部32从从侧簇表54删除该项(步骤S36)。另一方面,在处理对象的MCI项中的从侧子网关为本节点的情况下,从侧表更新部32判定Hello帧的发送源是否已成为主侧簇的子网关(步骤S34:是,步骤S35)。在Hello帧的发送源为主侧簇的子网关的情况下,从侧表更新部32将本节点设定为从侧簇的子网关(步骤S35:是,步骤S37)。另一方面,在Hello帧的发送源不是主侧簇的子网关的情况下,判定Hello帧的发送源是否被登记为主侧子网关(步骤S35:否)。在Hello帧的发送源为主侧簇的子网关的情况下,进行步骤S36的处理。
图22是说明Hello帧的发送源所属的簇的信息的处理的例子的流程图。处理种类判定部31判定是否从从侧簇中的节点装置10接收到Hello帧(步骤S41)。在从从侧簇中的节点装置10接收到Hello帧的情况下,主侧表更新部33尝试从主侧簇表53获取针对Hello帧的发送源所属的簇的项(步骤S42)。若成功获取项,则主侧表更新部33将Hello帧的发送源的条件与主侧簇表53中的从侧的子网关候补的条件相比较(步骤S43:是,步骤S44)。在Hello帧的发送源与从侧的子网关候补相比条件较好的情况下,主侧表更新部33变更从侧子网关候补(步骤S44:是,步骤S45)。并且,子网关选择部42判定本节点是否已成为主侧簇的子网关(步骤S46)。在本节点为主侧簇的子网关的情况下,子网关选择部42变更从侧子网关(步骤S46:是,步骤S47)。另一方面,在本节点不是主侧簇的子网关的情况下,子网关选择部42结束处理(步骤S46:否)。另外,在Hello帧的发送源的条件为从侧的子网关候补的条件以下的情况下,主侧表更新部33结束处理(步骤S44:否)。并且,步骤S41:判定为否的情况下,处理种类判定部31结束处理。
若在步骤S43中项的获取失败,则主侧表更新部33在主侧簇表53中生成与Hello帧的发送源的节点装置10所属的簇有关的项(步骤S48)。主导节点确定部41针对新生成了项的簇,将本节点设定为主导节点。并且,子网关选择部42针对新生成了项的簇,将本节点设定为主侧的子网关(步骤S49)。并且,中继目的地决定部43将Hello帧的发送源设定为从侧簇的子网关(步骤S50)。
图23是说明主侧子网关的更新处理的例子的流程图。子网关选择部42判定处理对象的MCI项中是否包括条件比本节点好的子网关候补的信息(步骤S61)。在不包括条件比本节点好的子网关候补的信息的情况下,子网关选择部42针对被设定为当前主侧子网关的节点装置10,获取邻接簇数和节点ID(步骤S62)。子网关选择部42比较被设定为当前的主侧子网关的节点装置10和本节点的条件,并判定为本节点是否具备比当前主侧子网关良好的条件(步骤S63)。在本节点的条件良好的情况下,子网关选择部42判定本节点是否已成为主导节点(步骤S64)。在本节点为主导节点的情况下,子网关选择部42将主侧子网关变更为本节点,并且适当地变更主侧簇表53(步骤S64:是,步骤S65)。例如,子网关选择部42将主侧簇的子网关的邻接簇的值、序列编号变更为本节点的值。另外,从侧子网关成为本节点所保持的主侧簇表53所包括的从侧子网关候补。另一方面,在本节点不是主导节点的情况下,子网关选择部42将本节点设定为主侧子网关候补(步骤S66)。若在步骤S63中,在判定为本节点与当前设定的主侧子网关相比条件差,则子网关选择部42结束处理。
接下来,对步骤S61中判定为处理对象的MCI项中包括条件比本节点好的子网关候补的信息的情况下的处理进行说明。该情况下,子网关选择部42也针对被设定为当前的主侧子网关的节点装置10,获取邻接簇数和节点ID(步骤S67)。子网关选择部42判定与被设定为当前的主侧子网关的节点装置10相比,子网关候补是否具备良好的条件(步骤S68)。在子网关候补的条件良好的情况下,子网关选择部42判定本节点是否已成为主导节点(步骤S68:是,步骤S69)。在本节点为主导节点的情况下,子网关选择部42将主侧子网关变更为作为子网关候补所通知的节点装置,并且,适当地变更主侧簇表53(步骤S69:是,步骤S70)。例如,子网关选择部42将主侧簇的子网关的邻接簇的值、序列编号变更为子网关候补的值。另一方面,在本节点不是主导节点的情况下,子网关选择部42结束处理(步骤S69:否)。若在步骤S68中判定为子网关候补的条件为当前设定的主侧子网关的条件以下,则子网关选择部42不存储子网关候补的信息(步骤S71)。
边界节点进行一边参照图20~图23一边所说明的处理,所以能够灵活地应对簇的增减、节点装置10的数量的增设,来决定子网关。
如一边参照图15~图23一边所说明那样,在因簇的增设、节点装置10的增减而变更子网关的情况下,作为子网关进行动作的节点装置10的标识符包含于Hello帧中的簇信息。因此,边界节点以外的节点装置10也通过Hello帧,能够确定子网关被变更以及变更后的子网关。例如,在图15的(d)的例子中,从Hello帧能够确定到簇C1中的任何节点装置10将发往簇C7或者C9所包括的节点装置10的帧发送给节点N4即可这一情况。因此,簇中的节点装置也可以不在每次转发帧时从边界节点中选择发往其它簇中的节点装置10的帧的转发目的地。因此,减少各节点装置10的转发处理中的负担。
此处,对指定帧的中继目的地的方法的例子进行说明。例如,假设节点N1要将数据帧发送给节点N7。图24的(a)表示节点N1的数据帧处理部15所生成的数据帧的例子。数据帧中包括发送的数据、类型信息、全局目的地地址、全局发送源地址、本地目的地地址、本地发送源地址。在节点N1的转发处理部27转发发往簇C1中不包括的节点装置10的帧的情况下,在帧附加子网关信息(SGW信息)。图24的(b)表示包括子网关信息的数据帧。此处,由于预先通知簇C1的子网关为节点N4,所以在子网关信息中设定节点N4的地址。在簇内的通信中,与全局目的地同样地处理子网关信息。例如,节点N2通过确认从节点N1接收到的帧的子网关信息,来决定将接收帧转发给N4。此时,节点N2的转发处理部27变更数据帧中的本地目的地地址和本地发送源地址,在此基础上,将帧转发给节点N4。节点N4若确认在子网关信息中所设定的地址为分配给节点N4的地址,则从接收的帧除去子网关信息。并且,节点N4将除去子网关后的帧转发给邻接簇的子网关。此外,在一个簇存在多个子网关的情况下,在子网关信息中所指定的地址可以是指定一个簇中的全部子网关的多点传送地址。即使向一个簇中的全部子网关多播发送帧,由于子网关的数量比边界节点的数量少,所以很难产生拥塞。
第1实施方式所涉及的方法能够适应子网关保持帧向中继目的地的节点装置10的路径信息的情况,另外,也能够适应子网关未保持自簇以外的路径信息的情况。在子网关保持中继目的地的簇中的路径信息的情况下,作为子网关进行动作的节点装置10的数量越多,多个节点装置10重复存储其它簇的路径信息的情况越多。例如,图8的(a)中,簇C1中的节点N3~N5全部都对簇C1与簇C7之间的通信进行中继的情况下,节点N3~N5全部都保持了簇C1与簇C7的路径信息。同样地,若不适应第1实施方式所涉及的方法,则在簇C7中,节点N6和N8这双方都保持簇C1和簇C7的路径信息。然而,通过适应第1实施方式,在图8的(a)所示的网络中,节点N3和N6为了对簇间的通信进行中继,保持簇C1和簇C7的路径信息即可。因此,由于其它簇的路径信息没有被重复存储于多个节点装置10,所以在第1实施方式中,高效地使用节点装置保持的存储器。
并且,在第1实施方式所涉及的方法中,从边界节点的中自主选择对簇间的通信进行中继的节点装置10。因此,第1实施方式所涉及的方法也能够使用于节点的数量较多的大规模的网络、频繁地进行簇的设定变更的情况。
<第2实施方式>
作为第2实施方式,对参加自组织网络的节点装置10判定邻接节点装置10是否发生故障,且若检测出故障则动态变更子网关的情况进行说明。
在第2实施方式中,主侧簇中的边界节点通过监测从主导节点接收Hello帧的间隔,来判定主导节点是否发生故障。在主导节点发生故障的情况下,主侧簇中的边界节点变更主导节点。例如,检测出主导节点发生故障的边界节点向邻接节点发送将本节点指定为主导节点的Hello帧,从而进行主导节点的变更。
主导节点通过检测从主侧的子网关发送Hello帧的间隔,来判定主侧子网关是否发生故障。若主导节点检测出主侧的子网关的故障,则重新设定主侧的子网关。例如,主导节点通过发送将本节点设定为子网关的Hello帧,能够选择主侧的子网关。
主侧的子网关通过监测从从侧子网关接收Hello帧的间隔,来判定从侧子网关是否发生故障。若从侧子网关发生故障,则主侧子网关如果能够将其它邻接节点设定为从侧子网关,则变更从侧的子网关。另一方面,在其他没有能指定为从侧子网关的节点装置的情况下,主侧子网关判定为不是边界节点。因此,从主侧簇表53删除关于不邻接的簇的项。之后,被指定为主侧子网关的节点装置10利用Hello帧将不是边界节点通知给主侧簇中的边界节点。因而,主导节点重新设定主侧的子网关。
并且,从侧簇中的节点装置10也通过监测接收来自主侧簇的子网关的Hello帧的频率,能够检测主侧簇的子网关的故障。若从侧簇的子网关检测出主侧簇的子网关的故障,则从从侧簇表54删除将检测出故障的节点作为子网关的项。
为了进行以上的处理,在第2实施方式中,节点装置10代替主侧簇表53而具备主侧簇表61,代替从侧簇表54而具备从侧簇表62。
图25表示第2实施方式所使用的主侧簇表61的例子。主侧簇表61除了主侧簇表53所包含的信息要素之外还包括主侧子网关、从侧子网关、主导节点所涉及的Time To Live(TTL)。主侧表更新部33将Hello帧所包含的主导节点的序列编号与主侧簇表61中的主导节点的序列编号相比较。比较的结果为Hello帧中的序列编号较大的情况下,主侧表更新部33判定为主导节点能够正常发送Hello帧,并使主导节点的TTL复位。TTL的初始值是任意正整数。另一方面,在Hello帧中的序列编号为主侧簇表61中记录的值以下的情况下,主侧表更新部33判定为再次接收到已经接收的Hello帧,不进行Hello帧的处理。主侧表更新部33每隔一定的时间使关于主导节点的TTL的值递减一,若TTL的值变为0,则判定为主导节点发生故障。若主导节点被重新设定,则主侧表更新部33使主导节点的TTL的值复位。
主侧表更新部33针对主侧子网关,也利用与主导节点同样的方法,更新TTL的值。若子网关选择部42重新设定主侧的子网关,则主导节点使TTL的值复位。
若主侧的子网关的主侧表更新部33从从侧子网关接收Hello帧,则使关于从侧子网关的TTL的值复位。此外,由于主侧的子网关和从侧子网关相互邻接,所以再次接收处理结束的Hello帧的可能性较低。因此,主侧的子网关的主侧表更新部33针对从从侧子网关接收的Hello帧,可以不监测序列编号。主侧表更新部33每隔一定时间使从关于侧子网关的TTL的值递减一,若TTL的值变为0,则判定为从侧子网关发生故障。
图26表示第2实施方式所使用的从侧簇表62的例子。从侧簇表62中包括主侧簇的TTL、和主侧子网关的TTL。从侧表更新部32提取从邻接的簇中的节点装置10接收到的Hello帧的簇信息,并与从侧簇表62中的项相比较。针对利用Hello帧中的簇ID所识别的簇的项,从侧表更新部32使关于主侧簇的TTL复位。从侧表更新部32每隔一定的时间使关于主侧簇的TTL的值递减一,若TTL的值变为0,则判定为主侧簇消失,或本节点不是邻接节点。从侧表更新部32从从侧簇表62删除关于TTL的值变为0的主侧簇的项。
若从侧簇中的从侧表更新部32从主侧簇的子网关接收Hello帧,则使关于主侧簇的子网关的TTL的值复位。从侧表更新部32每隔一定的时间使关于主侧子网关的TTL的值递减一,若TTL的值变为0,则判定为主侧子网关发生故障。从侧表更新部32从从侧簇表62删除关于TTL的值变为0的主侧子网关的项。
图27表示因发生故障而造成的子网关的变更方法的例子。在初始状态下,节点N3被设定为主导节点,主侧子网关、从侧子网关也如图27的(a)所示被设定。图28表示在图27的(a)的状态时,节点N3~N5所保持的主侧簇表61的例子。图28的(a)表示节点N4的例子,图28的(b)表示节点N5的例子,图28的(c)表示节点N3的主侧簇表61的例子。
之后,如图27的(b)所示,假设节点N8发生故障。节点N8中止发送Hello帧。若节点N4不能从节点N8接收Hello帧,则每隔一定时间使关于节点N8的TTL的值递减一。若节点N8的TTL的值变为0,则节点N4判定为节点N8发生故障。节点N4中除了节点N8以外没有簇C7中的邻接节点。因此,节点N4判定为不与簇C7邻接,从主侧簇表61删除簇C7的项。通过该处理,节点N4的主侧簇表61如图29的(a)所示。
若簇C7的项从节点N4所具备的主侧簇表61消失,则节点N4在生成的Hello帧中不包括关于簇C7的MCI项。因此,节点N3不能从节点N4接收关于簇C7的MCI项。由于节点N3的主侧表更新部33没有从作为簇C7的主侧子网关的节点N4发送来簇C7的MCI项,所以每隔一定时间使主侧子网关的TTL递减一。若主侧子网关的TTL变为0,则节点N3判定为节点N4不与簇C7相邻。由于节点N3为主导节点,所以节点N3的子网关选择部42将节点N3设定为与簇C7的通信所使用的主侧子网关。并且,由于节点N3的中继目的地决定部43将节点N3设定为主侧子网关,所以将节点N6设定为从侧子网关。通过这些处理,如图27的(c)所示变更子网关。并且,节点N3所具备的主侧簇表61如图29的(b)所示被更新。
节点N3如图27的(c)所示变更子网关后,将通知主侧子网关为节点N3并且从侧子网关为节点N6这一情况的Hello帧发送给邻接节点。因此,在从节点N3接收到Hello帧的节点N5中,主侧簇表从图28的(b)的状态变更为如图29的(c)所示。
图30是说明故障发生时主侧簇中的边界节点进行的处理的例子的流程图。若节点装置10判定为存在包括TTL=0的项,则判定主导节点中是否TTL=0(步骤S81:是,步骤S82)。在主导节点中TTL=0的情况下,主导节点确定部41将本节点设定为主导节点,并使主导节点的TTL的值复位(步骤S82:是,步骤S83)。在主导节点中不是TTL=0的情况下,节点装置10判定关于主侧子网关的TTL是否为0(步骤S82:否,步骤S84)。在关于主侧子网关的TTL为0的情况下,子网关选择部42判定本节点是否已成为主导节点(步骤S84:是,步骤S85)。在本节点不是主导节点的情况下,子网关选择部42结束处理(步骤S85:否)。另一方面,在本节点为主导节点的情况下,子网关选择部42变更主侧的子网关,并使TTL的值复位(步骤S85:是,步骤S86)。
在步骤S84中,在关于主侧子网关的TTL不为0的情况下,中继目的地决定部43判定wie从侧子网关发生故障(步骤S84:否)。因此,中继目的地决定部43判定本节点是否已成为主侧子网关(步骤S87)。在本节点不是主侧子网关的情况下,结束处理(步骤S87:否)。在本节点为主侧子网关的情况下,判定是否能够变更从侧子网关(步骤S87:是,步骤S88)。在能够变更从侧子网关的情况下,中继目的地决定部43决定新的从侧子网关,在此基础上使TTL的值复位(步骤S88:是,步骤S89)。在不能变更从侧子网关的情况下,中继目的地决定部43删除包括TTL=0的项(步骤S88:否,步骤S90)。
图31是说明故障发生时从侧簇中的边界节点进行的处理的例子的流程图。若从侧表更新部32判定为存在包括TTL=0的项,则判定主侧簇的TTL是否为0(步骤S91:是,步骤S92)。在主侧簇的TTL为0的情况下,从侧表更新部32从从侧簇表62删除包括TTL=0的主侧簇的项(步骤S92:是,步骤S93)。在主侧簇的TTL不为0的情况下,判定主侧子网关的TTL是否已成为0(步骤S92:否,步骤S94)。在主侧子网关的TTL不为0的情况下,从侧表更新部32结束处理(步骤S94:否)。在主侧子网关的TTL为0的情况下,从侧表更新部32从从侧簇表62删除包括TTL=0的主侧子网关的项(步骤S94:是,步骤S95)。
图32A和图32B是说明第2实施方式中的主侧簇信息的处理的例子的流程图。步骤S101~S107与一边参照图21A一边所说明的步骤S11~S17相同。在所通知的主导节点的条件为当前的主导节点的条件以下的情况下,主侧表更新部33判定Hello帧中的主导节点的序列编号SN是否被更新(步骤S107:否,步骤S108)。在Hello帧中的主导节点的序列编号被更新的情况下,主侧表更新部33使主导节点的TTL的值复位(步骤S108:是,步骤S109)。并且,主侧表更新部33更新主导节点的序列编号。另一方面,在与当前主导节点的条件相比,所通知的主导节点的条件较好的情况下,主侧表更新部33变更主导节点(步骤S107:是,步骤S110)。并且,主侧表更新部33使主导节点的TTL复位,并更新序列编号(步骤S111)。在步骤S108:判定为否的情况下,或步骤S109、S111的处理后,通过步骤S112的处理,更新主侧子网关。步骤S112后述。之后,主侧子网关的TTL被复位(步骤S113)。并且,将n自加1,重复步骤S103以下的处理(步骤S114)。
图32B的步骤S121~S123与一边参照图21B一边所说明的步骤S31~S33相同。步骤S123的处理后,从侧表更新部32针对与处理对象的MCI对应的从侧簇表62的项,使主侧簇的TTL复位(步骤S124)。步骤S125~S127的处理与一边参照图21B一边所说明的步骤S34~S36相同。如步骤S126判定为是,则从侧表更新部32将本节点设定为从侧子网关。并且,从侧表更新部32使从侧簇表62中的主侧子网关的TTL复位(步骤S128)。
图33是说明Hello帧的发送源所属的簇的信息的处理的例子的流程图。步骤S131~S133与一边参照图22一边所说明的步骤S41~S43相同。若来自主侧簇表61的项的获取成功,则主侧表更新部33判定Hello帧的发送源是否已成为从侧子网关(步骤S133:是,步骤S134)。在Hello帧的发送源不是从侧子网关的情况下,主侧表更新部33结束处理(步骤S134:是,步骤S135)。步骤S136~S139的处理与参照图22所说明的步骤S44~S47相同。之后,中继目的地决定部43使从侧子网关的TTL复位(步骤S140)。在步骤S136、S138判定为否的情况下,也进行步骤S140的处理。步骤S141~S143的处理与一边参照图22一边所说明的步骤S48~S50相同。之后,中继目的地决定部43使从侧子网关的TTL复位(步骤S144)。
如以上说明那样,在第2实施方式中,即使作为子网关进行动作的节点装置10发生故障,也自主变更子网关的设定。另外,也有与第1实施方式同样的优点。
<其它>
此外,包括第1实施方式以及第2实施方式在内的以上实施方式并不限于上述内容,能够进行各种变形。以下叙述几个其它例子。
在上述例子中,为了容易理解,对一个簇为主侧簇或从侧簇中的任意一个的情况进行了说明。然而,也存在一个簇相对于某个簇为主侧簇,而相对于其它簇为从侧簇的情况。例如,簇C2与簇C1、C3这双方邻接。该情况下,簇C2在使用于与簇C1之间的通信的子网关的决定中成为从侧簇,而在使用于与簇C3之间的通信的子网关的决定中成为主侧簇。
可以根据安装来追加Hello帧所包含的信息要素。另外,如前述,也可以使用Hello帧以外的控制帧来进行子网关的设定。另外,主侧簇表53、61、从侧簇表54、62所包含的信息要素也可以根据安装来变更。
包括第1实施方式以及第2实施方式在内的以上实施方式在根据节点装置10的增减而动态地形成簇的情况、和固定地决定簇的情况下都能够适应。
并且,主导节点、子网关的选择条件有时根据安装来变更。例如,也可以是节点ID所包含的数值越大,越容易被设定为主导节点。同样地,对于子网关,也可以以节点ID的值越大的节点装置10越容易被选择的方式设定条件。
附图标记说明
10…节点装置;11…接收部;12…发送部;13…帧处理部;14…Hello帧生成部;15…数据帧处理部;20…簇处理部;21…簇管理部;22…提取处理部;25…路由处理部;26…路径信息处理部;27…转发处理部;30…子网关设定部;31…处理种类判定部;32…从侧表更新部;33…主侧表更新部;40…决定处理部;41…主导节点确定部;42…子网关选择部;43…中继目的地决定部;50…存储部;51…节点种类信息;52…路由表;53、61…主侧簇表;54、62…从侧簇表;55…簇信息表;56…数据;100…处理器;101…总线;102…PHY芯片;104…计时器IC;106…DRAM;107…闪存;108…无线模块。
Claims (16)
1.一种通信方法,其特征在于,
选择装置在与所述选择装置邻接的节点装置之间收发通知第1组所包括的节点装置的标识符的通知帧,其中,所述选择装置是从所述第1组选择出的,所述第1组位于第1簇中并且是能够同与所述第1簇邻接的第2簇中的节点装置进行通信的节点装置的组,
所述选择装置从所述第1组选择对中继帧进行中继的第1中继装置,其中,所述中继帧是所述第1簇中的节点装置与所述第2簇中的节点装置之间的通信所使用的帧,
所述第1中继装置将第2组所包括的节点装置中与所述第1中继装置邻接的节点装置决定为第2中继装置,所述第2组位于所述第2簇中并且是能够与所述第1簇中的节点装置进行通信的节点装置的组,所述第2中继装置向所述第2簇中的节点装置中继所述中继帧,
被设定为所述第1中继装置的第1节点装置监测作为所述第2中继装置进行动作的第4节点装置是否发生了故障,
在因所述第4节点装置发生故障,而所述第1组不再包括所述第1节点装置的情况下,所述第1节点装置将所述第1节点装置不能与所述第2簇进行通信这一情况通知给所述选择装置,
所述选择装置选择所述第1组中的第2节点装置,并将所述第2节点装置设定为所述第1中继装置。
2.根据权利要求1所述的通信方法,其特征在于,
所述第1组所包括的节点装置使用所述通知帧,将所述第1组中的节点装置中能够进行通信的簇的数量相对大的节点装置通知给所述选择装置,
所述选择装置将能够进行通信的簇数相对大的节点装置选择为所述第1中继装置。
3.根据权利要求1或者2所述的通信方法,其特征在于,
所述第2组所包括的节点装置将能够进行通信的簇的数量通知给邻接的节点装置,
所述第1中继装置从包含于所述第2组且与所述第1中继装置邻接的节点装置中,将能够进行通信的簇数相对大的节点装置决定为所述第2中继装置。
4.根据权利要求1所述的通信方法,其特征在于,
所述选择装置在将所述第1组所包括的第1节点装置选择为所述第1中继装置后,使用所述通知帧从所述第1组中的第2节点装置获取能够进行通信的簇的数量,
若判定为第2节点装置能够进行通信的簇数大于所述第1节点装置能够进行通信的簇数,则将所述中继装置从所述第1节点装置变更为所述第2节点装置。
5.根据权利要求4所述的通信方法,其特征在于,
若所述第1中继装置从所述第1节点装置变更为所述第2节点装置,则所述第2节点装置请求第3节点装置作为所述第2中继装置进行动作,其中,所述第3节点装置包含于所述第2组并且与所述第2节点装置邻接,
所述第3节点装置根据来自所述第2节点装置的请求,来开始中继所述中继帧,
若从所述第1节点装置通知所述第3节点装置被设定为所述第2中继装置,则作为所述第2中继装置正动作的所述第4节点装置结束作为所述第2中继装置的动作。
6.根据权利要求1所述的通信方法,其特征在于,
所述第1中继装置将所述第2组所包括的第4节点装置决定为所述第2中继装置后,从所述第2组中与所述第1中继装置邻接的第5节点装置获取所述第5节点装置能够进行通信的簇数,
若判定为所述第5节点装置能够进行通信的簇数大于所述第4节点装置能够进行通信的簇数,则将所述第2中继装置从所述第4节点装置变更为所述第5节点装置。
7.根据权利要求1所述的通信方法,其特征在于,
被设定为所述第1中继装置的第1节点装置监测作为所述第2中继装置进行动作的第4节点装置是否发生了故障,
在因所述第4节点装置发生故障,而所述第1组不再包括所述第1节点装置的情况下,所述第1节点装置将所述第1节点装置不能与所述第2簇进行通信这一情况通知给与所述第1节点装置邻接的节点装置,
与所述第1节点装置邻接的所述第1组中的节点装置将变为作为所述第1中继装置的候补的候补装置这一情况通知给邻接的节点装置,
所述选择装置从所述候补装置中选择所述第1中继装置。
8.根据权利要求1所述的通信方法,其特征在于,
所述选择装置监测选择为所述第1中继装置的第1节点装置是否发生故障,
在因所述第1节点装置发生故障,而不再能够从所述第1节点装置向所述第2簇中的节点装置中继所述中继帧的情况下,所述选择装置选择所述第1组中的第2节点装置,并将所述第2节点装置设定为所述第1中继装置。
9.一种计算机可读的存储介质,其特征在于,存储有计算机程序,
所述计算机程序被处理器执行时使第1簇中的节点装置进行如下处理:
从邻接的节点装置即邻接节点装置接收帧,
确定从所述第1簇中的节点装置选择第1中继装置的选择装置,其中,所述第1中继装置对第1簇中的节点装置和与所述第1簇邻接的第2簇中的节点装置之间的通信进行中继,
在被所述选择装置选择为所述第1中继装置的情况下,将第2中继装置决定为位于所述第2簇中的邻接节点装置,其中,所述第2中继装置用于要从所述第1簇向所述第2簇中继的中继帧的中继,
向所述邻接节点装置发送通知帧,所述通知帧用于通知识别决定为所述第2中继装置的节点装置的信息,
所述计算机程序被处理器执行时使所述第1簇中的节点装置还进行如下的处理:
在被选择为所述第1中继装置的情况下,
若决定为所述第2中继装置的节点装置发生故障,则判定所述第1中继装置是否已成为不与所述第2簇中的节点装置邻接的节点装置,
在所述第1中继装置已成为不与所述第2簇中的节点装置邻接的节点装置的情况下,将不与所述第2簇邻接这一情况通知给所述选择装置。
10.根据权利要求9所述的计算机可读的存储介质,其特征在于,
所述计算机程序被处理器执行时使所述第1簇中的节点装置还进行如下处理:
在被设定为所述选择装置的情况下,从第1组选择所述第1中继装置,所述第1组位于所述第1簇中并且是能够与所述第2簇中的节点装置进行通信的节点装置的组,
将识别被决定为第1中继装置的节点装置的信息包括在所述通知帧中。
11.根据权利要求10所述的计算机可读的存储介质,其特征在于,
所述计算机程序被处理器执行时使所述第1簇中的节点装置还进行如下的处理:
在被设定为所述选择装置的情况下,
将所述第1组中的节点装置中能够进行通信的簇数相对大的节点装置选择为所述第1中继装置,并且
若通知与被设定为所述第1中继装置的节点装置相比能够进行通信的簇数较大的节点装置,则通过将所通知的节点装置选择为所述第1中继装置,来变更所述第1中继装置。
12.根据权利要求9~11中任一项所述的计算机可读的存储介质,其特征在于,
所述计算机程序被处理器执行时使所述第1簇中的节点装置还进行如下的处理:
在被选择为所述第1中继装置的情况下,
从包含于第2组并且与所述第1中继装置邻接的节点装置中,将能够通信的簇数相对大的节点装置决定为所述第2中继装置,其中,所述第2组位于所述第2簇中并且是能够与所述第1簇中的节点装置进行通信的节点装置的组,
若通知与被决定为所述第2中继装置的节点装置相比能够进行通信的簇数较大的节点装置,则将所通知的节点装置决定为所述第2中继装置。
13.一种节点装置,其特征在于,具备:
接收部,其从邻接的节点装置即邻接节点装置接收帧;
确定部,其确定从第1簇中的节点装置选择第1中继装置的选择装置,其中,所述第1中继装置对第1簇中的节点装置和与所述第1簇邻接的第2簇中的节点装置之间的通信进行中继;
决定部,其在所述第1中继装置被所述选择装置选择的情况下,将第2中继装置决定为位于所述第2簇中的邻接节点装置,所述第2中继装置用于要从所述第1簇向所述第2簇中继的中继帧的中继;以及
发送部,其向所述邻接节点装置发送通知帧,所述通知帧用于通知识别决定为所述第2中继装置的节点装置的信息,
若决定为所述第2中继装置的节点装置发生故障,则所述第1中继装置的决定部判定所述第1中继装置是否已成为不与所述第2簇中的节点装置邻接的节点装置,
在所述第1中继装置已成为不与所述第2簇中的节点装置邻接的节点装置的情况下,所述第1中继装置的通知生成部在所述通知帧中包括表示不与所述第2簇邻接的信息。
14.根据权利要求13所述的节点装置,其特征在于,还具备:
选择部,在被设定为所述选择装置的情况下,所述选择部从第1组选择所述第1中继装置,所述第1组位于所述第1簇中并且是能够与所述第2簇中的节点装置进行通信的节点装置的组;以及
通知生成部,其生成所述通知帧,
所述通知生成部将识别被决定为所述第1中继装置的节点装置的信息包含在所述通知帧中。
15.根据权利要求14所述的节点装置,其特征在于,
所述选择装置的选择部将所述第1组中的节点装置中能够进行通信的簇数相对大的节点装置选择为所述第1中继装置,
若通知与被设定为所述第1中继装置的节点装置相比能够进行通信的簇数较大的节点装置,则通过将所通知的节点装置选择为所述第1中继装置,来变更所述第1中继装置。
16.根据权利要求13~15中任一项所述的节点装置,其特征在于,
所述第1中继装置的决定部从包含于第2组并且与所述第1中继装置邻接的节点装置中,将能够进行通信的簇数相对大的节点装置决定为所述第2中继装置,所述第2组位于所述第2簇中并且是能够与所述第1簇中的节点装置进行通信的节点装置的组,
若通知与被决定为所述第2中继装置的节点装置相比能够进行通信的簇数较大的节点装置,则通过将所通知的节点装置决定为所述第2中继装置,来变更所述第2中继装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/059650 WO2014155712A1 (ja) | 2013-03-29 | 2013-03-29 | 通信方法、通信プログラム、および、ノード装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105009642A CN105009642A (zh) | 2015-10-28 |
CN105009642B true CN105009642B (zh) | 2019-01-01 |
Family
ID=51622759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380073933.7A Expired - Fee Related CN105009642B (zh) | 2013-03-29 | 2013-03-29 | 通信方法、通信程序以及节点装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9912779B2 (zh) |
JP (1) | JP6206483B2 (zh) |
CN (1) | CN105009642B (zh) |
WO (1) | WO2014155712A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2879418A1 (en) * | 2013-11-27 | 2015-06-03 | Nokia Corporation | D2d inter cluster communication and configurations |
JP6558500B2 (ja) * | 2015-12-28 | 2019-08-14 | 日本電気株式会社 | ワイヤレスp2pネットワークにおけるグループ間通信の方法およびシステム |
JP6634863B2 (ja) * | 2016-02-17 | 2020-01-22 | 日本電気株式会社 | 無線通信端末 |
FR3058293B1 (fr) * | 2016-10-28 | 2019-05-10 | Sagemcom Energy & Telecom Sas | Procede de selection d'une passerelle pour l'emission d'une trame |
KR102300791B1 (ko) * | 2017-03-20 | 2021-09-09 | 엘지전자 주식회사 | 공기조화기 및 그 제어방법 |
CN111181747B (zh) * | 2018-11-09 | 2023-05-02 | 中兴通讯股份有限公司 | 一种网关协同实现方法、装置、IoT网关及存储介质 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493759B1 (en) * | 2000-07-24 | 2002-12-10 | Bbnt Solutions Llc | Cluster head resignation to improve routing in mobile communication systems |
KR100645428B1 (ko) * | 2003-05-05 | 2006-11-15 | 삼성전자주식회사 | 개인 통신무선 네트워크에서 라우팅 경로 설정 장치 및 방법 |
US7881229B2 (en) * | 2003-08-08 | 2011-02-01 | Raytheon Bbn Technologies Corp. | Systems and methods for forming an adjacency graph for exchanging network routing data |
KR100605253B1 (ko) * | 2003-09-03 | 2006-07-31 | 삼성전자주식회사 | 통신시스템에서 비콘 스케쥴링 장치 및 방법 |
US7443833B2 (en) * | 2004-08-06 | 2008-10-28 | Sharp Laboratories Of America, Inc. | Ad hoc network topology discovery |
WO2007032713A1 (en) | 2005-09-14 | 2007-03-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Controlled temporary mobile network |
EP1938485A4 (en) * | 2005-09-20 | 2015-04-22 | Maxtech Networks Ltd | NETWORK OF REAL-TIME APPROVALS |
US20070299950A1 (en) * | 2006-06-21 | 2007-12-27 | General Electric Company | System for creating optimally-sized clusters |
JP5029131B2 (ja) * | 2007-05-09 | 2012-09-19 | 株式会社エヌ・ティ・ティ・ドコモ | 移動端末装置、制御方法および移動通信システム |
JP2008312059A (ja) * | 2007-06-15 | 2008-12-25 | Panasonic Corp | アドホックネットワーク構成方法及びノード装置 |
US8233905B2 (en) * | 2007-06-15 | 2012-07-31 | Silver Spring Networks, Inc. | Load management in wireless mesh communications networks |
JP4999674B2 (ja) * | 2007-12-25 | 2012-08-15 | 三菱電機株式会社 | アドホックネットワークシステム |
US7688802B2 (en) * | 2008-05-23 | 2010-03-30 | Honeywell International Inc. | System and method for time synchronization in a wireless network |
US8121077B2 (en) * | 2008-07-24 | 2012-02-21 | Panasonic Corporation | Relay device and relay method |
JP5383324B2 (ja) * | 2009-05-29 | 2014-01-08 | 三菱電機株式会社 | 端末およびアドホックネットワーク情報伝送方法 |
JP5673840B2 (ja) * | 2011-09-20 | 2015-02-18 | 富士通株式会社 | ノード装置および通信方法 |
US8856885B2 (en) * | 2012-04-30 | 2014-10-07 | Citrix Systems, Inc. | Managing cloud zones |
-
2013
- 2013-03-29 JP JP2015507896A patent/JP6206483B2/ja not_active Expired - Fee Related
- 2013-03-29 WO PCT/JP2013/059650 patent/WO2014155712A1/ja active Application Filing
- 2013-03-29 CN CN201380073933.7A patent/CN105009642B/zh not_active Expired - Fee Related
-
2015
- 2015-08-07 US US14/820,657 patent/US9912779B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP6206483B2 (ja) | 2017-10-04 |
US20150350374A1 (en) | 2015-12-03 |
US9912779B2 (en) | 2018-03-06 |
CN105009642A (zh) | 2015-10-28 |
JPWO2014155712A1 (ja) | 2017-02-16 |
WO2014155712A1 (ja) | 2014-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105009642B (zh) | 通信方法、通信程序以及节点装置 | |
US9220050B2 (en) | Mesh network defragmentation | |
US20150281074A1 (en) | Data transfer control device and data transfer control method | |
US9628372B2 (en) | Data communication apparatus, data communication system, and data communication method | |
US20110161489A1 (en) | Automatic aggregation of inter-device ports/links in a virtual device | |
JP4765973B2 (ja) | 通信ルートの構築方法及び通信端末 | |
JP2013223078A (ja) | ネットワークスイッチ | |
US20150120863A1 (en) | Proxy network device selection in a communication network | |
US9699590B2 (en) | Wireless communication apparatus, wireless communication method, computer-readable recording medium, and wireless communication system | |
US8797847B2 (en) | Network relay device and control method thereof | |
CN105827456A (zh) | 一种嵌入分布式组网方法及其系统 | |
JP2010098591A (ja) | 障害監視システム、サーバ装置およびノード装置 | |
CN104541314A (zh) | 具有触控连接选项的网络发现 | |
CN110493069A (zh) | 故障检测方法、装置、sdn控制器及转发设备 | |
CN102769556A (zh) | 激活vlan的动态调整方法和装置 | |
US9814052B2 (en) | Data distribution system, distribution device, terminal device, and data distribution method providing enhanced communication efficiency | |
TW201946419A (zh) | 監視裝置、網路系統、拓樸管理方法及監視程式產品 | |
JP6171434B2 (ja) | ノード装置、通信方法、通信プログラム、および、ネットワークシステム | |
KR101789977B1 (ko) | 무선 마스터 스테이션, 무선 슬레이브 스테이션, 무선 통신 시스템 및 무선 통신 방법 | |
US20180332443A1 (en) | Handling of Devices based on Group Membership | |
JP2015097348A (ja) | 通信方法、通信装置、通信プログラム、および、通信システム | |
US20170078457A1 (en) | Communication device, relay determination method, and computer program product | |
KR20100062877A (ko) | 센서 네트워크에서의 이웃 노드 발견 및 보고 방법 | |
CN108696386B (zh) | 网状通信网络的系统、配置服务器、电子设备及其配置方法 | |
CN107819684A (zh) | 同步处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190101 Termination date: 20210329 |