(57)【要約】【課題】            利己的な行為をするノードを極力低減するネットワークシステムを構築する。【解決手段】        評価対象の第１のノードSを評価する第２のノードN1は、第１のノードSから受信した入力パケットを第１のノードSから発信されたパケットと前記第１のノードSを中継したパケットに分けて記録し、それぞれのパケットの割合が特定の条件を満たした場合に、前記第１のノードSの近隣ノードを探索し、発見された近隣ノードから受信した前記第１のノードSに関する入力パケットの記録を総合して前記第１のノードSが利己的か否かを調べ、利己的であると判断した場合に前記第１のノードSに対して懲罰を与えるようにした。【選択図】          図４
2006108852.tif 000002
【特許請求の範囲】
【請求項１】
評価対象の第１のノードとこの第１のノードを評価する第２のノードとがネットワークで接続され、
前記第２のノードは前記第１のノードから受信した入力パケットを前記第１のノードから発信されたパケットと前記第１のノードを中継したパケットに分けて記録し、それぞれのパケットの割合が特定の条件を満たした場合に、前記第１のノードの近隣ノードを探索し、発見された近隣ノードから受信した前記第１のノードに関する入力パケットの記録を総合して前記第１のノードが利己的か否かを調べ、利己的であると判断した場合に前記第１のノードに対して懲罰を与えることを特徴とするネットワークシステム。
【請求項２】
前記第２のノードは前記第１のノードが利己的であると判定した場合に、前記第１のノードに対して懲罰を与えるように前記近隣ノードに依頼し、前記近隣のノードは前記第２のノードからの依頼に基づき前記第１のノードに対して懲罰を与えるようにしたことを特徴とする請求項１記載のネットワークシステム。
【請求項３】
ネットワークにおける評価対象のノードから受信した入力パケットを前記評価対象ノードから発信されたパケットと前記評価対象ノードを中継したパケットに分けて記録し、それぞれのパケットの割合が特定の条件を満たした場合に、
前記評価対象のノードの近隣ノードを探索し、発見された近隣ノードに入力パケットの記録の送信を依頼し、前記近隣ノードから受信した入力パケットの記録を総合して、前記評価対象が利己的か否かを判断し、
利己的であると判断した場合に前記評価対象のノードに対して懲罰を与えることを特徴とするノード。
【請求項４】
前記近隣ノードは、入力パケットの記録の送信を依頼されたときに、更に近隣ノードを探索し、自ノードの入力パケットの記録と近隣ノードから受信した入力パケットの記録とを、依頼したノードに対して送信することを特徴とする請求項３記載のノード。
【請求項５】
前記近隣ノードは、入力パケットの記録の送信を依頼されたときに、既に近隣ノードの入力パケットの記録を保持している場合に、該記録の内容に応じて近隣ノードに入力パケットの記録の送信を依頼することなく近隣ノードの入力パケットの記録を依頼されたノードに対して送信することを特徴とする請求項４記載のノード。
【請求項６】
評価対象の第１のノードから送信された入力パケットを、前記第１のノードを評価する第２のノードが受信するステップと
前記第２のノードが受信した入力パケットを前記第１のノードから発信されたパケットと前記第１のノードを中継したパケットに分類して記録するステップと、
前記分類して記録されたそれぞれのパケットの割合が特定の条件を満たした場合に、前記第１のノードの近隣ノードを探索するステップと、
該探索により発見された近隣ノードから前記第１のノードに関する入力パケットの記録を受信するステップと、
受信した入力パケットの記録を総合して、前記第１のノードが利己的か否かを判断するステップと、
利己的であると判断した場合に前記第２のノードが前記第１のノードに対して懲罰を与えるステップと、
を備えたことを特徴とする利己的なノードの検出方法。
【請求項７】
ネットワークにおける第１のノードを評価する第２のノードが前記第１のノードから入力パケットを受信するステップと、
前記第２のノードが前記第１のノードから受信した入力パケットを前記第１のノードから発信されたパケットと前記第１のノードを中継したパケットに分けて記録するステップと、
それぞれのパケットの割合が特定の条件を満たした場合に、前記第２のノードが前記第１のノードの近隣ノードを探索し、発見された近隣ノードに入力パケットの記録の送信を依頼するステップと、
前記近隣ノードが前記第１のノードから受信した入力パケットの記録を前記第２のノードへ送信するステップと、
前記第２のノードが前記近隣ノードからの入力パケットの記録を収集して、これらの記録を総合して、前記第１のノードが利己的か否かを判断するステップと、
前記第２のノードが利己的であると判断した場合に前記第１のノードに対して懲罰を与えるステップと
を備えたことを特徴とする利己的なノードの検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アドホックネットワークにおけるパケットを中継しない利己的なノードを検出するネットワークシステムおよびノードおよび利己的なノードの検出方法に関するものである。
【背景技術】
【０００２】
アドホックネットワークは、複数のノードが集まって自律的にネットワークを形成し、送信ノードと受信ノードが互いに通信可能領域にいない場合でも、その中間に位置するノードが中継ノードとなり、パケットを中継することで通信を可能にする技術である。アドホックネットワークにおいては、任意のノードが送信ノードや受信ノード、ならびに中継ノードと成り得る。
【０００３】
オンデマンド式のルーティングプロトコルを用いる場合、あるノードが通信を開始する時に経路探索要求メッセージを通信可能範囲にある近隣ノードに対してブロードキャストすることにより受信ノードまでの経路を探索する。経路探索要求を受信したノードは自分自身が宛先でないかあるいは受信ノードまでの経路を知らない場合、そのノードの近隣ノードに対して経路探索要求メッセージを再度ブロードキャストする。経路探索要求メッセージが中継ノードにより複数回ブロードキャストされて受信ノードあるいは受信ノードまでの経路を知っているノードに到達すると、そのノードは送信ノードに対して経路返答メッセージを送信する。
【０００４】
例えば、図1のネットワーク構成において、ノードN7からノードN12までの経路を探索する場合において、N3はN12が近隣ノードであることを知っていてその経路情報をキャッシュメモリに保存しているとき、まずN7が経路探索要求メッセージをブロードキャストして、近隣ノードN1, N9, N8がそのメッセージを受信する。経路探索要求メッセージを受信した各ノードN1, N9, N8はN12までの経路を知らないため、更に経路探索要求メッセージをブロードキャストする。なお、この場合、ノードN7はノードN1, N9, N8がそれぞれ再ブロードキャストしたメッセージを受信するが、ノードN7自身が要求したメッセージであるため破棄する。ノードN8が再ブロードキャストしたメッセージを受信するノードN3はN12までの経路を知っているため、ノードN7に対して経路がN7→N8→N3→N12である旨返答する。経路返答メッセージを受信したノードN7は以後、その通知された経路を使用してノードN12にパケットを送信する。
【０００５】
アドホックネットワークでは、中継ノードがネットワークの形成において重要な役割を果たしている。しかしながら、各ノードはバッテリーで稼動していることが多いため、他のノードのパケットを中継する行為は稼働時間を短くする原因となる。また、パケットを中継するか否かの判断は各ノードに任されている。そのため利己的なノードが自分宛以外のパケットを中継しないことにより、アドホックネットワークの運用が妨げられるという問題があった。
【０００６】
このような利己的なノードに対して、MOBICOM 2000において非特許文献１では、中継を依頼したノードが、中継ノードが次のノードに対して送信するパケットを傍受することによりパケット送信の確認を行なうpassive acknowledgementの仕組みを用いて、パケットを中継しない利己的なノードを検出する方式を提案している。
【非特許文献１】論文「Mitigating routing misbehavior in mobile ad hoc networks」
【発明の開示】
【発明が解決しようとする課題】
【０００７】
passive acknowledgementを利用するパケット中継の確認方式は、次のノードに対する通信が傍受できるという前提に立っているため、任意のノードから次のノードに対する通信の電波に指向性を持たせている場合や、各ノードが電波の送信電力を制御している場合には、パケットを中継していることの確認ができない場合がある。また、経路探索を行なう際、ネットワーク上に経路探索メッセージがあふれないように、同一の経路探索メッセージを異なる経路から受信した場合、後で受信したメッセージの転送は行なわないことが一般的である。そのため、必ずしもパケットを中継しないこと自体が利己的な行為とは限らない。このようにネットワークの運用を円滑に行なうためには、利己的なノードを検出するという課題がある。
【０００８】
本発明は、上記の課題を解決するためになされたもので、passive acknowledgementによる利己的なノードの検出が有効でないネットワークにおいても、自分宛以外のパケットを中継しない利己的なノードを検出することを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係るネットワークシステムは、評価対象の第１のノードとこの第１のノードを評価する第２のノードとがネットワークで接続され、
前記第２のノードは前記第１のノードから受信した入力パケットを前記第１のノードから発信されたパケットと前記第１のノードを中継したパケットに分けて記録し、それぞれのパケットの割合が特定の条件を満たした場合に、前記第１のノードの近隣ノードを探索し、発見された近隣ノードから受信した前記第１のノードに関する入力パケットの記録を総合して、前記第１のノードが利己的か否かを調べ、利己的であると判断した場合に前記第１のノードに対して懲罰を与えるようにしたものである。
【発明の効果】
【００１０】
この発明によれば、近隣ノードにより検出された利己的なノードは、懲罰により一定期間ネットワークを使用できなくなってしまうため、利己的なノードが発信するパケットによってネットワークの帯域を使用されることがなく、その代わりに他のノードが有効に帯域を使用できるという効果がある。また、利己的な行為を行なうと懲罰によりネットワークが使用できなくなってしまうため、利己的な行為を行なうノードの出現が抑制されるという効果もある。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
利己的なノードの検出法を図によって説明する。
図1は、本発明の実施の形態1におけるネットワーク構成の例である。ノード間を結ぶ実線はリンクを示し、ノードが直接通信できることを示している。直接リンクにより接続されていないノード同士の通信は、中間に位置するノードがパケットを中継することにより行なう。
図2は、パケットの構造を模式的に示したものである。パケットには、発信元を示すソースアドレスと受信先を示すデスティネーションアドレス、及びパケットが送信しようとするデータが含まれる。
図3は、ネットワークにおける各ノードの構成を示すブロック図である。図3において、各種演算やノードの制御を行うCPUと、ノードが自律的に動作するための各種プログラム類や各種データ類を記憶するメモリと、キーボードやマウスなどのユーザとのインタフェースとなるUI部と、パケット監視部31と、ノード判定部32と、他ノードとの間の通信を行う通信部とが共通バスを介して接続されており、通信部はアンテナを介して他ノードとパケット通信を行う。パケット監視部31は受信したパケットを監視してノードＳから発信されたものか、ノードＳを中継して来たものかを分類し、ノード判定部３２に分類した種類を通知する。ノード判定部はパケット監視部31により通知されたパケットの種類に従って、カウンタNSもしくはNRの値を１つ増やす。
ここで、ノードN1がノードSを監視する場合について、図4及び図5のフローチャートを用いて説明する。監視に際して、ノードN1と直接リンクにより接続している近隣ノードであるS、N7、N2を監視することを前提とする。ノードN1に到着したパケットがノードSからのものか、ノードN7からのものか、ノードN2からのものかの識別は下位のレイヤで実行される。ノードN1において、パケット監視部31はノードSからパケットを受信する毎に、この受信したパケットを調べて、そのパケットがノードSから発信されたものか、ノードSを中継して来たものかに分類して、ノード判定部32に分類した種類を通知する。ノード判定部32はパケット監視部31からこの通知を受けると、分類毎にカウンタNSもしくはNRを１つ増やしてパケット数を記録する。ここでNSはノードSから発信されたパケット数を、NRはノードSを経由してきたパケット数を示す。
【００１２】
ノードSが利己的なノードであると疑うための一次判定の手順を図4のフローチャートを用いて説明する。ノードN1はS101でNS及びNRに0を設定して初期化する。S102でノードSからパケットが送信されるのを待ち、受信できたならば、S103で受信したパケットがノードSから発信されたものかノードSを中継してきたものかを当該パケットのソースアドレスを調べて判定する。ソースアドレスがノードSであればそのパケットはノードSから発信されたものであり、ノードS以外であればノードSを中継してきたものであることを示す。判定結果に従い、受信したパケットがノードSから発信されたものであればNSの値を1増やし、ノードSを中継してきたものであればNRの値を1増やす。監視を開始した直後は、利己的なノードでなくても別の条件により一時的に中継パケットに比べて発信パケットの数が多くなることがあるため、即断による誤判定を防ぐ目的でS106で一定以上のパケットを受信するまで判定を開始しないための処理を行なう。
【００１３】
一定以上のパケットを受信後には、利己的なノードと判断するための条件SRを次の式を用いて計算する。
SR = NS / (NS + NR)
SRは利己的な度合いを表わし、例えば、SRが1の場合、パケットを全く中継しておらず、そのノードが利己的である可能性が高いことを示す。SRが0の場合、そのノード自身が発信するパケットはなく、全て中継されたパケットであり、そのノードが利己的である可能性はないことを示す。S107では、SRと定数SR1を比較する。SRがSR1未満であれば、更にパケットの受信を継続し、SR1以上であれば、S108においてそのノードが本当に利己的なノードであるか否かを確かめるために利己的なノードの二次判定へと進む。例えば、NS=290, NR=10で、SR1=0.9とする場合、SR=0.97となるため、二次判定へと進む。利己的なノードの二次判定の詳細については後述する。S109において利己的なノードの二次判定の結果を判断し、利己的なノードと判定されれば、S110においてノードSに対して懲罰を実施する。懲罰の例として、一定期間ノードSからの経路探索要求に対して応答しないことにより、ノードSからのパケットを転送しないということが挙げられる。
【００１４】
利己的なノードの二次判定の詳細について図5のフローチャートを用いて説明する。ここでは、ノードN1が隣接するノードSが本当に利己的なノードか否かを確かめるためにノードSのN1以外の近隣ノードであるN2、N3、N4、N5から記録を収集し、これらの記録から判断する様子について説明する。ノードN1は、NS=290, NR=10である場合、S201において図6に示される評価リストにノードとしてN1、データとして (290, 10)、時刻として現在時刻T1であるエントリを追加する。S202において、ノードSまでの経路探索要求メッセージをブロードキャストすることによってノードSの近隣ノードを探索する。すなわち経路返答メッセージ中に含まれるノードSまでの経路の1つ手前のノードが近隣ノードである。S203において近隣ノードが発見されたかどうか判断する。発見されなかった場合には、処理を終了する。発見された場合には、S204において発見した近隣ノードに対して評価リストとともに評価データ要求メッセージを送信する。S205とS204において、発見された近隣ノード全てに対して評価データを要求する。S204において評価データを要求された各近隣ノードは、S301において評価データ要求を受信する。S302では受信したメッセージに含まれる評価リストに対して評価データであるNS及びNRを追加する。例えば、ノードN2はNS=250, NR=7である場合、ノードとしてN2、データとして(250, 7)、時刻として現在時刻T2であるエントリを追加する。
【００１５】
S303ではさらに近隣ノードを探索する。S304で評価リストに載っていない近隣ノードが発見されたかどうか判断する。例えば、ノードN2では既に評価リストに載っているノードN1以外のノードを探し、ノードN4が近隣ノードとして発見される。ノードが発見された場合は、S305において近隣ノードに評価データ要求メッセージを送信する。例えば、上記のように近隣ノードN4が発見された場合は、このノードN4に対して評価データ要求メッセージを送信する。S306とS305を繰り返して発見された近隣ノードのうち評価リストに載っていない全てのノードに対して評価データ要求メッセージを送信する。
【００１６】
S307では、近隣ノードから評価データを受信したかチェックする。例えば、ノードN4から評価データを受信した場合は、S308で評価リストを更新する。具体的にはノードが保持している評価リストと受信した評価リストの内容を比べて、受信した評価リスト中に保持している評価リスト中に存在しないノードがある場合は、エントリを追加し、ノードが重複している場合は、時刻が新しいエントリを有効とする。S307とS308を繰り返して評価データを全て受信した後、S309において評価データを要求元であるノードN1に送信する。ノードN1はS206において近隣ノードからの評価データの受信を行ない、S207ではS306と同様に評価リストの更新を行なう。S206とS207を繰り返して評価データを全て受信した後、S209において、評価リスト中の全エントリのデータNS及びNRを合計してNSSUM及びNRSUMを計算する。S210においてNSSUM及びNRSUMから次の式に従ってSRSUMを求める。
SRSUM = NSSUM / (NSSUM + NRSUM)
このように、全エントリの評価データを合計することにより判定条件SRSUMは平均化されて偏りがなくなるため判定条件SRよりも判定の精度が向上する。
さらに、このSRSUMを定数SR2と比較して、SR2以上である場合、ノードSを利己的なノードであると判定する。
【００１７】
即ち、ノードN1がノードSに対する評価を行なう場合、評価データ要求メッセージは、ノードN1からノードN2及びノードN3に対して送信される。評価データ要求メッセージを受信したノードN2及びノードN3は、それぞれノードN4とノードN5に対して評価データ要求メッセージを送信する。評価データ要求メッセージを受信したノードN4及びノードN5は、それぞれノードN5とノードN4に対して評価データ要求メッセージを送信する。ここでノードN4及びノードN5は近隣ノードを探索するが、新たな近隣ノードは見付からないため、評価データを要求元に返信する。評価データは評価データ要求メッセージがたどった経路を逆方向にたどって最終的にノードN1に近隣ノードN1, N2, N3, N4, N5の評価データが格納された評価リストと共に返信される。各近隣ノードN1, N2, N3, N4, N5の評価データを(290, 10), (250, 7), (200, 10), (280, 11), (275, 13)とし、SR2=0.8としたとき、SRSUM =0.96であるので利己的なノードと判定することになる。
【００１８】
一方、ネットワークの端のノードを評価する場合、例えばノードN13がネットワークの端のノードN14を評価する場合、ノードN14はノードN13へのリンク以外にリンクを持たないため、パケットを中継することはない。そのため利己的でなくても、利己的なノードの一次判定により、利己的なノードと判定されてしまうが、二次判定の処理において、近隣ノードを発見できないため、利己的なノードと判定せずに終了するため問題はない。
【００１９】
なお、本実施の形態1において、利己的なノードであると判定するためのデータとしてパケット数を使用していたが、データとしてバイト数や一定時間あたりのパケット数などパケット数以外のデータを用いても同様の効果を得られる。
【００２０】
実施の形態２.
実施の形態1において、評価データ要求メッセージを受信した近隣ノードは、さらに他の近隣ノードに対して評価データ要求メッセージを送信する。その場合、複数のノードが評価要求メッセージを送信するたびに、全ての近隣ノードが評価要求データを繰り返し送信することになる。
本実施の形態においては、以前の二次判定によって評価リストを既に保持している場合、新たな評価要求メッセージを受信したときに、以前の評価リストを再利用し、一定時刻以後に更新されているエントリに対しては、評価データの要求を省略する。このことによって、複数の近隣ノードが判定を行なう場合に、ネットワークを流れるメッセージ量が減少すると共に、判定に必要な時間を減少させることができる。
【００２１】
実施の形態３.
実施の形態1では、あるノードを利己的なノードと判定した場合、一次判定を行なったノードのみが懲罰を与えるようにした。そのため、利己的なノードの近隣ノードが多数存在する場合、利己的なノードは懲罰を与えているノード以外の近隣ノードを使用してパケットを送信できるという問題が発生する場合がある。
本実施の形態においては、二次判定の結果により利己的なノードと判定したときに、一次判定を行なったノードが評価リストのエントリを基に、各近隣ノードに評価結果を送信し、評価結果を受信した近隣ノードも利己的なノードに懲罰を与えることとする。このことにより、利己的なノードの近隣ノード全体が同時に懲罰を実施することができるため、懲罰の効果を高めることができる。
【００２２】
上述の実施の形態において、利己的なノードと判定するための定数SR1及びSR2の値は固定された値を用いていたが、一次判定で利己的なノードと判定したが二次判定で利己的なノードと判定されなかった場合にSR1の値を増加させ、二次判定で利己的なノードと判定した場合にSR1及びSR2の値を減少させても良い。
【００２３】
上述の実施の形態において、懲罰として一定期間ノードSからのパケットを転送しないとしていたが、懲罰を実施した回数に応じて懲罰の継続時間を長くする、または永久にパケットを転送しないようにしても良い。
【図面の簡単な説明】
【００２４】
【図１】アドホックネットワークの構成例を示す図である。
【図２】パケットの構造を示す図である。
【図３】各ノードの構成を示すブロック図である。
【図４】利己的なノードの一次判定処理を示すフローチャートである。
【図５】利己的なノードの二次判定処理を示すフローチャートである。
【図６】利己的なノードの評価リストを示す図である。
【符号の説明】
【００２５】
31  パケット監視部、32  ノード判定部、S  利己的なノード、N1〜N15  アドホックネットワークを構成するノード。
【図１】
2006108852.tif 000003
【図２】
2006108852.tif 000004
【図３】
2006108852.tif 000005
【図４】
2006108852.tif 000006
【図５】
2006108852.tif 000007
【図６】
2006108852.tif 000008