WO2013171867A1 - ノード装置および通信方法 - Google Patents

ノード装置および通信方法 Download PDF

Info

Publication number
WO2013171867A1
WO2013171867A1 PCT/JP2012/062562 JP2012062562W WO2013171867A1 WO 2013171867 A1 WO2013171867 A1 WO 2013171867A1 JP 2012062562 W JP2012062562 W JP 2012062562W WO 2013171867 A1 WO2013171867 A1 WO 2013171867A1
Authority
WO
WIPO (PCT)
Prior art keywords
cluster
node
list
node device
merge
Prior art date
Application number
PCT/JP2012/062562
Other languages
English (en)
French (fr)
Inventor
曽根田達也
山本哲
西本教人
岩尾忠重
Original Assignee
富士通株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2012/062562 priority Critical patent/WO2013171867A1/ja
Priority to JP2014515417A priority patent/JP5928582B2/ja
Publication of WO2013171867A1 publication Critical patent/WO2013171867A1/ja
Priority to US14/507,285 priority patent/US9450831B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/32Connectivity information management, e.g. connectivity discovery or connectivity update for defining a routing cluster membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Definitions

  • the present invention relates to a network device and a communication method used in a network including a plurality of nodes.
  • ad hoc network communication terminals (also referred to as node devices or simply nodes) are autonomously connected to each other to enable mutual communication.
  • the term “autonomously” means that a user does not need a dedicated communication terminal or infrastructure for setting a communication path at any time by a user or managing communication of a server or a router.
  • AODV Adhoc On Demand Distance Vector Algorithm
  • OLSR Optimized Link State Routing
  • a broadcast is used for route search, and another communication node device repeatedly broadcasts to find a route to a target node device.
  • the communication node device transmits a packet “Route Request (RREQ)” to the surroundings in order to find a target route.
  • RREQ Radio Request
  • the detection target communication node ID is specified.
  • the surrounding communication node device If the surrounding communication node device is not searching for itself, it newly creates an RREQ packet and repeats broadcasting to the surroundings. At this time, each communication node device records from which adjacent communication node device the message of the destination is received. When the RREQ message reaches the target communication node, the target communication node apparatus creates a “Route Reply (PREP)” packet, and follows the route through which the RREQ packet has been sent to the source node. Thus, PREP is transmitted. By doing so, a bidirectional communication path is created.
  • PREP Recorde Reply
  • OLSR communication node devices regularly exchange packets to grasp the entire network and detect the route to the target communication node.
  • the communication node devices periodically send out Hello packets and notify each other of their existence.
  • a flooding path called a multi point relay (MPR) is generated to efficiently deliver a packet to the entire network next.
  • MPR multi point relay
  • packets can be efficiently broadcast from each communication node device to the entire network.
  • the node devices distribute Technology Control (TC) packets that are route generation messages to each other, so that all node devices can know the network topology.
  • TC Technology Control
  • the network topology known by the communication node device that is the transmission source is referred to, and the packet is passed to the adjacent communication node device to be sent.
  • the adjacent node performs the same process, and finally distributes the packet to the target node device.
  • Node devices belonging to a wireless ad hoc network use Hello packets to propagate routing information.
  • the ad hoc network includes a node device A and a node device B.
  • the node device A generates a Hello packet including routing information held by itself and periodically broadcasts it.
  • the node device B that has received the Hello packet compares the routing information held by the node device B with the information contained in the Hello packet, and acquires the routing information that the node device B did not hold from the Hello packet. To do.
  • the node device B also acquires route quality information from the Hello packet, and performs communication using a route with as good a quality as possible. In this way, the node device belonging to the ad hoc network uses the Hello packet to learn route information to other node devices included in the network, and estimates an optimum route.
  • Each node device included in the ad hoc network holds a route to all other node devices in the ad hoc network in the routing table.
  • the node device A holds the route information to each of the node devices other than the node device A in the ad hoc network in the routing table. For this reason, the node device A can transmit a data packet to the node device C via the node device B, for example.
  • Such a node device may be provided with a weighting table for storing weight information about a node to be a relay destination for each final destination of a packet. In this case, when transferring a packet, the node device refers to a weighting table corresponding to the destination node of the packet and identifies a node as a destination for relaying the packet.
  • each node device holds the route to all other node devices in the ad hoc network in the routing table
  • the size of the routing table increases as the number of node devices in the network increases. Therefore, a method is known in which node devices in a network are divided into clusters, and each node device stores path information to node devices in the same cluster in a routing table.
  • control packet when generating a cluster from node devices in the network. For example, the cluster to which each node device belongs is determined based on the path information, and control packets are transmitted and received when joining and leaving the cluster. Generally, when forming a cluster, another cluster is generated when the number of nodes in the cluster exceeds a predetermined value.
  • a method using a Hello packet instead of a control packet is also known.
  • control packet When the control packet is unicast transmitted or flooded toward all node devices in the network, there is a problem that the load on the node device increases due to transmission / reception of the control packet and relay processing.
  • the number of clusters for each cluster depends on the arrangement of the nodes. There is a problem that variations occur. That is, sometimes the number of clusters is larger than “the number of nodes in the entire network ⁇ the maximum number of nodes in the cluster”.
  • the number of clusters increases, the number straddling the clusters at the time of routing increases and throughput decreases.
  • a node device in a network including a plurality of node devices is a node device included in a first cluster that is a group of node devices in which the node device stores path information among the plurality of node devices in the network.
  • a cluster information storage unit for storing device identification information, route information regarding a route for information transmission in the network from an adjacent node device that is an adjacent node device, and a node device in which the adjacent node device stores route information
  • a receiving unit that receives a hello packet used for notification of device identification information of a node device included in a second cluster that is a group of nodes, and the number of node devices included in the first cluster is a predetermined integer value.
  • the cluster node change confirmation unit to be confirmed is stored in the cluster information storage unit Obtaining the number of node devices included in the first cluster from the device identification information of the node device, obtaining the number of node devices included in the second cluster based on information included in the hello packet, An integrated cluster node number determination unit that determines that the sum of the number of node devices included in the first cluster and the number of node devices included in the second cluster is equal to or less than the maximum number of cluster nodes; and the integration Based on the determination result of the cluster node number determination unit, the device identification information of the node device included in the second cluster is changed to the first class.
  • a cluster integration processing unit that updates the device identification information stored in the cluster information storage unit and integrates the second cluster into the first cluster in addition to the device identification information of the node device included in
  • a hello packet generation unit that generates another hello packet with reference to the device identification information of the node device stored in the updated cluster information storage unit, and a transmission unit that transmits the another hello packet; , Including.
  • Cluster formation can be performed while reducing the load on the network and reducing the load on the cluster head by performing cluster formation in two stages of cluster generation processing and cluster integration processing only by transmitting and receiving Hello packets.
  • the size variation of individual clusters is small, and the number of clusters can be reduced.
  • the cluster integration process By executing the cluster integration process, the number of clusters is reduced, so that the number across the clusters at the time of routing can be reduced.
  • the throughput of an ad hoc network can be improved by reducing processing resources.
  • the node device 10 described with reference to FIGS. 3 to 30 reduces the load on the network by performing cluster formation in two stages of cluster generation processing and cluster integration processing only by transmitting and receiving Hello packets.
  • Cluster formation can be performed while reducing the load on the head.
  • the size variation of individual clusters is small, and the number of clusters can be reduced.
  • the cluster integration process By executing the cluster integration process, the number of clusters is reduced, so that the number across the clusters at the time of routing can be reduced.
  • the throughput of an ad hoc network can be improved by reducing processing resources.
  • FIG. 1 is a diagram illustrating an example of an ad hoc network in which clusters are formed.
  • the ad hoc network of FIG. 1 includes 50 50 node devices N1 to N50.
  • Each node device has unique identification information (Identification, ID).
  • the identification number assigned to each node device may be referred to as a “node ID”.
  • each node device has 1 to 50 node IDs.
  • the node ID may be a MAC address.
  • the node device is sometimes simply referred to as “node”.
  • a number or symbol assigned to each node is also referred to as a node ID.
  • adjacent node devices are connected by a solid line.
  • the node device may be simply called the node device Nx or the node Nx.
  • the node device may be simply referred to as a node device y or a node y.
  • adjacent means that a plurality of node devices are located at a distance where packets can be transmitted and received with each other. When two node devices are adjacent to each other, the two node devices are said to be connected by a “link”.
  • a node device located in a range in which a packet transmitted from a certain node device can be received may be referred to as “adjacent node device” or simply “adjacent node” of the node device.
  • each node device is a sensor.
  • the ad hoc network 10 is also called a sensor network.
  • the node connection by the link may be wired or wireless.
  • Each node device does not necessarily grasp node information adjacent to each other or information about the entire network. Therefore, in order to know how each node is connected to other nodes, each node communicates with adjacent nodes such as route information such as Hello messages and communication quality of links between nodes. Periodically send and receive messages containing node information such as information.
  • the Hello message is transmitted from each node at intervals of several seconds, for example.
  • the timing at which the Hello message is transmitted is not limited to an interval of several seconds, and may be transmitted at an arbitrary fixed interval or irregularly. From such exchange of messages, the communication quality of each route is calculated, and based on the result, a plurality of routes to the final destination are constructed and an optimum route is determined.
  • the Hello message includes node information such as route information between the node that transmits the message and the adjacent node, and communication quality information of the link between nodes.
  • node information such as route information between the node that transmits the message and the adjacent node, and communication quality information of the link between nodes.
  • a Hello packet transmitted from a certain node device is received by an adjacent node device of the transmission source node device.
  • the Hello packet is used to notify network route information.
  • Clusters C1 to C8 include cluster heads N1, N13, N25, N30, N35, N38, N44, and N46, respectively.
  • the cluster C1 includes node devices N1 to N10.
  • the cluster C2 includes node devices N11 to N20.
  • the cluster C3 includes node devices N21 to N25, and the cluster C4 includes node devices N26 to N30.
  • the cluster C5 includes node devices N31 to N35, and the cluster C6 includes node devices N36 to N39.
  • the cluster C7 includes node devices N41 to N45, and the cluster C8 includes node devices N46 to N50.
  • cluster head is a node device that starts cluster generation, and generates a cluster including the cluster head itself.
  • the cluster head may be referred to as “origin node” or “gateway (GW)”.
  • a node device that does not belong to a cluster may be referred to as a “free node”.
  • the origin node is the identifier of the generated cluster (in FIG. 1, C1, C2,..., C8, etc.) and the identifier of the node device participating in the cluster (in the case of cluster C1 in FIG. 1, the node device) Broadcast a Hello packet including ID numbers 1 to 10 indicating
  • the free node recognizes the identifier of the cluster being generated by the Hello packet transmitted from the origin node.
  • a free node joins a cluster, it generates a Hello packet including information in which the identifier of the participating cluster is associated with its own identifier, and broadcasts the generated Hello packet. For example, consider a case where the node devices N1 to N50 exist as free nodes and the node device N1 serves as a starting node to generate a cluster.
  • the node devices N2, N3, N4, N6, and N7 adjacent to the node device N1 recognize that the cluster C1 is being generated by receiving the Hello packet transmitted from the origin node N1. Since the node devices N2, N3, N4, N6, and N7 are free nodes that do not belong to the cluster, when the identifier of the cluster C1 being generated is recognized, the node devices N2, N3, N4, N6, and N7 are determined to participate in the cluster C1. When the node device N2 in FIG. 1 participates in the cluster C1, a Hello packet including information in which the identifier C1 of the participating cluster is associated with its own identifier N2 is generated, and the generated Hello packet is broadcast.
  • the origin node N1 recognizes that it has received a request to join the cluster C1 when notified of the identifier of the node device in association with the identifier of the cluster C1 being generated. Therefore, the origin node N1 recognizes the node device participating in the cluster C1 being generated from the received Hello packet, and adds the recognized node device to the cluster. The node device added to the cluster confirms that the node device has been added to the cluster by the Hello packet from the origin node. Node devices participating in the cluster may be referred to as “participating nodes”. The participating node broadcasts a Hello packet including the identifier of the participating cluster. When the free node recognizes the identifier of the cluster being generated from the Hello packet generated by the participating node, it joins the cluster according to the above-described procedure. These processes are repeated until the number of node devices included in the cluster reaches a threshold value.
  • the cluster C1 in FIG. 1 is a cluster generated when N1 is a starting node, N2 to N50 are free nodes, and the threshold of the number of node devices included in the cluster is 10.
  • the originating node broadcasts a Hello packet including information (generation request or generation request information) requesting generation of a new cluster.
  • the participating node that has received the generation request generates a Hello packet including the received generation request and broadcasts it.
  • the free node that has received the Hello packet including the generation request operates as a new starting node and starts generating a cluster.
  • the node devices N13, N30, N35, and N38 start generating clusters C2, C4, C5, and C6, respectively.
  • the procedure after the start of the cluster generation is the same as the procedure for generating the cluster C1.
  • each node device stores a route to another node device in the same cluster in the routing table.
  • a cluster is generated by a method in which information used for generating a cluster is transmitted and received by a Hello packet, and another cluster is generated when the number of node devices included in the cluster is a threshold.
  • each node device does not need to store a route to all the node devices included in the ad hoc network. Therefore, the size of the routing table stored in each node device is smaller than when the ad hoc network is not divided into clusters. For this reason, in each node apparatus, the magnitude
  • information used for forming a cluster is transmitted and received by a Hello packet, the amount of bandwidth consumed by transmission and reception of information performed to generate a cluster is smaller than when other packets, for example, control packets are used. .
  • the number of nodes included in the cluster varies from 5 in C3 to 10 in C1 and C2, and the number of clusters varies for each cluster.
  • the number of clusters increases, the number of clusters straddling the cluster increases, which may reduce the throughput.
  • the node device of the ad hoc network generates a cluster in two stages, that is, a first-stage cluster generation process and a second-stage cluster integration process when a plurality of node apparatuses are gathered.
  • FIG. 2 is a diagram for explaining the outline of stepwise cluster formation processing.
  • 2A is a diagram for explaining the outline of the cluster generation process that is the first stage of the cluster formation process for forming clusters in stages
  • FIG. 2B is the second stage of the cluster formation process.
  • FIG. 2C is a diagram for explaining an outline of a certain cluster integration process
  • FIG. 2C is a diagram for explaining an example of a result of the cluster integration process that is the second stage of the cluster formation process.
  • cluster formation the process of creating a cluster from a plurality of node devices including the first stage and the second stage. Until the first node finishes the first stage after the origin node fetches another node apparatus in the first stage.
  • cluster generation the process of growing a cluster.
  • the number of nodes that can be included in a cluster differs between the first-stage cluster generation process and the second-stage cluster integration process.
  • the number of nodes that can be included in the cluster at the end of the first stage is referred to as a provisional maximum number of cluster nodes, and the number of nodes that can be included in the cluster at the end of the second stage is simply referred to as “maximum number of cluster nodes”.
  • the maximum number of cluster nodes is larger than the provisional maximum number of cluster nodes.
  • the maximum number of cluster nodes is approximately twice the provisional maximum number of cluster nodes.
  • Examples of the maximum number of cluster nodes include 10, 20, and 50.
  • the maximum number of cluster nodes is not limited to these numbers.
  • the ratio of the provisional maximum number of cluster nodes to the maximum number of cluster nodes can also be an arbitrary number of 100% or less.
  • cluster generation processing is performed to generate and grow clusters so that the number of nodes in the cluster is equal to or less than the provisional maximum number of cluster nodes. That is, even if the number of nodes in the cluster does not reach the maximum number of cluster nodes and there is room for cluster growth, the cluster is not grown. Thereafter, the process proceeds to the second stage in which the cluster integration process for integrating the clusters generated in the first stage is performed. Both the first-stage cluster growth process and the second-stage cluster integration process are performed only by exchanging Hello packets, as will be described later.
  • the ratio of the provisional maximum number of cluster nodes to the maximum number of cluster nodes is set to a high value, for example, 75% or 80% when priority is given to the speed of cluster generation. When priority is given to the uniformity of the number of nodes in the cluster (cluster granularity), the ratio is set low, for example, 40%, 35%, and the like.
  • the number of cluster nodes at the end of the first stage may be referred to as the provisional maximum number of cluster nodes.
  • the ratio of the provisional maximum number of cluster nodes to the maximum number of cluster nodes is not limited to the above numerical value.
  • the integration process in the second stage is started after a predetermined time has elapsed since the request for joining the free node to the node device has ceased.
  • Each node device takes an interval of a certain time, and if there is no change in the number of node devices belonging to the cluster within the interval, it is determined that the cluster formation is stable, and the process proceeds to cluster integration processing.
  • Clusters migrated to cluster integration processing will be integrated if they can be integrated into adjacent clusters.
  • the predetermined time depends on the number of nodes of the cluster, and is shorter as the size of the cluster is smaller, that is, as the number of nodes included in the cluster is smaller. Therefore, since the cluster integration process is shifted from the small size cluster, the smaller the size of the cluster, the higher the possibility that it will be taken into another cluster.
  • cluster 4 is integrated into cluster 1
  • cluster 6 and cluster 7 are integrated into cluster 3
  • cluster 8 is integrated into cluster 5
  • cluster 10 is integrated into cluster 9.
  • the cluster integration process in the second stage starts from a cluster having a small size.
  • the first stage since the number of nodes equal to or less than the provisional maximum number of cluster nodes is generated, a cluster having a smaller size is integrated into a cluster having a larger size than itself.
  • the number of clusters is ten.
  • the second-stage cluster integration processing is also performed only by exchanging Hello packets, as will be described later.
  • Each node can skip the cluster generation stage and start from the cluster integration stage.
  • the cluster granularity is minimum, that is, the number of nodes in the cluster is 1, and each node device forms a cluster.
  • all node devices start cluster integration processing at the same time as startup, that is, function as a starting node of a cluster formed from one node.
  • (C) in FIG. 2 shows that 10 clusters have become 5 as a result of the cluster integration process.
  • a node device that participates in a sensor network may not have sufficient resources.
  • the node device 10 includes means for performing cluster formation processing including cluster generation processing and cluster integration processing only by transmitting and receiving Hello packets. By not using special control packets in this way, it is possible to reduce the load on the network and to form a cluster while reducing the load on the cluster head.
  • the cluster integration process is preferentially started from a cluster having a small number of nodes in the cluster. By executing the cluster integration process, the number of clusters decreases, and the number of clusters straddling at the time of routing can be reduced. Furthermore, the throughput of an ad hoc network can be improved by reducing processing resources.
  • FIG. 3 is a functional block diagram illustrating an example of the configuration of the node device 10.
  • the node device 10 includes a reception unit 102, a node type determination unit 104, a participation processing unit 106, a cluster information update unit 108, a cluster generation unit 110, a free node list generation unit 112, a cluster integration destination candidate notification unit 114, a cluster integration request reception Unit 116, cluster integration request update unit 118, cluster integration list generation unit 120, cluster integration processing unit 122, cluster integration list notification unit 124, setting unit 136, hello packet generation unit 138, and transmission unit 140. Further, the node device 10 stores node type information 126, cluster information 128, a free node list 130, a merge cluster list 132, and a merge node list 134.
  • node type information 126 cluster information 128, free node list 130, merge cluster list 132, merge node list 134, and node type information storage unit 126, cluster information storage unit 128, free node list storage unit in which they are stored 130, the merge cluster list storage unit 132, and the merge node list storage unit 134 are referred to by the same reference numerals.
  • the cluster information storage unit 128 is device identification information (node device identifier) of a node device included in a cluster that is a group of node devices in which the node device stores path information among the plurality of node devices in the network. Is stored.
  • the cluster information 128 stores the maximum number of cluster nodes in addition to the cluster information (CI).
  • the reception unit 102 receives a packet transmitted from the adjacent node device 10 and outputs a Hello packet to the node type determination unit 104.
  • the receiving unit 102 is included in a cluster that is a group of node devices in which the adjacent node device stores route information, and route information related to a route for information transmission in the network from the adjacent node device that is an adjacent node device.
  • a hello packet used for notification of device identification information of the node device to be received is received.
  • the transmission unit 140 transmits the packet to the adjacent node device 10. For example, the transmission unit 140 transmits the Hello packet generated by the hello packet generation unit 138 to the adjacent node device. When a packet is transmitted to all adjacent node devices, the packet is also broadcast.
  • FIG. 4 is a diagram illustrating an example of the format of a Hello packet. As shown in FIG. 4, the Hello packet 300 includes a header and a payload.
  • the header includes a Type field, a global destination (GD) field, a global destination (Global Source: GS) field, a local source (Local Source: LS), and a local destination (Local Destination: LD).
  • the payload includes a cluster information (Cller Information: CI) field, a free node list (Free Node List: FNL) field, a merge node list (Merge Node List: MNL) field, and a merge cluster list (Merge Cluster List: MCL) field.
  • the payload further includes information indicating the number of Hello headers, the Hello header.
  • the Hello header includes route information.
  • the route information includes an identifier of a GD whose route is stored in the routing table of the node device that generates the Hello packet.
  • global destination refers to the node device 10 that is the final destination of the packet.
  • local destination refers to the node device 10 that is a transfer destination when a packet is transferred by one hop.
  • Local transmission source refers to the node device 10 that is a transfer source when a packet is transferred by one hop.
  • Global transmission source refers to the source node device 10 that first created the packet. The Hello packet is broadcast to a node device adjacent to the transmission source node device 10.
  • the Type field information indicating the type of data included in the payload is stored.
  • a value specifying the Hello packet is stored in the Type field.
  • the receiving unit 102 identifies the Hello packet using the value stored in the Type field of the received packet, and outputs the Hello packet to the node type determining unit 104.
  • cluster information an identifier of the cluster to which the node device 10 itself belongs (Cluster Identifier: CID) and an identifier of the node device included in the cluster identified by the cluster identifier (CID) (Node)
  • CID Cluster Identifier
  • NID node ID
  • the number of node device identifiers (NIDs) included in the cluster is arbitrary.
  • a set of identifiers (NIDs) of a plurality of node devices may be indicated as “ ⁇ NID ⁇ ”.
  • the end flag included in the cluster information (CI) field is information indicating whether a new node device can participate in the cluster identified by the cluster identifier (CID). In other words, this is information indicating whether the cluster identified by the cluster identifier (CID) includes the maximum number of cluster nodes.
  • the maximum number of cluster nodes indicates the provisional maximum number of cluster nodes if the node device 10 is currently in the first stage of cluster formation, and the maximum number of cluster nodes if in the second stage. In the following, simply referring to “the maximum number of cluster nodes”, the provisional maximum number of cluster nodes or the maximum number of cluster nodes is determined depending on whether the node device is in the first stage or the second stage of cluster formation. Shall point to.
  • the two end flags are, for example, “true” and “false”. “True” and “false” may be symbols including numbers and letters indicating “true” and “false”.
  • the end flag is “true”
  • the node device 10 cannot newly join the cluster because the cluster includes the node device having the maximum number of cluster nodes.
  • a Hello packet having cluster information whose end flag is “true” is used as a generation request which is information for requesting generation of a new cluster.
  • the end flag is “false”, since the number of nodes included in the cluster has not reached the maximum number of cluster nodes, a new node device can participate in the cluster including the node device 10.
  • the free node list (FNL) field includes a cluster identifier (CID) for identifying a cluster to which the node is to participate, and an identifier of the node device (Node Identifier: NID) to be joined to the cluster identified by the cluster identifier (CID). Node ID) list. Information stored in the free node list (FNL) field may be referred to as “free node information”.
  • the number of identifiers (NIDs) of node devices desired to participate in the cluster is arbitrary.
  • a set of identifiers (NIDs) of a plurality of node devices may be indicated as “ ⁇ NID ⁇ ”.
  • the merge node list (Merge Node List: MNL) field and the merge cluster list (MCL) list (MCL) field are used in the cluster integration process in the second stage of cluster formation.
  • the merge cluster list (MCL) field includes an identifier (S-Identifier: SID) of an adjacent node device belonging to the master side cluster when the own node device belongs to the slave side cluster, and the self cluster device (MCL) field. It includes an identifier (NID) of the node device belonging to the slave-side cluster to which the node device belongs.
  • SID identifier
  • NID self cluster device
  • a set of node device identifiers (NIDs) may be indicated as “ ⁇ NID ⁇ ”.
  • the node device B When the node device B receives the Hello packet as the cluster integration destination candidate notification from the node device A belonging to the master side cluster, the node device B sets the node device A to the identifier (SID) of the node device belonging to the master side cluster.
  • SID identifier
  • An identifier to be identified is stored, and a set of identifiers (NID) for identifying node devices belonging to the slave-side cluster is set as an empty set ⁇ to broadcast a Hello packet.
  • the merge cluster list (MCL) field indicates the cluster on the slave side including the node device B when the Hello packet is transmitted and received as a cluster integration request notification in the cluster on the slave side to which the node device B belongs. This is a set of identifiers (NIDs) for identifying node devices belonging to.
  • NIDs identifiers
  • the merge node list (MNL) field the number of elements in the set of identifiers (NIDs) for identifying the node devices listed in the merge cluster list (MCL) field is set to the node devices belonging to the cluster on the slave side. When they match, a set of identifiers (NIDs) for identifying node devices in the merge cluster list (MCL) field is moved and stored. In other words, the merge node list (MNL) field stores a list of all node devices belonging to the slave cluster that can be integrated with the master cluster.
  • the merge node list is an identifier (NID) for identifying a node device belonging to the slave-side cluster in which the node device B is included. It is a set.
  • the setting unit 136 sets the node device 10 to any one of a free node, a starting node, and a participating node, and stores information for specifying the type of the node device 10 in the node type information 126.
  • the node type information 126 is information in an arbitrary format that specifies the type of the node device 10. If the node itself is set as the starting node, the cluster information 128 is updated.
  • the node type determining unit 104 acquires the type of the node device 10, that is, a free node, a starting node, or a participating node, from the node type information 126.
  • the node type is associated with the output destination of cluster information (CI), free node information (FNL, etc.), merge cluster list (MCL), and merge node list (MNL) in the Hello packet. ing.
  • the node type determination unit 104 refers to the node type information 126 and sends the cluster information (CI) to the participation processing unit 106 when the node device 10 is a free node. .
  • the node type determination unit 104 refers to the node type information 126 and sends the cluster information (CI) to the cluster information update unit 108 when the node device 10 is a starting node or a participating node.
  • the node type determination unit 104 refers to the node type information 126 and provides free node information (FNL or the like) to the cluster generation unit 110 when the node device 10 is a starting node, and to the free node when the node device 10 is a participating node.
  • the data is sent to the list generation unit 112.
  • the merge cluster list (MCL) is sent to the cluster integration request receiving unit 116 when the node device 10 is a starting node, and to the cluster integration request updating unit 118 when it is a participating node.
  • the merge node list (MNL) is sent to the cluster integration processing unit 122 when the node device 10 is a starting node, and to the cluster integration list notification unit 124 when it is a participating node.
  • the participation processing unit 106 requests participation in the cluster and confirms participation.
  • the participation processing unit 106 receives cluster information (CI) included in the Hello packet when receiving the Hello packet.
  • the participation processing unit 106 checks the contents of the cluster identifier ( ⁇ NID ⁇ ) and end flag included in the cluster information (CI). Further, the participation processing unit 106 confirms whether an entry including the device identifier of the node device 10 itself is stored in the free node list 130.
  • the free node list 130 includes an entry including the identifier of the node device 10 itself.
  • the participation processing unit 106 requests the participation of a cluster that can participate, that is, a cluster whose end flag is not “true”, and the cluster identifier (CID) included in the cluster information (CI) and the node device 10 itself.
  • CID cluster identifier
  • the free node list 130 includes an entry including the identifier of the node device 10 itself, the node device 10 itself has already requested participation in the cluster.
  • the participation processing unit 106 confirms whether or not the identifier of the node device 10 itself is included in the cluster information (CI) in order to confirm whether or not the cluster has joined the cluster.
  • the participation processing unit 106 determines that the node device 10 itself can participate in the cluster, and the node included in the cluster information (CI). Update the set of device identifiers ( ⁇ NID ⁇ ).
  • the identifier of the node device 10 itself is deleted from the free node list 130 and becomes a participating node of the cluster.
  • the end flag is checked in order to check whether it can participate in the cluster identifier (CID) cluster included in the cluster information (CI).
  • the participation processing unit 106 determines that the cluster to which the node device 10 itself belongs already includes the maximum number of node devices. Delete 130 entries.
  • the free node list 130 does not include an entry including the identifier of the node device 10 itself and receives a Hello packet including cluster information (CI) whose end flag is “true”, the node device 10 itself becomes the origin node.
  • the node type information 126 is changed, and the cluster information 128 is updated.
  • the cluster information update unit 108 is included in the cluster information (CI) in order to confirm whether the cluster information (CI) notified by the Hello packet is information related to the cluster to which the node device 10 itself belongs. It is confirmed whether the cluster identifier (CID) matches the identifier of the cluster to which the node device 10 itself belongs. If the two match, the information of the cluster to which the node device 10 itself belongs is notified, so the cluster information update unit 108 determines the cluster information 128 based on the cluster information (CI) notified by the Hello packet. Update. Further, the cluster information update unit 108 deletes the entry related to the node device included in the cluster information (CI) from the free node list 130.
  • CID cluster identifier
  • the cluster information update unit 108 compares the merge node list (MNL) or the merge cluster list (MCL) when the node device 10 itself is set in the cluster information (CI), and merges the cluster as necessary.
  • the list 132 and the merge node list 134 are updated.
  • the cluster information update unit 108 sends the cluster information (CI) received from the node type determination unit 104 to the cluster integration destination candidate notification unit 114.
  • the cluster information update unit 108 confirms that the number of node devices included in the cluster is equal to or less than a predetermined ratio with respect to the maximum number of cluster nodes defined by a predetermined integer value, and has not changed over a predetermined time. It also functions as a cluster node change confirmation unit.
  • the cluster generation unit 110 processes the node free information such as the node free list (FNL) received from the node type determination unit, and refers to and updates the cluster information (CI) managed by the own node as necessary.
  • FNL node free list
  • CI cluster information
  • the free node list generation unit 112 processes the free node list (FNL) received from the node type determination unit 104, and updates the free node list 130 managed by the node device 10 itself as necessary.
  • the cluster integration destination candidate notification unit 114 refers to the cluster information (CI) received from the cluster information update unit 108 and the cluster information 128 managed by the own node, and merges managed by the own node if the conditions for cluster integration are satisfied.
  • the cluster list 132 is updated. When the merge cluster list 132 is updated, if the local node is the starting node, the merge cluster list (MCL) is passed to the cluster integration request reception unit 116.
  • the cluster integration request reception unit 116 processes the merge cluster list (MCL) received from the node type determination unit 104 or the cluster integration destination candidate notification unit 114, and manages the merge cluster managed by the own node if the conditions for cluster integration are satisfied.
  • the list 132 is updated.
  • the cluster integration request update unit 118 processes the merge cluster list (MCL) received from the node type determination unit 104, and updates the merge cluster list 132 managed by the own node if the conditions for cluster integration are satisfied (slave side participation). Node registration). When the own node is a master-side opposite node, the merge cluster list (MCL) and cluster information (CI) are passed to the cluster integrated list generation unit 120.
  • MCL merge cluster list
  • CI cluster information
  • the cluster integration list generation unit 120 processes the merge cluster list (MCL) and cluster information (CI) received from the cluster integration request update unit 118, and manages the merge node list managed by the own node if the conditions for cluster integration are satisfied. 134 is updated.
  • the cluster integration processing unit 122 processes the merge node list (MNL) received from the node type determination unit 104, and updates the cluster information 128 managed by the own node if the conditions for cluster integration are satisfied.
  • MNL merge node list
  • the cluster integration processing unit 122 uses the device identification information stored in its own cluster information storage unit.
  • the number of node devices included in one cluster is acquired, the number of node devices included in the second cluster is acquired based on information included in the hello packet, and the number of node devices included in the first cluster
  • An integrated cluster node number determination unit that determines that the sum of the number of node devices included in the second cluster is equal to or less than the maximum number of cluster nodes is included.
  • the cluster integration processing unit 122 uses the device identification information of the node device included in the second cluster as the device identification information of the node device included in the first cluster.
  • the device identification information stored in the cluster information storage unit is updated, and the second cluster is integrated with the first cluster.
  • the cluster integrated list notification unit 124 processes the merge node list (MNL) received from the node type determination unit, and refers to and updates the merge node list 134 managed by the own node as necessary.
  • MNL merge node list
  • the hello packet generation unit 138 generates a Hello packet and sends it to the transmission unit 140.
  • An example of the format of the Hello packet is shown in FIG.
  • the Hello packet includes a cluster information (CI) field, a free node list (FNL) field, a merge node list (Merge Node List: MNL) field, and a merge cluster list (Merge Cluster List: MCL) field. Information stored in these fields is acquired from the cluster information 128, the free node list 130, the merge node list 134, and the merge cluster list 132, respectively.
  • CI cluster information
  • FNL free node list
  • MNL merge node list
  • MCL merge cluster list
  • the transition from the cluster generation process, which is the first stage of the cluster formation process, to the cluster integration process, which is the second stage, is performed for each node device.
  • Each node device 10 monitors a change in the number of node devices in the cluster to which the node device 10 belongs, and starts a cluster integration process when there is no change in the number of node devices in the cluster over a predetermined time. For example, after joining the cluster in the cluster generation process, the system waits for a certain period of time after the number of nodes in the cluster to which it belongs no longer changes.
  • cluster integration processing is preferentially started from a cluster having a small number of nodes in the adjacent cluster.
  • FIG. 5 is a diagram for explaining the outline of the cluster integration priority determination process for determining from which cluster the cluster integration process is started when there are a plurality of clusters.
  • the cluster 6 is the smallest of the three clusters, that is, the number of node devices included in the cluster is the smallest. Therefore, the cluster 6 moves to the cluster integration stage before the clusters 1 and 9.
  • the cluster integration process which is the second stage
  • the value of the maximum number of cluster nodes set in the first stage is changed, and the cluster information 128 of the node device 10 is further changed. This is done by changing the end flag stored in “true” to “false”.
  • FIG. 6 is a diagram for explaining the outline of the cluster integration destination candidate notification process.
  • the received node device when receiving the Hello packet from the opposite node device belonging to the adjacent cluster, the received node device manages the cluster information (CI) managed by the own node and the cluster information (CI) included in the Hello packet.
  • the number of node devices in both clusters is added to determine whether the maximum number of cluster nodes has been reached. If the total number of nodes is less than or equal to the maximum number of cluster nodes, it is determined that the two clusters can be integrated.
  • the cluster integration destination candidate notification unit 114 of the node device 10 itself determines which of the cluster to which the node device 10 belongs and the adjacent cluster is the master and which is the slave.
  • the value of the identifier (CID) of the adjacent cluster and the adjacent cluster is compared, and the cluster with the smaller cluster identifier (CID) value is the master and the larger cluster is the slave.
  • cluster 1 is a master and cluster 6 is a slave.
  • the node device N7 of the cluster 6 includes three node devices N3, N4, and N5 as adjacent nodes belonging to the cluster 1, that is, the opposite node devices.
  • the cluster integration destination candidate notification is redundant and reaches the starting node N6 of the cluster 6. Therefore, transmission of the cluster integration destination candidate notification may be arbitrarily restricted within the cluster.
  • the pair of the opposite node device is the one having the smallest sum of the ID of the node device of the slave side cluster and the ID of the node device of the master side cluster. You may choose.
  • This information is acquired from the merge cluster list 132 by the Hello packet generation unit 138.
  • the Hello packet as the destination candidate notification is broadcast from the transmission unit 140.
  • FIG. 8 is a diagram showing an operation after the slave side origin node receives the cluster integration destination candidate notification.
  • ⁇ SID, ⁇ NID ⁇ > ⁇ 3, ⁇ 6 ⁇ > Is stored.
  • An example of the cluster information (CI) field and merge cluster list (MCL) field of this Hello packet is shown in FIG. 9A.
  • CI cluster information
  • MCL merge cluster list
  • CI cluster information
  • MCL merge cluster list
  • CI cluster information
  • MNL merge node list
  • MCL merge cluster list
  • CI cluster information
  • MNL merge node list
  • MCL merge cluster list
  • FIG. 11 shows an example of such a Hello packet.
  • CI cluster information
  • MNL merge node list
  • MCL merge cluster list
  • FIG. 13 is a diagram illustrating an example of a hardware configuration of the node device 10.
  • a node device 10 an MPU (Micro Processing Unit) 200, a PHY (Physical Layer) chip 202, a timer IC 204, a DRAM (Dynamic Random Access Memory) 206, a flash memory 208, and a wireless module 210 are included.
  • the MPU 200, the PHY chip 202, the timer IC 204, the DRAM 206, the flash memory 208, and the wireless module 210 are connected to each other by a bus 201 (201a to 201c), and can exchange various data with each other under the management of the MPU 202.
  • a bus 201 201a to 201c
  • the MPU 202 is an arithmetic processing unit that controls the operation of the entire computer 200, and functions as a control processing unit of the computer 200.
  • the MPU 202 includes a node type determination unit 104, a participation processing unit 106, a cluster information update unit 108, a cluster generation unit 110, a free node list generation unit 112, a cluster integration destination candidate notification unit 114, a cluster integration request reception unit 116, and a cluster integration request.
  • the update unit 118, the cluster integration list generation unit 120, the cluster integration processing unit 122, the cluster integration list notification unit 124, the setting unit 136, and the hello packet generation unit 138 operate.
  • the flash memory 208 is a non-volatile memory in which a predetermined basic control program such as firmware is recorded in advance.
  • the MPU 202 can control the operation of each component of the computer 200 by reading out and executing the basic control program when the computer 200 is started.
  • the DRAM 206 is a semiconductor memory that can be written and read at any time and used as a working storage area as necessary when the MPU 202 executes various control programs.
  • the DRAM 206 can store node type information 126, cluster information 128, a free node list 130, a merge cluster list 132, a merge node list 134, and a routing table.
  • the node type information 126 may be stored in the flash memory 208. In this case, the node type information 126 stored in the flash memory 208 is read into the DRAM 206 after activation.
  • the PHY chip 202 and the wireless module 210 operate as the reception unit 102 and the transmission unit 140.
  • the PHY chip 202 is an option, and by using the PHY chip 202, communication using a line can be performed.
  • the timer IC 204 measures the time at which the Hello packet is transmitted, the time during which the number of node devices included in the cluster to which the device 10 belongs does not change, and the like.
  • a program such as firmware may be recorded on a computer-readable recording medium and provided to the node device 10.
  • the MPU 202 can also read and execute a predetermined control program recorded on a computer-readable recording medium.
  • a computer-readable recording medium for example, a flash memory equipped with a USB (Universal Serial Bus) standard connector, a CD-ROM (Compact Disc Only Memory), a DVD-ROM (Digital Versatile Disc Read Only Only Only). )and so on.
  • the program may be installed in the node device 10 by downloading from the network via the PHY chip 202 or the wireless module 210.
  • the node device 10 may be realized by a computer.
  • FIG. 14 is a flowchart for explaining the operation of the node type determination unit 104.
  • step S102 when the Hello packet is input from the receiving unit 102, the node type determining unit 104 refers to the node type information 126 and determines whether the node device 10 itself is a free node. If the result of this determination is Yes, that is, if the node device 10 itself is a free node, the process proceeds to step S104. If the result of this determination is No, that is, if the node device 10 itself is not a free node, the process proceeds to step S106.
  • step S104 the participation processing unit 106 is notified of cluster information (CI) including information that the node device 10 itself is a free node.
  • CI cluster information
  • step S106 the cluster information update unit 108 is notified of cluster information (CI) including information that the node device 10 itself is not a free node.
  • CI cluster information
  • step S108 subsequent to step S106, the node type information 126 is referred to and it is determined whether the node device 10 itself is a starting node. If the result of this determination is Yes, that is, if the node device 10 itself is the starting node, the process proceeds to step S110. If the result of this determination is No, that is, if the node device 10 itself is not the origin node, the process proceeds to step S116.
  • step S110 the free node list (FNL) is notified to the cluster generation unit 110. Then, the process proceeds to step S112.
  • step S112 the merge cluster list (MCL) is notified to the cluster integration request reception unit 116.
  • step S114 subsequent to step S112, the merge node list (NML) is notified to the cluster integration processing unit 122.
  • the order of the processing of step S110, step S112, and step S114 is arbitrary.
  • the process of the node type determination unit 104 ends.
  • step S116 the free node list (FNL) is notified to the free node list generating unit 112. Then, the process proceeds to step S118.
  • step S118 the merge cluster list (MCL) is notified to the cluster integration request update unit 118.
  • step S120 the merge node list (NML) is notified to the cluster integration list notification unit 124.
  • the order of the processing of step S116, step S118, and step S120 is arbitrary.
  • the process of the node type determination unit 104 ends.
  • FIG. 15 is a flowchart illustrating an example of the operation of the participation processing unit 106.
  • the participation processing unit 106 determines whether there is an entry of itself in the free node list 130. If there is an entry in the free node list 130, the process proceeds to step S140. If there is no entry in the free node list 130, the process proceeds to step S132.
  • step S132 it is determined whether or not the end flag included in the cluster information (CI) field of the Hello packet is “true”. When the end flag is “true”, the process proceeds to S136. If the end flag is not “true”, the process proceeds to step S134.
  • step S134 since the number of nodes in the cluster has not reached the maximum number of cluster nodes, the participation processing unit 106 uses the identifier (NID) of its node device as the cluster identifier (CI) included in the cluster information (CI). CID) and store it in the free node list 130.
  • NID identifier
  • CID cluster identifier
  • step S136 the participation processing unit 106 generates cluster information 128 so that its own node device can operate as a starting node.
  • the cluster information 128 stores the identifier of its own node device as a cluster identifier (CID), and the newly generated cluster includes its own node. Then, the process proceeds to step S138.
  • CID cluster identifier
  • step S138 the participation processing unit 106 changes the setting of its own node device to the starting node, and when the processing of step S138 is completed, the processing of the participation processing unit 106 ends.
  • step S130 determines whether there is an entry in the free node list 130. If the result of the determination in step S130 is Yes (Y), that is, if there is an entry in the free node list 130, the participation processing unit 106 has the identifier of its node device in the cluster information 128 in step S140. Check if it is included. If the result of the determination in step S140 is Yes (Y), that is, if the cluster information 128 includes the identifier of its own node device, the process proceeds to step S142.
  • step S142 the participation processing unit 106 deletes its own node device entry from the free node list 130, and stores the node information included in the cluster information (CI) field in the cluster information 128. Then, the process proceeds to step S144.
  • CI cluster information
  • step S144 the participation processing unit 106 changes the setting of its own node device to the participating node, and when the processing of step S138 is completed, the processing of the participation processing unit 106 ends.
  • step S140 determines whether the cluster information 128 includes the identifier of its own node device. If the result of the determination in step S140 is No (N), that is, if the cluster information 128 does not include the identifier of its own node device, the process proceeds to step S146.
  • step S146 it is determined whether the end flag is “true”. If the result of this determination is Yes (Y), the process proceeds to step S148. If this determination is No (N), the process of the participation process part 106 will be complete
  • step S148 since the number of node devices in the cluster to which the node device 10 belongs has reached the upper limit, the entry in the free node list 130 is deleted, and the processing of the participation processing unit ends.
  • FIG. 16 is a flowchart illustrating an example of the operation of the cluster information update unit 108.
  • Each node performs the following processing when the cluster identifier (CID) of the cluster information (CI) of the received Hello packet is the same as the cluster identifier (CID) stored in the cluster information 128 of its own node device.
  • a timer is set for taking a fixed time from the time when the number of node devices in the cluster changes. If there is no change in the number of node devices in the cluster within a certain time, the cluster information (CI) of the received Hello packet is merged with the cluster information 128 of the own node device, so that Recognize all nodes.
  • the entry corresponding to the node device added to the cluster information 128 is deleted from the free node list 130 of its own node device. If the node device identifier (NID) stored in the merge node list 134 of its own node device is included in the cluster information (CI) of the received Hello packet, the cluster integration (master side) is completed. Recognize and delete the entry stored in the merge node list 134 of its own node device.
  • NID node device identifier
  • Each node performs the following processing when the cluster identifier (CID) of the cluster information (CI) of the received Hello packet is different from the cluster identifier (CID) stored in the cluster information 128 of its own node device. That is, the node device identifier (NID) included in the merge cluster list 132 of the own node device and the cluster information (CI) of the received Hello packet is confirmed, and the identifier of the own node device is included. For example, the cluster information (CI) of the received Hello packet is replaced with the cluster information 128 of its own node device and stored in the merge node list 134 of its own node device. Delete the entry. If cluster integration is not in progress, the cluster information (CI) included in the received Hello packet received from the node type determination unit 104 is passed to the cluster integration destination candidate notification unit 114.
  • step S150 the cluster information update unit 108 checks whether the cluster identifier (CID) in the cluster information (CI) field of the received Hello packet matches the cluster identifier (CID) stored in its own cluster information 128. judge. If the result of this determination is Yes, that is, if both match, the process proceeds to step S152. If the result of this determination is No, that is, if the two do not match, the process proceeds to step S168.
  • CID cluster identifier
  • step S152 the cluster information update unit 108, that is, if the cluster identifier (CID) in the cluster information (CI) field of the received Hello packet matches the cluster identifier (CID) stored in its own cluster information 128, Whether there is a difference between the number of nodes in the cluster identified by the cluster identifier (CID) included in the Hello packet in S152 and the number of nodes in the cluster identified by the cluster identifier (CID) stored in its own cluster information 128 Determine if. If the result of this determination is Yes, the process proceeds to step S154. If the result of this determination is No, the process proceeds to step S156.
  • step S154 the cluster information update unit 108 sets a timer that measures a timeout for a predetermined time from when the number of nodes in the cluster identified by the cluster identifier (CID) changes. Then, the process proceeds to step S156.
  • CID cluster identifier
  • step S156 the node identifier ( ⁇ NID ⁇ ) included in the cluster information (CI) field of the received Hello packet and the cluster identifier (CID) stored in its own cluster information 128 are changed to the cluster recognized.
  • the identifiers ( ⁇ NID ⁇ ) of the included nodes are combined (merged). As a result, all node devices included in the cluster identified by the cluster identifier (CID) are recognized.
  • step S158 the cluster information updating unit 108 lists the identifiers (NID) of node devices that are desired to participate in the cluster identified by the cluster identifier (CID) included in the free node list 130 of its own node device. Whether the identifier (NID) of the node device included in the cluster identified by the cluster identifier (CID) stored in its own cluster information 128 is included.
  • step S158 determines whether the determination result of step S158 is Yes, the process proceeds to step S160, and if No, the process proceeds to step S162 without processing step S160.
  • step S160 the cluster information update unit 108 matches its node identifier ( ⁇ NID ⁇ ) included in the cluster recognized by the cluster identifier (CID) stored in its own cluster information 128.
  • the identifier (NID) of the node device included in the free node list 130 is deleted. Then, the process proceeds to step S162.
  • step S162 the cluster information update unit 108 determines whether the merge node list 134 of its own node device is set. If it has been set, the process proceeds to step S164. If not set, the processing of the cluster information update unit 108 is terminated.
  • step S164 the cluster information updating unit 108 uses the node identifier ( ⁇ NID ⁇ ) included in the merge node list 132 of its own node device as the node identifier (CI) field included in the received Hello packet cluster information (CI) field. ⁇ NID ⁇ ) is determined. If the result of this determination is Yes, the process proceeds to step S166. If the result of this determination is No, the processing of the cluster information update unit 108 is terminated.
  • step S166 the node included in the cluster recognized by the identifier ( ⁇ NID ⁇ ) of the node included in the merge node list 132 of the own node device and the identifier (CID) of the cluster stored in the own cluster information 128. Are compared, the identifier of the matching node device is deleted from the merge node list 132 of its own node device, and the processing of the cluster information updating unit 108 is terminated.
  • the cluster information update unit 108 determines in step S168 that It is determined whether the identifier (NID) of its own node device is set in the merge cluster list 132 of the current node device. If the result of this determination is Yes, the process proceeds to step S170. If the result of this determination is No, the process proceeds to step S178.
  • step S170 the cluster information update unit 108 determines whether the identifier (NID) of its own node device is set in the node identifier ( ⁇ NID ⁇ ) included in the cluster information (CI) field of the received Hello packet. To do. If the result of this determination is Yes, the process proceeds to step S172. If the result of this determination is No, the process proceeds to step S178.
  • NID identifier
  • CI cluster information
  • step S172 it is determined whether or not the source LS of the received Hello packet is included in the SID of the merge cluster list or the identifier (NID) of the node device included in its own cluster information 128. If the result of this determination is Yes, the process proceeds to step S174. If the result of this determination is No, the process proceeds to step S178.
  • step S174 the information included in the own cluster information 128 is deleted, and the information included in the cluster information (CI) field of the received Hello packet is overwritten on the own cluster information 128.
  • step S176 subsequent to step S174, information included in the merge cluster list 132 of its own node device is deleted, and the processing of the cluster information update unit 108 is terminated.
  • step S178 the cluster integration destination candidate notification unit is processed.
  • the process of step S178 ends, the process of the cluster information update unit 108 ends.
  • FIG. 17 is a flowchart illustrating an example of the operation of the cluster generation unit 110.
  • the cluster generation unit 110 determines whether the value of the end flag of the cluster information 128 is “true”. If the value of the end flag is “true”, a new node device cannot be added to the cluster. If the result of this determination is No, that is, if the value of the end flag is “false”, a new node device can be added to the cluster. If the result of this determination is Yes, that is, if the value of the end flag is “true”, the processing of the cluster generation unit 110 ends. If the value of the end flag is “false”, the process proceeds to step S182.
  • the cluster generation unit 110 When the value of the end flag is “false”, the cluster generation unit 110 is about to join the free node information included in the free node list (FNL) field of the received Hello packet to the cluster created by its own node device. Check whether it is the identifier of the node device. Therefore, in S182, the cluster generation unit 110 determines whether the cluster identifier (CID) included in the free node list (FNL) field of the received Hello packet is different from the cluster identifier (CID) included in the cluster information 128. Determine. When the result of this determination is No, that is, when the cluster identifier (CID) included in the free node information and the cluster information 128 matches, the cluster generation unit 110 performs the following operation on the cluster generated by its own node device. Recognize that participation was requested. Then, the process proceeds to step S184. If the result of this determination is Yes, the processing of the cluster generation unit 110 ends.
  • the cluster generation unit 110 adds the identifier (NID) of the node device included in the free node information to the cluster information 128, and participates in the cluster.
  • NID identifier
  • FIG. 18 is a flowchart illustrating an example of the operation of the free node list generation unit 112. Steps S190 and S200 are the same processes as steps 180 and S182, respectively.
  • step S190 the free node list generation unit 112 determines whether the value of the end flag of the cluster information 128 is true. If the result of this determination is Yes, that is, if the value of the end flag is true, the processing of the free node list generation unit 112 ends. If the value of the end flag is false, the process proceeds to step S200.
  • step S200 the free node list generation unit 112 determines whether the cluster identifier (CID) included in the free node list (FNL) field of the received Hello packet is different from the cluster identifier (CID) included in the cluster information 128. Determine. When the result of this determination is No, the free node list generation unit 112 recognizes that participation has been requested for the cluster generated by its own node device. Then, the process proceeds to step S202. If the result of this determination is Yes, the processing of the free node list generation unit 112 ends.
  • CID cluster identifier
  • FNL free node list
  • step S202 the free node list generation unit 112 determines whether the cluster information 128 includes the identifier (NID) of the node device included in the free node list (FNL) field of the received Hello packet.
  • NID identifier
  • the process proceeds to step S204. If the result of this determination is Yes, the processing of the free node list generation unit 112 ends.
  • step S204 the free node list generation unit 112 adds the identifier (NID) of the node device included in the free node list (FNL) field to the free node list 130.
  • NID identifier
  • FNL free node list
  • FIG. 19 is a flowchart illustrating an example of the operation of the cluster integration destination candidate notification unit 114.
  • each node receives a Hello packet containing cluster information (CI) that is different from the cluster identifier (CID) of the cluster to which it belongs, it proceeds to the cluster integration stage. Is determined based on whether the timer has timed out from when the number of node devices in the cluster is no longer changed. If it has shifted to the cluster integration stage, the number of nodes of both clusters is summed from the cluster information 128 of its own node device and the cluster information (CI) of the received Hello packet. Judge that it is possible.
  • the cluster integration destination candidate (node device belonging to the master side cluster) is set as the SID of the merge cluster list (MCL).
  • the set merge cluster list is passed to the cluster integration reception unit.
  • step S210 the cluster integration destination candidate notification unit 114 determines whether or not the cluster identifier (CID) in the cluster information (CI) field of the received Hello packet is different from the cluster identifier (CID) stored in its own cluster information 128. Determine.
  • the Hello packet at this time has a meaning as a cluster integration destination candidate notification. If the result of this determination is Yes, that is, if the cluster identifier (CID) in the cluster information (CI) field of the received Hello packet is different from the cluster identifier (CID) stored in its own cluster information 128, step S212. Proceed to
  • step S212 the cluster integration destination candidate notification unit 114 determines whether or not a time-out has occurred for a certain time from when the number of node devices is no longer changed. When the result of this determination is Yes, the cluster integration destination candidate notification unit 114 recognizes that it has shifted to the cluster integration stage. Then, the process proceeds to step S214.
  • step S214 the cluster integration destination candidate notification unit 114 receives the identifier (NID) of the node device included in the cluster information (CI) field of the received Hello packet and the identifier (NID) of the node device stored in its own cluster information 128 ( NID) is determined whether the total number of entries is equal to or less than the maximum number of cluster nodes, which is the upper limit of the number of node devices per cluster.
  • NID cluster information 128
  • step S216 the cluster integration destination candidate notification unit 114 determines whether the cluster to which the cluster integration destination belongs belongs to the slave side. If the result of this determination is Yes, the process proceeds to step S216.
  • step S218 the cluster integration destination candidate notification unit 114 determines whether the merge cluster list (MCL) of the received Hello packet is empty. If the result of this determination is Yes, the process proceeds to step S220.
  • MCL merge cluster list
  • step S220 the cluster integration destination candidate notifying unit 114 sets the node device that belongs to the cluster integration destination candidate, that is, the master side cluster, and is adjacent to itself to the SID of the merge cluster list (MCL).
  • step S222 after step S220, the cluster integration destination candidate notification unit 114 determines whether it is a starting node. If the result of this determination is Yes, the process proceeds to step S224.
  • step S224 the cluster integration destination candidate notification unit 114 passes the set merge cluster list to the cluster integration request reception unit 116. Then, the processing of the cluster integration destination candidate notification unit 114 ends.
  • FIG. 20 is a flowchart illustrating an example of the operation of the cluster integration request accepting unit 116.
  • the originating node compares and determines whether or not the cluster integration destination candidate notifications from other clusters are in conflict based on information included in the merge cluster list 132 of its own node device.
  • the cluster integration destination candidate notification is received.
  • the origin node Upon receipt of the cluster integration destination candidate notification, the origin node adds an identifier (NID) of its own node device to the merge cluster list 132.
  • NID identifier
  • step S230 the cluster integration request accepting unit 116 determines whether the identifier (SID) of the node device of the master side cluster included in the merge cluster list (MCL) field of the received Hello packet is not included in the own cluster information 128. Determine. If the result of this determination is Yes, the process proceeds to step S232. If the result of this determination is No, the processing of the cluster integration request acceptance unit 116 is terminated.
  • SID identifier
  • MCL merge cluster list
  • step S232 the cluster integration request reception unit 116 determines whether the identifier (NID) of the node device in the merge cluster list (MCL) field of the received Hello packet is not set. If the result of this determination is Yes, the process proceeds to step S238. If the result of this determination is No, the process proceeds to step S234.
  • NID identifier
  • MCL merge cluster list
  • step S234 the cluster integration request receiving unit 116 determines that the identifier (SID) of the node device of the master side cluster included in the merge cluster list (MCL) field of the received Hello packet is the master side included in its own merge cluster list 132. It is determined whether it is the same as the identifier (SID) of the cluster node device. If the result of this determination is Yes, the process proceeds to step S236. If the result of this determination is No, the processing of the cluster integration request acceptance unit 116 is terminated.
  • SID identifier
  • step S236 the cluster integration request receiving unit 116 uses the identifier (NID) of the node device included in the merge cluster list (MCL) field of the received Hello packet as the identifier (NID) of the node device included in its own merge cluster list 132. ) To merge.
  • step S232 If the result of the determination in step S232 is Yes, that is, if it is determined that the identifier (NID) of the node device in the merge cluster list (MCL) field of the received Hello packet is not set, the process of step S238 is performed. .
  • step S2308 the cluster integration request receiving unit 116 sets the identifier (NID) of its own node device as the identifier (NID) of the node device included in its own merge cluster list 132. Then, the processing of the cluster integration request reception unit 116 ends.
  • FIG. 21 is a flowchart illustrating an example of the operation of the cluster integration request update unit 118.
  • the participating node determines that the cluster integration request notification has been received because the origin node of the cluster to which the node device belongs is set in the merge cluster list (MCL). Is added to its own merge cluster list 132.
  • MCL merge cluster list
  • step S240 the cluster integration request update unit 118 determines whether the identifier (SID) of the node device of the master side cluster included in the merge cluster list (MCL) field of the received Hello packet is not included in its own cluster information 128. Determine. If the result of this determination is Yes, the process proceeds to S250, where the cluster integration list generation unit 120 performs processing, and the cluster integration request update unit 118 processing ends. If the result of this determination is No, the process proceeds to step S242.
  • SID identifier
  • MCL merge cluster list
  • step S242 the cluster integration request update unit 118 determines whether the identifier (NID) of the node device in the merge cluster list (MCL) field of the received Hello packet is not set. If the result of this determination is No, the process proceeds to step S244. If the result of this determination is Yes, the process proceeds to step S248.
  • NID identifier
  • MCL merge cluster list
  • step S248 the cluster integration request update unit 118 sets the identifier (SID) of the node device of the master side cluster included in the merge cluster list (MCL) field of the received Hello packet in its own merge cluster list 132. Then, the processing of the cluster integration request update unit 118 ends.
  • SID identifier
  • MCL merge cluster list
  • step S244 the cluster integration request update unit 118 determines whether or not the node device identifier (NID) in the merge cluster list (MCL) field of the received Hello packet is included in its own cluster information 126. If the result of this determination is No, the processing of the cluster integration request update unit 118 ends. If the result of this determination is Yes, the process proceeds to step S246.
  • NID node device identifier
  • MCL merge cluster list
  • step S246 the cluster integration request update unit 118 adds its own node device identifier to the node device identifier (NID) stored in the merge cluster list 132 of its own node device. Then, the processing of the cluster integration request update unit 118 ends.
  • NID node device identifier
  • FIG. 22 is a flowchart illustrating an example of the operation of the cluster integrated list generation unit 120.
  • the opposite node on the master side has the identifier (NID) of the node device stored in the cluster information 128 of its own node device, and the identifier of the node device included in the merge cluster list (MCL) field of the received cluster integration request notification ( NID) completely matches. If they match, the identifier (NID) of the node device included in the merge cluster list (MCL) field of the received Hello packet (cluster integration request notification) is stored in the cluster information 128 of the own node device (NID). ).
  • step S260 the cluster integrated list generation unit 120 determines whether the merge cluster list 132 of its own node device is empty. If the result of this determination is Yes, the process proceeds to S262.
  • step S262 the cluster integrated list generation unit 120 determines whether the identifier (SID) of the node device of the master side cluster included in the merge cluster list (MCL) field of the received Hello packet is the identifier of its own node device. judge. If the result of this determination is Yes, the process proceeds to S264.
  • SID identifier
  • MCL merge cluster list
  • step S264 the cluster integrated list generating unit 120 determines the identifier (NID) of the node device included in the cluster information (CI) field of the received Hello packet and the identifier (NID) of the node device stored in its own cluster information 128. ) Match. If the result of this determination is Yes, the process proceeds to S266.
  • step S266 the cluster integrated list generating unit 120 sets the identifier (NID) of the node device included in the cluster information (CI) field of the received Hello packet in its own merge node list 134. Then, the process of the cluster integrated list generation unit 120 is terminated.
  • NID identifier
  • FIG. 23 is a flowchart illustrating an example of the operation of the cluster integration processing unit 122.
  • the origin node confirms the conflict of the cluster integration request, and the number of node device identifiers (NID) included in the merge node list (MNL) of the received Hello packet and the node stored in the cluster information 128 of its own node device If the total number of devices is equal to or less than the maximum number of cluster nodes that is the upper limit of the number of node devices per cluster, the node devices included in the merge node list (MNL) of the Hello packet received in the cluster information 128 of the node devices Cluster integration is performed by adding an identifier (NID).
  • NID node device identifiers
  • step S270 the cluster integration processing unit 122 determines whether the merge cluster list 132 of its own node device is not set. If the result of this determination is Yes, the process proceeds to S272.
  • step S272 the cluster integration processing unit 122 determines the number of node device identifiers (NID) included in the merge cluster list (MCL) field of the received Hello packet, and the identifier of the node device stored in its own cluster information 128. It is determined whether the total number of (NID) is less than or equal to the maximum number of cluster nodes that is the upper limit of the number of node devices per cluster. If the result of this determination is Yes, the process proceeds to S274.
  • NID node device identifiers
  • step S274 the cluster integration processing unit 122 adds the identifier (NID) of the node device included in the merge cluster list (MCL) field of the received Hello packet to its own cluster information 128, and integrates the cluster. Then, the processing of the cluster integration processing unit 122 ends.
  • NID identifier
  • MCL merge cluster list
  • 24 and 25 are flowcharts showing an example of the operation of the cluster integrated list notification unit 124.
  • the participating node confirms the conflict of the cluster integration request, and the identifier (NID) of the node device included in the merge node list (MNL) field of the received Hello packet is the identifier (NID) of the node device included in the merge node list 134.
  • NID identifier of the node device included in the merge node list
  • FIG. 24 is a flowchart showing an example of the operation of the cluster integrated list notification unit 124 when integrating with one cluster of a plurality of clusters when an integration request notification is sent from a plurality of clusters.
  • step S280 the cluster integrated list notification unit 124 determines whether the merge cluster list 132 of its own node device is empty. If the result of this determination is Yes, the process proceeds to S282.
  • step S282 the cluster integrated list notification unit 124 determines whether its own merge node list 134 is not set. If the result of this determination is Yes, the process proceeds to S284.
  • step S284 the cluster integrated list notification unit 124 sets the identifier (NID) of the node device included in the merge node list (MNL) field of the received Hello packet as the identifier (NID) of the node device included in the merge node list 134. To do. Then, the process of the cluster integrated list notification unit 124 is terminated.
  • FIG. 25 is a flowchart showing an example of the operation of the cluster integration list notification unit 124 that integrates simultaneously with a plurality of clusters when an integration request notification is sent from a plurality of clusters.
  • step S290 the cluster integrated list notification unit 124 performs the same process as in step S280. That is, it is determined whether the merge cluster list 132 of its own node device is empty. If the result of this determination is Yes, the process proceeds to S292. If the result of this determination is No, the processing of the cluster integrated list notification unit 124 is terminated.
  • step S292 the cluster integrated list notification unit 124 performs the same process as in step S284.
  • step S292 the cluster integrated list notification unit 124 sets the identifier (NID) of the node device included in the merge node list (MNL) field of the received Hello packet as the identifier (NID) of the node device included in the merge node list 134. To do. Then, the process of the cluster integrated list notification unit 124 is terminated.
  • FIG. 26 is a diagram illustrating an example of a network topology before cluster integration.
  • FIG. 26 shows that the maximum number of nodes per cluster is set to 3 in the cluster generation stage, which is the first stage of cluster formation, and the maximum number of nodes per cluster is set to 6 in the cluster integration stage, which is the second stage. It shows the state.
  • Cluster A which is a node device, is formed.
  • FIG. 28 is a sequence diagram for explaining an example of processing when the cluster A and the cluster E are integrated to shift to the state shown in FIG.
  • the node device D of the cluster E sends a Hello packet (a) to the node device C.
  • the cluster information (CI) of the Hello packet (a) CI: ⁇ CID, ⁇ NID ⁇ , end> ⁇ E, ⁇ D, E ⁇ , false> Is stored.
  • the node device D is included in the cluster information 128 of the node device D, the number of node devices included in the cluster E to which the node device D belongs, and the cluster information (CI) field of the Hello packet (b).
  • the node device D registers (1) the transmission source C of the Hello packet (b) received from the node device C in the SID of its own merge cluster list 132.
  • a notification process (2) for broadcasting the Hello packet (c) as a cluster integration destination candidate notification within the cluster E is performed.
  • MCL merge cluster list
  • the node device E that has received the Hello packet (c) from the node device D confirms that the cluster integration request is not competing because it is the origin node. Further, a setting process (4) for setting an identifier (NID) of the node device in the merge cluster list 132 of the node device E is performed. Here, an update process (3) is performed so that the own cluster cluster list 132 is updated so that the node apparatus E is included in the merge cluster list 132. Next, the node device E broadcasts the Hello packet (d) in the cluster E.
  • NID identifier
  • CI cluster information
  • MCL merge cluster list
  • the node device D that has received the Hello packet (d) from the node device E recognizes that the cluster integration request has been received by including the origin node E in the merge cluster list of the received Hello packet (d). Then, the own cluster cluster list 132 is updated so that the node device D is included, and processing (5) for propagating that the cluster integration request has been received is performed.
  • the node device D broadcasts a Hello packet (e).
  • CI cluster information
  • MCL merge cluster list
  • MCL merge cluster list
  • the node device C broadcasts the Hello packet (f) in the cluster A.
  • CI cluster information
  • MNL merge node list
  • the node device B broadcasts the Hello packet (g) in the cluster A.
  • CI cluster information
  • MNL merge node list
  • the origin node A that has received the Hello packet (g) confirms that the cluster integration request is not in conflict.
  • the sum of the number of node device identifiers ⁇ D, E ⁇ included in the merge node list 134 and the number of node devices of the cluster A to which the node device A included in the cluster information 126 belongs is the maximum cluster node. If the number is less than or equal to the number, update processing (9) is performed in which nodes ⁇ D, E ⁇ included in the merge node list (MNL) field of the Hello packet (g) are added to the cluster information 126.
  • the node apparatus A produces
  • CI cluster information
  • CI: ⁇ CID, ⁇ NID ⁇ , end> ⁇ A, ⁇ A, B, C, D, E ⁇ , false> Contains information.
  • the node device B that has received the Hello packet (h) from the node device A sets the identifier ⁇ A, B, C, D, E ⁇ of the node device included in the cluster information (CI) field of the Hello packet (h). If there is a match with the merge node list (MNL) of the node device B, a process (11) for deleting the identifier (NID) of the node device from the merge node list 134 of the node device B and rewriting the cluster information 128 is performed. Do.
  • the node device B After performing the process (11), the node device B transmits a Hello packet (i).
  • CI cluster information
  • CI cluster information
  • the node device C that has received the Hello packet (i) from the node device B performs the same processing (12) as the processing (11). That is, the node device C matches the node device identifier ⁇ A, B, C, D, E ⁇ included in the cluster information (CI) field of the Hello packet (i) with the merge node list 134 of the node device C. If there is something to do, processing (12) for deleting the identifier (NID) of the node device from the merge node list (MNL) of the node device C and rewriting the cluster information 128 is performed.
  • the node device C After performing the process (12), the node device C transmits a Hello packet (j).
  • CI cluster information
  • CI cluster information
  • the node device D that has received the Hello packet (j) from the node device C is in an integrated state because its own cluster device D is included in its own merge cluster list 132, and the cluster information of the Hello packet (j) ( CI) field device identifier ⁇ A, B, C, D, E ⁇ included in the node device D, that is, information that is permitted to be integrated, and this Hello packet (j) Since the node device C that is the transmission source matches the SID of its own merge cluster list 132, the node included in the cluster information (CI) field of the cluster information (CI) field of the Hello packet (j) A device whose NID in the merge cluster list 132 matches the device is deleted from the merge cluster list 132 and H Cluster information (CI) node device included in the cluster information (CI) field of the fields llo packet (j), the rewritten to its cluster information 128 performs a process (13). After this processing, the node device D belongs to the cluster A.
  • the node device C After performing the process (13), the node device C transmits a Hello packet (k).
  • CI cluster information
  • CI cluster information
  • the node device E that has received the Hello packet (k) from the node device D is in an integrated state because the node device E is included in its own merge cluster list 132, and the cluster information of the Hello packet (k) ( CI) field device identifier ⁇ A, B, C, D, E ⁇ included in the node device E, that is, information that is permitted to be integrated, and this Hello packet (k) Is included in the cluster information 128 of the node device E, the node device included in the cluster information (CI) field of the cluster information (CI) field of the Hello packet (k) And the merge cluster list 132 having the same NID are deleted from the merge cluster list 132 and Hello Packet cluster information (CI) node device included in the cluster information (CI) field of the fields (k), the rewrite its own cluster information 128 performs a process (14). After this processing, the node device E belongs to the cluster A.
  • FIG. 29 is a diagram illustrating a result of forming a cluster using the node device disclosed in the comparative example described above.
  • FIG. 30 is a diagram illustrating a result of forming a cluster using the node device disclosed in the above embodiment. In the embodiment, it can be seen that a cluster having a small size, that is, a small number of node devices included, is reduced.
  • cluster formation is performed by reducing the load on the network and reducing the load on the cluster head by performing cluster formation in two stages of cluster generation processing and cluster integration processing by only transmitting and receiving Hello packets. be able to.
  • cluster integration process By executing the cluster integration process, the number of clusters is reduced, and the number of clusters straddling at the time of routing can be reduced. Furthermore, the throughput of an ad hoc network can be improved by reducing processing resources.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

 複数のノード装置を含むネットワーク中のノード装置は、前記ノード装置が経路情報を記憶するノード装置のグループである第1のクラスタに含まれるノード装置の装置識別情報を格納するクラスタ情報格納部と、前記第1のクラスタとは異なる第2のクラスタに含まれる前記隣接ノード装置の一つからハローパケットを受けたとき、前記第1のクラスタに含まれるノード装置の数を取得し、前記ハローパケットに含まれる情報に基づいて前記第2のクラスタに含まれるノード装置の数を取得し、前記第1のクラスタに含まれるノード装置の数と前記第2のクラスタに含まれるノード装置の数の和が前記最大クラスタノード数以下であることを判定する統合クラスタノード数判定部と、前記第2のクラスタに含まれる前記ノード装置の装置識別情報を、前記第1のクラスタに含まれるノード装置の装置識別情報に追加して、前記クラスタ情報格納部に格納される前記装置識別情報を更新し、前記第2のクラスタを前記第1のクラスタに統合させるクラスタ統合処理部と、を含むことを特徴とする。

Description

ノード装置および通信方法
 本発明は、複数のノードを含むネットワークで用いられるネットワーク装置および通信方法に関する。
 アドホックネットワークシステムでは、アドホックネットワーク通信端末(ノード装置、または単にノードとも呼ばれる)同士が自律的にネットワーク接続し、相互の通信を可能としている。「自律的に」という言葉は、使用者によって随時通信経路を設定したり、サーバやルータの通信管理を行う専用の通信端末やインフラを必要としない、ということを意味する。
 アドホックネットワークのルーティングプロトコル(アドホックプロトコル)には、リアクティブ型のAdhoc On Demand Distance Vector Algorithm(AODV)やプロアクティブ型のOptimized Link State Routing(OLSR)が知られている。
 AODVでは、経路探索にブロードキャストを用いて、他の通信ノード装置がブロードキャストを繰り返し、目的のノード装置への経路を発見する手法である。通信ノード装置は、目標とする経路を発見するために周囲に「Route Request(RREQ)」というパケットを送出する。このパケットには、検出目標の通信ノードIDが明記されている。
 周囲の通信ノード装置は、自身を検索していない場合は、新たにRREQパケットを作成して、周囲へのブロードキャストを繰り返し行う。このとき各通信ノード装置は、送り先のメッセージが、隣接するどの通信ノード装置から受信されたものなのかを記録する。RREQメッセージが目的の通信ノードに達したとき、その目的の通信ノード装置は、「Route Reply(PREP)」パケットを作成し、送り元のノードに対して、RREQパケットが送られてきた経路を辿るようにしてPREPを送信する。こうすることによって、双方向の通信経路が作成される。
 OLSRでは、通信ノード装置同士が定期的にパケットを交換し合うことで、ネットワーク全体を把握し、目的の通信ノードまでの経路を検出する。通信ノード装置は、周期的にHelloパケットを送出し、互いにその存在を通知し合う。通信相手となる通信ノード装置の存在が判明したところで、次に効率的にネットワーク全体にパケットを配信するための、Multi Point Reley(MPR)と呼ばれるフラッディング用のパスを生成する。MPRにより、各通信ノード装置から効率よくパケットをネットワーク全体へブロードキャストすることができる。次にこのMPRを用いて、経路生成メッセージであるTechnology Control(TC)パケットをノード装置同士が互いに配信することで全ノード装置がネットワークトポロジーを知ることができる。パケットを目標とする通信ノード装置に送るには、送信元となる通信ノード装置自信が知っているネットワークトポロジーを参照し、送るべき隣接通信ノード装置にパケットを渡す。隣接ノードも同様に処理を行う、最終的に目標ノード装置にパケットを配信する。
 無線アドホックネットワークに属するノード装置は、ルーティング情報を伝播させるためにHelloパケットを用いる。
 たとえば、アドホックネットワークは、ノード装置Aとノード装置Bを含むとする。ノード装置Aは、自身が保持しているルーティング情報を含むHelloパケットを生成し、周期的にブロードキャスト送信する。Helloパケットを受信したノード装置Bは、ノード装置Bが保持しているルーティング情報と、Helloパケットに含まれている情報を比較し、ノード装置Bが保持していなかったルーティング情報をHelloパケットから取得する。さらに、ノード装置Bは、Helloパケットから経路の品質情報も取得し、なるべく品質の良い経路を用いて通信を行う。このようにアドホックネットワークに属するノード装置は、Helloパケットを用いて、ネットワークに含まれている他のノード装置への経路情報を学習し、最適経路を推測する。そして、推測された最適経路を用いて通信を行う。アドホックネットワークに含まれている各ノード装置は、アドホックネットワーク中の他の全てのノード装置までの経路をルーティングテーブル中に保持する。たとえば、ノード装置Aは、アドホックネットワーク中のノード装置A以外のノード装置の各々への経路情報をルーティングテーブルに保持する。このため、ノード装置Aは、たとえば、ノード装置Bを介してノード装置Cにデータパケットを送信することができる。このようなノード装置は、パケットの最終宛先ごとに中継先とするノードについての重み情報を格納する重み付けテーブルを備えることもある。この場合、ノード装置は、パケットを転送する際に、パケットの宛先ノードに対応する重み付けテーブルを参照して、パケットを中継するために宛先とするノードを特定する。
 しかし、各ノード装置がアドホックネットワーク中の他の全てのノード装置までの経路をルーティングテーブル中に保持する方法では、ネットワーク中のノード装置の数が増加すると、ルーティングテーブルのサイズが大きくなる。そこで、ネットワーク中のノード装置をクラスタに分け、各ノード装置が同一のクラスタ内のノード装置までの経路情報をルーティングテーブルに格納する方法が知られている。
 ネットワーク中のノード装置からクラスタを生成する際に、制御パケットを用いる方法がある。たとえば、経路情報に基づいて各ノード装置が属するクラスタを決定し、クラスタに参加するときとクラスタから離脱するときに、制御パケットを送受信する。一般に、クラスタを形成する際には、クラスタ内のノードの数が所定の値を超えると、別のクラスタを生成する。また、制御パケットではなくHelloパケットを用いる方法も知られている。
国際公報第2006/067922号パンフレット
 制御パケットがユニキャスト送信される場合や、ネットワーク中の全てのノード装置に向けてフラッディングされる場合には、制御パケットの送受信や中継処理により、ノード装置の負荷が増大するという問題がある。
 また、Helloパケットを用いて、クラスタ内のノードの数が所定の値を超えると、別のクラスタを生成する処理を繰り返してクラスタを形成する方法では、ノードの配置によってはクラスタ毎にクラスタ数のバラつきが発生するという問題がある。つまり、時として、クラスタ数は、「ネットワーク全体でのノード数÷クラスタ内の上限ノード数」より多くなる。数千台というオーダーのノード装置を含む大規模なネットワークに適用する場合、クラスタ数が多くなるとルーティング時のクラスタを跨ぐ数が多くなり、スループットが低下するという問題がある。
 よって、アドホックネットワーク中のノード装置であって、集まってクラスタを形成したときに、個々のクラスタのサイズのばらつきが小さく、クラスタの数も小さくすることができるノード装置が望まれている。
 複数のノード装置を含むネットワーク中のノード装置は、ネットワーク中の前記複数のノード装置の中で、前記ノード装置が経路情報を記憶するノード装置のグループである第1のクラスタに含まれるノード装置の装置識別情報を格納するクラスタ情報格納部と、隣接するノード装置である隣接ノード装置から、前記ネットワーク中の情報伝達のための経路に関する経路情報、および前記隣接ノード装置が経路情報を記憶するノード装置のグループである第2のクラスタに含まれるノード装置の装置識別情報の通知に用いられるハローパケットを受信する受信部と、前記第1のクラスタに含まれるノード装置の数が、所定の整数値で定義される最大クラスタノード数に対する所定の割合以下であり、且つ所定の時間にわたり変化がないことを確認するクラスタノード変化確認部と、前記第1のクラスタとは異なる第2のクラスタに含まれる前記隣接ノード装置の一つから前記ハローパケットを受けたとき、前記クラスタ情報格納部に格納されている前記ノード装置の装置識別情報から前記第1のクラスタに含まれるノード装置の数を取得し、前記ハローパケットに含まれる情報に基づいて前記第2のクラスタに含まれるノード装置の数を取得し、前記第1のクラスタに含まれるノード装置の数と前記第2のクラスタに含まれるノード装置の数の和が前記最大クラスタノード数以下であることを判定する統合クラスタノード数判定部と、前記統合クラスタノード数判定部の判定の結果に基づいて、前記第2のクラスタに含まれる前記ノード装置の装置識別情報を、前記第1のクラスタに含まれるノード装置の装置識別情報に追加して、前記クラスタ情報格納部に格納される前記装置識別情報を更新し、前記第2のクラスタを前記第1のクラスタに統合させるクラスタ統合処理部と、前記更新された前記クラスタ情報格納部に格納される前記ノード装置の装置識別情報を参照して、別のハローパケットを生成するハローパケット生成部と、前記別のハローパケットを送信する送信部と、を含むことを特徴とする。
 Helloパケットの送受信のみでクラスタ生成処理およびクラスタ統合処理の2段階でクラスタ形成を行う事で、ネットワークにかかる負荷を軽減し、且つ、クラスタヘッドの負荷を減らしつつ、クラスタ形成を行うことができる。また、個々のクラスタのサイズのばらつきが小さく、クラスタの数も小さくすることができる。クラスタ統合処理を実行することによって、クラスタ数は減少するので、ルーティング時のクラスタを跨ぐ数を減らすことができる。さらに、処理リソースが減少することでアドホックネットワークのスループット向上が可能となる。
クラスタが形成されたアドホックネットワークの例を示す図である。 段階的にクラスタを形成するクラスタ形成処理の概略を説明する図である。 ノード装置の構成の例を示す機能ブロック図である。 Helloパケットのフォーマットの例を示す図である。 クラスタ統合優先順位決定処理の概略を説明する図である。 クラスタ統合先候補通知処理の概略を説明する図である。 クラスタ統合先候補通知処理に伴ってブロードキャストされるHelloパケットの例を示す図である。 クラスタ統合要求通知処理部におけるクラスタ統合要求通知処理の概略を説明する図である。 クラスタ統合要求通知処理部における処理に伴ってブロードキャスト送信される第1のHelloパケットの例を示す図である。 クラスタ統合要求通知処理部における処理に伴ってブロードキャスト送信される第2のHelloパケットの例を示す図である。 クラスタ統合要求通知処理部における処理に伴ってブロードキャスト送信される第3のHelloパケットの例を示す図である。 クラスタ統合要求受付処理部におけるクラスタ統合要求受付処理の概略を説明する図である。 クラスタ統合要求受付処理部における処理に伴ってブロードキャスト送信されるHelloパケットの例を示す図である。 クラスタ情報更新部におけるクラスタ統合完了処理の概略を説明する図である。 ノード装置のハードウェア構成の例を示す構成図である。 ノード種別判定部での処理の流れの例を示すフローチャートである。 参加処理部での処理の流れの例を示すフローチャートである。 クラスタ情報更新処理での処理の流れの例を示すフローチャートである。 クラスタ生成部での処理の流れの例を示すフローチャートである。 フリーノードリスト生成部での処理の流れの例を示すフローチャートである。 クラスタ統合先候補通知部での処理の流れの例を示すフローチャートである。 クラスタ統合要求受付部での処理の流れの例を示すフローチャートである。 クラスタ統合要求更新部での処理の流れの例を示すフローチャートである。 クラスタ統合リスト生成部での処理の流れの例を示すフローチャートである。 クラスタ統合処理部での処理の流れの例を示すフローチャートである。 クラスタ統合リスト通知部での処理の流れの例を示すフローチャートである。 クラスタ統合リスト通知部での処理の流れの別の例を示すフローチャートである。 クラスタ統合前のネットワークのトポロジーの例を示す図である。 クラスタ統合後のネットワークのトポロジーの例を示す図である。 クラスタ統合処理の処理シーケンスの例を示す図である。 比較例のノード装置を含むアドホックネットワークでのクラスタ形成の結果の例である。 実施形態のノード装置を含むアドホックネットワークでのクラスタ形成の結果の例である。
 以下では、図面を参照して、アドホックネットワークのノード装置であって、2段階でクラスタ形成を行うことができる装置を説明する。
 まず、図1~2を参照して、比較例と本発明の概要について説明する。その後、図3~30を参照して、2段階でクラスタ形成を行うことができるノード装置10について説明する。
 図3~30を参照して説明するノード装置10では、Helloパケットの送受信のみでクラスタ生成処理およびクラスタ統合処理の2段階でクラスタ形成を行う事で、ネットワークにかかる負荷を軽減し、且つ、クラスタヘッドの負荷を減らしつつ、クラスタ形成を行うことができる。また、個々のクラスタのサイズのばらつきが小さく、クラスタの数も小さくすることができる。クラスタ統合処理を実行することによって、クラスタ数は減少するので、ルーティング時のクラスタを跨ぐ数を減らすことができる。さらに、処理リソースが減少することでアドホックネットワークのスループット向上が可能となる。
<比較例>
 図1は、クラスタが形成されたアドホックネットワークの例を示す図である。図1のアドホックネットワークは50個の50個のノード装置N1~N50を含んでいる。各ノード装置は、それぞれ固有の識別情報(Identification、ID)を保有する。各ノード装置に付与された識別番号を「ノードID」と呼ぶことがある。図中では各ノード装置は、1~50のノードIDを保有する。ノードIDは、MACアドレスでも良い。
 図1のみならず、図2以降においても、ノード装置のことを単に、「ノード」と呼ぶこともある。各ノードに付与された番号や記号をノードIDとも呼ぶ。これらのノード装置のうち互いに隣接するノード装置は実線で結ばれている。また、ノードIDが数字xで指定される場合、そのノード装置を単にノード装置Nx、またはノードNxを呼ぶことがある。またノードIDが数字以外の記号yで指定される場合、そのノード装置を単にノード装置y、またはノードyと呼ぶことがある。
 ここで、「隣接する」とは、複数のノード装置が互いにパケットを送受信できる距離に位置することを指す。2つのノード装置が隣接しているとき、これら2つのノード装置は「リンク」で結ばれているという。また、あるノード装置から送信されたパケットを受信できる範囲に位置するノード装置のことを、そのノード装置の「隣接ノード装置」または単に「隣接ノード」と呼ぶことがある。
 各ノード装置の例としては、センサが挙げられる。このとき、アドホックネットワーク10は、センサネットワークとも呼ばれる。リンクによるノードの接続は有線であっても無線であっても良い。
 各ノード装置は、互いに隣接しているノード情報やネットワーク全体についての情報を必ずしも把握していない。そこで、各ノードは、自分自身がどのように他のノードと接続されているかを知るために、隣接するノードとの間で、たとえばHelloメッセージのような、経路情報やノード間のリンクの通信品質情報といったノード情報を含むメッセージの送受信を定期的に行う。Helloメッセージは、たとえば数秒間隔で各ノードから送信される。しかしながら、Helloメッセージが送信されるタイミングは、数秒間隔には限らず、任意の一定間隔で送信されても、不定期的に送信されてもよい。そのようなメッセージの遣り取りから、各経路の通信品質を計算し、その結果をもって最終宛先までの複数の経路の構築及び最適な経路の決定を行う。つまり、Helloメッセージには、メッセージを送信するノードと隣接するノード間の経路情報およびノード間リンクの通信品質情報等のノード情報が含まれている。たとえば、あるノード装置から送信されたHelloパケットは、送信元のノード装置の隣接ノード装置で受信される。Helloパケットは、ネットワークの経路情報を通知するために用いられる。
 図1に示されている例は、クラスタのノード数が10を超えると、新しいクラスタを生成する方法を用いて形成されたものである。図1のように50個のノード装置がある場合、ネットワーク全体でクラスタ数を最小にしようとすれば、ノード装置を50/10=5個のクラスタに分けることが可能である。しかしながら、図1では、C1~C8の8個のクラスタで形成されてしまっている。
 クラスタC1~C8はそれぞれ、クラスタヘッドN1、N13,N25、N30、N35、N38,N44、N46を含んでいる。また、クラスタC1は、ノード装置N1~N10を含んでいる。クラスタC2はノード装置N11~N20を含んでいる。クラスタC3はノード装置N21~N25を、クラスタC4はノード装置N26~N30を含んでいる。クラスタC5はノード装置N31~35を、クラスタC6はノード装置N36~N39を含んでいる。クラスタC7はノード装置N41~N45を、クラスタC8はノード装置N46~N50を含んでいる。
 ここで、「クラスタヘッド」とは、クラスタの生成を開始するノード装置であり、クラスタヘッド自身を含むクラスタを生成する。クラスタヘッドを「起点ノード」または「ゲートウェイ(GW)」と呼ぶこともある。
 たとえば、ノード装置N1がクラスタ生成を開始するとする。この時点でノード装置N2~N50は、いずれのクラスタにも属していないものとする。このように、クラスタに属していないノード装置のことを「フリーノード」と呼ぶことがある。
 起点ノードは、生成しているクラスタの識別子(図1では、C1、C2、...、C8など)とそのクラスタに参加しているノード装置の識別子(図1のクラスタC1であればノード装置を示すID番号1~10など)を含むHelloパケットをブロードキャスト送信する。フリーノードは、起点ノードから送信されたHelloパケットにより生成中のクラスタの識別子を認識する。フリーノードがクラスタに参加する場合、参加するクラスタの識別子と自身の識別子を対応付けた情報を含むHelloパケットを生成し、生成したHelloパケットをブロードキャスト送信する。たとえば、ノード装置N1~N50がフリーノードとして存在し、ノード装置N1が起点ノードとなって、クラスタが生成される場合を考える。図1では、ノード装置N1に隣接するノード装置N2、N3、N4、N6、N7は、起点ノードN1から送信されたHelloパケットを受信することにより、クラスタC1が生成中であることを認識する。ノード装置N2、N3、N4、N6、N7はクラスタに属していないフリーノードであるので、生成中のクラスタC1の識別子を認識すると、クラスタC1に参加することを決定する。図1のノード装置N2がクラスタC1に参加する場合、参加するクラスタの識別子C1と自身の識別子N2を対応付けた情報を含むHelloパケットを生成し、生成したHelloパケットをブロードキャスト送信する。
 起点ノードN1は、生成中のクラスタC1の識別子に対応付けてノード装置の識別子が通知されると、クラスタC1への参加の要求を受信したと認識する。そこで、起点ノードN1は、受信したHelloパケットにより、生成中のクラスタC1に参加するノード装置を認識し、認識したノード装置をクラスタに加える。クラスタに加えられたノード装置は、そのノード装置がクラスタに加えられたことを、起点ノードからのHelloパケットによって確認する。クラスタに参加しているノード装置を「参加ノード」と呼ぶことがある。参加ノードは、参加しているクラスタの識別子を含むHelloパケットをブロードキャスト送信する。フリーノードは、参加ノードで生成されたHelloパケットから生成中のクラスタの識別子を認識すると、上述の手順によってクラスタに参加する。これらの処理は、クラスタに含まれるノード装置の数が閾値に達するまでくりかえされる。
 図1のクラスタC1は、N1を起点ノードとし、N2~N50がフリーノードの状態から、クラスタに含まれるノード装置の数の閾値が10のときに生成されたクラスタである。
 クラスタに含まれるノード装置の数が閾値に達すると、起点ノードは、新たなクラスタの生成を要求する情報(生成要求、または生成要求情報)を含むHelloパケットをブロードキャスト送信する。生成要求を受信した参加ノードは、受信した生成要求を含むHelloパケットを生成し、ブロードキャスト送信する。生成要求を含むHelloパケットを受信したフリーノードは、新たな起点ノードとして動作し、クラスタの生成を開始する。図1では、ノード装置N13、N30、N35、N38がそれぞれ、クラスタC2、C4、C5、C6の生成を開始する。クラスタの生成が始まった以後の手順は、クラスタC1の生成の手順と同じである。クラスタが生成されると、各ノード装置は、同一のクラスタ内の他のノード装置に至る経路をルーティングテーブルに格納する。
 図1では、Helloパケットによってクラスタの生成に用いられる情報を送受信し、クラスタに含まれるノード装置の数が閾値すると別のクラスタを生成するという方法によりクラスタが生成される。
 このようにクラスタを形成することにより、各ノード装置は、アドホックネットワークに含まれる全てのノード装置までの経路を格納する必要がない。よって、各ノード装置に格納されるルーティングテーブルの大きさは、アドホックネットワークがクラスタに分割されていない場合に比べて小さくなる。このため、各ノード装置において、経路情報を格納することにより生じる負荷の大きさも軽減される。また、クラスタの形成に用いられる情報は、Helloパケットによって送受信されるので、他のパケット、たとえば制御パケットを用いる場合に比べてクラスタを生成するために行われる情報の送受信による帯域の消費量は少ない。
 しかしながら、図1の例では、クラスタが含むノードの数は、C3の5つから、C1、C2の10個までクラスタ毎にクラスタ数のバラつきが発生している。数千台というオーダーのノード装置を含む大規模なネットワークに適用する場合、クラスタ数が多くなるとルーティング時のクラスタを跨ぐ数が多くなり、スループットが低下するおそれがある。
 そこで、開示される実施形態に関するアドホックネットワークのノード装置は、複数のノード装置が集まったとき、第1段階のクラスタ生成処理と第2段階のクラスタ統合処理の2段階でクラスタを生成する。
<全般的な説明>
 図2は段階的なクラスタ形成処理の概略を説明する図である。図2の(A)は、段階的にクラスタを形成するクラスタ形成処理の第1段階であるクラスタ生成処理の概略を説明する図、図2の(B)は、クラスタ形成処理の第2段階であるクラスタ統合処理の概略を説明する図、そして、図2の(C)は、クラスタ形成処理の第2段階であるクラスタ統合処理の結果の例を説明する図である。
 以下では、第1段階、第2段階を含めて複数のノード装置からクラスタを作る処理を「クラスタ形成」、第1段階で起点ノードが他のノード装置を取り込んで、第1段階が終了するまでクラスタを成長させる処理を「クラスタ生成」と呼ぶことがある。
 以下で開示される実施形態では、クラスタに含まれ得るノード数が第1段階のクラスタ生成処理と第2段階のクラスタ統合処理では異なる。第1段階終了時にクラスタに含まれ得るノード数を暫定的最大クラスタノード数、第2段階終了時にクラスタに含まれ得るノード数を単に「最大クラスタノード数」と呼ぶ。
 最大クラスタノード数は、暫定的最大クラスタノード数より大きい。たとえば、最大クラスタノード数は、暫定的最大クラスタノード数の約2倍の値である。最大クラスタノード数としては、10、20、50などを例示することができる。もちろん、最大クラスタノード数はこれらの数に限定されない。また、最大クラスタノード数に対する暫定的最大クラスタノード数の割合も100%以下の任意の数を取り得る。
 図2の(A)に示されているように、第1段階では、クラスタのノード数が暫定的最大クラスタノード数以下となるようにクラスタを生成、成長させるクラスタ生成処理を行う。つまり、クラスタのノード数が最大クラスタノード数に届かず、クラスタの成長の余地がある場合も、あえてクラスタを成長させない。その後、第1段階で生成されたクラスタを統合するクラスタ統合処理を行う第2段階に移る。第1段階のクラスタ成長処理および第2段階のクラスタ統合処理は共に、後述のように、Helloパケットの交換のみで行なわれる。
 このようにHelloパケットの送受信のみで、クラスタ成長処理およびクラスタ統合処理を行うことによって、小さなサイズのクラスタの数を減らすことができ、ネットワークにかかる負荷を軽減し、且つ、クラスタヘッドの負荷を減らすことができる。
 最大クラスタノード数に対する暫定的最大クラスタノード数の割合は、クラスタの生成の速度を優先する場合は高めに、たとえば75%、80%に設定する。また、クラスタ内のノード数(クラスタ粒度)の均一性を優先する場合は割合を低く、たとえば40%、35%等に設定する。第1段階終了時でのクラスタノード数を暫定的最大クラスタノード数と呼ぶことがある。暫定的最大クラスタノード数の最大クラスタノード数に対する割合は、上記の数値に限定されない。
 ノード装置に対してフリーノードの参加要求がなくなった時点から所定の時間だけ経過した後に、第2段階での統合処理を開始する。各ノード装置は、一定時間のインターバルを取り、そのインターバル内でクラスタに属するノード装置の数に変化が無ければ、クラスタ形成は安定したと判定し、クラスタ統合の処理へ移行する。
 クラスタ統合処理に移行したクラスタは、隣接するクラスタに統合が可能であれば、統合される。所定の時間は、クラスタのノード数に依存し、クラスタのサイズが小さければ小さいほど、すなわちクラスタが含むノード数が少なければ少ないほど、短い。よって、小さいサイズのクラスタからクラスタ統合処理に移行するので、小さいサイズのクラスタであるほど、別のクラスタに取り込まれる可能性が高い。
 図2の(B)では、クラスタ4がクラスタ1に、クラスタ6およびクラスタ7がクラスタ3に、クラスタ8がクラスタ5に、クラスタ10がクラスタ9に統合される。第2段階でのクラスタ統合処理は、サイズが小さいクラスタから開始する。第1段階では、ノード数が暫定的最大クラスタノード数以下のクラスタが生成されるので、サイズが小さいクラスタが自身より大きなサイズのクラスタに統合される。図2の(B)では、クラスタ数は10である。第2段階のクラスタ統合処理も、後述のように、Helloパケットの交換のみで行なわれる。
 各ノードはクラスタ生成段階を省略しクラスタ統合段階から始めることもできる。この場合、クラスタ粒度は最少、つまりでクラスタ内のノード数は1で、各ノード装置がクラスタを構成する。この場合、全ノード装置は起動と同時にクラスタ統合処理を開始する、つまり1ノードから形成されるクラスタの起点ノードとして機能する。
 図2の(C)では、10個のクラスタがクラスタ統合処理の結果、5個になった様子を示している。
<ノード装置の構成>
 以下では、上述のように、複数個が集まったときに2段階でクラスタの形成を行うノード装置10について説明する。
 たとえば、センサネットワークに参加するノード装置は、十分に豊富なリソースを備えない場合がある。ノード装置10は、Helloパケットの送受信のみでクラスタ生成処理およびクラスタ統合処理を含むクラスタ形成処理を行う手段を備えている。このように特別な制御パケットを使用しない事で、ネットワークにかかる負荷を軽減し、且つ、クラスタヘッドの負荷を減らしつつ、クラスタ形成を行うことができる。クラスタ統合処理は、クラスタ内のノード数が少ないクラスタから優先的に開始される。クラスタ統合処理を実行することによって、クラスタ数は減少しルーティング時のクラスタを跨ぐ数を減らすことができる。さらに、処理リソースが減少することでアドホックネットワークのスループット向上が可能となる。
 図3は、ノード装置10の構成の例を示す機能ブロック図である。ノード装置10は、受信部102、ノード種別判定部104、参加処理部106、クラスタ情報更新部108、クラスタ生成部110、フリーノードリスト生成部112、クラスタ統合先候補通知部114、クラスタ統合要求受付部116、クラスタ統合要求更新部118、クラスタ統合リスト生成部120、クラスタ統合処理部122、クラスタ統合リスト通知部124、設定部136、ハローパケット生成部138、送信部140を含む。さらに、ノード装置10は、ノード種別情報126、クラスタ情報128、フリーノードリスト130、マージクラスタリスト132、マージノードリスト134を記憶する。ノード種別情報126、クラスタ情報128、フリーノードリスト130、マージクラスタリスト132、マージノードリスト134のそれぞれと、それらが格納されるノード種別情報格納部126、クラスタ情報格納部128、フリーノードリスト格納部130、マージクラスタリスト格納部132、マージノードリスト格納部134は同じ符号で参照される。
 クラスタ情報格納部128は、ネットワーク中の前記複数のノード装置の中で、前記ノード装置が経路情報を記憶するノード装置のグループであるクラスタに含まれるノード装置の装置識別情報(ノード装置の識別子)を格納する。また、クラスタ情報128には、クラスタ情報(CI)のほか、最大クラスタノード数が格納されている。
 受信部102は、隣接するノード装置10から送信されたパケットを受信し、Helloパケットをノード種別判定部104に出力する。受信部102は、隣接するノード装置である隣接ノード装置から、前記ネットワーク中の情報伝達のための経路に関する経路情報、および前記隣接ノード装置が経路情報を記憶するノード装置のグループであるクラスタに含まれるノード装置の装置識別情報の通知に用いられるハローパケットを受信する。
 送信部140は、パケットを隣接するノード装置10に送信する。たとえば、送信部140は、ハローパケット生成部138で生成されたHelloパケットを隣接するノード装置に送信する。隣接する全てのノード装置にパケットを送信するとき、パケットをブロードキャスト送信するとも言う。
 図4はHelloパケットのフォーマットの例を示す図である。
 図4に示されているように、Helloパケット300は、ヘッダとペイロードを含む。
 ヘッダは、Typeフィールド、グローバル宛先(Global Distination:GD)フィールド、グローバル送信先(Global Source:GS)フィールド、ローカル送信元(Local Source:LS)、ローカル宛先(Local Distination:LD)を含む。
 ペイロードは、クラスタ情報(Cluster Information:CI)フィールド、フリーノードリスト(Free Node List:FNL)フィールド、マージノードリスト(Merge Node List:MNL)フィールド、マージクラスタリスト(Merge Cluster List:MCL)フィールドを含む。ペイロードはさらに、図示されていないが、Helloヘッダの数を表す情報、Helloヘッダを含む。Helloヘッダは経路情報を含む。経路情報は、Helloパケットを生成するノード装置のルーティングテーブルに経路が記憶されているGDの識別子が含まれる。
 以下、「グローバル宛先(GD)」とは、パケットの最終的な宛先のノード装置10を指す。また、「ローカル宛先(LD)」とは、パケットが1ホップ転送される場合の転送先のノード装置10を指す。「ローカル送信元(LS)」は、パケットが1ホップ転送される場合の転送元のノード装置10を指す。「グローバル送信元(GS)とは最初にパケットを作成した発信元のノード装置10を指す。Helloパケットは、送信元のノード装置10に隣接するノード装置にブロードキャスト送信される。
 Typeフィールドには、ペイロードに含まれるデータの種類を示す情報が格納される。Helloパケットの場合、TypeフィールドはHelloパケットを特定する値が格納される。受信部102は、受信したパケットのTypeフィールドに格納されている値を用いてHelloパケットを識別し、ノード種別判定部104に出力する。
 クラスタ情報(CI)フィールドには、ノード装置10自身が所属しているクラスタの識別子(Cluster Identifier:CID)と、クラスタ識別子(CID)で識別されるクラスタに含まれているノード装置の識別子(Node Identifier:NID、ノードID)のリストと、endフラグが格納される。
 クラスタに含まれているノード装置の識別子(NID)の数は任意である。以下では、複数のノード装置の識別子(NID)の集合を「{NID}」と示すことがある。
 クラスタ情報(CI)フィールドに含まれるendフラグは、クラスタ識別子(CID)で識別されるクラスタに新たなノード装置が参加できるかを示す情報である。つまり、クラスタ識別子(CID)で識別されるクラスタが最大クラスタノード数のノード装置を含んでいるかを示す情報である。
 この最大クラスタノード数は、ノード装置10が現在クラスタ形成の第1段階にあれば、暫定的最大クラスタノード数、第2段階にあれば、最大クラスタノード数のことを指す。以下では、単に「最大クラスタノード数」と言えば、そのノード装置がクラスタ形成の第1段階にあるか第2段階にあるかに依存して、暫定的最大クラスタノード数または最大クラスタノード数を指すものとする。
 endフラグは、たとえば、「true」と「false」の2つを取る。「true」および「false」は、「true」および「false」を示す数字、文字を含む記号であってもよい。endフラグが「true」の場合、クラスタが最大クラスタノード数のノード装置を含んでいるため、ノード装置10は新たにそのクラスタに参加することができない。endフラグが「ture」であるクラスタ情報を有するHelloパケットは、新たなクラスタの生成を要求するための情報である生成要求として用いられる。endフラグが「false」の場合、クラスタに含まれるノードの数は最大クラスタノード数には達していないため、そのノード装置10が含まれるクラスタには、新たなノード装置が参加することができる。
 フリーノードリスト(FNL)フィールドには、ノードを参加させたいクラスタを識別するクラスタ識別子(CID)と、クラスタ識別子(CID)で識別されるクラスタに参加させたいノード装置の識別子(Node Identifier:NID、ノードID)のリストが含まれる。フリーノードリスト(FNL)フィールドに格納される情報を「フリーノード情報」と呼ぶことがある。クラスタに参加させたいノード装置の識別子(NID)の数は任意である。以下では、複数のノード装置の識別子(NID)の集合を「{NID}」と示すことがある。
 マージノードリスト(Merge Node List:MNL)フィールドとマージクラスタリスト(Merge Cluster List:MCL)フィールドは、クラスタ形成の第2段階のクラスタ統合処理で用いられる。
 クラスタ統合処理で2つのクラスタが統合する際には、異なる2つのクラスタに属し、隣接する2つのノード装置Aとノード装置Bの間でHelloパケットを送受信する。本実施形態では、クラスタ識別子(CID)を数値で表現した場合、クラスタ識別子(CID)の数値が小さい方のクラスタがマスタ、もう一方がスレーブとなる。仮に、ノード装置Aをマスタ側のクラスタに属するノード装置、ノード装置Bをスレーブ側のクラスタに属するノード装置とする。
 マージクラスタリスト(Merge Cluster List:MCL)フィールドは、自ノード装置がスレーブ側のクラスタに属しているとき、隣接し、マスタ側のクラスタに属するノード装置の識別子(S-Identifier:SID)と、自ノード装置が属するスレーブ側のクラスタに属するノード装置の識別子(NID)を含む。以下では、ノード装置の識別子(NID)の集合を「{NID}」と示すことがある。
 ノード装置Bが、マスタ側クラスタに属するノード装置Aからクラスタ統合先候補通知としてのHelloパケットを受信すると、ノード装置Bはマスタ側のクラスタに属するノード装置の識別子(SID)に、ノード装置Aを識別する識別子を格納し、スレーブ側のクラスタに属するノード装置を識別する識別子(NID)の集合を空集合{}として、Helloパケットをブロードキャスト送信する。
 マージクラスタリスト(Merge Cluster List:MCL)フィールドは、ノード装置Bが属するスレーブ側のクラスタ内でHelloパケットがクラスタ統合要求通知として送受信されている場合には、ノード装置Bが含まれるスレーブ側のクラスタに属するノード装置を識別する識別子(NID)の集合である。
 マージノードリスト(Merge Node List:MNL)フィールドには、マージクラスタリスト(MCL)フィールドにリストアップされたノード装置を識別する識別子(NID)の集合の要素数がスレーブ側のクラスタに属するノード装置に一致したとき、マージクラスタリスト(MCL)フィールドのノード装置を識別する識別子(NID)の集合が移動され格納される。すなわち、マージノードリスト(MNL)フィールドには、マスタ側のクラスタと統合し得るスレーブ側のクラスタに属する全ノード装置のリストが格納される。ノード装置Bがクラスタ統合要求通知としてHelloパケットをブロードキャスト送信する際には、マージノードリスト(MNL)は、ノード装置Bが含まれるスレーブ側のクラスタに属するード装置を識別する識別子(NID)の集合である。
 設定部136は、ノード装置10をフリーノード、起点ノード、参加ノードのいずれかに設定し、ノード装置10の種別を特定する情報を、ノード種別情報126に格納する。
 ノード種別情報126は、ノード装置10の種別を特定する任意の形式の情報である。もし、自身が起点ノードに設定されたときには、クラスタ情報128を更新する。
 ノード種別判定部104は、受信部102からHelloパケットが転送されると、ノード種別情報126からノード装置10の種別、つまりフリーノード、起点ノード、参加ノードのいずれであるか、を取得する。ノード種別判定部104では、ノードの種別と、Helloパケット中のクラスタ情報(CI)、フリーノード情報(FNL等)、マージクラスタリスト(MCL)、およびマージノードリスト(MNL)の出力先が関連付けられている。図3に示されているように、ノード種別判定部104はノード種別情報126を参照して、クラスタ情報(CI)を、ノード装置10がフリーノードである場合には、参加処理部106に送る。また、ノード種別判定部104はノード種別情報126を参照して、クラスタ情報(CI)を、ノード装置10が起点ノードまたは参加ノードである場合にはクラスタ情報更新部108に送る。ノード種別判定部104はノード種別情報126を参照して、フリーノード情報(FNL等)を、ノード装置10が起点ノードである場合にはクラスタ生成部110に、参加ノードである場合にはフリーノードリスト生成部112に送る。同様に、マージクラスタリスト(MCL)は、ノード装置10が起点ノードである場合にはクラスタ統合要求受付部116に、参加ノードである場合にはクラスタ統合要求更新部118に送られる。マージノードリスト(MNL)は、ノード装置10が起点ノードである場合にはクラスタ統合処理部122に、参加ノードである場合にはクラスタ統合リスト通知部124に送られる。
 参加処理部106は、クラスタへの参加の要求と参加の確認を行う。参加処理部106は、ノード装置10がフリーノードである場合にHelloパケットを受信したときに、Helloパケットに含まれるクラスタ情報(CI)を受け取る。参加処理部106はクラスタ情報(CI)を受け取ると、クラスタ情報(CI)に含まれるクラスタ識別子({NID})とendフラグの内容を確認する。さらに、参加処理部106は、ノード装置10自身の装置識別子を含むエントリがフリーノードリスト130に格納されているかを確認する。ノード装置10自身が既にクラスタへの参加を要求している場合、フリーノードリスト130にノード装置10自身の識別子を含むエントリが含まれている。
 フリーノードリスト130にノード装置10自身の識別子を含むエントリが含まれていない場合、ノード装置10自身はクラスタへの参加を要求していない。そこで、参加処理部106は、参加が可能なクラスタ、つまりendフラグが「true」ではないクラスタに参加を要求するために、クラスタ情報(CI)に含まれるクラスタ識別子(CID)とノード装置10自身の識別子(ノードID)の組み合わせをフリーノードリスト130に格納する。フリーノードリスト130にノード装置10自身の識別子を含むエントリが含まれている場合、ノード装置10自身は既にクラスタへの参加を要求している。そこで、参加処理部106は、クラスタに参加できたかどうかを確認するために、クラスタ情報(CI)にノード装置10自身の識別子が含まれているかどうかを確認する。クラスタ情報(CI)にノード装置10自身の識別子が含まれている場合、参加処理部106は、ノード装置10自身はクラスタに参加できていると判定して、クラスタ情報(CI)に含まれるノード装置の識別子の組({NID})を更新する。同時に、フリーノードリスト130からノード装置10自身の識別子を削除し、そのクラスタの参加ノードになる。クラスタ情報(CI)にノード装置10自身の識別子が含まれていない場合、クラスタ情報(CI)に含まれるクラスタ識別子(CID)クラスタに参加可能かを確認するため、endフラグを確認する。
 クラスタ情報(CI)に含まれるendフラグが「true」である場合、参加処理部106は、ノード装置10自身が属するクラスタは既に最大クラスタノード数個のノード装置を含んでいるため、フリーノードリスト130のエントリを削除する。フリーノードリスト130にノード装置10自身の識別子を含むエントリが含まれていない場合にendフラグが「true」であるクラスタ情報(CI)を含むHelloパケットを受信すると、ノード装置10自身を起点ノードに指定し、ノード種別情報126を変更し、さらにクラスタ情報128を更新する。
 クラスタ情報更新部108は、Helloパケットで通知されたクラスタ情報(CI)が、ノード装置10自身が属しているクラスタに関する情報であるかを確認するために、クラスタ情報(CI)に含まれているクラスタ識別子(CID)とノード装置10自身が属しているクラスタの識別子が一致するかを確認する。両者が一致する場合には、ノード装置10自身が属しているクラスタの情報が通知されているので、クラスタ情報更新部108は、クラスタ情報128をHelloパケットで通知されたクラスタ情報(CI)に基づいて更新する。さらにクラスタ情報更新部108は、フリーノードリスト130からクラスタ情報(CI)に含まれているノード装置に関するエントリを削除する。
 また、クラスタ情報更新部108は、ノード装置10自身がクラスタ情報(CI)に設定されている場合は、マージノードリスト(MNL)またはマージクラスタリスト(MCL)を比較し、必要に応じてマージクラスタリスト132、マージノードリスト134を更新する。
 さらに、クラスタ情報更新部108は、ノード種別判定部104から受け取ったクラスタ情報(CI)をクラスタ統合先候補通知部114に送る。
 また、クラスタ情報更新部108は、クラスタに含まれるノード装置の数が、所定の整数値で定義される最大クラスタノード数に対する所定の割合以下であり、且つ所定の時間にわたり変化がないことを確認するクラスタノード変化確認部としても機能する。
 クラスタ生成部110は、ノード種別判断部より受け取ったノードフリーリスト(FNL)等のノードフリー情報を処理し、必要に応じて自ノードで管理するクラスタ情報(CI)を参照、更新する。
 フリーノードリスト生成部112は、ノード種別判定部104から受け取ったフリーノードリスト(FNL)を処理し、必要に応じてノード装置10自身が管理するフリーノードリスト130を更新する。
 クラスタ統合先候補通知部114は、クラスタ情報更新部108より受け取ったクラスタ情報(CI)と自ノードで管理するクラスタ情報128を参照し、クラスタ統合の条件を満たしていれば自ノードで管理するマージクラスタリスト132を更新する。また、マージクラスタリスト132を更新する場合、自ノードが起点ノードの場合はクラスタ統合要求受付部116にマージクラスタリスト(MCL)を渡す。
 クラスタ統合要求受付部116は、ノード種別判定部104またはクラスタ統合先候補通知部114より受け取ったマージクラスタリスト(MCL)を処理し、クラスタ統合の条件を満たしていれば自ノードで管理するマージクラスタリスト132を更新する。
 クラスタ統合要求更新部118は、ノード種別判定部104より受け取ったマージクラスタリスト(MCL)を処理し、クラスタ統合の条件を満たしていれば自ノードで管理するマージクラスタリスト132を更新(スレーブ側参加ノード登録)する。また、自ノードがマスタ側対向ノードの場合は、クラスタ統合リスト生成部120へマージクラスタリスト(MCL)およびクラスタ情報(CI)を渡す。
 クラスタ統合リスト生成部120は、クラスタ統合要求更新部118より受け取ったマージクラスタリスト(MCL)およびクラスタ情報(CI)を処理し、クラスタ統合の条件を満たしていれば自ノードで管理するマージノードリスト134を更新する。
 クラスタ統合処理部122は、ノード種別判定部104より受け取ったマージノードリスト(MNL)を処理し、クラスタ統合の条件を満たしていれば自ノードで管理するクラスタ情報128を更新する。
 クラスタ統合処理部122は、第1のクラスタとは異なる第2のクラスタに含まれるノード装置の一つからハローパケットを受けたとき、自身のクラスタ情報格納部に格納されている装置識別情報から第1のクラスタに含まれるノード装置の数を取得し、ハローパケットに含まれる情報に基づいて第2のクラスタに含まれるノード装置の数を取得し、第1のクラスタに含まれるノード装置の数と第2のクラスタに含まれるノード装置の数の和が前記最大クラスタノード数以下であることを判定する統合クラスタノード数判定部を含んでいる。そしてクラスタ統合処理部122は、統合クラスタノード数判定部の判定の結果に基づいて、第2のクラスタに含まれるノード装置の装置識別情報を、第1のクラスタに含まれるノード装置の装置識別情報に追加して、クラスタ情報格納部に格納される装置識別情報を更新し、第2のクラスタを前記第1のクラスタに統合させる。
 クラスタ統合リスト通知部124は、ノード種別判定部より受け取ったマージノードリスト(MNL)を処理し、必要に応じて自ノードで管理するマージノードリスト134を参照、更新する。
 ハローパケット生成部138は、Helloパケットを生成し、送信部140に送る。Helloパケットのフォーマットの例は、図4に示されている。Helloパケットは、クラスタ情報(CI)フィールド、フリーノードリスト(FNL)フィールド、マージノードリスト(Merge Node List:MNL)フィールド、マージクラスタリスト(Merge Cluster List:MCL)フィールドを含んでいる。これらのフィールドに格納される情報はそれぞれ、クラスタ情報128、フリーノードリスト130、マージノードリスト134、マージクラスタリスト132から取得される。
<動作例>
 図5~13を参照しながら、ノード装置10の動作の例を説明する。
 以下では、クラスタ形成処理の第2段階であるクラスタ統合処理について説明する。
 クラスタ形成処理の第1段階であるクラスタ生成処理から第2段階のクラスタ統合処理への移行は、各ノード装置単位で行われる。各ノード装置10は所属するクラスタ内のノード装置の数の変化を監視し、所定の時間にわたりクラスタ内のノード装置の数の変化がない場合にクラスタ統合処理を開始する。例えばクラスタ生成処理でクラスタへの参加した後、属するクラスタのノード数の数が変化しなくなってから一定時間待機する。一定時間待機した時点で、クラスタ内のノード数が少ないクラスタは、ノード数が多いクラスタより先にタイムアウトになり、クラスタ統合段階へ移行しクラスタ統合要求が先に届く。すなわち、隣接するクラスタにおいてクラスタ内のノード数が少ないクラスタから優先的にクラスタ統合処理が開始される。
 図5は、複数のクラスタがある場合、どのクラスタからクラスタ統合処理が開始されるのかを決定するクラスタ統合優先順位決定処理の概略を説明する図である。
 図5に示されているように、クラスタ1はノード装置の識別子(NID)がNID=1から5の5つのノード装置を、クラスタ6はノード装置の識別子(NID)がNID=6から8の3つのノード装置を、クラスタ9はノード装置の識別子(NID)がNID=9から12の4つのノード装置を含んでいる。クラスタ1の起点ノードはNID=1のノード装置、クラスタ6の起点ノードはNID=6のノード装置、クラスタ9の起点ノードはNID=9のノード装置である。
 この場合、クラスタ6は、3つのクラスタの中で最も小さい、すなわちクラスタが含むノード装置の数が最小である。よって、クラスタ6が、クラスタ1および9より先にクラスタ統合段階に移行する。クラスタ形成処理の第1段階であるクラスタ生成処理から第2段階のクラスタ統合処理への移行は、第1段階で設定される最大クラスタノード数の値を変更し、さらにノード装置10のクラスタ情報128に格納されているendフラグを「true」から「false」に変更することによって行われる。
 図6は、クラスタ統合先候補通知処理の概略を説明する図である。
 クラスタ統合処理は、隣接するクラスタ同士で実施される。隣接クラスタとのHelloパケットの送受信は、隣接するクラスタに属するノード装置であって、ノード装置同士も互いに隣接する2つのノード装置である対向ノード装置の間で行われる。たとえば、図6に示されているノードであれば、クラスタ1に属するNID=3のノード装置と、クラスタ6に属するNID=7、8のノード装置の組がそのような対向ノード装置である。
 クラスタ統合先候補通知処理では、隣接するクラスタに属する対向ノード装置からのHelloパケットを受け取ると、受信したノード装置は自ノードで管理するクラスタ情報(CI)とHelloパケットに含まれるクラスタ情報(CI)から両方のクラスタのノード装置の数を足し合わせ、最大クラスタノード数に達しているかどうかを判定する。もし、足し合わせたノード数が最大クラスタノード数以下であれば、2つのクラスタは統合可能であると判定される。
 この時、ノード装置10自身のクラスタ統合先候補通知部114は、自身が属するクラスタと隣接するクラスタのどちらがマスタでどちらがスレーブであるかを決定する。本例では、自身が属するクラスタと隣接するクラスタの識別子(CID)の値を比較し、クラスタの識別子(CID)の値が小さい方のクラスタをマスタ、大きいクラスタをスレーブとする。図6の例では、クラスタ1がマスタ、クラスタ6がスレーブとなる。
 クラスタ6(スレーブ側クラスタ)のNID=7のノード装置がクラスタ1(マスタ側クラスタ)のNID=3のノード装置からHelloパケットを受けて、クラスタ6とクラスタ1が統合可能であると判定されると、スレーブ側クラスタの対向ノード、すなわちNID=7のノード装置のクラスタ統合要求更新部118は、自身のマージクラスタリスト132を、
<SID、{NID}>=<3、{}>
のように変更する。
 図6に示されているように、たとえば、クラスタ6のノード装置N7には、クラスタ1に属する隣接ノード、すなわち対向ノード装置としてノード装置N3、N4、N5の3つのノード装置がある。この例のように対向ノード装置が複数ある場合には、クラスタ統合先候補通知が冗長してクラスタ6の起点ノードN6に到達する可能性がある。そのため、任意にクラスタ内でクラスタ統合先候補通知の伝送を制限してもよい。たとえば、ノードIDが数字で表される場合、対向ノード装置の組のうち、スレーブ側クラスタのノード装置のIDとマスタ側クラスタのノード装置のIDの和が最小のものを対向ノード装置の組として選択してもよい。
 図7は、クラスタ6のNID=7のノード装置が送信するHelloパケットのマージクラスタリスト(MCL)フィールドに格納される情報である。この情報はHelloパケット生成部138がマージクラスタリスト132から取得する。マージクラスタリスト132からの情報に基づいて、クラスタ6のNID=7のノード装置が送信するHelloパケットのマージクラスタリスト(MCL)フィールドには、「<3、{}>」と格納され、クラスタ統合先候補通知としてのHelloパケットは、送信部140からブロードキャスト送信される。
 クラスタ6のNID=7のノード装置からクラスタ6内にブロードキャスト送信されたHelloパケットは、NID=7のノード装置に隣接するNID=8のノード装置を経て、クラスタ6の起点ノードであるNID=6のノード装置によって受信される。
 図8は、スレーブ側の起点ノードがクラスタ統合先候補通知を受けた後の動作を示す図である。今の場合、スレーブ側の起点ノードは、NID=6のノード装置である。
 NID=6のノード装置のクラスタ要求受付部116では、他クラスタからのクラスタ統合先候補通知を受信していないかを判定する。この判定は、NID=6のノード装置10のマージクラスタリスト132のSIDに既に値が格納されているかどうかで判定することができる。もし、NID=6のノード装置10のマージクラスタリスト132のSIDに既に値が設定されていなければ、クラスタ統合先候補通知を受け付け、マージクラスタリスト132のSIDに、クラスタ6に隣接するクラスタ1のノード装置の識別子を設定する。つまり、NID=6のノード装置10のマージクラスタリスト132では、SID=3と設定される。
 次に、NID=6のノード装置10のクラスタ統合要求更新部118は、自身が属するクラスタ6内の全ノードに対し、クラスタ統合要求中である事を通知するようなHelloパケットをハローパケット生成部138に生成させる。具体的には、マージクラスタリスト132のノード装置の識別子にスレーブのクラスタの起点ノード、すなわちNID=6のノード装置の識別子を設定し、それを用いたHelloパケットを生成する。このHelloパケットのクラスタ情報(CI)フィールドは、
<CID、{NID}、end>=<6、{6、7、8}、false>
が格納される。また、マージクラスタリスト(MCL)フィールドには、
<SID、{NID}>=<3、{6}>
が格納される。
 その後、NID=6のノード装置10のハローパケット生成部138で生成されたHelloパケットは、送信部140から送信される、
 NID=6のノード装置からHelloパケットを受けたスレーブのクラスタ6内の各ノード装置は、Helloパケットのマージクラスタリスト(MCL)フィールドに、自身が属するクラスタの起点ノードを示す値、すなわちNID=6のノード装置の識別子が設定されていることで、クラスタ統合要求を受付けたこと認識する。そして、マージクラスタリスト132のノード装置の識別子の組{NID}に自身のノード装置の識別子を追加し、自身のノード装置の識別子が追加されたマージクラスタリスト(MCL)フィールドを含むHelloパケットを送信する。このHelloパケットのクラスタ情報(CI)フィールドとマージクラスタリスト(MCL)フィールドの例は図9Aに示されている。
 最終的にスレーブ側クラスタの全ノードがHelloパケットのマージクラスタリスト(MCL)フィールドのノード装置の識別子の集合({NID})にリストアップされる。
 図9Bは、NID=7のノード装置によりNID=3のノード装置に向けて送信される
Helloパケットの例である。このHelloパケットのクラスタ情報(CI)フィールドとマージクラスタリスト(MCL)フィールドにはそれぞれ、
CI:<CID、{NID}、end>=<6、{6、7、8}、false>
MCL:<SID、{NID}>=<3、{6、7、8}>
が格納される。
 図9Cは、図9Bに示されているようなクラスタ情報(CI)フィールドとマージクラスタリスト(MCL)フィールドを含むHelloパケットを受信したマスタ側クラスタに属するNID=3のノード装置から送信されるHelloパケットの例である。
 NID=3のノード装置は、クラスタ統合要求通知(図9Bに示されているHelloパケット)に含まれるマージクラスタリスト(MCL)フィールドのノード装置の識別子の集合({NID})の要素数と、クラスタ情報(CI)フィールドに含まれるノード装置の数が一致するかを判定する。もし、両者が一致すれば、クラスタ統合リスト生成部120はマージクラスタリスト(MCL)に基づいて、NID=3のノード装置のマージノードリスト134を変更する。そして、NID=3のノード装置のハローパケット生成部138は、クラスタ情報(CI)フィールド、マージノードリスト(MNL)フィールド、マージクラスタリスト(MCL)フィールドがそれぞれ、
CI:<CID、{NID}、end>=<1、{1、2、3、4、5}、false>MNL:<{NID}>=<{6、7、8}>
MCL:<SID、{NID}>=<、{}>
であるようなHelloパケットを生成し、NID=3のノード装置の送信部140からブロードキャスト送信する。このとき、クラスタ1内で送受信されるHelloパケットはクラスタ統合要求通知としてとしての意味を持つ。
 図10は、マスタ側クラスタであるクラスタ1のNID=3のノード装置が図9CのようなHelloパケットをブロードキャスト送信した後の、クラスタ1内の各ノード装置の動作の例を示す図である。
 マスタ側クラスタであるクラスタ1の起点ノード(NID=1のノード装置)は、他クラスタからのクラスタ統合先候補通知を受信していないか、及び、マージノードリスト(MNL)フィールドに含まれるノード装置の識別子の組({NID})の要素数と自身が属するクラスタ内のノード装置の数の合計が最大クラスタノード数以下であるかを確認する。もし、これらの条件を満たす場合は、クラスタ情報(CI)にマージノードリスト(MNL)フィールドに含まれるノード装置を追加することでクラスタ統合を実施する。そして、NID=1のノード装置のハローパケット生成部138は、クラスタ情報(CI)フィールド、マージノードリスト(MNL)フィールド、マージクラスタリスト(MCL)フィールドがそれぞれ、
CI:<CID、{NID}、end>=<1、{1、2、3、4、5、6、7、8}、false>
MNL:<{NID}>=<{}>
MCL:<SID、{NID}>=<、{}>
であるようなHelloパケットを生成する。
 図11はそのようなHelloパケットの例である。クラスタ1の起点ノード(NID=1のノード装置)の送信部140は、図11に示されているようなHelloパケットをブロードキャスト送信する。
 マスタ側クラスタであるクラスタ1の起点ノード(NID=1のノード装置)は、他クラスタからのクラスタ統合先候補通知を受信していないか、及び、マージノードリスト(MNL)フィールドに含まれるノード装置の識別子の組({NID})の要素数と自身が属するクラスタ内のノード装置の数の合計が最大クラスタノード数以下であるかを確認する。もし、これらの条件を満たす場合は、クラスタ情報(CI)にマージノードリスト(MNL)フィールドに含まれるノード装置を追加することでクラスタ統合を実施し、新しいクラスタ1が形成される。そして、NID=1のノード装置のハローパケット生成部138は、クラスタ情報(CI)フィールド、マージノードリスト(MNL)フィールド、マージクラスタリスト(MCL)フィールドがそれぞれ、
CI:<CID、{NID}、end>=<1、{1、2、3、4、5、6、7、8}、false>
MNL:<{NID}>=<{}>
MCL:<SID、{NID}>=<、{}>
であるようなHelloパケットを生成する。この新しいクラスタ1の起点ノードはNID=1のノード装置であり、クラスタに含まれるノード装置は、NID=1~8で識別される。また、マージノードリスト(MNL)フィールドに含まれるノード装置の識別子の組({NID})の要素数と自身が属するクラスタ内のノード装置の数の合計が最大クラスタノード数を超える場合には、endフラグは、「true」となり、クラスタ統合は実施されない。
 図12は、マスタ側クラスタであるクラスタ1の起点ノード(NID=1のノード装置)が、上記のようなクラスタ情報(CI)フィールドを含むHelloパケットを送信した後の、ノード装置の動作を説明する図である。
 マスタ側クラスタの起点ノード(NID=1のノード装置)からHelloパケットが送信されると、マスタ側クラスタに属していた各ノード装置(NID=1、2、3、4、5のノード装置)は、クラスタ情報(CI)フィールドに自身が管理するマージノードリスト134に格納されているノード装置の識別子(NID)が含まれていればクラスタ統合されたと認識しマージノードリスト134に格納されているノード装置の識別子(NID)から一致したノード装置の識別子(NID)を削除する。そして、自身のクラスタ情報128を書き換える。すなわち、クラスタ情報128には、
CI:<CID、{<NID、SN>}、end>=<1、{1、2、3、4、5、6、7、8}、false>
なる情報が格納される。
 すべてのノード装置(NID=1、2、3、4、5、6、7、8のノード装置)のクラスタ情報128が書き換えられると、クラスタ統合処理は終了する。
 図13はノード装置10のハードウェア構成の例を示す図である。
 ノード装置10、MPU(Micro Processing Unit)200、PHY(Physical Layer)チップ202、タイマIC204、DRAM(Dynamic Random Access Memory)206、フラッシュメモリ208、無線モジュール210を含む。MPU200、PHYチップ202、タイマIC204、DRAM206、フラッシュメモリ208、無線モジュール210は互いにバス201(201a~201c)によって接続され、MPU202の管理の下で各種のデータを相互に授受することができる。
 MPU202は、このコンピュータ200全体の動作を制御する演算処理装置であり、コンピュータ200の制御処理部として機能する。MPU202は、ノード種別判定部104、参加処理部106、クラスタ情報更新部108、クラスタ生成部110、フリーノードリスト生成部112、クラスタ統合先候補通知部114、クラスタ統合要求受付部116、クラスタ統合要求更新部118、クラスタ統合リスト生成部120、クラスタ統合処理部122、クラスタ統合リスト通知部124、設定部136、ハローパケット生成部138として動作する。
 フラッシュメモリ208は、ファームウェアなどの所定の基本制御プログラムが予め記録されている不揮発性メモリである。MPU202は、この基本制御プログラムをコンピュータ200の起動時に読み出して実行することにより、このコンピュータ200の各構成要素の動作制御が可能になる。
 DRAM206は、MPU202が各種の制御プログラムを実行する際に、必要に応じて作業用記憶領域として使用する、随時書き込み読み出し可能な半導体メモリである。DRAM206は、ノード種別情報126、クラスタ情報128、フリーノードリスト130、マージクラスタリスト132、マージノードリスト134、ルーティングテーブルを記憶できる。ただし、ノード種別情報126はフラッシュメモリ208に格納されても良い。この場合、起動後に、フラッシュメモリ208に格納されているノード種別情報126がDRAM206に読み込まれる。
 PHYチップ202や無線モジュール210は、受信部102や送信部140として動作する。PHYチップ202はオプションであり、PHYチップ202を備えることによって、回線を用いた通信を行うことができる。
 タイマIC204は、Helloパケットを送信する時刻や、装置10が属しているクラスタが含むノード装置の数が変化しない時間などを計測する。
 尚、ファームウェア等のプログラムは、コンピュータ読み取り可能な記録媒体に記録されてノード装置10に提供されても良い。MPU202は、コンピュータ読み取り可能な記録媒体に記録されている所定の制御プログラムを読み出して実行することもできる。なお、コンピュータ読み取り可能な記録媒体としては、例えばUSB(Universal Serial Bus)規格のコネクタが備えられているフラッシュメモリ、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)などがある。またプログラムはネットワークからPHYチップ202や無線モジュール210を介してダウンロードされることによりノード装置10にインストールされても良い。ノード装置10はコンピュータにより実現されても良い。
<ノード装置における処理>
 図14は、ノード種別判定部104の動作を説明するフローチャートである。
 ステップS102で、ノード種別判定部104は、Helloパケットが受信部102から入力されると、ノード種別情報126を参照して、ノード装置10自身がフリーノードであるかどうかの判定をする。もしこの判定の結果がYes、すなわちノード装置10自身がフリーノードであればステップS104に進む。もしこの判定の結果がNo、すなわちノード装置10自身がフリーノードでなければステップS106に進む。
 ステップS104では、ノード装置10自身がフリーノードであるという情報を含むクラスタ情報(CI)を参加処理部106に通知する。ステップS104の処理が終わると、ノード種別判定部104の処理を終了する。
 ステップS106では、ノード装置10自身がフリーノードでないという情報を含むクラスタ情報(CI)をクラスタ情報更新部108に通知する。
 ステップS106の次のステップS108では、ノード種別情報126を参照して、ノード装置10自身が起点ノードであるかどうかを判定する。もしこの判定の結果がYes、すなわちノード装置10自身が起点ノードであればステップS110に進む。もしこの判定の結果がNo、すなわちノード装置10自身が起点ノードでなければステップS116に進む。
 ステップS110では、フリーノードリスト(FNL)をクラスタ生成部110に通知する。そして、ステップS112に進む。
 ステップS112では、マージクラスタリスト(MCL)をクラスタ統合要求受付部116に通知する。
 ステップS112の次のステップS114では、マージノードリスト(NML)をクラスタ統合処理部122に通知する。ステップS110とステップS112とステップS114の処理の順序は、任意である。ステップS114の処理が終わると、ノード種別判定部104の処理を終了する。
 ステップS116では、フリーノードリスト(FNL)をフリーノードリスト生成部112に通知する。そして、ステップS118に進む。
 ステップS118では、マージクラスタリスト(MCL)をクラスタ統合要求更新部118に通知する。
 ステップS118の次のステップS120では、マージノードリスト(NML)をクラスタ統合リスト通知部124に通知する。ステップS116とステップS118とステップS120の処理の順序は、任意である。ステップS114の処理が終わると、ノード種別判定部104の処理を終了する。
 図15は、参加処理部106の動作の例を示すフローチャートである。
 S130では、参加処理部106は、フリーノードリスト130に自身のエントリがあるかどうかを判定する。フリーノードリスト130に自身のエントリがある場合はステップS140に進む。フリーノードリスト130に自身のエントリがない場合はステップS132に進む。
 ステップS132では、Helloパケットのクラスタ情報(CI)フィールドに含まれているendフラグが「true」であるかどうかを判定する。endフラグが「true」である場合はS136に進む。endフラグが「true」でない場合はステップS134に進む。
 ステップS134では、クラスタ内のノード数が最大クラスタノード数に達していないので、参加処理部106は、自身のノード装置の識別子(NID)を、クラスタ情報(CI)に含まれているクラスタ識別子(CID)に対応つけてフリーノードリスト130に格納する。ステップS134の処理が終わると、参加処理部の処理が終了する。
 ステップS136で参加処理部106は、自身のノード装置が起点ノードとして動作できるようにクラスタ情報128を生成する。このとき、クラスタ情報128には、自身のノード装置の識別子がクラスタ識別子(CID)として記憶され、新たに生成されたクラスタには自身のノードが含まれる。そして、ステップS138に進む。
 ステップS138で参加処理部106は、自身のノード装置の設定を起点ノードに変更して、ステップS138の処理が終わると、参加処理部106の処理が終了する。
 一方、ステップS130の判定の結果がYes(Y)の場合、すなわちフリーノードリスト130に自身のエントリがある場合、参加処理部106は、ステップS140で、クラスタ情報128に自身のノード装置の識別子が含まれているかを確認する。ステップS140の判定の結果がYes(Y)の場合、すなわちクラスタ情報128に自身のノード装置の識別子が含まれている場合、ステップS142に進む。
 ステップS142で参加処理部106は、フリーノードリスト130から自身のノード装置のエントリを削除し、クラスタ情報(CI)フィールドに含まれているノードの情報をクラスタ情報128に格納する。そして、ステップS144に進む。
 ステップS144で参加処理部106は、自身のノード装置の設定を参加ノードに変更して、ステップS138の処理が終わると、参加処理部106の処理が終了する。
 ステップS140の判定の結果がNo(N)の場合、すなわちクラスタ情報128に自身のノード装置の識別子が含まれていない場合は、ステップS146に進む。
 ステップS146では、endフラグが「true」であるかを判定する。この判定の結果がYes(Y)であれば、ステップS148に進む。この判定がNo(N)であれば、参加処理部106の処理が終了する。
 ステップS148では、ノード装置10が属するクラスタのノード装置の数が上限に達しているので、フリーノードリスト130のエントリを削除し、参加処理部の処理が終了する。
 図16は、クラスタ情報更新部108の動作の例を示すフローチャートである。
 各ノードは受信したHelloパケットのクラスタ情報(CI)のクラスタ識別子(CID)が、自身のノード装置のクラスタ情報128に格納されているクラスタ識別子(CID)と同じ場合には次のような処理を行う。すなわち、クラスタ内のノード装置の数に変化があった時点から一定時間のタイミングを取るためのタイマを設定する。一定時間内にクラスタ内のノード装置の数に変化がなければ、受信したHelloパケットのクラスタ情報(CI)を自身のノード装置のクラスタ情報128にマージすることで、自身のノード装置が属するクラスタの全ノードを認識する。また、自身のノード装置のフリーノードリスト130について、クラスタ情報128に追加されたノード装置に対応するエントリは削除する。自身のノード装置のマージノードリスト134に格納されているノード装置の識別子(NID)が、受信したHelloパケットのクラスタ情報(CI)に含まれていれば、クラスタ統合(マスタ側)が完了したと認識し、自身のノード装置のマージノードリスト134に格納されているエントリを削除する。
 各ノードは受信したHelloパケットのクラスタ情報(CI)のクラスタ識別子(CID)が自身のノード装置のクラスタ情報128に格納されているクラスタ識別子(CID)と異なる場合には以下の処理を行う。すなわち、自身のノード装置のマージクラスタリスト132と、受信したHelloパケットのクラスタ情報(CI)に含まれているノード装置の識別子(NID)を確認し、自身のノード装置の識別子が含まれていればクラスタ統合(スレーブ側)が完了したと認識し、受信したHelloパケットのクラスタ情報(CI)を自身のノード装置のクラスタ情報128に置き換え、自身のノード装置のマージノードリスト134に格納されているエントリを削除する。クラスタ統合中でなければクラスタ統合先候補通知部114へノード種別判定部104より受け取った受信したHelloパケットに含まれているクラスタ情報(CI)を渡す。
 ステップS150でクラスタ情報更新部108は、受信したHelloパケットのクラスタ情報(CI)フィールドのクラスタ識別子(CID)が、自身のクラスタ情報128に格納されているクラスタ識別子(CID)が一致するかどうかを判定する。もし、この判定の結果がYesの場合、すなわち両者が一致する場合は、ステップS152に進む。また、この判定の結果がNoの場合、すなわちもし両者が一致しなければ、ステップS168に進む。
 ステップS152でクラスタ情報更新部108は、つまり受信したHelloパケットのクラスタ情報(CI)フィールドのクラスタ識別子(CID)と自身のクラスタ情報128に格納されているクラスタ識別子(CID)が一致する場合は、S152でHelloパケットに含まれるクラスタ識別子(CID)で識別されるクラスタのノード数と、自身のクラスタ情報128に格納されているクラスタ識別子(CID)で識別されるクラスタのノード数で違いがあるかどうかを判定する。この判定の結果がYesであれば、ステップS154に進む。この判定の結果がNoであれば、ステップS156に進む。
 ステップS154でクラスタ情報更新部108は、クラスタ識別子(CID)で識別されるクラスタのノード数に変化があった時点から一定時間のタイムアウトを計測するタイマを設定する。そして、ステップS156に進む。
 ステップS156では、受信したHelloパケットのクラスタ情報(CI)フィールドに含まれるノードの識別子({NID})と、自身のクラスタ情報128に格納されているクラスタの識別子(CID)で認識されるクラスタに含まれるノードの識別子({NID})を結合させる(マージする)。このことによって、クラスタ識別子(CID)で識別されるクラスタに含まれる全てのノード装置を認識する。
 ステップS156の次のステップS158でクラスタ情報更新部108は、自身のノード装置のフリーノードリスト130に含まれるクラスタ識別子(CID)で識別されるクラスタに参加させたいノード装置の識別子(NID)のリストに、自身のクラスタ情報128に格納されているクラスタ識別子(CID)で識別されるクラスタに含まれるノード装置の識別子(NID)が含まれているかどうかを判定する。
 ステップS158の判定の結果がYesであればステップS160に進み、Noであれば、ステップS160を処理せずにステップS162に進む。
 ステップS160でクラスタ情報更新部108は、自身のクラスタ情報128に格納されているクラスタの識別子(CID)で認識されるクラスタに含まれるノードの識別子({NID})と一致する、自身のノード装置のフリーノードリスト130に含まれるノード装置の識別子(NID)を削除する。そしてステップS162に進む。
 ステップS162でクラスタ情報更新部108は、自身のノード装置のマージノードリスト134が設定されているかどうかを判定する。もし設定されていればステップS164に進む。もし、設定されていなければクラスタ情報更新部108の処理を終了する。
 ステップS164でクラスタ情報更新部108は、自身のノード装置のマージノードリスト132に含まれるノードの識別子({NID})は、受信したHelloパケットのクラスタ情報(CI)フィールドに含まれるノードの識別子({NID})に含まれているかどうかを判定する、もしこの判定の結果がYesであれば、ステップS166に進む。もしこの判定の結果がNoであれば、クラスタ情報更新部108の処理を終了する。
 ステップS166では、自身のノード装置のマージノードリスト132に含まれるノードの識別子({NID})と自身のクラスタ情報128に格納されているクラスタの識別子(CID)で認識されるクラスタに含まれるノードの識別子({NID})を比較し、一致するノード装置の識別子を自身のノード装置のマージノードリスト132から削除して、クラスタ情報更新部108の処理を終了する。
 受信したHelloパケットのクラスタ情報(CI)フィールドのクラスタ識別子(CID)と、自身のクラスタ情報128に格納されているクラスタ識別子(CID)が一致しない場合、ステップS168でクラスタ情報更新部108は、自身のノード装置のマージクラスタリスト132に自身のノード装置の識別子(NID)が設定されているかどうかを判定する。この判定の結果がYesであれば、ステップS170に進む。この判定の結果がNoであれば、ステップS178に進む。
 ステップS170でクラスタ情報更新部108は、受信したHelloパケットのクラスタ情報(CI)フィールドに含まれるノードの識別子({NID})に自身のノード装置の識別子(NID)が設定されているかどうかを判定する。この判定の結果がYesであれば、ステップS172に進む。また、この判定の結果がNoであれば、ステップS178に進む。
 ステップS172では、受け取ったHelloパケットの送信元LSが、マージクラスタリストのSIDまたは自身のクラスタ情報128に含まれるノード装置の識別子(NID)に含まれているかどうかを判定する。この判定の結果がYesであれば、ステップS174に進む。また、この判定の結果がNoであれば、ステップS178に進む。
 ステップS174では、自身のクラスタ情報128に含まれる情報を削除し、受信したHelloパケットのクラスタ情報(CI)フィールドに含まれる情報を自身のクラスタ情報128に上書きする。
 ステップS174の次のステップS176では、自身のノード装置のマージクラスタリスト132に含まれる情報を削除して、クラスタ情報更新部108の処理を終了する。
 ステップS178では、クラスタ統合先候補通知部の処理を行う。
 ステップS178の処理が終わると、クラスタ情報更新部108の処理を終了する。
 図17は、クラスタ生成部110の動作の例を示すフローチャートである。
 ステップS180でクラスタ生成部110は、クラスタ情報128のendフラグの値が「true」であるかを判定する。endフラグの値が「true」であれば、新たなノード装置をクラスタに追加することはできない。この判定の結果がNo、すなわちendフラグの値が「false」であれば、新たなノード装置をクラスタに追加することができる。この判定の結果がYes、すなわちendフラグの値が「true」であれば、クラスタ生成部110の処理は終了する。endフラグの値が「false」であれば、ステップS182に進む。
 endフラグの値が「false」の場合、クラスタ生成部110は、受信したHelloパケットのフリーノードリスト(FNL)フィールドに含まれるフリーノード情報が、自身のノード装置で作成したクラスタに参加しようとしているノード装置の識別子であるかを確認する。このため、S182でクラスタ生成部110は、受信したHelloパケットのフリーノードリスト(FNL)フィールドに含まれるクラスタ識別子(CID)と、クラスタ情報128に含まれているクラスタ識別子(CID)が異なるかどうかを判定する。この判定の結果がNo、すなわちフリーノード情報とクラスタ情報128に含まれているクラスタ識別子(CID)が一致する場合、クラスタ生成部110は、自身のノード装置が生成しているクラスタに対して、参加が要求されたと認識する。そして、ステップS184に進む。この判定の結果がYesであれば、クラスタ生成部110の処理は終了する。
 S184でクラスタ生成部110は、フリーノード情報に含まれているノード装置の識別子(NID)をクラスタ情報128に追加し、クラスタに参加させる。S184の処理が終了すると、クラスタ生成部110の処理は終了する。
 図18は、フリーノードリスト生成部112の動作の例を示すフローチャートである。
 ステップS190およびS200はそれぞれ、ステップ180およびステップS182と同様の処理である。
 ステップS190でフリーノードリスト生成部112は、クラスタ情報128のendフラグの値がtrueであるかを判定する。この判定の結果がYes、すなわちendフラグの値がtrueであれば、フリーノードリスト生成部112の処理は終了する。endフラグの値がfalseであれば、ステップS200に進む。
 ステップS200でフリーノードリスト生成部112は、受信したHelloパケットのフリーノードリスト(FNL)フィールドに含まれるクラスタ識別子(CID)と、クラスタ情報128に含まれているクラスタ識別子(CID)が異なるかどうかを判定する。この判定の結果がNoの場合、フリーノードリスト生成部112は、自身のノード装置が生成しているクラスタに対して、参加が要求されたと認識する。そして、ステップS202に進む。この判定の結果がYesであれば、フリーノードリスト生成部112の処理は終了する。
 ステップS202でフリーノードリスト生成部112は、受信したHelloパケットのフリーノードリスト(FNL)フィールドに含まれるノード装置の識別子(NID)が、クラスタ情報128に含まれているかどうかを判定する。この判定の結果がNoの場合、すなわちフリーノードリスト(FNL)フィールドに含まれるノード装置の識別子(NID)が、クラスタ情報128に含まれてない場合、ステップS204に進む。この判定の結果がYesであれば、フリーノードリスト生成部112の処理は終了する。
 ステップS204でフリーノードリスト生成部112は、フリーノードリスト(FNL)フィールドに含まれるノード装置の識別子(NID)をフリーノードリスト130に追加する。ステップS204の処理が終了すると、フリーノードリスト生成部112の処理は終了する。
 図19は、クラスタ統合先候補通知部114の動作の例を示すフローチャートである。
 図19に示されている処理で各ノードは、自身が所属しているクラスタのクラスタ識別子(CID)と異なるクラスタ情報(CI)を含むHelloパケットを受信した場合に、クラスタ統合段階に移行しているかどうかを、クラスタのノード装置の数に変化がなくなった時点からのタイマがタイムアウトしているかに基づいて判断する。クラスタ統合段階に移行していれば、自身のノード装置のクラスタ情報128と、受信したHelloパケットのクラスタ情報(CI)から両方のクラスタのノード数を合計し、上限を超えていなければ、クラスタ統合可能と判断する。クラスタ統合可能で、自身ノード装置が属するクラスタがスレーブ側クラスタであった場合は、クラスタ統合先候補(マスタ側クラスタに属するノード装置)をマージクラスタリスト(MCL)のSIDに設定する。また、起点ノードの場合はクラスタ統合受付部へ設定したマージクラスタリストを渡す。
 ステップS210でクラスタ統合先候補通知部114は、受信したHelloパケットのクラスタ情報(CI)フィールドのクラスタ識別子(CID)が、自身のクラスタ情報128に格納されているクラスタ識別子(CID)が異なるかどうかを判定する。このときのHelloパケットは、クラスタ統合先候補通知としての意味を持つ。この判定の結果がYesの場合、すなわち受信したHelloパケットのクラスタ情報(CI)フィールドのクラスタ識別子(CID)が、自身のクラスタ情報128に格納されているクラスタ識別子(CID)が異なる場合、ステップS212に進む。
 ステップS212でクラスタ統合先候補通知部114は、ノード装置の数に変化がなくなった時点からの一定時間のタイムアウトをしているかを判断する。この判定の結果がYesの場合、クラスタ統合先候補通知部114は、クラスタ統合段階に移行していることを認識する。そして、ステップS214に進む。
 ステップS214でクラスタ統合先候補通知部114は、受信したHelloパケットのクラスタ情報(CI)フィールドに含まれるノード装置の識別子(NID)と、自身のクラスタ情報128に格納されているノード装置の識別子(NID)のエントリ数の合計が、クラスタあたりのノード装置の数の上限である最大クラスタノード数以下であるかを判定する。この判定の結果がYesの場合は、Helloパケットの送信元のノード装置が属するクラスタと、自身が属するクラスタは統合可能である。そして、ステップS216に進む。
 ステップS216でクラスタ統合先候補通知部114は、自身が属するクラスタがスレーブ側であるかどうかを判定する。この判定の結果がYesの場合、ステップS216に進む。
 ステップS218でクラスタ統合先候補通知部114は、受信したHelloパケットのマージクラスタリスト(MCL)が空であるかどうかを判定する。この判定の結果がYesの場合、ステップS220に進む。
 ステップS220でクラスタ統合先候補通知部114は、クラスタ統合先候補、すなわちマスタ側クラスタに属し、自身と隣接するノード装置をマージクラスタリスト(MCL)のSIDに設定する。
 ステップS220の次のS222でクラスタ統合先候補通知部114は、自身が起点ノードであるかを判定する。この判定の結果がYesの場合、ステップS224に進む。
 ステップS224でクラスタ統合先候補通知部114は、クラスタ統合要求受付部116へ設定したマージクラスタリストを渡す。そして、クラスタ統合先候補通知部114の処理は終了する。
 また、ステップS210、S212、S214、S216、S218、S222の判定の結果がNoであれば、クラスタ統合先候補通知部114の処理を終了する。
 図20は、クラスタ統合要求受付部116の動作の例を示すフローチャートである。
 図20に示されている処理で起点ノードは、他のクラスタからのクラスタ統合先候補通知が競合していないかを自身のノード装置のマージクラスタリスト132に含まれる情報に基づいて比較、判断し、クラスタ統合先候補通知を受け付ける。
 起点ノードは、クラスタ統合先候補通知を受け付けたことを受け、自身のノード装置の識別子(NID)をマージクラスタリスト132に追加する。
 ステップS230でクラスタ統合要求受付部116は、受信したHelloパケットのマージクラスタリスト(MCL)フィールドに含まれるマスタ側クラスタのノード装置の識別子(SID)が、自身のクラスタ情報128に含まれないかどうかを判定する。この判定の結果がYesの場合、ステップS232に進む。この判定の結果がNoの場合、クラスタ統合要求受付部116の処理を終了する。
 ステップS232でクラスタ統合要求受付部116は、受信したHelloパケットのマージクラスタリスト(MCL)フィールドのノード装置の識別子(NID)が未設定であるかどうかを判定する。この判定の結果がYesの場合、ステップS238に進む。この判定の結果がNoの場合、ステップS234に進む。
 ステップS234でクラスタ統合要求受付部116は、受信したHelloパケットのマージクラスタリスト(MCL)フィールドに含まれるマスタ側クラスタのノード装置の識別子(SID)が、自身のマージクラスタリスト132に含まれるマスタ側クラスタのノード装置の識別子(SID)と同じであるかどうかを判定する。この判定の結果がYesの場合、ステップS236に進む。この判定の結果がNoの場合、クラスタ統合要求受付部116の処理を終了する。
 ステップS236でクラスタ統合要求受付部116は、受信したHelloパケットのマージクラスタリスト(MCL)フィールドに含まれるノード装置の識別子(NID)を、自身のマージクラスタリスト132に含まれるノード装置の識別子(NID)にマージする。
 ステップS232の判定の結果がYesの場合、すなわち受信したHelloパケットのマージクラスタリスト(MCL)フィールドのノード装置の識別子(NID)が未設定であると判定された場合は、ステップS238の処理を行う。
 ステップS238でクラスタ統合要求受付部116は、自身のマージクラスタリスト132に含まれるノード装置の識別子(NID)に自身のノード装置の識別子(NID)を設定する。そして、クラスタ統合要求受付部116の処理は終了する。
 図21は、クラスタ統合要求更新部118の動作の例を示すフローチャートである。
 図21に示されている処理で参加ノードは、マージクラスタリスト(MCL)に自身のノード装置が属するクラスタの起点ノードが設定されていることでクラスタ統合要求通知を受付けたことを判断し、自身のノード装置の識別子を自身のマージクラスタリスト132に追加する。
 ステップS240でクラスタ統合要求更新部118は、受信したHelloパケットのマージクラスタリスト(MCL)フィールドに含まれるマスタ側クラスタのノード装置の識別子(SID)が、自身のクラスタ情報128に含まれないかどうかを判定する。この判定の結果がYesの場合、S250に進んでクラスタ統合リスト生成部120の処理を行い、クラスタ統合要求更新部118の処理を終了する。この判定の結果がNoの場合、ステップS242に進む。
 ステップS242でクラスタ統合要求更新部118は、受信したHelloパケットのマージクラスタリスト(MCL)フィールドのノード装置の識別子(NID)が未設定であるかどうかを判定する。この判定の結果がNoの場合、ステップS244に進む。この判定の結果がYesの場合、ステップS248に進む。
 ステップS248でクラスタ統合要求更新部118は、自身のマージクラスタリスト132に、受信したHelloパケットのマージクラスタリスト(MCL)フィールドに含まれるマスタ側クラスタのノード装置の識別子(SID)を設定する。そして、クラスタ統合要求更新部118の処理は終了する。
 ステップS244でクラスタ統合要求更新部118は、受信したHelloパケットのマージクラスタリスト(MCL)フィールドのノード装置の識別子(NID)が、自身のクラスタ情報126に含まれるかどうかを判定する。この判定の結果がNoの場合、クラスタ統合要求更新部118の処理は終了する。この判定の結果がYesの場合、ステップS246に進む。
 ステップS246でクラスタ統合要求更新部118は、自身のノード装置のマージクラスタリスト132に格納されるノード装置の識別子(NID)に自身のノード装置の識別子を追加する。そして、クラスタ統合要求更新部118の処理は終了する。
 図22は、クラスタ統合リスト生成部120の動作の例を示すフローチャートである。
 マスタ側の対向ノードは、自身のノード装置のクラスタ情報128に格納されるノード装置の識別子(NID)と、受信したクラスタ統合要求通知のマージクラスタリスト(MCL)フィールに含まれるノード装置の識別子(NID)とが完全に一致するかどうかを確認する。一致すれば受信したHelloパケット(クラスタ統合要求通知)のマージクラスタリスト(MCL)フィールに含まれるノード装置の識別子(NID)を自身のノード装置のクラスタ情報128に格納されるノード装置の識別子(NID)に設定する。
 ステップS260でクラスタ統合リスト生成部120は、自身のノード装置のマージクラスタリスト132は空かどうかを判定する。この判定の結果がYesであれば、S262に進む。
 ステップS262でクラスタ統合リスト生成部120は、受信したHelloパケットのマージクラスタリスト(MCL)フィールドに含まれるマスタ側クラスタのノード装置の識別子(SID)が、自身のノード装置の識別子であるかどうかを判定する。この判定の結果がYesであれば、S264に進む。
 ステップS264でクラスタ統合リスト生成部120は、受信したHelloパケットのクラスタ情報(CI)フィールドに含まれるノード装置の識別子(NID)と、自身のクラスタ情報128に格納されているノード装置の識別子(NID)が一致するかどうかを判定する。この判定の結果がYesであれば、S266に進む。
 ステップS266でクラスタ統合リスト生成部120は、受信したHelloパケットのクラスタ情報(CI)フィールドに含まれるノード装置の識別子(NID)を、自身のマージノードリスト134に設定する。そして、クラスタ統合リスト生成部120の処理を終了する。
 また、ステップS260,S262、S264の判定の結果がNoの場合は、クラスタ統合リスト生成部120の処理を終了する。
 図23はクラスタ統合処理部122の動作の例を示すフローチャートである。
 起点ノードは、クラスタ統合要求の競合確認し、受信したHelloパケットのマージノードリスト(MNL)に含まれるノード装置の識別子(NID)の数と自身のノード装置のクラスタ情報128に格納されているノード装置の数の合計が、クラスタあたりのノード装置の数の上限である最大クラスタノード数以下であれば、ノード装置のクラスタ情報128に受信したHelloパケットのマージノードリスト(MNL)に含まれるノード装置の識別子(NID)を追加することでクラスタ統合を実施する。
 ステップS270でクラスタ統合処理部122は、自身のノード装置のマージクラスタリスト132が未設定であるかを判定する。この判定の結果がYesであれば、S272に進む。
 ステップS272でクラスタ統合処理部122は、受信したHelloパケットのマージクラスタリスト(MCL)フィールドに含まれるノード装置の識別子(NID)の数と、自身のクラスタ情報128に格納されているノード装置の識別子(NID)の数の合計が、クラスタあたりのノード装置の数の上限である最大クラスタノード数以下であるかどうかを判定する。この判定の結果がYesであれば、S274に進む。
 ステップS274でクラスタ統合処理部122は、自身のクラスタ情報128に、受信したHelloパケットのマージクラスタリスト(MCL)フィールドに含まれるノード装置の識別子(NID)を追加して、クラスタを統合する。そして、クラスタ統合処理部122の処理を終了する。
 また、ステップS270、S272の判定の結果がNoであれば、クラスタ統合処理部122の処理を終了する。
 図24と図25は、クラスタ統合リスト通知部124の動作の例を示すフローチャートである。
 参加ノードは、クラスタ統合要求の競合を確認し、受信したHelloパケットのマージノードリスト(MNL)フィールドに含まれるノード装置の識別子(NID)をマージノードリスト134に含まれるノード装置の識別子(NID)に設定する。
 図24は、複数のクラスタから統合要求通知が送られてきたとき、複数のクラスタの1つのクラスタと統合するときのクラスタ統合リスト通知部124の動作の例を示すフローチャートである。
 ステップS280でクラスタ統合リスト通知部124は、自身のノード装置のマージクラスタリスト132が空かどうかを判定する。この判定の結果がYesであれば、S282に進む。
 ステップS282でクラスタ統合リスト通知部124は、自身のマージノードリスト134が未設定であるかどうかを判定する。この判定の結果がYesであれば、S284に進む。
 ステップS284でクラスタ統合リスト通知部124は、受信したHelloパケットのマージノードリスト(MNL)フィールドに含まれるノード装置の識別子(NID)をマージノードリスト134に含まれるノード装置の識別子(NID)に設定する。そして、クラスタ統合リスト通知部124の処理を終了する。
 また、ステップS280、S282の判定の結果がNoであれば、クラスタ統合リスト通知部124の処理を終了する。
 図25は、複数のクラスタから統合要求通知が送られてきたとき、複数のクラスタと同時に統合するクラスタ統合リスト通知部124の動作の例を示すフローチャートである。
 ステップS290でクラスタ統合リスト通知部124は、ステップS280と同様の処理を行う。すなわち、自身のノード装置のマージクラスタリスト132が空かどうかを判定する。この判定の結果がYesであれば、S292に進む。この判定の結果がNoであれば、クラスタ統合リスト通知部124の処理を終了する。
 ステップS292でクラスタ統合リスト通知部124は、ステップS284と同様の処理を行う。ステップS292でクラスタ統合リスト通知部124は、受信したHelloパケットのマージノードリスト(MNL)フィールドに含まれるノード装置の識別子(NID)をマージノードリスト134に含まれるノード装置の識別子(NID)に設定する。そして、クラスタ統合リスト通知部124の処理を終了する。
<クラスタ統合の処理シーケンス>
 図26~28を参照して、クラスタ統合の処理の例を説明する。
 図26は、クラスタ統合前のネットワークのトポロジーの例を示す図である。図26は、クラスタ形成の第1段階であるクラスタ生成段階ではクラスタあたりの最大ノード数を3とし、第2段階であるクラスタ統合段階ではクラスタあたりの最大ノード数を6として、クラスタ生成段階が完了している状態を示している。
 以下では、図26のクラスタAとクラスタEが統合して図27に示されている状態に移行する際の処理の例について説明する。
 図26では、クラスタAは、ノード装置の識別子NID=A、B、Cの3つのノード装置を含み、起点ノードはノード装置の識別子NID=Aのノード装置である。クラスタEはノード装置の識別子NID=D、Eの2つのノード装置を含み、起点ノードはノード装置の識別子NID=Eのノード装置である。
 図27では、図26のクラスタAとクラスタEが統合されて、ノード装置の識別子NID=A、B、C、D、Eの5つのノード装置を含み、起点ノードがノード装置の識別子NID=Aのノード装置であるクラスタAが形成されている。
 図28は、クラスタAとクラスタEが統合して図27に示されている状態に移行する際の処理の例を説明するシーケンス図である。
 クラスタEがクラスタ統合段階に移行すると、クラスタEのノード装置DがHelloパケット(a)をノード装置Cに送る。Helloパケット(a)のクラスタ情報(CI)には、
CI:<CID、{NID}、end>=<E、{D、E}、false>
なる情報が格納されている。
 クラスタEのノード装置DからHelloパケット(a)を受けたクラスタAのノード装置Cは、Helloパケット(b)をノード装置Dに送る。Helloパケット(b)のクラスタ情報(CI)フィールドには、
CI:<CID、{NID}、end>=<A、{A、B、C}、false>
なる情報が格納されている。
 ノード装置Dは、ノード装置Dのクラスタ情報128に含まれている、ノード装置Dが属するクラスタEが含むノード装置の数と、Helloパケット(b)のクラスタ情報(CI)フィールドに含まれているノード装置の識別子{A、B、C}の数を加えて、統合段階ではクラスタあたりの最大ノード数を6以下であることを確認する。そして、 ノード装置Dは、ノード装置Cから受けたHelloパケット(b)の送信元Cを自身のマージクラスタリスト132のSIDに登録(1)を行う。
 次に、クラスタ統合先候補通知としてのHelloパケット(c)をクラスタE内にブロードキャスト送信する通知処理(2)を行う。このとき、Helloパケット(c)のクラスタ情報(CI)フィールドとマージクラスタリスト(MCL)フィールドには、
CI:<CID、{NID}、end>=<E、{D、E}、false>
MCL:<SID、{NID}>=<C、{}>
なる情報が格納されている。
 ノード装置DからHelloパケット(c)を受けたノード装置Eは、起点ノードなのでクラスタ統合要求が競合していないことを確認する。さらに、ノード装置Eのマージクラスタリスト132にノード装置の識別子(NID)を設定する設定処理(4)を行う。ここでは、自身のマージクラスタリスト132を更新し、マージクラスタリスト132にノード装置Eが含まれるようにする更新処理(3)を行う。 次に、ノード装置Eは、Helloパケット(d)をクラスタE内にブロードキャスト送信する。Helloパケット(d)のクラスタ情報(CI)フィールドとマージクラスタリスト(MCL)フィールドには、
CI:<CID、{NID}、end>=<E、{D、E}、false>
MCL:<SID、{NID}>=<C、{E}>
なる情報が格納されている。
 ノード装置EからHelloパケット(d)を受けたノード装置Dは、受けたHelloパケット(d)のマージクラスタリストに起点ノードEを含んでいる事で、クラスタ統合要求が受付済みであることを認識し、自身のマージクラスタリスト132を更新し、ノード装置Dが含まれるようにし、クラスタ統合要求が受付済みであることを伝播する処理(5)を行う。ノード装置Dは、Helloパケット(e)をブロードキャスト送信する。Helloパケット(e)のクラスタ情報(CI)フィールドとマージクラスタリスト(MCL)フィールドには、
CI:<CID、{NID}、end>=<E、{D、E}、false>
MCL:<SID、{NID}>=<C、{D、E}>
なる情報が格納されている。
 ノード装置DからHelloパケット(e)を受けたノード装置C(ノード装置Dの対向ノード)は、Helloパケット(e)のマージクラスタリスト(MCL)フィールドに格納されているノード装置の識別子({NID}={D、E})の数とクラスタ情報(CI)フィールドに含まれているノード装置の識別子{D、E}の数を確認し、一致すればマージノードリスト134に写し替える登録処理(7)を行う。
 次に、ノード装置CはHelloパケット(f)をクラスタA内にブロードキャスト送信する。Helloパケット(f)のクラスタ情報(CI)フィールドとマージノードリスト(MNL)フィールドには、
CI:<CID、{NID}、end>=<A、{A、B、C}、false>
MNL:<{NID}>=<{D、E}>
なる情報が格納されている。
 ノード装置CからHelloパケット(f)を受信したノード装置Bは、Helloパケット(f)のマージノードリスト(MNL)フィールドに格納されているノード装置の識別子({NID}={D、E})をノード装置Bのマージノードリスト134に写し替える登録処理(8)を行う。
 ノード装置Bは、Helloパケット(g)をクラスタA内にブロードキャスト送信する。Helloパケット(g)のクラスタ情報(CI)フィールドとマージノードリスト(MNL)フィールドには、
CI:<CID、{NID}、end>=<A、{A、B、C}、false>
MNL:<{NID}>=<{D、E}>
なる情報が格納されている。
 Helloパケット(g)を受信した起点ノードAは、クラスタ統合要求が競合していないことを確認する。そして、マージノードリスト134に含まれているノード装置の識別子{D、E}の数と、クラスタ情報126に含まれているノード装置Aが属するクラスタAのノード装置の数の合計が最大クラスタノード数以下であれば、クラスタ情報126にHelloパケット(g)のマージノードリスト(MNL)フィールドに含まれるノード{D、E}を追加する更新処理(9)を行う。
 そして、ノード装置Aは、クラスタ統合後のクラスタ情報126に含まれている情報を用いてHelloパケット(h)を生成し、送信処理(10)を行う。Helloパケット(h)のクラスタ情報(CI)フィールドには、
CI:<CID、{NID}、end>=<A、{A、B、C、D、E}、false>
なる情報が含まれている。
 ノード装置AからHelloパケット(h)を受けたノード装置Bは、Helloパケット(h)のクラスタ情報(CI)フィールドに含まれているノード装置の識別子{A、B、C、D、E}に、ノード装置Bのマージノードリスト(MNL)と一致するものがあれば、ノード装置Bのマージノードリスト134からそのノード装置の識別子(NID)を削除し、クラスタ情報128を書き換える処理(11)を行う。
 処理(11)を行った後、ノード装置Bは、Helloパケット(i)を送信する。Helloパケット(i)のクラスタ情報(CI)フィールドには、
CI:<CID、{NID}、end>=<A、{A、B、C、D、E}、false>
なる情報が含まれている。
 ノード装置BからHelloパケット(i)を受けたノード装置Cは、処理(11)と同様の処理(12)を行う。すなわちノード装置Cは、Helloパケット(i)のクラスタ情報(CI)フィールドに含まれているノード装置の識別子{A、B、C、D、E}に、ノード装置Cのマージノードリスト134と一致するものがあれば、ノード装置Cのマージノードリスト(MNL)からそのノード装置の識別子(NID)を削除し、クラスタ情報128を書き換える処理(12)を行う。
 処理(12)を行った後、ノード装置Cは、Helloパケット(j)を送信する。Helloパケット(j)のクラスタ情報(CI)フィールドには、
CI:<CID、{NID}、end>=<A、{A、B、C、D、E}、false>
なる情報が含まれている。
 ノード装置CからHelloパケット(j)を受けたノード装置Dは、自身のマージクラスタリスト132に自ノード装置Dが含まれているので統合される状態であり、Helloパケット(j)のクラスタ情報(CI)フィールドに含まれているノード装置の識別子{A、B、C、D、E}に、ノード装置Dが含まれ、すなわち統合が許可された情報であり、かつ、このHelloパケット(j)の送信元であるノード装置Cは、自身のマージクラスタリスト132のSIDと一致しているため、Helloパケット(j)のクラスタ情報(CI)フィールドのクラスタ情報(CI)フィールドに含まれているノード装置と自身のマージクラスタリスト132のNIDが一致するものを自身のマージクラスタリスト132から削除し、Helloパケット(j)のクラスタ情報(CI)フィールドのクラスタ情報(CI)フィールドに含まれているノード装置、を自身のクラスタ情報128に書き換える処理(13)を行う。この処理後、ノード装置DはクラスタAに所属する。
 処理(13)を行った後、ノード装置Cは、Helloパケット(k)を送信する。Helloパケット(k)のクラスタ情報(CI)フィールドには、
CI:<CID、{NID}、end>=<A、{A、B、C、D、E}、false>
なる情報が含まれている。
 ノード装置DからHelloパケット(k)を受けたノード装置Eは、自身のマージクラスタリスト132に自ノード装置Eが含まれているので統合される状態であり、Helloパケット(k)のクラスタ情報(CI)フィールドに含まれているノード装置の識別子{A、B、C、D、E}に、ノード装置Eが含まれ、すなわち統合が許可された情報であり、かつ、このHelloパケット(k)の送信元であるノード装置Dは、ノード装置Eのクラスタ情報128に含まれているため、Helloパケット(k)のクラスタ情報(CI)フィールドのクラスタ情報(CI)フィールドに含まれているノード装置と自身のマージクラスタリスト132のNIDが一致するものを自身のマージクラスタリスト132から削除し、Helloパケット(k)のクラスタ情報(CI)フィールドのクラスタ情報(CI)フィールドに含まれているノード装置、を自身のクラスタ情報128に書き換える処理(14)を行う。この処理後、ノード装置EはクラスタAに所属する。
 このようにして図27に示されているように、図26のクラスタAとクラスタEが統合されて、ノード装置の識別子NID=A、B、C、D、Eの5つのノード装置を含み、起点ノードがノード装置の識別子NID=Aのノード装置であるクラスタAが形成される。
 図29は、上述の比較例で開示されたノード装置を用いてクラスタを形成した結果を示す図である。また、図30は、上述の実施形態で開示されたノード装置を用いてクラスタを形成した結果を示す図である。実施形態では、小さなサイズ、すなわち含まれるノード装置の数が少ないクラスタが減っていることが分かる。
 このように、Helloパケットの送受信のみでクラスタ生成処理およびクラスタ統合処理の2段階でクラスタ形成を行う事で、ネットワークにかかる負荷を軽減し、且つ、クラスタヘッドの負荷を減らしつつ、クラスタ形成を行うことができる。クラスタ統合処理を実行することによって、クラスタ数は減少しルーティング時のクラスタを跨ぐ数を減らすことができる。さらに、処理リソースが減少することでアドホックネットワークのスループット向上が可能となる。
10 ノード装置
102 受信部
104 ノード種別判定部
106 参加処理部
108 クラスタ情報更新部
110 クラスタ生成部
112 フリーノードリスト生成部
114 クラスタ統合先候補通知部
116 クラスタ統合要求受付部
118 クラスタ統合要求更新部
120 クラスタ統合リスト生成部
122 クラスタ統合処理部
124 クラスタ統合リスト通知部
126 ノード種別情報
128 クラスタ情報
130 フリーノードリスト
132 マージクラスタリスト
134 マージノードリスト
136 設定部
138 ハローパケット生成部
140 送信部
200 MPU(Micro Processing Unit)
202 PHY(Physical Layer)チップ
204 タイマIC
206 DRAM(Dynamic Random Access Memory)
208 フラッシュメモリ
210 無線モジュール
212 バス
300 Helloパケット

Claims (12)

  1.  複数のノード装置を含むネットワーク中のノード装置であって、
     前記ネットワーク中の前記複数のノード装置の中で、前記ノード装置が経路情報を記憶するノード装置のグループである第1のクラスタに含まれるノード装置の装置識別情報を格納するクラスタ情報格納部と、
     隣接するノード装置である隣接ノード装置から、前記ネットワーク中の情報伝達のための経路に関する経路情報、および前記隣接ノード装置が経路情報を記憶するノード装置のグループである第2のクラスタに含まれるノード装置の装置識別情報の通知に用いられるハローパケットを受信する受信部と、
     前記第1のクラスタに含まれるノード装置の数が、所定の整数値で定義される最大クラスタノード数に対する所定の割合以下であり、且つ所定の時間にわたり変化がないことを確認するクラスタノード変化確認部と、
     前記第1のクラスタとは異なる第2のクラスタに含まれる前記隣接ノード装置の一つから前記ハローパケットを受けたとき、前記クラスタ情報格納部に格納されている前記ノード装置の装置識別情報から前記第1のクラスタに含まれるノード装置の数を取得し、前記ハローパケットに含まれる情報に基づいて前記第2のクラスタに含まれるノード装置の数を取得し、前記第1のクラスタに含まれるノード装置の数と前記第2のクラスタに含まれるノード装置の数の和が前記最大クラスタノード数以下であることを判定する統合クラスタノード数判定部と、
     前記統合クラスタノード数判定部の判定の結果に基づいて、前記第2のクラスタに含まれる前記ノード装置の装置識別情報を、前記第1のクラスタに含まれるノード装置の装置識別情報に追加して、前記クラスタ情報格納部に格納される前記装置識別情報を更新し、前記第2のクラスタを前記第1のクラスタに統合させるクラスタ統合処理部と、
     前記更新された前記クラスタ情報格納部に格納される前記ノード装置の装置識別情報を参照して、別のハローパケットを生成するハローパケット生成部と、
     前記別のハローパケットを送信する送信部と、
    を含むノード装置。
  2.  前記ハローパケットは、前記第2のクラスタに含まれるノード装置の装置識別情報をマージノードリストとして含み、
     前記マージノードリストに含まれる前記第2のクラスタに含まれるノード装置の装置識別情報を格納するマージノードリスト格納部を含み、
     前記ハローパケット生成部は、前記マージノードリスト格納部に格納されている前記マージノードリストを参照して、前記別のハローパケットを生成することを特徴とする、請求項1に記載のノード装置。
  3.  前記第2のクラスタに含まれるノード装置が送信する前記ハローパケットは、前記第2のクラスタに含まれるノード装置に対して前記第1のクラスタから統合の要求が来ていることを通知するために、前記第1のクラスタに含まれ、前記第1のクラスタに含まれるノード装置の一つの装置識別情報をマージクラスタリストの一部として含み、
     前記マージクラスタリストを格納するマージクラスタリスト格納部を含み、
     前記ハローパケット生成部は、前記マージクラスタリスト格納部に格納されている前記マージクラスタリストを参照して、前記別のハローパケットを生成することを特徴とする、請求項1または2に記載のノード装置。
  4.  前記第2のクラスタに含まれるノード装置が送信する前記ハローパケットは、前記第2のクラスタに含まれるノード装置の装置識別情報をマージノードリストの一部として含み、前記マージクラスタリストの一部として含み、
     前記マージクラスタリストを格納するマージクラスタリスト格納部を含み、
     前記ハローパケット生成部は、前記マージクラスタリスト格納部に格納されている前記マージクラスタリストを参照して、前記別のハローパケットを生成することを特徴とする、請求項1乃至3のいずれか一項に記載のノード装置。
  5.  前記マージクラスタリストに含まれる前記第2のクラスタに含まれるノード装置の装置識別情報が、前記第2のクラスタに含まれるノード装置のクラスタ情報格納部に格納されている前記第2のクラスタに含まれるノード装置の装置識別情報と一致したとき、前記マージクラスタリストに含まれる前記第2のクラスタに含まれるノード装置の装置識別情報は前記マージノードクラスタリストに移し替えられる、請求項4に記載のノード装置。
  6.  最大クラスタノード数に対する所定の割合は、40~60%である、請求項1乃至5のいずれか一項に記載のノード装置。
  7.  複数のノード装置を含むネットワーク中のノード装置の中で、前記ノード装置が経路情報を記憶するノード装置のグループである第1のクラスタに含まれるノード装置の装置識別情報を格納することと、
     隣接するノード装置である隣接ノード装置から、前記ネットワーク中の情報伝達のための経路に関する経路情報、および前記隣接ノード装置が経路情報を記憶するノード装置のグループである第2のクラスタに含まれるノード装置の装置識別情報の通知に用いられるハローパケットを受信することと、
     前記第1のクラスタに含まれるノード装置の数が、所定の整数値で定義される最大クラスタノード数に対する所定の割合以下であり、且つ所定の時間にわたり変化がないことを確認することと、
     前記第1のクラスタとは異なる第2のクラスタに含まれる前記隣接ノード装置の一つから前記はハローパケットを受けたとき、前記クラスタ情報格納部に格納されている前記ノード装置の装置識別情報から前記第1のクラスタに含まれるノード装置の数を取得し、前記ハローパケットに含まれる情報に基づいて前記第2のクラスタに含まれるノード装置の数を取得し、前記第1のクラスタに含まれるノード装置の数と前記第2のクラスタに含まれるノード装置の数の和が前記最大クラスタノード数以下であることを判定することと、
     前記判定の結果に基づいて、前記第2のクラスタに含まれる前記ノード装置の装置識別情報を、前記第1のクラスタに含まれるノード装置の装置識別情報に追加して、前記装置識別情報を更新し、前記第2のクラスタを前記第1のクラスタに統合させることと、
     前記ノード装置の装置識別情報を参照して、別のハローパケットを生成することと、
     前記別のハローパケットを送信することと、
    を含む通信方法。
  8.  前記ハローパケットは、前記第2のクラスタに含まれるノード装置の装置識別情報をマージノードリストとして含み、
     さらに、
     前記マージノードリストに含まれる前記第2のクラスタに含まれるノード装置の装置識別情報を格納することと、
     前記ハローパケット生成部は、前記マージノードリスト格納部に格納されている前記マージノードリストを参照して、別のハローパケットを生成することと
    を含む、請求項7に記載の通信方法。
  9.  前記第2のクラスタに含まれるノード装置が送信する前記ハローパケットは、前記第2のクラスタに含まれるノード装置に対して前記第1のクラスタから統合の要求が来ていることを通知するために、前記第1のクラスタに含まれ、前記第1のクラスタに含まれるノード装置の一つの装置識別情報をマージクラスタリストの一部として含み、
     さらに、
     前記マージクラスタリストを格納することと、
     前記格納されている前記マージクラスタリストを参照して、別のハローパケットを生成することと、
    を含む請求項7または8に記載のノード装置。
  10.  前記第2のクラスタに含まれるノード装置が送信する前記ハローパケットは、前記第2のクラスタに含まれるノード装置の装置識別情報をマージノードリストの一部として含み、前記マージクラスタリストの一部として含み、
     さらに、
     前記マージクラスタリストを格納することと、
     前記マージクラスタリスト格納部に格納されている前記マージクラスタリストを参照して、前記別のハローパケットを生成すること
    を含む、請求項7乃至9のいずれか一項に記載の通信方法。
  11.  前記マージクラスタリストに含まれる前記第2のクラスタに含まれるノード装置の装置識別情報が、前記第2のクラスタに含まれるノード装置のクラスタ情報格納部に格納されている前記第2のクラスタに含まれるノード装置の装置識別情報と一致したとき、前記マージクラスタリストに含まれる前記第2のクラスタに含まれるノード装置の装置識別情報は前記マージノードクラスタリストに移し替えられる、請求項10に記載の通信方法。
  12.  最大クラスタノード数に対する所定の割合は、40~60%である、請求項1乃至5のいずれか一項に記載の通信方法。
PCT/JP2012/062562 2012-05-16 2012-05-16 ノード装置および通信方法 WO2013171867A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2012/062562 WO2013171867A1 (ja) 2012-05-16 2012-05-16 ノード装置および通信方法
JP2014515417A JP5928582B2 (ja) 2012-05-16 2012-05-16 ノード装置および通信方法
US14/507,285 US9450831B2 (en) 2012-05-16 2014-10-06 Node apparatus and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/062562 WO2013171867A1 (ja) 2012-05-16 2012-05-16 ノード装置および通信方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/507,285 Continuation US9450831B2 (en) 2012-05-16 2014-10-06 Node apparatus and communication method

Publications (1)

Publication Number Publication Date
WO2013171867A1 true WO2013171867A1 (ja) 2013-11-21

Family

ID=49583310

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/062562 WO2013171867A1 (ja) 2012-05-16 2012-05-16 ノード装置および通信方法

Country Status (3)

Country Link
US (1) US9450831B2 (ja)
JP (1) JP5928582B2 (ja)
WO (1) WO2013171867A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015141020A1 (ja) * 2014-03-18 2015-09-24 富士通株式会社 無線通信システム、端末、及び、処理方法
CN105900383A (zh) * 2014-11-21 2016-08-24 华为技术有限公司 通信***、控制节点和通信方法

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2960369B1 (fr) * 2010-05-20 2013-03-01 Bull Sas Procede d'optimisation de routage dans un cluster comprenant des liens de communication statiques et programme d'ordinateur mettant en oeuvre ce procede
US9872227B2 (en) * 2013-04-23 2018-01-16 Qualcomm Incorporated Systems and methods for identification in a neighborhood aware network
CN105991325B (zh) * 2015-02-10 2019-06-21 华为技术有限公司 处理至少一个分布式集群中的故障的方法、设备和***
CN106034280A (zh) * 2015-03-12 2016-10-19 北京信威通信技术股份有限公司 一种自组网中基于节点身份特征的分簇方法
CN106034305A (zh) * 2015-03-14 2016-10-19 北京信威通信技术股份有限公司 一种自组网中基于节点身份特征的分簇方法
CN106034301A (zh) * 2015-03-14 2016-10-19 北京信威通信技术股份有限公司 一种自组网中基于节点身份特征的分簇方法
WO2016202381A1 (en) * 2015-06-17 2016-12-22 Telefonaktiebolaget Lm Ericsson (Publ) Path setup in a mesh network
CN106454984B (zh) * 2015-08-04 2021-05-04 中兴通讯股份有限公司 一种路由的方法及装置
US10348847B2 (en) 2016-01-28 2019-07-09 Oracle International Corporation System and method for supporting proxy based multicast forwarding in a high performance computing environment
US10630816B2 (en) 2016-01-28 2020-04-21 Oracle International Corporation System and method for supporting shared multicast local identifiers (MILD) ranges in a high performance computing environment
US10666611B2 (en) 2016-01-28 2020-05-26 Oracle International Corporation System and method for supporting multiple concurrent SL to VL mappings in a high performance computing environment
US10536334B2 (en) 2016-01-28 2020-01-14 Oracle International Corporation System and method for supporting subnet number aliasing in a high performance computing environment
US10616118B2 (en) 2016-01-28 2020-04-07 Oracle International Corporation System and method for supporting aggressive credit waiting in a high performance computing environment
US10333894B2 (en) 2016-01-28 2019-06-25 Oracle International Corporation System and method for supporting flexible forwarding domain boundaries in a high performance computing environment
US10348649B2 (en) * 2016-01-28 2019-07-09 Oracle International Corporation System and method for supporting partitioned switch forwarding tables in a high performance computing environment
US10374926B2 (en) 2016-01-28 2019-08-06 Oracle International Corporation System and method for monitoring logical network traffic flows using a ternary content addressable memory in a high performance computing environment
US10355972B2 (en) 2016-01-28 2019-07-16 Oracle International Corporation System and method for supporting flexible P_Key mapping in a high performance computing environment
US10659340B2 (en) 2016-01-28 2020-05-19 Oracle International Corporation System and method for supporting VM migration between subnets in a high performance computing environment
JP6192873B1 (ja) * 2016-03-31 2017-09-06 三菱電機株式会社 通信装置、通信システムおよび通信方法
JP6929863B2 (ja) 2016-08-23 2021-09-01 オラクル・インターナショナル・コーポレイション 高性能コンピューティング環境における高速ハイブリッド再構成をサポートするためのシステムおよび方法
WO2020117247A1 (en) * 2018-12-06 2020-06-11 Visa International Service Association Proximity device network
CN111586198B (zh) * 2020-04-28 2020-12-15 江苏科瑞德智控自动化科技有限公司 一种自组织的机器互联方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006186446A (ja) * 2004-12-27 2006-07-13 Hiroshima Industrial Promotion Organization 通信方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060007882A1 (en) * 2004-07-07 2006-01-12 Meshnetworks, Inc. System and method for selecting stable routes in wireless networks
JP4810437B2 (ja) 2004-12-21 2011-11-09 パナソニック株式会社 無線ノードの電源管理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006186446A (ja) * 2004-12-27 2006-07-13 Hiroshima Industrial Promotion Organization 通信方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HIROKAZU SHIBUYA ET AL.: "A Method of Cluster Mergence Considering Network Condition for Periodic Broadcasting VANET with Clustering", IEICE TECHNICAL REPORT, ITS2009-85, THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, March 2010 (2010-03-01) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015141020A1 (ja) * 2014-03-18 2015-09-24 富士通株式会社 無線通信システム、端末、及び、処理方法
JPWO2015141020A1 (ja) * 2014-03-18 2017-04-06 富士通株式会社 無線通信システム、端末、及び、処理方法
CN105900383A (zh) * 2014-11-21 2016-08-24 华为技术有限公司 通信***、控制节点和通信方法
CN105900383B (zh) * 2014-11-21 2019-05-24 华为技术有限公司 通信***、控制节点和通信方法

Also Published As

Publication number Publication date
JPWO2013171867A1 (ja) 2016-01-07
JP5928582B2 (ja) 2016-06-01
US20150023214A1 (en) 2015-01-22
US9450831B2 (en) 2016-09-20

Similar Documents

Publication Publication Date Title
JP5928582B2 (ja) ノード装置および通信方法
JP5928583B2 (ja) ノード装置および通信方法
JP4099185B2 (ja) 移動アドホクネットワークでの最適方向−基盤フラッディング方法
WO2017101575A1 (zh) 一种无线自组网的路由方法及装置
US8213352B2 (en) Wireless communication system, wireless communication device, wireless communication method, and program
JP5839041B2 (ja) ノード装置および通信方法
JP2018528726A (ja) 無線ピアツーピアネットワーク内のデバイス、無線通信システム及び制御方法
JP6264856B2 (ja) ノード装置、制御プログラム、無線通信システム、及びデータ通信方法
JP5673840B2 (ja) ノード装置および通信方法
JP2006325142A (ja) 無線端末およびその通信方法
US9374849B2 (en) Node and link formation method
Marinho et al. Mobile devices routing using Wi-Fi direct technology
JP5860135B2 (ja) 通信機器探索方法、通信機器、通信機器探索プログラムおよびアドホックネットワークシステム
Asgharian et al. Adaptive and distributed TDMA scheduling protocol for mobile ad hoc networks (MANET)
JP2011109412A (ja) ノード装置、アドホックネットワークシステムおよびネットワーク参加方法
JP4335945B2 (ja) アドホック・ネットワーク・システムおよびそのノード装置
JPWO2008114327A1 (ja) アドレス解決方法
JP2007173941A (ja) 無線通信端末、無線マルチホップネットワーク、転送制御方法、プログラム、記録媒体
Midha et al. Performance Analysis of AODV & OLSR for MANET
WO2023070629A1 (zh) 一种设备间的数据传输方法及装置
Noshin et al. An Effective Infrastructure for Pocket Switch Network
SAHU Disadvantage of AMRIS Protocol and its solution
Thakur et al. Ant colony optimization for load balancing and congestion control
Kenny Addressing Scalability in Mobile Ad hoc Networks
Suryavanshi et al. Improving Packet Transmission Rate of Ad hoc Network by Battery Power Awareness

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12876748

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014515417

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12876748

Country of ref document: EP

Kind code of ref document: A1