JPWO2013145026A1 - Network system, node, verification node, and communication method - Google Patents

Network system, node, verification node, and communication method Download PDF

Info

Publication number
JPWO2013145026A1
JPWO2013145026A1 JP2014507017A JP2014507017A JPWO2013145026A1 JP WO2013145026 A1 JPWO2013145026 A1 JP WO2013145026A1 JP 2014507017 A JP2014507017 A JP 2014507017A JP 2014507017 A JP2014507017 A JP 2014507017A JP WO2013145026 A1 JPWO2013145026 A1 JP WO2013145026A1
Authority
JP
Japan
Prior art keywords
node
packet
verification
nodes
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014507017A
Other languages
Japanese (ja)
Inventor
伊豆 哲也
哲也 伊豆
由美 酒見
由美 酒見
和快 古川
和快 古川
尚 兒島
尚 兒島
武仲 正彦
正彦 武仲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014507017A priority Critical patent/JPWO2013145026A1/en
Publication of JPWO2013145026A1 publication Critical patent/JPWO2013145026A1/en
Pending legal-status Critical Current

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】ネットワーク内を流れるパケットを効果的に検証する事を課題とする。
【解決手段】
複数のノード間で第一のパケットを授受する事で第二のパケットの送信ルートが構築され、複数のノードと複数のノードよりも処理能力が高い検証ノードとを含むネットワークシステムにおいて、検証ノードは、複数のノードの少なくとも一部に、自身が検証ノードであることを示す識別子を含む第三のパケットを送信する通信部と、通信部により複数のノードから第二のパケットが受信された場合には、第二のパケットの正当性を検証する検証部とを有し、複数のノードは各々、他のノードから第一のパケットを受信し、検証ノードから第三のパケットを受信する通信部と、第一のパケットおよび第三のパケットに基づいて、検証ノードおよび他のノードの中から、第二のパケットの送信先を決定する制御部とを有する。
An object is to effectively verify a packet flowing in a network.
[Solution]
In a network system including a plurality of nodes and a verification node having a higher processing capability than the plurality of nodes, a verification node is configured to establish a transmission route for the second packet by exchanging the first packet between the plurality of nodes. A communication unit that transmits a third packet including an identifier indicating that the node is a verification node to at least some of the plurality of nodes, and a second packet is received from the plurality of nodes by the communication unit. Has a verification unit that verifies the validity of the second packet, and each of the plurality of nodes receives a first packet from another node and receives a third packet from the verification node; And a control unit that determines a transmission destination of the second packet from among the verification node and other nodes based on the first packet and the third packet.

Description

本明細書に開示する技術は、アドホックネットワークにおいて、パケットを送受信する技術に関する。   The technology disclosed in this specification relates to a technology for transmitting and receiving packets in an ad hoc network.

アドホックネットワークとは、無線通信によってリンクする自己構成型のネットワークの一種である。アドホックネットワークは、通信機能を有する複数の装置により構成される。なお、アドホックネットワークにおける、通信機能を有する装置は、ノードと呼ばれる。また、アドホックネットワーク内の各ノードは、通信対象のノード以外の他のノードを経由してマルチホップ通信によりパケットを送受信することで、アクセスポイントや基地局などの中継局を経由すること無く通信対象のノードとの通信が可能となる。マルチホップ通信は、互いの通信圏内に存在しないノード同士が、各ノードの通信圏内に存在する別のノードを介して通信を可能にする技術である。   An ad hoc network is a type of self-configuring network that is linked by wireless communication. An ad hoc network is composed of a plurality of devices having a communication function. A device having a communication function in an ad hoc network is called a node. In addition, each node in the ad hoc network transmits and receives packets by multi-hop communication via nodes other than the communication target node, so that the communication target can be transmitted without going through a relay station such as an access point or a base station. Communication with the other node becomes possible. Multi-hop communication is a technology that enables nodes that do not exist within the communication range of each other to communicate via another node that exists within the communication range of each node.

例えば、アドホックネットワークを利用したシステムとして、各家庭の電力メータに無線通信可能なノードを組み込むことにより、アドホックネットワーク経由で各家庭の消費電力量などを収集する検針システムがある。検針システムでは、各電気メータが検出した各家庭の消費電力量を含むパケットが、各家庭の電気メータが備える各ノードから電力会社のサーバまで転送される。このようなシステムでは、アドホックネットワークにおいて各家庭の電力の使用量などの個人情報を扱うため、秘匿性、改ざん防止などの観点からセキュアな通信を行うことが要求される。   For example, as a system using an ad hoc network, there is a meter-reading system that collects power consumption of each home via the ad hoc network by incorporating a node capable of wireless communication into the power meter of each home. In the meter-reading system, a packet including the power consumption amount of each home detected by each electric meter is transferred from each node included in each home electric meter to the server of the electric power company. In such a system, in order to handle personal information such as the power consumption of each household in the ad hoc network, it is required to perform secure communication from the viewpoint of confidentiality and prevention of tampering.

アドホックネットワーク内のノード間で送受信されるパケットを暗号化することで、パケットに含まれる情報の秘匿性を確保する技術がある。   There is a technique for ensuring the confidentiality of information included in a packet by encrypting a packet transmitted and received between nodes in an ad hoc network.

さらに、パケット内のデータの完全性と、パケットの送信元の正当性を、パケットを受信したノードが検証する。なお、パケット内のデータの完全性とは、パケットに設定されたデータに、改ざんや欠落がないことをいう。また、パケットの送信元の正当性とは、アドホックネットワークに正規に参加するノードが送信元であることをいう。   Further, the node that received the packet verifies the integrity of the data in the packet and the validity of the transmission source of the packet. Note that the integrity of data in a packet means that the data set in the packet is not falsified or lost. The validity of the packet transmission source means that a node that normally participates in the ad hoc network is the transmission source.

例えば、各ノードが、受信したパケットに対して、メッセージ認証符号(MAC)の検証を実行することで、不正ノードから送信された不正パケットを検出する技術がある。当該技術は、不正パケットを検出した場合は、当該パケットを破棄する(特許文献1)。   For example, there is a technique in which each node detects a malicious packet transmitted from an unauthorized node by executing verification of a message authentication code (MAC) on the received packet. When the technology detects an illegal packet, the technology discards the packet (Patent Document 1).

国際公開WO2011/121713公報International publication WO2011-121713

各ノードが、パケットを検証する処理を行う場合、各ノードにはパケットの送受信処理以外に、検証処理による負荷が生じる。各ノードの処理能力が高くないような場合は特に、送受信処理以外の処理負荷をできるだけ抑える必要がある。   When each node performs a process of verifying a packet, each node is subjected to a load due to the verification process in addition to the packet transmission / reception process. Especially when the processing capability of each node is not high, it is necessary to suppress processing loads other than transmission / reception processing as much as possible.

さらに、不正ノードから大量のパケットがネットワークに送り込まれた場合などには、ネットワーク全体に対する検証処理の負荷が増大する。つまり、大量のパケットを各ノードで検証することになるため、検証処理による処理負荷によって、ネットワークにおけるパケットの転送速度の低下などを招く。   Furthermore, when a large number of packets are sent from an unauthorized node to the network, the verification processing load on the entire network increases. In other words, since a large number of packets are verified at each node, the processing load caused by the verification process causes a decrease in packet transfer speed in the network.

そこで、検証処理を行うことに適した装置に検証処理を行わせることで、通常のノードにおける検証処理による処理負荷を軽減することが考えられる。しかし、従来の技術では、ネットワーク内を流れるパケットを、適宜、検証処理を行うことに適した装置に転送し、ネットワークを流れるパケットを効果的に検証することができなかった。   Therefore, it is conceivable to reduce the processing load due to the verification process in a normal node by causing the apparatus suitable for performing the verification process to perform the verification process. However, in the conventional technique, a packet flowing in the network is appropriately transferred to a device suitable for performing verification processing, and the packet flowing in the network cannot be effectively verified.

そこで、本発明は、ネットワーク内を流れるパケットを効果的に検証することを目的とする。   Therefore, an object of the present invention is to effectively verify a packet flowing in a network.

本発明の一観点によれば、複数のノード間で第一のパケットを授受する事で、第二のパケットの送信ルートが構築されるとともに、該複数のノードと該複数のノードよりも処理能力が高い検証ノードとを含むネットワークシステムにおいて、前記検証ノードは、前記複数のノードの少なくとも一部に、自身が検証ノードであることを示す識別子を含む第三のパケットを送信する通信部と、前記通信部により前記複数のノードのうちのいずれかから前記第二のパケットが受信された場合には、該第二のパケットの正当性を検証する検証部とを有し、前記複数のノードは各々、前記複数のノードの内の他のノードから前記第一のパケットを受信するとともに、前記検証ノードから前記第三のパケットを受信する通信部と、前記第一のパケットおよび前記第三のパケットに基づいて、前記検証ノードおよび前記他のノードの中から、前記第二のパケットの送信先を決定する制御部とを有する。   According to an aspect of the present invention, a transmission route of a second packet is established by exchanging a first packet between a plurality of nodes, and the processing capability is higher than that of the plurality of nodes and the plurality of nodes. In the network system including a high verification node, the verification node transmits, to at least a part of the plurality of nodes, a communication unit that transmits a third packet including an identifier indicating that the verification node is a verification node; When the second packet is received from any one of the plurality of nodes by the communication unit, a verification unit that verifies the validity of the second packet, and each of the plurality of nodes Receiving the first packet from another node of the plurality of nodes and receiving the third packet from the verification node; and the first packet and Based on the third packet, from among the verification node and the other nodes, and a control unit for determining the destination of the second packet.

本発明の一観点によれば、ネットワーク内を流れるパケットについて、パケット内のデータの完全性と、パケットの送信元の正当性を効果的に検証することが可能になる。   According to one aspect of the present invention, it is possible to effectively verify the integrity of data in a packet and the validity of a packet transmission source for a packet flowing in a network.

図1は、本実施例に係るアドホックネットワークシステムと従来のアドホックネットワークシステムとを比較する為の説明図である。FIG. 1 is an explanatory diagram for comparing an ad hoc network system according to the present embodiment with a conventional ad hoc network system. 図2は、管理パケットのデータ構成例を示す図である。FIG. 2 is a diagram illustrating a data configuration example of the management packet. 図3は、データパケットのデータ構成例を示す図である。FIG. 3 is a diagram illustrating a data configuration example of a data packet. 図4は、ノードNxの機能ブロック図である。FIG. 4 is a functional block diagram of the node Nx. 図5は、従来のルーティングテーブルのデータ構成例と本実施例に係るルーティングテーブルのデータ構成例とを比較する為の図である。FIG. 5 is a diagram for comparing a data configuration example of a conventional routing table with a data configuration example of a routing table according to the present embodiment. 図6は、シンクノードSNからノードNbに時刻パケットが到達する経路を説明する為の図である。FIG. 6 is a diagram for explaining a route through which a time packet arrives from the sink node SN to the node Nb. 図7は、ノード間でのハローパケットの授受を説明する為の図である。FIG. 7 is a diagram for explaining exchange of hello packets between nodes. 図8は、鍵情報記憶部132が記憶するデータ例である。FIG. 8 shows an example of data stored in the key information storage unit 132. 図9は、ノードNtestの機能ブロック図である。FIG. 9 is a functional block diagram of the node Ntest. 図10は、ルーティングテーブル生成処理のフローチャートである。FIG. 10 is a flowchart of the routing table generation process. 図11は、ノードNxにおける転送処理のフローチャートである。FIG. 11 is a flowchart of the transfer process in the node Nx. 図12は、ノードNtestにおける転送処理のフローチャートである。FIG. 12 is a flowchart of the transfer process in the node Ntest. 図13は、ノードNxのハードウェア構成例である。FIG. 13 is a hardware configuration example of the node Nx. 図14は、検証ノードNtestのハードウェア構成例である。FIG. 14 is a hardware configuration example of the verification node Ntest.

以下に添付図面を参照して、この発明にかかる通信装置、通信方法、およびシステムの実施の形態を詳細に説明する。   Exemplary embodiments of a communication device, a communication method, and a system according to the present invention will be described below in detail with reference to the accompanying drawings.

図1は、本実施例に係るアドホックネットワークシステムと従来のアドホックネットワークシステムとを比較する為の説明図である。   FIG. 1 is an explanatory diagram for comparing an ad hoc network system according to the present embodiment with a conventional ad hoc network system.

従来のアドホックネットワークシステムは、複数のノードNxと、シンクノードSNと、サーバSとを含む。サーバSとシンクノードSNとはインターネット、LAN、WANなどの通常ネットワーク101を介して接続されている。シンクノードSNとノードNxとは、アドホックネットワーク100を介して接続されている。   The conventional ad hoc network system includes a plurality of nodes Nx, a sink node SN, and a server S. The server S and the sink node SN are connected via a normal network 101 such as the Internet, LAN, or WAN. The sink node SN and the node Nx are connected via the ad hoc network 100.

アドホックネットワーク100内には、複数のノードNxが設けられている。図1では、代表としてノードNa〜Nhを示している。ノードNa乃至Nhを区別する必要がない場合は、ノードNxと記す。   In the ad hoc network 100, a plurality of nodes Nx are provided. In FIG. 1, nodes Na to Nh are shown as representatives. When it is not necessary to distinguish the nodes Na to Nh, they are denoted as a node Nx.

シンクノードSNは、アドホックネットワーク100と通常ネットワーク101とを接続する中継機器である。シンクノードSNは、アドホックネットワーク100のプロトコルの形式の情報と通常ネットワーク101のプロトコルの形式の情報の両方を送受信可能である。   The sink node SN is a relay device that connects the ad hoc network 100 and the normal network 101. The sink node SN can transmit and receive both the protocol format information of the ad hoc network 100 and the protocol format information of the normal network 101.

また、シンクノードSNは、アドホックネットワーク100と通常ネットワーク101との間で情報をプロトコル変換することにより、通信を行う。例えば、アドホックネットワーク100内のノードNxのいずれかからサーバS宛に送信されたパケットは、シンクノードSNにてプロトコル変換される。その後、シンクノードSNが、パケットを、通常ネットワーク101に送信することで、パケットはサーバSに到達する。   Also, the sink node SN performs communication by converting information between the ad hoc network 100 and the normal network 101 by protocol conversion. For example, a packet transmitted from any of the nodes Nx in the ad hoc network 100 to the server S is subjected to protocol conversion at the sink node SN. Thereafter, the sink node SN transmits the packet to the normal network 101, so that the packet reaches the server S.

各ノードNxは、他ノードNxまたはシンクノードSNとマルチホップ通信が可能な装置である。なお、他ノードNxまたはシンクノードSNは、通信可能圏内に存在する必要がある。アドホックネットワーク100では、すべてのノードNa〜Nhが直接シンクノードSNと通信できる必要はなく、他のノードを経由する事で、各ノードNa〜Nhは、シンクノードSNと通信する。   Each node Nx is a device capable of multi-hop communication with another node Nx or a sink node SN. Note that the other node Nx or the sink node SN needs to exist within a communicable area. In the ad hoc network 100, it is not necessary that all the nodes Na to Nh can directly communicate with the sink node SN, and each node Na to Nh communicates with the sink node SN by passing through other nodes.

各ノードNxは、ルーティングテーブルを生成する。そして、各ノードNxは、ルーティングテーブルに従って、パケットを送信する。図1においては、シンクノードにパケットを送信する場合には、従来のアドホックシステムでは、白抜き矢印および斜線矢印で示された経路に従うものとする。   Each node Nx generates a routing table. Each node Nx transmits a packet according to the routing table. In FIG. 1, when a packet is transmitted to a sink node, it is assumed that the conventional ad hoc system follows a route indicated by a white arrow and a hatched arrow.

例えば、ノードNcからシンクノードSNへ向けてパケットが送信される場合には、パケットは、ノードNbおよびノードNaを経由する。また、パケットがシンクノードSNへ送信される過程で、経路に含まれるノードNbやノードNaは、パケット内のデータの完全性と、パケットの送信元の正当性を検証する。例えば、ノードNbやノードNaは、MAC値を利用して、検証を実行する。   For example, when a packet is transmitted from the node Nc toward the sink node SN, the packet passes through the node Nb and the node Na. Further, in the process of transmitting the packet to the sink node SN, the node Nb and the node Na included in the path verify the integrity of the data in the packet and the validity of the packet transmission source. For example, the node Nb and the node Na perform verification using the MAC value.

一方、本実施例に係るアドホックネットワークシステムは、複数のノードNxと、シンクノードSNと、サーバSと、さらに検証ノードNtestを含む。   On the other hand, the ad hoc network system according to the present embodiment includes a plurality of nodes Nx, a sink node SN, a server S, and a verification node Ntest.

Ntestは、ノードNxと比較して、処理能力が高い装置である。そして、検証ノードNtestは、ノードNxとマルチホップ通信が可能な装置である。なお、本実施の形態においては、ノードNxは、他ノードNxまたはシンクノードSN以外に、検証ノードNtestともマルチホップ通信が可能である。なお、他ノードNxまたはシンクノードSN、検証ノードNtestは、通信可能圏内に存在する必要がある。   Ntest is a device having a higher processing capability than the node Nx. The verification node Ntest is a device capable of multihop communication with the node Nx. In the present embodiment, the node Nx can perform multi-hop communication with the verification node Ntest in addition to the other node Nx or the sink node SN. Note that the other node Nx, the sink node SN, and the verification node Ntest need to exist within a communicable area.

ただし、ノードNa〜ノードNhのいずれかが、Ntestの機能を果たしてもよい。その場合は、他のノードよりも処理能力が高いことが要される。   However, any of the node Na to the node Nh may fulfill the Ntest function. In that case, the processing capability is required to be higher than that of other nodes.

本実施例においては、本実施例に係るルーティングテーブルに従って、パケットが転送される。図1においては、シンクノードにパケットを送信する場合には、本実施例におけるアドホックシステムでは、白抜き矢印および黒色矢印で示された経路に従うものとする。   In the present embodiment, the packet is transferred according to the routing table according to the present embodiment. In FIG. 1, when a packet is transmitted to a sink node, the ad hoc system according to the present embodiment follows a route indicated by a white arrow and a black arrow.

例えば、ノードNcからシンクノードSNへ向けてパケットが送信される場合には、パケットは、ノードNb、Ntest、ノードNaを経由する。また、パケットがシンクノードSNへ送信される過程で、経路に含まれるノードNtestが、パケット内のデータの完全性と、パケットの送信元の正当性を検証する。例えば、ノードNtestは、MAC値を利用して、検証を実行する。   For example, when a packet is transmitted from the node Nc to the sink node SN, the packet passes through the node Nb, Ntest, and node Na. Further, in the process of transmitting the packet to the sink node SN, the node Ntest included in the path verifies the integrity of the data in the packet and the validity of the transmission source of the packet. For example, the node Ntest performs verification using the MAC value.

ノードNbおよびNaは、MAC検証を実行しなくても良い。しかし、処理能力に余裕がある場合には、他のノードNbおよびNaもMAC検証を実行してもよい。以下では、MAC値を利用した検証は、Ntestのみが行い、ノードNxは、MAC検証を実施しないとして説明を行う。   Nodes Nb and Na do not have to perform MAC verification. However, if there is a margin in processing capacity, the other nodes Nb and Na may also perform MAC verification. In the following description, it is assumed that verification using the MAC value is performed only by Ntest, and that the node Nx does not perform MAC verification.

図1からわかる様に、従来のアドホックネットワークシステムに対して、本願実施例のアドホックネットワークシステムは、パケットの送信経路に、検証ノードNtestを経由する経路を含む点が異なる。   As can be seen from FIG. 1, the ad hoc network system according to the embodiment of the present invention differs from the conventional ad hoc network system in that the packet transmission path includes a path passing through the verification node Ntest.

次に、アドホックネットワークを流れるパケットについて、説明する。アドホックネットワークを流れるパケットには、複数種類のパケットが含まれる。例えば、管理パケット、データパケットがある。管理パケットとは、ブロードキャストされるパケットであって、各ノードNxまたは検証ノードNxが他のノードまたはシンクノードパケットSNと通信するために必要な情報を共有するためのパケットである。例えば、各ノードがセッション鍵を周囲のノードに配布する為のハローパケットや、シンクノードが時刻情報を各ノードに配布する為の時刻パケットが、管理パケットに含まれる。   Next, a packet flowing through the ad hoc network will be described. A packet flowing through an ad hoc network includes a plurality of types of packets. For example, there are a management packet and a data packet. The management packet is a packet to be broadcast, and is a packet for sharing information necessary for each node Nx or verification node Nx to communicate with other nodes or sink node packets SN. For example, the management packet includes a hello packet for each node to distribute a session key to surrounding nodes and a time packet for a sink node to distribute time information to each node.

また、データパケットとは、ユニキャストされるパケットであって、指定された送信先に送信したいデータを含むパケットである。   A data packet is a unicast packet that includes data that is to be transmitted to a specified destination.

図2は、管理パケットのデータ構成例を示す図である。なお、図2に示す管理パケットは、シンクノード、各ノードNx、および検証ノードNtestの各々がブロードキャストすることで、ブロードキャストした装置と通信可能範囲に存在する他の装置との間で授受される。   FIG. 2 is a diagram illustrating a data configuration example of the management packet. The management packet shown in FIG. 2 is exchanged between the broadcasting device and other devices existing in the communicable range by broadcasting each of the sink node, each node Nx, and the verification node Ntest.

管理パケット1には、ヘッダ情報格納部2、ペイロードデータ格納部3が、それぞれ割り当てられる。ヘッダ情報格納部2には、ヘッダ情報が格納される。ヘッダ情報は、宛先アドレス、ローカル送信元アドレス、グローバル送信元アドレス、パケットタイプ、付加情報を含む。ペイロードデータ格納部3には、ペイロードデータが格納される。   A header information storage unit 2 and a payload data storage unit 3 are allocated to the management packet 1. The header information storage unit 2 stores header information. The header information includes a destination address, a local source address, a global source address, a packet type, and additional information. The payload data storage unit 3 stores payload data.

宛先アドレスは、ブロードキャスト専用の特別なアドレスである。例えば、宛先アドレスは、予め用意されたアドレス「255.255.255.255」である。各ノードは、個別に設定されたアドレス宛に送信されたパケットを受信するが、当該特別なアドレス宛に送信されたパケットも受信する。つまり、特別なアドレスが設定されたパケットは、当該パケットを送信したノードと通信可能な範囲に存在する全てのノードにより受信される。   The destination address is a special address dedicated to broadcasting. For example, the destination address is an address “255.255.255.255” prepared in advance. Each node receives a packet transmitted to an address set individually, but also receives a packet transmitted to the special address. That is, a packet in which a special address is set is received by all nodes that are in a range where communication with the node that transmitted the packet is possible.

ローカル送信元アドレスは、管理パケット1を送信する装置のアドレスに関する情報である。つまり、ローカル送信元アドレスは、マルチホップ通信の途中で、管理パケットが一回送信される毎に、送信する主体となる装置のアドレスに書きかわる。グローバル送信元アドレスは、ペイロードデータを生成した装置のアドレスに関する情報である。つまり、グローバル送信元アドレスは、マルチホップ通信において、始点となった装置のアドレスに関する情報である。   The local transmission source address is information related to the address of the device that transmits the management packet 1. In other words, the local transmission source address is rewritten to the address of the main device that transmits data each time a management packet is transmitted once during multi-hop communication. The global transmission source address is information regarding the address of the device that generated the payload data. That is, the global transmission source address is information regarding the address of the device that is the starting point in multihop communication.

パケットタイプは、当該パケットの種別を示す情報である。例えば、管理パケットである時刻パケットである場合には「0」が、管理パケットであるハローパケットである場合には「1」が設定される。また、データパケットの場合には、「2」が設定される。   The packet type is information indicating the type of the packet. For example, “0” is set for a time packet that is a management packet, and “1” is set for a hello packet that is a management packet. In the case of a data packet, “2” is set.

ブロードキャストされた管理パケットを受信した各ノードは、パケットタイプに応じて、受信した管理パケットを他のノードへ転送するか否かを判定する。例えば、ノードNxが、宛先アドレスに特別なアドレスが設定された管理パケットを受信した場合に、パケットタイプが「0」である場合は、受信した管理パケットを、他のノードNxへ転送する。つまり、時刻パケットは、マルチホップ通信の対象として、ネットワークを転送される。   Each node that has received the broadcast management packet determines whether or not to forward the received management packet to another node according to the packet type. For example, when the node Nx receives a management packet in which a special address is set as the destination address, and the packet type is “0”, the received management packet is transferred to another node Nx. That is, the time packet is transferred through the network as a target of multihop communication.

一方、ノードNxが、宛先アドレスに特別なアドレスが設定された管理パケットを受信した場合に、パケットタイプが「1」である場合は、受信した管理パケットを、他のノードNxへ転送しない。つまり、ハローパケットは、マルチホップ通信の対象から除外され、パケットの転送は、あるノードNxで収束する。   On the other hand, when the node Nx receives a management packet in which a special address is set as the destination address, if the packet type is “1”, the received management packet is not transferred to another node Nx. That is, the hello packet is excluded from the target of multi-hop communication, and the packet transfer converges at a certain node Nx.

なお、本実施例においては、管理パケットのデータ構成を、ハローパケットと、時刻パケットで統一する為に、ハローパケットにおけるヘッダ情報には、ローカル送信元アドレスとグローバル送信元アドレスが含まれるとした。しかし、ハローパケットには、ローカル送信元アドレスとグローバル送信元アドレスには、同一のアドレスが設定されるため、ハローパケットのヘッダ情報には、ローカル送信元アドレスのみが含まれるとしても良い。   In this embodiment, in order to unify the data structure of the management packet with the hello packet and the time packet, the header information in the hello packet includes the local transmission source address and the global transmission source address. However, since the same address is set for the local source address and the global source address in the hello packet, only the local source address may be included in the header information of the hello packet.

付加情報は、上記アドレスおよびパケットタイプ以外のヘッダ情報であって、パケットの種別に応じた情報である。例えば、パケットが時刻パケットである場合には、付加情報は、ホップ数に関する情報である。そして、ホップ数が、付加情報としてパケット1のヘッダ情報格納部2に格納される。ホップ数は、パケットがマルチホップ通信された回数である。例えば、シンクノードSNが送信した時刻パケットを、ノードNaおよびノードNbを経由して、ノードNcが受信した場合は、ノードNcが受信した管理パケットには、ホップ数として「3」が設定されている。   The additional information is header information other than the address and packet type, and is information according to the type of packet. For example, when the packet is a time packet, the additional information is information regarding the number of hops. The number of hops is stored as additional information in the header information storage unit 2 of the packet 1. The number of hops is the number of times that the packet has been subjected to multi-hop communication. For example, when the node Nc receives the time packet transmitted by the sink node SN via the node Na and the node Nb, “3” is set as the hop number in the management packet received by the node Nc. Yes.

また、パケットがハローパケットである場合には、付加情報は、ノード種別の情報である。そして、ノード種別が、付加情報としてパケット1のヘッダ情報格納部2に格納される。ノード種別は、ハローパケットを生成したノードの種別を示す情報であって、ノードの種別を識別する為の識別子である。例えば、ハローパケットを生成したノードが、検証ノードNtestである場合には、ノード種別は「3」である。また、ハローパケットを生成したノードが、検証ノードNtestでない場合には、ノード種別は「4」である。   When the packet is a hello packet, the additional information is node type information. The node type is stored in the header information storage unit 2 of the packet 1 as additional information. The node type is information indicating the type of the node that generated the hello packet, and is an identifier for identifying the type of the node. For example, when the node that generated the hello packet is the verification node Ntest, the node type is “3”. When the node that generated the hello packet is not the verification node Ntest, the node type is “4”.

ペイロードデータは、ヘッダ情報を除く情報である。また、ペイロードデータは、パケットの種別に応じて、内容が異なる。例えば、パケットが時刻パケットである場合には、時刻の情報がペイロードデータとして、パケット1のペイロードデータ格納部3に格納される。なお、時刻パケットを受信した各ノードNxまたは検証ノードNtestは、ペイロードデータ格納部から時刻の情報を取得し、各ノードNxまたは検証ノードNtestの時刻を設定する。   The payload data is information excluding header information. Also, the content of payload data varies depending on the type of packet. For example, when the packet is a time packet, time information is stored in the payload data storage unit 3 of the packet 1 as payload data. Each node Nx or verification node Ntest that has received the time packet acquires time information from the payload data storage unit and sets the time of each node Nx or verification node Ntest.

また、例えば、パケットがハローパケットである場合には、ペイロードデータは、セッション鍵を含む情報である。セッション鍵は、各ノードNxおよび検証ノードNtestの内、2つのノードで通信を行う為に用いられる鍵である。セッション鍵は、ペイロードデータを暗号化する場合などに利用される。   For example, when the packet is a hello packet, the payload data is information including a session key. The session key is a key used for communication between two nodes of each node Nx and the verification node Ntest. The session key is used when the payload data is encrypted.

セッション鍵でペイロードデータを暗号化する場合は、各ノードは、送信先に応じたセッション鍵で、ペイロードデータを暗号化する。よって、データパケットを転送するノードは、受信したデータパケット内のペイロードデータを、自身のセッション鍵で復号したのち、次の送信先のセッション鍵で再暗号化する。ペイロードデータを復号することで、送信元の正当性を検証することができる。   When the payload data is encrypted with the session key, each node encrypts the payload data with the session key corresponding to the transmission destination. Therefore, the node that transfers the data packet decrypts the payload data in the received data packet with its own session key, and then re-encrypts it with the session key of the next transmission destination. By decoding the payload data, it is possible to verify the legitimacy of the transmission source.

ハローパケットを受信した各ノードNxまたは検証ノードNtestは、ペイロードデータ格納部からセッション鍵の情報を取得し、各ノードNxまたは検証ノードNtestの鍵情報記憶部に、ローカル送信元アドレスと対応付けて、記憶する。   Each node Nx or verification node Ntest that has received the hello packet acquires session key information from the payload data storage unit, and associates it with the local transmission source address in the key information storage unit of each node Nx or verification node Ntest. Remember.

一方、ペイロードデータは、セッション鍵ではなく、シンクノードSNまたはサーバSと共有しているサーバ鍵で、暗号化されてもよい。サーバ鍵をペイロードデータの暗号化に利用する場合は、各ノードは、復号化および再暗号化を行う必要はない。グローバル送信先アドレスとしてシンクノードSNが指定されている場合に、シンクノードSNがパケットを受信した時点で、ペイロードデータは復号される。   On the other hand, the payload data may be encrypted with a server key shared with the sink node SN or the server S instead of the session key. When the server key is used for encryption of payload data, each node does not need to perform decryption and re-encryption. When the sink node SN is designated as the global destination address, the payload data is decoded when the sink node SN receives the packet.

このように、各ノードNxは、復号化および再暗号化の処理を行う必要がない為、セッション鍵を利用してペイロードデータを暗号化する場合と比較して、処理負荷が低減される。なお、暗号化にサーバ鍵を利用する場合は、ハローパケットのペイロードデータ格納部は、空であっても構わない。本実施例においては、暗号化にサーバ鍵を利用するとして説明を行う。   Thus, since each node Nx does not need to perform decryption and re-encryption processing, the processing load is reduced compared to the case where payload data is encrypted using a session key. When a server key is used for encryption, the payload data storage unit of the hello packet may be empty. In the present embodiment, description will be made assuming that a server key is used for encryption.

図3は、データパケットのデータ構成例を示す図である。データパケット4には、ヘッダ情報格納部5、ペイロードデータ格納部6、値格納部7がそれぞれ割り当てられる。ヘッダ情報格納部5には、ヘッダ情報が格納される。ヘッダ情報は、ローカル送信元アドレス、ローカル送信先アドレス、グローバル送信元アドレス、グローバル送信先アドレス、パケットタイプ、付属情報を含む。ペイロードデータ格納部6には、ペイロードデータが格納される。値格納部7には、パケット内の所定のデータを対象として算出された値が格納される。   FIG. 3 is a diagram illustrating a data configuration example of a data packet. A header information storage unit 5, a payload data storage unit 6, and a value storage unit 7 are allocated to the data packet 4, respectively. The header information storage unit 5 stores header information. The header information includes a local transmission source address, a local transmission destination address, a global transmission source address, a global transmission destination address, a packet type, and attached information. Payload data is stored in the payload data storage unit 6. The value storage unit 7 stores a value calculated for predetermined data in the packet.

ローカル送信元アドレス、グローバル送信元アドレス、パケットタイプは、管理パケット1と同様の情報である。ただし、データパケットの場合には、パケットタイプとして「2」が設定される。   The local transmission source address, global transmission source address, and packet type are the same information as the management packet 1. However, in the case of a data packet, “2” is set as the packet type.

ローカル送信先アドレスは、マルチホップ通信を形成する一つの通信において、データパケット4の送信先となる装置のアドレスに関する情報である。グローバル送信先アドレスは、ペイロードデータ格納部6に記述されるペイロードデータを最終的に受信する装置のアドレスに関する情報である。つまり、グローバル送信先アドレスは、マルチホップ通信における終点となる装置のアドレスに関する情報である。   The local transmission destination address is information related to the address of the device that is the transmission destination of the data packet 4 in one communication forming the multi-hop communication. The global transmission destination address is information related to the address of the device that finally receives the payload data described in the payload data storage unit 6. That is, the global transmission destination address is information related to the address of a device that is an end point in multihop communication.

付属情報は、各種アドレスおよびパケットタイプ以外のヘッダ情報である。例えば、付属情報として、ホップ数や送信日時などに関する情報が格納される。   The attached information is header information other than various addresses and packet types. For example, information relating to the number of hops, transmission date and time, and the like is stored as attached information.

ペイロードデータは、ヘッダ情報および値を除く情報である。ペイロードデータは、例えば、各ノードNxがセンサから取得したデータである。例えば、ノードNcにより取得された消費電力量のデータを、ペイロードデータ格納部6に設定する。   The payload data is information excluding header information and values. The payload data is, for example, data acquired from the sensor by each node Nx. For example, the power consumption data acquired by the node Nc is set in the payload data storage unit 6.

値は、データパケット内の所定のデータに対して所定の論理関係を有する値である。例えば、ペイロードデータ、グローバル送信先アドレス、およびグローバル送信元アドレスを対象として、算出されたMAC値である。   The value is a value having a predetermined logical relationship with predetermined data in the data packet. For example, the MAC value is calculated for the payload data, the global transmission destination address, and the global transmission source address.

図3に示すデータパケットは、各ノードNxおよび検証ノードNtestが有するルーティングテーブルに従って、アドホックネットワーク内を流れる。そして、本実施例においては、データパケット内のペイロードデータに対してデータの完全性が検証されるとともに、グローバル送信元の正当性が検証される。   The data packet shown in FIG. 3 flows in the ad hoc network according to the routing table of each node Nx and verification node Ntest. In this embodiment, the integrity of the data is verified with respect to the payload data in the data packet, and the validity of the global transmission source is verified.

次に、図4を利用して、ノードNxの処理部を説明する。図4は、ノードNxの機能ブロック図である。   Next, the processing unit of the node Nx will be described with reference to FIG. FIG. 4 is a functional block diagram of the node Nx.

ノードNxは、通信部11、制御部12、記憶部13、取得部14を含む。通信部11は、他のノードNx,検証ノードNtest、またはシンクノードSNと無線通信する処理部である。例えば、通信部11は、通信可能な範囲に存在する他のノードNxと、ハローパケットやデータパケットを送受信する。通信部11は、検証ノードNtestと通信可能な場合に、データパケットを検証ノードNtestに送信する。   The node Nx includes a communication unit 11, a control unit 12, a storage unit 13, and an acquisition unit 14. The communication unit 11 is a processing unit that wirelessly communicates with another node Nx, the verification node Ntest, or the sink node SN. For example, the communication unit 11 transmits / receives a hello packet or a data packet to / from another node Nx existing in a communicable range. When the communication unit 11 can communicate with the verification node Ntest, the communication unit 11 transmits the data packet to the verification node Ntest.

制御部12は、ノードNxの各種処理を制御する処理部である。例えば、ノードNxがグローバル送信元となる場合に、制御部12は各種パケットを生成する。また、制御部12は、管理パケットに基づいて、ルーティングテーブルを生成する。また、制御部12は、ルーティングテーブルに基づいて、データパケットのローカル送信先となるノードを決定する。   The control unit 12 is a processing unit that controls various processes of the node Nx. For example, when the node Nx is a global transmission source, the control unit 12 generates various packets. Moreover, the control part 12 produces | generates a routing table based on a management packet. In addition, the control unit 12 determines a node that is a local transmission destination of the data packet based on the routing table.

記憶部13は、各種情報を記憶する。例えば、記憶部13は、暗号化処理に用いられる暗号鍵、ルーティングテーブルなどを記憶する。記憶部13は、ルーティングテーブル記憶部131と、鍵情報記憶部132を含む。   The storage unit 13 stores various information. For example, the storage unit 13 stores an encryption key used for encryption processing, a routing table, and the like. The storage unit 13 includes a routing table storage unit 131 and a key information storage unit 132.

取得部14は、データを取得する処理部である。例えば、取得部14は、ノードNxと通信可能なセンサから、消費電力量や温度等のデータを取得する。なお、取得されたデータは、データパケットのペイロードデータとして、他のノードNx、検証ノードNtestまたはシンクノードへ送信される。   The acquisition unit 14 is a processing unit that acquires data. For example, the acquisition unit 14 acquires data such as power consumption and temperature from a sensor that can communicate with the node Nx. The acquired data is transmitted as payload data of a data packet to another node Nx, verification node Ntest, or sink node.

また、制御部12は、パケット生成部121、算出部122、暗号化部123、ルート生成部124、復号化部125を含む。   The control unit 12 includes a packet generation unit 121, a calculation unit 122, an encryption unit 123, a route generation unit 124, and a decryption unit 125.

パケット生成部121は、データパケット、ハローパケットを生成する処理部である。例えば、ノードNxがグローバル送信元となる場合には、パケット生成部121は、ヘッダ情報格納部におけるグローバル送信元アドレスおよびローカル送信元アドレスに、自ノードのアドレスを設定する。さらに、グローバル送信先アドレスを決定するとともに、決定したグローバル送信先アドレスをヘッダ情報格納部に設定する。   The packet generation unit 121 is a processing unit that generates data packets and hello packets. For example, when the node Nx is the global transmission source, the packet generation unit 121 sets the address of the own node as the global transmission source address and the local transmission source address in the header information storage unit. Furthermore, the global destination address is determined, and the determined global destination address is set in the header information storage unit.

そして、パケット生成部121は、取得部14が取得したデータを、ペイロードデータ格納部に設定する。また、パケット生成部121は、記憶部13に記憶されたルーティングテーブルを参照し、データパケットのローカル送信先アドレスを決定する。パケット生成部121は、決定したアドレスをヘッダ情報格納部におけるローカル送信先アドレスに設定する。さらに、パケット生成部121は、データパケットを示すパケットタイプ「2」を、ヘッダ情報格納部に設定する。   Then, the packet generation unit 121 sets the data acquired by the acquisition unit 14 in the payload data storage unit. Further, the packet generation unit 121 refers to the routing table stored in the storage unit 13 and determines the local transmission destination address of the data packet. The packet generation unit 121 sets the determined address as the local transmission destination address in the header information storage unit. Further, the packet generation unit 121 sets the packet type “2” indicating the data packet in the header information storage unit.

パケット生成部121は、受信したデータパケットを転送する場合には、データパケットを更新する処理を行う。つまり、ローカル送信元アドレス、ローカル送信先アドレスが更新される。詳細については、後述する。   When transferring the received data packet, the packet generation unit 121 performs a process of updating the data packet. That is, the local transmission source address and the local transmission destination address are updated. Details will be described later.

一方、ハローパケットを生成する際には、パケット生成部121は、ヘッダ情報格納部におけるグローバル送信元アドレスおよびローカル送信元アドレスに、自ノードのアドレスを設定する。パケット生成部121は、ハローパケットのパケットタイプに「1」を設定するとともに、ハローパケットの付加情報に、ノード種別として「4」を設定する。ノード種別「4」は、ノードNxは、検証ノードNtestではないことを示す。また、パケット生成部121は、セッション鍵の情報など、所定の情報をペイロードデータ格納部に設定する。   On the other hand, when generating a hello packet, the packet generation unit 121 sets the address of its own node as the global transmission source address and local transmission source address in the header information storage unit. The packet generator 121 sets “1” as the packet type of the hello packet and sets “4” as the node type in the additional information of the hello packet. The node type “4” indicates that the node Nx is not the verification node Ntest. Further, the packet generation unit 121 sets predetermined information such as session key information in the payload data storage unit.

算出部122は、ノードNxがグローバル送信元となる場合に、データパケット内の所定のデータに対して所定の論理関係を有する値を算出する処理部である。本実施例においては、例えば、算出部122は、MAC鍵を用いて、ペイロードデータ、グローバル送信先アドレス、およびグローバル送信元アドレスに対するMAC値を算出する。MAC鍵は、ノードNxと、検証ノードNtestと、シンクノードSNとで事前に共有された鍵である。また、ノードNxごとに、異なるMAC鍵であってもよい。   The calculation unit 122 is a processing unit that calculates a value having a predetermined logical relationship with respect to predetermined data in a data packet when the node Nx is a global transmission source. In the present embodiment, for example, the calculation unit 122 calculates the MAC value for the payload data, the global transmission destination address, and the global transmission source address using the MAC key. The MAC key is a key shared in advance by the node Nx, the verification node Ntest, and the sink node SN. Further, a different MAC key may be used for each node Nx.

暗号化部123は、必要に応じて、ペイロードデータの暗号化処理を実行する。例えば、暗号化部123は、鍵情報記憶部132に記憶された暗号鍵を用いて、ペイロードデータを暗号化する。   The encryption unit 123 executes payload data encryption processing as necessary. For example, the encryption unit 123 encrypts the payload data using the encryption key stored in the key information storage unit 132.

ルート生成部124は、通信部11が受信した管理パケットに基づいて、ルーティングテーブルを生成する。そして、ルート生成部124は、生成したルーティングテーブルを、ルーティングテーブル記憶部131に格納する。なお、ルート生成部124は、管理パケットを受信するたびに、または定期的に、ルーティングテーブルを更新する。   The route generation unit 124 generates a routing table based on the management packet received by the communication unit 11. Then, the route generation unit 124 stores the generated routing table in the routing table storage unit 131. The route generation unit 124 updates the routing table every time a management packet is received or periodically.

次に、復号化部125は、必要に応じて、暗号化されたペイロードデータを復号する。例えば、復号化部125は、パケット内のヘッダ情報記憶部を参照し、グローバル送信先アドレスが自ノードのアドレスであるか判定する。グローバル送信先アドレスが自ノードのアドレスである場合は、復号化部125は、ペイロードデータを復号する。   Next, the decryption unit 125 decrypts the encrypted payload data as necessary. For example, the decoding unit 125 refers to the header information storage unit in the packet, and determines whether the global transmission destination address is the address of its own node. When the global transmission destination address is the address of its own node, the decryption unit 125 decrypts the payload data.

なお、ノードNxの制御部12は、さらに検証部を備えてもよい。そして、制御部は、ノードNxの処理能力に対して、処理負荷が所定以下である場合は、検証部を機能させるとしてもよい。検証部は、受信したパケットに格納された値を用いて、ペイロードデータの完全性およびグローバル送信元の正当性を検証する。具体的には、後述する検証ノードNtestの検証部223と同様の処理を行う。   Note that the control unit 12 of the node Nx may further include a verification unit. Then, the control unit may cause the verification unit to function when the processing load is less than or equal to the processing capacity of the node Nx. The verification unit verifies the integrity of the payload data and the validity of the global transmission source using the value stored in the received packet. Specifically, the same processing as that of the verification unit 223 of the verification node Ntest described later is performed.

図5は、従来のルーティングテーブルのデータ構成例と本実施例に係るルーティングテーブルのデータ構成例とを比較する為の図である。図5Aは、本実施例に係るルーティングテーブルのデータ構成例を示す図である。図5Bは、従来のルーティングテーブルのデータ構成例を示す図である。   FIG. 5 is a diagram for comparing a data configuration example of a conventional routing table with a data configuration example of a routing table according to the present embodiment. FIG. 5A is a diagram illustrating a data configuration example of the routing table according to the present embodiment. FIG. 5B is a diagram illustrating a data configuration example of a conventional routing table.

本実施例におけるルーティングテーブル記憶部131が記憶するルーティングテーブルは、グローバル送信先アドレスと、ローカル送信先アドレスと、通信強度と、ホップ数と、ノード種別と、評価値とを対応付けて記憶する。なお、図5Aは、ノードNbが有するルーティングテーブルを示している。   The routing table stored in the routing table storage unit 131 in this embodiment stores a global transmission destination address, a local transmission destination address, communication strength, the number of hops, a node type, and an evaluation value in association with each other. FIG. 5A shows the routing table of the node Nb.

一方、従来のルーティングテーブルは、グローバル送信先アドレスと、ローカル送信先アドレスと、通信強度と、ホップ数と、評価値とを対応付けて記憶する。つまり、従来のルーティングテーブルは、ノード種別に関する情報を有さない。   On the other hand, the conventional routing table stores a global destination address, a local destination address, communication strength, the number of hops, and an evaluation value in association with each other. That is, the conventional routing table has no information regarding the node type.

ここで、図5Aに示すルーティングテーブルは、両者の差異を説明する為に、通信強度、ホップ数、ノード種別を示したが、ルーティングテーブルとは異なるテーブルで、通信強度、ホップ数、ノード種別を管理してもよい。この場合は、通信強度、ホップ数、ノード種別に基づいて、算出された評価値が、グローバル送信先アドレスとローカル送信先アドレスに対応付けて記憶される。さらに、評価値が所定以上のグローバル送信先アドレスと、ローカル送信先アドレスとの組み合わせのみを、ルーティングテーブルに記憶するとしても良い。   Here, the routing table shown in FIG. 5A shows the communication strength, the number of hops, and the node type in order to explain the difference between the two, but the communication strength, the number of hops, and the node type are different from the routing table. May be managed. In this case, the calculated evaluation value is stored in association with the global destination address and the local destination address based on the communication strength, the number of hops, and the node type. Furthermore, only a combination of a global transmission destination address with a predetermined evaluation value or more and a local transmission destination address may be stored in the routing table.

グローバル送信先アドレスは、マルチホップ通信における終点に相当する装置のアドレスの情報である。ローカル送信先アドレスは、マルチホップ通信内の一つの通信の送信先となる装置のアドレスの情報である。なお、ローカル送信先アドレスには、ルーティングテーブルを記憶するノードNxが通信可能な他のノードのアドレスの情報が記憶される。   The global destination address is information on the address of a device corresponding to the end point in multihop communication. The local transmission destination address is information on an address of a device that is a transmission destination of one communication in the multi-hop communication. The local transmission destination address stores information on the address of another node with which the node Nx storing the routing table can communicate.

通信強度は、各ローカル送信先アドレスに対応するノードと、自ノードとの通信における安定性の強弱を示す値である。例えば、通信強度は、信号受信強度やローカル送信先アドレスに対応するノードから受信した管理パケットの数およびデータパケットの数に基づいて、算出される。また、通信強度は、通信成功確率、誤り率、受信電界強度などに基づいて、算出されても良い。本実施例においては、通信強度は、ローカル送信先アドレスに対応するノードから受信した管理パケットの数およびデータパケットの数の和である。   The communication strength is a value indicating the strength of stability in communication between the node corresponding to each local destination address and the own node. For example, the communication strength is calculated based on the number of management packets and the number of data packets received from the node corresponding to the signal reception strength and the local transmission destination address. Further, the communication strength may be calculated based on a communication success probability, an error rate, a received electric field strength, and the like. In this embodiment, the communication strength is the sum of the number of management packets and the number of data packets received from the node corresponding to the local transmission destination address.

ホップ数は、グローバル送信先アドレスに対応するノードにより送信された管理パケットを、自ノードで受信するまでに、何度転送されたかを示す値である。例えば、時刻パケット内の付加情報として設定された、ホップ数が、ルーティングテーブルにおける項目「ホップ数」に記憶される。   The number of hops is a value indicating how many times the management packet transmitted by the node corresponding to the global transmission destination address has been transferred by the own node. For example, the number of hops set as additional information in the time packet is stored in the item “number of hops” in the routing table.

ノード種別は、ローカル送信元アドレスに対応するノードの種類を示す情報である。ハローパケットに設定されたノード種別に対応する情報が、ルーティングテーブルにおける項目「ノード種別」に記憶される。   The node type is information indicating the type of node corresponding to the local transmission source address. Information corresponding to the node type set in the hello packet is stored in the item “node type” in the routing table.

評価値は、グローバル送信先アドレスとローカル送信先アドレスとの組み合わせごとに、データパケットのローカル送信先を、いずれのアドレスとすることが好ましいかを示す値である。つまり、評価値は、データパケットが、各ローカル送信先アドレスに送信される可能性の大小を示す。評価値は、通信強度、ホップ数、ノード種別に基づいて算出される。   The evaluation value is a value indicating which address is preferable as the local destination of the data packet for each combination of the global destination address and the local destination address. That is, the evaluation value indicates the possibility of the data packet being transmitted to each local transmission destination address. The evaluation value is calculated based on the communication strength, the number of hops, and the node type.

評価値は、通信強度が多くなるほど、ホップ数が小さくなるほど、大きな値として算出される。さらに、評価値は、ノード種別が、ローカル送信先アドレスに相当するノードが、検証ノードであることを示す場合に、大きな値として算出される。例えば、数1に基づいて、算出される。   The evaluation value is calculated as a larger value as the communication strength increases or the number of hops decreases. Furthermore, the evaluation value is calculated as a large value when the node type indicates that the node corresponding to the local transmission destination address is a verification node. For example, it is calculated based on Equation 1.

なお、数1においては、評価値がX、通信強度がA、ホップ数がB、定数がα、評価係数がβであらわされる。なお、定数は、評価値を適切な範囲とするために補正する為の値である。例えば、αは「6」である。また、評価係数は、ノード種別に応じた重みづけを行う為の値である。つまり、ノード種別に応じて、値が変更される。例えば、ノード種別が検証ノードであることを示す「3」である場合は、βは「2」である。一方、ノード種別が検証ノードでないことを示す「4」である場合は、βは「1」である。   In Equation 1, the evaluation value is X, the communication strength is A, the hop count is B, the constant is α, and the evaluation coefficient is β. The constant is a value for correcting the evaluation value so as to be in an appropriate range. For example, α is “6”. The evaluation coefficient is a value for weighting according to the node type. That is, the value is changed according to the node type. For example, when the node type is “3” indicating that the node is a verification node, β is “2”. On the other hand, when the node type is “4” indicating that the node is not a verification node, β is “1”.

ここで、図5Bに示すように、従来のルーティングテーブルは、ノード種別を管理することができない。したがって、評価値は、ノード種別を加味することなく算出される。よって、従来の手法に従って、通信強度が高いほど、さらにホップ数が小さいほど、評価値が高くなる。例えば、図5Bに示す評価値が算出される。よって、グローバル送信先アドレスを、シンクノードSNのアドレスとした場合に、ノードNbは、もっとも評価値が高いノードNaをローカル送信先として決定する。   Here, as shown in FIG. 5B, the conventional routing table cannot manage the node type. Therefore, the evaluation value is calculated without considering the node type. Therefore, according to the conventional method, the higher the communication strength and the smaller the number of hops, the higher the evaluation value. For example, the evaluation value shown in FIG. 5B is calculated. Therefore, when the global transmission destination address is the address of the sink node SN, the node Nb determines the node Na having the highest evaluation value as the local transmission destination.

一方、本実施例によれば、検証ノードNtestがアドホックネットワークに加わるとともに、評価値の算出において、さらにノード種別が加味される。したがって、Ntestに対応する評価値が、他のノードNxの評価値と比較して、重みづけされる。例えば、ノードNxにおけるルート生成部124は、ノード種別が「3」である場合には、評価係数に「2」を採用することで、評価値をノードNxである場合と比べて、2倍にすることができる。   On the other hand, according to the present embodiment, the verification node Ntest is added to the ad hoc network, and the node type is further added in the calculation of the evaluation value. Therefore, the evaluation value corresponding to Ntest is weighted as compared with the evaluation values of other nodes Nx. For example, when the node type is “3”, the route generation unit 124 in the node Nx adopts “2” as the evaluation coefficient, thereby doubling the evaluation value compared to the case of the node Nx. can do.

したがって、本実施例においては、グローバル送信先アドレスを、シンクノードSNのアドレスとした場合に、ノードNbは、もっとも評価値が高いノードNtestをローカル送信先として決定する。よって、検証ノードNtestに、検証する必要があるデータパケットを転送することができる。   Therefore, in this embodiment, when the global destination address is the address of the sink node SN, the node Nb determines the node Ntest having the highest evaluation value as the local destination. Therefore, the data packet that needs to be verified can be transferred to the verification node Ntest.

なお、ノードNb以外のノードNxにおいても、検証ノードNtestと通信可能である場合には、検証ノードをローカル送信先Ntestとする評価値に重みづけがなされる為、データパケットが、検証ノードNtestに転送される可能性が高くなる。ひいては、アドホックネットワークシステム全体において、検証ノードNtestを経由して、パケットが転送される可能性が高くなり、不正なパケットは、アドホックネットワークから効果的に破棄される。   In addition, when the node Nx other than the node Nb can communicate with the verification node Ntest, the evaluation value with the verification node as the local transmission destination Ntest is weighted, so that the data packet is sent to the verification node Ntest. The possibility of being transferred increases. As a result, in the entire ad hoc network system, there is a high possibility that packets will be transferred via the verification node Ntest, and illegal packets are effectively discarded from the ad hoc network.

次に、図6および図7を利用して、管理パケットの送受信によるルーティングテーブルの生成について、詳細に説明する。まずは、時刻パケットを、ノードNxが受信した場合の、ルーティングテーブルの生成について、説明する。図6は、シンクノードSNからノードNbに時刻パケットが転送される経路を説明する為の図である。なお、ノードNxのルート生成部124が、ルーティングテーブルを生成する。   Next, generation of a routing table by transmission / reception of a management packet will be described in detail with reference to FIGS. First, generation of a routing table when the node Nx receives a time packet will be described. FIG. 6 is a diagram for explaining a path through which a time packet is transferred from the sink node SN to the node Nb. Note that the route generation unit 124 of the node Nx generates a routing table.

時刻パケットが、シンクノードSNから送信されてノードNbにより受信されるまでに、複数の経路が考えられる。なお、図6では、複数の経路のうち、3つの経路を示す。図6では、一部経路を説明する為に、図1に示すノードNxのうち、ノードNa、ノードNb、ノードNd、ノードNf、検証ノードNtestおよびシンクノードSNを示す。   A plurality of routes are conceivable until the time packet is transmitted from the sink node SN and received by the node Nb. In FIG. 6, three routes among a plurality of routes are shown. In FIG. 6, among the nodes Nx illustrated in FIG. 1, the node Na, the node Nb, the node Nd, the node Nf, the verification node Ntest, and the sink node SN are illustrated in order to explain a partial route.

なお、図6に示さない経路でも、マルチホップ通信により、時刻パケットはアドホックネットワーク内を流れている。さらに、ノードNb以外のノードについても、時刻パケットの受信に応じて、ルーティングテーブルを生成する。   Note that the time packet flows in the ad hoc network even in the route not shown in FIG. 6 by multi-hop communication. Further, for the nodes other than the node Nb, a routing table is generated in response to the reception of the time packet.

シンクノードSNと通信可能なノードNxは、ノードNaとノードNdであるとする。また、ノードNaは、ノードNtestとノードNbと通信可能であるとする。ノードNbは、ノードNa、ノードNc、ノードNf、検証ノードNtestと通信可能であるとする。ノードNdは、シンクノードSN、ノードNe、ノードNfと通信可能であるとする。ノードNfは、ノードNb、ノードNd、ノードNg、ノードNh、検証ノードNtestと通信可能であるとする。検証ノードNtestは、ノードNa、ノードNb、ノードNfと通信可能であるとする。   It is assumed that the nodes Nx that can communicate with the sink node SN are the node Na and the node Nd. Further, it is assumed that the node Na can communicate with the node Ntest and the node Nb. It is assumed that the node Nb can communicate with the node Na, the node Nc, the node Nf, and the verification node Ntest. It is assumed that the node Nd can communicate with the sink node SN, the node Ne, and the node Nf. It is assumed that the node Nf can communicate with the node Nb, the node Nd, the node Ng, the node Nh, and the verification node Ntest. It is assumed that the verification node Ntest can communicate with the node Na, the node Nb, and the node Nf.

まず、シンクノードSNは、時刻パケットの、宛先アドレスに、ブロードキャスト用の特別なアドレスを設定する。さらに、シンクノードSNは、ローカル送信元アドレスおよびグローバル送信元アドレスに、シンクノードSNのアドレスを設定する。さらに、シンクノードSNは、パケットタイプに、時刻パケットであることを示す「0」を設定する。そして、シンクノードSNは、付加情報として、ホップ数「1」を設定する。また、シンクノードSNは、ペイロードデータ格納部に、時刻に関する情報を格納する。そして、シンクノードSNは、時刻パケットをブロードキャストする。   First, the sink node SN sets a special broadcast address as the destination address of the time packet. Furthermore, the sink node SN sets the address of the sink node SN as the local transmission source address and the global transmission source address. Furthermore, the sink node SN sets “0” indicating that it is a time packet to the packet type. Then, the sink node SN sets the hop number “1” as additional information. Further, the sink node SN stores information on time in the payload data storage unit. Then, the sink node SN broadcasts a time packet.

シンクノードSNは、例えば、電源がオンになった場合に、時刻パケットをブロードキャストする(1001)。なお、シンクノードSNと通信可能なノードは、NaとNdであるとすると、1001でブロードキャストされた時刻パケットは、NaおよびNbにより受信される。ここで、ノードNaとノードNbは、宛先アドレスに設定されたアドレスが特別なアドレスであることから、受信したパケットは、自ノード宛のパケットであると認識する。   For example, when the power is turned on, the sink node SN broadcasts a time packet (1001). If the nodes that can communicate with the sink node SN are Na and Nd, the time packet broadcast in 1001 is received by Na and Nb. Here, the node Na and the node Nb recognize that the received packet is a packet addressed to the own node because the address set as the destination address is a special address.

ここで、複数の経路の内、シンクノードSNから、ノードNaを経由して、ノードNbに時刻パケットが到達する経路1がある。経路1においては、シンクノードが送信した時刻パケットは、シンクノードと通信可能なノードNaにより受信される(1001)。そして、ノードNaは、パケットタイプが「0」であることから、受信したパケットをさらに、転送する。   Here, among the plurality of routes, there is a route 1 through which the time packet reaches the node Nb from the sink node SN via the node Na. In the path 1, the time packet transmitted by the sink node is received by the node Na that can communicate with the sink node (1001). Since the packet type is “0”, the node Na further transfers the received packet.

なお、転送する前に、ノードNaは、時刻パケットのローカル送信元アドレスと、付加情報であるホップ数とを更新する。具体的には、ローカル送信元アドレスに、ノードNaのアドレスを設定するとともに、ホップ数に1を加える。よって、付加情報は、ホップ数「2」に更新される。また、ここでは、ノードNaにおけるルーティングテーブルの生成については、詳細は説明しないが、ノードNaでも、時刻パケットを受信した場合に、ルーティングテーブルの生成処理が行われる。   Note that before the transfer, the node Na updates the local source address of the time packet and the number of hops as additional information. Specifically, the address of the node Na is set as the local transmission source address, and 1 is added to the hop count. Therefore, the additional information is updated to the hop count “2”. Here, although the details of the generation of the routing table in the node Na will not be described, the generation process of the routing table is also performed in the node Na when the time packet is received.

そして、更新された時刻パケットを、ノードNaはブロードキャストする(1002)。そして、ブロードキャストされた時刻パケットは、ノードNaと通信可能なノードNbにより受信される。なお、図6の例では、ブロードキャストされた時刻パケットは、ノードNaと通信可能なノードNtestにも受信される。   Then, the node Na broadcasts the updated time packet (1002). The broadcast time packet is received by the node Nb that can communicate with the node Na. In the example of FIG. 6, the broadcast time packet is also received by the node Ntest that can communicate with the node Na.

経路1を経て、ノードNbに到達した時刻パケットには、グローバル送信元アドレスに「シンクノードSNのアドレス」が、ローカル送信元アドレスに「ノードNaのアドレス」が、付加情報にはホップ数「2」という情報が設定されている。   For the time packet that has reached the node Nb via the path 1, the “sink node SN address” is the global source address, the “node Na address” is the local source address, and the hop count “2” is the additional information. "Is set.

次に、ノードNbは、ルーティングテーブルに、新たにレコードを追加する(1003)。具体的には、グローバル送信先アドレスに、時刻パケットのグローバル送信元アドレス「シンクノードSNのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるローカル送信先アドレスに、時刻パケットのローカル送信元アドレス「ノードNaのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるホップ数に、時刻パケットの付加情報「2」を設定する。なお、ノードNbは、受信した時刻パケットを、他のノードと同様に、さらに転送する。   Next, the node Nb adds a new record to the routing table (1003). Specifically, the global transmission source address “address of sink node SN” of the time packet is set as the global transmission destination address. The node Nb sets the local transmission source address “node Na address” of the time packet as the local transmission destination address in the routing table. The node Nb sets the additional information “2” of the time packet as the number of hops in the routing table. Note that the node Nb further transfers the received time packet in the same manner as other nodes.

一方、シンクノードSNから、ノードNa、さらにNtestを経由して、ノードNbに時刻パケットが到達する経路2がある。経路2は、図6における、1001および1002、1004で各々ブロードキャストされた時刻パケットが、Nbにより受信されることとなる。   On the other hand, there is a path 2 through which the time packet reaches the node Nb from the sink node SN via the node Na and further Ntest. In the path 2, the time packets broadcasted by 1001, 1002, and 1004 in FIG. 6 are received by the Nb.

経路2を経て、ノードNbに到達した時刻パケットには、グローバル送信元アドレスに「シンクノードSNのアドレス」が、ローカル送信元アドレスに「ノードNtestのアドレス」が、付加情報にはホップ数「3」という情報が設定されている。   In the time packet that has reached the node Nb via the path 2, the global transmission source address is “sink node SN address”, the local transmission source address is “node Ntest address”, and the additional information is the hop count “3”. "Is set.

経路2で転送された時刻パケットを受信したノードNbは、ルーティングテーブルに、新たにレコードを追加する(1005)。具体的には、おけるグローバル送信先アドレスに、時刻パケットのグローバル送信元アドレス「シンクノードSNのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるローカル送信先アドレスに、時刻パケットのローカル送信元アドレス「ノードNtestのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるホップ数に、時刻パケットの付加情報「3」を設定する。   The node Nb that has received the time packet transferred through the route 2 adds a new record to the routing table (1005). Specifically, the global transmission source address “address of sink node SN” of the time packet is set as the global transmission destination address. The node Nb sets the local transmission source address “address of the node Ntest” of the time packet as the local transmission destination address in the routing table. The node Nb sets the additional information “3” of the time packet as the number of hops in the routing table.

また、シンクノードSNから、ノードNd、Nfを経由して、ノードNbに到達する経路3がある。経路3は、図6における、1001および1006、1007で各々ブロードキャストされた時刻パケットは、Nbにより受信されることとなる。   Further, there is a path 3 from the sink node SN to the node Nb via the nodes Nd and Nf. In the path 3, the time packets broadcast in 1001, 1006, and 1007 in FIG. 6 are received by Nb.

経路3を経て、ノードNbに到達した時刻パケットには、グローバル送信元アドレスに「シンクノードSNのアドレス」が、ローカル送信元アドレスに「ノードNfのアドレス」が、付加情報にはホップ数「3」という情報が設定されている。   The time packet that arrived at the node Nb via the path 3 has the “sink node SN address” as the global source address, the “node Nf address” as the local source address, and the hop number “3” as the additional information. "Is set.

経路3で転送された時刻パケットを受信したノードNbは、ルーティングテーブルに、新たにレコードを追加する(1008)。具体的には、おけるグローバル送信先アドレスに、時刻パケットのグローバル送信元アドレス「シンクノードSNのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるローカル送信先アドレスに、時刻パケットのローカル送信元アドレス「ノードNfのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるホップ数に、時刻パケットの付加情報「3」を設定する。   The node Nb that has received the time packet transferred through the path 3 adds a new record to the routing table (1008). Specifically, the global transmission source address “address of sink node SN” of the time packet is set as the global transmission destination address. The node Nb sets the local transmission source address “address of the node Nf” of the time packet as the local transmission destination address in the routing table. The node Nb sets the additional information “3” of the time packet as the number of hops in the routing table.

なお、図6には示していないが、シンクノードSNから、ノードNa、ノードNtest、ノードNfを経由してノードNbに到達する時刻パケットもある。この場合は、ルーティングテーブルのグローバル送信先アドレスに「SNのアドレス」を、ローカル送信先アドレスに「Nfのアドレス」を、ホップ数に「4」が設定されることとなる。しかし、グローバル送信アドレスとローカル送信先アドレスの組み合わせが同一のレコードが、すでにルーティングテーブルに存在する場合は、ホップ数がより小さなレコードのみを採用し、他方を破棄するとしてもよい。   Although not shown in FIG. 6, there is a time packet that reaches the node Nb from the sink node SN via the node Na, the node Ntest, and the node Nf. In this case, “SN address” is set as the global destination address of the routing table, “Nf address” is set as the local destination address, and “4” is set as the number of hops. However, when a record having the same combination of the global transmission address and the local transmission destination address already exists in the routing table, only the record having a smaller hop count may be adopted and the other may be discarded.

以下の説明においては、グローバル送信アドレスとローカル送信先アドレスの組み合わせが同一のレコードがルーティングテーブルに存在する場合は、ホップ数がより小さなレコードのみを採用するとして説明を行う。   In the following description, when a record having the same combination of the global transmission address and the local transmission address exists in the routing table, only the record having a smaller hop number is used.

また、グローバル送信先アドレス、ローカル送信先アドレス、ホップ数がルーティングテーブルに追加された時点で、通信強度およびノード種別に初期値を設定するとしてもよい。例えば、通信強度に「10」、ノード種別に「4」が設定される。   In addition, when the global transmission destination address, the local transmission destination address, and the number of hops are added to the routing table, initial values may be set for the communication strength and the node type. For example, “10” is set as the communication strength and “4” is set as the node type.

次に、図7を用いて、ハローパケットを、ノードNxが受信した場合の、ルーティングテーブルの更新について、説明する。図7は、ノード間でのハローパケットの授受を説明する為の図である。なお、ノードNxのルート生成部124が、ルーティングテーブルを更新する。   Next, update of the routing table when the node Nx receives a hello packet will be described with reference to FIG. FIG. 7 is a diagram for explaining exchange of hello packets between nodes. Note that the route generation unit 124 of the node Nx updates the routing table.

各ノードNxにおけるパケット生成部121は、ハローパケットを生成する。例えば、ノードNaは、宛先アドレスにブロードキャスト用のアドレスを設定する。さらに、ノードNaは、グローバル送信元アドレスおよびローカル送信元アドレスに、ノードNaのアドレスを設定する。そして、パケットタイプには、ハローパケットであることを示す「1」が設定される。また、付加情報であるノード種別には、検証ノードではないことを示す「4」が設定される。   The packet generation unit 121 in each node Nx generates a hello packet. For example, the node Na sets a broadcast address as the destination address. Further, the node Na sets the address of the node Na as the global transmission source address and the local transmission source address. In the packet type, “1” indicating a hello packet is set. In addition, “4” indicating that the node is not a verification node is set in the node type as additional information.

ノードNaは、パケットをブロードキャストする(2001)。ノードNaと通信可能なノードNbは、パケットを受信する。なお、図7には示さないが、ノードNaと通信可能な他のノードも、パケットを受信する。ノードNbは、ルーティングテーブルを更新する(2002)。なお、ノードNbは、パケットタイプが「1」であるため、受信したハローパケットの転送を収束させる。   The node Na broadcasts the packet (2001). The node Nb that can communicate with the node Na receives the packet. Although not shown in FIG. 7, other nodes that can communicate with the node Na also receive the packet. The node Nb updates the routing table (2002). The node Nb converges the transfer of the received hello packet because the packet type is “1”.

具体的には、ノードNbは、受信したパケット内のローカル送信元アドレスを取得する。そして、記憶部13に記憶されたルーティングテーブルを参照し、ローカル送信元「ノードNaのアドレス」を、ローカル送信先アドレスに有するレコードを特定する。   Specifically, the node Nb acquires the local transmission source address in the received packet. Then, the routing table stored in the storage unit 13 is referred to, and a record having the local transmission source “node Na address” in the local transmission destination address is specified.

そして、ノードNbは、特定したレコードの通信強度を更新する。例えば、ノードNbは、通信強度として、ノードNaからパケットを受信した数を利用する場合は、ハローパケットを受信するたびに、通信強度に所定数を加算する。例えば、ハローパケットまたはデータパケットを受信するたびに、5が加算される。なお、ノードNbは、単位時間当たりの受信パケット数などを算出し、通信強度に格納することもできる。   Then, the node Nb updates the communication strength of the specified record. For example, when using the number of packets received from the node Na as the communication strength, the node Nb adds a predetermined number to the communication strength every time a hello packet is received. For example, 5 is added every time a hello packet or a data packet is received. The node Nb can also calculate the number of received packets per unit time and store it in the communication strength.

また、ノードNbは、ルーティングテーブルにおけるノード種別と、ハローパケット内に付加情報として設定されているノード種別とが、一致しなければ、ルーティングテーブルにおけるノード種別を更新する。ただし、ノードNaから受信したハローパケットには、ノード種別「4」が設定されている為、ルーティングテーブルにおけるノード種別は更新されない。   Further, the node Nb updates the node type in the routing table if the node type in the routing table and the node type set as additional information in the hello packet do not match. However, since the node type “4” is set in the hello packet received from the node Na, the node type in the routing table is not updated.

次に、ノードNbは、各種パケットを受信するたびに、または定期的に、通信強度、ホップ数、ノード種別に基づいて、評価値を算出する。そして、新たに算出した評価値を、ルーティングテーブルに再登録する。   Next, the node Nb calculates an evaluation value based on the communication strength, the number of hops, and the node type each time various packets are received or periodically. Then, the newly calculated evaluation value is re-registered in the routing table.

また、図7に示すとおり、Ntestからハローパケットがブロードキャストされた場合(2003)、ノードNfからハローパケットがブロードキャストされた場合(2005)も同様にルーティングテーブルにおけるノード種別を更新する(2004、2006)。ただし、検証ノードNtestから受信したハローパケットには、ノード種別「3」が設定されている為、ルーティングテーブルにおけるノード種別は「3」に更新される。したがって、ルーティングテーブルを更新する処理(2004)において、ノード種別も更新され、更新されたノード種別に応じて評価値も更新される。   Also, as shown in FIG. 7, the node type in the routing table is updated in the same manner when a hello packet is broadcast from Ntest (2003) and when a hello packet is broadcast from node Nf (2005) (2004, 2006). . However, since the node type “3” is set in the hello packet received from the verification node Ntest, the node type in the routing table is updated to “3”. Therefore, in the process of updating the routing table (2004), the node type is also updated, and the evaluation value is also updated according to the updated node type.

なお、各ノードNaまたは検証ノードNtestからハローパケットを受信する順序については、図7は一例である。さらに、ノードNbも、ハローパケットをブロードキャストする。   Note that FIG. 7 is an example of the order in which hello packets are received from each node Na or verification node Ntest. Further, the node Nb also broadcasts a hello packet.

図8は、鍵情報記憶部132が記憶するデータ例である。鍵情報記憶部132は、図8Aに示すMAC鍵の情報を記憶する。また、鍵情報記憶部132は、図8Bに示す暗号鍵の情報を記憶する。なお、本実施の形態では、全ノードで共通のMAC鍵と暗号鍵を利用する。   FIG. 8 shows an example of data stored in the key information storage unit 132. The key information storage unit 132 stores information on the MAC key shown in FIG. 8A. Further, the key information storage unit 132 stores information on the encryption key shown in FIG. 8B. In this embodiment, a common MAC key and encryption key are used in all nodes.

また、各ノード毎にMAC鍵もしくは暗号鍵、または両方の鍵が異なっても構わない。例えば、グローバル送信元アドレスに対応するノードNxは、ノードごとに異なるMAC鍵を利用して、MACを算出してもよい。そして、算出したMAC値を、データパケットの値格納部に設定する。   Further, the MAC key or the encryption key, or both keys may be different for each node. For example, the node Nx corresponding to the global transmission source address may calculate the MAC by using a different MAC key for each node. Then, the calculated MAC value is set in the value storage unit of the data packet.

一方、検証ノードNtestが、データパケットを受信した場合には、グローバル送信元アドレスに対応するMAC鍵を利用して、検証を行う。   On the other hand, when the verification node Ntest receives the data packet, the verification node Ntest performs verification using the MAC key corresponding to the global transmission source address.

さらに、グローバル送信元アドレスに対応するノードNxは、ノードNxごとに異なる暗号鍵を利用して、ペイロードデータ格納部に格納する情報を暗号化してもよい。この場合は、グローバル送信先となる装置は、各ノードNxの暗号鍵を事前に把握する必要がある。例えば、グローバル送信先がシンクノードSNである場合には、データパケットを受信した後、シンクノードSNは、グローバル送信元アドレスのノードNxに応じた暗号鍵を用いて、データを復号する。   Further, the node Nx corresponding to the global transmission source address may encrypt the information stored in the payload data storage unit by using a different encryption key for each node Nx. In this case, the device serving as the global transmission destination needs to grasp the encryption key of each node Nx in advance. For example, when the global transmission destination is the sink node SN, after receiving the data packet, the sink node SN decrypts the data using the encryption key corresponding to the node Nx of the global transmission source address.

次に、図9を利用して、検証ノードNtestの処理部を説明する。図9は、ノードNtestの機能ブロック図である。   Next, the processing unit of the verification node Ntest will be described with reference to FIG. FIG. 9 is a functional block diagram of the node Ntest.

検証ノードNtestは、通信部21、制御部22、記憶部23を含む。なお、検証ノードNtestは、ノードNxと同様に、センサにより検出された検出値を取得する取得部を有してもよい。   The verification node Ntest includes a communication unit 21, a control unit 22, and a storage unit 23. The verification node Ntest may include an acquisition unit that acquires the detection value detected by the sensor, like the node Nx.

通信部21は、ノードNxと無線通信する処理部である。例えば、通信部21は、ノードNxとハローパケットの授受を行う。また、通信部21は、ノードNxからデータパケットを受信するとともに、他のノードNxへデータパケットを転送する。   The communication unit 21 is a processing unit that performs wireless communication with the node Nx. For example, the communication unit 21 exchanges hello packets with the node Nx. The communication unit 21 receives the data packet from the node Nx and transfers the data packet to another node Nx.

制御部22は、検証ノードNtestの各種処理を制御する処理部である。例えば、制御部22は、データパケットを検証する。また、制御部22は、ノード種別「3」が設定されたハローパケットを生成する。   The control unit 22 is a processing unit that controls various processes of the verification node Ntest. For example, the control unit 22 verifies the data packet. Further, the control unit 22 generates a hello packet in which the node type “3” is set.

記憶部23は、各種情報を記憶する。例えば、記憶部23は、暗号化処理に用いられる暗号鍵、ルーティングテーブルなどを記憶する。記憶部23は、ルーティングテーブル記憶部231と、鍵情報記憶部232を含む。なお、ルーティングテーブル記憶部231と、鍵情報記憶部232のデータ構成は、ノードNxと同様である。   The storage unit 23 stores various information. For example, the storage unit 23 stores an encryption key used for encryption processing, a routing table, and the like. The storage unit 23 includes a routing table storage unit 231 and a key information storage unit 232. Note that the data configurations of the routing table storage unit 231 and the key information storage unit 232 are the same as those of the node Nx.

さらに、制御部22は、パケット生成部221、検証部222、ルート生成部223を含む。検証ノードNtestにおける制御部22は、ノードNxと同様に、さらに暗号化部や復号化部を有してもよい。   Further, the control unit 22 includes a packet generation unit 221, a verification unit 222, and a route generation unit 223. Similarly to the node Nx, the control unit 22 in the verification node Ntest may further include an encryption unit and a decryption unit.

パケット生成部221は、ハローパケットを生成するとともに、データパケットを更新する処理部である。例えば、パケット生成部221は、パケットタイプに「1」が、ハローパケットの付加情報に、ノード種別として「3」が設定されたハローパケットを生成する。   The packet generation unit 221 is a processing unit that generates a hello packet and updates a data packet. For example, the packet generation unit 221 generates a hello packet in which “1” is set as the packet type and “3” is set as the node type in the additional information of the hello packet.

検証部222は、パケットを検証する処理部である。なお、検証部222は、受信したパケットに対して所定の論理関係を有する値を算出する。そして、検証部222は、算出した値と、受信したパケットの値格納部7に格納された値とを比較することで、受信したパケットの完全性および、パケットを生成したノードの正当性を検証する。本実施例においては、例えば、検証部222は、値として、MAC値を利用する。   The verification unit 222 is a processing unit that verifies the packet. The verification unit 222 calculates a value having a predetermined logical relationship with the received packet. Then, the verification unit 222 verifies the integrity of the received packet and the validity of the node that generated the packet by comparing the calculated value with the value stored in the value storage unit 7 of the received packet. To do. In the present embodiment, for example, the verification unit 222 uses a MAC value as a value.

ルート生成部223は、管理パケットに基づいて、ルーティングテーブルを生成する。そして、ルート生成部223は、生成したルーティングテーブルを、ルーティングテーブル記憶部231に格納する。なお、ルート生成部223は、管理パケットを受信するたびに、または定期的にルーティングテーブルを更新する。   The route generation unit 223 generates a routing table based on the management packet. Then, the route generation unit 223 stores the generated routing table in the routing table storage unit 231. The route generation unit 223 updates the routing table every time a management packet is received or periodically.

ここで、本実施の形態に係る、ノードNxおよび検証ノードNtestによるルーティングテーブル生成処理について、説明する。図10は、ルーティングテーブル生成処理のフローチャートである。   Here, the routing table generation processing by the node Nx and the verification node Ntest according to the present embodiment will be described. FIG. 10 is a flowchart of the routing table generation process.

なお、以下、ノードNxが主体となった場合のルーティングテーブル生成処理を説明するが、検証ノードNtestにおいても同様の処理が実行される。ただし、主体が検証ノードNtestである場合は、以下の説明において、通信部11は通信部21に、ルート生成部124はルート生成部223に、ルーティング記憶部131はルーティング記憶部231に読みかえられる。   In the following, the routing table generation process when the node Nx is the main body will be described, but the same process is executed also in the verification node Ntest. However, when the subject is the verification node Ntest, in the following description, the communication unit 11 is replaced with the communication unit 21, the route generation unit 124 is replaced with the route generation unit 223, and the routing storage unit 131 is replaced with the routing storage unit 231.

通信部11は、パケットを受信する(Op.1)。そして、ルート生成部124は受信したパケット内に設定されたパケットタイプが、「0」であるか判定する(Op.2)。パケットタイプが「0」である場合は(Op.YES)、受信したパケットが時刻パケットである。   The communication unit 11 receives the packet (Op. 1). Then, the route generation unit 124 determines whether the packet type set in the received packet is “0” (Op. 2). When the packet type is “0” (Op. YES), the received packet is a time packet.

制御部12は、ノードNxの計時部に設定された時刻が、時刻パケットと同期済みであるか判定する。なお、計時部は、図4に示した各処理部に加えて、ノードNxが有する処理部である。同期済みでない場合(Op.3 NO)は、制御部12は、時刻を同期する(Op.4)。   The control unit 12 determines whether the time set in the timing unit of the node Nx has been synchronized with the time packet. Note that the timing unit is a processing unit included in the node Nx in addition to the processing units illustrated in FIG. When not synchronized (Op. 3 NO), the control unit 12 synchronizes the time (Op. 4).

一方、同期済みの場合は(Op.3 YES)、ルート生成部124は、受信したパケット内のヘッダ情報格納部を参照する。そして、ルート生成部124は、ヘッダ情報格納部に格納されたグローバル送信元アドレスとローカル送信元アドレスの組み合わせを、ルーティングテーブルにおけるグローバル送信先アドレスとローカル送信先アドレスの組み合わせとするレコードが存在するか否かを判定する(Op.4)。つまり、ルート生成部124は、新たにレコードを追加する必要があるか否かを、Op.4にて判定する。   On the other hand, when the synchronization has been completed (Op. 3 YES), the route generation unit 124 refers to the header information storage unit in the received packet. Then, the route generation unit 124 determines whether there is a record in which the combination of the global transmission source address and the local transmission source address stored in the header information storage unit is a combination of the global transmission destination address and the local transmission destination address in the routing table. It is determined whether or not (Op.4). That is, the route generation unit 124 determines whether it is necessary to add a new record. Judge at 4.

レコードを追加する必要がある場合(Op.4 YES)は、ルート生成部124は、ルーティングテーブルに新たにレコードを追加する(Op.6)。具体的には、ルート生成部124は、受信したパケットからグローバル送信元アドレスを取得し、ルーティングテーブルのグローバル送信先アドレスに設定する。また、ルート生成部124は、受信したパケットからローカル送信元アドレスを取得し、ルーティングテーブルのローカル送信先アドレスに設定する。ルート生成部124は、受信したパケットから付加情報を取得し、ルーティングテーブルのホップ数に設定する。   When it is necessary to add a record (Op. 4 YES), the route generation unit 124 adds a new record to the routing table (Op. 6). Specifically, the route generation unit 124 acquires a global transmission source address from the received packet and sets it as the global transmission destination address in the routing table. In addition, the route generation unit 124 acquires a local transmission source address from the received packet, and sets the local transmission source address in the routing table. The route generation unit 124 acquires additional information from the received packet and sets it to the number of hops in the routing table.

なお、Op.6の時点では、ルート生成部124は、ルーティングテーブルにおけるノード種別に、例えば、初期値として、「4」を設定する。また、ルート生成部124は、通信強度に、例えば、初期値として「10」が設定される。   Op. At the time point 6, the route generation unit 124 sets “4” as an initial value, for example, to the node type in the routing table. Further, the route generation unit 124 sets “10” as the initial value for the communication strength, for example.

そして、ルート生成部124は、通信強度、ホップ数、ノード種別に基づいて、評価値を算出する(Op.7)。算出された評価値は、Op.6にて追加されたレコードに格納される。   The route generation unit 124 calculates an evaluation value based on the communication strength, the number of hops, and the node type (Op. 7). The calculated evaluation value is Op. 6 is stored in the record added.

一方、レコードを追加する必要がない場合(Op.4 NO)は、ルート生成部124は、受信したパケットに設定されたローカル送信元アドレスを、ルーティングテーブルにおけるローカル送信先アドレスとするレコードを特定する。そして、ルート生成部124は、特定したレコードにおける通信強度を更新する。例えば、ルート生成部124は、通信強度に、5を加算する。   On the other hand, when there is no need to add a record (Op.4 NO), the route generation unit 124 identifies a record having the local transmission source address set in the received packet as the local transmission destination address in the routing table. . Then, the route generation unit 124 updates the communication strength in the identified record. For example, the route generation unit 124 adds 5 to the communication strength.

そして、ルート生成部124は、更新した通信強度に基づいて評価値を更新する(Op.8)。なお、受信したパケットに設定されたローカル送信元アドレスを、ルーティングテーブルにおけるローカル送信先アドレスとするレコードが複数ある場合は、各々のレコードの評価値を更新する。   Then, the route generation unit 124 updates the evaluation value based on the updated communication strength (Op.8). When there are a plurality of records in which the local transmission source address set in the received packet is a local transmission destination address in the routing table, the evaluation value of each record is updated.

例えば、図10のフローにおいては、ルート生成部124は、新たにパケットを受信するたびに、通信強度に所定数を加算する。しかし、Op.8においては、通信強度のみを更新することとしてもよい。そして、ルート生成部124は、定期的に、評価値を算出するとしてもよい。   For example, in the flow of FIG. 10, the route generation unit 124 adds a predetermined number to the communication strength every time a new packet is received. However, Op. In 8, it is good also as updating only communication strength. Then, the route generation unit 124 may calculate the evaluation value periodically.

次に、通信部11は、時刻パケットを転送する(Op.9)。具体的には、パケット制御部121により時刻パケットのローカル送信元アドレスおよびホップ数が更新された後、通信部11は、時刻パケットをブロードキャストする。そして、一連の処理を終了するが、新たにパケットを受信した場合は、ノードNxは、一連の処理を繰り返す。   Next, the communication unit 11 transfers the time packet (Op. 9). Specifically, after the local source address and the hop number of the time packet are updated by the packet control unit 121, the communication unit 11 broadcasts the time packet. Then, the series of processing ends, but when a new packet is received, the node Nx repeats the series of processing.

一方、パケットタイプが「0」でない場合は(Op.2)、ルート生成部124は、パケット内に設定されたローカル送信元アドレスを、ルーティングテーブルにおけるローカル送信先アドレスとするレコードを特定する。そして、ルート生成部124は、特定したレコードの通信強度を更新する(Op.10)。   On the other hand, when the packet type is not “0” (Op. 2), the route generation unit 124 identifies a record having the local transmission source address set in the packet as the local transmission destination address in the routing table. Then, the route generation unit 124 updates the communication strength of the identified record (Op. 10).

次に、ルート生成部124は、受信したパケットに設定されたパケットタイプが「1」であるか判定する(Op.11)。パケットタイプが「1」であれば(Op.11 YES)、受信したパケットはハローパケットであることが分かる。パケットタイプが「1」である場合は、付加情報から取得した情報を、ルーティングテーブルの「ノード種別」に更新する(Op.12)。   Next, the route generation unit 124 determines whether the packet type set in the received packet is “1” (Op. 11). If the packet type is “1” (Op. 11 YES), it can be seen that the received packet is a hello packet. When the packet type is “1”, the information acquired from the additional information is updated to “node type” in the routing table (Op.12).

ここで、ハローパケットにおける付加情報には、ノード種別に関する情報が設定されている。したがって、ハローパケットを送信したノードが検証ノードNtestである場合には、ルーティングテーブルにおけるノード種別は「3」に更新される。   Here, information regarding the node type is set in the additional information in the hello packet. Therefore, when the node that transmitted the hello packet is the verification node Ntest, the node type in the routing table is updated to “3”.

一方、パケットタイプが「1」でない場合は(Op.11 NO)、受信したパケットはデータパケットであるため、後述する転送処理を実行する(Op.13)。   On the other hand, when the packet type is not “1” (Op. 11 NO), since the received packet is a data packet, a transfer process described later is executed (Op. 13).

次に、ルート生成部124は、ルーティングテーブルにおける、通信強度、ホップ数、ノード種別に基づいて、評価値を算出する(Op.14)。なお、評価値は、一定時間ごとに算出する事としてもよい。そして、制御部12は、ハローパケットもしくは、データパケットを破棄する(Op.15)。   Next, the route generation unit 124 calculates an evaluation value based on the communication strength, the number of hops, and the node type in the routing table (Op. 14). The evaluation value may be calculated at regular time intervals. Then, the control unit 12 discards the hello packet or the data packet (Op.15).

以上の処理によって、各ノードNxは、ルーティングテーブルを生成および更新することができる。また、ノード種別を含むパケットを受信することで、各ノードNxは、各ノードNxと通信可能なノードに、検証ノードtestが含まれるか否かを、把握することができる。そして、各ノードNxは、検証ノードNtestにデータパケットを優先的に転送するように、ルーティングテーブルにおける検証ノードNtestに対する評価値を重みづけすることができる。   Through the above processing, each node Nx can generate and update the routing table. Also, by receiving a packet including the node type, each node Nx can grasp whether or not the verification node test is included in a node that can communicate with each node Nx. Each node Nx can weight the evaluation value for the verification node Ntest in the routing table so that the data packet is preferentially transferred to the verification node Ntest.

次に、本実施の形態に係る、ノードNxにおける転送処理について、説明する。図11は、ノードNxにおける転送処理のフローチャートである。   Next, transfer processing in the node Nx according to the present embodiment will be described. FIG. 11 is a flowchart of the transfer process in the node Nx.

制御部12は、データパケット内のグローバル送信先アドレスが、自アドレスと一致するか否かを判定する(Op.20)。一致する場合は、受信したデータパケットのグローバル送信先として指定されたノードは、自ノードであることが分かる。   The control unit 12 determines whether or not the global transmission destination address in the data packet matches the own address (Op.20). If they match, it can be seen that the node designated as the global destination of the received data packet is its own node.

グローバル送信先が自ノードである場合は(Op.20 YES)、復号化部125は、データパケット内のペイロードデータを復号する(Op.24)。なお、鍵情報記憶部132に格納された暗号鍵が、復号化に利用される。   When the global transmission destination is the local node (Op. 20 YES), the decoding unit 125 decodes the payload data in the data packet (Op. 24). The encryption key stored in the key information storage unit 132 is used for decryption.

一方、グローバル送信先が自ノードでない場合は(Op.20 NO)、ルーティングテーブルを参照し、転送先アドレスを決定する(Op,21)。具体的には、パケット生成部121は、ルーティングテーブルにおいて、データパケットに設定されたグローバル送信先アドレスと同一のグローバル送信先アドレスを含むレコードの内、もっとも評価値が高いレコードを特定する。そして、パケット生成部121は、特定したレコードに含まれるローカル送信先アドレスを、データパケットの転送先アドレスとして決定する。   On the other hand, when the global transmission destination is not its own node (Op. 20 NO), the forwarding address is determined by referring to the routing table (Op, 21). Specifically, the packet generation unit 121 specifies a record having the highest evaluation value among records including the same global destination address as the global destination address set in the data packet in the routing table. Then, the packet generation unit 121 determines the local transmission destination address included in the identified record as the transfer destination address of the data packet.

ここで、もっとも評価値が高いレコードにおけるローカル送信先アドレスが、受信したデータパケットのローカル送信元アドレスと一致した場合は、次に高い評価値を有するレコードにおけるローカル送信先アドレスを、転送先アドレスとする。これは、ローカル送信元のノードに、データパケットを送り返される事態を防ぐためである。   Here, when the local destination address in the record having the highest evaluation value matches the local source address of the received data packet, the local destination address in the record having the next highest evaluation value is set as the transfer destination address. To do. This is to prevent a situation where a data packet is sent back to the local transmission source node.

続いて、パケット生成部121は、受信したデータパケットのローカル送信先アドレスを、決定した転送先アドレスに書きかえるとともに、ローカル送信元アドレスを自ノードのアドレスに書きかえる(Op.22)。そして、通信部11は、更新したデータパケットを、ローカル送信先アドレスに転送する(Op.23)。   Subsequently, the packet generation unit 121 rewrites the local transmission destination address of the received data packet to the determined transfer destination address, and rewrites the local transmission source address to the address of its own node (Op.22). Then, the communication unit 11 transfers the updated data packet to the local transmission destination address (Op.23).

以上の処理によって、ルーティングテーブルにおいて最も評価値が高い転送先アドレスに、データパケットは転送される。例えば、評価値に重みづけがなされている為、検証ノードNtestに転送される可能性が高くなる。なお、評価値に重みを付ける以外にも、例えば、ノード種別「3」のローカル送信先アドレスを、転送先として決定するようにしても良い。   Through the above processing, the data packet is transferred to the transfer destination address having the highest evaluation value in the routing table. For example, since the evaluation value is weighted, there is a high possibility that the evaluation value is transferred to the verification node Ntest. In addition to weighting the evaluation value, for example, the local transmission destination address of the node type “3” may be determined as the transfer destination.

次に、検証ノードNtestにおける転送処理について説明する。図12は、ノードNtestにおける転送処理のフローチャートである。なお、図10における転送処理が、図12に示す検証ノードNtestにおける転送処理である場合は、当然、図10における各処理の主体も、検証ノードNtestの各処理部である。   Next, transfer processing in the verification node Ntest will be described. FIG. 12 is a flowchart of the transfer process in the node Ntest. When the transfer process in FIG. 10 is the transfer process in the verification node Ntest shown in FIG. 12, naturally, the subject of each process in FIG. 10 is also each processing unit of the verification node Ntest.

検証部222は、データパケット内のペイロードデータおよびグローバル送信元アドレス、グローバル送信先アドレスに対して、MAC値を算出する(Op.30)。なお、鍵情報記憶部232に格納されたMAC鍵が、MAC値を算出する際に利用される。そして、検証部222は、データパケット内の値格納部に格納されているMAC値と、算出したMAC値とを比較する(Op.31)。   The verification unit 222 calculates a MAC value for the payload data, the global transmission source address, and the global transmission destination address in the data packet (Op.30). The MAC key stored in the key information storage unit 232 is used when calculating the MAC value. Then, the verification unit 222 compares the MAC value stored in the value storage unit in the data packet with the calculated MAC value (Op.31).

両者が一致した場合は(Op.31 YES)、Op.20へ進む。Op.20乃至Op.24は、ノードNxにおける転送処理と同様である。ただし、検証ノードNtestが実行する転送処理においては、通信部11は、通信部21に、ルート生成部124は、ルート生成部223に、ルーティング記憶部131は、ルーティング記憶部231に読みかえられる。   If they match (Op. 31 YES), Op. Proceed to 20. Op. 20 to Op. 24 is the same as the transfer process in the node Nx. However, in the transfer process executed by the verification node Ntest, the communication unit 11 is replaced with the communication unit 21, the route generation unit 124 is replaced with the route generation unit 223, and the routing storage unit 131 is replaced with the routing storage unit 231.

一方、両者が一致しなかった場合には(Op.31 NO)、検証ノードNtestは、転送処理を終了する。つまり、データパケットは転送されない。そして、図10に示したように、転送処理終了後に、Op.15において、データパケットは破棄される。   On the other hand, if they do not match (Op. 31 NO), the verification node Ntest ends the transfer process. That is, the data packet is not transferred. Then, as shown in FIG. At 15, the data packet is discarded.

以上の処理によって、検証ノードNxが受信したデータパケットは、データの完全性およびデータパケットを生成したノードの正当性を検証することができる。したがって、データが改ざんされたデータパケットや、不正なノードが生成したデータパケットを、転送の対象から除外することができる。   Through the above processing, the data packet received by the verification node Nx can verify the integrity of the data and the validity of the node that generated the data packet. Therefore, data packets whose data has been tampered with or data packets generated by an unauthorized node can be excluded from transfer targets.

本実施例によれは、ノードNxよりも処理能力が高い検証ノードNtestをアドホックネットワークシステムに導入することで、ノードNxは、検証処理を削減できる。また、各ノードNxによるルーティングテーブル生成処理において、検証ノードNtestへの転送を優先するように、評価値を重みづけすることができる。したがって、検証ノードNtestにデータパケットが転送される可能性が高くなるため、アドホックネットワーク内を流れるデータパケットは、検証ノードNtestにより効果的に検証される。   According to this embodiment, by introducing a verification node Ntest having higher processing capability than the node Nx into the ad hoc network system, the node Nx can reduce verification processing. In addition, in the routing table generation process by each node Nx, the evaluation value can be weighted so as to give priority to the transfer to the verification node Ntest. Therefore, since there is a high possibility that the data packet is transferred to the verification node Ntest, the data packet flowing in the ad hoc network is effectively verified by the verification node Ntest.

ここで、アドホックネットワークシステムにおけるシンクノードSNは、データパケットを受信した場合に、データパケットのペイロードデータをサーバSへ転送する。シンクノードSNによるサーバSへの転送処理に先駆けて、検証処理を行う事で、サーバSへ、データの完全性およびデータパケットを生成したノードの正当性が保証されないデータを、送信することを防ぐことができる。   Here, the sink node SN in the ad hoc network system transfers the payload data of the data packet to the server S when receiving the data packet. By performing the verification process prior to the transfer process to the server S by the sink node SN, it is possible to prevent the server S from transmitting data whose data integrity and the validity of the node that generated the data packet are not guaranteed. be able to.

しかし、例えば、不正なノードが、大量のパケットをアドホックネットワークに送信してきた場合に、シンクノードSNに、大きな検証負荷が発生することが考えられる。本実施例によれば、検証ノードNtestにおいても、大量のパケットの少なくとも一部が検証されて、破棄されるため、シンクノードSNにおける検証処理に起因する負荷は軽減される。   However, for example, when an unauthorized node transmits a large number of packets to the ad hoc network, a large verification load may be generated in the sink node SN. According to the present embodiment, even at the verification node Ntest, at least a part of a large number of packets is verified and discarded, so that the load caused by the verification processing at the sink node SN is reduced.

上述のとおり、本実施例に開示のアドホックネットワークシステムは、データが完全ではないデータパケット、もしくは、MAC鍵を共有していないノードにより生成されたデータパケットを、検証ノードによる検証によって、効果的に破棄することができる。さらに、再送攻撃によるパケットを破棄する為の従来の方式を、本実施の形態と併せて、本実施例のアドホックネットワークシステムに採用してもよい。   As described above, the ad hoc network system disclosed in the present embodiment is effective in verifying a data packet in which data is not complete or a data packet generated by a node not sharing a MAC key by verification by a verification node. Can be discarded. Furthermore, a conventional method for discarding a packet due to a retransmission attack may be adopted in the ad hoc network system of the present example together with the present embodiment.

再送攻撃とは、次のようにして行われる。例えば、不正なノードが、不正にアドホックネットワークに参加し、アドホックネットワークを流れる正規のデータパケットをキャプチャする。そして、不正なノードは、キャプチャしたパケットを大量に複製する。つまり、データパケット内のデータが完全であって、さらに、正規に共有されたMAC鍵で算出されたMAC値を含むパケットが大量に複製される。そして、不正なノードは、大量に複製されたデータパケットを、アドホックネットワークに流すことで、アドホックネットワークを輻輳させる。   The retransmission attack is performed as follows. For example, an unauthorized node illegally joins an ad hoc network and captures regular data packets flowing through the ad hoc network. An unauthorized node replicates a large number of captured packets. That is, data in the data packet is complete, and a large number of packets including a MAC value calculated with a properly shared MAC key are duplicated. Then, the unauthorized node causes the ad hoc network to be congested by flowing a large amount of replicated data packets to the ad hoc network.

アドホックネットワークシステムに対する再送攻撃によるパケットを破棄する方法のひとつとして、例えば、MAC鍵を、一定時間ごとに更新する手法がある。各ノードNaおよび検証ノードNtestは、所定のルールに従って、MAC鍵を各自更新する。なお、所定のルールを、正規なノード間で事前に統一することで、各ノードで個別に更新されるMAC鍵は、同一のものとなる。したがって、不正ノードにより複製されたデータパケット内のMAC値は、更新されたMAC鍵によりMAC検証で、破棄される。   As one method of discarding a packet due to a replay attack on an ad hoc network system, for example, there is a method of updating a MAC key at regular intervals. Each node Na and verification node Ntest updates the MAC key according to a predetermined rule. In addition, by unifying predetermined rules in advance between regular nodes, the MAC keys updated individually at each node are the same. Therefore, the MAC value in the data packet copied by the unauthorized node is discarded by the MAC verification using the updated MAC key.

図13は、ノードNxのハードウェア構成例である。ノードNxは、CPU(Central Processing Unit)101と、RAM(Random Access Memory)102と、フラッシュメモリ103と、インターフェース(I/F)104と、暗号化回路105と、センサ106と、バス107とを備えている。CPU101乃至センサ106は、バス107よってそれぞれ接続されている。   FIG. 13 is a hardware configuration example of the node Nx. The node Nx includes a CPU (Central Processing Unit) 101, a RAM (Random Access Memory) 102, a flash memory 103, an interface (I / F) 104, an encryption circuit 105, a sensor 106, and a bus 107. I have. The CPU 101 to the sensor 106 are connected by a bus 107, respectively.

CPU101は、ノードNxの全体の制御を司る。CPU101は、RAM102に展開されたプログラムを実行することにより、制御部12、取得部14などとして機能する。   The CPU 101 governs overall control of the node Nx. The CPU 101 functions as the control unit 12, the acquisition unit 14, and the like by executing the program expanded in the RAM 102.

RAM102は、CPU101のワークエリアとして使用される。フラッシュメモリ103は、プログラムや、各種鍵情報、ルーティングテーブルを記憶している。なお、フラッシュメモリ103は、記憶装置13の一例である。プログラムには、例えば、フローチャートに示した各処理を実行させる為のプログラムが含まれる。例えば、ルーティングテーブル生成処理およびパケット転送処理を、ノードNxに実行させる為の制御プログラムが、フラッシュメモリ103に記憶される。   The RAM 102 is used as a work area for the CPU 101. The flash memory 103 stores a program, various key information, and a routing table. The flash memory 103 is an example of the storage device 13. The program includes, for example, a program for executing each process shown in the flowchart. For example, a control program for causing the node Nx to execute the routing table generation process and the packet transfer process is stored in the flash memory 103.

フラッシュメモリ103に記憶されたプログラムを、RAM102に展開し、CPU101が実行することで、ノードNxは、図4に記載した各種処理部として機能する。また、ノードNxは、図10および図11の処理を実行する。   When the program stored in the flash memory 103 is expanded in the RAM 102 and executed by the CPU 101, the node Nx functions as various processing units illustrated in FIG. Further, the node Nx executes the processes of FIGS. 10 and 11.

I/F104は、マルチホップ通信によりパケットを送受信する。I/F104は、通信部11の一例である。   The I / F 104 transmits and receives packets by multi-hop communication. The I / F 104 is an example of the communication unit 11.

暗号化回路105は、データを暗号化する場合に暗号鍵によりデータを暗号化する回路である。例えば、パケットを暗号化して送信する場合は、暗号化回路105が機能する。暗号化をソフトウェア的に実行する場合は、暗号化回路105に相当するプログラムをフラッシュメモリ103に記憶させておくことで、暗号化回路105は不要となる。   The encryption circuit 105 is a circuit that encrypts data using an encryption key when encrypting the data. For example, when encrypting and transmitting a packet, the encryption circuit 105 functions. When encryption is executed by software, the encryption circuit 105 is unnecessary by storing a program corresponding to the encryption circuit 105 in the flash memory 103.

センサ106は、センサ106固有のデータを検出する。たとえば、温度、湿度、水位、降水量、風量、音量、電力使用量、時間、時刻、加速度など、測定対象にあったデータを検出する。なお、CPU101が、取得部14として機能する際には、センサからデータを取得する。   The sensor 106 detects data unique to the sensor 106. For example, data suitable for the measurement target is detected, such as temperature, humidity, water level, precipitation, air volume, volume, power consumption, time, time, and acceleration. Note that when the CPU 101 functions as the acquisition unit 14, data is acquired from the sensor.

図14は、検証ノードNtestのハードウェア構成例である。検証ノードNtestは、CPU(Central Processing Unit)201と、RAM(Random Access Memory)202と、フラッシュメモリ203と、インターフェース(I/F)204と、バス205とを備えている。CPU201乃至I/F204は、バス205よってそれぞれ接続されている。なお、検証ノードNtestは、暗号化回路と、センサとを、さらに備えてもよい。   FIG. 14 is a hardware configuration example of the verification node Ntest. The verification node Ntest includes a CPU (Central Processing Unit) 201, a RAM (Random Access Memory) 202, a flash memory 203, an interface (I / F) 204, and a bus 205. The CPU 201 to the I / F 204 are connected to each other via a bus 205. The verification node Ntest may further include an encryption circuit and a sensor.

CPU201は、検証ノードNtestの全体の制御を司る。CPU201は、RAM202に展開されたプログラムを実行することにより、制御部22などとして機能する。   The CPU 201 governs overall control of the verification node Ntest. The CPU 201 functions as the control unit 22 and the like by executing a program expanded in the RAM 202.

RAM202は、CPU201のワークエリアとして使用される。フラッシュメモリ203は、プログラムや、各種鍵情報、ルーティングテーブルを記憶している。なお、フラッシュメモリ203は、記憶装置23の一例である。プログラムには、例えば、フローチャートに示した各処理を実行させる為のプログラムが含まれる。例えば、ルーティングテーブル生成処理およびパケット転送処理を、検証ノードNtestに実行させる為の制御プログラムが、フラッシュメモリ203に記憶される。   The RAM 202 is used as a work area for the CPU 201. The flash memory 203 stores a program, various key information, and a routing table. The flash memory 203 is an example of the storage device 23. The program includes, for example, a program for executing each process shown in the flowchart. For example, a control program for causing the verification node Ntest to execute a routing table generation process and a packet transfer process is stored in the flash memory 203.

フラッシュメモリ203に記憶されたプログラムを、RAM202に展開し、CPU201が実行することで、検証ノードNtestは、図9に記載した各種処理部として機能する。また、検証ノードNtestは、図10および図12の処理を実行する。   The verification node Ntest functions as various processing units illustrated in FIG. 9 by developing the program stored in the flash memory 203 in the RAM 202 and executing the program by the CPU 201. Further, the verification node Ntest executes the processes of FIGS. 10 and 12.

I/F204は、マルチホップ通信によりパケットを送受信する。I/F204は、通信部21の一例である。   The I / F 204 transmits and receives packets by multi-hop communication. The I / F 204 is an example of the communication unit 21.

また、検証ノードNtestは、汎用コンピュータであってもよい。この場合は、フローチャートに示したルーティングテーブル生成処理およびパケット転送処理を記述した通信制御プログラムは、コンピュータが読み取り可能な記録媒体に記録される。コンピュータが読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。   The verification node Ntest may be a general-purpose computer. In this case, the communication control program describing the routing table generation process and the packet transfer process shown in the flowchart is recorded on a computer-readable recording medium. Examples of the computer-readable recording medium include a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory. Examples of the magnetic recording device include an HDD, a flexible disk (FD), and a magnetic tape (MT).

光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc − Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto − Optical disk)などがある。通信制御プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売されることが考えられる。   Examples of the optical disc include a DVD (Digital Versatile Disc), a DVD-RAM, a CD-ROM (Compact Disc-Read Only Memory), and a CD-R (Recordable) / RW (ReWriteable). Magneto-optical recording media include MO (Magneto-Optical disk). When the communication control program is distributed, for example, a portable recording medium such as a DVD or CD-ROM in which the program is recorded may be sold.

そして通信制御プログラムを実行するコンピュータは、例えば媒体読取装置が、制御プログラムを記録した記録媒体から、該プログラムを読み出す。なお、汎用コンピュータにおけるCPUは、読み出されたプログラムをHDD若しくはROM、RAMに格納する。   In the computer that executes the communication control program, for example, the medium reading device reads the program from the recording medium on which the control program is recorded. Note that the CPU in the general-purpose computer stores the read program in the HDD, ROM, or RAM.

Nx ノード
Ntest 検証ノード
11 通信部
12 制御部
13 記憶部
14 取得部
21 通信部
22 制御部
23 記憶部
Nx node Ntest Verification node 11 Communication unit 12 Control unit 13 Storage unit 14 Acquisition unit 21 Communication unit 22 Control unit 23 Storage unit

図1は、本実施例に係るアドホックネットワークシステムと従来のアドホックネットワークシステムとを比較する為の説明図である。FIG. 1 is an explanatory diagram for comparing an ad hoc network system according to the present embodiment with a conventional ad hoc network system. 図2は、管理パケットのデータ構成例を示す図である。FIG. 2 is a diagram illustrating a data configuration example of the management packet. 図3は、データパケットのデータ構成例を示す図である。FIG. 3 is a diagram illustrating a data configuration example of a data packet. 図4は、ノードNxの機能ブロック図である。FIG. 4 is a functional block diagram of the node Nx. 図5は、従来のルーティングテーブルのデータ構成例と本実施例に係るルーティングテーブルのデータ構成例とを比較する為の図である。FIG. 5 is a diagram for comparing a data configuration example of a conventional routing table with a data configuration example of a routing table according to the present embodiment. 図6は、シンクノードSNからノードNbに時刻パケットが到達する経路を説明する為の図である。FIG. 6 is a diagram for explaining a route through which a time packet arrives from the sink node SN to the node Nb. 図7は、ノード間でのハローパケットの授受を説明する為の図である。FIG. 7 is a diagram for explaining exchange of hello packets between nodes. 図8は、鍵情報記憶部132が記憶するデータ例である。FIG. 8 shows an example of data stored in the key information storage unit 132. 図9は、検証ノードNtestの機能ブロック図である。FIG. 9 is a functional block diagram of the verification node Ntest. 図10は、ルーティングテーブル生成処理のフローチャートである。FIG. 10 is a flowchart of the routing table generation process. 図11は、ノードNxにおける転送処理のフローチャートである。FIG. 11 is a flowchart of the transfer process in the node Nx. 図12は、検証ノードNtestにおける転送処理のフローチャートである。FIG. 12 is a flowchart of the transfer process in the verification node Ntest. 図13は、ノードNxのハードウェア構成例である。FIG. 13 is a hardware configuration example of the node Nx. 図14は、検証ノードNtestのハードウェア構成例である。FIG. 14 is a hardware configuration example of the verification node Ntest.

検証ノードNtestは、ノードNxと比較して、処理能力が高い装置である。そして、検証ノードNtestは、ノードNxとマルチホップ通信が可能な装置である。なお、本実施の形態においては、ノードNxは、他ノードNxまたはシンクノードSN以外に、検証ノードNtestともマルチホップ通信が可能である。なお、他ノードNxまたはシンクノードSN、検証ノードNtestは、通信可能圏内に存在する必要がある。 The verification node Ntest is a device having a higher processing capacity than the node Nx. The verification node Ntest is a device capable of multihop communication with the node Nx. In the present embodiment, the node Nx can perform multi-hop communication with the verification node Ntest in addition to the other node Nx or the sink node SN. Note that the other node Nx, the sink node SN, and the verification node Ntest need to exist within a communicable area.

例えば、ノードNcからシンクノードSNへ向けてパケットが送信される場合には、パケットは、ノードNb、検証ノードNtest、ノードNaを経由する。また、パケットがシンクノードSNへ送信される過程で、経路に含まれる検証ノードNtestが、パケット内のデータの完全性と、パケットの送信元の正当性を検証する。例えば、検証ノードNtestは、MAC値を利用して、検証を実行する。 For example, when a packet is transmitted from the node Nc toward the sink node SN, the packet passes through the node Nb, the verification node Ntest, and the node Na. Further, in the process of transmitting the packet to the sink node SN, the verification node Ntest included in the path verifies the integrity of the data in the packet and the validity of the packet transmission source. For example, the verification node Ntest performs verification using the MAC value.

ノードNbおよびNaは、MAC検証を実行しなくても良い。しかし、処理能力に余裕がある場合には、他のノードNbおよびNaもMAC検証を実行してもよい。以下では、MAC値を利用した検証は、検証ノードNtestのみが行い、ノードNxは、MAC検証を実施しないとして説明を行う。 Nodes Nb and Na do not have to perform MAC verification. However, if there is a margin in processing capacity, the other nodes Nb and Na may also perform MAC verification. In the following description, it is assumed that verification using the MAC value is performed only by the verification node Ntest, and that the node Nx does not perform MAC verification.

次に、アドホックネットワークを流れるパケットについて、説明する。アドホックネットワークを流れるパケットには、複数種類のパケットが含まれる。例えば、管理パケット、データパケットがある。管理パケットとは、ブロードキャストされるパケットであって、各ノードNxまたは検証ノードNtestが他のノードNxまたはシンクノードSNと通信するために必要な情報を共有するためのパケットである。例えば、各ノードNxがセッション鍵を周囲のノードNxに配布する為のハローパケットや、シンクノードSNが時刻情報を各ノードNxに配布する為の時刻パケットが、管理パケットに含まれる。 Next, a packet flowing through the ad hoc network will be described. A packet flowing through an ad hoc network includes a plurality of types of packets. For example, there are a management packet and a data packet. The management packet is a broadcasted packet for sharing information necessary for each node Nx or verification node Ntest to communicate with another node Nx or sink node SN . For example, each node Nx is and hello packet for distributing the session key to the periphery of the node Nx, time packet for sink node SN to distribute the time information in each node Nx is included in the management packet.

図2は、管理パケットのデータ構成例を示す図である。なお、図2に示す管理パケットは、シンクノードSN、各ノードNx、および検証ノードNtestの各々がブロードキャストすることで、ブロードキャストした装置と通信可能範囲に存在する他の装置との間で授受される。 FIG. 2 is a diagram illustrating a data configuration example of the management packet. The management packet shown in FIG. 2 is exchanged between the broadcast device and other devices existing in the communicable range by broadcasting each of the sink node SN , each node Nx, and the verification node Ntest. .

取得部14は、データを取得する処理部である。例えば、取得部14は、ノードNxと通信可能なセンサから、消費電力量や温度等のデータを取得する。なお、取得されたデータは、データパケットのペイロードデータとして、他のノードNx、検証ノードNtestまたはシンクノードSNへ送信される。 The acquisition unit 14 is a processing unit that acquires data. For example, the acquisition unit 14 acquires data such as power consumption and temperature from a sensor that can communicate with the node Nx. The acquired data is transmitted as payload data of a data packet to another node Nx, verification node Ntest, or sink node SN .

ここで、図5Bに示すように、従来のルーティングテーブルは、ノード種別を管理することができない。したがって、評価値は、ノード種別を加味することなく算出される。よって、従来の手法に従うと、通信強度が高いほど、さらにホップ数が小さいほど、評価値が高くなる。例えば、図5Bに示す評価値が算出される。よって、グローバル送信先アドレスを、シンクノードSNのアドレスとした場合に、ノードNbは、もっとも評価値が高いノードNaをローカル送信先として決定する。 Here, as shown in FIG. 5B, the conventional routing table cannot manage the node type. Therefore, the evaluation value is calculated without considering the node type. Therefore, according to the conventional method, the higher the communication strength and the smaller the number of hops, the higher the evaluation value. For example, the evaluation value shown in FIG. 5B is calculated. Therefore, when the global transmission destination address is the address of the sink node SN, the node Nb determines the node Na having the highest evaluation value as the local transmission destination.

一方、本実施例によれば、検証ノードNtestがアドホックネットワークに加わるとともに、評価値の算出において、さらにノード種別が加味される。したがって、検証ノードNtestに対応する評価値が、他のノードNxの評価値と比較して、重みづけされる。例えば、ノードNxにおけるルート生成部124は、ノード種別が「3」である場合には、評価係数に「2」を採用することで、評価値をノードNxである場合と比べて、2倍にすることができる。 On the other hand, according to the present embodiment, the verification node Ntest is added to the ad hoc network, and the node type is further added in the calculation of the evaluation value. Therefore, the evaluation value corresponding to the verification node Ntest is weighted as compared with the evaluation values of the other nodes Nx. For example, when the node type is “3”, the route generation unit 124 in the node Nx adopts “2” as the evaluation coefficient, thereby doubling the evaluation value compared to the case of the node Nx. can do.

したがって、本実施例においては、グローバル送信先アドレスを、シンクノードSNのアドレスとした場合に、ノードNbは、もっとも評価値が高い検証ノードNtestをローカル送信先として決定する。よって、検証ノードNtestに、検証する必要があるデータパケットを転送することができる。 Therefore, in this embodiment, when the global destination address is the address of the sink node SN, the node Nb determines the verification node Ntest having the highest evaluation value as the local destination. Therefore, the data packet that needs to be verified can be transferred to the verification node Ntest.

なお、ノードNb以外のノードNxにおいても、検証ノードNtestと通信可能である場合には、検証ノードNtestをローカル送信先する評価値に重みづけがなされる為、データパケットが、検証ノードNtestに転送される可能性が高くなる。ひいては、アドホックネットワークシステム全体において、検証ノードNtestを経由して、パケットが転送される可能性が高くなり、不正なパケットは、アドホックネットワークから効果的に破棄される。 In addition, when the node Nx other than the node Nb can communicate with the verification node Ntest , the evaluation value with the verification node Ntest as the local transmission destination is weighted, so that the data packet is sent to the verification node Ntest. The possibility of being transferred increases. As a result, in the entire ad hoc network system, there is a high possibility that packets will be transferred via the verification node Ntest, and illegal packets are effectively discarded from the ad hoc network.

シンクノードSNと通信可能なノードNxは、ノードNaとノードNdであるとする。また、ノードNaは、検証ノードNtestとノードNbと通信可能であるとする。ノードNbは、ノードNa、ノードNc、ノードNf、検証ノードNtestと通信可能であるとする。ノードNdは、シンクノードSN、ノードNe、ノードNfと通信可能であるとする。ノードNfは、ノードNb、ノードNd、ノードNg、ノードNh、検証ノードNtestと通信可能であるとする。検証ノードNtestは、ノードNa、ノードNb、ノードNfと通信可能であるとする。 It is assumed that the nodes Nx that can communicate with the sink node SN are the node Na and the node Nd. Further, it is assumed that the node Na can communicate with the verification node Ntest and the node Nb. It is assumed that the node Nb can communicate with the node Na, the node Nc, the node Nf, and the verification node Ntest. It is assumed that the node Nd can communicate with the sink node SN, the node Ne, and the node Nf. It is assumed that the node Nf can communicate with the node Nb, the node Nd, the node Ng, the node Nh, and the verification node Ntest. It is assumed that the verification node Ntest can communicate with the node Na, the node Nb, and the node Nf.

シンクノードSNは、例えば、電源がオンになった場合に、時刻パケットをブロードキャストする(1001)。なお、シンクノードSNと通信可能なノードは、NaとNdであるとすると、1001でブロードキャストされた時刻パケットは、NaおよびNdにより受信される。ここで、ノードNaとノードNdは、宛先アドレスに設定されたアドレスが特別なアドレスであることから、受信したパケットは、自ノード宛のパケットであると認識する。 For example, when the power is turned on, the sink node SN broadcasts a time packet (1001). If the nodes that can communicate with the sink node SN are Na and Nd, the time packet broadcast in 1001 is received by Na and Nd . Here, the node Na and the node Nd recognize that the received packet is a packet addressed to its own node because the address set as the destination address is a special address.

次に、ノードNbは、ルーティングテーブルに、新たにレコードを追加する(1003)。具体的には、ノードNbは、ルーティングテーブルにおけるグローバル送信先アドレスに、時刻パケットのグローバル送信元アドレス「シンクノードSNのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるローカル送信先アドレスに、時刻パケットのローカル送信元アドレス「ノードNaのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるホップ数に、時刻パケットの付加情報「2」を設定する。なお、ノードNbは、受信した時刻パケットを、他のノードと同様に、さらに転送する。 Next, the node Nb adds a new record to the routing table (1003). Specifically, the node Nb sets the global transmission source address “address of the sink node SN” of the time packet to the global transmission destination address in the routing table . The node Nb sets the local transmission source address “node Na address” of the time packet as the local transmission destination address in the routing table. The node Nb sets the additional information “2” of the time packet as the number of hops in the routing table. Note that the node Nb further transfers the received time packet in the same manner as other nodes.

一方、シンクノードSNから、ノードNa、さらに検証ノードNtestを経由して、ノードNbに時刻パケットが到達する経路2がある。経路2は、図6における、1001および1002、1004で各々ブロードキャストされた時刻パケットが、ノードNbにより受信されることとなる。 On the other hand, there is a path 2 through which the time packet reaches the node Nb from the sink node SN via the node Na and further the verification node Ntest. In the path 2, the time packets broadcast in 1001, 1002, and 1004 in FIG. 6 are received by the node Nb.

経路2で転送された時刻パケットを受信したノードNbは、ルーティングテーブルに、新たにレコードを追加する(1005)。具体的には、ノードNbは、ルーティングテーブルにおけるグローバル送信先アドレスに、時刻パケットのグローバル送信元アドレス「シンクノードSNのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるローカル送信先アドレスに、時刻パケットのローカル送信元アドレス「ノードNtestのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるホップ数に、時刻パケットの付加情報「3」を設定する。 The node Nb that has received the time packet transferred through the route 2 adds a new record to the routing table (1005). Specifically, the node Nb is the global destination address definitive in the routing table, it sets the global source address of the time packet "address of the sync node SN". The node Nb sets the local transmission source address “address of the node Ntest” of the time packet as the local transmission destination address in the routing table. The node Nb sets the additional information “3” of the time packet as the number of hops in the routing table.

また、シンクノードSNから、ノードNd、Nfを経由して、ノードNbに到達する経路3がある。経路3は、図6における、1001および1006、1007で各々ブロードキャストされた時刻パケットは、ノードNbにより受信されることとなる。 Further, there is a path 3 from the sink node SN to the node Nb via the nodes Nd and Nf. In the path 3, the time packets broadcast in 1001, 1006, and 1007 in FIG. 6 are received by the node Nb.

経路3で転送された時刻パケットを受信したノードNbは、ルーティングテーブルに、新たにレコードを追加する(1008)。具体的には、ノードNbは、ルーティングテーブルにおけるグローバル送信先アドレスに、時刻パケットのグローバル送信元アドレス「シンクノードSNのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるローカル送信先アドレスに、時刻パケットのローカル送信元アドレス「ノードNfのアドレス」を設定する。ノードNbは、ルーティングテーブルにおけるホップ数に、時刻パケットの付加情報「3」を設定する。 The node Nb that has received the time packet transferred through the path 3 adds a new record to the routing table (1008). Specifically, the node Nb is the global destination address definitive in the routing table, it sets the global source address of the time packet "address of the sync node SN". The node Nb sets the local transmission source address “address of the node Nf” of the time packet as the local transmission destination address in the routing table. The node Nb sets the additional information “3” of the time packet as the number of hops in the routing table.

なお、図6には示していないが、シンクノードSNから、ノードNa、検証ノードNtest、ノードNfを経由してノードNbに到達する時刻パケットもある。この場合は、ルーティングテーブルのグローバル送信先アドレスに「シンクノードSNのアドレス」を、ローカル送信先アドレスに「ノードNfのアドレス」を、ホップ数に「4」が設定されることとなる。しかし、グローバル送信アドレスとローカル送信先アドレスの組み合わせが同一のレコードが、すでにルーティングテーブルに存在する場合は、ホップ数がより小さなレコードのみを採用し、他方を破棄するとしてもよい。 Although not shown in FIG. 6, there is a time packet that reaches the node Nb from the sink node SN via the node Na, the verification node Ntest, and the node Nf. In this case, “the address of the sink node SN” is set as the global destination address of the routing table, “the address of the node Nf” is set as the local destination address, and “4” is set as the number of hops. However, when a record having the same combination of the global transmission address and the local transmission destination address already exists in the routing table, only the record having a smaller hop count may be adopted and the other may be discarded.

また、各ノード毎にMAC鍵もしくは暗号鍵、または両方の鍵が異なっても構わない。例えば、グローバル送信元アドレスに対応するノードNxは、ノードごとに異なるMAC鍵を利用して、MACを算出してもよい。そして、算出したMAC値を、データパケットの値格納部に設定する。 Further, the MAC key or the encryption key, or both keys may be different for each node. For example, the node Nx corresponding to the global transmission source address may calculate the MAC value using a different MAC key for each node. Then, the calculated MAC value is set in the value storage unit of the data packet.

なお、以下、ノードNxが主体となった場合のルーティングテーブル生成処理を説明するが、検証ノードNtestにおいても同様の処理が実行される。ただし、主体が検証ノードNtestである場合は、以下の説明において、通信部11は通信部21に、ルート生成部124はルート生成部223に、ルーティング記憶部131はルーティングテーブル記憶部231に読みかえられる。 In the following, the routing table generation process when the node Nx is the main body will be described, but the same process is executed also in the verification node Ntest. However, when the subject is the verification node Ntest, in the following description, the communication unit 11 is replaced with the communication unit 21, the route generation unit 124 is replaced with the route generation unit 223, and the routing storage unit 131 is replaced with the routing table storage unit 231. .

通信部11は、パケットを受信する(Op.1)。そして、ルート生成部124は受信したパケット内に設定されたパケットタイプが、「0」であるか判定する(Op.2)。パケットタイプが「0」である場合は(Op. YES)、受信したパケットが時刻パケットである。 The communication unit 11 receives the packet (Op. 1). Then, the route generation unit 124 determines whether the packet type set in the received packet is “0” (Op. 2). When the packet type is “0” (Op. 2 YES), the received packet is a time packet.

次に、通信部11は、時刻パケットを転送する(Op.9)。具体的には、ルート生成部124により時刻パケットのローカル送信元アドレスおよびホップ数が更新された後、通信部11は、時刻パケットをブロードキャストする。そして、一連の処理を終了するが、新たにパケットを受信した場合は、ノードNxは、一連の処理を繰り返す。 Next, the communication unit 11 transfers the time packet (Op. 9). Specifically, after the local source address and the number of hops of the time packet are updated by the route generation unit 124 , the communication unit 11 broadcasts the time packet. Then, the series of processing ends, but when a new packet is received, the node Nx repeats the series of processing.

一方、パケットタイプが「0」でない場合は(Op.2 NO)、ルート生成部124は、パケット内に設定されたローカル送信元アドレスを、ルーティングテーブルにおけるローカル送信先アドレスとするレコードを特定する。そして、ルート生成部124は、特定したレコードの通信強度を更新する(Op.10)。 On the other hand, when the packet type is not “0” (Op.2 NO ), the route generation unit 124 identifies a record in which the local transmission source address set in the packet is the local transmission destination address in the routing table. Then, the route generation unit 124 updates the communication strength of the identified record (Op. 10).

以上の処理によって、各ノードNxは、ルーティングテーブルを生成および更新することができる。また、ノード種別を含むパケットを受信することで、各ノードNxは、各ノードNxと通信可能なノードに、検証ノードtestが含まれるか否かを、把握することができる。そして、各ノードNxは、検証ノードNtestにデータパケットを優先的に転送するように、ルーティングテーブルにおける検証ノードNtestに対する評価値を重みづけすることができる。 Through the above processing, each node Nx can generate and update the routing table. Also, by receiving a packet including the node type, each node Nx can grasp whether or not the verification node N test is included in a node that can communicate with each node Nx. Each node Nx can weight the evaluation value for the verification node Ntest in the routing table so that the data packet is preferentially transferred to the verification node Ntest.

両者が一致した場合は(Op.31 YES)、Op.20へ進む。Op.20乃至Op.24は、ノードNxにおける転送処理と同様である。ただし、検証ノードNtestが実行する転送処理においては、通信部11は、通信部21に、ルート生成部124は、ルート生成部223に、ルーティング記憶部131は、ルーティングテーブル記憶部231に読みかえられる。 If they match (Op. 31 YES), Op. Proceed to 20. Op. 20 to Op. 24 is the same as the transfer process in the node Nx. However, in the transfer process executed by the verification node Ntest, the communication unit 11 is replaced with the communication unit 21, the route generation unit 124 is replaced with the route generation unit 223, and the routing storage unit 131 is replaced with the routing table storage unit 231.

以上の処理によって、検証ノードNtestが受信したデータパケットは、データの完全性およびデータパケットを生成したノードの正当性を検証することができる。したがって、データが改ざんされたデータパケットや、不正なノードが生成したデータパケットを、転送の対象から除外することができる。 Through the above processing, the data packet received by the verification node N test can verify the integrity of the data and the validity of the node that generated the data packet. Therefore, data packets whose data has been tampered with or data packets generated by an unauthorized node can be excluded from transfer targets.

本実施例によれ、ノードNxよりも処理能力が高い検証ノードNtestをアドホックネットワークシステムに導入することで、ノードNxは、検証処理を削減できる。また、各ノードNxによるルーティングテーブル生成処理において、検証ノードNtestへの転送を優先するように、評価値を重みづけすることができる。したがって、検証ノードNtestにデータパケットが転送される可能性が高くなるため、アドホックネットワーク内を流れるデータパケットは、検証ノードNtestにより効果的に検証される。 According to the present embodiment, by introducing the verification node Ntest having higher processing capability than the node Nx into the ad hoc network system, the node Nx can reduce verification processing. In addition, in the routing table generation process by each node Nx, the evaluation value can be weighted so as to give priority to the transfer to the verification node Ntest. Therefore, since there is a high possibility that the data packet is transferred to the verification node Ntest, the data packet flowing in the ad hoc network is effectively verified by the verification node Ntest.

アドホックネットワークシステムに対する再送攻撃によるパケットを破棄する方法のひとつとして、例えば、MAC鍵を、一定時間ごとに更新する手法がある。各ノードNおよび検証ノードNtestは、所定のルールに従って、MAC鍵を各自更新する。なお、所定のルールを、正規なノード間で事前に統一することで、各ノードで個別に更新されるMAC鍵は、同一のものとなる。したがって、不正ノードにより複製されたデータパケット内のMAC値は、更新されたMAC鍵と異なるため、その更新されたMAC鍵によるMAC検証で、それらデータパケットは破棄される。 As one method of discarding a packet due to a replay attack on an ad hoc network system, for example, there is a method of updating a MAC key at regular intervals. Each node N x and the verification node N test each update the MAC key according to a predetermined rule. In addition, by unifying predetermined rules in advance between regular nodes, the MAC keys updated individually at each node are the same. Therefore, since the MAC value in the data packet copied by the illegal node is different from the updated MAC key , the data packet is discarded by the MAC verification using the updated MAC key .

センサ106は、センサ106固有のデータを検出する。たとえば、温度、湿度、水位、降水量、風量、音量、電力使用量、時間、時刻、加速度など、測定対象にあったデータを検出する。なお、CPU101が、取得部14として機能する際には、センサ106からデータを取得する。 The sensor 106 detects data unique to the sensor 106. For example, data suitable for the measurement target is detected, such as temperature, humidity, water level, precipitation, air volume, volume, power consumption, time, time, and acceleration. Note that, when the CPU 101 functions as the acquisition unit 14, data is acquired from the sensor 106 .

Claims (13)

複数のノード間で第一のパケットを授受する事で、第二のパケットの送信ルートが構築されるとともに、該複数のノードと該複数のノードよりも処理能力が高い検証ノードとを含むネットワークシステムであって、
前記検証ノードは、
前記複数のノードの少なくとも一部に、自身が検証ノードであることを示す識別子を含む第三のパケットを送信する通信部と、
前記通信部により前記複数のノードのうちのいずれかから前記第二のパケットが受信された場合には、該第二のパケットの正当性を検証する検証部とを有し、
前記複数のノードは各々、
前記複数のノードの内の他のノードから前記第一のパケットを受信するとともに、前記検証ノードから前記第三のパケットを受信する通信部と、
前記第一のパケットおよび前記第三のパケットに基づいて、前記検証ノードおよび前記他のノードの中から、前記第二のパケットの送信先を決定する制御部とを有することを特徴とするネットワークシステム。
A network system including a plurality of nodes and a verification node having a higher processing capability than the plurality of nodes while a transmission route of the second packet is constructed by exchanging the first packet between the plurality of nodes Because
The verification node is
A communication unit that transmits, to at least some of the plurality of nodes, a third packet including an identifier indicating that the node is a verification node;
When the second packet is received from any of the plurality of nodes by the communication unit, a verification unit that verifies the validity of the second packet,
Each of the plurality of nodes is
A communication unit that receives the first packet from another node of the plurality of nodes and receives the third packet from the verification node;
And a control unit that determines a transmission destination of the second packet from the verification node and the other nodes based on the first packet and the third packet. .
前記前記複数のノードが各々有する前記制御部は、
前記他のノードおよび前記検証ノードの各々に対して、前記第二のパケットを送信する可能性の大小を示す評価値を、前記第一のパケット、前記第三のパケット、前記識別子に基づいて、算出し、
前記評価値の大小に基づいて、前記送信先を決定することを特徴とする請求項1記載のネットワークシステム。
The control unit included in each of the plurality of nodes includes:
Based on the first packet, the third packet, and the identifier, an evaluation value indicating the likelihood of transmitting the second packet to each of the other nodes and the verification node, Calculate
The network system according to claim 1, wherein the transmission destination is determined based on the magnitude of the evaluation value.
前記前記複数のノードが各々有する前記制御部は、
前記識別子に基づいて、前記検証ノードに対する評価値を、前記他のノードに対する評価値よりも、重みづけすることを特徴とする請求項2記載のネットワークシステム。
The control unit included in each of the plurality of nodes includes:
The network system according to claim 2, wherein the evaluation value for the verification node is weighted more than the evaluation value for the other node based on the identifier.
前記第二のパケットは、該第二のパケットに含まれる少なくとも一部のデータに対して、特定の論理関係を有する第一の値を含み、
前記検証ノードが有する前記検証部は、
前記第二のパケットを受信した場合に、該第二のパケットに含まれる少なくとも一部のデータに対して、特定の論理関係を有する第二の値を算出し、前記第一の値と該第二の値とを比較することを特徴とする請求項1乃至請求項3のいずれか一項に記載のネットワークシステム。
The second packet includes a first value having a specific logical relationship with respect to at least a part of data included in the second packet;
The verification unit included in the verification node includes:
When the second packet is received, a second value having a specific logical relationship is calculated for at least a part of the data included in the second packet, and the first value and the first value are calculated. The network system according to any one of claims 1 to 3, wherein the second value is compared.
前記検証ノードが有する前記通信部は、
前記検証部により前記第一の値と前記第二の値とが一致すると判定された場合は、前記第二のパケットを、前記複数のノードのうち、いずれかのノードへ送信するとともに、
前記検証部により前記第一の値と前記第二の値とが一致しないと判定された場合は、前記第二のパケットを、破棄することを特徴とする請求項4に記載のネットワークシステム。
The communication unit included in the verification node includes:
When the verification unit determines that the first value and the second value match, the second packet is transmitted to any one of the plurality of nodes, and
The network system according to claim 4, wherein when the verification unit determines that the first value and the second value do not match, the second packet is discarded.
ネットワークシステムを構成する複数ノードのうち、少なくとも一部と通信可能な検証ノードであって、
通信可能なノードに、自装置が検証ノードであることを示す識別子を含む第一のパケットを送信するとともに、該通信可能なノードから、第二のパケットを受信する通信部と、
前記第二のパケットの正当性を検証するとともに、検証した結果に基づいて、他の通信可能なノードに対して、該第二のパケットの送信を制御する検証部とを有する検証ノード。
A verification node capable of communicating with at least a part of a plurality of nodes constituting the network system,
A communication unit that transmits a first packet including an identifier indicating that the device is a verification node to a communicable node, and receives a second packet from the communicable node;
A verification node that verifies the validity of the second packet and has a verification unit that controls transmission of the second packet to another communicable node based on the verification result;
前記第二のパケットは、該第二のパケットに含まれる少なくとも一部のデータに対して、特定の論理関係を有する第一の値を含み、
前記検証部は、
前記第二のパケットを受信した場合に、該第二のパケットに含まれる少なくとも一部のデータに対して、特定の論理関係を有する第二の値を算出し、前記第一の値と該第二の値とを比較することを特徴とする請求項6に記載の検証ノード。
The second packet includes a first value having a specific logical relationship with respect to at least a part of data included in the second packet;
The verification unit
When the second packet is received, a second value having a specific logical relationship is calculated for at least a part of the data included in the second packet, and the first value and the first value are calculated. The verification node according to claim 6, wherein the verification node compares the second value.
前記通信部は、
前記検証部により前記第一の値と前記第二の値とが一致すると判定された場合は、前記第二のパケットを、前記他の通信可能なノードへ送信するとともに、
前記検証部により前記第一の値と前記第二の値とが一致しないと判定された場合は、前記第二のパケットを、破棄することを特徴とする請求項7に記載の検証ノード。
The communication unit is
When the verification unit determines that the first value matches the second value, the second packet is transmitted to the other communicable node,
The verification node according to claim 7, wherein the second packet is discarded when the verification unit determines that the first value and the second value do not match.
ネットワークシステムを構成する複数ノードの中の一つであり、該複数ノード間で送受信される第一のパケットを検証する検証ノードと通信するノードであって、
前記ネットワークシステムに含まれる他のノードから第二のパケットを受信するとともに、該検証ノードから、自身が検証ノードであることを示す識別子を含む第三のパケットを受信する通信部と、
前記第二のパケットおよび前記第三のパケットに基づいて、前記検証ノードおよび前記他のノードのうち前記第一のパケットの送信先を決定する制御部とを有することを特徴とするノード。
One of a plurality of nodes constituting a network system, a node communicating with a verification node that verifies a first packet transmitted / received between the plurality of nodes,
A communication unit that receives a second packet from another node included in the network system and receives a third packet including an identifier indicating that the node is a verification node from the verification node;
And a control unit that determines a transmission destination of the first packet among the verification node and the other nodes based on the second packet and the third packet.
前記制御部は、
前記他のノードおよび前記検証ノードの各々に対して、前記第一のパケットを送信する可能性の大小を示す評価値を、前記第二のパケット、前記第三のパケット、前記識別子に基づいて、算出し、
前記評価値の大小に基づいて、前記送信先を決定することを特徴とする請求項9記載のノード。
The controller is
Based on the second packet, the third packet, and the identifier, an evaluation value indicating the likelihood of transmitting the first packet to each of the other nodes and the verification node, Calculate
The node according to claim 9, wherein the destination is determined based on the magnitude of the evaluation value.
前記制御部は、
前記識別子に基づいて、前記検証ノードに対する評価値を、前記他のノードに対する評価値よりも、重みづけすることを特徴とする請求項10記載のノード。
The controller is
The node according to claim 10, wherein the evaluation value for the verification node is weighted more than the evaluation value for the other node based on the identifier.
ネットワークシステムを構成する複数ノードのうち、少なくとも一部と通信可能な検証ノードが、
通信可能なノードに、自装置が検証ノードであることを示す識別子を含む第一のパケットを送信し、
前記通信可能なノードから、第二のパケットを受信し、
前記第二のパケットの正当性を検証し、
検証した結果に基づいて、他の通信可能なノードに対して、該第二のパケットの送信を制御する処理を実行することを特徴とする通信方法。
A verification node capable of communicating with at least a part of the plurality of nodes constituting the network system,
A first packet including an identifier indicating that the device is a verification node is transmitted to a communicable node;
Receiving a second packet from the communicable node;
Verify the validity of the second packet;
A communication method, comprising: executing processing for controlling transmission of the second packet to another communicable node based on the verified result.
ネットワークシステムを構成する複数ノードの中の一つであり、該複数ノード間で送受信される第一のパケットを検証する検証ノードと通信するノードが、
前記ネットワークシステムに含まれる他のノードから第二のパケットを受信し、
前記検証ノードから、自身が検証ノードであることを示す識別子を含む第三のパケットを受信し、
前記第二のパケットおよび前記第三のパケットに基づいて、前記検証ノードおよび前記他のノードのうち前記第一のパケットの送信先を決定する処理を実行することを特徴とする通信方法。
A node that communicates with a verification node that is one of a plurality of nodes constituting a network system and that verifies a first packet transmitted and received between the plurality of nodes.
Receiving a second packet from another node included in the network system;
Receiving from the verification node a third packet including an identifier indicating that it is a verification node;
A communication method, comprising: performing a process of determining a transmission destination of the first packet among the verification node and the other nodes based on the second packet and the third packet.
JP2014507017A 2012-03-30 2012-03-30 Network system, node, verification node, and communication method Pending JPWO2013145026A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014507017A JPWO2013145026A1 (en) 2012-03-30 2012-03-30 Network system, node, verification node, and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014507017A JPWO2013145026A1 (en) 2012-03-30 2012-03-30 Network system, node, verification node, and communication method

Publications (1)

Publication Number Publication Date
JPWO2013145026A1 true JPWO2013145026A1 (en) 2015-08-03

Family

ID=53772728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014507017A Pending JPWO2013145026A1 (en) 2012-03-30 2012-03-30 Network system, node, verification node, and communication method

Country Status (1)

Country Link
JP (1) JPWO2013145026A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003069581A (en) * 2001-08-28 2003-03-07 Nippon Telegr & Teleph Corp <Ntt> Unjust packet prevention method and preventing apparatus of radio multi-hop network
JP2005005854A (en) * 2003-06-10 2005-01-06 Nippon Telegr & Teleph Corp <Ntt> Communication path setting method
JP2006203723A (en) * 2005-01-24 2006-08-03 Toshiba Corp Radio access point and its path determination method or its communication method, and radio communication system and its communication method
WO2011121713A1 (en) * 2010-03-29 2011-10-06 富士通株式会社 Node, transfer method, and transfer program
JP2012015733A (en) * 2010-06-30 2012-01-19 Fujitsu Ltd Communication terminal, route selection method and communication scheme

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003069581A (en) * 2001-08-28 2003-03-07 Nippon Telegr & Teleph Corp <Ntt> Unjust packet prevention method and preventing apparatus of radio multi-hop network
JP2005005854A (en) * 2003-06-10 2005-01-06 Nippon Telegr & Teleph Corp <Ntt> Communication path setting method
JP2006203723A (en) * 2005-01-24 2006-08-03 Toshiba Corp Radio access point and its path determination method or its communication method, and radio communication system and its communication method
WO2011121713A1 (en) * 2010-03-29 2011-10-06 富士通株式会社 Node, transfer method, and transfer program
JP2012015733A (en) * 2010-06-30 2012-01-19 Fujitsu Ltd Communication terminal, route selection method and communication scheme

Similar Documents

Publication Publication Date Title
JP5652556B2 (en) Communication node, communication control method, and communication node control program
JP5454673B2 (en) COMMUNICATION DEVICE, PROGRAM, AND METHOD
JP5240404B2 (en) Node, transfer method, and transfer program
Song et al. Secure position-based routing protocol for mobile ad hoc networks
JP5839125B2 (en) Node and communication method
Chen et al. Trusted routing for VANET
Song et al. A framework of secure location service for position-based ad hoc routing
WO2013145026A1 (en) Network system, node, verification node, and communication method
JPWO2014030186A1 (en) Relay device, relay method, relay program, and relay system
JP6804026B2 (en) Encrypted communication system
JP6098322B2 (en) Packet transfer method, node device, and program
JP2012204895A (en) Information processor
JP5962750B2 (en) Ad hoc network system, node, and communication method
JP5949909B2 (en) Gateway and earthquake detection method
JP5874823B2 (en) Network system, node, and communication method.
JPWO2013145026A1 (en) Network system, node, verification node, and communication method
Woungang et al. Comparison of two security protocols for preventing packet dropping and message tampering attacks on AODV-based mobile ad Hoc networks
Zeng et al. Secure hop-count based localization in wireless sensor networks
JP2004304754A (en) Contents distribution system
JP5839124B2 (en) Node and communication method
Rajanarayanan et al. Wireless sensor network based detection of malicious packets drops and cluster performance study using energy with security aware LEACH (ES-LEACH)
KR100916909B1 (en) Method of transmitting data for sensor network communication
JP2021141390A (en) Communication device, attack determination program, and attack determination method
Wilson et al. SDFS: secured data forwarding with minimum selfishness and message overhead in mobile wireless network
Samuel Reliable Communications over Heterogeneous Wireless Networks

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160209