WO2012073315A1 - 無線通信装置および無線ネットワークにおける迂回経路探索方法 - Google Patents

無線通信装置および無線ネットワークにおける迂回経路探索方法 Download PDF

Info

Publication number
WO2012073315A1
WO2012073315A1 PCT/JP2010/071296 JP2010071296W WO2012073315A1 WO 2012073315 A1 WO2012073315 A1 WO 2012073315A1 JP 2010071296 W JP2010071296 W JP 2010071296W WO 2012073315 A1 WO2012073315 A1 WO 2012073315A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
wireless communication
search
adjacent
data
Prior art date
Application number
PCT/JP2010/071296
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 JP2012546597A priority Critical patent/JP5376068B2/ja
Priority to PCT/JP2010/071296 priority patent/WO2012073315A1/ja
Publication of WO2012073315A1 publication Critical patent/WO2012073315A1/ja
Priority to US13/865,537 priority patent/US9485676B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/04Arrangements for maintaining operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • 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/248Connectivity information update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/005Discovery of network devices, e.g. terminals
    • 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 wireless communication device used in a wireless network and a detour route searching method in the wireless network.
  • An ad hoc network has been put into practical use as one form of a network including a plurality of nodes.
  • autonomous route selection is performed at each node. That is, each node device (or communication device) of the ad hoc network has a function of operating as a router or a switch.
  • each node device can recognize the surrounding network configuration by transmitting and receiving messages and the like with adjacent node devices. Therefore, when an ad hoc (particularly, wireless ad hoc) method is employed, a desired network can be constructed simply by placing a node device in an environment where the network is to be constructed without providing a management device for managing the entire network. Furthermore, in an ad hoc network, it is easy to add or delete nodes, and the network configuration can be easily changed.
  • the network has a bypass route (or a redundant route or an alternative route) in order to continue communication even when a failure occurs.
  • the link may be temporarily disconnected depending on the radio wave environment, and it is important to confirm in advance the presence or absence of a detour path.
  • a node such as the node X that must be passed when data is transmitted to a specific destination may be referred to as a “bottleneck node”.
  • the node devices A to E cannot transmit data to the node GW. Even when the link between the nodes X and Y is disconnected, the node devices A to E cannot transmit data to the node GW. That is, the node devices A to E may be isolated from the node GW. Therefore, an operator who manages or operates the network is required to find a bottleneck node and appropriately provide a detour path.
  • a server computer for managing the network it is possible to collect the route information of all nodes and analyze the network topology.
  • the time required for collecting route information becomes long.
  • the state of the link between nodes is unstable. For this reason, if the time for collecting the route information is long, the topology obtained by the server computer (that is, the topology at the time when the route information is collected) may not match the actual topology.
  • the wireless communication device includes a receiving unit that receives a communication management signal, an evaluation unit that evaluates a communication state of the wireless communication device in a wireless network based on a history of reception of the communication management signal by the receiving unit, and a communication state by the evaluating unit A notification unit that performs notification according to the evaluation result.
  • a receiving unit that receives a communication management signal
  • an evaluation unit that evaluates a communication state of the wireless communication device in a wireless network based on a history of reception of the communication management signal by the receiving unit
  • a notification unit that performs notification according to the evaluation result.
  • JP 2009-147646 A Japanese Patent No. 4294723
  • An object of the present invention is to provide an apparatus or method for determining the presence or absence of a detour path for an arbitrary communication path in a wireless ad hoc network.
  • a wireless communication device is an adjacent device that is used in a wireless network including a plurality of wireless communication devices and is a wireless communication device adjacent to the own device among the plurality of wireless communication devices.
  • a storage unit that stores identification information for identifying a specific neighboring device that is a wireless communication device that transmits data to the final destination device, which is a wireless communication device that is a final destination, to the own device; and
  • a generation unit that generates search data including information representing a route search, a transmission unit that broadcasts the search data to the neighboring device, and data that includes information indicating that the search data does not reach the final destination device.
  • the detour route search method is used in a wireless network including a plurality of wireless communication devices.
  • the data is transmitted to an adjacent device that is a wireless communication device adjacent to the own device and to a final destination device that is a wireless communication device that is a final destination.
  • a specific neighboring device that is a wireless communication device to be transmitted to the own device is detected.
  • search data including information indicating a route search to the final destination device is generated.
  • the search data is broadcast from the search target wireless communication device to an adjacent device of the search target wireless communication device.
  • Each wireless communication device that has received the search data broadcasts the search data to neighboring devices.
  • the most upstream device for the final destination device broadcasts response data including information indicating that the search data does not reach the final destination device to neighboring devices.
  • Each wireless communication device that has received the response data broadcasts the response data to neighboring devices.
  • the search target wireless communication device receives the response data from all of the specific neighboring devices, it determines that there is no detour path from the specific neighboring device to the final destination device.
  • FIG. 2 is a diagram illustrating the configuration of the wireless network according to the embodiment.
  • the wireless network of the embodiment is an ad hoc network, and a plurality of wireless communication devices are connected.
  • each wireless communication device may be referred to as a “node device” or simply “node”.
  • the wireless network includes nodes n1 to n14.
  • the broken line connecting the nodes represents a wireless link.
  • the node n6 has radio links with the nodes n3, n5, n10, and n11. That is, radio waves (that is, radio signals) transmitted from the node n6 reach the nodes n3, n5, n10, and n11, and radio waves transmitted from the nodes n3, n5, n10, and n11 are transmitted to the node n6.
  • a pair of nodes connected to each other via a wireless link are “adjacent” to each other. That is, the nodes n3, n5, n10, and n11 are adjacent to the node n6. In other words, the nodes n3, n5, n10, and n11 are “adjacent nodes” of the node n6.
  • Each node broadcasts Hello packets periodically.
  • “broadcast” does not transmit a packet to all nodes, but means to transmit a packet to all adjacent nodes. Therefore, for example, the node n6 transmits a Hello packet to the nodes n3, n5, n10, and n11. At this time, each of the nodes n3, n5, n10, and n11 does not transfer the Hello packet received from the node n6 to other nodes.
  • the Hello packet is used to notify other nodes that the node exists. For example, when the node n6 broadcasts the Hello packet, the nodes n3, n5, n10, and n11 receive the Hello packet. Then, the node n3 recognizes that the node n6 exists as an adjacent node. Similarly, the nodes n5, n10, and n11 recognize that the node n6 exists as an adjacent node.
  • the Hello packet is transmitted from each node as described above. Therefore, for example, when the node n3 transmits a Hello packet, the nodes n1, n2, and n6 receive the Hello packet. At this time, each of the nodes n1, n2, and n6 recognizes that the node n3 exists as an adjacent node. In this way, each node recognizes a node adjacent to its own node.
  • FIG. 3 is a diagram illustrating a configuration of a node device (that is, a wireless communication device).
  • the node device 1 includes a communication unit 10, a storage unit 20, and a control unit 30.
  • the communication unit 10 includes an antenna, a transmitter, and a receiver, and provides a wireless interface.
  • the storage unit 20 is a semiconductor memory, for example, and is used by the control unit 30.
  • the storage unit 20 includes a nonvolatile memory.
  • the control unit 30 includes a CPU and controls the operation of the node device 1.
  • the node apparatus 1 may include an input interface for connecting an input device and / or an output interface for connecting an output device.
  • FIG. 4 is a block diagram illustrating functions of the node device. In FIG. 4, functions that are not directly related to the search for a detour route of the wireless network are omitted.
  • the storage unit 20 stores data processed by the control unit 30.
  • the storage unit 20 also stores a link table 21, a routing table 22, a state management table 23, a bottleneck determination flag storage unit 24, and a most upstream flag storage unit 25.
  • the link table 21 stores link information.
  • the link information represents the quality of the link between the own node and the adjacent node.
  • the link table 22 is updated by the link table update unit 31 when the node device receives a Hello packet.
  • the routing table 22 stores route information.
  • the route information represents a route for transmitting a packet to the destination node.
  • the route information represents the correspondence between the destination node of the packet and the adjacent node that relays the packet.
  • the routing table 22 is updated by the routing table update unit 32 when the node device receives a Hello packet.
  • the state management table 23 manages the state of the node device related to the search for a detour route. Each node device can hold any one state of “initial state”, “searching”, “no bypass route”, and “with bypass route”.
  • the bottleneck determination flag storage unit 24 stores a bottleneck determination flag. The bottleneck determination flag indicates whether the node device is “non-bottleneck node”, “single isolated”, “bottleneck candidate”, or “bottleneck node”.
  • the most upstream flag storage unit 25 stores the most upstream flag. The most upstream flag indicates whether or not the node device is located on the most upstream side with respect to the designated destination node.
  • the control unit 30 includes a link table update unit 31, a routing table update unit 32, a packet generation unit 33, a packet transmission unit 34, a determination unit 35, and a transfer unit 36.
  • the control unit 30 uses a processor to execute a program, whereby a link table update unit 31, a routing table update unit 32, a packet generation unit 33, a packet transmission unit 34, a determination unit 35, and a transfer unit. 36 is realized.
  • the program may be stored in advance in the nonvolatile memory of the storage unit 20.
  • the program may be provided to the node device 1 from a portable recording medium.
  • the portable recording medium is, for example, a semiconductor memory such as a CD-ROM, DVD, or USB memory. Further, the node device 1 may receive a program from the program server.
  • the link table update unit 31 updates the link information stored in the link table 21. Specifically, the link table update unit 31 updates the link information stored in the link table 21 based on the contents of the Hello packet received from the transfer unit 36.
  • the routing table update unit 32 updates the route information stored in the routing table 22. Specifically, the routing table update unit 32 updates the route information stored in the routing table 22 based on the contents of the Hello packet received from the transfer unit 36.
  • the packet generator 33 generates a Hello packet. At this time, the packet generation unit 33 can generate a Hello packet including information related to the detour route search generated by the determination unit 35.
  • the packet transmitter 34 transmits the Hello packet generated by the packet generator 33 to the adjacent node.
  • the determination unit 35 determines whether there is a detour route for transmitting data to the destination node based on the contents of the Hello packet received from the transfer unit 36. At this time, the determination unit 35 determines whether there is a detour route while referring to the state management table 23, the bottleneck determination flag storage unit 24, and the most upstream flag storage unit 25.
  • the transfer unit 36 receives a packet from an adjacent node.
  • the transfer unit 36 gives the Hello packet to the link table update unit 31, the routing table update unit 32, and the determination unit 35.
  • the transfer unit 36 refers to the routing table 22 and identifies an adjacent node corresponding to the destination of the data packet. Then, the transfer unit 36 transmits the received data packet to the specified adjacent node.
  • the state management table 23 is an example of a storage unit that stores identification information for identifying a specific neighboring device.
  • the packet generation unit 33 is an example of a generation unit that generates search data.
  • the packet transmission unit 34 is an example of a transmission unit that broadcasts search data to neighboring devices.
  • FIG. 5 is a diagram for explaining the evaluation value of the link. In FIG. 5, only some nodes (G, X, Y, Z, A) among many nodes included in the wireless network are illustrated.
  • Nodes G and X are adjacent to node Z, respectively.
  • Nodes X, Y, and Z are adjacent to node G, respectively.
  • Nodes G, Z, and A are adjacent to node X, respectively.
  • Nodes G and A are adjacent to node Y, respectively.
  • Nodes X and Y are adjacent to node A, respectively. Note that “adjacent” indicates that radio waves reach each other between nodes.
  • the link weight is an index representing the quality of radio links or communication costs between nodes.
  • the link weight of a good quality link is small, and the link weight of a bad quality link is large.
  • the link weight between nodes is calculated based on one set of link evaluation values. For example, the evaluation value of the link from the node G to the node Z is “9”, and the evaluation value of the link from the node Z to the node G is “11”.
  • the link weight between nodes is represented by the average of a set of link evaluation values. Therefore, the link weight between the nodes G and Z is “10”. Similarly, the link weight between the nodes X and Z is “100”. In other words, this case indicates that the link between the nodes G and Z is better in quality than the link between the nodes X and Z.
  • the quality (that is, evaluation value and link weight) of each link is detected by the following method, for example.
  • each node device repeatedly transmits a Hello packet at a predetermined cycle.
  • the time interval for receiving the Hello packet from the adjacent node in the node device should be substantially constant.
  • the link quality is poor, the time interval for receiving the Hello packet from the adjacent node in the node device increases. Therefore, each node device can detect the quality of the link based on the reception interval of the Hello packet.
  • the node G shown in FIG. 5 can detect the quality of the link from the node Z to the node G by monitoring the time interval for receiving the Hello packet from the node Z.
  • Each node device may detect the link quality by other methods. For example, the node device may detect the link quality based on the reception level (for example, received radio wave intensity) of the Hello packet transmitted from the adjacent node.
  • the reception level for example, received radio wave intensity
  • FIG. 6 shows an example of the link table 21.
  • FIG. 6 shows the link table 21 included in the node G shown in FIG.
  • link information about a link with an adjacent node is registered.
  • the link information includes “adjacent node”, “outward link evaluation value”, “return link evaluation value”, and “link weight”.
  • the “adjacent node” identifies the node to which the link is connected.
  • the “outward link evaluation value” represents the quality of the forward link for the adjacent node.
  • the “return link evaluation value” represents the quality of the return link for the adjacent node.
  • Link weight represents an average of “outward link evaluation value” and “return link evaluation value”.
  • the link information registered in the first record shown in FIG. 6 represents the following contents.
  • Adjacent node Z Outward link evaluation value (quality of link from node Z to node G): 11 Return link evaluation value (link quality from node G to node Z): 9 Link weight (quality of link between node G and node Z): 10
  • FIG. 7 shows an example of the routing table 22.
  • FIG. 7 shows the routing table 22 of the node A shown in FIG.
  • route information is registered for each destination node. Specifically, “global destination (GD)”, “local destination (LD)”, “route weight”, “link weight”, and “evaluation value” are registered in the routing table 22. “Global destination” identifies the destination node of the packet. The “global destination” may be referred to as a “final destination device”. “Local destination” represents an adjacent node located on a route for transmitting a packet to the destination node.
  • Route weight represents the communication cost of the route from “local destination” to “global destination”. Specifically, “route weight” represents the sum of the link weights of the links on the route from “local destination” to “global destination”. The “link weight” represents the link weight with the “local destination”. The “evaluation value” corresponds to the total communication cost related to the route to the global destination, and is calculated by, for example, the sum of “route weight” and “link weight”.
  • the first record represents route information of a route from the node A to the node Z via the node Y. That is, the “link weight” of the first record represents the “link weight” between the nodes A and Y.
  • the “path weight” of the first record represents the sum of the link weight between the nodes Y and G and the link weight between the nodes G and Z.
  • the “evaluation value” of the first record represents the quality (communication cost) of the route from node A to node Z via node Y and node G.
  • the second record represents route information of a route from the node A to the node Z via the node X.
  • the “link weight” of the second record represents the “link weight” between the nodes A and X.
  • the “path weight” of the second record represents the sum of the link weight between the nodes X and G and the link weight between the nodes G and Z.
  • the “evaluation value” of the second record represents the quality of the route from the node A to the node Z via the node X and the node G.
  • the node device A uses a route via the local destination node Y (hereinafter, route Y) and a local destination node as a route for transmitting the data packet to the node Z.
  • route X A route via X (hereinafter, route X) is included.
  • the transfer unit 36 of the node device A selects a route having the smallest evaluation value from among the routes whose global destination is the node Z. .
  • the evaluation value of the route Y is 21 and the evaluation value of the route X is 24. Therefore, in this case, the transfer unit 36 selects the route Y. That is, the transfer unit 36 selects the node Y as the optimal local destination.
  • each node device searches the routing table 22 based on the “global destination” of the received packet, and selects an optimum local destination node. Thereby, in the ad hoc network of the embodiment, the data packet is transferred to the global destination via the optimum route.
  • FIG. 8 is a diagram showing the format of a Hello packet.
  • the Hello packet 51 includes an ad hoc header, a global destination (GD), a local destination (LD), a forward link evaluation value, an evaluation value, a search target node, and a node state.
  • the ad hoc header stores information necessary for transmitting a packet in the ad hoc network. Note that the ad hoc header may include information for identifying the transmission source node of the Hello packet.
  • the global destination, the local destination, and the evaluation value are extracted from the corresponding entries registered in the routing table illustrated in FIG.
  • the route information of the optimum route (that is, the route with the smallest evaluation value) is Hello.
  • the forward link evaluation value represents the quality of the forward link for the adjacent node.
  • the search target node identifies a node that is a target of determination as to whether or not it is a bottleneck node.
  • the node state represents any one of “initial state”, “searching”, “no bypass route”, and “with bypass route”.
  • Each node device periodically broadcasts Hello packets to adjacent nodes. That is, each node device exchanges information stored in the routing table 22 with adjacent nodes. Each node device then creates and updates the link table 21 and the routing table 22 based on the contents of the Hello packet received from the adjacent node. In addition, each node device notifies the adjacent node of the search target node and the node state using the Hello packet.
  • FIG. 9 is a flowchart showing an outline of the detour route searching method of the embodiment. The procedure of the flowchart shown in FIG. 9 is executed by each wireless communication device in the ad hoc network.
  • step S1 the wireless communication device determines whether or not the current time is a bottleneck determination time.
  • the bottleneck determination time is specified by, for example, an operator who manages or operates the network, and is set in the wireless communication device.
  • the wireless communication device executes a bottleneck candidate determination process in step S2. That is, the wireless communication device determines whether or not it is a bottleneck candidate.
  • a node device that may be a bottleneck node in an ad hoc network is referred to as a “bottleneck candidate”.
  • step S3 the wireless communication device executes a bypass route search process.
  • the detour route search process it is determined whether the bottleneck candidate is a bottleneck node.
  • the detour route search process is continuously or repeatedly executed by each wireless communication device.
  • bottleneck candidates are extracted from a large number of wireless communication devices. Then, a detour route search process is performed on the extracted bottleneck candidates. Therefore, according to the detour route search method of the embodiment, a bottleneck node can be efficiently found in an ad hoc network.
  • Each node device determines whether it is a bottleneck candidate.
  • the node device determines a bottleneck candidate by the following first to third methods.
  • FIG. 10 is a diagram for explaining the first and second methods of the bottleneck candidate determination process.
  • the ad hoc network shown in FIG. 10 includes nodes A to F, X, Y, and GW.
  • a solid line connecting the nodes represents a wireless link. That is, the node X is adjacent to the node Y. Nodes A, B, C, and Y are adjacent to node X. Nodes B, D, and X are adjacent to node A. Nodes A, C, D, E, and X are adjacent to node B. Nodes B, E, and X are adjacent to node C. Nodes A and B are adjacent to node D. Nodes B, C, and F are adjacent to node E. Node E is adjacent to node F. Note that the node Y may be adjacent to the node GW or may not be adjacent to the node GW. However, it is assumed that one or more communication paths exist between the node Y and the node GW.
  • each node device periodically broadcasts a Hello packet to an adjacent node. Therefore, each node device receives a Hello packet from one or more adjacent nodes. Then, each node device creates and updates the routing table 22 based on the contents of the Hello packet received from the adjacent node. As a result, the node devices A to F and X are provided with routing tables 22A to 22F and 22X, respectively.
  • each of the node devices A to F and X transmits data to the node GW. That is, the global destination of each of the node devices A to F, X is the node GW.
  • the node device GW is, for example, a gateway device that collects data from the nodes A to F and X.
  • the gateway device is connected to, for example, a server computer outside the ad hoc network, and transmits data collected from the nodes A to F and X to the server computer.
  • the gateway device does not transmit a Hello packet used in the ad hoc network to the outside of the ad hoc network.
  • each node device determines that it is a bottleneck candidate when the following condition A is satisfied.
  • Condition A There is only one local destination for the global destination.
  • the routing table 22A of the node device A there are two routes for the “global destination GD: node GW” (the route whose local destination is the node X and the local destination).
  • node GW the route whose destination is the node B
  • the node device A can transmit data to the node GW via the node B. Therefore, in this case, the node device A determines that itself (that is, the node A) is not a bottleneck candidate.
  • the node device X determines that itself (that is, the node X) is a bottleneck candidate.
  • the node device F determines that itself (that is, the node F) is a bottleneck candidate.
  • each node device determines that it is a bottleneck candidate when the following conditions A and B are satisfied.
  • Condition A Only one local destination for the global destination
  • Condition B Having a plurality of adjacent nodes
  • the node device X and the node device F satisfy the condition A. Therefore, the condition B is examined for the node device X and the node device F.
  • Node device F has only one adjacent node. For this reason, even if the node device F fails, there is no node that cannot transmit data to the node GW due to the failure. That is, even if a node satisfies the condition A, it is not highly necessary to investigate whether or not a node that does not satisfy the condition B is a bottleneck node. Therefore, in the second method, the node device F determines that itself (that is, the node F) is not a bottleneck candidate. However, the node device F determines that itself (that is, the node F) is “single isolated”.
  • the node device X has four adjacent nodes (Y, A, B, C) and satisfies the condition B.
  • the node Y is the local destination LD in data transmission to the node GW.
  • the node device X receives data addressed to the node GW from the adjacent nodes A, B, and C, the node device X transmits the data to the node Y.
  • the node device X fails, a large number of nodes including the nodes A to C may not be able to transmit data to the node GW. Therefore, it is preferable to investigate whether or not the node satisfying the condition A and the condition B is a bottleneck node. That is, in the second method, the node device X determines that itself (that is, the node X) is a bottleneck candidate.
  • each node device determines that it is a bottleneck candidate when the following conditions A and C are satisfied.
  • Condition A There is only one local destination for the global destination.
  • Condition C The local destination for the global destination is selected by all adjacent nodes other than the node selected as the local destination for the global destination.
  • the node device X executes the bottleneck candidate determination process in the ad hoc network illustrated in FIG. 11 .
  • the nodes A to E, X, Y, and GW shown in FIG. 11 are substantially the same as the corresponding nodes described with reference to FIG.
  • the node device X has four adjacent nodes (A, B, C, Y) as shown in FIG.
  • “local destination LD: node Y” is registered for “global destination GD: node GW”. That is, when the node device X generates or receives data whose global destination is the node GW, the node device X transmits the data to the adjacent node Y.
  • Node device X determines whether or not itself (that is, node X) is a bottleneck candidate based on Hello packets received from nodes A, B, C, and Y, respectively. At this time, each of the node devices A, B, C, and Y broadcasts a Hello packet including route information.
  • the node device A includes a routing table 22A.
  • the routing table 22A two routes (a route where the local destination is the node X and a route where the local destination is the node B) are registered for “global destination GD: node GW”.
  • the route whose local destination is the node X has a smaller evaluation value.
  • the node device A selects a route whose local destination is the node X as the optimum route to the node GW. That is, the route information of the routing table 22A represents “when the node device A generates or receives data whose global destination is the node GW, the data is transmitted to the adjacent node X”.
  • the node device A notifies the adjacent node of route information for sending data to the node GW using the Hello packet.
  • the Hello packet 41A transmitted from the node device A reaches the adjacent node X (and nodes B and D).
  • the node devices B, C, and Y broadcast Hello packets 41B, 41C, and 41Y, respectively.
  • the Hello packets 41B, 41C, and 41Y each include the following route information.
  • Node X is selected as the local destination LD for. That is, the node device X also satisfies the condition C. Therefore, the node device X determines that itself (that is, the node X) is a bottleneck candidate in data transmission to the node GW.
  • the node devices A to C each select the node X as the local destination in the data transmission to the node GW, the node device X satisfies the condition C. Therefore, when the node device X satisfies the condition C, if the node device X fails, there is a high possibility that a large number of nodes including the nodes A to C cannot transmit data to the node GW. Therefore, it is preferable to investigate whether or not nodes satisfying conditions A and C are bottleneck nodes.
  • ⁇ Bypass route search process> As described above, in the detour route search method of the embodiment, bottleneck candidates are extracted in the ad hoc network. Then, a detour route search process is performed on the extracted bottleneck candidates. At this time, the detour route search process is executed using the state management table 23 provided in each node device.
  • FIG. 12 shows an example of the state management table 23.
  • FIG. 12 shows the state management table 23 created in the node device X shown in FIG. 10 or FIG.
  • the state management table 23 manages “local destination”, “search target node”, “adjacent node”, and “state” for each global destination.
  • “local destination”, “search target node”, “adjacent node”, and “state” are registered for “global destination GD: node GW”.
  • the adjacent node selected as the optimum route for the global destination is registered.
  • a local destination corresponding to the global destination is detected from the routing table 22.
  • nodes that are determined whether or not they are bottleneck nodes (that is, bottleneck candidates) are registered.
  • an adjacent node whose state is to be managed is registered.
  • each node device also manages its own state. Therefore, the node registered as “adjacent node” in the state management table 23 includes not only the adjacent node but also its own node.
  • the “adjacent node” may not include the local destination node for the global destination.
  • FIG. 13 is a diagram showing state transition of the node device. Each node device operates in one of the four states shown in FIG.
  • the “initial state” represents a state where the node device is not involved in the detour route search.
  • Searching represents a state in which the node device is performing a bypass route search.
  • No bypass route represents a state in which a route that does not pass through the bottleneck candidate (that is, a bypass route) is not found in data transmission from the node device to the global destination.
  • “With detour route” represents a state where a route that does not pass through a bottleneck candidate (ie, a detour route) has been found in data transmission from the node device to the global destination.
  • the detour route search process is an example of the detour route search process.
  • the node GW is a global destination in the ad hoc network illustrated in FIG.
  • node X is a bottleneck candidate.
  • the node devices A to E and X have routing tables 22A to 22E and 22X, respectively.
  • Each node device selects an adjacent node with the smallest link evaluation value as a local destination in data transmission to the global destination. For example, the node devices A, B, and C select “node X” as the local destination in the data transmission to the node GW. That is, the node X is selected as the local destination by the node devices A, B, and C.
  • the node device D selects “node A” as the local destination in the data transmission to the node GW, that is, the node A is selected as the local destination by the node device D.
  • the node device E Selects “Node B” as a local destination in data transmission to the node GW. That is, the node B is selected as a local destination by the node device E.
  • Nodes D, C, and E are not selected as local destinations by other neighboring nodes. For this reason, the node devices D, C, and E do not “relay” data transmitted from other nodes in data transmission to the node GW. That is, a node that is not selected as a local destination by the adjacent node device is located at the “upstream” in data transmission to the global destination. Therefore, hereinafter, a node that is not selected as a local destination by the adjacent node device may be referred to as a “most upstream node”. In the example illustrated in FIG. 14, the nodes D, C, and E are the most upstream nodes in data transmission to the node GW.
  • FIG. 15 is a diagram showing a state at the start of the detour route search process.
  • the search target node that is, node X
  • the bottleneck candidate described above, and is represented by a double circle.
  • the most upstream node that is, nodes D, C, E
  • the node device X includes a state management table 23X.
  • “X” at the left end identifies a search target node.
  • the state management table 23X manages the states of the nodes X, A, B, and C. That is, the node device X manages its own state and the state of adjacent nodes (that is, nodes A, B, and C) that select the node X as a local destination.
  • the node X is a search target node (that is, a bottleneck candidate). Therefore, in the state management table 23X, the state of the node X is set to “1: searching”.
  • FIGS an embodiment of the detour route search process will be described with reference to FIGS.
  • the node device X transmits a Hello packet including search information to an adjacent node.
  • the search information includes information for identifying a search target node and information indicating a node state.
  • the search target node is the node X
  • the state of the node X is “1: searching”. Therefore, the node device X transmits a Hello packet 51X including the search information “X, 1”.
  • “X, 1” represents “search target node: node X” and “node state: 1”.
  • a Hello packet including “X, 1” may be referred to as a Hello packet “X, 1”.
  • the Hello packet (X, 1) is an example of search data including information indicating a route search to the final destination device.
  • the Hello packet “X, 1” transmitted from the node X is received by each of the adjacent nodes A to C, Y. Then, when receiving the Hello packet “X, 1”, the node devices A to C create or update the state management tables 23A to 23C as shown in FIG.
  • Node A is not the most upstream node. Accordingly, the state management table 23A of the node A manages the state of the node D that selects the node A and the node A as local destinations. Upon receiving the Hello packet “X, 1”, the node device A updates the state of the node A from “0: initial state” to “1: searching” in the state management table 23A. The operation of the node device B when receiving the Hello packet “X, 1” from the node X is substantially the same as that of the node A.
  • Node C is the most upstream node as described above. Therefore, the state management table 23C of the node C manages the states of the node C and the adjacent nodes X, B, and E.
  • the node device C receives the Hello packet “X, 1” from the node X
  • the node device C updates the state of the node C from “0” to “1” and is the transmission source of the Hello packet “X, 1”.
  • the state of the node X is also updated from “0” to “1”.
  • the node device Y also receives the Hello packet “X, 1” from the node X. However, the node Y is selected as a local destination by the node X that is the search target node. In this case, the node device Y ignores the Hello packet “X, 1” received from the node X. Therefore, in the following description, description of the operation of the node Y is omitted.
  • each of the node apparatuses A to C transmits a Hello packet including search information to an adjacent node.
  • the state of the node A is updated to “1: Searching”.
  • the search target node does not change. Therefore, the node device A transmits the Hello packet “X, 1” to the adjacent node.
  • the node devices B and C also transmit Hello packets “X, 1” to adjacent nodes, respectively. Since each node device operates autonomously, the node devices A to C transmit the Hello packet “X, 1” at a timing independent from each other.
  • Node apparatus D receives Hello packets “X, 1” from node A and node B, respectively, as shown in FIG.
  • the node D is the most upstream node as described above. Therefore, the state management table 23D of the node D manages the states of the node D and the adjacent nodes A and B as shown in FIG.
  • the node device D receives the Hello packet “X, 1” from the node A
  • the node device D updates the state of itself (that is, the node D) from “0” to “1”, and the Hello packet “X, 1”.
  • the state of the node A that is the transmission source of “ is also updated from“ 0 ”to“ 1 ”.
  • the state of the node B that is the transmission source of the Hello packet “X, 1” is also updated from “0” to “1”.
  • the states of all the nodes managed by the state management table 23D that is, the nodes D, A, and B
  • the states of all the nodes managed by the state management table 23E are “ 1 ”.
  • the node device C receives the Hello packets “X, 1” from the nodes X, B, E, respectively, all the nodes managed by the state management table 23C (that is, the nodes C, X, B, E). The state becomes “1”.
  • the state management table 23C that is, the nodes C, X, B, E.
  • node D receives Hello packets “X, 1” from nodes A and B
  • node E receives Hello packets “X, 1” from nodes B and C, respectively
  • node C receives nodes A state after receiving Hello packets “X, 1” from X, B, E respectively is shown.
  • the node device D When the state of all nodes managed by the state management table 23D becomes “1”, the node device D that is the most upstream node changes its own state (ie, node D) to “1” as shown in FIG. :: Searching ”to“ 2: No detour route ”. Then, as illustrated in FIG. 20, the node device D transmits a Hello packet including the search information “X, 2” to the adjacent node.
  • “X, 2” represents “search target node: node X” and “node state: 2”.
  • a Hello packet including “X, 2” may be referred to as a Hello packet “X, 2”.
  • the node devices E and C similarly to the node device D, the node devices E and C also transmit Hello packets “X and 2” to the adjacent nodes, respectively.
  • the Hello packet “X, 2” is generated when the most upstream node receives the Hello packet “X, 1” from all adjacent nodes.
  • the state in which the most upstream node receives the Hello packet “X, 1” from all adjacent nodes is that the Hello packet “X, 1” first generated by the search target node (that is, the node X) is the highest. It means that the data is not transferred before the upstream node. That is, this state represents that the Hello packet “X, 1” transmitted from the search target node cannot reach the global destination via the most upstream node. Therefore, the Hello packet “X, 2” substantially represents “there is no detour route for transmitting data to the global destination”. That is, the Hello packet “X, 2” is an example of data (or response data) including information indicating that the Hello packet “X, 1” does not reach the final destination device.
  • Node devices D, E, and C located on the most upstream side with respect to the node GW respectively transmit Hello packets “X and 2” to corresponding neighboring nodes as shown in FIG.
  • the state management table 23 changes the state of the transmission source node of the received Hello packet “X, 2” from “1: Searching” to “2: Detour route”. Update to None.
  • the node device A updates the state of the node D from “1” to “2” in the state management table 23A.
  • the node device B updates the state of the node E from “1” to “2” in the state management table 23B.
  • the node device When the node device (except the most upstream node) receives the Hello packet “X, 2” from all adjacent nodes that select itself as the local destination, the node device updates its state to “2” in the state management table 23. .
  • the state of the node A is updated to “2”. That is, when the state of all adjacent nodes managed by the state management table 23A becomes “2”, the node device A updates its own state (ie, node A) to “2”.
  • the state management table 23B To update the state of the node B to “2”.
  • Node device A transmits a Hello packet “X, 2” to an adjacent node as shown in FIG. 21 when the state of itself (ie, node A) becomes “2”. Similarly, when the state of itself (that is, the node B) becomes “2”, the node device B transmits the Hello packet “X, 2” to the adjacent node.
  • Node device X receives Hello packets “X, 2” from nodes A, B, and C, respectively, as shown in FIGS. Then, in the state management table 23X of the node X, the states of the nodes A, B, and C are each updated to “2”, and the state of the node X is also updated to “2”.
  • the node device X When the node device X, which is a bottleneck candidate, receives Hello packets “X, 2” from all nodes that select the node X as a local destination, there is no detour route for data transmission to the global destination GW. judge. That is, when the node device X receives the Hello packets “X, 2” from the nodes A, B, and C, there is no detour route for transmitting data to the node GW in addition to the route via the node Y. judge. Then, the node device X notifies the node device GW of information indicating that the node X is a bottleneck in the data transmission to the node GW and there is no detour path.
  • the notification method is not particularly limited, and any data format may be used.
  • the node device X sends a Hello packet “X, 0” to the adjacent node after notifying the node GW that there is no detour route.
  • “X, 0” represents “search target node: node X” and “node state: 0 (initial state)”. That is, the Hello packet “X, 0” instructs each node device to initialize the state management table 23.
  • Each node device that has received the Hello packet “X, 0” updates the state corresponding to the search target node X to “0” in the state management table 23 and also sends the Hello packet “X, 0” to the corresponding adjacent node. Send.
  • Each node device deletes information corresponding to the search target node X in the state management table 23 after a predetermined search information holding time has elapsed since the transmission of the Hello packet “X, 0”.
  • the search information holding time is, for example, a period from when the node device transmits the first Hello packet “X, 1” to when it receives the last Hello packet “X, 2”.
  • the search information holding time may be a length obtained by adding a predetermined margin to the period.
  • a detour route exists in transmission to the node GW.
  • the node H is adjacent to the node C, and a path that does not pass through the node X (hereinafter referred to as a bypass path H) exists between the node H and the node GW. .
  • the node device H receives the Hello packet “X, 1” from the node C. Then, the node device H updates the state management table 23 and transmits the Hello packet “X, 1” to the adjacent node.
  • the node device H there is a detour path H between the node H and the node GW. For this reason, the Hello packet “X, 1” transmitted from the node H is propagated via the detour path H and reaches the node GW.
  • the node devices A to E transmit and receive the Hello packet “X, 1” or the Hello packet “X, 2”.
  • the node device GW When the node device GW performs the Hello packet “X, 1” via the detour route H, the node device GW receives the Hello packet “X, 1” to the search target node (that is, the node X) as illustrated in FIG. Information indicating this is notified. That is, the node device GW notifies the node X of information indicating that a detour route exists.
  • the notification method is not particularly limited, and any data format may be used.
  • the node device X When the node device X receives information indicating that a bypass route exists from the node GW, as shown in FIG. 23, the node device X sets its own (ie, node X) state to “3: bypass route”. Update to In addition, the node device X transmits the Hello packet “X, 3” to the adjacent node.
  • “X, 3” represents “search target node: node X” and “node state: 3”.
  • Each node device that has received the Hello packet “X, 3” updates the “state” corresponding to the search target node X to “3” in the state management table 23 and also transmits the Hello packet “X, 3” to the adjacent node. Send to. Further, each node device deletes the search information corresponding to the search target node X in the state management table 23 after the search information holding time has elapsed since the transmission of the Hello packet “X, 3”.
  • each node device may transmit a Hello packet to which no search information is assigned.
  • the Hello packet has a format in which “search target node” and “node state” are deleted in FIG.
  • each node device operates autonomously. For this reason, the order in which the node apparatus receives the Hello packet “X, 1”, the Hello packet “X, 2”, the Hello packet “X, 3”, and the Hello packet “X, 0” is not necessarily the same.
  • the node device X may determine that “no detour path exists” before the node GW receives the Hello packet “X, 1”.
  • the node device X gives priority to the notification from the node GW over the determination based on the Hello packet “X, 2”, and determines that there is a bypass route in data transmission to the node GW. Therefore, according to the detour route search method of the embodiment, the presence or absence of a detour route can be accurately determined.
  • ⁇ Flowchart> 24 to 25 are flowcharts showing bottleneck candidate determination processing.
  • the bottleneck candidate determination process is executed by the determination unit 35 in each node device.
  • the bottleneck candidate determination process includes a process for creating the state management table 23 and a process for determining whether or not the node is the most upstream node. Further, the bottleneck candidate determination process is periodically executed as shown in FIG. 9, for example.
  • step S11 the determination unit 35 initializes a bottleneck determination flag.
  • the initial value of the bottleneck determination flag is “0: non-bottleneck”.
  • the bottleneck determination flag is stored in the bottleneck determination flag storage unit 24.
  • the bottleneck determination flag can be updated to “1: isolated alone”, “2: bottleneck candidate”, and “3: bottleneck confirmation”.
  • step S12 the determination unit 35 initializes the most upstream flag.
  • the initial value of the most upstream flag is “1: most upstream”.
  • the most upstream flag is stored in the most upstream flag storage unit 25.
  • the most upstream flag is set for each global destination GD.
  • step S13 the determination unit 35 creates the state management table 23.
  • the adjacent node is not entered in the state management table 23.
  • the state management table 23 shown in FIG. 26A “global destination: GW”, “local destination: Y”, and “search target node: X” are registered.
  • the own node that is, node X
  • the “adjacent node” field only the own node (that is, node X) is registered in the “adjacent node” field.
  • step S14 the determination unit 35 starts a timer TT that counts a period for registering an adjacent node in the state management table 23.
  • the period for which the timer TT counts is not particularly limited, for example, it is assumed to be sufficiently long with respect to the interval at which each node device transmits a Hello packet.
  • the determination unit 35 registers adjacent nodes in the state management table 23 in steps S21 to S28 until the timer TT expires. At this time, the determination unit 35 may register only the adjacent node that selects the local node as the local destination in the state management table 23. The determination unit 35 also determines whether the node device is the most upstream node with respect to the global destination GD.
  • step S21 the determination unit 35 waits for a Hello packet transmitted from the adjacent node.
  • Each node device broadcasts a Hello packet periodically.
  • the determination unit 35 compares the global destination GD set in the state management table 23 with the global destination GD set in the header of the Hello packet in Step S22. If these two global destinations GD match, the process of the determination unit 35 proceeds to step S23. On the other hand, when these two global destinations GD do not match, the determination unit 35 returns to step S21 and waits for the next Hello packet.
  • step S23 the determination unit 35 checks whether or not the transmission source node of the Hello packet has already been registered for the global destination GD in the state management table 23. If the transmission source node of the Hello packet is not yet registered in the state management table 23, the process of the determination unit 35 proceeds to step S24. On the other hand, if the transmission source node of the Hello packet is already registered in the state management table 23, steps S24 to S26 are skipped.
  • step S24 the determination unit 35 checks whether or not the optimum local destination LD for the global destination GD set in the header of the Hello packet is the local node. That is, the determination unit 35 checks whether or not the transmission source node of the Hello packet selects its own node as the local destination LD when transmitting data to the global destination GD. If the local destination LD is the local node, the process of the determination unit 35 proceeds to step S25. On the other hand, if the local destination LD is not its own node, steps S25 to S26 are skipped.
  • an adjacent node that selects its own node that is, a node device including the determination unit 35
  • a specific adjacent node is there.
  • step S25 the determination unit 35 sets the most upstream flag corresponding to the global destination GD to “0: non-most upstream”. At this time, if the most upstream flag stored in the most upstream flag storage unit 25 is “1”, the determination unit 35 updates the most upstream flag from “1” to “0”.
  • step S ⁇ b> 26 the determination unit 35 adds the transmission source node of the Hello packet to the entry corresponding to the global destination GD in the state management table 23.
  • Step S27 is provided in order to execute the processing of steps S22 to S26 for each global destination GD when the path information for a plurality of global destinations GD is stored in the Hello packet.
  • the process of the determination unit 35 proceeds to step S29.
  • the specific adjacent node is registered in the state management table 23.
  • the method for creating the state management table 23 is not limited to this.
  • the determination unit 35 may register all adjacent nodes including the specific adjacent node in the state management table 23.
  • the determination unit 35 registers each adjacent node in the state management table 23 so that the specific adjacent node and other adjacent nodes can be identified.
  • the determination unit 35 determines whether or not the own node is the most upstream node with respect to the global destination GD in steps S21 to S28. At this time, in the process of receiving the Hello packet from each adjacent node, the determination unit 35 executes Step S25 if at least one adjacent node is a specific adjacent node. That is, when there is one or more adjacent nodes that select the local node as the local destination LD in data transmission to the global destination GD, it is determined that the local node is not the most upstream node. In other words, when there is no adjacent node that selects the local node as the local destination LD in data transmission to the global destination GD, the determination unit 35 determines the local node as the most upstream node.
  • step S29 the determination unit 35 checks whether or not the own node is the most upstream node. At this time, the determination unit 35 refers to the most upstream flag stored in the most upstream flag storage unit 25. If the own node is the most upstream node, the determination unit 35 executes Step S30. In step S ⁇ b> 30, the determination unit 35 refers to the link table 21, and if there is an adjacent node that is not registered in the state management table 23, adds the unregistered adjacent node to the state management table 23. On the other hand, if the node is not the most upstream node, step S30 is skipped.
  • steps S29 to S30 all adjacent nodes are registered in the state management table 23 of the most upstream node.
  • steps S29 to S30 need not be executed.
  • step S31 the determination unit 35 checks whether or not only one local destination LD is registered for the global destination GD to be searched in the routing table 22. If a plurality of corresponding local destinations LD are registered in the routing table 22, the process of the determination unit 35 ends. In this case, the bottleneck determination flag remains “0: non-bottleneck” without being updated. That is, if a plurality of local destinations LD corresponding to the global destination GD are registered in the routing table 22, the determination unit 35 determines that a detour route exists for the global destination GD.
  • the determination unit 35 checks whether or not there are two or more adjacent nodes in step S32. If there are two or more adjacent nodes, the determination unit 35 updates the bottleneck determination flag to “2: bottleneck candidates” in step S33. That is, when there is only one local destination LD for the global destination GD and there are a plurality of adjacent nodes, the determination unit 35 determines that the node is a bottleneck candidate. On the other hand, when there is only one adjacent node, the determination unit 35 updates the bottleneck determination flag to “1: isolated” in step S34.
  • the node X is designated as a local destination by the nodes A, B, and C in data transmission to the node GW. Therefore, when the determination unit 35 of the node X receives the Hello packet from each adjacent node, the node A, B, and C are added to the state management table 23 in step S26.
  • FIG. 26B shows a state in which nodes A, B, and C are added to the state management table 23 of the node X. At this time, the nodes A, B, and C are registered in the state management table 23 as specific adjacent nodes.
  • the determination unit 35 since there is an adjacent node that designates the node X as a local destination in data transmission to the node GW, the determination unit 35 updates the most upstream flag to “0” in step S25. That is, it is determined that the node X is not the most upstream node in data transmission to the node GW.
  • step S31 is determined as “Yes”.
  • step S32 is determined as “Yes”. Accordingly, the determination unit 35 updates the bottleneck determination flag to “2” in step S33. That is, the node X is determined to be a bottleneck candidate.
  • node A is designated as a local destination by node D in data transmission to node GW. Therefore, the determination unit 35 of the node A updates the most upstream flag to “0” in step S25. That is, the node A is also determined not to be the most upstream node in data transmission to the node GW.
  • step S31 is determined as “No”. That is, since the determination unit 35 of the node A does not execute steps S32 to S34, the node A is determined to be a non-bottleneck.
  • node D is not designated as a local destination in data transmission to the node GW by any node. Therefore, step S25 is not executed in node D, and the most upstream flag remains “1”. That is, the node D is determined to be the most upstream node with respect to the node GW.
  • the routing table 22D of the node D two local destinations LD are registered for “global destination GD: node GW”. Therefore, the node D is determined as a non-bottleneck.
  • Node F is adjacent only to node E, as shown in FIG.
  • the routing table 22F of the node F only one local destination LD is registered for “global destination GD: node GW”. For this reason, step S31 is determined as “Yes”. Further, since the node F has only one adjacent node, step S32 is determined as “No”. Therefore, the determination unit 35 of the node F updates the bottleneck determination flag to “1”. That is, the node F is determined to be an isolated node.
  • the detour route search process is executed by the determination unit 35 in each node device. However, a part of the detour route search process is executed by the packet generator 33 and the packet transmitter 34. Further, for example, as shown in FIG. 9, the detour route search process is continuously or repeatedly executed during the operation of the ad hoc network.
  • ID is information for identifying a search target node, and specifically, identifies a bottleneck candidate node. Further, when the ad hoc network is performing a bypass route search, each node device periodically broadcasts a Hello packet including search information to adjacent nodes. The search information corresponds to “search target node” and “node state” shown in FIG. Note that “search target node” and “node state” are represented by “ID” and “STAT” in FIGS. 27 to 29, respectively.
  • the determination unit 35 detects the value of the bottleneck determination flag.
  • the bottleneck determination flag is determined in the flowcharts shown in FIGS. 24 to 25 and stored in the bottleneck determination flag storage unit 24.
  • the determination unit 35 updates the state of the own node to “1: searching” in step S44. That is, the node device determined to be a bottleneck candidate starts a detour route search process for itself as a search target.
  • step S45 the determination unit 35 waits for a Hello packet.
  • Each node device on the ad hoc network periodically transmits a Hello packet to an adjacent node.
  • the Hello packet includes information (GD) indicating the global destination, information (ID) identifying the target node for the detour route search, and information (STAT) indicating the state of the node device.
  • the process of the determination part 35 transfers to step S46.
  • the process of the determination unit 35 proceeds to Step S61.
  • step S46 the determination unit 35 updates the state management table 23 based on the content of the received Hello packet.
  • steps S51 to S58 and steps S61 to S66 are executed for each search target node. That is, when there are a plurality of bottleneck candidates on the ad hoc network, the processes of steps S51 to S58 and steps S61 to S66 are executed for each bottleneck candidate.
  • step S51 the determination unit 35 checks whether or not the state of the own node is “2”. If the state of the node device is not “2”, the process of the determination unit 35 proceeds to step S52. On the other hand, if the state of the node device is “2”, steps S52 to S58 are skipped, and the process of the determination unit 35 proceeds to step S71. That is, when the state of the node device has already been determined as “no bypass route”, steps S52 to S58 are not executed.
  • step S52 the determination unit 35 checks whether or not the states of all the specific adjacent nodes registered in the state management table 23 are “2”. If the states of all the specific adjacent nodes are “2”, the process of the determination unit 35 proceeds to step S55. On the other hand, when there is a specific adjacent node whose state is not “2”, the process of the determination unit 35 proceeds to step S53.
  • step S53 the determination unit 35 checks whether or not the most upstream flag corresponding to the global destination related to the detour route search is “1”. That is, the determination unit 35 checks whether or not the own node is the most upstream node with respect to the global destination GD. Here, the most upstream flag is stored in the most upstream flag storage unit 25. If the most upstream flag is “1”, the process of the determination unit 35 proceeds to step S54. On the other hand, if the most upstream flag is not “1”, the process of the determination unit 35 proceeds to step S62.
  • step S54 the determination unit 35 checks whether or not the states of all adjacent nodes registered in the state management table 23 are “1”. If the states of all adjacent nodes are “1”, the process of the determination unit 35 proceeds to step S55. On the other hand, when there is an adjacent node whose state is not “1”, the process of the determination unit 35 proceeds to step S62.
  • step S55 the determination unit 35 updates the state of the own node to “2: no detour route”. That is, in the most upstream node, the determination unit 35 updates the state of its own node to “2” if the state of all adjacent nodes registered in the state management table 23 is “1”. On the other hand, in the nodes other than the most upstream node, the determination unit 35 sets the status of its own node to “2” if the status of all the specific adjacent nodes registered in the status management table 23 is “2”. Update to
  • step S56 the determination unit 35 checks whether or not the bottleneck determination flag is “2”. If the bottleneck determination flag is “2”, the determination unit 35 updates the bottleneck determination flag from “2” to “3: bottleneck confirmation” in step S57. That is, the determination unit 35 determines that the own node is a bottleneck. Further, in step S58, the determination unit 35 notifies the global destination (here, the node GW) that there is no detour path in the data transmission to the global destination. As described above, when the node device that is a bottleneck candidate determines that the node is a bottleneck, the node device notifies the global destination node that there is no detour path.
  • the global destination here, the node GW
  • Step S61 is executed when a Hello packet is not received in Step S45.
  • the determination unit 35 checks whether or not the state of the own node is “2”. If the state of the node device is not “2”, the process of the determination unit 35 proceeds to step S62. If the state of the node device is “2”, steps S62 to S66 are skipped, and the process of the determination unit 35 proceeds to step S71. That is, when the state of the node device has already been determined as “no detour route”, steps S62 to S66 are not executed.
  • step S62 the determination unit 35 checks whether or not the state of the own node is “1”. If the state of the node device is not “1”, the process of the determination unit 35 proceeds to step S63. If the state of the node device is “1”, steps S63 to S66 are skipped, and the process of the determination unit 35 proceeds to step S71. Note that step S62 is also executed when it is determined “No” in step S53 or S54.
  • step S63 the determination unit 35 checks whether or not the search information holding time has elapsed.
  • step S64 the determination unit 35 checks whether or not the state of the own node is “0”. When the state of the node device is not “0”, the process of the determination unit 35 proceeds to step S65. On the other hand, if the state of the node device is “0”, the process of the determination unit 35 proceeds to step S66.
  • step S65 the determination unit 35 updates the state of the own node to “0: initial state”.
  • step S65 is executed when it is determined “No” in steps S61, S62, and S64. That is, step S65 is executed when the state of the own node is “3: there is a detour route”.
  • the determination unit 35 initializes the state of the own node when the search information holding time has elapsed.
  • step S66 the determination unit 35 deletes the search information corresponding to the global destination to be searched from the state management table 23. That is, the determination unit 35 is executed when the state of the own node is “0: initial state”. In other words, the determination unit 35 deletes the search information from the state management table 23 when the search information holding time has elapsed after initializing the state of the own node.
  • the determination unit 35 updates the state management table 23 based on the contents of the received Hello packet in steps S51 to S58 and S61 to S66. And the determination part 35 of a bottleneck candidate node determines whether a self-node is a bottleneck.
  • the determination unit 35 checks whether or not the current time is the transmission timing of the Hello packet.
  • the node device includes, for example, a timer for notifying the packet generation unit 33 and the packet transmission unit 34 of the transmission timing in order to periodically transmit the Hello packet to the adjacent node.
  • the packet transmission unit 33 when the transmission timing of the Hello packet is notified in Step S72, the packet transmission unit 33 generates a Hello packet, and the packet transmission unit 34 transmits the Hello packet to the adjacent node.
  • “search target node” and “state (STAT)” stored in the state management table 23 are written in “search target node” and “node state” of the Hello packet, respectively.
  • step S72 is skipped.
  • the packet transmission unit 33 After the search information is deleted from the state management table 23 in step S66, the packet transmission unit 33 generates a Hello packet to which “search target node” and “node state” are not assigned in step S72. However, the packet generation unit 33 may generate a Hello packet to which “search target node” and “node state” are not given even after the search information is deleted from the state management table 23. In this case, for example, the packet transmission unit 33 may write a value indicating that there is no information (for example, all zeros) in the “search target node” and “node state”.
  • step S73 the determination unit 35 checks whether information indicating “there is a detour route” is received from the global destination node (here, the node GW).
  • the global destination node transmits information indicating “there is a detour route” to the search target node. For example, in the example illustrated in FIG. 22, when the node device GW receives the Hello packet “X, 1”, the node device GW transmits information indicating “there is a detour route” to the node X.
  • the determination unit 35 When the determination unit 35 receives the information indicating “there is a bypass route”, the determination unit 35 updates the state of the own node to “3: a bypass route exists” in step S74. Subsequently, in step S75, the determination unit 35 updates the bottleneck determination flag to “0: non-bottleneck”. Note that if the information indicating “there is a detour route” has not been received, the determination unit 35 skips the processing of steps S74 to S75.
  • step S58 the determination unit 35 notifies the global destination (here, the node GW) of information indicating “no detour route”.
  • the operation of the determination unit 35 when the bottleneck determination flag is “1: isolated” is basically the same as when the bottleneck determination flag is “3”. However, when the bottleneck determination flag is “1”, the determination unit 35 updates the state of the own node to “3” in step S47.
  • Step S42 The bottleneck determination flag of the node X is “2: bottleneck candidate”. Therefore, it is determined as “Yes” in Step S42, and the determination unit 35 updates the state of the node X to “1: Searching” in Step S44.
  • the node X has not received a Hello packet. If it does so, it will determine with "Yes” in step S62, and the node apparatus X will transmit a Hello packet to an adjacent node in step S72.
  • “global destination”, “search target node”, and “state” of the Hello packet are set to “node GW”, “node X”, and “1”, respectively. That is, the node device X transmits the Hello packet “X, 1” to the adjacent node.
  • the bottleneck determination flag of node A is “0: non-bottleneck”.
  • the node device A receives the Hello packet “X, 1” from the node X.
  • the determination unit 35 updates the state management table 23A in step S46. Specifically, the determination unit 35 updates the state of the node A to “1” in the entry corresponding to “global destination: GW” and “search target: X” in the state management table 23A. Thereafter, “No” is determined in steps S51, S52, and S53, and “Yes” is determined in step S62.
  • the node device A transmits the Hello packet “X, 1” to the adjacent node in step S72.
  • the operations of the node apparatuses B and C that have received the Hello packet “X, 1” from the node X are substantially the same as those of the node apparatus A.
  • Node D Operation of node device D shown in FIGS. 19 to 20
  • the bottleneck determination flag of node D is “0: non-bottleneck”.
  • Node D is the most upstream node.
  • Node device D receives Hello packets “X, 1” from node A and node B, respectively.
  • the determination unit 35 of the node D updates the state management table 23D in step S46. Specifically, the determination unit 35 updates the state of the node D to “1” in the entry corresponding to “global destination: GW” and “search target: X” in the state management table 23D, and the node A and the state.
  • the state of B is also updated to “1”.
  • step S54 the process of the determination unit 35 proceeds to step S54.
  • step S54 is determined as “Yes”.
  • step S55 the determination unit 35 of the node device D updates the state of the node D to “2” in the entry corresponding to “global destination: GW” and “search target: X” in the state management table 23D. . And the node apparatus D transmits a Hello packet to an adjacent node.
  • “global destination”, “search target node”, and “state” of the Hello packet are set to “node GW”, “node X”, and “2”, respectively. That is, the node device D transmits the Hello packet “X, 2” to the adjacent node.
  • the operation of the node device E that has received the Hello packet “X, 1” from each of the nodes B and C is substantially the same as that of the node device D.
  • the operation of the node device C that has received the Hello packet “X, 1” from each of the nodes X, B, and E is substantially the same as that of the node device D.
  • Node device A receives Hello packets “X, 2” from adjacent nodes, respectively.
  • the node D is the only node that selects the node A as the optimum local destination in the data transmission to the node GW. Therefore, only the node D is registered as a specific adjacent node in the entry corresponding to “global destination: GW” and “search target: X” in the state management table 23A of the node A.
  • the determination unit 35 updates the state management table 23A in step S46. Specifically, the determination unit 35 updates the state of the node D to “2” in the entry corresponding to “global destination: GW” and “search target: X” in the state management table 23A. At this time, the state of the node A is still “1”. Therefore, it is determined as “No” in Step S51, and Step S52 is executed.
  • step S52 the determination unit 35 of the node A searches for an entry corresponding to “global destination: GW” and “search target: X” in the state management table 23A.
  • the process of the determination unit 35 proceeds to step S55.
  • step S55 the determination unit 35 updates the state of the node A to “2” in the entry corresponding to “global destination: GW” and “search target: X” in the state management table 23A.
  • step S56 the determination unit 35 of the node A checks the bottleneck determination flag.
  • the bottleneck determination flag of the node A is “0” as described above. Therefore, “No” is determined in step S56, and steps S57 to S58 are skipped.
  • the node device A transmits a Hello packet to the adjacent node in step S72.
  • “global destination”, “search target node”, and “state” of the Hello packet are set to “node GW”, “node X”, and “2”, respectively. That is, the node device A transmits the Hello packet “X, 2” to the adjacent node.
  • the operation of the node device B that has received the Hello packet “X, 2” from the node E is substantially the same as that of the node device A.
  • Node Device X receives Hello packets “X, 2” from adjacent nodes, respectively.
  • the nodes that select the node X as the optimum local destination in data transmission to the node GW are nodes A, B, and C, as shown in FIG. Accordingly, nodes A, B, and C are registered as specific adjacent nodes in the entries corresponding to “global destination: GW” and “search target: X” in the state management table 23X of the node X.
  • the determination unit 35 updates the state management table 23X in step S46. Specifically, the determination unit 35 updates the states of the nodes A, B, and C to “2” in the entries corresponding to “global destination: GW” and “search target: X” in the state management table 23X. At this time, the state of the node X is still “1”. Therefore, it is determined as “No” in Step S51, and Step S52 is executed.
  • step S52 the determination unit 35 of the node X searches for an entry corresponding to “global destination: GW” and “search target: X” in the state management table 23X. At this time, since the states of the nodes A, B, and C are all “2”, the process of the determination unit 35 proceeds to step S55.
  • step S55 the determination unit 35 updates the state of the node X to “2” in the entry corresponding to “global destination: GW” and “search target: X” in the state management table 23X.
  • step S56 the determination unit 35 of the node X checks the bottleneck determination flag.
  • the bottleneck determination flag of the node X is “2: bottleneck candidate” as described above. Therefore, “Yes” is determined in step S56, and steps S57 to S58 are executed.
  • step S57 the determination unit 35 of the node X updates the bottleneck determination flag to “3: bottleneck confirmation”. That is, the determination unit 35 of the node X determines that the node X is a bottleneck. Then, in step S58, the determination unit 35 notifies the node GW of information indicating that no detour path exists in data transmission to the node GW.
  • the node device X receives information indicating “there is a detour route” from the gateway device (node GW). In this case, “Yes” is determined in step S73, and the determination unit 35 of the node X executes steps S74 to S75. That is, in step S74, the determination unit 35 updates the state of the node X to “3: there is a detour route”. In step S75, the determination unit 35 updates the bottleneck determination flag to “0: non-bottleneck”. Further, the determination unit 35 activates a timer for counting the search information holding time, although not particularly illustrated.
  • the determination unit 35 repeatedly executes the processes of steps S41 to S75 until the search information holding time elapses.
  • the node device X since the state of the node X is “3”, the node device X transmits a Hello packet to the adjacent node in step S72.
  • “node GW”, “node X”, and “3” are set in the “global destination”, “search target node”, and “state” of the Hello packet, respectively. That is, the node device X transmits the Hello packet “X, 3” to the adjacent node.
  • step S63: Yes the determination unit 35 of the node X updates the state of the node X to “0: initial state” in step S65. Thereafter, in step S66, the determination unit 35 deletes information on entries corresponding to “global destination: GW” and “search target: X” in the state management table 23X.
  • search data in the example, Hello packet “X, 1” transmitted from a specific node (in the example, bottleneck candidate node) is the final destination. It is investigated whether or not to propagate up to. For this reason, it is possible to accurately determine whether or not data can be transmitted to the final destination node without passing through a specific node, that is, whether or not a detour route exists.
  • bottleneck determination is not performed for all nodes in the ad hoc network, but bottleneck determination is performed only for some nodes (that is, bottleneck candidates). Therefore, even in a network with a large number of nodes, the time required to find a bottleneck is short. As a result, a bottleneck node can be accurately detected even in a wireless network in which the state of the link between nodes is unstable.
  • the detour route search method includes a procedure for finding a bottleneck candidate and a procedure for performing a detour route search for the bottleneck candidate.
  • the detour route search method according to the invention is not limited to this flowchart.
  • the node device may determine that there is no detour path in data transmission to the global destination when the node is a bottleneck candidate.

Landscapes

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

Abstract

 無線通信装置は、記憶部、生成部、送信部、判定部を備える。記憶部は、複数の無線通信装置のうち、自装置に隣接する無線通信装置である隣接装置であって、且つ、最終宛先となる無線通信装置である最終宛先装置へのデータを自装置に送信する無線通信装置である特定隣接装置を識別する識別情報を記憶する。生成部は、最終宛先装置への経路探索を表す情報を含む探索データを生成する。送信部は、探索データを隣接装置にブロードキャストする。判定部は、探索データが最終宛先装置へ到達しないことを表す情報を含むデータを、記憶部に識別情報が記憶されているすべての特定隣接装置から受信したときに、特定隣接装置から最終宛先装置への迂回経路が存在しないと判定する。

Description

無線通信装置および無線ネットワークにおける迂回経路探索方法
 本発明は、無線ネットワークにおいて使用される無線通信装置および無線ネットワークにおける迂回経路探索方法に係わる。
 複数のノードを含むネットワークの1つの形態として、アドホックネットワークが実用化されている。アドホックネットワークでは、各ノードにおいて自律的な経路選択が行われる。すなわち、アドホックネットワークの各ノード装置(または、通信装置)は、ルータまたはスイッチとして動作する機能を備えている。ここで、各ノード装置は、隣接するノード装置とメッセージ等を送信および受信することにより、周辺のネットワーク構成を認識することができる。したがって、アドホック(特に、無線アドホック)方式を採用すると、ネットワーク全体を管理する管理装置を設けることなく、ネットワークを構築したい環境にノード装置を配置するだけで、所望のネットワークを構築することができる。さらに、アドホックネットワークでは、ノードの追加または削除が容易であり、ネットワーク構成を容易に変更することができる。
 ところで、ネットワークは、一般に、障害が発生した場合であっても通信を継続できるようにするために、迂回経路(或いは、冗長経路または代替経路)を有していることが好ましい。特に、無線ネットワークでは、電波環境に応じてリンクが一時的に切断されることもあり、迂回経路の有無を予め確認しておくことは重要である。
 例えば、図1に示すネットワークにおいて、ノードA~EからノードGWへデータを送信する際には、データは、ノードXを経由しなければならない。すなわち、ノードA~EとノードGWとの間には、迂回経路は存在しない。以下の説明では、ノードXのように、特定の宛先へデータを送信する際に必ず通過しなければならないノードを「ボトルネックノード」と呼ぶことがある。
 図1に示すネットワーク構成においては、ノード装置Xが故障すると、ノード装置A~Eは、ノードGWへデータを送信できない。また、ノードX、Y間のリンクが切断された場合も、ノード装置A~EはノードGWへデータを送信できない。すなわち、ノード装置A~Eは、ノードGWから孤立するおそれがある。したがって、ネットワークを管理または運営するオペレータは、ボトルネックノードを発見して適切に迂回経路を設けることが要求される。
 ただし、迂回経路を形成するために中継ノードを追加すると、ネットワークのコストが増加する。このため、オペレータは、中継ノードの増設を注意深く行う必要がある。したがって、ボトルネックノードを精度よく発見する方法が望まれる。
 しかしながら、アドホックネットワークでは、ネットワーク全体に渡って通信経路を正確に認識することは困難である。このため、アドホックネットワークにおいては、各通信経路に対してそれぞれ迂回経路が存在しているか否かを確認することは容易ではない。
 なお、ネットワークを管理するサーバコンピュータを設ければ、全ノードの経路情報を収集してネットワークトポロジを解析することは可能である。しかし、ノード数が多いネットワークでは、経路情報を収集するために要する時間が長くなる。さらに、無線ネットワークでは、ノード間のリンクの状態が不安定である。このため、経路情報を収集するための時間が長いと、サーバコンピュータにより得られたトポロジ(すなわち、経路情報を収集した時点でのトポロジ)と、実際のトポロジが一致しないこともある。
 このように、従来技術においては、無線アドホックネットワークにおいて、ボトルネックノードを精度よく発見することは困難であった。
 関連する技術として、間欠的に所定の通信管理信号を送受信して自律分散的な無線ネットワークを形成する無線通信装置が提案されている。この無線通信装置は、通信管理信号を受信する受信部と、受信部による通信管理信号の受信の履歴に基づき、無線ネットワークにおける無線通信装置の通信状態を評価する評価部と、評価部による通信状態の評価結果に応じた通知を行なう通知部、を備える。(例えば、特許文献1)
 また、他の関連する技術として、アドホックネットワークにおいて、複数の中継装置のうち、送信するデータリンクの伝送誤り率が、データを受信するデータリンクの伝送誤り率よりも大きい中継装置を、ボトルネックの候補として推定するボトルネック推定手段を備えるネットワーク制御装置が提案されている。(例えば、特許文献2)
特開2009-147646号公報 特許第4294723号
 本発明の目的は、無線アドホックネットワークにおいて、任意の通信経路に対して迂回経路の有無を判定する装置または方法を提供することである。
 本発明の1つの態様に係る無線通信装置は、複数の無線通信装置を備える無線ネットワークにおいて使用され、前記複数の無線通信装置のうち、自装置に隣接する無線通信装置である隣接装置であって、且つ、最終宛先となる無線通信装置である最終宛先装置へのデータを自装置に送信する無線通信装置である特定隣接装置を識別する識別情報を記憶する記憶部と、前記最終宛先装置への経路探索を表す情報を含む探索データを生成する生成部と、前記探索データを前記隣接装置にブロードキャストする送信部と、前記探索データが前記最終宛先装置へ到達しないことを表す情報を含むデータを、前記記憶部に識別情報が記憶されているすべての特定隣接装置から受信したときに、前記特定隣接装置から前記最終宛先装置への迂回経路が存在しないと判定する判定部、を備える。
 本発明の1つの態様に係る迂回経路探索方法は、複数の無線通信装置を備える無線ネットワークにおいて使用される。探索対象無線通信装置において、前記複数の無線通信装置のうち、自装置に隣接する無線通信装置である隣接装置であって、且つ、最終宛先となる無線通信装置である最終宛先装置へのデータを自装置に送信する無線通信装置である特定隣接装置を検出する。前記探索対象無線通信装置において、前記最終宛先装置への経路探索を表す情報を含む探索データを生成する。前記探索対象無線通信装置から前記探索対象無線通信装置の隣接装置へ前記探索データをブロードキャストする。前記探索データを受信した各無線通信装置は、それぞれ前記探索データを隣接装置にブロードキャストする。前記最終宛先装置に対する最上流装置は、前記探索データを受信すると、前記探索データが前記最終宛先装置へ到達しないことを表す情報を含む応答データを隣接装置にブロードキャストする。前記応答データを受信した各無線通信装置は、それぞれ前記応答データを隣接装置にブロードキャストする。前記探索対象無線通信装置は、すべての前記特定隣接装置から前記応答データを受信すると、前記特定隣接装置から前記最終宛先装置への迂回経路が存在しないと判定する。
 上述の態様によれば、無線アドホックネットワークにおいて、任意の通信経路に対して迂回経路の有無を精度よく判定することができる。
ボトルネックノードについて説明する図である。 実施形態の無線ネットワークの構成を説明する図である。 ノード装置の構成を示す図である。 ノード装置の機能を説明するブロック図である。 リンクの評価値について説明する図である。 リンクテーブルの一例を示す図である。 ルーティングテーブルの一例を示す図である。 Helloパケットのフォーマットを示す図である。 実施形態の迂回経路探索方法の概略を示すフローチャートである。 ボトルネック候補判定処理の第1および第2の方法を説明する図である。 ボトルネック候補判定処理の第3の方法を説明する図である。 状態管理テーブルの一例を示す図である。 ノード装置の状態の遷移を示す図である。 アドホックネットワークの一例を示す図である。 迂回経路探索処理の開始時の状態を示す図である。 迂回経路が無いネットワークにおける迂回経路探索の実施例である。 迂回経路が無いネットワークにおける迂回経路探索の実施例である。 迂回経路が無いネットワークにおける迂回経路探索の実施例である。 迂回経路が無いネットワークにおける迂回経路探索の実施例である。 迂回経路が無いネットワークにおける迂回経路探索の実施例である。 迂回経路が無いネットワークにおける迂回経路探索の実施例である。 迂回経路があるネットワークにおける迂回経路探索の実施例である。 迂回経路があるネットワークにおける迂回経路探索の実施例である。 ボトルネック候補判定処理を示すフローチャートである。 ボトルネック候補判定処理を示すフローチャートである。 状態管理テーブルの更新の実施例を示す図である。 迂回経路探索処理を示すフローチャートである。 迂回経路探索処理を示すフローチャートである。 迂回経路探索処理を示すフローチャートである。
 図2は、実施形態の無線ネットワークの構成を説明する図である。実施形態の無線ネットワークは、アドホックネットワークであり、複数の無線通信装置が接続されている。以下の説明では、各無線通信装置のことを「ノード装置」または単に「ノード」と呼ぶことがある。図2に示す例では、無線ネットワークは、ノードn1~n14を備えている。
 図2において、ノード間を接続する破線は、無線リンクを表す。例えばノードn6は、ノードn3、n5、n10、n11との間に無線リンクを有している。すなわち、ノードn6から送信される電波(すなわち、無線信号)は、ノードn3、n5、n10、n11に到達し、また、ノードn3、n5、n10、n11からそれぞれ送信される電波は、ノードn6に到達する。なお、以下の説明では、無線リンクで相互に接続される1組のノードは、互いに「隣接」しているものとする。すなわち、ノードn3、n5、n10、n11は、ノードn6に隣接している。換言すれば、ノードn3、n5、n10、n11は、ノードn6の「隣接ノード」である。
 各ノードは、定期的に、Helloパケットをブロードキャストする。ただし、この実施形態では、「ブロードキャスト」は、すべてのノードにパケットを送信するものではなく、すべての隣接ノードにパケットを送信することを意味する。したがって、例えば、ノードn6は、ノードn3、n5、n10、n11へHelloパケットを送信する。このとき、各ノードn3、n5、n10、n11は、ノードn6から受信したHelloパケットを他のノードへは転送しない。
 Helloパケットは、ノードが存在することを他のノードに通知するために使用される。例えば、ノードn6がHelloパケットをブロードキャストすると、ノードn3、n5、n10、n11は、そのHelloパケットを受信する。そうすると、ノードn3は、隣接ノードとしてノードn6が存在することを認識する。ノードn5、n10、n11も同様に、隣接ノードとしてノードn6が存在することを認識する。
 Helloパケットは、上述したように、各ノードから送信される。したがって、例えば、ノードn3がHelloパケットを送信すると、ノードn1、n2、n6がそのHelloパケットを受信する。このとき、各ノードn1、n2、n6は、隣接ノードとしてノードn3が存在することを認識する。このようにして、各ノードは、自ノードに隣接するノードを認識する。
 図3は、ノード装置(すなわち、無線通信装置)の構成を示す図である。ノード装置1は、通信部10、記憶部20、制御部30を備える。通信部10は、アンテナ、送信機、受信機を備え、無線インタフェースを提供する。記憶部20は、例えば半導体メモリであり、制御部30によって使用される。また、記憶部20は、不揮発性メモリを含む。制御部30は、CPUを含み、ノード装置1の動作を制御する。なお、特に図示しないが、ノード装置1は、入力デバイスを接続するための入力インタフェースおよび/または出力デバイスを接続するための出力インタフェースを備えるようにしてもよい。
 図4は、ノード装置の機能を説明するブロック図である。なお、図4においては、無線ネットワークの迂回経路の探索に直接的に係わらない機能については省略されている。
 記憶部20は、制御部30により処理されるデータを記憶する。また、記憶部20は、リンクテーブル21、ルーティングテーブル22、状態管理テーブル23、ボトルネック判定フラグ格納部24、最上流フラグ格納部25を格納する。
 リンクテーブル21は、リンク情報を格納する。リンク情報は、自ノードと隣接ノードとの間のリンクの品質を表す。なお、リンクテーブル22は、ノード装置がHelloパケットを受信したときに、リンクテーブル更新部31により更新される。
 ルーティングテーブル22は、経路情報を格納する。経路情報は、宛先ノードにパケットを送信する経路を表す。換言すると、経路情報は、パケットの宛先ノードとパケットを中継する隣接ノードとの対応関係を表す。なお、ルーティングテーブル22は、ノード装置がHelloパケットを受信したときに、ルーティングテーブル更新部32により更新される。
 状態管理テーブル23は、迂回経路の探索に係わるノード装置の状態を管理する。尚、各ノード装置は、「初期状態」「探索中」「迂回経路なし」「迂回経路あり」のいずれか1つの状態を保持することができる。ボトルネック判定フラグ格納部24は、ボトルネック判定フラグを格納する。ボトルネック判定フラグは、ノード装置が「非ボトルネックノード」「単独の孤立」「ボトルネック候補」「ボトルネックノード」のいずれであるのかを表す。最上流フラグ格納部25は、最上流フラグを格納する。最上流フラグは、指定された宛先ノードに対して、ノード装置が最上流に位置するか否かを表す。
 制御部30は、リンクテーブル更新部31、ルーティングテーブル更新部32、パケット生成部33、パケット送信部34、判定部35、転送部36を備える。なお、制御部30は、この例では、プロセッサを用いてプログラムを実行することにより、リンクテーブル更新部31、ルーティングテーブル更新部32、パケット生成部33、パケット送信部34、判定部35、転送部36を実現する。この場合、プログラムは、記憶部20の不揮発性メモリ内に予め格納されてもよい。また、プログラムは、可搬型の記録媒体からノード装置1に提供されるようにしてもよい。可搬型の記録媒体は、例えば、CD-ROM、DVD、USBメモリ等の半導体メモリである。さらに、ノード装置1は、プログラムサーバからプログラムを受信するようにしてもよい。
 リンクテーブル更新部31は、リンクテーブル21に格納されているリンク情報を更新する。具体的には、リンクテーブル更新部31は、転送部36から受け取るHelloパケットの内容に基づいて、リンクテーブル21に格納されているリンク情報を更新する。
 ルーティングテーブル更新部32は、ルーティングテーブル22に格納されている経路情報を更新する。具体的には、ルーティングテーブル更新部32は、転送部36から受け取るHelloパケットの内容に基づいて、ルーティングテーブル22に格納されている経路情報を更新する。
 パケット生成部33は、Helloパケットを生成する。このとき、パケット生成部33は、判定部35により生成される迂回経路探索に係わる情報を含むHelloパケットを生成することができる。パケット送信部34は、パケット生成部33により生成されるHelloパケットを隣接ノードに送信する。
 判定部35は、転送部36から受け取るHelloパケットの内容に基づいて、宛先ノードにデータを送信するための迂回経路が存在するか否かを判定する。このとき、判定部35は、状態管理テーブル23、ボトルネック判定フラグ格納部24、最上流フラグ格納部25を参照しながら、迂回経路が存在するか否かを判定する。
 転送部36は、隣接ノードからパケットを受信する。隣接ノードからHelloパケットを受信したときは、転送部36は、そのHelloパケットをリンクテーブル更新部31、ルーティングテーブル更新部32、判定部35に与える。一方、データパケット(Helloパケット以外のパケット)を受信したときは、転送部36は、ルーティングテーブル22を参照して、そのデータパケットの宛先に対応する隣接ノードを特定する。そして、転送部36は、特定した隣接ノードへ、受信したデータパケットを送信する。
 なお、状態管理テーブル23は、特定隣接装置を識別する識別情報を記憶する記憶部の一例である。パケット生成部33は、探索データを生成する生成部の一例である。パケット送信部34は、探索データを隣接装置にブロードキャストする送信部の一例である。
 図5は、リンクの評価値について説明する図である。なお、図5においては、無線ネットワークが備える多数のノードの中の一部のノード(G、X、Y、Z、A)のみが描かれている。
 ノードG、Xは、それぞれノードZに隣接している。ノードX、Y、Zは、それぞれノードGに隣接している。ノードG、Z、Aは、それぞれノードXに隣接している。ノードG、Aは、それぞれノードYに隣接している。ノードX、Yは、それぞれノードAに隣接している。なお、「隣接」は、ノード間で相互に電波が到達することを表す。
 リンク重みは、ノード間の無線リンクの品質または通信コストを表す指標である。この実施形態では、品質の良いリンクのリンク重みは小さく、品質の悪いリンクのリンク重みは大きい。また、ノード間のリンク重みは、1組のリンク評価値に基づいて算出される。例えば、ノードGからノードZへ向かうリンクの評価値は「9」であり、ノードZからノードGへ向かうリンクの評価値は「11」である。そして、ノード間のリンク重みは、1組のリンク評価値の平均で表わされる。よって、ノードG、Z間のリンク重みは「10」である。同様に、ノードX、Z間のリンク重みは「100」である。すなわち、このケースは、ノードX、Z間のリンクよりも、ノードG、Z間のリンクの方が、品質が良いことを表している。
 各リンクの品質(すなわち、評価値およびリンク重み)は、例えば、下記の方法で検出される。ここでは、各ノード装置は、それぞれ予め決められた周期でHelloパケットを繰り返し送信するものとする。この場合、リンクの品質が良好であれば、ノード装置において隣接ノードからHelloパケットを受信する時間間隔は、ほぼ一定となるはずである。一方、リンクの品質が悪いときは、ノード装置において隣接ノードからHelloパケットを受信する時間間隔のばらつきが大きくなる。したがって、各ノード装置は、Helloパケットの受信間隔に基づいてリンクの品質を検出することができる。例えば、図5に示すノードGは、ノードZからHelloパケットを受信する時間間隔をモニタすることにより、ノードZからノードGへ向かうリンクの品質を検出できる。
 なお、各ノード装置は、他の方法でリンクの品質を検出してもよい。例えば、ノード装置は、隣接ノードから送信されるHelloパケットの受信レベル(例えば、受信電波強度)に基づいてリンクの品質を検出してもよい。
 図6は、リンクテーブル21の一例を示す。なお、図6は、図5に示すノードGが有するリンクテーブル21を示している。
 リンクテーブル21には、隣接ノードとの間のリンクについてのリンク情報が登録される。リンク情報は、「隣接ノード」「往路リンク評価値」「復路リンク評価値」「リンク重み」を含む。「隣接ノード」は、リンクの接続先のノードを識別する。「往路リンク評価値」は、隣接ノードにとっての往路リンクの品質を表す。「復路リンク評価値」は、隣接ノードにとっての復路リンクの品質を表す。「リンク重み」は、「往路リンク評価値」および「復路リンク評価値」の平均を表す。
 例えば、図6に示す第1レコードに登録されているリンク情報は、以下の内容を表している。
隣接ノード:Z
往路リンク評価値(ノードZからノードGへ向かうリンクの品質):11
復路リンク評価値(ノードGからノードZへ向かうリンクの品質):9
リンク重み(ノードGとノードZとの間のリンクの品質):10
 図7は、ルーティングテーブル22の一例を示す。なお、図7は、図5に示すノードAが有するルーティングテーブル22を示している。
 ルーティングテーブル22には、宛先ノード毎に経路情報が登録される。具体的には、ルーティングテーブル22には、「グローバル宛先(GD:Global Destination)」「ローカル宛先(LD:Local Destination)」「経路重み」「リンク重み」および「評価値」が登録される。「グローバル宛先」は、パケットの宛先ノードを識別する。なお、「グローバル宛先」を「最終宛先装置」と呼ぶことがある。「ローカル宛先」は、宛先ノードへパケットを送信するための経路上に位置する隣接ノードを表す。
 「経路重み」は、「ローカル宛先」から「グローバル宛先」までの経路の通信コストを表す。具体的には、「経路重み」は、「ローカル宛先」から「グローバル宛先」までの経路上の各リンクのリンク重みの総和を表す。「リンク重み」は、「ローカル宛先」との間のリンク重みを表す。「評価値」は、グローバル宛先への経路に係わる総通信コストに相当し、例えば「経路重み」および「リンク重み」の和により算出される。
 図7に示すルーティングテーブル22の第1および第2レコードには、グローバル宛先ノードZについての経路情報が登録されている。第1レコードは、ノードAからノードYを経由してノードZへ至る経路の経路情報を表す。すなわち、第1レコードの「リンク重み」は、ノードA、Y間の「リンク重み」を表す。第1レコードの「経路重み」は、ノードY、G間のリンク重み、およびノードG、Z間のリンク重みの和を表す。そして、第1レコードの「評価値」は、ノードAからノードYおよびノードGを経由してノードZへ至る経路の品質(通信コスト)を表す。一方、第2レコードは、ノードAからノードXを経由してノードZへ至る経路の経路情報を表す。すなわち、第2レコードの「リンク重み」は、ノードA、X間の「リンク重み」を表す。第2レコードの「経路重み」は、ノードX、G間のリンク重み、およびノードG、Z間のリンク重みの和を表す。そして、第2レコードの「評価値」は、ノードAからノードXおよびノードGを経由してノードZへ至る経路の品質を表す。
 このように、図5および図7に示す例では、ノード装置Aは、ノードZへデータパケットを送信するための経路として、ローカル宛先ノードYを経由する経路(以下、経路Y)およびローカル宛先ノードXを経由する経路(以下、経路X)を有する。そして、ノード装置AがノードZへデータパケットを送信または転送する際には、ノード装置Aの転送部36は、グローバル宛先がノードZである経路の中で、評価値が最小の経路を選択する。図7に示す例では、経路Yの評価値が21であり、経路Xの評価値が24である。したがって、この場合、転送部36は、経路Yを選択する。すなわち、転送部36は、最適なローカル宛先として、ノードYを選択する。
 同様に、各ノード装置は、受信パケットの「グローバル宛先」に基づいてルーティングテーブル22をサーチし、最適なローカル宛先ノードを選択する。これにより、実施形態のアドホックネットワークにおいて、データパケットは、最適な経路を介してグローバル宛先まで転送される。
 図8は、Helloパケットのフォーマットを示す図である。Helloパケット51は、アドホックヘッダ、グローバル宛先(GD)、ローカル宛先(LD)、往路リンク評価値、評価値、探索対象ノード、ノード状態を含む。アドホックヘッダは、アドホックネットワークにおいてパケットを伝送するために必要な情報を格納する。なお、アドホックヘッダは、Helloパケットの送信元ノードを識別する情報を含むようにしてもよい。グローバル宛先、ローカル宛先、評価値は、この例では、図7に示すルーティングテーブルに登録される対応するエントリから抽出される。なお、ルーティングテーブル22において1つのグローバル宛先に対して複数の経路(すなわち、複数のローカル宛先)が登録されているときは、最適な経路(すなわち、評価値が最小の経路)の経路情報がHelloパケットに格納される。往路リンク評価値は、隣接ノードにとっての往路リンクの品質を表す。探索対象ノードは、ボトルネックノードであるか否かの判定の対象となるノードを識別する。ノード状態は、「初期状態」「探索中」「迂回経路なし」「迂回経路あり」のいずれか1つを表す。
 各ノード装置は、それぞれ定期的にHelloパケットを隣接ノードへブロードキャストする。すなわち、各ノード装置は、隣接ノードとの間でルーティングテーブル22に格納されている情報を交換する。そして、各ノード装置は、隣接ノードから受信するHelloパケットの内容に基づいて、それぞれリンクテーブル21およびルーティングテーブル22を作成および更新する。また、各ノード装置は、Helloパケットを利用して、探索対象ノードおよびノード状態を隣接ノードに通知する。
 図9は、実施形態の迂回経路探索方法の概略を示すフローチャートである。図9に示すフローチャートの手順は、アドホックネットワーク内の各無線通信装置によって実行される。
 ステップS1において、無線通信装置は、現在時刻がボトルネック判定時刻であるか否かを判定する。ボトルネック判定時刻は、例えば、ネットワークを管理または運営するオペレータにより指定され、無線通信装置に設定されている。そして、現在時刻がボトルネック判定時刻になると、無線通信装置は、ステップS2においてボトルネック候補判定処理を実行する。すなわち、無線通信装置は、自分がボトルネック候補であるか否かを判定する。なお、この明細書では、アドホックネットワークにおいてボトルネックノードである可能性のあるノード装置を「ボトルネック候補」と呼ぶ。
 ステップS3において、無線通信装置は、迂回経路探索処理を実行する。迂回経路探索処理は、ボトルネック候補がボトルネックノードであるか否かが判定される。なお、図9に示す手順では、迂回経路探索処理は、各無線通信装置により継続的または繰返し実行される。
 このように、実施形態の迂回経路探索方法では、多数の無線通信装置の中からボトルネック候補が抽出される。そして、抽出されたボトルネック候補に対して迂回経路探索処理が実行される。したがって、実施形態の迂回経路探索方法によれば、アドホックネットワークにおいて効率的にボトルネックノードを発見することができる。
 <ボトルネック候補判定処理>
 各ノード装置は、それぞれ、自分がボトルネック候補か否かを判定する。ここで、ノード装置は、下記の第1~第3の方法でボトルネック候補の判定を行う。
 図10は、ボトルネック候補判定処理の第1および第2の方法を説明する図である。図10に示すアドホックネットワークは、ノードA~F、X、Y、GWを備える。また、図10において、ノード間を接続する実線は、無線リンクを表している。すなわち、ノードXは、ノードYに隣接している。ノードA、B、C、Yは、ノードXに隣接している。ノードB、D、Xは、ノードAに隣接している。ノードA、C、D、E、Xは、ノードBに隣接している。ノードB、E、Xは、ノードCに隣接している。ノードA、Bは、ノードDに隣接している。ノードB、C、Fは、ノードEに隣接している。ノードEは、ノードFに隣接している。なお、ノードYは、ノードGWに隣接していてもよいし、ノードGWに隣接していなくてもよい。ただし、ノードYとノードGWとの間には、1以上の通信経路が存在するものとする。
 上記構成のアドホックネットワークにおいて、各ノード装置は、それぞれ定期的にHelloパケットを隣接ノードにブロードキャストする。したがって、各ノード装置は、それぞれ1または複数の隣接ノードからHelloパケットを受信する。そして、各ノード装置は、隣接ノードから受信するHelloパケットの内容に基づいて、ルーティングテーブル22を作成および更新する。この結果、ノード装置A~F、Xは、それぞれ、ルーティングテーブル22A~22F、22Xを備えるものとする。
 以下の説明では、ノード装置A~F、Xは、それぞれノードGWへデータを送信するものとする。すなわち、各ノード装置A~F、Xのグローバル宛先は、ノードGWである。ノード装置GWは、例えば、ノードA~F、Xからデータを収集するゲートウェイ装置である。ゲートウェイ装置は、例えば、アドホックネットワークの外部のサーバコンピュータに接続され、ノードA~F、Xから収集したデータをそのサーバコンピュータへ送信する。また、ゲートウェイ装置は、アドホックネットワーク内で使用されるHelloパケットを、アドホックネットワークの外部には送信しないものとする。
 第1の方法においては、各ノード装置は、下記の条件Aを満たす場合に、自分がボトルネック候補であると判定する。
条件A:グローバル宛先に対するローカル宛先が1つだけ
 例えば、ノード装置Aのルーティングテーブル22Aには、「グローバル宛先GD:ノードGW」に対して2つの経路(ローカル宛先がノードXである経路、およびローカル宛先がノードBである経路)が登録されている。この場合、ノードA、X間のリンクが切断されたとしても、ノード装置Aは、ノードBを経由してノードGWへデータを送信することができる。したがって、この場合、ノード装置Aは、自分(すなわち、ノードA)はボトルネック候補ではないと判定する。
 これに対して、ノード装置Xのルーティングテーブル22Xは、「グローバル宛先GD:ノードGW」に対して1つの経路(ローカル宛先がノードYである経路)のみが登録されている。この場合、ノードX、Y間のリンクが切断されると、ノード装置Xは、ノードGWへデータを送信できなくなる可能性がある。したがって、この場合、ノード装置Xは、自分(すなわち、ノードX)はボトルネック候補であると判定する。同様に、ノード装置Fも、自分(すなわち、ノードF)はボトルネック候補であると判定する。
 第2の方法においては、各ノード装置は、下記の条件Aおよび条件Bを満たす場合に、自分がボトルネック候補であると判定する。
条件A:グローバル宛先に対するローカル宛先が1つだけ
条件B:複数の隣接ノードを有する
 図10に示す例では、ノード装置Xおよびノード装置Fが条件Aを満たす。よって、ノード装置Xおよびノード装置Fについて条件Bを検討する。
 ノード装置Fは、隣接ノードを1つだけしか有していない。このため、ノード装置Fが故障したとしても、この故障に起因してノードGWへのデータ送信ができなくなるノードは存在しない。すなわち、条件Aを満たすノードであっても、条件Bを満たさないノードは、ボトルネックノードであるか否かを調査する必要性は高くない。したがって、第2の方法では、ノード装置Fは、自分(すなわち、ノードF)はボトルネック候補ではないと判定する。ただし、ノード装置Fは、自分(すなわち、ノードF)は「単独の孤立」であると判定する。
 ノード装置Xは、4つの隣接ノード(Y、A、B、C)を有し、条件Bを満たす。ここで、ノード装置Xにとって、ノードYは、ノードGWへのデータ送信においてローカル宛先LDである。このため、ノード装置Xは、隣接ノードA、B、CからノードGW宛てのデータを受信すると、そのデータをノードYへ送信する。この場合、ノード装置Xが故障すると、ノードA~Cを含む多数のノードが、ノードGWへデータを送信できなくなるおそれがある。したがって、条件Aおよび条件Bを満たすノードについては、ボトルネックノードであるか否かを調査することが好ましい。すなわち、第2の方法では、ノード装置Xは、自分(すなわち、ノードX)はボトルネック候補であると判定する。
 第3の方法においては、各ノード装置は、下記の条件Aおよび条件Cを満たす場合に、自分がボトルネック候補であると判定する。
条件A:グローバル宛先に対するローカル宛先が1つだけ
条件C:グローバル宛先に対するローカル宛先として選択したノード以外のすべての隣接ノードにより、上記グローバル宛先に対するローカル宛先として選択されている。
 以下、図11に示すアドホックネットワークにおいて、ノード装置Xがボトルネック候補判定処理を実行するケースを説明する。なお、図11に示すノードA~E、X、Y、GWは、図10を参照しながら説明した対応するノードと実質的に同じである。
 ノード装置Xは、図11に示すように、4つの隣接ノード(A、B、C、Y)を有している。また、ルーティングテーブル22Xにおいては、「グローバル宛先GD:ノードGW」に対して「ローカル宛先LD:ノードY」が登録されている。すなわち、ノード装置Xは、グローバル宛先がノードGWであるデータを生成または受信したときは、そのデータを隣接ノードYへ送信する。
 ノード装置Xは、ノードA、B、C、Yからそれぞれ受信するHelloパケットに基づいて、自分(すなわち、ノードX)がボトルネック候補か否かを判定する。このとき、ノード装置A、B、C、Yは、それぞれ、経路情報を含むHelloパケットをブロードキャストする。
 例えば、ノード装置Aは、ルーティングテーブル22Aを備える。ルーティングテーブル22Aには、「グローバル宛先GD:ノードGW」に対して2つの経路(ローカル宛先がノードXである経路、およびローカル宛先がノードBである経路)が登録されている。ここで、これら2つの経路を比較すると、ローカル宛先がノードXである経路の方が評価値は小さい。この場合、ノード装置Aは、ノードGWへの最適な経路として、ローカル宛先がノードXである経路を選択する。すなわち、ルーティングテーブル22Aの経路情報は、「ノード装置Aは、グローバル宛先がノードGWであるデータを生成または受信したときは、そのデータを隣接ノードXへ送信する。」を表している。そして、ノード装置Aは、Helloパケットを利用して、ノードGWへデータを送るための経路情報を隣接ノードに通知する。図11においては、ノード装置Aは、「GD=GW、LD=X」を含むHelloパケット41Aを隣接ノードへブロードキャストしている。ここで、「GD=GW、LD=X」は、図8に示すHelloパケットの「グローバル宛先」「ローカル宛先」としてそれぞれ「ノードGW」「ノードX」が設定されていることを表している。そして、ノード装置Aから送信されるHelloパケット41Aは、隣接ノードX(及び、ノードB、D)に到達する。
 同様に、ノード装置B、C、Yは、それぞれHelloパケット41B、41C、41Yをブロードキャストする。このとき、Helloパケット41B、41C、41Yは、それぞれ下記の経路情報を含む。
41B:「GD=GW、LD=X」
41C:「GD=GW、LD=X」
41Y:「GD=GW、LD=Z」
 ノード装置Xは、Helloパケット41A、41B、41C、41Y、およびルーティングテーブル22Xの内容に基づいて、ノードGWへのデータ送信において自分(すなわち、ノードX)がボトルネック候補か否かを判定する。まず、ルーティングテーブル22Xによれば、「グローバル宛先GD:ノードGW」に対して「ローカル宛先LD」は1つだけ登録(すなわち、LD=Y)されている。よって、ノード装置Xは、条件Aを満足する。また、ノードXの隣接ノードA、B、C、Yの中で、ローカル宛先であるノードYを除く他の3つの隣接ノードA、B、Cは、いずれも、「グローバル宛先GD:ノードGW」に対するローカル宛先LDとして「ノードX」を選択している。すなわち、ノード装置Xは、条件Cも満足する。したがって、ノード装置Xは、ノードGWへのデータ送信において、自分(すなわち、ノードX)がボトルネック候補であると判定する。
 このように、図11において、ノード装置A~CがそれぞれノードGWへのデータ送信においてローカル宛先としてノードXを選択するときに、ノード装置Xは条件Cを満足する。よって、ノード装置Xが条件Cを満足するときは、ノード装置Xが故障すると、ノードA~Cを含む多数のノードがノードGWへデータを送信できなくなる可能性が高い。したがって、条件Aおよび条件Cを満たすノードについては、ボトルネックノードであるか否かを調査することが好ましい。
 <迂回経路探索処理>
 上述したように、実施形態の迂回経路探索方法では、アドホックネットワークにおいてボトルネック候補が抽出される。そして、抽出されたボトルネック候補に対して迂回経路探索処理が実行される。このとき、迂回経路探索処理は、各ノード装置が備える状態管理テーブル23を利用して実行される。
 図12は、状態管理テーブル23の一例を示す。なお、図12は、図10または図11に示すノード装置Xにおいて作成される状態管理テーブル23を示している。
 状態管理テーブル23は、グローバル宛先ごとに「ローカル宛先」「探索対象ノード」「隣接ノード」「状態」を管理する。ここでは、「グローバル宛先GD:ノードGW」について「ローカル宛先」「探索対象ノード」「隣接ノード」「状態」が登録されている。
 「ローカル宛先」には、グローバル宛先に対する最適な経路として選択される隣接ノードが登録される。なお、グローバル宛先に対応するローカル宛先は、ルーティングテーブル22から検出される。「探索対象ノード」には、ボトルネックノードか否かの判定が行われるノード(すなわち、ボトルネック候補)が登録される。「隣接ノード」には、状態を管理する対象の隣接ノードが登録される。ただし、各ノード装置は、自分の状態も管理する。したがって、状態管理テーブル23において「隣接ノード」として登録されるノードは、隣接ノードだけでなく、自ノードも含むものとする。ここで、「隣接ノード」は、グローバル宛先に対するローカル宛先ノードを含まないようにしてもよい。また、「隣接ノード」には、自ノードおよび自ノードをローカル宛先として選択する隣接ノードのみが登録されるようにしてもよい。「状態」は、「0:初期状態」「1:探索中」「2:迂回経路なし」「3:迂回経路あり」を識別する。
 図13は、ノード装置の状態の遷移を示す図である。各ノード装置は、それぞれ、図13に示す4つの状態の中の1つの状態で動作する。「初期状態」は、ノード装置が迂回経路探索に係わっていない状態を表す。「探索中」は、ノード装置が迂回経路探索を実行している状態を表す。「迂回経路なし」は、ノード装置からグローバル宛先へのデータ送信においてボトルネック候補を経由しない経路(すなわち、迂回経路)が発見されない状態を表す。「迂回経路あり」は、ノード装置からグローバル宛先へのデータ送信においてボトルネック候補を経由しない経路(すなわち、迂回経路)が発見された状態を表す。
 以下、迂回経路探索処理の実施例を示す。以下の説明では、図14に示すアドホックネットワークにおいて、ノードGWがグローバル宛先であるものとする。また、ノードXがボトルネック候補であるものとする。さらに、ノード装置A~E、Xは、それぞれ、ルーティングテーブル22A~22E、22Xを有しているものとする。
 各ノード装置は、グローバル宛先へのデータ送信において、リンク評価値が最小の隣接ノードをローカル宛先として選択する。たとえば、ノード装置A、B、Cは、ノードGWへのデータ送信において、ローカル宛先として「ノードX]を選択する。すなわち、ノードXは、ノード装置A、B、Cによって、ローカル宛先として選択される。また、ノード装置Dは、ノードGWへのデータ送信において、ローカル宛先として「ノードA]を選択する。すなわち、ノードAは、ノード装置Dによりローカル宛先として選択される。さらに、ノード装置Eは、ノードGWへのデータ送信において、ローカル宛先として「ノードB」を選択する。すなわち、ノードBは、ノード装置Eによりローカル宛先として選択される。
 ノードD、C、Eは、他の隣接ノードによってローカル宛先として選択されていない。このため、ノード装置D、C、Eは、ノードGWへのデータ送信において、他のノードから送信されるデータを「中継」することはない。すなわち、隣接ノード装置によってローカル宛先として選択されていないノードは、グローバル宛先へのデータ送信において「最上流」に位置している。よって、以下では、隣接ノード装置によってローカル宛先として選択されていないノードを「最上流ノード」と呼ぶことがある。図14に示す例では、ノードD、C、Eは、ノードGWへのデータ送信において、最上流ノードである。
 図15は、迂回経路探索処理の開始時の状態を示す図である。図15において、探索対象ノード(すなわち、ノードX)は、上述のボトルネック候補であり、二重丸で表わされている。また、最上流ノード(すなわち、ノードD、C、E)は、四角形で表わされている。
 ノード装置Xは、状態管理テーブル23Xを備える。図15に示す状態管理テーブル23Xにおいて、左端の「X」は、探索対象ノードを識別する。また、状態管理テーブル23Xは、ノードX、A、B、Cの状態を管理する。すなわち、ノード装置Xは、自分の状態、及びノードXをローカル宛先として選択する隣接ノード(すなわち、ノードA、B、C)の状態を管理する。なお、ノードXは、探索対象ノード(すなわち、ボトルネック候補)である。したがって、状態管理テーブル23Xにおいて、ノードXの状態は「1:探索中」に設定されている。以下、図16~図23を参照しながら迂回経路探索処理の実施例を説明する。
 ノード装置Xは、図16に示すように、探索情報を含むHelloパケットを隣接ノードへ送信する。探索情報は、図8に示すように、探索対象ノードを識別する情報およびノード状態を表す情報を含む。ここで、探索対象ノードはノードXであり、ノードXの状態は「1:探索中」である。したがって、ノード装置Xは、探索情報「X、1」を含むHelloパケット51Xを送信する。なお、「X、1」は、「探索対象ノード:ノードX」および「ノード状態:1」を表す。以下、「X、1」を含むHelloパケットのことをHelloパケット「X、1」と呼ぶことがある。ここで、Helloパケット(X、1)は、最終宛先装置への経路探索を表す情報を含む探索データの一例である。そして、ノードXから送信されるHelloパケット「X、1」は、各隣接ノードA~C、Yによって受信される。そして、ノード装置A~Cは、Helloパケット「X、1」を受信すると、図17に示すように、状態管理テーブル23A~23Cを作成または更新する。
 ノードAは、最上流ノードではない。したがって、ノードAの状態管理テーブル23Aは、ノードAおよびノードAをローカル宛先として選択するノードDの状態を管理する。そして、ノード装置Aは、Helloパケット「X、1」を受信すると、状態管理テーブル23Aにおいて、ノードAの状態を「0:初期状態」から「1:探索中」に更新する。また、ノードXからHelloパケット「X、1」を受信したときのノード装置Bの動作は、ノードAと実質的に同じである。
 ノードCは、上述したように、最上流ノードである。このため、ノードCの状態管理テーブル23Cは、ノードCおよび隣接ノードX、B、Eの状態を管理する。そして、ノード装置Cは、ノードXからHelloパケット「X、1」を受信すると、ノードCの状態を「0」から「1」に更新すると共に、Helloパケット「X、1」の送信元であるノードXの状態も「0」から「1」に更新する。
 なお、ノード装置Yも、ノードXからHelloパケット「X、1」を受信する。しかし、ノードYは、探索対象ノードであるノードXによってローカル宛先として選択されている。この場合、ノード装置Yは、ノードXから受信するHelloパケット「X、1」を無視する。したがって、以下の説明では、ノードYの動作については記載を省略する。
 ノード装置A~Cは、それぞれ、図18に示すように、探索情報を含むHelloパケットを隣接ノードに送信する。ここで、ノードAの状態は、「1:探索中」に更新されている。また、探索対象ノードは、変わることはない。したがって、ノード装置Aは、Helloパケット「X、1」を隣接ノードに送信する。同様に、ノード装置B、Cも、それぞれHelloパケット「X、1」を隣接ノードに送信する。なお、各ノード装置は、それぞれ自律的に動作するので、ノード装置A~Cは、互いに独立したタイミングでHelloパケット「X、1」を送信する。
 ノード装置Dは、図18に示すように、ノードAおよびノードBからそれぞれHelloパケット「X、1」を受信する。ここで、ノードDは、上述したように、最上流ノードである。このため、ノードDの状態管理テーブル23Dは、図19に示すように、ノードDおよび隣接ノードA、Bの状態を管理する。そして、ノード装置Dは、ノードAからHelloパケット「X、1」を受信すると、自分(すなわち、ノードD)の状態を「0」から「1」に更新すると共に、そのHelloパケット「X、1」の送信元であるノードAの状態も「0」から「1」に更新する。また、ノード装置Dは、ノードBからHelloパケット「X、1」を受信すると、そのHelloパケット「X、1」の送信元であるノードBの状態も「0」から「1」に更新する。この結果、ノードDにおいて、状態管理テーブル23Dにより管理されているすべてのノード(すなわち、ノードD、A、B)の状態が「1」になる。
 同様に、ノード装置EがノードB、CからそれぞれHelloパケット「X、1」を受信すると、状態管理テーブル23Eにより管理されているすべてのノード(すなわち、ノードE、B、C)の状態が「1」になる。また、ノード装置CがノードX、B、EからそれぞれHelloパケット「X、1」を受信すると、状態管理テーブル23Cにより管理されているすべてのノード(すなわち、ノードC、X、B、E)の状態が「1」になる。なお、図19は、ノードDがノードA、BからそれぞれHelloパケット「X、1」を受信し、ノードEがノードB、CからそれぞれHelloパケット「X、1」を受信し、ノードCがノードX、B、EからそれぞれHelloパケット「X、1」を受信した後の状態を示している。
 最上流ノードであるノード装置Dは、状態管理テーブル23Dによって管理されているすべてのノードの状態が「1」になると、図19に示すように、自分(すなわち、ノードD)の状態を「1:探索中」から「2:迂回経路なし」に更新する。そして、ノード装置Dは、図20に示すように、探索情報「X、2」を含むHelloパケットを隣接ノードに送信する。ここで、「X、2」は、「探索対象ノード:ノードX」および「ノード状態:2」を表す。また、「X、2」を含むHelloパケットのことをHelloパケット「X、2」と呼ぶことがある。さらに、ノード装置E、Cも、ノード装置Dと同様に、それぞれHelloパケット「X、2」を隣接ノードに送信する。
 ここで、Helloパケット「X、2」の役割を説明する。Helloパケット「X、2」は、最上流ノードがすべての隣接ノードからHelloパケット「X、1」を受信したときに生成される。そして、最上流ノードがすべての隣接ノードからHelloパケット「X、1」を受信する状態は、探索対象ノード(すなわち、ノードX)により最初に生成されたHelloパケット「X、1」が、その最上流ノードよりも先に転送されないことを意味する。すなわち、この状態は、探索対象ノードから送信されるHelloパケット「X、1」が、最上流ノードを経由してグローバル宛先へ到達できないことを表している。したがって、Helloパケット「X、2」は、実質的に、「グローバル宛先へデータを送信するための迂回経路が存在しない」を表している。すなわち、Helloパケット「X、2」は、Helloパケット「X、1」が最終宛先装置へ到達しないことを表す情報を含むデータ(または、応答データ)の一例である。
 ノードGWに対して最上流に位置するノード装置D、E、Cは、図20に示すように、それぞれHelloパケット「X、2」を対応する隣接ノードへ送信する。各ノード装置は、Helloパケット「X、2」を受信すると、状態管理テーブル23において、受信したHelloパケット「X、2」の送信元ノードの状態を「1:探索中」から「2:迂回経路なし」に更新する。例えば、ノード装置Aは、ノードDからHelloパケット「X、2」を受信すると、状態管理テーブル23Aにおいて、ノードDの状態を「1」から「2」に更新する。また、ノード装置Bは、ノードEからHelloパケット「X、2」を受信すると、状態管理テーブル23Bにおいて、ノードEの状態を「1」から「2」に更新する。
 ノード装置(最上流ノードを除く)は、自分をローカル宛先として選択する全ての隣接ノードからそれぞれHelloパケット「X、2」を受信すると、状態管理テーブル23において自分の状態を「2」に更新する。たとえば、ノード装置Aは、図20に示すように、ノードAをローカル宛先として選択している全ての隣接ノード(この例では、ノードD)からHelloパケット「X、2」を受信すると、状態管理テーブル23AにおいてノードAの状態を「2」に更新する。すなわち、ノード装置Aは、状態管理テーブル23Aにより管理されているすべての隣接ノードの状態が「2」になると、自分(すなわち、ノードA)の状態も「2」に更新する。同様に、図20では、ノード装置Bは、ノードBをローカル宛先として選択している全ての隣接ノード(この例では、ノードE)からHelloパケット「X、2」を受信すると、状態管理テーブル23BにおいてノードBの状態を「2」に更新する。
 ノード装置Aは、自分(すなわち、ノードA)の状態が「2」になると、図21に示すように、Helloパケット「X、2」を隣接ノードへ送信する。同様に、ノード装置Bは、自分(すなわち、ノードB)の状態が「2」になると、Helloパケット「X、2」を隣接ノードへ送信する。
 ノード装置Xは、図20~図21に示すように、ノードA、B、CからそれぞれHelloパケット「X、2」を受信する。そうすると、ノードXの状態管理テーブル23Xにおいて、ノードA、B、Cの状態はそれぞれ「2」に更新され、ノードXの状態も「2」に更新される。
 ボトルネック候補であるノード装置Xは、ノードXをローカル宛先として選択する全てのノードからそれぞれHelloパケット「X、2」を受信すると、グローバル宛先GWへのデータ送信に対して迂回経路が存在しないと判定する。すなわち、ノード装置Xは、ノードA、B、CからそれぞれHelloパケット「X、2」を受信すると、ノードYを経由する経路の他にノードGWへデータを送信するための迂回経路が存在しないと判定する。そうすると、ノード装置Xは、ノードGWへのデータ送信においてノードXがボトルネックであり、迂回経路が存在しないことを表す情報をノード装置GWに通知する。この通知の方法は、特に限定されるものではなく、任意のデータ形式でよい。
 ノード装置Xは、迂回経路が存在しないことをノードGWへ通知した後、Helloパケット「X、0」を隣接ノードへ送信する。ここで、「X、0」は、「探索対象ノード:ノードX」および「ノード状態:0(初期状態)」を表す。すなわち、Helloパケット「X、0」は、各ノード装置に対して状態管理テーブル23の初期化を指示する。
 Helloパケット「X、0」を受信した各ノード装置は、状態管理テーブル23において探索対象ノードXに対応する状態を「0」に更新するとともに、Helloパケット「X、0」を対応する隣接ノードへ送信する。また、各ノード装置は、Helloパケット「X、0」を送信してから所定の探索情報保持時間が経過した後、状態管理テーブル23において探索対象ノードXに対応する情報を削除する。なお、探索情報保持時間は、例えば、ノード装置が最初のHelloパケット「X、1」を送信した時から、最後のHelloパケット「X、2」を受信するまでの期間とする。また、探索情報保持時間は、上記期間に所定のマージンを加えた長さであってもよい。
 次に、ノードGWへの送信において、迂回経路が存在するケースについて説明する。ここでは、図22に示すように、ノードHがノードCに隣接しており、ノードHとノードGWとの間に、ノードXを経由しない経路(以下、迂回経路H)が存在するものとする。
 このケースでは、ノード装置Hは、ノードCからHelloパケット「X、1」を受信する。そうすると、ノード装置Hは、状態管理テーブル23を更新すると共に、Helloパケット「X、1」を隣接ノードへ送信する。ここで、ノードHとノードGWとの間には迂回経路Hが存在する。このため、ノードHから送信されるHelloパケット「X、1」は、迂回経路Hを介して伝搬され、ノードGWに到達する。このとき、ノード装置A~Eは、例えば、Helloパケット「X、1」またはHelloパケット「X、2」を送信および受信している。
 ノード装置GWは、迂回経路Hを介してHelloパケット「X、1」すると、図22に示すように、探索対象ノード(すなわち、ノードX)に対して、Helloパケット「X、1」を受信したことを表す情報を通知する。すなわち、ノード装置GWは、迂回経路が存在することを表す情報をノードXへ通知する。この通知の方法は、特に限定されるものではなく、任意のデータ形式でよい。
 ノード装置Xは、迂回経路が存在することを表す情報をノードGWから受信すると、図23に示すように、状態管理テーブル23Xにおいて自分(すなわち、ノードX)の状態を「3:迂回経路あり」に更新する。また、ノード装置Xは、Helloパケット「X、3」を隣接ノードに送信する。ここで、「X、3」は、「探索対象ノード:ノードX」および「ノード状態:3」を表す。
 Helloパケット「X、3」を受信した各ノード装置は、状態管理テーブル23において、探索対象ノードXに対応する「状態」を「3」に更新すると共に、Helloパケット「X、3」を隣接ノードへ送信する。さらに、各ノード装置は、Helloパケット「X、3」を送信してから探索情報保持時間が経過した後、状態管理テーブル23において探索対象ノードXに対応する探索情報を削除する。
 なお、各ノード装置は、状態管理テーブル23から探索情報を削除した後は、探索情報が付与されていないHelloパケットを送信するようにしてもよい。この場合、Helloパケットは、図8において、「探索対象ノード」および「ノード状態」が削除されたフォーマットである。
 なお、実施形態のアドホックネットワークは、各ノード装置が自律的に動作する。このため、ノード装置がHelloパケット「X、1」、Helloパケット「X、2」、Helloパケット「X、3」、Helloパケット「X、0」を受信する順番は、必ずしも同じではない。
 例えば、ノードCから迂回経路Hを介してノードGWへHelloパケット「X、1」が到達するまでに要する時間が長いものとする。この場合、ノードGWがHelloパケット「X、1」を受信する前に、Helloパケット「X、2」が各ノードに伝搬する。そうすると、ノード装置Xは、ノードGWがHelloパケット「X、1」を受信する前に、「迂回経路が存在しない」と判定することがある。
 ただし、この後、ノードGWがHelloパケット「X、1」を受信すると、ノードGWからノードXへ迂回経路が存在することを表す情報が通知される。そうすると、ノード装置Xは、Helloパケット「X、2」による判定よりも、ノードGWからの通知を優先し、ノードGWへのデータ送信において迂回経路が存在すると判定する。したがって、実施形態の迂回経路探索方法によれば、迂回経路の有無を精度よく判定できる。
 <フローチャート>
 図24~図25は、ボトルネック候補判定処理を示すフローチャートである。なお、ボトルネック候補判定処理は、各ノード装置において判定部35により実行される。また、ボトルネック候補判定処理は、状態管理テーブル23を作成する処理、および最上流ノードか否かを判定する処理を含む。さらに、ボトルネック候補判定処理は、例えば、図9に示すように、定期的に実行される。
 ステップS11において、判定部35は、ボトルネック判定フラグを初期化する。ボトルネック判定フラグの初期値は、「0:非ボトルネック」である。ボトルネック判定フラグは、ボトルネック判定フラグ格納部24に格納される。なお、ボトルネック判定フラグは、「0:非ボトルネック」の他に、「1:単独の孤立」「2:ボトルネック候補」「3:ボトルネック確定」に更新され得る。
 ステップS12において、判定部35は、最上流フラグを初期化する。最上流フラグの初期値は、「1:最上流」である。最上流フラグは、最上流フラグ格納部25に格納される。なお、最上流フラグは、グローバル宛先GDごとに設定される。
 ステップS13において、判定部35は、状態管理テーブル23を作成する。ただし、この時点では、状態管理テーブル23には隣接ノードはエントリされない。例えば、ノード装置Xにおいては、ステップS13により、図26(a)に示す状態管理テーブル23が作成される。図26(a)に示す例では、「グローバル宛先:GW」「ローカル宛先:Y」「探索対象ノード:X」が登録されている。また、この時点では「隣接ノード」フィールドには自ノード(すなわち、ノードX)のみが登録される。
 ステップS14において、判定部35は、状態管理テーブル23に隣接ノードを登録するための期間をカウントするタイマTTを開始する。タイマTTがカウントする期間は、特に限定されるものではないが、例えば、各ノード装置がHelloパケットを送信する間隔に対して十分に長いものとする。
 判定部35は、タイマTTが満了するまで、ステップS21~S28において、状態管理テーブル23に隣接ノードを登録する。このとき、判定部35は、自ノードをローカル宛先として選択する隣接ノードのみを状態管理テーブル23に登録してもよい。また、判定部35は、グローバル宛先GDに対してノード装置が最上流ノードであるか否かの判定も行う。
 ステップS21において、判定部35は、隣接ノードから送信されるHelloパケットを待ち受ける。なお、各ノード装置は、定期的にHelloパケットをブロードキャストする。そして、Helloパケットを受信すると、判定部35は、ステップS22において、状態管理テーブル23に設定されているグローバル宛先GDと、Helloパケットのヘッダに設定されているグローバル宛先GDとを比較する。これら2つのグローバル宛先GDが一致すれば、判定部35の処理はステップS23に移行する。一方、これら2つのグローバル宛先GDが一致しないときは、判定部35は、ステップS21に戻って次のHelloパケットを待ち受ける。
 ステップS23において、判定部35は、Helloパケットの送信元ノードが、状態管理テーブル23においてグローバル宛先GDに対して既に登録されているか否かをチェックする。Helloパケットの送信元ノードが未だ状態管理テーブル23に登録されていなければ、判定部35の処理はステップS24に移行する。一方、Helloパケットの送信元ノードが既に状態管理テーブル23に登録されていれば、ステップS24~S26はスキップされる。
 ステップS24において、判定部35は、Helloパケットのヘッダに設定されているグローバル宛先GDに対する最適なローカル宛先LDが、自ノードか否かをチェックする。すなわち、判定部35は、Helloパケットの送信元ノードが、グローバル宛先GDへデータを送信する際にローカル宛先LDとして自ノードを選択するか否かをチェックする。そして、ローカル宛先LDが自ノードであれば、判定部35の処理はステップS25に移行する。一方、ローカル宛先LDが自ノードでなければ、ステップS25~S26はスキップされる。なお、以下の説明では、自ノード(すなわち、判定部35を含むノード装置)を、グローバル宛先GDへのデータ送信においてローカル宛先LDとして選択する隣接ノードのことを「特定隣接ノード」と呼ぶことがある。
 ステップS25において、判定部35は、グローバル宛先GDに対応する最上流フラグを「0:非最上流」に設定する。このとき、最上流フラグ格納部25に保持されている最上流フラグが「1」であれば、判定部35は、その最上流フラグを「1」から「0」に更新する。
 ステップS26において、判定部35は、状態管理テーブル23においてグローバル宛先GDに対応するエントリに、Helloパケットの送信元ノードを追加する。
 ステップS27は、Helloパケット内に複数のグローバル宛先GDについての経路情報が格納されている場合に、各グローバル宛先GDに対してステップS22~S26の処理を実行するために設けられている。そして、ステップS28においてタイマTTが満了すると、判定部35の処理はステップS29に移行する。
 なお、図25に示す例では、状態管理テーブル23には特定隣接ノードが登録される。しかし、状態管理テーブル23の作成方法は、これに限定されるものではない。例えば、判定部35は、特定隣接ノードを含むすべての隣接ノードを状態管理テーブル23に登録してもよい。ただし、この場合、判定部35は、特定隣接ノードと他の隣接ノードとが識別可能なように、各隣接ノードを状態管理テーブル23に登録する。
 また、判定部35は、ステップS21~S28において、自ノードがグローバル宛先GDに対して最上流ノードか否かを判定する。このとき、判定部35は、各隣接ノードからHelloパケットを受信する過程で、少なくとも1つの隣接ノードが特定隣接ノードであれば、ステップS25を実行する。すなわち、グローバル宛先GDへのデータ送信においてローカル宛先LDとして自ノードを選択する隣接ノードが1つ以上存在するときは、自ノードは最上流ノードではないと判定される。換言すれば、グローバル宛先GDへのデータ送信においてローカル宛先LDとして自ノードを選択する隣接ノードが存在しないときに、判定部35は、自ノードを最上流ノードと判定される。
 ステップS29において、判定部35は、自ノードが最上流ノードか否かをチェックする。このとき、判定部35は、最上流フラグ格納部25に格納されている最上流フラグを参照する。そして、自ノードが最上流ノードであれば、判定部35は、ステップS30を実行する。ステップS30において、判定部35は、リンクテーブル21を参照し、状態管理テーブル23に登録されていない隣接ノードがあれば、その未登録の隣接ノードを状態管理テーブル23に追加する。一方、自ノードが最上流ノードでなければ、ステップS30はスキップされる。
 このように、ステップS29~S30によれば、最上流ノードの状態管理テーブル23には、すべての隣接ノードが登録される。なお、ステップS21~S28においてすべての隣接ノードが状態管理テーブル23に登録されるときは、ステップS29~S30は実行しなくてもよい。
 ステップS31において、判定部35は、ルーティングテーブル22において探索対象のグローバル宛先GDに対してローカル宛先LDが1つだけ登録されているのか否かをチェックする。そして、ルーティングテーブル22において複数の対応するローカル宛先LDが登録されていれば、判定部35の処理は終了する。この場合、ボトルネック判定フラグは、更新されずに「0:非ボトルネック」のままである。すなわち、ルーティングテーブル22においてグローバル宛先GDに対応する複数のローカル宛先LDが登録されていれば、判定部35は、そのグローバル宛先GDに対して迂回経路が存在すると判定する。
 ルーティングテーブル22において対応するローカル宛先LDが1つだけ登録されているときは、判定部35は、ステップS32において、2以上の隣接ノードが存在するか否かをチェックする。そして、2以上の隣接ノードが存在するときは、判定部35は、ステップS33において、ボトルネック判定フラグを「2:ボトルネック候補」に更新する。すなわち、グローバル宛先GDに対してローカル宛先LDが1つだけであり、かつ複数の隣接ノードが存在するときは、判定部35は、自ノードをボトルネック候補と判定する。一方、隣接ノードが1つだけ存在するときは、判定部35は、ステップS34において、ボトルネック判定フラグを「1:単独の孤立」に更新する。
 次に、図10または図14に示すアドホックネットワークを参照しながら、図24~図25のフローチャートの手順を説明する。以下の説明では、ノードX、A、D、Fについて説明する。
 ノードXは、図14に示すように、ノードA、B、Cによって、ノードGWへのデータ送信においてローカル宛先として指定されている。よって、ノードXの判定部35は、各隣接ノードからそれぞれHelloパケットを受信すると、ステップS26において、状態管理テーブル23にノードA、B、Cを追加する。ノードXの状態管理テーブル23にノードA、B、Cが追加された状態を図26(b)に示す。このとき、ノードA、B、Cは、特定隣接ノードとして状態管理テーブル23に登録される。
 また、上述のように、ノードXをノードGWへのデータ送信においてローカル宛先として指定する隣接ノードが存在するので、判定部35は、ステップS25において、最上流フラグを「0」に更新する。すなわち、ノードXは、ノードGWへのデータ送信において最上流ノードではないと判定される。
 さらに、ノードXのルーティングテーブル22Xにおいて、「グローバル宛先GD:ノードGW」に対して、ローカル宛先LDは1つしか登録されていない。したがって、ステップS31は「Yes」と判定される。また、ノードXは、4つの隣接ノードを有するので、ステップS32は「Yes」と判定される。したがって、判定部35は、ステップS33において、ボトルネック判定フラグを「2」に更新する。すなわち、ノードXは、ボトルネック候補であると判定される。
 ノードAは、図14に示すように、ノードDによって、ノードGWへのデータ送信においてローカル宛先として指定されている。よって、ノードAの判定部35は、ステップS25において、最上流フラグを「0」に更新する。すなわち、ノードAも、ノードGWへのデータ送信において最上流ノードではないと判定される。
 また、ノードAのルーティングテーブル22Aにおいて、「グローバル宛先GD:ノードGW」に対して、2つのローカル宛先LDが登録されている。したがって、ステップS31は「No」と判定される。すなわち、ノードAの判定部35は、ステップS32~S34を実行しないので、ノードAは非ボトルネックと判定される。
 ノードDは、図14に示すように、いずれのノードによっても、ノードGWへのデータ送信においてローカル宛先として指定されていない。よって、ノードDにおいてステップS25は実行されず、最上流フラグは「1」のままである。すなわち、ノードDは、ノードGWに対して最上流ノードであると判定される。また、ノードDのルーティングテーブル22Dにおいて、「グローバル宛先GD:ノードGW」に対して、2つのローカル宛先LDが登録されている。したがって、ノードDは、非ボトルネックと判定される。
 ノードFは、図10に示すように、ノードEのみに隣接している。そして、ノードFのルーティングテーブル22Fにおいて、「グローバル宛先GD:ノードGW」に対して、ローカル宛先LDは1つしか登録されていない。このため、ステップS31は「Yes」と判定される。また、ノードFは、隣接ノードを1つだけ有するので、ステップS32は「No」と判定される。したがって、ノードFの判定部35は、ボトルネック判定フラグを「1」に更新する。すなわち、ノードFは、単独の孤立と判定される。
 図27~図29は、迂回経路探索処理を示すフローチャートである。なお、迂回経路探索処理は、各ノード装置において判定部35により実行される。ただし、迂回経路探索処理の一部は、パケット生成部33およびパケット送信部34により実行される。また、迂回経路探索処理は、例えば、図9に示すように、アドホックネットワークの運用中は、継続的または繰返し実行される。
 図27~図29のフローチャートにおいて、「ID」は、探索対象ノードを識別する情報であり、具体的には、ボトルネック候補ノードを識別する。また、アドホックネットワークが迂回経路探索を行っているときは、各ノード装置は、それぞれ定期的に、探索情報を含むHelloパケットを隣接ノードにブロードキャストする。探索情報は、図8に示す「探索対象ノード」および「ノード状態」に相当する。なお、「探索対象ノード」および「ノード状態」は、図27~図29では、それぞれ「ID」「STAT」で表わされている。
 ステップS41~S43において、判定部35は、ボトルネック判定フラグの値を検出する。ボトルネック判定フラグは、図24~図25に示すフローチャートにおいて決定され、ボトルネック判定フラグ格納部24に格納されている。
 ボトルネック判定フラグが「2:ボトルネック候補」であれば、判定部35は、ステップS44において、自ノードの状態を「1:探索中」に更新する。即ち、ボトルネック候補と判定されたノード装置は、自分を探索対象として、迂回経路探索処理を開始する。
 ステップS45において、判定部35は、Helloパケットを待ち受ける。なお、アドホックネットワーク上の各ノード装置は、それぞれ定期的に、Helloパケットを隣接ノードに送信する。Helloパケットは、図8に示すように、グローバル宛先を表す情報(GD)、迂回経路探索の対象ノードを識別する情報(ID)、ノード装置の状態を表す情報(STAT)を含む。そして、ノード装置がHelloパケットを受信したときは、判定部35の処理はステップS46に移行する。一方、ノード装置がHelloパケットを受信していないときは、判定部35の処理はステップS61に移行する。
 ステップS46において、判定部35は、受信したHelloパケットの内容に基づいて状態管理テーブル23を更新する。このとき、判定部35は、Helloパケットに設定されているグローバル宛先GDおよび探索対象ノード(ID)に対応するエントリにおいて、ノード状態を更新する。たとえば、「STAT=1」を含むHelloパケットを受信したときは、判定部35は、自ノードおよびHelloパケットの送信元ノードの状態を「1」に更新する。「STAT=2」を含むHelloパケットを受信したときは、判定部35は、そのHelloパケットの送信元ノードの状態を「2」に更新する。「STAT=0」または「STAT=3」を含むHelloパケットを受信したときは、判定部35は、探索情報保持時間タイマを起動する。
 ステップS51~S58およびステップS61~S66の処理は、探索対象ノード毎に実行される。すなわち、アドホックネットワーク上に複数のボトルネック候補が存在するときは、ステップS51~S58およびステップS61~S66の処理は、各ボトルネック候補に対してそれぞれ実行される。
 ステップS51において、判定部35は、自ノードの状態が「2」であるか否をチェックする。ノード装置の状態が「2」でなければ、判定部35の処理はステップS52に移行する。一方、ノード装置の状態が「2」であれば、ステップS52~S58はスキップされ、判定部35の処理はステップS71に移行する。すなわち、ノード装置の状態が既に「迂回経路なし」と判定されているときは、ステップS52~S58は実行されない。
 ステップS52において、判定部35は、状態管理テーブル23に登録されているすべての特定隣接ノードの状態が「2」であるか否かをチェックする。そして、すべての特定隣接ノードの状態が「2」であれば、判定部35の処理はステップS55に移行する。一方、状態が「2」でない特定隣接ノードが存在するときは、判定部35の処理はステップS53に移行する。
 ステップS53において、判定部35は、迂回経路探索に係わるグローバル宛先に対応する最上流フラグが「1」であるか否かをチェックする。すなわち、判定部35は、自ノードがグローバル宛先GDに対して最上流ノードか否かをチェックする。ここで、最上流フラグは、最上流フラグ格納部25に格納されている。そして、最上流フラグが「1」であれば、判定部35の処理はステップS54に移行する。一方、最上流フラグが「1」でなければ、判定部35の処理はステップS62に移行する。
 ステップS54において、判定部35は、状態管理テーブル23に登録されているすべての隣接ノードの状態が「1」であるか否かをチェックする。そして、すべての隣接ノードの状態が「1」であれば、判定部35の処理はステップS55に移行する。一方、状態が「1」でない隣接ノードが存在するときは、判定部35の処理はステップS62に移行する。
 ステップS55において、判定部35は、自ノードの状態を「2:迂回経路なし」に更新する。すなわち、最上流ノードにおいては、判定部35は、状態管理テーブル23に登録されているすべての隣接ノードの状態が「1」であれば、自ノードの状態を「2」に更新する。これに対して、最上流ノード以外のノードにおいては、判定部35は、状態管理テーブル23に登録されているすべての特定隣接ノードの状態が「2」であれば、自ノードの状態を「2」に更新する。
 ステップS56において、判定部35は、ボトルネック判定フラグが「2」であるか否かをチェックする。そして、ボトルネック判定フラグが「2」であれば、判定部35は、ステップS57において、ボトルネック判定フラグを「2」から「3:ボトルネック確定」に更新する。すなわち、判定部35は、自ノードがボトルネックであると判定する。さらに、判定部35は、ステップS58において、グローバル宛先へのデータ送信において迂回経路が存在しないことをそのグローバル宛先(ここでは、ノードGW)へ通知する。このように、ボトルネック候補であるノード装置は、自ノードがボトルネックであると判定すると、迂回経路が存在しない旨をグローバル宛先ノードに通知する。
 ステップS61は、ステップS45においてHelloパケットを受信していないときに実行される。判定部35は、ステップS61において、自ノードの状態が「2」であるか否をチェックする。ノード装置の状態が「2」でなければ、判定部35の処理はステップS62に移行する。ノード装置の状態が「2」であれば、ステップS62~S66はスキップされ、判定部35の処理はステップS71に移行する。すなわち、ノード装置の状態が既に「迂回経路なし」と判定されているときは、ステップS62~S66は実行されない。
 ステップS62において、判定部35は、自ノードの状態が「1」であるか否をチェックする。ノード装置の状態が「1」でなければ、判定部35の処理はステップS63に移行する。ノード装置の状態が「1」であれば、ステップS63~S66はスキップされ、判定部35の処理はステップS71に移行する。なお、ステップS62は、ステップS53またはS54において「No」と判定されたときにも実行される。
 ステップS63において、判定部35は、探索情報保持時間が経過したか否かをチェックする。探索情報保持時間は、ステップS46において起動されたタイマによりカウントされる。すなわち、判定部35は、「STAT=0」または「STAT=3」を含むHelloパケットを受信したときから探索情報保持時間が経過したか否かをチェックする。そして、探索情報保持時間が経過していれば、判定部35の処理はステップS64に移行する。一方、探索情報保持時間が経過していなければ、判定部35の処理はステップS71に移行する。
 ステップS64において、判定部35は、自ノードの状態が「0」であるか否をチェックする。ノード装置の状態が「0」でないときは、判定部35の処理はステップS65に移行する。一方、ノード装置の状態が「0」であれば、判定部35の処理はステップS66に移行する。
 ステップS65において、判定部35は、自ノードの状態を「0:初期状態」に更新する。ここで、ステップS65は、ステップS61、S62、S64において「No」と判定されたときに実行される。すなわち、ステップS65は、自ノードの状態が「3:迂回経路あり」のときに実行される。換言すれば、判定部35は、迂回経路が存在すると判定した後、探索情報保持時間が経過すると、自ノードの状態を初期化する。
 ステップS66において、判定部35は、状態管理テーブル23から、探索対象のグローバル宛先に対応する探索情報を削除する。すなわち、判定部35は、自ノードの状態が「0:初期状態」のときに実行される。換言すれば、判定部35は、自ノードの状態を初期化した後、探索情報保持時間が経過すると、状態管理テーブル23から探索情報を削除する。
 このように、判定部35は、ステップS51~S58、S61~S66において、受信したHelloパケットの内容に基づいて状態管理テーブル23を更新する。そして、ボトルネック候補ノードの判定部35は、自ノードがボトルネックであるのか否かを判定する。
 ステップS71において、判定部35は、現在時刻がHelloパケットの送信タイミングか否かをチェックする。ここで、ノード装置は、Helloパケットを定期的に隣接ノードへ送信するために、例えば、パケット生成部33およびパケット送信部34に送信タイミングを通知するためのタイマを備えている。この場合、ステップS72において、Helloパケットの送信タイミングが通知されると、パケット送信部33はHelloパケットを生成し、パケット送信部34はそのHelloパケットを隣接ノードへ送信する。このとき、Helloパケットの「探索対象ノード」「ノード状態」には、状態管理テーブル23に格納されている「探索対象ノード」「状態(STAT)」がそれぞれ書き込まれる。また、状態管理テーブル23に複数のグローバル宛先および/または複数の探索対象ノードが登録されているときは、複数セットの探索情報がHelloパケットに付加される。なお、現在時刻がHelloパケットの送信タイミングでなければ、ステップS72はスキップされる。
 なお、ステップS66において状態管理テーブル23から探索情報が削除された後は、パケット送信部33は、ステップS72において、「探索対象ノード」「ノード状態」が付与されていないHelloパケットを生成する。ただし、パケット生成部33は、状態管理テーブル23から探索情報が削除された後であっても、「探索対象ノード」「ノード状態」が付与されていないHelloパケットを生成してもよい。この場合、パケット送信部33は、例えば、情報が無いことを表す値(例えば、すべてゼロ)を「探索対象ノード」「ノード状態」に書き込むようにしてもよい。
 ステップS73において、判定部35は、グローバル宛先ノード(ここでは、ノードGW)から「迂回経路あり」を表す情報を受信したか否かをチェックする。なお、グローバル宛先ノードは、「STAT=1」を含むHelloパケットを受信すると、「迂回経路あり」を表す情報を探索対象ノードへ送信する。例えば、図22に示す例では、ノード装置GWは、Helloパケット「X、1」を受信すると、「迂回経路あり」を表す情報をノードXへ送信している。
 判定部35は、「迂回経路あり」を表す情報を受信すると、ステップS74において、自ノードの状態を「3:迂回経路あり」に更新する。つづいて、判定部35は、ステップS75において、ボトルネック判定フラグを「0:非ボトルネック」に更新する。なお、「迂回経路あり」を表す情報を受信していなければ、判定部35は、ステップS74~S75の処理をスキップする。
 ボトルネック判定フラグが「3:ボトルネック確定」であれば、ステップS41~S43において「No」と判定される。この場合、判定部35の処理はステップS58に移行する。そして、判定部35は、ステップS58において、「迂回経路なし」を表す情報をグローバル宛先(ここでは、ノードGW)へ通知する。
 ボトルネック判定フラグが「1:単独の孤立」である場合の判定部35の動作は、基本的に、ボトルネック判定フラグが「3」である場合と同じである。ただし、ボトルネック判定フラグが「1」であるときは、判定部35は、ステップS47において、自ノードの状態を「3」に更新する。
 次に、図16~図23に示す実施例を参照しながら、図27~図29のフローチャートの手順を説明する。
 (A)図16に示すノード装置Xの動作
 ノードXのボトルネック判定フラグは、「2:ボトルネック候補」である。よって、ステップS42において「Yes」と判定され、判定部35は、ステップS44において、ノードXの状態を「1:探索中」に更新する。ここで、ノードXは、Helloパケットを受信していないものとする。そうすると、ステップS62において「Yes」と判定され、ノード装置Xは、ステップS72において、Helloパケットを隣接ノードに送信する。このとき、Helloパケットの「グローバル宛先」「探索対象ノード」「状態」には、それぞれ「ノードGW」「ノードX」「1」が設定される。すなわち、ノード装置Xは、Helloパケット「X、1」を隣接ノードに送信する。
 (B)図17~図18に示すノード装置Aの動作
 ノードAのボトルネック判定フラグは、「0:非ボトルネック」である。そして、ノード装置Aは、ノードXからHelloパケット「X、1」を受信する。そうすると、判定部35は、ステップS46において状態管理テーブル23Aを更新する。具体的には、判定部35は、状態管理テーブル23Aの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードAの状態を「1」に更新する。この後、ステップS51、S52、S53において「No」と判定され、ステップS62において「Yes」と判定される。したがって、ノード装置Aも、ノード装置Xと同様に、ステップS72において、Helloパケット「X、1」を隣接ノードに送信する。なお、ノードXからHelloパケット「X、1」を受信したノード装置B、Cの動作は、ノード装置Aと実質的に同じである。
 (C)図19~図20に示すノード装置Dの動作
 ノードDのボトルネック判定フラグは、「0:非ボトルネック」である。また、ノードDは、最上流ノードである。そして、ノード装置Dは、ノードAおよびノードBからそれぞれHelloパケット「X、1」を受信する。そうすると、ノードDの判定部35は、ステップS46において状態管理テーブル23Dを更新する。具体的には、判定部35は、状態管理テーブル23Dの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードDの状態を「1」に更新すると共に、ノードAおよび状態Bの状態も「1」に更新する。
 この後、ステップS51、S52において「No」と判定され、ステップS53において「Yes」と判定されるので、判定部35の処理はステップS54に移行する。このとき、ノードDの状態管理テーブル23Dの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードA、Bの状態はいずれも「1」である。したがって、ステップS54は「Yes」と判定される。
 続いて、ノード装置Dの判定部35は、ステップS55において、状態管理テーブル23Dの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードDの状態を「2」に更新する。そして、ノード装置Dは、Helloパケットを隣接ノードに送信する。このとき、Helloパケットの「グローバル宛先」「探索対象ノード」「状態」には、それぞれ「ノードGW」「ノードX」「2」が設定される。即ち、ノード装置Dは、Helloパケット「X、2」を隣接ノードに送信する。なお、ノードB、CからそれぞれHelloパケット「X、1」を受信したノード装置Eの動作は、ノード装置Dと実質的に同じである。また、ノードX、B、EからそれぞれHelloパケット「X、1」を受信したノード装置Cの動作も、ノード装置Dと実質的に同じである。
 (D)図21に示すノード装置Aの動作
 ノード装置Aは、隣接ノードからそれぞれHelloパケット「X、2」を受信する。ここで、ノードGWへのデータ送信においてノードAを最適なローカル宛先として選択するノードは、図14に示すように、ノードDのみである。よって、ノードAの状態管理テーブル23Aの「グローバル宛先:GW」「探索対象:X」に対応するエントリには、特定隣接ノードとしてノードDのみが登録されている。
 ノード装置AがノードDからHelloパケット「X、2」を受信すると、判定部35は、ステップS46において状態管理テーブル23Aを更新する。具体的には、判定部35は、状態管理テーブル23Aの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードDの状態を「2」に更新する。このとき、ノードAの状態は、未だ「1」である。したがって、ステップS51において「No」と判定され、ステップS52が実行される。
 ノードAの判定部35は、ステップS52において、状態管理テーブル23Aの「グローバル宛先:GW」「探索対象:X」に対応するエントリをサーチする。このとき、ノードAにとっての特定隣接ノードであるノードDの状態は「2」なので、判定部35の処理はステップS55へ移行する。そして、判定部35は、ステップS55において、状態管理テーブル23Aの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードAの状態を「2」に更新する。
 ステップS56において、ノードAの判定部35は、ボトルネック判定フラグをチェックする。ここで、ノードAのボトルネック判定フラグは、上述したように「0」である。よって、ステップS56において「No」と判定され、ステップS57~S58はスキップされる。
 この後、ノード装置Aは、ステップS72において、Helloパケットを隣接ノードに送信する。このとき、Helloパケットの「グローバル宛先」「探索対象ノード」「状態」には、それぞれ「ノードGW」「ノードX」「2」が設定される。すなわち、ノード装置Aは、Helloパケット「X、2」を隣接ノードに送信する。なお、ノードEからHelloパケット「X、2」を受信したノード装置Bの動作は、ノード装置Aと実質的に同じである。
 (E)図21に示すノード装置Xの動作
 ノード装置Xは、隣接ノードからそれぞれHelloパケット「X、2」を受信する。ここで、ノードGWへのデータ送信においてノードXを最適なローカル宛先として選択するノードは、図14に示すように、ノードA、B、Cである。したがって、ノードXの状態管理テーブル23Xの「グローバル宛先:GW」「探索対象:X」に対応するエントリには、特定隣接ノードとしてノードA、B、Cが登録されている。
 ノード装置XがノードA、B、CからそれぞれHelloパケット「X、2」を受信すると、判定部35は、ステップS46において状態管理テーブル23Xを更新する。具体的には、判定部35は、状態管理テーブル23Xの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードA、B、Cの状態をそれぞれ「2」に更新する。このとき、ノードXの状態は、未だ「1」である。したがって、ステップS51において「No」と判定され、ステップS52が実行される。
 ノードXの判定部35は、ステップS52において、状態管理テーブル23Xの「グローバル宛先:GW」「探索対象:X」に対応するエントリをサーチする。このとき、ノードA、B、Cの状態はいずれも「2」なので、判定部35の処理はステップS55へ移行する。そして、判定部35は、ステップS55において、状態管理テーブル23Xの「グローバル宛先:GW」「探索対象:X」に対応するエントリにおいて、ノードXの状態を「2」に更新する。
 ステップS56において、ノードXの判定部35は、ボトルネック判定フラグをチェックする。ここで、ノードXのボトルネック判定フラグは、上述したように「2:ボトルネック候補」である。よって、ステップS56において「Yes」と判定され、ステップS57~S58が実行される。
 ノードXの判定部35は、ステップS57において、ボトルネック判定フラグを「3:ボトルネック確定」に更新する。すなわち、ノードXの判定部35は、ノードXをボトルネックであると判定する。そうすると、判定部35は、ステップS58において、ノードGWへのデータ送信において迂回経路が存在しないことを表す情報をノードGWへ通知する。
 (F)図22~図23に示すノード装置Xの動作
 ゲートウェイ装置(ノードGW)は、図22に示すように、Helloパケット「X、1」を受信すると、ノードXとゲートウェイ装置との間に迂回経路が存在と判定する。そうすると、ゲートウェイ装置は、「迂回経路あり」を表す情報をノードXに通知する。
 ノード装置Xは、ゲートウェイ装置(ノードGW)から「迂回経路あり」を表す情報を受信する。この場合、ステップS73において「Yes」と判定され、ノードXの判定部35は、ステップS74~S75を実行する。すなわち、判定部35は、ステップS74において、ノードXの状態を「3:迂回経路あり」に更新する。また、判定部35は、ステップS75において、ボトルネック判定フラグを「0:非ボトルネック」に更新する。さらに、判定部35は、特に図示しないが、探索情報保持時間をカウントするためのタイマを起動する。
 この後、判定部35は、探索情報保持時間が経過するまで、ステップS41~S75の処理を繰り返し実行する。このとき、ノードXの状態は「3」なので、ノード装置Xは、ステップS72において、Helloパケットを隣接ノードに送信する。このとき、Helloパケットの「グローバル宛先」「探索対象ノード」「状態」には、それぞれ「ノードGW」「ノードX」「3」が設定される。すなわち、ノード装置Xは、Helloパケット「X、3」を隣接ノードに送信する。
 探索情報保持時間が経過すると(ステップS63:Yes)、ノードXの判定部35は、ステップS65において、ノードXの状態を「0:初期状態」に更新する。その後、判定部35は、ステップS66において、状態管理テーブル23Xの「グローバル宛先:GW」「探索対象:X」に対応するエントリの情報を削除する。
 (G)図22~図23に示すノード装置Aの動作
 ノード装置AがノードXからHelloパケット「X、3」を受信すると、ノードAの判定部35は、ステップS46において、ノードAの状態を「3」に更新すると共に、探索情報保持時間をカウントするためのタイマを起動する。ノード装置Aの以降の動作は、上記(F)で説明したノード装置Xの動作と実質的に同じである。すなわち、ノード装置Aは、Helloパケット「X、3」を隣接ノードに送信する。その後、所定時間が経過すると、判定部35は、状態管理テーブル23Aからが対応する探索情報を削除する。Helloパケット「X、3」を受信したときの各ノード装置の動作は、ノード装置Aと実質的に同じである。
 このように、実施形態の迂回経路探索方法においては、特定のノード(実施例では、ボトルネック候補ノード)から送信される探索データ(実施例では、Helloパケット「X、1」)が、最終宛先にまで伝搬するか否かを調査する。このため、特定のノードを経由せずに最終宛先ノードへデータを送信できるか否か、すなわち迂回経路が存在するか否か、を精度よく判定することができる。
 また、実施形態の迂回経路探索方法においては、アドホックネットワーク内の全ノードについてボトルネック判定を行うのではなく、一部のノード(すなわち、ボトルネック候補)についてのみボトルネック判定が実行される。したがって、ノード数が多いネットワークであっても、ボトルネックを発見するために要する時間は短い。この結果、ノード間のリンクの状態が不安定な無線ネットワークにおいても、ボトルネックノードを精度よく検出することができる。
 <他の実施形態>
 図9に示すフローチャートにおいては、迂回経路探索方法は、ボトルネック候補を発見する手順、およびボトルネック候補を対象として迂回経路探索を実行する手順を含む。しかし、発明に係る迂回経路探索方法は、このフローチャートに限定されるものではない。例えば、ノード装置は、図24~図25に示すフローチャートにおいて、自ノードがボトルネック候補であるときに、グローバル宛先へのデータ送信において迂回経路が存在しないと判定してもよい。

Claims (12)

  1.  複数の無線通信装置を備える無線ネットワークにおいて使用される無線通信装置であって、
     前記複数の無線通信装置のうち、自装置に隣接する無線通信装置である隣接装置であって、且つ、最終宛先となる無線通信装置である最終宛先装置へのデータを自装置に送信する無線通信装置である特定隣接装置を識別する識別情報を記憶する記憶部と、
     前記最終宛先装置への経路探索を表す情報を含む探索データを生成する生成部と、
     前記探索データを前記隣接装置にブロードキャストする送信部と、
     前記探索データが前記最終宛先装置へ到達しないことを表す情報を含むデータを、前記記憶部に識別情報が記憶されているすべての特定隣接装置から受信したときに、前記特定隣接装置から前記最終宛先装置への迂回経路が存在しないと判定する判定部、
     を備える無線通信装置。
  2.  請求項1に記載の無線通信装置であって、
     最終宛先装置へのデータ送信において自装置が送信先隣接装置として選択する隣接装置以外のすべての隣接装置が前記特定隣接装置であるときに、前記送信部は、前記探索データを隣接装置にブロードキャストする
     ことを特徴とする無線通信装置。
  3.  請求項1または2に記載の無線通信装置であって、
     前記最終宛先装置へデータを送信するための経路情報を含む通知データを一定周期で隣接装置へブロードキャストする手段を更に備え、
     前記送信部は、前記通知データに前記探索データを付加することで前記隣接装置へ前記探索データをブロードキャストする
     ことを特徴とする無線通信装置。
  4.  請求項1~3のいずれか1つに記載の無線通信装置であって、
     前記探索データが前記最終宛先装置に到達したことを表す通知を前記最終宛先装置から受信すると、前記判定部は、前記特定隣接装置から前記最終宛先装置への迂回経路が存在すると判定する
     ことを特徴とする無線通信装置。
  5.  請求項1~4のいずれか1つに記載の無線通信装置であって、
     前記送信部は、前記判定部による判定結果を表すデータを前記隣接装置にブロードキャストする
     ことを特徴とする無線通信装置。
  6.  請求項1~5のいずれか1つに記載の無線通信装置であって、
     前記最終宛先装置への経路探索を表す情報を含む探索データを前記隣接装置から受信したときに、前記記憶部に特定隣接装置を識別する識別情報が記憶されていなければ、前記送信部は、前記探索データが前記最終宛先装置へ到達しないことを表す情報を含むデータを前記隣接装置にブロードキャストする
     ことを特徴とする無線通信装置。
  7.  請求項1~5のいずれか1つに記載の無線通信装置であって、
     前記最終宛先装置への経路探索を表す情報を含む探索データを前記隣接装置から受信したときに、前記探索データを生成した無線通信装置が前記特定隣接装置である場合には、前記送信部は前記探索データをブロードキャストしない
     ことを特徴とする無線通信装置。
  8.  複数の無線通信装置を備える無線ネットワークにおいて使用される無線通信装置であって、
     前記複数の無線通信装置のうち、自装置に隣接する無線通信装置である隣接装置であって、且つ、最終宛先となる無線通信装置である最終宛先装置へのデータを自装置に送信する無線通信装置である特定隣接装置を識別する識別情報を記憶する記憶部と、
     前記最終宛先装置へのデータ送信において自装置が送信先隣接装置として選択する隣接装置以外のすべての隣接装置が前記特定隣接装置であるときに、前記特定隣接装置から前記最終宛先装置への迂回経路が存在しないと判定する判定部、
     を備える無線通信装置。
  9.  複数の無線通信装置を備える無線ネットワークにおいて無線通信装置により使用される迂回経路探索方法であって、
     前記複数の無線通信装置のうち、自装置に隣接する無線通信装置である隣接装置であって、且つ、最終宛先となる無線通信装置である最終宛先装置へのデータを自装置に送信する無線通信装置である特定隣接装置を検出し、
     前記最終宛先装置への経路探索を表す情報を含む探索データを生成し、
     前記探索データを前記隣接装置にブロードキャストし、
     前記探索データが前記最終宛先装置へ到達しないことを表す情報を含むデータを、すべての前記特定隣接装置から受信したときに、前記特定隣接装置から前記最終宛先装置への迂回経路が存在しないと判定する、
     ことを特徴とする迂回経路探索方法。
  10.  複数の無線通信装置を備える無線ネットワークにおいて使用される迂回経路探索方法であって、
     探索対象無線通信装置において、前記複数の無線通信装置のうち、自装置に隣接する無線通信装置である隣接装置であって、且つ、最終宛先となる無線通信装置である最終宛先装置へのデータを自装置に送信する無線通信装置である特定隣接装置を検出し、
     前記探索対象無線通信装置において、前記最終宛先装置への経路探索を表す情報を含む探索データを生成し、
     前記探索対象無線通信装置から前記探索対象無線通信装置の隣接装置へ前記探索データをブロードキャストし、
     前記探索データを受信した各無線通信装置は、それぞれ前記探索データを隣接装置にブロードキャストし、
     前記最終宛先装置に対する最上流装置は、前記探索データを受信すると、前記探索データが前記最終宛先装置へ到達しないことを表す情報を含む応答データを隣接装置にブロードキャストし、
     前記応答データを受信した各無線通信装置は、それぞれ前記応答データを隣接装置にブロードキャストし、
     前記探索対象無線通信装置は、すべての前記特定隣接装置から前記応答データを受信すると、前記特定隣接装置から前記最終宛先装置への迂回経路が存在しないと判定する
     ことを特徴とする迂回経路探索方法。
  11.  請求項10に記載の迂回経路探索方法であって、
     前記最終宛先装置は、前記探索データを受信すると、前記探索データが前記最終宛先装置に到達したことを表す通知を前記探索対象無線通信装置へ送信し、
     前記探索対象無線通信装置は、前記最終宛先装置から前記通知を受信すると、前記特定隣接装置から前記最終宛先装置への迂回経路が存在すると判定する
     ことを特徴とする迂回経路探索方法。
  12.  請求項11に記載の迂回経路探索方法であって、
     前記探索対象無線通信装置は、迂回経路が存在することを表す情報を隣接装置へブロードキャストし、
     前記探索対象無線通信装置以外の各無線通信装置は、迂回経路が存在することを表す情報を受信したときから所定時間経過した後は、前記探索データを送信しない
     ことを特徴とする迂回経路探索方法。
PCT/JP2010/071296 2010-11-29 2010-11-29 無線通信装置および無線ネットワークにおける迂回経路探索方法 WO2012073315A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012546597A JP5376068B2 (ja) 2010-11-29 2010-11-29 無線通信装置および無線ネットワークにおける迂回経路探索方法
PCT/JP2010/071296 WO2012073315A1 (ja) 2010-11-29 2010-11-29 無線通信装置および無線ネットワークにおける迂回経路探索方法
US13/865,537 US9485676B2 (en) 2010-11-29 2013-04-18 Wireless communication device and method for searching for bypass route in wireless network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/071296 WO2012073315A1 (ja) 2010-11-29 2010-11-29 無線通信装置および無線ネットワークにおける迂回経路探索方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/865,537 Continuation US9485676B2 (en) 2010-11-29 2013-04-18 Wireless communication device and method for searching for bypass route in wireless network

Publications (1)

Publication Number Publication Date
WO2012073315A1 true WO2012073315A1 (ja) 2012-06-07

Family

ID=46171303

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/071296 WO2012073315A1 (ja) 2010-11-29 2010-11-29 無線通信装置および無線ネットワークにおける迂回経路探索方法

Country Status (3)

Country Link
US (1) US9485676B2 (ja)
JP (1) JP5376068B2 (ja)
WO (1) WO2012073315A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014049762A1 (ja) * 2012-09-26 2014-04-03 富士通株式会社 通信装置、通信システム及び通信方法
WO2017154861A1 (ja) * 2016-03-10 2017-09-14 パナソニックIpマネジメント株式会社 マルチホップ通信システム、コントローラ及びプログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011045859A1 (ja) * 2009-10-15 2011-04-21 富士通株式会社 無線通信装置および無線通信プログラム
US9762434B2 (en) * 2011-08-12 2017-09-12 Rambus Inc. Temporal redundancy
WO2013133185A1 (ja) * 2012-03-05 2013-09-12 富士通株式会社 通信システム、及び通信方法
GB201306891D0 (en) * 2013-04-16 2013-05-29 Truphone Ltd International converged mobile services
US10229395B2 (en) 2015-06-25 2019-03-12 Bank Of America Corporation Predictive determination and resolution of a value of indicia located in a negotiable instrument electronic image
US10049350B2 (en) 2015-06-25 2018-08-14 Bank Of America Corporation Element level presentation of elements of a payment instrument for exceptions processing
US10115081B2 (en) * 2015-06-25 2018-10-30 Bank Of America Corporation Monitoring module usage in a data processing system
US10373128B2 (en) 2015-06-25 2019-08-06 Bank Of America Corporation Dynamic resource management associated with payment instrument exceptions processing
US10116523B1 (en) * 2017-04-12 2018-10-30 Fisher-Rosemount Systems, Inc. Predictive connectivity diagnostics for a wireless mesh network in a process control system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008245193A (ja) * 2007-03-29 2008-10-09 Mitsubishi Electric Corp 通信経路設定装置、通信端末、マルチホップネットワークシステム
JP4294723B2 (ja) * 2007-08-28 2009-07-15 パナソニック株式会社 ネットワーク制御装置、方法、及びプログラム
JP4573914B2 (ja) * 2009-01-26 2010-11-04 パナソニック株式会社 中継装置、制御方法、およびプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2836314A1 (fr) * 2002-02-21 2003-08-22 France Telecom Methode dynamique et distribuee de protection locale d'un chemin a commutation d'etiquettes
US7583593B2 (en) * 2004-12-01 2009-09-01 Cisco Technology, Inc. System and methods for detecting network failure
EP1773003B1 (en) * 2005-10-04 2014-01-15 NTT DoCoMo, Inc. Method and apparatus for discovering disjoint routes to multiple service nodes
JP4696314B2 (ja) * 2005-11-14 2011-06-08 株式会社国際電気通信基礎技術研究所 無線装置およびそれを備えた無線ネットワークシステム
JP2009147646A (ja) 2007-12-13 2009-07-02 Sony Corp 無線通信装置、通信状態通知方法、無線通信システム、およびプログラム
JP5058020B2 (ja) * 2008-02-28 2012-10-24 三菱電機株式会社 通信システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008245193A (ja) * 2007-03-29 2008-10-09 Mitsubishi Electric Corp 通信経路設定装置、通信端末、マルチホップネットワークシステム
JP4294723B2 (ja) * 2007-08-28 2009-07-15 パナソニック株式会社 ネットワーク制御装置、方法、及びプログラム
JP4573914B2 (ja) * 2009-01-26 2010-11-04 パナソニック株式会社 中継装置、制御方法、およびプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014049762A1 (ja) * 2012-09-26 2014-04-03 富士通株式会社 通信装置、通信システム及び通信方法
JPWO2014049762A1 (ja) * 2012-09-26 2016-08-22 富士通株式会社 通信装置、通信システム、通信方法及び制御プログラム
US9706470B2 (en) 2012-09-26 2017-07-11 Fujitsu Limited Communications apparatus, communications system, and communications method
WO2017154861A1 (ja) * 2016-03-10 2017-09-14 パナソニックIpマネジメント株式会社 マルチホップ通信システム、コントローラ及びプログラム

Also Published As

Publication number Publication date
US9485676B2 (en) 2016-11-01
US20130229911A1 (en) 2013-09-05
JPWO2012073315A1 (ja) 2014-05-19
JP5376068B2 (ja) 2013-12-25

Similar Documents

Publication Publication Date Title
JP5376068B2 (ja) 無線通信装置および無線ネットワークにおける迂回経路探索方法
KR101212838B1 (ko) 노드 장치, 노드 장치가 실행하는 방법 및 컴퓨터 판독가능한 기록 매체
CN101102268B (zh) Ip环网,ip环网路由设备,及报文转发方法
CN102202371B (zh) 无线通信系统以及节点
US7760718B2 (en) Taxonomy based multiple ant colony optimization approach for routing in mobile ad hoc networks
US7684314B2 (en) Communication node and routing method
JP6036841B2 (ja) 通信制御方法、ネットワークシステム、および通信装置
JP5720793B2 (ja) データ転送方法およびそれを用いるノード装置
JP5533168B2 (ja) ノード及び無線通信システム
JP5958293B2 (ja) 通信方法、通信プログラム、および、ノード装置
JP5464278B2 (ja) 無線通信装置および無線ネットワークにおける経路決定方法
JP5716836B2 (ja) 無線マルチホップネットワークの監視方法
JP4507083B2 (ja) 分散型ネットワークの情報集約方式
JP5317895B2 (ja) 通信端末、情報伝送システムおよび伝送ルート決定方法
JP4806367B2 (ja) 経路選択装置
JP5287373B2 (ja) 通信装置及び通信処理方法
Li et al. A real-time routing protocol for (m, k)-firm streams in wireless sensor networks
JP4311325B2 (ja) ネットワークシステムおよびノードおよび利己的なノードの検出方法
JP2005333238A (ja) 経路管理装置
TW202437790A (zh) 子機、母機、通訊系統、通訊方法及程式產品
JP2016152592A (ja) 経路情報収集プログラム、経路情報収集方法、及びノード装置

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: 10860366

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012546597

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10860366

Country of ref document: EP

Kind code of ref document: A1