WO2012073312A1 - 無線通信装置および無線ネットワークにおける経路決定方法 - Google Patents

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

Info

Publication number
WO2012073312A1
WO2012073312A1 PCT/JP2010/071291 JP2010071291W WO2012073312A1 WO 2012073312 A1 WO2012073312 A1 WO 2012073312A1 JP 2010071291 W JP2010071291 W JP 2010071291W WO 2012073312 A1 WO2012073312 A1 WO 2012073312A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
wireless communication
communication device
route
link
Prior art date
Application number
PCT/JP2010/071291
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 JP2012546594A priority Critical patent/JP5464278B2/ja
Priority to PCT/JP2010/071291 priority patent/WO2012073312A1/ja
Publication of WO2012073312A1 publication Critical patent/WO2012073312A1/ja
Priority to US13/886,866 priority patent/US9578587B2/en

Links

Images

Classifications

    • 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
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/12Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality
    • 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
    • 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 route determination method in the wireless network.
  • each wireless terminal autonomously connects to each other.
  • no access point is installed, and each wireless terminal has route information.
  • Each wireless terminal relays a packet received from a certain adjacent terminal to another adjacent terminal based on the path information.
  • the ad hoc network can transmit a packet to a desired destination.
  • each wireless terminal connected to the ad hoc network performs path control before performing communication with other wireless terminals.
  • a wireless terminal newly connected to an ad hoc network broadcasts presence information to adjacent wireless terminals.
  • the wireless terminal that has received the presence information generates route information corresponding to the presence information, and further transmits the route information to the adjacent wireless terminal.
  • route information related to the new wireless terminal is notified to the wireless terminal on the network.
  • each node connected to the ad hoc network receives route information from an adjacent node.
  • Each node acquires quality information indicating the quality of the route indicated by the route information for the received route information.
  • Each node determines, for each predetermined period, whether or not a plurality of pieces of route information having the same node as the packet destination is received for the received route information. As a result of the determination, if a plurality of route information having the same destination node is received as a result of the determination, the quality information is compared for each of the plurality of received route information, and the result of the comparison is the highest quality.
  • the route information corresponding to the quality information indicating that it exists is selected.
  • Each node relays the selected route information to adjacent nodes.
  • Nodes GW and A to E are connected to the ad hoc network shown in FIG.
  • the node A can perform good communication with the node GW.
  • Nodes B and C can receive radio waves from the node GW, but the quality of communication with the node GW is not good.
  • Nodes D and E cannot receive radio waves from the node GW.
  • the node GW collects data from each of the nodes A to E.
  • the node B holds the following route information. “When the destination of the data packet is the node GW, the data packet is transmitted to the node A”
  • the node B when the node B generates a data packet addressed to the node GW, the node B transmits the data packet to the node A. Then, the node A transfers the data packet received from the node B to the node GW. Thereby, the node GW receives the data of the node B. At this time, the node GW returns an ACK packet corresponding to the received data packet to the node A. Thereafter, it is assumed that the node B transmits a data packet to the node GW through a similar route as necessary. At this time, the node A receives the data packet from the node B and also receives the ACK packet from the node GW. However, the node GW and the node B can communicate with each other. Therefore, the node GW and the node B can mutually control transmission timing using CSMA / CA (Carrier Sense Multiple Access Collision Avoidance), for example. As a result, packet collision at node A is avoided or suppressed.
  • the node D holds the following route information. “When the destination of the data packet is the node GW, the data packet is transmitted to the node A”
  • the node D transmits a data packet to the node A. Then, the node A transfers the received data packet to the node GW, and the node GW returns an ACK packet corresponding to the received data packet to the node A. In this case, the node A receives the data packet from the node D and receives the ACK packet from the node GW.
  • the radio wave from the node GW does not reach the node D. Further, the radio wave from the node D does not reach the node GW. That is, for the node GW, the node D is a “hidden terminal”, and for the node D, the node GW is a “hidden terminal”. Therefore, the node GW and the node D cannot perform transmission timing control for avoiding packet collision. As a result, when node D transmits a data packet destined for node GW to node A, packet collision may occur in node A.
  • the node D can relay the data packet destined for the node GW transmitted from another node (for example, the node E).
  • the node D transfers the data packet transmitted from the node E to the node A, and the node A transfers the data packet to the node GW. Therefore, also in this case, packet collision may occur at the node A.
  • each node simply forwards a packet according to route information without considering a hidden terminal
  • the frequency of occurrence of packet collision increases. If the frequency of occurrence of packet collisions increases, the communication speed decreases and congestion may occur. That is, in the prior art, measures for problems caused by hidden terminals are not sufficient, and communication efficiency may be reduced.
  • An object of the present invention is to improve the communication efficiency of a wireless network.
  • a wireless communication apparatus is used in a wireless network to which a plurality of wireless communication apparatuses are connected, and stores a storage unit that stores information for identifying an adjacent wireless communication apparatus adjacent to the own apparatus;
  • An acquisition unit that acquires information for identifying a second wireless communication device adjacent to the first wireless communication device from a first wireless communication device in the wireless communication device, and an adjacent wireless device according to a data destination
  • a selection unit that selects a communication device; and a transmission unit that transmits the data to an adjacent wireless communication device selected by the selection unit.
  • the selection unit lowers the priority of the first wireless communication device in the process of selecting the adjacent wireless communication device. To do.
  • a route determination method is used in a wireless network to which a plurality of wireless communication devices are connected, stores information for identifying an adjacent wireless communication device adjacent to the wireless communication device in a storage unit, and Information for identifying the second wireless communication device by acquiring information for identifying the second wireless communication device adjacent to the first wireless communication device from the first wireless communication device among the adjacent wireless communication devices. Is stored in the storage unit, and when the information for identifying the second wireless communication device is not stored in the storage unit, the path of the route passing through the first wireless communication device is determined. Lower priority.
  • the communication efficiency of the wireless network is improved.
  • FIG. (2) which shows the Example of a route determination method.
  • FIG. (3) which shows the Example of a route determination method.
  • It is a flowchart which shows the process which updates a link table.
  • It is a flowchart (the 1) which shows the process which updates a routing table.
  • It is a flowchart (the 2) which shows the process which updates a routing table.
  • It is a flowchart which shows an example of a hidden terminal process.
  • 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 terminals are connected.
  • each wireless terminal may be referred to as “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 the node device (that is, a wireless terminal).
  • 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 not directly related to the construction 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 routing table 21, a link table 22, a period table 23, and a work table 24.
  • the routing table 21 stores route information.
  • the route information represents a route for transmitting a packet to a destination wireless terminal.
  • the route information represents the correspondence between the destination node of the packet and the adjacent node that relays the packet.
  • the routing table 21 also stores quality information indicating the quality of the route specified by the route information.
  • the routing table 21 is updated by the routing table updating unit 33 when the route information receiving unit 31 receives a Hello packet.
  • the link table 22 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 32 when the route information reception unit 31 receives a Hello packet.
  • the cycle table 23 stores cycle information for each adjacent node.
  • the period information represents the reception period of the Hello packet transmitted from the adjacent node.
  • the period table 23 is updated by the link table updating unit 32 when the route information receiving unit 31 receives a Hello packet.
  • the period information is used to calculate an evaluation value or a link weight of a link with an adjacent node.
  • the work table 24 has the same structure as the routing table 21 and temporarily stores route information and quality information to be stored in the routing table 21.
  • the control unit 30 includes a route information receiving unit 31, a link table updating unit 32, a routing table updating unit 33, a route information transmitting unit 34, and a packet transmitting / receiving unit 35.
  • the control unit 30 uses a processor to execute a program, thereby executing a route information receiving unit 31, a link table updating unit 32, a routing table updating unit 33, a route information transmitting unit 34, and a packet transmitting / receiving unit 35.
  • 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, a program may be provided from the program server to the node device 1.
  • the route information receiving unit 31 receives a Hello packet from an adjacent node, and acquires route information from the Hello packet. As will be described later, the Hello packet is used for notifying that a node exists and also for transmitting path information. Further, the route information receiving unit 31 passes the received Hello packet to the link table updating unit 32 and the routing table updating unit 33.
  • the link table update unit 32 updates the link information stored in the link table 22.
  • the link table updating unit 32 updates the link information stored in the link table 22 based on the Hello packet received from the route information receiving unit 31.
  • the link table update unit 32 updates the cycle information stored in the cycle table 23 when updating the link information, and updates the link information based on the updated cycle information.
  • the routing table update unit 33 updates the route information stored in the routing table 21. Specifically, the routing table update unit 33 updates the route information stored in the routing table 21 based on the Hello packet received from the route information receiving unit 31.
  • the route information transmission unit 34 generates a Hello packet based on the route information stored in the routing table 21 and the link information stored in the link table 22. Then, the route information transmitting unit 34 broadcasts the generated Hello packet to the adjacent node.
  • the packet transmitting / receiving unit 35 receives a packet from an adjacent node. Further, the packet transmitting / receiving unit 35 refers to the routing table 21 and identifies an adjacent node corresponding to the destination of the received packet. Then, the packet transmitting / receiving unit 35 transmits the received packet to the specified adjacent node.
  • the link table 22 is an example of a storage unit that stores information for identifying adjacent wireless terminals.
  • the route information receiving unit 31 is an example of an acquiring unit that acquires information for identifying a second wireless terminal adjacent to the first wireless terminal.
  • the routing table update unit 33 is an example of a selection unit that selects an adjacent wireless terminal corresponding to each destination.
  • the packet transmission / reception unit 35 is an example of a transmission unit that transmits a packet to an adjacent wireless terminal selected by the selection unit.
  • the route information transmission unit 34 is an example of a notification unit that notifies an evaluation value to an adjacent wireless terminal.
  • FIG. 5 is a diagram for explaining the link weight. 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. A method for detecting the link evaluation value will be described later.
  • FIG. 6 shows an example of the link table 22.
  • FIG. 6 shows the link table 22 included in the node G shown in FIG.
  • link information regarding 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 content.
  • 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 21.
  • FIG. 7 shows the routing table 21 of the node Y shown in FIG.
  • route information and quality information are registered for each destination node. Specifically, “destination node”, “adjacent node”, “route weight”, “link weight”, “hidden terminal weight”, and “evaluation value” are registered in the routing table 21.
  • “Destination node” identifies the destination node of the packet.
  • the “adjacent node” represents an adjacent node located on an optimum route for transmitting a packet to the destination node.
  • Route weight represents a communication cost of a route from “adjacent node” to “destination node”.
  • route weight represents the sum of the link weights of the links on the route from “adjacent node” to “destination node”.
  • Link weight represents a link weight between “adjacent nodes”.
  • the “evaluation value” corresponds to the total communication cost related to the route to the destination node, and is calculated, for example, by the sum of “route weight”, “link weight”, and “hidden terminal weight”.
  • route information and quality information about the destination node G are registered in the first record shown in FIG.
  • the “destination node” and the “adjacent node” are the same. Therefore, “node G” is also written in “adjacent node”.
  • the “link weight” between the nodes Y and G is “6” as shown in FIG.
  • both “route weight” and “hidden terminal weight” are zero. Therefore, “6” is written in the “evaluation value” for the destination node G.
  • route information and quality information about the destination node Z are registered.
  • “node G” is written as “adjacent node”. That is, a route passing through the node G is registered as a route from the node Y to the node Z in the second record.
  • the “path weight” represents a value obtained by subtracting the link weight between the nodes Y and G from the sum of the link weights on the path from the node Y to the node Z. That is, the “route weight” represents the link weight between the nodes G and Z.
  • the “link weight” of the second record is the link weight between the nodes Y and G, and is recorded as the “link weight” in the first record. That is, even if the “link weight” is not recorded in the second record, the “evaluation value” of the second record can be calculated by referring to the first record. Therefore, the “link weight” can be omitted in a record in which “destination node” is not “adjacent node”.
  • the “hidden terminal weight” is determined depending on whether or not it is possible to directly communicate with the transfer destination node of the next hop node.
  • “adjacent node” corresponds to the next hop node.
  • nodes Y and Z cannot communicate directly as described above. That is, for node Y, node Z is a hidden terminal, and for node Z, node Y is a hidden terminal. In this case, the nodes Y and Z cannot perform transmission timing control for avoiding packet collision using CSMA / CA or the like. Thus, for example, when nodes Y and Z transmit packets simultaneously, packet collision occurs at node G. When packet collision occurs, for example, retransmission processing is executed, so that the communication speed decreases. As a result, communication efficiency decreases.
  • the node Y selects a route for transmitting a packet to the node Z
  • the node Y lowers the priority of the route that passes through the next hop node G.
  • the “evaluation value” of the route toward the node Z via the next hop node G increases.
  • the node device selects the route having the smallest evaluation value as the optimum route. Therefore, the route to which the hidden terminal weight is added as described above has a low priority when selecting the optimum route. That is, a route with a hidden terminal is less likely to be selected as the optimum route.
  • the node Y notifies the adjacent node of hidden terminal information indicating whether or not there is a hidden terminal.
  • This notification is realized by, for example, a Hello packet.
  • the node Y notifies the node A of hidden terminal information indicating that a hidden terminal exists on the route from the node Y to the node Z via the node G.
  • the node A lowers the priority of the route passing through the node Y when transmitting a packet destined for the node Z.
  • the node A transmits a packet destined for the node Z to the node X, for example.
  • packet collision at node G is avoided or suppressed, and communication efficiency is improved.
  • FIG. 8 is a diagram showing the format of a Hello packet.
  • the Hello packet includes an ad hoc header, a destination node, an adjacent node, a forward link evaluation value, hidden terminal information, and an evaluation value.
  • the ad hoc header stores information necessary for transmitting a packet in the ad hoc network.
  • the ad hoc header may include information for identifying the transmission source node of the Hello packet.
  • the destination node, the adjacent node, and the evaluation value are the same as the corresponding entries registered in the routing table shown in FIG.
  • the forward link evaluation value represents the quality of the forward link for the adjacent node.
  • the hidden terminal information corresponds to the hidden terminal weight recorded in the routing table shown in FIG. However, the hidden terminal information may be information (for example, flag information) indicating whether or not there is a hidden terminal.
  • FIG. 9 is a diagram for explaining generation of a link table and a routing table. Here, it is assumed that the node Z and the node G newly generate a link table and a routing table. In FIG. 9, the hidden terminal is not considered.
  • the node Z broadcasts a Hello packet A1. At this time, it is assumed that the node Z does not recognize the existence of the adjacent node. In this case, the Hello packet A1 does not have valid data.
  • the Hello packet A1 is received by all the nodes in the area where the radio waves of the node Z reach. That is, the Hello packet A1 is received by a node adjacent to the node Z. In this example, it is assumed that only the node G receives the Hello packet A1.
  • the node G broadcasts a Hello packet A2.
  • the node G recognizes that the node Z is an adjacent node by receiving the Hello packet A1 from the node Z.
  • the Hello packet A2 stores route information and quality information destined for the node Z. That is, the “destination node” and “adjacent node” of the routing table 21G are written in the “destination node” and “adjacent node” of the Hello packet A2, respectively.
  • the Hello packet A2 is received by all the nodes in the area where the radio waves of the node G reach. That is, the Hello packet A2 is received by the adjacent node of the node G. In this example, it is assumed that only the node Z receives the Hello packet A2.
  • Node Z reads the “outward link evaluation value” from the Hello packet A2.
  • the “outward link evaluation value” notified by the Hello packet A2 represents the quality of the link from the node Z to the node G detected at the node G. That is, the “outward link evaluation value” notified by the Hello packet A2 represents the quality of the return link for the node G.
  • the node Z calculates the average of the forward link evaluation value and the return link evaluation value, and writes the calculation result in the “link weight” of the link table 22Z.
  • the node Z creates a record with the node G as the destination in the routing table 21Z.
  • the “adjacent node” is the node G.
  • the “link weight” of the link table 22Z is recorded in the “link weight” of the routing table 21Z.
  • the “evaluation value” of the routing table 21Z is written with the sum of the “link weight” and the “path weight” of the routing table 21Z.
  • the route weight is zero.
  • the node Z broadcasts a Hello packet A3.
  • the link tables 22Z and 22G and the routing tables 21Z and 21G generated as described above represent the following contents.
  • Link table 22Z (1) The node Z has an adjacent node G. (2) The link weight between the nodes Z and G is “10”.
  • Routing table 21Z (1) The destination is the node G (2) When a packet is transmitted from the node Z to the destination node, the next hop is the node G (3) The link weight from the node Z to the next hop node is “10” (4) The evaluation value from the node Z to the destination node is “10”.
  • Link table 22G (1) The node G has an adjacent node Z. (2) The link weight between the nodes G and Z is “10”.
  • Routing table 21G (1) The destination is node Z (2) When transmitting a packet from the node G to the destination node, the next hop is the node Z (3) The link weight from the node G to the next hop node is “10” (4) The evaluation value from the node G to the destination node is “10”
  • each node device generates a link table 22 and a routing table 21 by transmitting and receiving Hello packets to and from adjacent nodes.
  • Each node device periodically transmits a Hello packet as described above. Therefore, each node device updates the link table 22 and the routing table 21 each time it receives a Hello packet.
  • each node device detects the quality of a link with an adjacent node using a Hello packet.
  • the node device detects the quality of the link based on the reception interval of the Hello packet. That is, in the ad hoc network of the embodiment, each node device repeatedly transmits a Hello packet at a predetermined cycle. Therefore, if the link quality is good, the time interval for receiving the Hello packet from the adjacent node in the node device should be constant. In other words, when the link quality is poor, the time interval for receiving the Hello packet from the adjacent node in the node device increases. Therefore, the node device monitors the reception cycle of the Hello packet using the cycle table 23.
  • FIG. 10 is an example of the period table 23.
  • FIG. 10 shows the period table 23 provided in the node Z.
  • the cycle table 23 is generated for each adjacent node.
  • the node Z has adjacent nodes G and X. Therefore, the node Z includes a period table 23G for recording the reception period of the Hello packet transmitted from the node G and a period table 23X for recording the reception period of the Hello packet transmitted from the node X. And the period table 23 (23G, 23X) records "ID" which identifies the received Hello packet, "Period” which represents the time interval which received the Hello packet, and "Reception time” which represents the time which received the Hello packet. To do.
  • the time when the node Z receives the Hello packets 1 to 4 from the node G is recorded.
  • the node device calculates the link evaluation value based on, for example, the standard deviation of the “cycle” accumulated in the cycle table 23.
  • the standard deviation of the period for receiving the Hello packet from the node G is small, and the standard deviation of the period for receiving the Hello packet from the node X is large. Therefore, the link quality from the node G to the node Z is good, and the link evaluation value is small. On the other hand, the quality of the link from the node X to the node Z is not good, and the evaluation value of the link is large.
  • 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. 11 is a diagram showing an outline of the processing procedure of the node device.
  • FIG. 11 shows operations related to transmission and reception of Hello packets.
  • Each node device broadcasts a Hello packet periodically.
  • the route information receiving unit 31 receives a Hello packet transmitted from an adjacent node.
  • the link table update unit 32 updates the link table 22 and the routing table update unit 33 updates the routing table 21. That is, when the node device receives the Hello packet, the link table 22 and the routing table 21 are updated.
  • the link table update unit 32 writes the reception time of the Hello packet in the period table 23.
  • the node device includes a timer not shown in FIG. This timer outputs a timer event signal every time a predetermined time elapses.
  • the route information transmission unit 34 refers to the routing table 21 and the link table 22 to generate a Hello packet and broadcasts it to the adjacent node.
  • the network is constructed by transmitting and receiving Hello packets between nodes in the network shown in FIG.
  • Each node device is assumed to recognize its own adjacent node.
  • the node Z broadcasts a Hello packet Z as shown in FIG.
  • the radio wave transmitted from the node Z reaches the nodes G and X, but does not reach the nodes Y and A.
  • the node Z first receives the Hello packet from the nodes G and X and detects the quality of the link from the nodes G and X to the node Z. In this case, the node Z generates and transmits a Hello packet Z shown in FIG.
  • the Hello packet Z stores route information and quality information destined for the node G, and route information and quality information destined for the node X.
  • the route information destined for the node G indicates that the packet transfer destination is the node G.
  • the quality information destined for the node G includes an evaluation value of a link from the node G to the node Z and an evaluation value of a route from the node Z to the node G.
  • the Hello packet can store route information and quality information for a plurality of destinations.
  • the node G When the node G receives the Hello packet Z from the node Z, the node G updates the link table 22 and the routing table 21.
  • the node G registers link information indicating the link between the nodes G and Z in the link table 22 as shown in FIG. This link information represents the following contents.
  • the node G has an adjacent node Z.
  • the forward link evaluation value (link quality from the node Z to the node G) is “11”.
  • Return link evaluation value (link quality from node G to node Z) is “9”
  • Link weight (link quality between nodes G and Z) is “10”
  • the node G registers route information and quality information about the route from the node G to the node Z in the routing table 21.
  • the route information and quality information represent the following contents.
  • the destination is node Z (2) In the route from the node G to the destination node Z, the next hop is the node Z (3) The route weight from the next hop node Z to the destination node Z is “0”. (4) The link weight from the node G to the next hop node Z is “10”. (5) No hidden terminal (6) Evaluation value from node G to destination node Z is “10”
  • the node X also updates the link table 22 and the routing table 21 when receiving the Hello packet Z from the node Z.
  • the node X registers link information representing the link between the nodes X and Z in the link table 22 as shown in FIG.
  • each node device does not register route information with poor quality in the routing table 21. Therefore, when the node X receives the Hello packet Z, the node X does not register information about the destination node Z in the routing table 21.
  • Node G broadcasts a Hello packet G as shown in FIG.
  • the radio wave transmitted from the node G reaches the nodes Z, Y, and X.
  • the node G first receives Hello packets from the nodes Z, Y, and X, and detects the quality of the link from the nodes Z, Y, and X to the node G.
  • the node G generates and transmits a Hello packet G shown in FIG.
  • the Hello packet G stores route information and quality information destined for the node Y, route information and quality information destined for the node X, and route information and quality information destined for the node Z.
  • node Y When node Y receives Hello packet G from node G, node Y updates link table 22 and routing table 21.
  • the node Y registers link information representing the link between the nodes Y and G in the link table 22 as shown in FIG. This link information represents the following contents.
  • Node Y has an adjacent node G
  • Outward link evaluation value (link quality from node G to node Y) is “6”
  • Return link evaluation value (link quality from node Y to node G) is “6”
  • Link weight (link quality between nodes Y and G) is “6”
  • the node Y registers route information and quality information regarding the route from the node Y to the nodes G and Z.
  • the route information and the quality information of the route from the node Y to the node G represent the following contents.
  • the destination is the node G (2) In the route from node Y to destination node G, the next hop is node G (3) The route weight from the next hop node G to the destination node G is “0”. (4) The link weight from the node Y to the next hop node G is “6”. (5) No hidden terminal (6) Evaluation value from node Y to destination node G is “6”
  • the route information and quality information of the route from the node Y to the node Z represent the following contents.
  • the destination is node Z (2)
  • the next hop is the node G (3)
  • the route weight from the next hop node G to the destination node Z is “10”.
  • the link weight from the node Y to the next hop node G is “6”.
  • There is a hidden terminal (hidden terminal weight 10) (6)
  • the evaluation value from the node Y to the destination node Z is “26”.
  • the node Y checks whether or not the next hop transfer destination identified as described above (that is, the node Z) is registered in the link table 22 of the node Y.
  • “node Z” is not registered in the link table of node Y, as shown in FIG.
  • the node Y determines that the radio wave from the node Z cannot be received. That is, the node Y determines that the node Z is a hidden terminal.
  • the node X When the node X receives the Hello packet G from the node G, the node X updates the link table 22 and the routing table 21.
  • the node X has already registered link information between the nodes X and Z in the link table 22 based on the Hello packet Z received from the node Z in the procedure 1 described above. Then, the node X adds link information representing the link between the nodes X and G to the link table 22 based on the Hello packet G received from the node G, as shown in FIG.
  • the node X registers route information and quality information about the route from the node X to the nodes G and Z in the routing table 21.
  • the route information and the quality information of the route from the node X to the node G are basically the same as the route from the node Y to the node G described above, although the link weight and the evaluation value are different. Therefore, description of this route is omitted.
  • the route information and quality information of the route from the node X to the node Z represent the following contents.
  • the destination is node Z (2)
  • the next hop is the node G (3)
  • the route weight from the next hop node G to the destination node Z is “10”.
  • the link weight from the node Y to the next hop node G is “9” (5)
  • No hidden terminal (hidden terminal weight 0) (6)
  • the evaluation value from the node Y to the destination node Z is “19”.
  • the node X detects the presence or absence of a hidden terminal.
  • the node X first specifies the next hop transfer destination for the destination node Z.
  • the transfer destination of the next hop (that is, the node G) is also the node Z in the path from the node Y to the node Z.
  • the node X specifies “node Z” as the next hop transfer destination in the route destined for the node Z.
  • the node X checks whether or not the next hop transfer destination identified as described above (that is, the node Z) is registered in the link table 22 of the node X.
  • “node Z” is registered in the link table of node X, as shown in FIG.
  • the node X can receive the radio wave from the node Z, and the node Z can receive the radio wave from the node X. That is, the node X determines that “the node Z is not a hidden terminal”.
  • each node device determines whether or not the next hop transfer destination is a hidden terminal in the route to the destination node.
  • the next hop transfer destination is a hidden terminal, as described with reference to FIG. 1, packet collision occurs and communication efficiency decreases. Therefore, if the next hop transfer destination is a hidden terminal in the route to the destination node, the node device increases the evaluation value by adding the “hidden terminal weight” to the evaluation value for the route. As a result, the priority of this route decreases.
  • the node device can avoid packet collision using CSMA / CA, for example. Therefore, if the next hop transfer destination is not a hidden terminal in the route to the destination node, the “hidden terminal weight” is not added to the evaluation value for the route.
  • each node device that has received the Hello packet G in the procedure 2 transmits the Hello packet.
  • the node X transmits the Hello packet X and the node Y transmits the Hello packet Y will be described.
  • the node X generates and transmits a Hello packet X including route information / quality information destined for the nodes G, Z, and A.
  • the route information / quality information for each destination node stored in the Hello packet X is generated from the routing table 21 of the node X shown in FIG.
  • the forward link evaluation value is referred to the link table 22 of the node X shown in FIG.
  • FIG. 13D information destined for node A is omitted.
  • the node device Y transmits a Hello packet Y including route information / quality information destined for the nodes G, Z, and A.
  • the route information / quality information for each destination stored in the Hello packet Y is generated from the routing table 21 of the node Y shown in FIG. 13 (d) and the link table 22 of the node Y shown in FIG. 13 (c).
  • Node A receives the Hello packet X from the node X and receives the Hello packet Y from the node Y. Then, the node A updates the link table 22 and the routing table 21 based on the Hello packets X and Y.
  • the node A registers, in the link table 22, link information representing a link between the nodes A and X and link information representing a link between the nodes A and Y, as shown in FIG.
  • the node A registers the route information and quality information about the route from the node A to each destination node based on the Hello packets X and Y.
  • route information and quality information are shown for two routes from node A to node Z, respectively.
  • information on other destination nodes is omitted.
  • the route information and quality information of the route from node A to node Z via node X represent the following contents.
  • the destination is node Z (2)
  • the next hop is node X (3)
  • the weight of the route from the next hop node X to the destination node Z is “19”
  • the link weight from the node A to the next hop node X is “5”.
  • the evaluation value from the node A to the destination node Z is “34”.
  • route information and quality information of a route from node A to node Z via node Y represent the following contents.
  • the destination is node Z (2)
  • the next hop is node Y (3)
  • the weight of the route from the next hop node Y to the destination node Z is “26”.
  • the link weight from the node A to the next hop node Y is “5”.
  • There is a hidden terminal (hidden terminal weight 10) (6)
  • the evaluation value from the node A to the destination node Z is “41”.
  • Node A selects an optimal route for each destination node. At this time, the route having the smallest “evaluation value” in the routing table 21 is selected as the optimum route. Accordingly, in the example illustrated in FIG. 14, the node A selects a route passing through the node X as a route having the node Z as a destination.
  • route A a route from node A to node Z via node X
  • route A a route from node A to node Z via node Y
  • route A a route from node A to node Z via node Y
  • route A a route from node A to node Z via node Y
  • the evaluation value of the route A / Y / Z is smaller than that of the route A / X / Z.
  • the fact that node G is a hidden terminal is the same in route A / X / Z and route A / Y / Z.
  • the hidden terminal weight related to the node Z is zero in the node X.
  • the node Z is a hidden terminal for the node Y on the route A / Y / Z
  • the evaluation value finally obtained for the destination node Z in the node A is larger in the route A / Y / Z than in the route A / X / Z.
  • each node device refers to the routing table 21 based on the destination of the packet, and selects the route with the smallest evaluation value among the routes corresponding to the destination. Therefore, when the node A generates or receives a packet destined for the node Z, the node A selects the route A / X / Z from the routing table shown in FIG. That is, the node A transmits the packet to the node X. Then, this packet is transmitted to the node Z via the node X and the node G. At this time, since the node X and the node Z control transmission timing using CSMA / CA, packet collision in the node G is avoided or suppressed.
  • the route determination method of the embodiment when an ad hoc network transfers a packet to a destination, a route in which a hidden terminal exists is difficult to select, and a route in which no hidden terminal exists is easy to select. For this reason, in the ad hoc network of the embodiment, packet collision is suppressed and communication efficiency is improved.
  • hidden terminal weights are cumulatively added in the process in which the route information propagates through the node device.
  • the hidden terminal weight corresponding to the node Z is added by the node Y in FIG. 13
  • the hidden terminal weight corresponding to the node G is added by the node A in FIG. Therefore, when the number of hidden terminals increases on the route to the destination node, the evaluation place of the route increases, and the route becomes difficult to be selected as the optimum route.
  • FIG. 15 is a flowchart showing a process for updating the link table 22. This process is executed by the link table update unit 32 in each node. In steps S1 and S2, the link table update unit 32 waits for a Hello packet transmitted from an adjacent node. And the link table update part 32 will specify the transmission origin node of the Hello packet, if a Hello packet is received.
  • step S7 the link table update unit 32 adds a new record to the top of the periodic table. Subsequently, in step S8, the link table update unit 32 writes the reception time of the Hello packet in a new record.
  • step S9 the link table updating unit 32 calculates the difference between the reception time newly written in step S8 and the reception time of the immediately preceding Hello packet and sets it as the “cycle”.
  • step S ⁇ b> 10 the link table update unit 32 calculates a standard deviation for “period”. Further, the link table update unit 32 derives the forward link evaluation value from the standard deviation of the cycle.
  • the relational expression between the standard deviation of the cycle and the forward link evaluation value is not particularly limited, but the evaluation value is increased as the standard deviation is increased.
  • step S11 the link table updating unit 32 newly creates a record of the transmission source node of the Hello packet in the link table. However, when the record of the transmission source node already exists in the link table, the link table update unit 32 identifies the record of the transmission source node. In step S12, the link table updating unit 32 stores (or overwrites) the forward link evaluation value obtained based on the received Hello packet in association with the transmission source node in the link table.
  • step S13 the link table updating unit 32 determines whether or not the received Hello packet includes the forward link evaluation value.
  • step S14 the link table update unit 32 sets (or overwrites) the forward link evaluation value calculated in step S10 as the “link weight”. To do.
  • step S15 the link table update unit 32 associates the forward link evaluation value included in the received Hello packet with the transmission source node of the link table, and returns the link evaluation. Store (or overwrite) as a value.
  • step S16 the link table updating unit 32 calculates the average of the forward link evaluation value and the return link evaluation value, and sets (or overwrites) the calculation result as “link weight”.
  • the link table update unit 32 updates the link table 22 when receiving a Hello packet from an adjacent node.
  • link information representing a link with an adjacent node is stored in the link table 22 of each node device.
  • 16 and 17 are flowcharts showing processing for updating the routing table 21. This process is executed by the routing table update unit 33 in each node.
  • steps S21 to S22 are basically the same as steps S1 to S2. However, steps S21 to S22 are executed by the routing table updating unit 33. That is, the routing table update unit 33 identifies the transmission source node of the received Hello packet.
  • step S23 the routing table update unit 33 creates a new record in the work table 24.
  • steps S24 to S25 the routing table update unit 33 sets the transmission source node specified in step S22 as the “destination node” and “adjacent node” of the new record, respectively.
  • step S26 the routing table update unit 33 searches the link table 22 using the transmission source node, and acquires the “link weight” corresponding to the transmission source node of the Hello packet.
  • step S27 the routing table update unit 33 sets the link weight acquired in step S26 to the “link weight” of the record in which “destination node” and “adjacent node” match the transmission source node of the Hello packet in the work table 24. Write.
  • step S28 the routing table update unit 33 determines whether or not a record having the same “destination node” and “adjacent node” as the record created in the work table 24 exists in the routing table 21. When such a record does not exist in the routing table 21, the routing table update unit 33 adds the record created in the work table 24 to the routing table 21 in step S29. On the other hand, when the above-mentioned record exists in the routing table 21, the routing table update part 33 updates the routing table 21 with the content of the corresponding record of the work table 24 in step S30.
  • step S31 the routing table update unit 33 determines whether or not the Hello packet includes information.
  • Steps S32 to S42 are skipped, and the processing of the routing table update unit 33 proceeds to Step S43.
  • the routing table update unit 33 executes the processes of steps S32 to S42 for each destination node.
  • step S32 the routing table update unit 33 determines whether the “destination node” or “adjacent node” of the route information stored in the Hello packet is the own node. When at least one of “destination node” and “adjacent node” is the local node, steps S32 to S40 are skipped, and the processing of the routing table update unit 33 proceeds to step S41.
  • step S32 when neither the “destination node” nor the “adjacent node” is the local node (step S32: No), the routing table update unit 33 creates a new record in the work table 24 in step S33.
  • step S34 the routing table update unit 33 writes the “destination node” stored in the Hello packet in the “destination node” of the record created in step S33.
  • step S35 the routing table update unit 33 writes the transmission source node of the Hello packet in the “adjacent node” of the record created in step S33.
  • step S36 the routing table update unit 33 executes hidden terminal processing.
  • the hidden terminal process which will be described in detail later, includes a process of determining the hidden terminal weight.
  • step S37 the routing table update unit 33 writes the “evaluation value” stored in the Hello packet in the “route weight” of the record created in step S33.
  • Steps S38 to S40 are basically the same as steps S28 to S30. That is, the routing table update unit 33 writes information generated using the work table 24 in the routing table 21.
  • the routing table update unit 33 determines whether or not all the information about each destination node stored in the received Hello packet has been processed. At this time, if an unprocessed destination node remains, the routing table update unit 33 acquires information of the next destination node from the Hello packet, and returns to Step S32. When the processing of steps S32 to S40 is completed for all destination nodes stored in the Hello packet, the routing table update unit 33 calculates the evaluation value and stores it in the routing table 21 in step S43.
  • FIG. 18 is a flowchart illustrating an example of hidden terminal processing.
  • the hidden terminal process corresponds to step S36 in FIG. 17 and is executed by the routing table update unit 33.
  • the routing table update unit 33 specifies the next-hop transfer destination node in the route to the processing-target destination node.
  • destination node to be processed means one destination node selected from the destination nodes whose path information is stored in the Hello packet in the flowchart shown in FIG.
  • the next hop is, for example, a transmission source node of a Hello packet.
  • the next hop transfer destination node is specified by, for example, “adjacent node” for the destination node to be processed, which is stored in the Hello packet.
  • the “hidden terminal weight” is set in the corresponding record of the routing table 21 by the routing table updating unit 33 executing step S39 or S40.
  • FIG. 19 is a flowchart showing processing for calculating an evaluation value for a destination node. This process corresponds to step S43 in FIG. 17 and is executed by the routing table update unit 33. Further, the routing table update unit 33 executes the process of the flowchart of FIG. 19 for each record of the routing table 21.
  • link weight is omitted in the routing table 21 in a record in which “destination node” is not “adjacent node”.
  • the omission of the link weight is as described with reference to FIG.
  • step S61 the routing table update unit 33 determines whether or not “link weight” is stored in the processing target record of the routing table 21. If “link weight” is stored in the processing target record, in step S62, the routing table update unit 33 writes the “link weight” stored in the processing target record in the “evaluation value” of the record.
  • the routing table update unit 33 When the “link weight” is not stored in the processing target record, in step S63, the routing table update unit 33 includes records having “adjacent node” and “adjacent node” of the processing target record as “destination node”. Search in the routing table 21. In step S64, the routing table update unit 33 acquires the “link weight” from the record specified by the search in step S63.
  • step S65 the routing table updating unit 33 calculates the sum of the “route weight” of the processing target record, the “link weight” acquired in step S64, and the “hidden terminal weight” determined in steps S53 to S54. Then, the routing table update unit 33 stores this calculation result in the routing table 21 as an “evaluation value”.
  • the routing table update unit 33 determines whether or not an unprocessed record remains in the routing table 21. If an unprocessed record remains, the routing table update unit 33 executes steps S61 to S65 for the next record.
  • FIG. 20 is a flowchart showing processing for transmitting a Hello packet. This process is executed by the path information transmitting unit 34 when the timer generates a timer event signal. The timer generates a timer event signal at a predetermined time interval.
  • step S71 the route information transmission unit 34 waits for a timer event signal. Then, when receiving the timer event signal, the path information transmitting unit 34 executes steps S72 to S76.
  • step S72 the route information transmitting unit 34 determines whether or not the routing table 21 has been created in its own node. When the routing table 21 has not been created, the route information transmitting unit 34 skips steps S73 to S75 and transmits a Hello packet in step S76. In this case, the route information transmission unit 34 transmits an empty Hello packet (that is, a Hello packet that does not store route information or the like).
  • step S73 the route information transmission unit 34 groups the records in the routing table for each “destination node”.
  • step S74 the path information transmission unit 34 ranks the records for each destination group based on the “evaluation value”. At this time, for each destination group, the record having the smallest evaluation value, the record having the second smallest evaluation value, and the record having the third smallest evaluation value are “first”, “second”, and “third”, respectively. Is given.
  • step S75 the route information transmitting unit 34 extracts the first record from the routing table 21 for each destination group. Then, the route information transmission unit 34 generates a Hello packet that stores the contents of the record extracted from each destination group. That is, for each destination node, information about the path with the smallest evaluation value (that is, the path with the highest quality or efficiency) is stored in the Hello packet.
  • the route information transmitting unit 34 sets the “destination node”, “adjacent node”, “hidden terminal weight”, and “evaluation value” of the routing table 21 to “destination node”, “adjacent node”, “hidden” of the Hello packet, respectively. Set to “terminal information” and “evaluation value”. However, the “outward link evaluation value” of the Hello packet is acquired from the corresponding record in the link table 22.
  • the route information transmission unit 34 transmits a Hello packet in step S76.
  • the path information held by each node device is notified to its adjacent nodes.
  • the node device that has received the route information from the adjacent node notifies the other adjacent nodes of the route information. In this way, the route information is notified to each node device in the ad hoc network.
  • the node device notifies the adjacent node of the evaluation value of the optimum route to the destination node.
  • the route evaluation value includes not only the link weight indicating the link quality but also the hidden terminal weight determined depending on the presence or absence of the hidden terminal. That is, the information notified from the node device to the adjacent node includes the influence of the hidden terminal. Therefore, in the above route determination method, the node device does not necessarily need to notify the adjacent node of information that directly represents whether or not there is a hidden terminal. For example, the Hello packet shown in FIG. 8 does not necessarily need to store “hidden terminal information”.
  • the hidden terminal weight is “10”, but is preferably determined based on the network configuration or the operation policy. For example, when the communication efficiency of the network strongly depends on the link quality, the hidden terminal weight is made smaller than the link weight. Alternatively, when the network communication efficiency strongly depends on the packet collision caused by the hidden terminal, the hidden terminal weight may be increased as compared with the link weight.
  • each route is represented by the sum of the link weight (including the route weight) and the hidden terminal weight. Then, for each destination, the route with the smallest evaluation value is selected as the optimum route. However, each node device may select the optimum route based on other criteria.
  • FIG. 21 is a diagram illustrating a route determination method according to another embodiment.
  • FIG. 21 shows a routing table 21 provided in a certain node device.
  • the routing table 21 stores route information / quality information about the destination node GW.
  • a route n1 (route passing through the adjacent node n1), a route n2 (route passing through the adjacent node n2), a route n3 (route passing through the adjacent node n3), A route n4 (a route passing through the adjacent node n4) is registered.
  • the evaluation value of each route represents the sum of link weights up to the destination node GW.
  • the hidden terminal flag indicates whether or not the forwarding destination node of the next hop node is a hidden terminal.
  • the first record (route n1) indicates that the transfer destination node of the next hop node (adjacent node n1) is a hidden terminal in the route to the destination node GW.
  • the second record (route n2) indicates that the transfer destination node of the next hop node (adjacent node n2) is not a hidden terminal in the route to the destination node GW.
  • the method for determining whether or not the transfer destination node of the next hop node is a hidden terminal is the same as that of the embodiment shown in FIGS.
  • the routing table update unit 33 determines the order of each route for the destination node in the following procedure.
  • routes n2 and n4 are extracted by the procedure (1). Subsequently, “route n2: first place” and “route n4: second place” are obtained by the procedure (2). Furthermore, “path n1: third place” and “path n3: fourth place” are obtained by procedure (3).
  • the priority of the path where the hidden terminal exists is low. That is, it is difficult to select a route where a hidden terminal exists.
  • the routing table update unit 33 executes only the procedure (3). In this case, the routing table update unit 33 selects a route based only on the evaluation value.
  • the route information transmission unit 34 transmits a Hello packet to the adjacent node.
  • the “hidden terminal information” of this Hello packet the “hidden terminal flag” of the routing table 21 is written. That is, the node device notifies the adjacent node whether or not there is a hidden terminal.
  • each node device receives hidden terminal information indicating whether or not there is a hidden terminal from an adjacent node, each node device refers to the hidden terminal information and determines an optimum route to the destination node. Specifically, the node device lowers the priority of the adjacent node when the adjacent node has a hidden terminal.
  • FIG. 22 is a diagram illustrating a method for determining a route in consideration of the number of hidden terminals.
  • FIG. 22 it is assumed that there are the following three routes from the node A to the destination node GW. Further, it is assumed that the following three routes are registered in the routing table 21 of the node B.
  • Route n1 Route through node B, n1, n4 to destination node GW
  • Route 2 Route through node B, n2 to destination node GW
  • n3 Via nodes B, n3, n5, n6 To the destination node GW
  • node A can receive radio waves transmitted from nodes B and n3, but cannot receive radio waves transmitted from nodes n1 and n2. That is, the nodes B and n3 are registered in the link table 22 of the node A, but the nodes n1 and n2 are not registered.
  • the route information transmitting unit 34 notifies the adjacent node of the route information of the optimum route for each destination node.
  • the route information transmitting unit 34 notifies the adjacent nodes of route information of all or a predetermined number of routes stored in the routing table 21 for each destination node.
  • the node A When the node A receives the route information on the routes n1 to n3 from the node B, the node A detects the presence or absence of a hidden terminal for each route. In this example, the node A can receive the radio wave of the node n3, but cannot receive the radio waves of the nodes n1 and n2. Therefore, the node A determines that the nodes n1 and n2 are hidden terminals. That is, the node A detects that there are two hidden terminals on the route passing through the node B.
  • the routing table updating unit 33 of the node A determines the hidden terminal weight according to the number of hidden terminals.
  • the hidden terminal weight may be determined to be proportional to the number of hidden terminals.
  • the routing table update unit 33 of the node A sets the hidden terminal weight of the route passing through the node B to “20”.
  • Each node device may consider a hidden terminal only when the destination is a specific node device determined in advance.
  • the specific node device is, for example, a gateway node.
  • the gateway node is not particularly limited, but is connected to a server outside the ad hoc network, collects data from each node in the ad hoc network, and transmits it to the server device.
  • the routing table update unit 33 determines whether or not the destination node is a gateway node before executing step S36 (hidden terminal processing) shown in FIG. Then, when the destination node is the gateway node, the routing table update unit 33 executes the hidden terminal process in step S36. On the other hand, if the destination node is not a gateway node, the routing table update unit 33 skips step S36.
  • This method improves the transmission efficiency of data addressed to a specific node. Therefore, this method is particularly preferable in a system in which a certain node device (for example, a gateway node) collects data of each node.
  • a certain node device for example, a gateway node
  • each node device notifies the contents of its own routing table to the adjacent node.
  • a predetermined specific node device for example, the gateway node described above
  • the gateway node transmits route information destined for the gateway node.
  • the other node devices receive and hold the route information transmitted from the gateway node and destined for the gateway, and forward the route information to each adjacent node.
  • each node device In such a network, traffic related to transmission and reception of route information is reduced. Therefore, data communication efficiency is improved.
  • each node device In particular, in a system in which a gateway node collects data of each node, each node device only needs to have route information addressed to the gateway node, and this method is useful.

Abstract

 無線ネットワークにおいて使用される無線通信装置は、記憶部、取得部、選択部、送信部を備える。記憶部は、自装置に隣接する隣接無線通信装置を識別する情報を記憶する。取得部は、隣接無線通信装置の中の第1の無線通信装置から、第1の無線通信装置に隣接する第2の無線通信装置を識別する情報を取得する。選択部は、データの宛先に応じて、隣接無線通信装置を選択する。送信部は、選択部により選択される隣接無線通信装置へデータを送信する。選択部は、第2の無線通信装置を識別する情報が記憶部に記憶されていないときは、隣接無線通信装置を選択する処理において第1の無線通信装置の優先度を低くする。

Description

無線通信装置および無線ネットワークにおける経路決定方法
 本発明は、無線ネットワークにおいて使用される無線通信装置および無線ネットワークにおける経路決定方法に係わる。
 近年、各無線端末が自律的に相互に接続するアドホックネットワークの研究が進められている。アドホックネットワークにおいては、アクセスポイントは設置されず、各無線端末が経路情報を有する。そして、各無線端末は、ある隣接端末から受信したパケットを、経路情報に基づいて他の隣接端末へ中継する。この構成により、アドホックネットワークは、所望の宛先へパケットを送信できる。
 ところで、アドホックネットワークにおいては、電波強度の変化や無線端末の移動などに伴い、ネットワーク環境が頻繁に変化する。このため、アドホックネットワークに接続する各無線端末は、他の無線端末との間で通信を行う前に経路制御を行う。例えば、アドホックネットワークに新たに接続した無線端末は、隣接する無線端末へ存在情報をブロードキャストする。存在情報を受信した無線端末は、その存在情報に対応する経路情報を生成し、さらに、その経路情報を隣接無線端末へ送信する。この結果、新たな無線端末に係わる経路情報は、ネットワーク上の無線端末に通知される。
 なお、関連する技術として、下記の経路情報中継方法が提案されている。すなわち、アドホックネットワークに接続するノード各々は、隣接ノードから経路情報を受信する。ノード各々は、受信した経路情報について、経路情報で示される経路の品質を示す品質情報を取得する。ノード各々は、受信した経路情報について、パケットの宛先となるノードが同一である経路情報が複数受信されているか否かを、所定の周期ごとに判定する。ノード各々は、判定した結果、宛先となるノードが同一である経路情報が複数受信されている場合には、複数受信された経路情報各々について品質情報各々を比較し、比較の結果最も高い品質であることを示す品質情報に対応する経路情報を選択する。ノード各々は、選択した経路情報を、隣接ノードに対して中継する。(例えば、特許文献1)
特開2009-267532号公報
 従来のアドホックネットワークにおいては、隠れ端末に起因する問題への対策が十分でなかった。以下、図1を参照しながら、隠れ端末に起因する問題について説明する。
 図1に示すアドホックネットワークには、ノードGW、A~Eが接続されている。ここで、ノードAは、ノードGWと良好な通信を行うことができるものとする。ノードB、Cは、ノードGWからの電波を受信できるが、ノードGWとの通信の品質は良好ではない。ノードD、Eは、ノードGWからの電波を受信できない。そして、ノードGWは、各ノードA~Eからデータを収集するものとする。
 上記アドホックネットワークにおいて、ノードBは、下記の経路情報を保持しているものとする。
「データパケットの宛先がノードGWであるときは、そのデータパケットをノードAへ送信する」
 この場合、ノードBは、ノードGW宛てのデータパケットを生成すると、そのデータパケットをノードAへ送信する。そうすると、ノードAは、ノードBから受信したデータパケットをノードGWへ転送する。これにより、ノードGWは、ノードBのデータを受信する。このとき、ノードGWは、受信したデータパケットに対応するACKパケットをノードAへ返送する。以降、ノードBは、必要に応じて、同様の経路でノードGWへデータパケットを送信するものとする。このとき、ノードAは、ノードBからデータパケットを受信すると共に、ノードGWからACKパケットを受信する。ただし、ノードGWおよびノードBは、相互に通信可能である。よって、ノードGWおよびノードBは、例えばCSMA/CA(Carrier Sense Multiple Access Collision Avoidance)を利用して、互いに送信タイミングを制御することができる。この結果、ノードAにおけるパケット衝突が回避または抑制される。
 また、ノードDは、下記の経路情報を保持しているものとする。
「データパケットの宛先がノードGWであるときは、そのデータパケットをノードAへ送信する」
 この場合、ノードDは、ノードBと同様に、ノードAへデータパケットを送信する。そうすると、ノードAは、受信したデータパケットをノードGWへ転送し、ノードGWは、受信したデータパケットに対応するACKパケットをノードAへ返送する。このケースでは、ノードAは、ノードDからデータパケットを受信すると共に、ノードGWからACKパケットを受信する。
 しかしながら、ノードGWからの電波はノードDには届かない。また、ノードDからの電波はノードGWには届かない。すなわち、ノードGWにとってノードDは「隠れ端末」であり、ノードDにとってノードGWは「隠れ端末」である。したがって、ノードGWおよびノードDは、パケット衝突を回避するための送信タイミング制御を行うことができない。この結果、ノードDが、ノードGWを宛先とするデータパケットをノードAへ送信すると、ノードAにおいてパケット衝突が発生し得る。
 ここで、ノードDは、他のノード(例えば、ノードE)から送信された、ノードGWを宛先とするデータパケットを中継することができる。この場合、ノードDは、ノードEから送信されたデータパケットをノードAへ転送し、ノードAは、そのデータパケットをノードGWへ転送する。したがって、この場合も、ノードAにおいてパケット衝突が発生し得る。
 このように、各ノード(無線端末)が、隠れ端末を考慮することなく、単純に経路情報に従ってパケットを転送すると、パケット衝突の発生頻度が高くなる。そして、パケット衝突の発生頻度が高くなると、通信速度が低下し、輻輳が発生するおそれがある。すなわち、従来技術においては、隠れ端末に起因する問題への対策が十分ではなく、通信効率が低下することがあった。
 本発明の課題は、無線ネットワークの通信効率を向上させることである。
 本発明の1つの態様に係る無線通信装置は、複数の無線通信装置が接続される無線ネットワークにおいて使用され、自装置に隣接する隣接無線通信装置を識別する情報を記憶する記憶部と、前記隣接無線通信装置の中の第1の無線通信装置から、前記第1の無線通信装置に隣接する第2の無線通信装置を識別する情報を取得する取得部と、データの宛先に応じて、隣接無線通信装置を選択する選択部と、前記選択部により選択される隣接無線通信装置へ前記データを送信する送信部と、を備える。前記選択部は、前記第2の無線通信装置を識別する情報が前記記憶部に記憶されていないときは、前記隣接無線通信装置を選択する処理において前記第1の無線通信装置の優先度を低くする。
 本発明の1つの態様に係る経路決定方法は、複数の無線通信装置が接続される無線ネットワークにおいて使用され、無線通信装置に隣接する隣接無線通信装置を識別する情報を記憶部に記憶し、前記隣接無線通信装置の中の第1の無線通信装置から、前記第1の無線通信装置に隣接する第2の無線通信装置を識別する情報を取得し、前記第2の無線通信装置を識別する情報が前記記憶部に記憶されているか否かを判定し、前記第2の無線通信装置を識別する情報が前記記憶部に記憶されていないときは、前記第1の無線通信装置を経由する経路の優先度を低くする。
 開示の装置または方法によれば、無線ネットワークの通信効率が向上する。
隠れ端末に起因する問題を説明する図である。 実施形態の無線ネットワークの構成を説明する図である。 ノード装置の構成を示す図である。 ノード装置の機能を説明するブロック図である。 リンク重みについて説明する図である。 リンクテーブルの一例を示す図である。 ルーティングテーブルの一例を示す図である。 Helloパケットのフォーマットを示す図である。 リンクテーブルおよびルーティングテーブルの生成について説明する図である。 周期テーブルの実施例を示す図である。 ノード装置の処理手順の概要を示す図である。 経路決定方法の実施例を示す図(その1)である。 経路決定方法の実施例を示す図(その2)である。 経路決定方法の実施例を示す図(その3)である。 リンクテーブルを更新する処理を示すフローチャートである。 ルーティングテーブルを更新する処理を示すフローチャート(その1)である。 ルーティングテーブルを更新する処理を示すフローチャート(その2)である。 隠れ端末処理の一例を示すフローチャートである。 評価値を算出する処理を示すフローチャートである。 Helloパケットを送信する処理を示すフローチャートである。 他の実施形態の経路決定方法を説明する図である。 隠れ端末の数を考慮して経路を決定する方法を説明する図である。
 図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を格納する。
 ルーティングテーブル21は、経路情報を格納する。経路情報は、宛先となる無線端末にパケットを送信する経路を表す。換言すると、経路情報は、パケットの宛先ノードとパケットを中継する隣接ノードとの対応関係を表す。また、ルーティングテーブル21は、経路情報により特定される経路の品質を表す品質情報も記憶する。なお、ルーティングテーブル21は、経路情報受信部31がHelloパケットを受信したときに、ルーティングテーブル更新部33により更新される。
 リンクテーブル22は、リンク情報を格納する。リンク情報は、自ノードと隣接ノードとの間のリンクの品質を表す。なお、リンクテーブル22は、経路情報受信部31がHelloパケットを受信したときに、リンクテーブル更新部32により更新される。
 周期テーブル23は、各隣接ノードについて周期情報を格納する。周期情報は、隣接ノードから送信されるHelloパケットの受信周期を表す。なお、周期テーブル23は、経路情報受信部31がHelloパケットを受信したときに、リンクテーブル更新部32により更新される。周期情報は、この例では、隣接ノードとの間のリンクの評価値またはリンク重みを計算するために使用される。ワークテーブル24は、ルーティングテーブル21と同じ構造を有し、ルーティングテーブル21に格納するための経路情報および品質情報を一時的に格納する。
 制御部30は、経路情報受信部31、リンクテーブル更新部32、ルーティングテーブル更新部33、経路情報送信部34、パケット送受信部35を備える。なお、制御部30は、この例では、プロセッサを用いてプログラムを実行することにより、経路情報受信部31、リンクテーブル更新部32、ルーティングテーブル更新部33、経路情報送信部34、パケット送受信部35を実現する。この場合、プログラムは、記憶部20の不揮発性メモリ内に予め格納されてもよい。また、プログラムは、可搬型の記録媒体からノード装置1に提供されるようにしてもよい。可搬型の記録媒体は、例えば、CD-ROM、DVD、USBメモリ等の半導体メモリである。さらに、プログラムサーバからノード装置1へプログラムを提供してもよい。
 経路情報受信部31は、隣接ノードからHelloパケットを受信し、そのHelloパケットから経路情報を取得する。なお、後で説明するが、Helloパケットは、ノードが存在することを通知するために使用されると共に、経路情報を伝送するためにも使用される。また、経路情報受信部31は、受信したHelloパケットを、リンクテーブル更新部32およびルーティングテーブル更新部33に渡す。
 リンクテーブル更新部32は、リンクテーブル22に格納されているリンク情報を更新する。ここで、リンクテーブル更新部32は、経路情報受信部31から受け取るHelloパケットに基づいて、リンクテーブル22に格納されているリンク情報を更新する。また、リンクテーブル更新部32は、リンク情報の更新に際して、周期テーブル23に格納されている周期情報を更新し、更新した周期情報に基づいてリンク情報を更新する。
 ルーティングテーブル更新部33は、ルーティングテーブル21に格納されている経路情報を更新する。具体的には、ルーティングテーブル更新部33は、経路情報受信部31から受け取るHelloパケットに基づいて、ルーティングテーブル21に格納されている経路情報を更新する。
 経路情報送信部34は、ルーティングテーブル21に格納されている経路情報およびリンクテーブル22に格納されているリンク情報に基づいて、Helloパケットを生成する。そして、経路情報送信部34は、生成したHelloパケットを隣接ノードへブロードキャストする。
 パケット送受信部35は、隣接ノードからパケットを受信する。また、パケット送受信部35は、ルーティングテーブル21を参照し、受信パケットの宛先に対応する隣接ノードを特定する。そして、パケット送受信部35は、特定した隣接ノードへ、受信パケットを送信する。
 なお、リンクテーブル22は、隣接無線端末を識別する情報を記憶する記憶部の一例である。経路情報受信部31は、第1の無線端末に隣接する第2の無線端末を識別する情報を取得する取得部の一例である。ルーティングテーブル更新部33は、宛先ごとに対応する隣接無線端末を選択する選択部の一例である。パケット送受信部35は、選択部により選択される隣接無線端末へパケットを送信する送信部の一例である。経路情報送信部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間のリンクの方が、品質が良いことを表している。なお、リンク評価値の検出方法については、後で説明する。
 図6は、リンクテーブル22の一例を示す。なお、図6は、図5に示すノードGが有するリンクテーブル22を示している。
 リンクテーブル22には、隣接ノードとの間のリンクについてのリンク情報が登録される。リンク情報は、「隣接ノード」「往路リンク評価値」「復路リンク評価値」「リンク重み」を含む。「隣接ノード」は、リンクの接続先のノードを識別する。「往路リンク評価値」は、隣接ノードにとっての往路リンクの品質を表す。「復路リンク評価値」は、隣接ノードにとっての復路リンクの品質を表す。「リンク重み」は、「往路リンク評価値」および「復路リンク評価値」の平均を表す。
 例えば、図6に示す第1レコードに登録されているリンク情報は、以下の内容を表している。
隣接ノード:Z
往路リンク評価値(ノードZからノードGへ向かうリンクの品質):11
復路リンク評価値(ノードGからノードZへ向かうリンクの品質):9
リンク重み(ノードGとノードZとの間のリンクの品質):10
 図7は、ルーティングテーブル21の一例を示す。なお、図7は、図5に示すノードYが有するルーティングテーブル21を示している。
 ルーティングテーブル21には、宛先ノードごとに経路情報および品質情報が登録される。具体的には、ルーティングテーブル21には、「宛先ノード」「隣接ノード」「経路重み」「リンク重み」「隠れ端末重み」「評価値」が登録される。「宛先ノード」は、パケットの宛先ノードを識別する。「隣接ノード」は、宛先ノードへパケットを送信するための最適な経路上に位置する隣接ノードを表す。「経路重み」は、「隣接ノード」から「宛先ノード」までの経路の通信コストを表す。具体的には、「経路重み」は、「隣接ノード」から「宛先ノード」までの経路上の各リンクのリンク重みの総和を表す。「リンク重み」は、「隣接ノード」との間のリンク重みを表す。「隠れ端末重み」は、宛先ノードへの経路上に隠れ端末が存在するか否かに応じて決定される。例えば、隠れ端末が存在しなければ「隠れ端末重み=0」であり、隠れ端末が存在するときは「隠れ端末重み=10」である。「評価値」は、宛先ノードへの経路に係わる総通信コストに相当し、例えば「経路重み」「リンク重み」「隠れ端末重み」の和により算出される。
 例えば、図7に示す第1レコードには、宛先ノードGについての経路情報および品質情報が登録されている。ここで、宛先ノードが隣接ノードであるときは、「宛先ノード」および「隣接ノード」は同一である。よって、「隣接ノード」にも「ノードG」が書き込まれている。また、ノードY、G間の「リンク重み」は、図5に示すように「6」である。更に、宛先ノードが隣接ノードであるときは、「経路重み」および「隠れ端末重み」はいずれもゼロである。したがって、宛先ノードGについての「評価値」には「6」が書き込まれる。
 図7に示す第2レコードには、宛先ノードZについての経路情報および品質情報が登録されている。この例では、「隣接ノード」として「ノードG」が書き込まれている。すなわち、第2レコードには、ノードYからノードZへの経路として、ノードGを経由する経路が登録されている。「経路重み」は、ノードYからノードZへの経路上のリンク重みの和から、ノードY、G間のリンク重みを差し引いた値を表している。すなわち、「経路重み」は、ノードG、Z間のリンク重みを表す。
 なお、第2レコードの「リンク重み」は、ノードY、G間のリンク重みであり、第1レコードにおいて「リンク重み」として記録されている。即ち、第2レコードにおいて「リンク重み」が記録されていなくても、第1レコードを参照すれば、第2レコードの「評価値」を算出することができる。したがって、「宛先ノード」が「隣接ノード」でないレコードにおいては、「リンク重み」を省略できる。
 「隠れ端末重み」は、ネクストホップノードの転送先ノードと直接的に通信可能か否かに応じて決定される。ここで、「隣接ノード」がネクストホップノードに相当する。また、転送先ノードは、宛先ノードへ向かう経路上での、ネクストホップノードの隣接ノードに相当する。そして、ネクストホップノードの転送先ノードと直接的に通信可能なときは「隠れ端末重み=0」であり、ネクストホップノードの転送先ノードと直接的に通信できないときは「隠れ端末重み=10」である。図5に示す例では、ノードYからノードZへの経路において、ノードYのネクストホップはノードGであり、ノードGの転送先はノードZである。ところが、図5に示すように、ノードZから送信される電波は、ノードYには到達しない。すなわち、ノードYは、ネクストホップの転送先であるノードZと直接的に通信できない。このため、図6に示す第2レコードにおいて「隠れ端末重み=10」が書き込まれている。したがって、「ノードY、G間のリンク重み=10」「ノードG、Z間のリンク重み=6」「隠れ端末重み=10」を加算することにより、「評価値=26」が得られる。
 ここで、図5を参照しながら隠れ端末について簡単に説明する。図5において、ノードY、Zは、上述したように、直接的に通信を行うことができない。すなわち、ノードYにとってノードZは隠れ端末であり、ノードZにとってノードYは隠れ端末である。この場合、ノードY、Zは、CSMA/CA等を利用してパケット衝突を回避するための送信タイミング制御を行うことができない。よって、例えば、ノードY、Zが同時にパケットを送信すると、ノードGにおいてパケット衝突が発生する。パケット衝突が発生すると、たとえば再送処理が実行されるので、通信速度が低下してしまう。この結果、通信効率が低下する。
 このように、宛先ノードへの経路上に隠れ端末が存在するときは、パケット衝突に起因して通信効率が低下する。したがって、上述の例では、ノードYは、ノードZへパケットを送信するための経路を選択する際に、ネクストホップノードGを経由する経路の優先度を低くする。図7に示す例では、ネクストホップノードGを経由してノードZへ向かう経路に「隠れ端末重み=10」が設定されている。この場合、ネクストホップノードGを経由してノードZへ向かう経路の「評価値」が大きくなる。ここで、実施形態のノード装置は、宛先ノードへパケットを送信するため経路が複数存在する場合、最適経路として、評価値が最小の経路を選択する。したがって、上述のようにして隠れ端末重みが加算される経路は、最適な経路を選択する際に、優先度が低くなる。すなわち、隠れ端末が存在する経路は、最適経路として選択されにくくなる。
 また、ノードYは、隠れ端末が存在するか否かを表す隠れ端末情報を隣接ノードに通知する。この通知は、例えば、Helloパケットにより実現される。上述の例では、ノードYは、「ノードYからノードGを経由してノードZへ向かう経路には、隠れ端末が存在する」を表す隠れ端末情報をノードAに通知する。そうすると、ノードAは、ノードZを宛先とするパケットを送信する際に、ノードYを経由する経路の優先度を低くする。この場合、ノードAは、ノードZを宛先とするパケットを、例えばノードXへ送信する。この結果、ノードAからノードZへのパケット転送に際して、ノードGにおけるパケット衝突が回避または抑制され、通信効率が向上する。
 図8は、Helloパケットのフォーマットを示す図である。Helloパケットは、アドホックヘッダ、宛先ノード、隣接ノード、往路リンク評価値、隠れ端末情報、評価値を含む。アドホックヘッダは、アドホックネットワークにおいてパケットを伝送するために必要な情報を格納する。なお、アドホックヘッダは、Helloパケットの送信元ノードを識別する情報を含むようにしてもよい。宛先ノード、隣接ノード、評価値は、この例では、図7に示すルーティングテーブルに登録される対応するエントリと同じである。往路リンク評価値は、隣接ノードにとっての往路リンクの品質を表す。隠れ端末情報は、図7に示すルーティングテーブルに記録される隠れ端末重みに相当する。ただし、隠れ端末情報は、隠れ端末が存在するか否かを表す情報(例えば、フラグ情報)であってもよい。
 図9は、リンクテーブル及びルーティングテーブルの生成について説明する図である。ここでは、ノードZおよびノードGが新たにリンクテーブルおよびルーティングテーブルを生成するものとする。なお、図9においては、隠れ端末を考慮しないものとする。
 まず、ノードZは、HelloパケットA1をブロードキャストする。このとき、ノードZは、隣接ノードの存在を認識していないものとする。この場合、HelloパケットA1は有効なデータを有していない。
 HelloパケットA1は、ノードZの電波が到達する領域内のすべてのノードにより受信される。すなわち、HelloパケットA1は、ノードZの隣接ノードによって受信される。この例では、ノードGのみがHelloパケットA1を受信するものとする。
 ノードGは、HelloパケットA1を受信すると、リンクテーブル22Gおよびルーティングテーブル21Gにおいてそれぞれ新たなレコードを生成する。このとき、ノードGは、リンクテーブル22Gの新たなレコードの「宛先ノード」に、HelloパケットA1の送信元であるノードZを記録する。また、ノードGは、HelloパケットA1の受信に際して、ノードZからノードGへのリンク(すなわち、ノードZにとっての往路リンク)の品質を検出する。この例では、リンク評価値=11が得られるものとする。そうすると、ノードGは、リンクテーブル22Gにおいて、「ノードZ」に対応づけて「往路リンク評価値=11」を記録する。さらに、ノードGは、ルーティングテーブル21Gの新たなレコードにおいて、「宛先ノード」および「隣接ノード」としてノードZを記録する。
 続いて、ノードGは、HelloパケットA2をブロードキャストする。このとき、ノードGは、ノードZからHelloパケットA1を受信したことにより、ノードZが隣接ノードであることを認識している。この場合、HelloパケットA2は、ノードZを宛先とする経路情報および品質情報を格納する。すなわち、HelloパケットA2の「宛先ノード」「隣接ノード」には、それぞれルーティングテーブル21Gの「宛先ノード」「隣接ノード」が書き込まれる。また、ノードGは、HelloパケットA2を利用して、ノードZからノードGへのリンクの品質を、ノードZに通知する。すなわち、ノードGのリンクテーブル22Gに記録されている「往路リンク評価値=11」が、HelloパケットA2の「往路リンク評価値」に書き込まれる。
 HelloパケットA2は、ノードGの電波が到達する領域内のすべてのノードにより受信される。すなわち、HelloパケットA2は、ノードGの隣接ノードによって受信される。この例では、ノードZのみがHelloパケットA2を受信するものとする。
 ノードZは、HelloパケットA2を受信すると、リンクテーブル22Zおよびルーティングテーブル21Zにおいてそれぞれ新たなレコードを生成する。このとき、ノードZは、リンクテーブル22Zの新たなレコードの「宛先ノード」に、HelloパケットA2の送信元であるノードGを記録する。また、ノードZは、HelloパケットA2の受信に際して、ノードGからノードZへのリンク(すなわち、ノードGにとっての往路リンク)の品質を検出する。この例では、リンク評価値=9が得られる。そうすると、ノードZは、リンクテーブル22Zにおいて、「ノードG」に対応づけて「往路リンク評価値=9」を記録する。
 ノードZは、HelloパケットA2から「往路リンク評価値」を読み出す。ここで、HelloパケットA2により通知される「往路リンク評価値」は、ノードGにおいて検出された、ノードZからノードGへのリンクの品質を表す。すなわち、HelloパケットA2により通知される「往路リンク評価値」は、ノードGにとっての復路リンクの品質を表す。ここで、ノードGにとっての往路リンクは、ノードZにとっては復路リンクである。よって、ノードZは、HelloパケットA2により通知される「往路リンク評価値」を、リンクテーブル22Zの「復路リンク評価値」に書き込む。この例では、ノードZは、リンクテーブル22Zにおいて、「ノードG」に対応づけて「復路リンク評価値=11」を記録する。さらに、ノードZは、往路リンク評価値と復路リンク評価値の平均を算出し、その算出結果をリンクテーブル22Zの「リンク重み」に書き込む。この例では、リンクテーブル22Zにおいて、隣接ノードGとの間のリンクに対して「リンク重み=10」が記録されている。
 さらに、ノードZは、ルーティングテーブル21Zにおいて、ノードGと宛先とするレコードを作成する。この場合、「隣接ノード」はノードGである。また、ルーティングテーブル21Zの「リンク重み」には、リンクテーブル22Zの「リンク重み」が記録される。さらに、ルーティングテーブル21Zの「評価値」には、ルーティングテーブル21Zの「リンク重み」および「経路重み」の和が書き込まれる。ただし、この例では、経路重みはゼロである。
 つづいて、ノードZは、HelloパケットA3をブロードキャストする。このとき、ノードZは、HelloパケットA3を利用して、ノードGからノードZへのリンクの品質を、ノードGに通知する。すなわち、ノードZのリンクテーブル22Zに記録されている「往路リンク評価値=9」が、HelloパケットA3の「往路リンク評価値」に書き込まれる。また、ルーティングテーブル21Zに記録されている「評価値=10」が、HelloパケットA3の「評価値」に書き込まれる。さらに、HelloパケットA3の「宛先ノード」「隣接ノード」には、それぞれルーティングテーブル21Zの「宛先ノード」「隣接ノード」が書き込まれる。
 ノードGは、ノードZからHelloパケットA3を受信すると、リンクテーブル22Gおよびルーティングテーブル21Gを更新する。即ち、ノードGは、HelloパケットA3の「往路リンク評価値=9」を、リンクテーブル22Gの「復路リンク評価値」に書き込む。また、ノードGは、リンクテーブル22Gにおいて、「往路リンク評価値」および「復路リンク評価値」の平均を「リンク重み」に書き込む。さらに、ノードGは、上述したノードZにおける手順と同様に、ルーティングテーブル21Gの「リンク重み」および「評価値」を書き込む。
 上述のようにして生成されるリンクテーブル22Z、22G、およびルーティングテーブル21Z、21Gは、以下の内容を表す。
リンクテーブル22Z:
(1)ノードZは、隣接ノードGを有する
(2)ノードZ、G間のリンク重みは「10」
ルーティングテーブル21Z:
(1)宛先は、ノードG
(2)ノードZから宛先ノードへパケットを送信するとき、ネクストホップはノードG
(3)ノードZからネクストホップノードまでのリンク重みは「10」
(4)ノードZから宛先ノードまでの評価値は「10」
リンクテーブル22G:
(1)ノードGは、隣接ノードZを有する
(2)ノードG、Z間のリンク重みは「10」
ルーティングテーブル21G:
(1)宛先は、ノードZ
(2)ノードGから宛先ノードへパケットを送信するとき、ネクストホップはノードZ
(3)ノードGからネクストホップノードまでのリンク重みは「10」
(4)ノードGから宛先ノードまでの評価値は「10」
 このように、各ノード装置は、隣接ノードとの間でHelloパケットを送信および受信することにより、リンクテーブル22およびルーティングテーブル21を生成する。なお、各ノード装置は、上述したように、Helloパケットを定期的に送信する。したがって、各ノード装置は、Helloパケットを受信するごとに、リンクテーブル22およびルーティングテーブル21を更新する。
 また、各ノード装置は、上述したように、Helloパケットを利用して、隣接ノードとの間のリンクの品質を検出する。ここで、ノード装置は、例えば、Helloパケットの受信間隔に基づいてリンクの品質を検出する。すなわち、実施形態のアドホックネットワークでは、各ノード装置は、それぞれ予め決められた周期でHelloパケットを繰り返し送信する。したがって、仮に、リンクの品質が良好であれば、ノード装置において隣接ノードからHelloパケットを受信する時間間隔は、一定となるはずである。換言すれば、リンクの品質が悪いときは、ノード装置において隣接ノードからHelloパケットを受信する時間間隔のばらつきが大きくなる。そこで、ノード装置は、周期テーブル23を利用してHelloパケットの受信周期をモニタする。
 図10は、周期テーブル23の実施例である。なお、図10は、ノードZが備える周期テーブル23を示している。
 周期テーブル23は、各隣接ノードに対してそれぞれ生成される。この例では、ノードZは、隣接ノードG、Xを有する。よって、ノードZは、ノードGから送信されるHelloパケットの受信周期を記録するための周期テーブル23G、およびノードXから送信されるHelloパケットの受信周期を記録するための周期テーブル23Xを備える。そして、周期テーブル23(23G、23X)は、受信したHelloパケットを識別する「ID」、Helloパケットを受信した時間間隔を表す「周期」、Helloパケットを受信した時刻を表す「受信時刻」を記録する。
 周期テーブル23Gには、ノードZがノードGからHelloパケット1~4を受信した時刻が記録されている。「周期」は、連続する2つのHelloパケットの受信時刻の差分により算出される。例えば、Helloパケット4の受信時刻が「0.05」であり、Helloパケット3の受信時刻が「0.03」である。この場合「周期=0.02」が得られる。
 ノード装置は、たとえば、周期テーブル23に蓄積される「周期」の標準偏差に基づいて、リンクの評価値を算出する。図10に示す実施例では、ノードGからHelloパケットを受信する周期の標準偏差は小さく、ノードXからHelloパケットを受信する周期の標準偏差は大きい。したがって、ノードGからノードZへ向かうリンクの品質は良好であり、リンクの評価値は小さくなる。一方、ノードXからノードZへ向かうリンクの品質は良好ではなく、リンクの評価値は大きくなる。
 なお、各ノード装置は、他の方法でリンクの品質を検出してもよい。例えば、ノード装置は、隣接ノードから送信されるHelloパケットの受信レベル(例えば、受信電波強度)に基づいてリンクの品質を検出してもよい。
 図11は、ノード装置の処理手順の概要を示す図である。なお、図11は、Helloパケットの送信および受信に係わる動作を示している。また、各ノード装置は、定期的にHelloパケットをブロードキャストする。
 経路情報受信部31は、隣接ノードから送信されるHelloパケットを受信する。経路情報受信部31がHelloパケットを受信すると、リンクテーブル更新部32がリンクテーブル22を更新し、ルーティングテーブル更新部33がルーティングテーブル21を更新する。すなわち、ノード装置がHelloパケットを受信することに、リンクテーブル22およびルーティングテーブル21が更新される。また、リンクテーブル更新部32は、Helloパケットの受信時刻を周期テーブル23に書き込む。
 ノード装置は、図4では不図示のタイマを備える。このタイマは、予め決められた時間が経過するごとにタイマイベント信号を出力する。そして、経路情報送信部34は、タイマイベント信号が生成されると、ルーティングテーブル21およびリンクテーブル22を参照してHelloパケットを生成し、隣接ノードへブロードキャストする。
 次に、図12~図14を参照しながら、経路決定方法の実施例を説明する。なお、以下の説明では、図5に示すネットワークにおいて、ノード間でHelloパケットを送信および受信することでネットワークが構築されるものとする。また、各ノード装置は、それぞれ自分の隣接ノードを認識しているものとする。
 <手順1(図12)>
 ノードZは、図12(a)に示すように、HelloパケットZをブロードキャストする。ここで、ノードZから送信される電波は、ノードG、Xには到達するが、ノードY、Aには到達しない。また、ノードZは、先に、ノードG、XからHelloパケットを受信し、ノードG、XからノードZへ向かうリンクの品質を検出しているものとする。この場合、ノードZは、図12(b)に示すHelloパケットZを生成して送信する。
 HelloパケットZには、ノードGを宛先とする経路情報および品質情報、およびノードXを宛先とする経路情報および品質情報が格納されている。ここで、たとえば、ノードGを宛先とする経路情報は、パケットの転送先がノードGであることを表している。また、ノードGを宛先とする品質情報は、ノードGからノードZへ向かうリンクの評価値、およびノードZからノードGへの経路の評価値を含んでいる。なお、Helloパケットは、複数の宛先について、経路情報および品質情報を格納することができる。
 ノードGは、ノードZからHelloパケットZを受信すると、リンクテーブル22およびルーティングテーブル21を更新する。この例では、ノードGは、図12(c)に示すように、ノードG、Z間のリンクを表すリンク情報をリンクテーブル22に登録する。このリンク情報は、以下の内容を表す。
(1)ノードGは、隣接ノードZを有する
(2)往路リンク評価値(ノードZからノードGへ向かうリンクの品質)は「11」
(3)復路リンク評価値(ノードGからノードZへ向かうリンクの品質)は「9」
(4)リンク重み(ノードG、Z間のリンクの品質)は「10」
 また、ノードGは、図12(d)に示すように、ノードGからノードZへの経路についての経路情報および品質情報をルーティングテーブル21に登録する。この経路情報および品質情報は、以下の内容を表す。
(1)宛先は、ノードZ
(2)ノードGから宛先ノードZへの経路において、ネクストホップはノードZ
(3)ネクストホップノードZから宛先ノードZまでの経路重みは「0」
(4)ノードGからネクストホップノードZまでのリンク重みは「10」
(5)隠れ端末なし
(6)ノードGから宛先ノードZまでの評価値は「10」
 ノードXも、ノードZからHelloパケットZを受信すると、リンクテーブル22およびルーティングテーブル21を更新する。この例では、ノードXは、図12(c)に示すように、ノードX、Z間のリンクを表すリンク情報をリンクテーブル22に登録する。ただし、ノードZ、X間のリンク品質(リンク重み=100)は、非常に悪い。ここで、この実施例では、各ノード装置は、品質の悪い経路の情報をルーティングテーブル21に登録しないものとする。したがって、ノードXは、HelloパケットZを受信したときに、宛先ノードZについての情報をルーティングテーブル21に登録しない。
 <手順2(図13)>
 手順2においては、手順1においてHelloパケットZを受信したノード装置がHelloパケットを送信する。なお、ここでは、ノードGがHelloパケットを送信する手順について説明し、ノードXがHelloパケットを送信する手順については説明を省略する。
 ノードGは、図13(a)に示すように、HelloパケットGをブロードキャストする。ここで、ノードGから送信される電波は、ノードZ、Y、Xに到達するものとする。また、ノードGは、先に、ノードZ、Y、XからそれぞれHelloパケットを受信し、ノードZ、Y、XからノードGへ向かうリンクの品質を検出しているものとする。この場合、ノードGは、図13(b)に示すHelloパケットGを生成して送信する。HelloパケットGには、ノードYを宛先とする経路情報および品質情報、ノードXを宛先とする経路情報および品質情報、ノードZを宛先とする経路情報および品質情報が格納されている。
 ノードYは、ノードGからHelloパケットGを受信すると、リンクテーブル22およびルーティングテーブル21を更新する。この例では、ノードYは、図13(c)に示すように、ノードY、G間のリンクを表すリンク情報をリンクテーブル22に登録する。このリンク情報は、以下の内容を表す。
(1)ノードYは、隣接ノードGを有する
(2)往路リンク評価値(ノードGからノードYへ向かうリンクの品質)は「6」
(3)復路リンク評価値(ノードYからノードGへ向かうリンクの品質)は「6」
(4)リンク重み(ノードY、G間のリンクの品質)は「6」
 また、ノードYは、図13(d)に示すように、ノードYからノードG、Zへの経路についての経路情報および品質情報を登録する。ここで、ノードYからノードGへの経路の経路情報および品質情報は以下の内容を表す。
(1)宛先は、ノードG
(2)ノードYから宛先ノードGへの経路において、ネクストホップはノードG
(3)ネクストホップノードGから宛先ノードGまでの経路重みは「0」
(4)ノードYからネクストホップノードGまでのリンク重みは「6」
(5)隠れ端末なし
(6)ノードYから宛先ノードGまでの評価値は「6」
 また、ノードYからノードZへの経路の経路情報および品質情報は以下の内容を表す。
(1)宛先は、ノードZ
(2)ノードYから宛先ノードZへの経路において、ネクストホップはノードG
(3)ネクストホップノードGから宛先ノードZまでの経路重みは「10」
(4)ノードYからネクストホップノードGまでのリンク重みは「6」
(5)隠れ端末あり(隠れ端末重み=10)
(6)ノードYから宛先ノードZまでの評価値は「26」
 ここで、ノード装置は、例えば以下の方法で、隠れ端末が存在するか否かを判定する。すなわち、ノード装置は、Helloパケットを受信すると、そのHelloパケットに格納されている情報の「宛先ノード」について、ネクストホップの転送先を特定する。例えば、ノードYは、宛先ノードZについてネクストホップの転送先を特定する。図13に示す例では、図13(d)に示すノードYのルーティングテーブルにおいて、「宛先ノード=Z」に対して「隣接ノード=G」が記録されている。よって、ノードYからノードZへ向かう経路において、ネクストホップはノードGである。また、図13(b)に示すように、ノードGから送信されるHelloパケットGにおいて、「宛先ノード=Z」に対して「隣接ノード=Z」が記録されている。よって、ノードYからノードZへ向かう経路において、ネクストホップ(すなわち、ノードG)の転送先は、ノードZである。このようにして、ノードYは、ノードZを宛先とする経路において、ネクストホップの転送先として「ノードZ」を特定する。
 続いて、ノードYは、上述のようにして特定したネクストホップの転送先(すなわち、ノードZ)が、ノードYのリンクテーブル22に登録されているか否かをチェックする。この例では、図13(c)に示すように、ノードYのリンンクテーブルに「ノードZ」は登録されていない。この場合、ノードYは、ノードZからの電波を受信できないと判定する。すなわち、ノードYは、ノードZが隠れ端末であると判定する。そうすると、ノードYは、図13(d)に示すノードYのルーティングテーブルにおいて「隠れ端末重み=10」を書き込む。さらに、ノードYは、「経路重み」「リンク重み」「隠れ端末重み」の和を計算することにより、「評価値=26」を得る。
 ノードXは、ノードGからHelloパケットGを受信すると、リンクテーブル22およびルーティングテーブル21を更新する。ここで、ノードXは、上述した手順1において、ノードZから受信したHelloパケットZに基づいて、リンクテーブル22にノードX、Z間のリンク情報を既に登録している。そして、ノードXは、ノードGから受信したHelloパケットGに基づいて、図13(c)に示すように、ノードX、G間のリンクを表すリンク情報をリンクテーブル22に追加する。
 また、ノードXは、図13(d)に示すように、ノードXからノードG、Zへの経路についての経路情報および品質情報をルーティングテーブル21に登録する。ここで、ノードXからノードGへの経路の経路情報および品質情報は、リンク重みおよび評価値が異なるが、基本的に、上述したノードYからノードGへの経路と同じである。したがって、この経路について説明は省略する。
 一方、ノードXからノードZへの経路の経路情報および品質情報は以下の内容を表す。
(1)宛先は、ノードZ
(2)ノードXから宛先ノードZへの経路において、ネクストホップはノードG
(3)ネクストホップノードGから宛先ノードZまでの経路重みは「10」
(4)ノードYからネクストホップノードGまでのリンク重みは「9」
(5)隠れ端末なし(隠れ端末重み=0)
(6)ノードYから宛先ノードZまでの評価値は「19」
 ここで、ノードXは、ノードYと同様に、隠れ端末の有無を検出する。この例では、ノードXは、まず、宛先ノードZについてネクストホップの転送先を特定する。この場合、図13(d)に示すノードXのルーティングテーブルにおいて、「宛先ノード=Z」に対して「隣接ノード=G」が記録されている。よって、ノードXからノードZへ向かう経路において、ネクストホップはノードGである。また、図13(b)に示すように、ノードGから送信されるHelloパケットGにおいて、「宛先ノード=Z」に対して「隣接ノード=Z」が記録されている。よって、ノードYからノードZへ向かう経路においても、ネクストホップ(すなわち、ノードG)の転送先は、ノードZである。このようにして、ノードXは、ノードZを宛先とする経路において、ネクストホップの転送先として「ノードZ」を特定する。
 続いて、ノードXは、上述のようにして特定したネクストホップの転送先(すなわち、ノードZ)が、ノードXのリンクテーブル22に登録されているか否かをチェックする。この例では、図13(c)に示すように、ノードXのリンンクテーブルに「ノードZ」が登録されている。この場合、ノードXはノードZからの電波を受信でき、また、ノードZはノードXからの電波を受信できる。すなわち、ノードXは、「ノードZは隠れ端末ではない」と判定する。そうすると、図13(d)に示すノードXのルーティングテーブルにおいて、「宛先ノード=Z」に対応する「隠れ端末重み」として「0」が設定される。したがって、ノードXは、「経路重み」「リンク重み」「隠れ端末重み」の和を計算することにより、「評価値=19」を得る。
 このように、各ノード装置は、宛先ノードへの経路において、ネクストホップの転送先が隠れ端末であるか否かを判定する。ここで、ネクストホップの転送先が隠れ端末であるときは、図1を参照しながら説明したように、パケット衝突が発生して通信効率が低下する。このため、ノード装置は、宛先ノードへの経路においてネクストホップの転送先が隠れ端末であれば、その経路についての評価値に「隠れ端末重み」を加算することにより、評価値を大きくする。この結果、この経路の優先度は低下する。
 一方、宛先ノードへの経路においてネクストホップの転送先が隠れ端末でなければ、ノード装置は、例えばCSMA/CAを利用してパケット衝突を回避できる。したがって、宛先ノードへの経路においてネクストホップの転送先が隠れ端末でなければ、その経路についての評価値に「隠れ端末重み」は加算されない。
 <手順3(図14)>
 手順3においては、手順2でHelloパケットGを受信した各ノード装置がHelloパケットを送信する。以下、ノードXがHelloパケットXを送信し、ノードYがHelloパケットYを送信する手順について説明する。
 ノードXは、図14(a)および図14(b)に示すように、ノードG、Z、Aを宛先とする経路情報/品質情報を含むHelloパケットXを生成して送信する。HelloパケットXに格納される各宛先ノードについての経路情報/品質情報は、図13(d)に示すノードXのルーティングテーブル21から生成される。ただし、往路リンク評価値は、図13(c)に示すノードXのリンクテーブル22が参照される。なお、図13(d)においては、ノードAを宛先とする情報は省略されている。
 同様に、ノード装置Yは、図14(a)および図14(b)に示すように、ノードG、Z、Aを宛先とする経路情報/品質情報を含むHelloパケットYを送信する。HelloパケットYに格納される各宛先についての経路情報/品質情報は、図13(d)に示すノードYのルーティングテーブル21および図13(c)に示すノードYのリンクテーブル22から生成される。
 ノードAは、ノードXからHelloパケットXを受信し、ノードYからHelloパケットYを受信する。そうすると、ノードAは、HelloパケットX、Yに基づいて、リンクテーブル22およびルーティングテーブル21を更新する。この例では、ノードAは、図14(c)に示すように、ノードA、X間のリンクを表すリンク情報、およびノードA、Y間のリンクを表すリンク情報をリンクテーブル22に登録する。
 また、ノードAは、HelloパケットX、Yに基づいて、ノードAから各宛先ノードへの経路についての経路情報および品質情報を登録する。図14(d)においては、ノードAからノードZへ向かう2つの経路について、それぞれ経路情報および品質情報が示されている。なお、図14(d)においては、他の宛先ノードについて情報は省略されている。
 ノードAからノードXを経由してノードZへ向かう経路の経路情報および品質情報は以下の内容を表す。
(1)宛先は、ノードZ
(2)ノードAから宛先ノードZへの経路において、ネクストホップはノードX
(3)ネクストホップノードXから宛先ノードZまでの経路の重みは「19」
(4)ノードAからネクストホップノードXまでのリンク重みは「5」
(5)隠れ端末あり(隠れ端末重み=10)
(6)ノードAから宛先ノードZまでの評価値は「34」
 「隣接ノード(すなわち、ネクストホップノード)=X」は、HelloパケットXの送信元を検出することによって得られる。「経路重み=19」は、HelloパケットXに格納されている「宛先ノード=Z」に対応する「評価値」から得られる。「リンク重み=5」は、図14(c)に示すノードAのリンクテーブル22から得られる。「隠れ端末重み」は、図13を参照しながら説明したように、ネクストホップの転送先がリンクテーブル22に登録されているか否かに基づいて判定される。この経路においては、ネクストホップはノードXであり、その転送先はノードGである。ところが、図14(c)に示すように、ノードAのリンクテーブル22にノードGは登録されていない。よって、「隠れ端末重み=10」が得られる。したがって、ノードAからノードXを経由してノードZへ向かう経路について、「経路重み」「リンク重み」「隠れ端末重み」を加算することにより、「評価値=34」が得られる。
 同様に、ノードAからノードYを経由してノードZへ向かう経路の経路情報および品質情報は以下の内容を表す。
(1)宛先は、ノードZ
(2)ノードAから宛先ノードZへの経路において、ネクストホップはノードY
(3)ネクストホップノードYから宛先ノードZまでの経路の重みは「26」
(4)ノードAからネクストホップノードYまでのリンク重みは「5」
(5)隠れ端末あり(隠れ端末重み=10)
(6)ノードAから宛先ノードZまでの評価値は「41」
 「隣接ノード(すなわち、ネクストホップノード)=Y」は、HelloパケットYの送信元を検出することによって得られる。「経路重み=26」は、HelloパケットYに格納されている「宛先ノード=Z」に対応する「評価値」から得られる。「リンク重み=5」は、図14(c)に示すノードAのリンクテーブル22から得られる。「隠れ端末重み」は、上述のように、ネクストホップの転送先がリンクテーブル22に登録されているか否かに基づいて判定される。この経路においては、ネクストホップはノードYであり、その転送先はノードGである。ところが、図14(c)に示すように、ノードAのリンクテーブル22にノードGは登録されていない。よって、「隠れ端末重み=10」が得られる。したがって、ノードAからノードYを経由してノードZへ向かう経路について、「経路重み」「リンク重み」「隠れ端末重み」を加算することにより、「評価値=41」が得られる。
 ノードAは、宛先ノードごとに、最適な経路を選択する。このとき、ルーティングテーブル21の「評価値」が最小となっている経路が、最適経路として選択される。したがって、図14に示す例では、ノードAは、ノードZを宛先とする経路として、ノードXを経由する経路を選択する。
 ここで、ノードAからノードXを経由してノードZへ至る経路(以下、経路A/X/Zと呼ぶ)、およびノードAからノードYを経由してノードZへ至る経路(以下、経路A/Y/Zと呼ぶ)を比較する。経路A/X/Zのリンク重みの和W(A/X/Z)、および経路A/X/Zのリンク重みの和W(A/Y/Z)は、図5に示す例では、それぞれ下記の通りである。
W(A/X/Z)= (5+5)/2 + (9+9)/2 + (11+9)/2 =24
W(A/Y/Z)= (6+4)/2 + (6+6)/2 + (11+9)/2 =21
すなわち、リンク重みのみを考慮すると、経路A/X/Zよりも経路A/Y/Zの方が評価値は小さい。また、ノードAにとって、ノードGが隠れ端末であることは、経路A/X/Zおよび経路A/Y/Zにおいて同じである。
 しかし、経路A/X/Zにおいては、ノードXにとってノードZは隠れ端末ではないので、ノードXにおいて、ノードZに係わる隠れ端末重みはゼロである。これに対して、経路A/Y/Zにおいては、ノードYにとってノードZは隠れ端末なので、ノードYにおいて、ノードZに係わる「隠れ端末重み=10」が加算される。この結果、ノードAにおいて宛先ノードZについて最終的に得られる評価値は、経路A/X/Zよりも経路A/Y/Zの方が大きくなる。
 ここで、実施形態のアドホックネットワークにおいて、各ノード装置は、パケットの宛先に基づいてルーティングテーブル21を参照し、その宛先に対応する経路の中で評価値が最小の経路を選択する。したがって、ノードAは、ノードZを宛先とするパケットを生成または受信したときは、図14(d)に示すルーティングテーブルから経路A/X/Zを選択する。すなわち、ノードAは、上記パケットをノードXへ送信する。そうすると、このパケットは、ノードXおよびノードGを経由してノードZへ伝送される。このとき、ノードXおよびノードZは、CSMA/CAを利用して送信タイミングを制御するので、ノードGにおけるパケット衝突は回避または抑制される。
 このように、実施形態の経路決定方法によれば、アドホックネットワークがパケットを宛先へ転送する際、隠れ端末が存在する経路は選択されにくく、隠れ端末が存在しない経路は選択されやすい。このため、実施形態のアドホックネットワークにおいては、パケット衝突が抑制され、通信効率が向上する。
 なお、図12~図14に示す実施例では、経路情報がノード装置を伝搬する過程で、隠れ端末重みが累積的に加算される。例えば、図13においてノードYによってノードZに対応する隠れ端末重みが加算され、さらに図14においてノードAによってノードGに対応する隠れ端末重みが加算される。したがって、宛先ノードまでの経路上で隠れ端末が多くなると、その経路の評価地が大きくなり、その経路は最適経路として選択されにくくなる。
 次に、フローチャートを参照しながら、リンクテーブル22を更新する処理、ルーティングテーブル21を更新する処理、評価値を算出する処理、パケットを送信する処理について説明する。
 図15は、リンクテーブル22を更新する処理を示すフローチャートである。この処理は、各ノードにおいて、リンクテーブル更新部32によって実行される。
 ステップS1~S2において、リンクテーブル更新部32は、隣接ノードから送信されるHelloパケットを待ち受ける。そして、リンクテーブル更新部32は、Helloパケットを受信すると、そのHelloパケットの送信元ノードを特定する。
 ステップS3において、リンクテーブル更新部32は、ステップS2で特定した送信元ノードに対応する周期テーブルが存在するか否かを判定する。対応する周期テーブルが存在しないときは、ステップS4において、リンクテーブル更新部32は、送信元ノードに対応する周期テーブルを作成し、「ID=1」で識別されるレコードを作成する。つづいて、ステップS5において、リンクテーブル更新部32は、このレコードに、Helloパケットの受信時刻を書き込む。このとき、リンクテーブル更新部32は、例えば、初期値として受信時刻「0:00」を書き込む。さらに、ステップS6において、リンクテーブル更新部32は、このレコードに、「周期」の初期値を設定する。周期の初期値は、例えば「0:00」である。ただし、リンクテーブル更新部32は、必ずしも周期の初期値を設定する必要はない。
 対応する周期テーブルが既に存在するときは(ステップS3:Yes)、ステップS7において、リンクテーブル更新部32は、周期テーブルの最上位に新たなレコードを追加する。つづいて、ステップS8において、リンクテーブル更新部32は、新たなレコードに、Helloパケットの受信時刻を書き込む。また、ステップS9において、リンクテーブル更新部32は、ステップS8で新たに書き込んだ受信時刻と、直前のHelloパケットの受信時刻との差分を算出し、「周期」として設定する。そして、ステップS10において、リンクテーブル更新部32は、「周期」についての標準偏差を算出する。さらに、リンクテーブル更新部32は、周期の標準偏差から往路リンク評価値を導出する。なお、周期の標準偏差と往路リンク評価値との間の関係式は、特に限定されるものではないが、標準偏差が大きいほど評価値も大きくなるものとする。
 ステップS11において、リンクテーブル更新部32は、リンクテーブルにおいて、Helloパケットの送信元ノードのレコードを新たに作成する。ただし、リンクテーブルに送信元ノードのレコードが既に存在するときは、リンクテーブル更新部32は、送信元ノードのレコードを識別する。そして、ステップS12において、リンクテーブル更新部32は、受信したHelloパケットに基づいて得られる往路リンク評価値を、リンクテーブルにおいて送信元ノードに対応づけて格納(または、上書き)する。
 ステップS13において、リンクテーブル更新部32は、受信したHelloパケットが往路リンク評価値を含んでいるか否かを判定する。Helloパケットが往路リンク評価値を含んでいないときは、ステップS14において、リンクテーブル更新部32は、ステップS10で算出した往路リンク評価値を、「リンク重み」としてリンクテーブルに設定(または、上書き)する。
 Helloパケットが往路リンク評価値を含むときは、ステップS15において、リンクテーブル更新部32は、受信したHelloパケットに含まれる往路リンク評価値を、リンクテーブルの送信元ノードに対応づけて、復路リンク評価値として格納(または、上書き)する。また、ステップS16において、リンクテーブル更新部32は、往路リンク評価値および復路リンク評価値の平均を算出し、その算出結果を「リンク重み」としてリンクテーブルに設定(または、上書き)する。
 このように、リンクテーブル更新部32は、隣接ノードからHelloパケットを受信すると、リンクテーブル22を更新する。この結果、各ノード装置のリンクテーブル22には、隣接ノードとの間のリンクを表すリンク情報が格納される。
 図16および図17は、ルーティングテーブル21を更新する処理を示すフローチャートである。この処理は、各ノードにおいて、ルーティングテーブル更新部33により実行される。
 ステップS21~S22の処理は、基本的に、ステップS1~S2と同じである。ただし、ステップS21~S22は、ルーティングテーブル更新部33により実行される。すなわち、ルーティングテーブル更新部33は、受信したHelloパケットの送信元ノードを特定する。
 ステップS23において、ルーティングテーブル更新部33は、ワークテーブル24に新たなレコードを作成する。ステップS24~S25において、ルーティングテーブル更新部33は、ステップS22で特定した送信元ノードを、この新たなレコードの「宛先ノード」および「隣接ノード」にそれぞれ設定する。
 ステップS26において、ルーティングテーブル更新部33は、送信元ノードを用いてリンクテーブル22を検索し、Helloパケットの送信元ノードに対応する「リンク重み」を取得する。ステップS27において、ルーティングテーブル更新部33は、ワークテーブル24において、「宛先ノード」および「隣接ノード」がHelloパケットの送信元ノードと一致するレコードの「リンク重み」に、ステップS26で取得したリンク重みを書き込む。
 ステップS28において、ルーティングテーブル更新部33は、ワークテーブル24に作成したレコードと同一の「宛先ノード」および「隣接ノード」を有するレコードがルーティングテーブル21に存在するか否かを判定する。ルーティングテーブル21にそのようなレコードが存在しないときは、ステップS29において、ルーティングテーブル更新部33は、ワークテーブル24に作成したレコードを、ルーティングテーブル21に追加する。一方、ルーティングテーブル21に上述のレコードが存在するときは、ステップS30において、ルーティングテーブル更新部33は、ワークテーブル24の対応するレコードの内容で、ルーティングテーブル21を更新する。
 ステップS31において、ルーティングテーブル更新部33は、Helloパケットが情報を含んでいるか否かを判定する。Helloパケットが情報を含んでいないときは、ステップS32~S42はスキップされ、ルーティングテーブル更新部33の処理はステップS43に移行する。一方、Helloパケットが情報を含むときは、ルーティングテーブル更新部33は、各宛先ノードについてステップS32~S42の処理を実行する。
 ステップS32において、ルーティングテーブル更新部33は、Helloパケットに格納されている経路情報の「宛先ノード」または「隣接ノード」が自ノードであるか否かを判定する。「宛先ノード」または「隣接ノード」の少なくとも一方が自ノードであるときは、ステップS32~S40はスキップされ、ルーティングテーブル更新部33の処理はステップS41に移行する。
 一方、「宛先ノード」および「隣接ノード」がいずれも自ノードでないときは(ステップS32:No)、ステップS33において、ルーティングテーブル更新部33は、ワークテーブル24に新たなレコードを作成する。そして、ステップS34において、ルーティングテーブル更新部33は、Helloパケットに格納されている「宛先ノード」を、ステップS33で作成したレコードの「宛先ノード」に書き込む。また、ステップS35において、ルーティングテーブル更新部33は、Helloパケットの送信元ノードを、ステップS33で作成したレコードの「隣接ノード」に書き込む。
 ステップS36において、ルーティングテーブル更新部33は、隠れ端末処理を実行する。隠れ端末処理は、後で詳しく説明するが、隠れ端末重みを決定する処理を含む。ステップS37において、ルーティングテーブル更新部33は、Helloパケットに格納されている「評価値」を、ステップS33で作成したレコードの「経路重み」に書き込む。
 ステップS38~S40は、基本的に、ステップS28~S30と同じである。すなわち、ルーティングテーブル更新部33は、ワークテーブル24を利用して生成した情報をルーティングテーブル21に書き込む。
 ステップS41~S42において、ルーティングテーブル更新部33は、受信したHelloパケットに格納されている各宛先ノードについての情報がすべて処理されたか否かを判定する。このとき、未処理の宛先ノードが残っていれば、ルーティングテーブル更新部33は、Helloパケットから次の宛先ノードの情報を取得し、ステップS32に戻る。そして、Helloパケットに格納されているすべての宛先ノードについてステップS32~S40の処理が終了すると、ステップS43において、ルーティングテーブル更新部33は、評価値を算出してルーティングテーブル21に格納する。
 図18は、隠れ端末処理の一例を示すフローチャートである。隠れ端末処理は、図17のステップS36に相当し、ルーティングテーブル更新部33により実行される。
 ステップS51において、ルーティングテーブル更新部33は、処理対象の宛先ノードへの経路において、ネクストホップの転送先ノードを特定する。ここで、「処理対象の宛先ノード」は、図17に示すフローチャートにおいて、Helloパケットに経路情報が格納されている宛先ノードの中から選択された1つの宛先ノードを意味する。ネクストホップは、例えば、Helloパケットの送信元ノードである。また、ネクストホップの転送先ノードは、例えば、Helloパケットに格納されている、処理対象の宛先ノードについての「隣接ノード」により特定される。
 ステップS52において、ルーティングテーブル更新部33は、ネクストホップの転送先ノードが、リンクテーブル22において「隣接ノード」として登録されているか否かを判定する。そして、ネクストホップの転送先ノードがリンクテーブル22に登録されていれば、ルーティングテーブル更新部33は、ステップS53において、ワークテーブル24の対応するレコードに「隠れ端末重み=0」を設定する。一方、ネクストホップの転送先ノードがリンクテーブル22に登録されていなければ、ルーティングテーブル更新部33は、ステップS54において、ワークテーブル24の対応するレコードに「隠れ端末重み=10」を設定する。
 なお、ワークテーブル24の内容は、図17のステップS39またはS40において、ルーティングテーブル21に書き込まれる。したがって、ルーティングテーブル更新部33がステップS39またはS40を実行することにより、ルーティングテーブル21の対応するレコードに「隠れ端末重み」が設定される。
 図19は、宛先ノードについての評価値を算出する処理を示すフローチャートである。この処理は、図17のステップS43に相当し、ルーティングテーブル更新部33により実行される。また、ルーティングテーブル更新部33は、ルーティングテーブル21の各レコードについて図19のフローチャートの処理を実行する。
 なお、以下の説明では、ルーティングテーブル21において、「宛先ノード」が「隣接ノード」ではないレコードにおいては、「リンク重み」が省略されているものとする。リンク重みの省略については、図7を参照しながら説明した通りである。
 ステップS61において、ルーティングテーブル更新部33は、ルーティングテーブル21の処理対象レコードに「リンク重み」が格納されているか否かを判定する。処理対象レコードに「リンク重み」が格納されていれば、ステップS62において、ルーティングテーブル更新部33は、処理対象レコードに格納されている「リンク重み」を、そのレコードの「評価値」に書き込む。
 処理対象レコードに「リンク重み」が格納されていないときは、ステップS63において、ルーティングテーブル更新部33は、処理対象レコードの「隣接ノード」を、「宛先ノード」および「隣接ノード」として有するレコードをルーティングテーブル21において検索する。そして、ステップS64において、ルーティングテーブル更新部33は、ステップS63の検索により特定されたレコードから「リンク重み」を取得する。
 例えば、図13(d)に示すノードXのルーティングテーブルにおいて、「宛先ノードZ」を有するレコードが処理対象レコードであるものとする。この場合、処理対象レコードの「隣接ノード」は、ノードGである。そうすると、ステップS63において、このルーティングテーブルから、「宛先ノードG」および「隣接ノードG」を有するレコードが抽出される。この結果、ステップS64において、「リンク重み=9」が得られる。
 ステップS65において、ルーティングテーブル更新部33は、処理対象レコードの「経路重み」、ステップS64で取得した「リンク重み」、ステップS53~S54で決定した「隠れ端末重み」の和を算出する。そして、ルーティングテーブル更新部33は、この算出結果を、「評価値」としてルーティングテーブル21に格納する。
 ステップS66~S67において、ルーティングテーブル更新部33は、ルーティングテーブル21に未処理のレコードが残っているか否かを判定する。そして、未処理のレコードが残っていれば、ルーティングテーブル更新部33は、次のレコードに対してステップS61~S65を実行する。
 図20は、Helloパケットを送信する処理を示すフローチャートである。この処理は、タイマがタイマイベント信号を生成したときに、経路情報送信部34により実行される。なお、タイマは、所定の時間間隔でタイマイベント信号を生成する。
 ステップS71において、経路情報送信部34は、タイマイベント信号を待ち受ける。そして、経路情報送信部34は、タイマイベント信号を受信すると、ステップS72~S76を実行する。
 ステップS72において、経路情報送信部34は、自ノード内にルーティングテーブル21が作成されているか否かを判定する。ルーティングテーブル21が作成されてないときは、経路情報送信部34は、ステップS73~S75をスキップし、ステップS76においてHelloパケットを送信する。この場合、経路情報送信部34は、空のHelloパケット(すなわち、経路情報等を格納していないHelloパケット)を送信する。
 ルーティングテーブル21が存在するときは、ステップS73において、経路情報送信部34は、ルーティングテーブル内の各レコードを「宛先ノード」毎にグループ化する。ステップS74において、経路情報送信部34は、宛先グループ毎に、「評価値」に基づいて、各レコードに順位を付ける。このとき、宛先グループ毎に、最も評価値の小さいレコード、2番目に評価値の小さいレコード、3番目に評価値の小さいレコードに対して、それぞれ「第1位」「第2位」「第3位」が付与される。
 ステップS75において、経路情報送信部34は、ルーティングテーブル21から、宛先グループ毎に、第1位のレコードを抽出する。そして、経路情報送信部34は、各宛先グループから抽出したレコードの内容を格納するHelloパケットを生成する。すなわち、各宛先ノードについて、最も評価値の小さい経路(すなわち、最も品質または効率が高い経路)についての情報がHelloパケットに格納される。
 具体的には、経路情報送信部34は、ルーティングテーブル21の「宛先ノード」「隣接ノード」「隠れ端末重み」「評価値」を、それぞれ、Helloパケットの「宛先ノード」「隣接ノード」「隠れ端末情報」「評価値」に設定する。ただし、Helloパケットの「往路リンク評価値」は、リンクテーブル22の対応するレコードから取得する。
 この後、経路情報送信部34は、ステップS76において、Helloパケットを送信する。これにより、各ノード装置が保持する経路情報は、それぞれその隣接ノードに通知される。さらに、隣接ノードから経路情報を受信したノード装置は、その経路情報を他の隣接ノードに通知する。このようにして、経路情報は、アドホックネットワーク内の各ノード装置に通知される。
 このように、実施形態の経路決定方法においては、ノード装置は、宛先ノードへの最適経路の評価値を隣接ノードに通知する。このとき、経路の評価値は、リンクの品質を表すリンク重みだけでなく、隠れ端末の有無に応じて決まる隠れ端末重みを含んでいる。すなわち、ノード装置から隣接ノードへ通知される情報は、隠れ端末の影響を含んでいる。したがって、上述した経路決定方法においては、ノード装置は、必ずしも、隠れ端末が存在するか否かを直接的に表す情報を隣接ノードに通知する必要はない。例えば、図8に示すHelloパケットは、必ずしも「隠れ端末情報」を格納する必要はない。
 なお、上述の説明では、隠れ端末重みは「10」であるが、ネットワークの構成または運用ポリシ等に基づいて決定することが好ましい。例えば、ネットワークの通信効率がリンクの品質に強く依存する場合には、リンク重みと比較して隠れ端末重みを小さくする。或いは、ネットワークの通信効率が隠れ端末に起因するパケット衝突に強く依存する場合には、リンク重みと比較して隠れ端末重みを大きくしてもよい。
 <他の実施形態(1)>
 図6~図20に示す実施形態では、各経路の評価値は、リンク重み(経路重みを含む)および隠れ端末重みの和で表わされる。そして、各宛先について、評価値が最小の経路が最適経路として選択される。しかし、各ノード装置は、他の基準に基づいて最適経路を選択してもよい。
 図21は、他の実施形態の経路決定方法を説明する図である。なお、図21は、あるノード装置が備えるルーティングテーブル21を示している。このルーティングテーブル21には、宛先ノードGWについての経路情報/品質情報が格納されている。
 図21に示す例では、宛先ノードGWに対して、経路n1(隣接ノードn1を経由する経路)、経路n2(隣接ノードn2を経由する経路)、経路n3(隣接ノードn3を経由する経路)、経路n4(隣接ノードn4を経由する経路)が登録されている。また、各経路の評価値は、それぞれ、宛先ノードGWまでのリンク重みの和を表している。
 隠れ端末フラグは、ネクストホップノードの転送先ノードが隠れ端末であるか否を表している。たとえば、第1レコード(経路n1)は、宛先ノードGWへの経路において、ネクストホップノード(隣接ノードn1)の転送先ノードが隠れ端末であることを表している。また、第2レコード(経路n2)は、宛先ノードGWへの経路において、ネクストホップノード(隣接ノードn2)の転送先ノードが隠れ端末ではないことを表している。なお、ネクストホップノードの転送先ノードが隠れ端末か否かを判定する方法は、図6~図20に示す実施形態と同じである。
 ルーティングテーブル更新部33は、以下の手順で、宛先ノードについて各経路の順位を決定する。
(1)隠れ端末フラグがOFFの経路を抽出する
(2)上記(1)で抽出された経路の中で、評価値の小さい順に「順位」を付与する
(3)残りの経路に対して、評価値の小さい順に「順位」を付与する
 図21に示すルーティングテーブル21においては、手順(1)により経路n2、n4が抽出される。続いて、手順(2)により、「経路n2:第1位」「経路n4:第2位」が得られる。さらに、手順(3)により、「経路n1:第3位」「経路n3:第4位」が得られる。
 このように、図21に示す実施形態においても、隠れ端末が存在する経路の優先度は低くなる。すなわち、隠れ端末が存在する経路は、選択されにくくなる。なお、すべての経路において隠れ端末が存在するときは、ルーティングテーブル更新部33は、手順(3)のみを実行する。この場合、ルーティングテーブル更新部33は、評価値のみに基づいて経路を選択する。
 経路情報送信部34は、隣接ノードにHelloパケットを送信する。このHelloパケットの「隠れ端末情報」には、ルーティングテーブル21の「隠れ端末フラグ」が書き込まれる。すなわち、ノード装置は、隣接ノードに対して、隠れ端末が存在するか否かを通知する。そして、各ノード装置は、隠れ端末が存在するか否かを表す隠れ端末情報を隣接ノードから受け取ると、その隠れ端末情報を参照して宛先ノードへの最適経路を決定する。具体的には、ノード装置は、隣接ノードが隠れ端末を有するときは、その隣接ノードの優先度を低くする。
 <他の実施形態(2)>
 図22は、隠れ端末の数を考慮して経路を決定する方法を説明する図である。図22に示す例では、ノードAから宛先ノードGWへの経路として、下記の3つが存在するものとする。また、下記の3つの経路は、ノードBのルーティングテーブル21に登録されているものとする。
経路n1:ノードB、n1、n4を経由して宛先ノードGWへ至る経路
経路n2:ノードB、n2を経由して宛先ノードGWへ至る経路
経路n3:ノードB、n3、n5、n6を経由して宛先ノードGWへ至る経路
 また、図22において、ノードAは、ノードB、n3から送信される電波を受信できるが、ノードn1、n2から送信される電波は受信できないものとする。すなわち、ノードAのリンクテーブル22には、ノードB、n3が登録されているが、ノードn1、n2は登録されていない。
 更に、ノードBは、宛先ノードGWについて、経路n1~n3の経路情報をノードAに通知するものとする。なお、図20に示すフローチャートでは、経路情報送信部34は、各宛先ノードについて最適経路の経路情報を隣接ノードに通知する。これに対して、図22に示す実施形態では、経路情報送信部34は、各宛先ノードについてルーティングテーブル21に格納されている、すべてのまたは所定数の経路の経路情報を隣接ノードに通知する。
 ノードAは、ノードBから経路n1~n3の経路情報を受信すると、各経路について隠れ端末の有無を検出する。この例では、ノードAは、ノードn3の電波を受信できるが、ノードn1、n2の電波を受信できない。したがって、ノードAは、ノードn1、n2はは隠れ端末であると判定する。すなわち、ノードAは、ノードBを経由する経路上に2つの隠れ端末が存在することを検出する。
 ノードAのルーティングテーブル更新部33は、隠れ端末の数に応じて隠れ端末重みを決定する。例えば、隠れ端末重みは、隠れ端末の数に比例するように決定してもよい。この場合、図22に示す例では、ノードAのルーティングテーブル更新部33は、ノードBを経由する経路の隠れ端末重みを「20」とする。
 このように、隠れ端末の数を考慮して経路を決定する方法においては、隠れ端末の少ない経路を介してパケットが転送される。したがって、パケット衝突の確率が低下し、通信効率がさらに向上する。
 <他の実施形態(3)>
 各ノード装置は、予め決められた特定のノード装置を宛先とする場合に限って、隠れ端末を考慮するようにしてもよい。特定のノード装置は、例えば、ゲートウェイノードである。ゲートウェイノードは、特に限定されるものではないが、アドホックネットワークの外部のサーバと接続し、アドホックネットワーク内の各ノードからデータを収集してサーバ装置へ送信する。
 この場合、ルーティングテーブル更新部33は、図17に示すステップS36(隠れ端末処理)を実行する前に、宛先ノードがゲートウェイノードであるか否かを判定する。そして、宛先ノードがゲートウェイノードであるときに、ルーティングテーブル更新部33は、ステップS36の隠れ端末処理を実行する。一方、宛先ノードがゲートウェイノードでなければ、ルーティングテーブル更新部33は、ステップS36をスキップする。
 この方法によれば、特定のノード宛てのデータの送信効率が向上する。したがって、この方法は、あるノード装置(例えば、ゲートウェイノード)が各ノードのデータを収集するシステムにおいて特に好ましい。
 <他の実施形態(4)>
 図6~図20に示す実施形態では、各ノード装置がそれぞれ自分のルーティングテーブルの内容を隣接ノードに通知する。これに対して、他の実施形態のアドホックネットワークにおいては、予め決められた特定のノード装置(例えば、上述のゲートウェイノード)のルーティングテーブルの内容のみが各ノードに通知される。すなわち、例えば、ゲートウェイノードは、そのゲートウェイノードを宛先とする経路情報を送信する。そして、他のノード装置は、ゲートウェイノードから送信された、ゲートウェイを宛先とする経路情報を受信して保持すると共に、その経路情報をそれぞれ隣接ノードに転送する。
 このようなネットワークにおいては、経路情報の送信および受信に係わるトラヒックが少なくなる。したがって、データの通信効率が向上する。特に、ゲートウェイノードが各ノードのデータを収集するシステムにおいては、各ノード装置は、ゲートウェイノード宛ての経路情報のみを有していればよいので、この方式は有用である。

Claims (11)

  1.  複数の無線通信装置が接続される無線ネットワークにおいて使用される無線通信装置であって、
     自装置に隣接する隣接無線通信装置を識別する情報を記憶する記憶部と、
     前記隣接無線通信装置の中の第1の無線通信装置から、前記第1の無線通信装置に隣接する第2の無線通信装置を識別する情報を取得する取得部と、
     データの宛先に応じて、隣接無線通信装置を選択する選択部と、
     前記選択部により選択される隣接無線通信装置へ前記データを送信する送信部と、を備え、
     前記選択部は、前記第2の無線通信装置を識別する情報が前記記憶部に記憶されていないときは、前記隣接無線通信装置を選択する処理において前記第1の無線通信装置の優先度を低くする
     ことを特徴とする無線通信装置。
  2.  請求項1に記載の無線通信装置であって、
     宛先ごとに、前記宛先との間の通信品質に応じて決まる第1の重み、および前記第2の無線通信装置を識別する情報が前記記憶部に記憶されているか否かに応じて決まる第2の重み、に基づいて評価値を算出する算出部をさらに備え、
     前記選択部は、前記評価値に基づいて宛先に対応する隣接無線通信装置を選択する
     ことを特徴とする無線通信装置。
  3.  請求項2に記載の無線通信装置であって、
     前記評価値を隣接無線通信装置へ通知する通知部をさらに備える
     ことを特徴とする無線通信装置。
  4.  請求項3に記載の無線通信装置であって、
     前記通知部は、予め決められた時間間隔で、前記評価値を格納するデータを隣接無線通信装置へブロードキャストする
     ことを特徴とする無線通信装置。
  5.  請求項1に記載の無線通信装置であって、
     前記選択部は、前記第2の無線通信装置を識別する情報が前記記憶部に記憶されていないときは、前記第1の無線通信装置以外の隣接無線通信装置を選択する
     ことを特徴とする無線通信装置。
  6.  請求項1に記載の無線通信装置であって、
     前記選択部は、前記記憶部に識別情報が記憶されていない第2の無線通信装置の数が多いほど、前記第1の無線通信装置の優先度を低くする
     ことを特徴とする無線通信装置。
  7.  請求項1に記載の無線通信装置であって、
     前記選択部は、予め決められた所定の宛先についてのみ、前記第2の無線通信装置を識別する情報が前記記憶部に記憶されているか否かに応じて、前記第1の無線通信装置の優先度を調整する
     ことを特徴とする無線通信装置。
  8.  各無線通信装置がそれぞれ宛先への経路の中で最小の評価値の経路を選択してデータを転送する無線ネットワークにおいて使用される無線通信装置であって、
     前記宛先への経路において、ネクストホップの転送先を特定する特定部と、
     前記特定部により特定されるネクストホップの転送先が隠れ端末であるか否かを判定する判定部と、
     前記ネクストホップの転送先が隠れ端末であるときは、前記ネクストホップの転送先が隠れ端末でないときと比較して、前記宛先への経路の評価値を大きくする算出部、
     を有することを特徴とする無線通信装置。
  9.  請求項8に記載の無線通信装置であって、
     前記宛先への経路の評価値を隣接無線通信装置へ通知する通知部をさらに備える
     ことを特徴とする無線通信装置。
  10.  複数の無線通信装置が接続される無線ネットワークにおいて使用される経路決定方法であって、
     無線通信装置に隣接する隣接無線通信装置を識別する情報を記憶部に記憶し、
     前記隣接無線通信装置の中の第1の無線通信装置から、前記第1の無線通信装置に隣接する第2の無線通信装置を識別する情報を取得し、
     前記第2の無線通信装置を識別する情報が前記記憶部に記憶されているか否かを判定し、
     前記第2の無線通信装置を識別する情報が前記記憶部に記憶されていないときは、前記第1の無線通信装置を経由する経路の優先度を低くする
     ことを特徴とする経路決定方法。
  11.  請求項10に記載の経路決定方法であって、
     各無線通信装置は、それぞれ、宛先と前記宛先への経路が経由する隣接無線通信装置との対応関係を記録する経路表を備え、
     前記複数の無線通信装置の中の特定無線通信装置は、前記特定無線通信装置を宛先とする経路表を送信し、
     各無線通信装置は、前記特定無線通信装置を宛先とする経路表を保持すると共に、前記特定無線通信装置を宛先とする経路表を隣接無線通信装置へ転送する
     ことを特徴とする経路決定方法。
PCT/JP2010/071291 2010-11-29 2010-11-29 無線通信装置および無線ネットワークにおける経路決定方法 WO2012073312A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012546594A JP5464278B2 (ja) 2010-11-29 2010-11-29 無線通信装置および無線ネットワークにおける経路決定方法
PCT/JP2010/071291 WO2012073312A1 (ja) 2010-11-29 2010-11-29 無線通信装置および無線ネットワークにおける経路決定方法
US13/886,866 US9578587B2 (en) 2010-11-29 2013-05-03 Wireless communication device and route selection method in wireless network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/071291 WO2012073312A1 (ja) 2010-11-29 2010-11-29 無線通信装置および無線ネットワークにおける経路決定方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/886,866 Continuation US9578587B2 (en) 2010-11-29 2013-05-03 Wireless communication device and route selection method in wireless network

Publications (1)

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

Family

ID=46171300

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/071291 WO2012073312A1 (ja) 2010-11-29 2010-11-29 無線通信装置および無線ネットワークにおける経路決定方法

Country Status (3)

Country Link
US (1) US9578587B2 (ja)
JP (1) JP5464278B2 (ja)
WO (1) WO2012073312A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015095722A (ja) * 2013-11-11 2015-05-18 富士通株式会社 ノード装置、経路入れ替え方法、及び、プログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6207300B2 (ja) * 2013-08-21 2017-10-04 株式会社Nttドコモ 移動局及び移動通信システム
US9654378B2 (en) * 2013-10-24 2017-05-16 Sas Institute Inc. Link addition to a network of linked nodes
JP2019121921A (ja) * 2018-01-05 2019-07-22 株式会社モバイルテクノ 通信制御装置および通信制御方法
CN116057905A (zh) * 2020-07-13 2023-05-02 华为技术有限公司 网络子图根节点选择的参数化方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005252563A (ja) * 2004-03-03 2005-09-15 Nippon Telegr & Teleph Corp <Ntt> 間欠動作型マルチホップ無線ネットワークの経路制御方法
JP2008187237A (ja) * 2007-01-26 2008-08-14 Mitsubishi Electric Corp 通信装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7002949B2 (en) * 2000-06-16 2006-02-21 The Regents Of The University Of California Bandwidth efficient source tracing (BEST) routing protocol for wireless networks
JP3997847B2 (ja) * 2002-06-17 2007-10-24 日本電気株式会社 最適経路計算方法、及び最適経路計算プログラム
US7395351B1 (en) * 2003-01-28 2008-07-01 Sprint Spectrum L.P. Method for assigning link weights in a communications network
JP2005303827A (ja) * 2004-04-14 2005-10-27 Ntt Docomo Inc 無線基地局、通信経路制御方法およびパケット転送方法
DE102006014308A1 (de) * 2006-03-10 2007-09-13 Rohde & Schwarz Gmbh & Co. Kg Verfahren zur Multi-Hop-Datenübertragung in einem ad-hoc-Netz mit versteckten Knoten
US8681810B2 (en) * 2006-04-13 2014-03-25 Qualcomm Incorporated Dynamic carrier sensing thresholds
US9043487B2 (en) * 2006-04-18 2015-05-26 Cisco Technology, Inc. Dynamically configuring and verifying routing information of broadcast networks using link state protocols in a computer network
JP4941397B2 (ja) 2008-04-22 2012-05-30 富士通株式会社 経路情報中継方法および無線端末
WO2010096029A1 (en) * 2009-02-18 2010-08-26 Thomson Licensing Distributed channel selection method for wireless networks
KR101068667B1 (ko) * 2009-09-28 2011-09-28 한국과학기술원 히든 노드 및 감지 간섭을 고려한 라우팅 경로 설정 방법, 그 시스템 및 이를 기록한 기록매체

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005252563A (ja) * 2004-03-03 2005-09-15 Nippon Telegr & Teleph Corp <Ntt> 間欠動作型マルチホップ無線ネットワークの経路制御方法
JP2008187237A (ja) * 2007-01-26 2008-08-14 Mitsubishi Electric Corp 通信装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015095722A (ja) * 2013-11-11 2015-05-18 富士通株式会社 ノード装置、経路入れ替え方法、及び、プログラム

Also Published As

Publication number Publication date
JPWO2012073312A1 (ja) 2014-05-19
US20130242746A1 (en) 2013-09-19
JP5464278B2 (ja) 2014-04-09
US9578587B2 (en) 2017-02-21

Similar Documents

Publication Publication Date Title
US10003532B2 (en) Communication method and communication apparatus
JP5376068B2 (ja) 無線通信装置および無線ネットワークにおける迂回経路探索方法
JP5464278B2 (ja) 無線通信装置および無線ネットワークにおける経路決定方法
JP2003249936A (ja) 無線装置およびその通信経路制御方法、コンピュータプログラム
US20060262753A1 (en) Method and apparatus for efficiently transmitting frame in wireless mesh network
JP6036841B2 (ja) 通信制御方法、ネットワークシステム、および通信装置
JP5725173B2 (ja) 無線局、ルーティング方法、無線通信システムおよびルーティング用プログラム
US20140219209A1 (en) Node device and communication method
JP5720793B2 (ja) データ転送方法およびそれを用いるノード装置
JP5705030B2 (ja) 通信システム
JP5533168B2 (ja) ノード及び無線通信システム
JP5821467B2 (ja) 無線端末
JP5958293B2 (ja) 通信方法、通信プログラム、および、ノード装置
US7336614B2 (en) Method and device for controlling route and computer program therefor
JP2011217141A (ja) 無線通信装置及びデータ中継方法
US20140198770A1 (en) Node device, communication method, and storage medium
JP5716836B2 (ja) 無線マルチホップネットワークの監視方法
CN104053208B (zh) 无线自组网中基于信道分配的路由方法、装置
CN104754649A (zh) 一种数据传输方法与无线Mesh节点
US9374849B2 (en) Node and link formation method
KR101056910B1 (ko) 다중 송신율로 데이터를 송신하는 애드-훅 라우팅 기반의 무선 센서 네트워크에서 패킷 송신 경로를 결정하는 방법
US8576779B2 (en) Radio communication apparatus and packet forwarding method
JP4311325B2 (ja) ネットワークシステムおよびノードおよび利己的なノードの検出方法
JP5119603B2 (ja) 無線端末装置、及びプログラム
KR101523175B1 (ko) 지향성 안테나를 사용한 신축적 패킷 라우팅 방법 및 장치

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012546594

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

Country of ref document: EP

Kind code of ref document: A1