省電力端末を用いた無線センサネットワークにおける通信の信頼性向上の提案
M2009MM009 泉井雄仁
指導教員：河野浩之

はじめに

1

3 システムアーキテクチャ
本節ではシステムアーキテクチャについて説明する．

近年開発されている，ある種の低価格省電力無線センサ[1] は周期的に短時間だけ起動し，処理機能も限られている．つまり通信の高信頼性を確保した上でシステムの長寿命化を可能にすることが重要である．本研究では端末数50 以下の小規模ネットワークにおいて，無線端末は通信の際に一意に通信する端末を決めるのではなくすべての隣接ノードに中継を求めることで，end-to-end の通信成功率を上げることを目的とする．評価方法として当研究室で開発中のネットワークエミュレータ GINE[2] に無線通信のエミュレーション機能を追加し評価する．端末の電力消費と通信成功率を算出し，他のルーティング方式 [3] と比較する．大規模ネットワークの場合，放送には無駄が多くなるため，放送方向を限定するなどの制約を付加した拡張が必

3.1 ネットワーク構成
本研究で構築するネットワーク構成と条件は次の通りである．

• 構成は図 1 のような集合住宅におけるネットワークシステムを想定している．

• ネットワークの中の任意のノードを基地局として外部ネットワーク接続することによって集合住宅内の情報を外部へ報告することができる．

• 住宅内のネットワークでは隣接ノード間で通信を繰り返すことで end-to-end の通信を確立する．
• 実験の周期性をなくすために時間差で起動させる．

端末が一つでも通信不可能 (電池切れ) となった場合ネット• 無線通信においてデータを送信する際に必要な電力は距離の 2 乗に比例し各無線端末間の距離は遠すぎワーク寿命とする．低機能通信機器を用いて通信の信頼性ると大きな電力消費の原因となってしまう．そこでを確保した上での長寿命化を可能にする．省電力ルーティ

隣接端末間の 10 m 程度とした．

要となる．本研究におけるネットワーク寿命の定義は無線ング方式を提案し，エミュレーションによって評価する．

既存方式

2

先行研究である RIP を応用したルーティング方式について説明する．

2.1

RIP を応用したルーティング方式

先行研究ではルーティング方式の一つとして RIP をもと• 通信の成功率は距離の 2 乗に反比例している．
• 10m で成功率は約 90% だが 15m では 70% になる．
• ノード間の距離を空けすぎることは適切ではない．
図 1 中の四角内の数字はノード ID を示している．ノードの中で任意のノードを基地局として外部のネットワークと接続する．図 1 ではノード 25 を基地局としてグローバルネットワークに接続する．各ノードは一日一回基地局と通信する．に考察している．経路決定の基準は最短通信距離を選択することである．さらにインターフェースメトリックをホッglobalnet

プ数に加えることで消費電力の偏りを回避する．ルーティングは以下のような流れになる．

(1) インターフェースメトリックの値は電力残量の逆数

1m252627282930192021222324131415161718789101112

123456をもとにしている．

(2) 各ノードが隣接ノードに自分の持つ経路情報を定期的に送信する (初期 4 回と 1 日 1 回程度)

5m(3) 送信する情報は宛先論理アドレスと通信距離10m(4) RIP では経路情報をブロードキャストするが，この場合は各隣接ノードに個別に送信

図 1 ネットワークの構成例

問題点として遠いノードからのビーコンを受信して隣接ノードとして認識した場合，中継を依頼すると成功率が低下する．このような問題に対処するために通信成功率の低い隣接ノードは隣接ノードリストから消去する．

4 ルーティング方式
本節ではルーティング方式について説明する．

4.1(2) N3 はデータを送信するためビーコン受信状態に遷ルーティング方式の概要移する．

本研究では２節で紹介した RIP の応用を更に改造する．
先行研究では隣接端末間の通信の信頼性が高くなければend-to-end の通信成功率が低いことがわかった．決定した経路によっては end-to-end の通信が不成立になる．またデータの再送によって余分な電力を消費する．

(1) 電力消費は，端末起動時のビーコン送信が電力消費の 9 割以上を占めることから，データ送信を相対的に増やして，end-to-end の通信成功率を高めることが適切であると判明した．

(2) 50 ノード以下の小規模ネットワークにおいて，起動(3) 隣接ノードである N2 からビーコンを受信したらN2 に対してデータを送信する．
(4) N3 はその後も他の隣接ノードに対してデータ送信を続ける．

(5) N2 は N3 から受信したデータを中継をする．
(6) N2 は隣接ノードである N1 からビーコンを受信したのでデータを送信する．

(7) N2 は N3 からビーコンを受信したが，データの発信源なのでデータを送信しない．

している全ての隣接ノードにデータを送信する．

(3) (2) よりネットワーク上に複数の同一データが存在

4.3 ルーティング方式の状態遷移するため，データが欠損を生じた場合でも別のノー提案するルーティング方式は図 3 の状態遷移図を用いてドから正しいデータを得る事で高信頼性を維持で説明する．無線端末の sleep 状態は，ルーティングの処理きる．

はしない．決められた時間分，休止することで電力を節約(4) ノードの状態は大きく分けて sleep 状態と通信可能状態がある．

する．状態を遷移するときは２種類である．データの発生またはデータを持っている場合は beacon receive wait 状態(5) 2 つの状態を遷移することによって特に仕事が無いへ遷移する．タイムアウトの場合は beacon Xmit 状態へ遷ノードまたは一定時間通信可能状態であったノード移する．無線端末の beacon Xmit 状態は，自分が受信可能は sleep 状態となり電力を節約する．

状態であることを知らせるため隣接端末へビーコンを送信(6) 通信可能状態にあるノードはデータ受信状態の場
合は自分の状態を伝えるために隣接ノードに対してビーコンを送信する．

(7) データ送信状態にあるノードは受信したビーコンを送ってきたノードに対して送信する．

4.2

ルーティング方式の流れ

図 2 では通信を経過時間に合わせて表現してある．図中の N1，N2，N3 はノードである．

する．状態を遷移するときはビーコンの送信が終了したらdata Receive wait 状態へ遷移する．
無線端末の data Receive wait 状態は自分が送ったビーコンを受信した端末からデータが送られてくるのを待つ状態である．状態を遷移するときは以下の２種類である．

• データを受信した場合
data received 状態へ遷移する．
• データが何も届かなかった場合
time out となり sleep 状態へ遷移する．
無線端末の data receiving 状態は届いたデータの受信処理をする状態である．受信処理が終了すれば process 状態

N1へと遷移する．無線端末の process 状態は受信したデータ送信が必要か不必要かを判断する．

• 送信が必要な場合
beacon receive wait 状態へ遷移する．

N2• 送信が不必要な場合受信したデータを確認して既に受信したことがある

N3

データの場合，データを破棄して sleep 状態へ遷移
sleep

data appearする．
また process 状態は無線端末の通信以外での処理のため

data Xmitbeacon receive waitに設けた状態である．通信機器に付属した端末はここで処理をする．

beacon Xmit

data receive wait

無線端末の beacon receive wait 状態は beacon Xmit 状態と逆の状態である．端末は自分がデータを送信するため受信

図 2 ルーティング方式

可能な隣接端末からビーコンが送られてくるのを待つ．状態を遷移するときは以下の２種類である．

(1) N3 に送信が必要なデータが存在すると仮定する．

• ビーコンを受信した場合

beacon receiving 状態へ遷移する．

ある．本研究では GINE に無線機能を追加し提案するルー• 一定時間ビーコンを受信できなかった場合タイムアウトして sleep 状態へ遷移する．
無線端末の beacon receiving 状態は届いたビーコンの受信処理をする状態である．ビーコンの受信が完了したら

data Xmit 状態へと遷移する．既に同一データを送信している端末からのビーコンの場合には送る必要が無いのでbeacon receiving 状態へと遷移する．
無線端末の data Xmit の状態は受信したビーコンを送信ティング方式を評価する．

5.2 基本構造
プログラムの基本構造はスレッドでノードを複数用意するのでは無くキューを用いてプログラムを作成した．ノードオブジェクトからセルフイベント用に１つ，通信用にswitch に対して２つ準備する．図 4 に構造を示す．
self event

した端末に対してデータを送信する．送信処理が終了すれば beacon receive wait 状態へと遷移する．Beacon receive

wait 状態，beacon receiving 状態， data Xmit 状態を繰り返
Nodeすことによって，全ての隣接端末に中継を求めることがでSWき，ネットワークの信頼性を向上させることができる．
図 4 実装図

time out
don’t have datafinish
data
Receivewait

beaconXmit

sleep

dataarrive

time out

図 4 の構造を実現するために GINE の ProcessQueue，FrameQueue を使用した．

• ProcessQueue 定期的に登録された Queue を監視する

not Xmithave
data

datareceiving• FrameQueue 遅延，パケットロスなどを指定してのリンクを表現する

finished
beaconreceivewait
finish

not need

processXmit
beaconarriveProcessQueue がこのノードの FrameQueue チェックして、出力時刻になっていたら，Frame を受け取る．

1) 自分からのフレームならば状態遷移の処理
2) 他からのフレームならば現在の状態に依存した処理
5.3 データの重複判定

dataXmitbeaconreceivingneed

図 3 ノードの状態遷移

データのフラッディングには多くの送信データが発生する．それらを判断するために送信中または送信待ちフレー
ムをもとに xmitList というリストを構成する．

isDuplicate メソッド
無線端末が beacon Xmit(40 octets) data Receive wait(10msec) sleep (5sec) この 3 つの状態を遷移したした場合 1サイクルにおいての時間と消費電力はそれぞれ 5.0433sec，0.685mAsec よって 1 日では 17131.527 サイクルなので1 日の消費電力は約 3.258mAh となる．バッテリ稼働時間
は 7560/3.258 = 2320 日 (6.36 日) となる．

エミュレーション

5

本節では，エミュレータの基本構成について説明する．

5.1

GINE

データをフラッディングした場合，データの重複受信が問題となる．一度受信したフレームかどうかを調べる必要がある．xmitList を検索する．シーケンス番号とソースアドレスとディスティネーションアドレスで判定する．重複判定用のシーケンス番号を新たに追加したので，RIP の場合とはヘッダが異なる．よってフレームのペイロード部分
で１ octet 増加する．

isBacklog メソッド
ノードは何かジョブが残っている状態でタイムアウト

GINE は多数のルータやリンクで構成される広域ネットとなりスリープ状態へ遷移する場合がある．そのような場ワークを模倣することが出来るネットワークエミュレータ

合を考慮しノードは wakeup ごとに isBacklog メソッドをである．各リンクごとに与えられた確率分布に従って，遅呼び出す．isBacklog メソッドはジョブが残っていないか延やパケットロスなどの通信障害を容易にエミュレートす確認する．残っている場合は送信待ち状態へ遷移する．まることができ，バンド幅を独自に設定することができる． た，全ての送信が終了していない中継フレームもしくは検また，C++ クラスライブラリを用いたユーザスペースプロ

針フレームがあるか確認する．スリープは一定間隔で発生グラムで記述されているため，自由に機能の追加が可能でするが全てのデータ送信が完了した場合，そのタイミングでスリープになる．その場合すでにイベント予約された一

nodeID(RIP)->(flooding)

定間隔のスリープが不必要になる．図 5 中の１のイベントである．このイベントを削除するためにキューに入っているフレームをポインタで記憶しておき検索キーワードとすることで，イベントの削除が出来る．

24(base)25(365)->(61) 26(354)->(171) 27(266)->(159) 28(89) ->(98) 29(189)->(110)

18(365)->(220) 19(364)->(85) 20(278)->(98) 21(189)->(171) 22(158)->(37) 23(81)->(49)
12(363)->(146) 13(364)->(37) 14(288)->(49) 15(172)->(50) 16(83) ->(38) 17(41)->(47)send
1
timewakeup

6(363)->(73)7(358)->(52) 8(224)->(61) 9(209)->(25) 10(86) ->(66) 11(60)->(23)0(339)->(45)1(345)->(39) 2(229)->(24) 3(0) ->(25)sleep4(89) ->(38) 5(80)->(27)

図 5 イベントタイミング
図 6 成功回数一覧

6

性能評価
RIP をもとにしたルーティング方式とフラッディングをもとにしたルーティング方式で比較し評価する．

7 おわりに
本研究ではフラッディングを使用し信頼性の向上を提案した．RIP をもとにした通信方式の場合は全てのノード消費電力
基地局においての１日当たりの平均消費電力は以下のようになった．

• RIP ： 3.3mAh/day• フラッディング ： 5.63mAh/dayとの通信が不可能であったが，フラッディングを用いた場合は全てのノードとの通信が確認できた．しかし，ネットワーク全体における通信の総成功回数が減少した．その原
因はデータ送信待機中にデータ受信できないという点である．送信待機時にデータを受信可能にするため，仕様や状態遷移の考察が必要がある．

相対的にデータ通信が増加するフラッディングにおい仕様を改善する場合，現在は受信側のみビーコンを送信て電力消費の増加は必然である．しかし，RIP を応用したするという仕様になっているので，送信待機状態と受信ルーティング方式の場合，中継回数が多いノードが必要と待機状態に分ける必要がある．ノードが起動している時はなり，負荷が集中する可能性があったが，フラッディングビーコンを送信するという仕様に変更する．しかし，仕様場合は特定ノードに中継が多くなることが RIP に比べて少を改善すると状態遷移を大きく変更する必要がる．

ないので，負荷分散される．

状態遷移のみを改良する場合は送信回数の上限に達していなくても，データ送信を中止し，データ受信状態に遷移通信の信頼性

RIP を用いたルーティング方式では，基地局と目的地ノードの距離に比例して通信の成功率は低下した．さらに一年間分の実験を通して，一度も返信が確認されないノーする．このとき中止した送信データを保持するか，破棄するかは端末の性能に依存する．

参考文献[1] Hatauchi, T.: PHY and MAC Proposals for battery operated SUN, https://mentor.ieee.org/802.15/dcn/09/15-09では，各ノードがそれぞれ同一データを 5 回ずつ通信した
0285-00-004g-mac-and-phy-proposal-for-80201504gところ全てのノードからの返信を確認することができた．
for-smart-utility-networks.ppt, (May 2009).
多くの返信を確認できたノード 6 は 220 回／年，最小はノード 27 で 25 回／年である．図 6 に全てのノードについ [2] Sugiyama, Y. and Goto, K.: Design and Implementation of a Network Emulator using Virtual Network Stack,ての成功回数を示す．
Proc. of the Seventh International Symposium on Oper本研究で提案したフラッディングを用いたルーティング
ations Research and Its Applications (ISORA2008), Lec方式の今後の課題について考察する．ノード数と同一デー
ture Notes in Operations Research, Vol.8, pp. 351–358
タの再送回数には大きく関係がある．
(2008).
• ノード数:30[3] 泉井雄仁，後藤邦夫：省電力端末を用いた無線センサ• 再送回数:10
ネットワークにおける高信頼通信の提案，第 9 回科学
以上の値でパラメータを設定した場合，全てのノードが技術フォーラム講演論文集, L-005(DVD-ROM) (Sep.
送信待機状態となりビーコンを送信するノードがなくなり2010).
ドが存在した．フラッディングを用いたルーティング方式

システムがダウンした．