JP5287373B2 - 通信装置及び通信処理方法 - Google Patents

通信装置及び通信処理方法 Download PDF

Info

Publication number
JP5287373B2
JP5287373B2 JP2009053576A JP2009053576A JP5287373B2 JP 5287373 B2 JP5287373 B2 JP 5287373B2 JP 2009053576 A JP2009053576 A JP 2009053576A JP 2009053576 A JP2009053576 A JP 2009053576A JP 5287373 B2 JP5287373 B2 JP 5287373B2
Authority
JP
Japan
Prior art keywords
communication device
identifier
data packet
adjacent
data
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.)
Expired - Fee Related
Application number
JP2009053576A
Other languages
English (en)
Other versions
JP2010212758A (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 JP2009053576A priority Critical patent/JP5287373B2/ja
Publication of JP2010212758A publication Critical patent/JP2010212758A/ja
Application granted granted Critical
Publication of JP5287373B2 publication Critical patent/JP5287373B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本技術は、通信経路を通信状態に応じて変更するための通信技術に関する。
例えば、図1に示すように、送信元ノードaから宛先ノードGWまでパケットを送信するケースを考える。なお、隣接ノード同士は例えば無線通信によって互いに通信を行い、各隣接ノード間でパケットを転送することによって特定のノード間で通信を行うようなアドホックネットワークを想定する。また、パケットのヘッダには、送信元ノードaによって決定された許容ホップ数が含まれる。許容ホップ数は、このパケットを転送できる限界回数を示しており、1回転送する毎に1デクリメントされる。
この場合、最初に送信元ノードaから、隣接するノードbにパケットが送信される。パケットを受信したノードbでは、宛先ノードGWへパケットを送信するために、ノードeの方向にパケットを送信する経路と、ノードcの方向にパケットを送信する経路とが把握されるが、ここではその時点で有利とされたノードcにパケットを転送するものとする。ノードcは、パケットを受信すると、宛先ノードGWへパケットを送信するために隣接するノードdを特定し、パケットを転送する。その後、幾つかのノードを経由してパケットを受信したノードfでは、宛先ノードGWへパケットが到達しないにもかかわらず許容ホップ数が「0」となってしまって初めて、従来技術では本経路が失敗であることが分かる。
この失敗を検出した後、従来技術では、1ステップ前の状態に戻って、他の経路で可能かどうかを1つずつ確認する。すなわち、1ステップ前のノードで、全ての選択肢について可能であるかどうかを試してみて、全ての選択肢で失敗であることが分かると、さらに1ステップ前のノードに戻って、同じような確認を行う。従って、無駄な経路探索を繰り返す可能性がある。図1のような場合には、ノードbで他の経路であるノードeの方にパケットを送信すれば宛先ノードGWに届くわけであるが、このノードbに失敗が通知されるまでには相当な時間がかかってしまう。従って、送信元ノードaが多数のパケットを送信する場合には、多数のパケットがノードbからノードcへ転送され、多数のパケットについて同じような処理が繰り返され、パケットの伝送効率が非常に悪くなってしまう。また、無線の帯域や処理リソースが浪費されることにもなる。
また、複数の中継点の先にある受信指定先からパケット受信の失敗信号を送信源が得て送信源がパケットを再送信する場合には、送信源まで失敗信号を戻すのは非効率であるため、受信指定先の隣に位置する中継点がパケットを保持して失敗信号を受信したら送信源ではなく、中継点がパケットを送信するという技術は存在している。しかしながら、失敗を検出するタイミングが遅くなれば、多数のパケットを再送しなければならない点は同じである。
さらに、隣接ノード間でデータ受信の成功を通知するパケットとしてACKパケットが従来から用いられているが、通常ACKパケットは隣接ノード間でのみやりとりされるので、経路上それらより前のノードには通知されない。従って、ACKパケットを受信できなかったノードは、そのノードでのみ経路の設定変更を行うが、経路上それより前のノードでは何らの変更も行われない。また、従来から存在するend-to-end ACKパケットを用いるという手法があるが、このend-to-end ACKパケットは、パケットの中継経路を遡ることを保障していない。すなわち、パケットを中継した中継ノードでは直接の通信相手が受信に失敗しない限り経路の変更を行うことはない。従って、再度同じ宛先のパケットを受信した場合には、同じ相手に送信してしまい、ネットワーク全体としては無駄なデータ送信が行われることになる。
特開2006−121207号公報
従って、本技術の目的は、ネットワークにおけるデータ伝送効率を向上させる新規な技術を提供することである。
本通信処理方法は、宛先通信装置の識別子と当該宛先通信装置へ送信する場合に送信すべき隣接通信装置の識別子と当該隣接通信装置への送信の評価値と当該隣接通信装置を経由する場合に宛先通信装置までに必要なホップ数とを含む隣接データを格納するルーティングデータ格納部を、ある隣接通信装置からデータパケットを受信した場合当該データパケットに含まれる宛先通信装置の識別子で検索して評価値に基づき隣接データを抽出し、当該隣接データに含まれるホップ数が上記データパケットに含まれるホップ数以上であるか判断するステップと、抽出された隣接データに含まれるホップ数が上記データパケットに含まれるホップ数以上である場合に、上記データパケットに含まれる宛先通信装置の識別子及び送信元通信装置の識別子と上記データパケットの識別子とを含み、上記データパケットの直接の送信元通信装置である隣接元通信装置の識別子が送信先通信装置の識別子として指定され且つ上記データパケットの自通信装置以降の送信が不可能であることを通知する異常通知パケットを生成し、送信先通信装置に送信するステップとを含む。
ネットワークにおけるデータ伝送効率を向上させることができる。
図1は、従来技術の問題点を説明するための図である。 図2は、ルーティングテーブルのフォーマット例を示す図である。 図3は、データ管理テーブルのフォーマット例を示す図である。 図4は、データパケットのフォーマット例を示す図である。 図5は、異常通知パケットのフォーマット例を示す図である。 図6は、ACKパケットのフォーマット例を示す図である。 図7は、送信元ノードaから宛先ノードGWにデータパケットを送信する際に、ノードbでノードc方向に転送されるケースを示す図である。 図8は、ノードaからノードbへ送信されるデータパケットのヘッダを示す図である。 図9は、ノードbからノードaへ送信されるACKパケットを示す図である。 図10は、ノードbのルーティングテーブルのレコードを示す図である。 図11は、ノードbのデータ管理テーブルのレコードを示す図である。 図12は、ノードbからノードcへ送信されるデータパケットのヘッダを示す図である。 図13は、ノードcからノードbへ送信されるACKパケットを示す図である。 図14は、ノードcのルーティングテーブルのレコードを示す図である。 図15は、ノードcのデータ管理テーブルのレコードを示す図である。 図16は、ノードcからノードdへ送信されるデータパケットのヘッダを示す図である。 図17は、ノードdからノードcへ送信されるACKパケットを示す図である。 図18は、ノードdのルーティングテーブルのレコードを示す図である。 図19は、ノードdから異常通知パケットを送信するケースを示す図である。 図20は、ノードdからノードcへ送信される異常通知パケットを示す図である。 図21は、ノードcからノードbへ送信される異常通知パケットを示す図である。 図22は、ノードbにおけるルーティングテーブルの更新を説明するための図である。 図23は、2番目のデータパケットをノードaからノードGWへ送信するケースを示す図である。 図24は、ノードaからノードbへ送信される2番目のデータパケットのヘッダを示す図である。 図25は、ノードbからノードaへ送信されるACKパケットを示す図である。 図26は、ノードbのデータ管理テーブルのレコードを示す図である。 図27は、ノードbからノードeへ送信される2番目のデータパケットのヘッダを示す図である。 図28は、ノードeからノードbへ送信されるACKパケットを示す図である。 図29は、ノードeのルーティングテーブルのレコードを示す図である。 図30は、ノードeのデータ管理テーブルのレコードを示す図である。 図31は、ノードeからノードGWへ送信されるデータパケットのヘッダを示す図である。 図32は、ノードGWからノードeへ送信されるACKパケットを示す図である。 図33は、通信装置の機能ブロック図である。 図34は、通信装置のメインの処理フローを示す図である。 図35は、通信装置のメインの処理フローを示す図である。 図36は、データパケットの受信処理の処理フローを示す図である。 図37は、データパケットの受信処理の処理フローを示す図である。 図38は、異常通知パケットの受信処理の処理フローを示す図である。 図39は、ACKパケットの受信処理の処理フローを示す図である。 図40は、データパケットの再送処理の処理フローを示す図である。 図41は、コンピュータの機能ブロック図である。
[本実施の形態の概要]
本実施の形態では、通信装置である各ノードにおいて図2に示すようなルーティングテーブルを予め保持して管理するものとする。図2の例では、パケットの最終目的地である宛先ノードの識別子(アドレスの場合もある。以下同じ。)と、その宛先ノードに送信する際にパケットを次に送信する相手のノードである隣接先ノードの識別子と、本経路の評価値(本実施の形態では小さい方が評価が高い)と、本経路で宛先ノードまでに必要とされるホップ数とが登録されるようになっている。
また、各ノードにおいて図3に示すようなデータ管理テーブルを保持して管理するものとする。データ管理テーブルのレコードは、他のノードからデータパケットを受信した際に生成され、以下で具体的に述べるタイミングにおいて更新されたり、削除される。図3の例では、データパケットの送信元ノードの識別子と、データパケットの識別子(例えばシリアル番号)であるFIDと、データパケットの宛先ノードの識別子と、データパケットの直接の送信元ノードである隣接元ノードの識別子と、データパケットの送信先候補である第1の隣接ノードの識別子と、当該第1の隣接ノードへデータパケットの送信を行ったか否かを表すフラグF1(使用フラグとも呼ぶ。以下同じ。)と、データパケットの送信先候補である第2の隣接ノードの識別子と、当該第2の隣接ノードへデータパケットの送信を行ったか否かを表すフラグF2と、データパケットの送信先候補である第3の隣接ノードの識別子と、当該第3の隣接ノードへデータパケットの送信を行ったか否かを表すフラグF3と、ACKパケットが返信されるまでの期限時刻であるTTW1と、ACKパケットが返信された後で本レコードを削除するまでの期限時刻であるTTW2とが含まれる。
また、データパケットのヘッダ・フォーマットを図4に示す。図4の例では、宛先ノードの識別子と、直接の送信元ノードである隣接元ノードの識別子と、直接の送信先ノードである隣接先ノードの識別子と、今後の経路で許容されるホップ数(Hop数)と、データパケットを最初に送信したノードである送信元ノードの識別子と、データパケットの識別子(例えばシリアル番号)であるFIDとを含む。
さらに、異常通知パケットのフォーマットを図5に示す。図5の例では、宛先ノードの識別子と、隣接先ノードの識別子と、送信元ノードの識別子と、データパケットの識別子であるFIDとを含む。
また、ACKパケットのフォーマットを図6に示す。図6の例では、宛先ノードの識別子と、隣接先ノードの識別子と、送信元ノードの識別子と、データパケットの識別子であるFIDとを含む。
このような前提の下、例えば図7のようなネットワークにおいて、送信元ノードaから宛先ノードGWへデータパケットを送信する際の処理についてその概要を説明する。図7では、ノードa乃至eとノードGWとを含むネットワークが構築されている。但し、図7で概略が示されているように、ノードaからノードb、ノードbからノードcとノードe、ノードeからノードGW、ノードcからノードdに経路が設定されているものとする。
まず、送信元ノードaは、図8に示すようなヘッダを有するデータパケットをノードbに送信する(ステップ(1))。図8のデータパケットでは、宛先ノードの識別子は「GW」であり、隣接元ノードの識別子は「a」であり、隣接先ノードの識別子は「b」であり、ホップ数は「4」であり、送信元ノードの識別子は「a」であり、FIDは「1」である。ノードbは、このようなデータパケットを受信できれば、図9に示すようなACKパケットを送信元ノードaへ返信する(ステップ(2))。図9のACKパケットでは、宛先ノードの識別子は「GW」であり、隣接先ノードの識別子は「a」であり、送信元ノードの識別子は「a」であり、FIDは「1」である。これによって送信元ノードaは、どのデータパケットについてのACKパケットであるかを特定できる。
次に、ノードbは、自身のルーティングテーブルに基づき、データパケットの転送先である隣接先ノードの識別子を特定する。具体的には、宛先ノードの識別子「GW」でルーティングテーブルを検索すると、図10に示すような2つのレコードが抽出される。すなわち、隣接先ノードが「e」のレコードと、隣接先ノードが「c」のレコードとが得られる。本実施の形態では、評価値が最小のレコードを採用する。具体的には、隣接先ノードとしてはノード「c」が選択される。ここでホップ数が足りるかを確認する。具体的に、ノードcの場合に、さらに必要なホップ数は「4」であって、受信したデータパケットのホップ数が「4」であるから、ノードcにデータパケットを送信することができる。
ノードbは、さらにデータ管理テーブルに図11に示すようなレコードを登録する。本レコードは、送信元ノードの識別子として「a」と、データパケットの識別子FIDとして「1」と、宛先ノードの識別子として「GW」と、隣接元ノードの識別子として「a」と、第1の隣接ノードの識別子として「c」と、第1の隣接ノードについてのフラグF1として「1」と、第2の隣接ノードの識別子として「e」と、第2の隣接ノードについてのフラグF2として「0」とが登録されている。送信元ノードの識別子から隣接元ノードの識別子まではデータパケットのデータのコピーであり、第1及び第2の隣接ノードの識別子についてはルーティングテーブルから抽出されたデータである。なお、TTW1及びTTW2については省略している。
次に、ノードbは、ノードcに、図12に示すようなヘッダを有するデータパケットを送信する(ステップ(3))。図8のデータパケットのヘッダから図12のデータパケットのヘッダへは、隣接元ノードの識別子が「a」から「b」に、隣接先ノードの識別子が「b」から「c」に、ホップ数が「4」から「3」に変更されている。
これに対して、ノードcは、ノードbに対して、図13に示すようなACKパケットを送信する(ステップ(4))。ACKパケットは、どのデータパケットについてのACKパケットであるかを特定するために、宛先ノードの識別子「GW」と、送信元ノードの識別子「a」と、データパケットのFID「1」とを含み、さらにACKパケットの直接の送信先である隣接先ノードの識別子「b」を含む。
次に、ノードcは、自身のルーティングテーブルに基づき、データパケットの転送先である隣接先ノードの識別子を特定する。具体的には、宛先ノードの識別子「GW」でルーティングテーブルを検索すると、図14に示すようなレコードが抽出される。すなわち、隣接先ノードが「d」のレコードが得られる。1レコードしか抽出されなければ、そのレコードの隣接先ノードを選択する。また、その隣接先ノードdに送信した時に必要なホップ数「3」と、受信したデータパケットのホップ数「3」とを比較すると、必要なホップ数「3」=許容ホップ数「3」であるから、本データパケットを隣接先ノードdに送信することができる。
そうすると、ノードcは、データ管理テーブルに、図15に示すようなレコードを登録する。本レコードは、送信元ノードの識別子として「a」と、データパケットの識別子FIDとして「1」と、宛先ノードの識別子として「GW」と、隣接元ノードの識別子として「b」と、第1の隣接ノードの識別子として「d」と、第1の隣接ノードについてのフラグF1として「1」とが登録されている。送信元ノードの識別子から隣接元ノードの識別子まではデータパケットのデータのコピーであり、第1の隣接ノードの識別子についてはルーティングテーブルから抽出されたデータである。なお、TTW1及びTTW2については省略している。
そして、ノードcは、ノードdに、図16に示すようなヘッダを有するデータパケットを送信する(ステップ(5))。図12のデータパケットのヘッダから図16のデータパケットのヘッダへは、隣接元ノードの識別子が「b」から「c」に、隣接先ノードの識別子が「c」から「d」に、ホップ数が「3」から「2」に変更されている。
これに対して、ノードdは、ノードcに対して、図17に示すようなACKパケットを送信する(ステップ(6))。ACKパケットは、どのデータパケットについてのACKパケットであるかを特定するために、宛先ノードの識別子「GW」と、送信元ノードの識別子「a」と、データパケットのFID「1」とを含み、さらにACKパケットの直接の送信先である隣接先ノードの識別子「c」を含む。
次に、ノードdは、自身のルーティングテーブルに基づき、データパケットの転送先である隣接先ノードの識別子を特定する。具体的には、宛先ノードの識別子「GW」でルーティングテーブルを検索すると、図18に示すようなレコードが抽出される。すなわち、隣接先ノードが「f」のレコードが得られる。1レコードしか抽出されなければ、そのレコードの隣接先ノードを選択する。また、その隣接先ノードfに送信した時に必要なホップ数「3」と、受信したデータパケットの許容ホップ数「2」とを比較すると、必要なホップ数「3」>許容ホップ数「2」であるから、本データパケットを隣接先ノードfに送信することができないことが分かる。すなわちノードdが異常検知ノードとなる。
これ以降の処理については図19に沿って説明する。具体的には、ノードdは、図16に示したデータパケットのヘッダから図20に示すような異常通知パケットを生成して、ノードcに送信する(ステップ(7))。図20の異常通知パケットは、データパケットの宛先ノードの識別子「GW」と、データパケットの送信元ノードの識別子「a」と、データパケットの識別子FID「1」とによりデータパケットを特定すると共に、データパケットの直接の送信元ノードの識別子であって且つ異常通知パケットの送信先ノードの識別子である隣接先ノードの識別子「c」が含まれる。
ノードcは、ノードdから異常通知パケットを受信すると、データ管理テーブルを、異常通知パケットに含まれる、データパケットの送信元ノードの識別子「a」とデータパケットの識別子FID「1」で検索して、該当レコード(図15)を特定する。そして、特定されたレコードに、使用フラグが「0」である隣接ノードが存在するか判断するが、図15の例では存在しないので、異常通知パケットを転送する。具体的には、図21のような異常通知パケットを生成して、ノードbに送信する(ステップ(8))。図21の異常通知パケットは、図20と比較すると、隣接先ノードの識別子が「c」から「b」に変更されている部分以外は同じである。
ここで、ノードbは、ノードcから異常通知パケットを受信すると、データ管理テーブルを、異常通知パケットに含まれる、データパケットの送信元ノードの識別子「a」とデータパケットの識別子FID「1」で検索して、該当レコード(図11)を特定する。そして、特定されたレコードに、使用フラグが「0」である隣接ノードが存在するか判断するが、隣接ノード「e」についての使用フラグF2が「0」となっていることが特定される。そうすると、ノードbは、ルーティングテーブルを、宛先ノードの識別子「GW」と使用フラグが「1」となっている隣接ノードの識別子「c」で検索して、該当するレコードを特定すると共に、当該レコードにおける評価値に例えば「10」を足して、宛先ノード「GW」について隣接ノード「c」が選択されにくくする。この処理によって、図22のようなルーティングテーブルが得られる。隣接ノード「c」についての評価値が「3」から「13」となって、隣接ノード「e」についての評価値「4」よりも大きくなって、次回は隣接ノード「e」の方が優先されるようになる。
ノードbは、ここでステップ(1)で受信しステップ(3)で送信したデータパケットについての処理を終了する。すなわち、ノードbでは、同じ宛先へのデータパケットを受信したとしても異なる経路に転送できる可能性があるので、異常通知パケットを転送することなく、次に受信したデータパケットから異なる経路に転送するようにする。なお、今回のデータパケット、すなわちFIDが「1」のパケットについては、宛先ノード「GW」には到達しないが、他の手段によって例えば宛先ノード「GW」から未達パケットの通知を受けた際に、これから述べる新たな経路で送信し直すものとする。
この後、FIDが「2」であるデータパケットを送信する際の処理については図23に沿って説明する。ノードaは、図24に示すようなヘッダを含むデータパケットを、ノードbに対して送信する(ステップ(10))。図24に示したデータパケットのヘッダは、FIDが「2」であること以外はステップ(1)で送信したデータパケットのヘッダと同じである。
ノードbは、ノードaからデータパケットを受信すると、当該データパケットに対して図25に示すようなACKパケットをノードaに返信する(ステップ(11))。図25のACKパケットは、データパケットの宛先ノードの識別子「GW」と、データパケットの送信元ノードの識別子「a」と、データパケットの識別子FID「2」と、ACKパケットの直接の送信先ノードの識別子である隣接先ノードの識別子「a」とを含む。
さらに、ノードbは、データパケットに含まれる宛先ノードの識別子「GW」でルーティングテーブルを検索して、該当するレコードを抽出する。具体的には、図22に示すようなレコードが抽出される。上で述べたように、隣接先ノード「e」についてのレコードと、隣接先ノード「c」についてのレコードとが抽出されるが、評価値は最初のデータパケット送信時とは異なり、隣接先ノード「e」の方が評価値が低い値となり優先度が上がっている。隣接先ノード「e」のレコードを選択して、そのホップ数「2」と、受信したデータパケットの許容ホップ数「4」と比較すると、隣接先ノード「e」にデータパケットを送信しても問題ない。従って、今回のデータパケットの隣接先ノードを「e」として特定する。
さらに、ノードbは、受信したデータパケットと、ルーティングテーブルから抽出されたレコードとから、データ管理テーブルに図26に示すようなレコードを登録する。図26の例では、データパケットの送信元ノードの識別子「a」と、データパケットの識別子FID「2」と、データパケットの宛先ノードの識別子「GW」と、データパケットの直接の送信元ノードである隣接元ノードの識別子「a」と、第1の隣接ノードの識別子「e」と、第1の隣接ノードについてのフラグF1「1」と、第2の隣接ノードの識別子「c」と、第2の隣接ノードについてのフラグF2「0」とが含まれる。1回目のデータパケットについてのレコード(図12)と比較すると、FIDが異なっている点だけではなく、第1の隣接ノードと第2の隣接ノードの順番が入れ替わっている。これは、隣接ノード「c」についての評価値が増加させられて優先度が低くなったためである。
その後、ノードbは、受信データパケットのヘッダを、図27に示すようなヘッダに変更した上で、ノードeに送信する(ステップ(12))。図27の例では、図24のデータパケットのヘッダから、隣接元ノードの識別子が「a」から「b」に、隣接先ノードの識別子が「b」から「e」に、ホップ数が「4」から「3」に変更されている。
ノードeは、ノードbからデータパケットを受信すると、図28に示すようなACKパケットを返信する(ステップ(13))。図28の例では、データパケットの宛先ノードの識別子「GW」と、データパケットの送信元ノードの識別子「a」と、データパケットの識別子FID「2」と、ACKパケットの直接の送信先ノードの識別子である隣接先ノードの識別子「b」とを含む。
ノードeは、ルーティングテーブルを、データパケットの宛先ノードの識別子「GW」で検索して該当レコードを抽出する。例えば図29のようなレコードが抽出される。ここでは、隣接先ノードの識別子も宛先ノードの識別子もノード「GW」であるレコードのみが抽出されたものとする。そしてこのレコードのホップ数は「1」であり、データパケットの許容ホップ数「3」と比較すると、隣接先ノード「GW」に送信できることが分かる。
そうすると、ノードeは、受信データパケットと、ルーティングテーブルからの抽出レコードとから、データ管理テーブルに図30に示すようなレコードを登録する。図30の例では、データパケットの送信元ノードの識別子「a」と、データパケットの識別子FID「2」と、データパケットの宛先ノードの識別子「GW」と、データパケットの直接の送信元ノードである隣接元ノードの識別子「b」と、第1の隣接ノードの識別子「GW」と、第1の隣接ノードについてのフラグF1「1」とが含まれる。
そして、ノードeは、図31に示すようなヘッダを含むデータパケットを、宛先ノードGWに送信する(ステップ(14))。図31の例では、図27のデータパケットのヘッダから、隣接元ノードの識別子が「b」から「e」に、隣接先ノードの識別子が「e」から「GW」に、ホップ数が「3」から「2」に変更されている。
これに対して、ノードGWは、ノードeからデータパケットを受信すると、図32に示すようなACKパケットを返信する(ステップ(15))。図32の例では、データパケットの宛先ノードの識別子「GW」と、データパケットの送信元ノードの識別子「a」と、データパケットの識別子FID「2」と、ACKパケットの直接の送信先ノードの識別子である隣接先ノードの識別子「e」とを含む。
このような処理を実施することによって、ホップ数で早期にデータパケットの宛先ノードへの未達を検出して、このような異常の検出に応じて経路を遡るように異常通知パケットを送信する。そして、この異常通知パケットを、異なる経路を採用できる異常開始ノードまで転送して、当該異常開始ノードは、次回のデータパケットの伝送のために、問題が発生した経路を採用しないようにルーティングテーブルの該当レコードの評価値を変更する。このようにして早期に無駄なデータパケットの伝送を中止して同じ経路を採用しないようにするため、例えばアドホックネットワークにおけるデータ伝送効率を高めることができるようになる。
[通信装置の構成及び動作の具体例]
上で述べたような処理を実施するために、各ノードとなる通信装置は、図33に示すような構成を有する。通信装置100は、例えば無線で他の通信装置と通信を行う通信部110と、半導体メモリやHDD(ハードディスクドライブ)などの記憶部120と、記憶部120に格納されているデータを用いて通信装置100の制御を行う制御部130とを有する。記憶部120は、上で述べたルーティングテーブル121と、同じく上で述べたデータ管理テーブル122とを格納する。そのほか、記憶部120は、受信した各種パケットを一旦格納するパケットバッファとしても機能する。また、制御部130は、例えば以下で述べるような機能を実施させるためのプログラムと当該プログラムを実行するプロセッサとの組み合わせにて実現され、パケットタイプ判定部131と、異常検出部132と、異常通知パケット処理部133と、ルーティングテーブル更新部134と、データ管理テーブル更新部136と、データパケット処理部137と、ACKパケット処理部138とを有する。
次に、図34乃至図40を用いて、通信装置100の処理内容について説明する。制御部130の例えばパケットタイプ判定部131は、通信部110からパケット受信の通知を受け取ったか判断する(ステップS1)。パケット受信がなければ待機する。パケットを受信していれば、パケットタイプ判定部131は、受信パケットが異常通知パケットであるか判断する(ステップS3)。異常通知パケットであれば、データ管理テーブル更新部136等によって異常通知パケットの受信処理を実施する(ステップS5)。異常通知パケットの受信処理については後に詳細に述べる。そして、ステップS17に移行する。
一方、受信パケットが異常通知パケットでなければ、パケットタイプ判定部131は、受信パケットがデータパケットであるか判断する(ステップS7)。データパケットであれば、データパケット処理部137等がデータパケットの受信処理を実施する(ステップS9)。データパケットの受信処理については後に詳細に述べる。そして、ステップS17に移行する。
さらに、受信パケットがデータパケットでなければ、パケットタイプ判定部131は、受信パケットがACKパケットであるか判断する(ステップS11)。ACKパケットであれば、データ管理テーブル更新部136等がACKパケットの受信処理を実施する(ステップS13)。ACKパケットの受信処理については後に詳細に述べる。そして、ステップS13に移行する。
さらに、受信パケットがACKパケットでない場合には、例えば他の制御パケットであって、制御部130が当該制御パケットに対する従来の処理を実施し(ステップS15)、ステップS17に移行する。
ステップS17では、制御部130はユーザからの指示などに応じて処理終了であるかを判断し、処理終了でなければステップS1に戻る。処理終了であれば、ここで処理を終了する。
また、図34とは別スレッドで、図35の処理も実施される。データ管理テーブル更新部136は、時計から現時刻を取得して、データ管理テーブル122中にTTW1が現時刻と一致するレコードが存在するか判断する(ステップS21)。データ管理テーブル122中にTTW1が現時刻と一致するレコードが存在する場合には、データ管理テーブル更新部136及びデータパケット処理部137等は、各レコードについてデータパケットの再送処理を実施する(ステップS23)。データパケットの再送処理については後に詳細に述べる。そしてステップS25に移行する。
一方、ステップS23の後、又はデータ管理テーブル122中にTTW1が現時刻と一致するレコードが存在しない場合には、データ管理テーブル更新部136は、データ管理テーブル122中にTTW2が現時刻と一致するレコードが存在するか判断する(ステップS25)。データ管理テーブル122中にTTW2が現時刻と一致するレコードが存在する場合には、データ管理テーブル更新部136は、該当レコードをデータ管理テーブル122から削除する(ステップS27)。そしてステップS29に移行する。
一方、データ管理テーブル122中にTTW2が現時刻と一致するレコードが存在しない場合、又はステップS27の後に、データ管理テーブル更新部136は、処理終了であるか判断し(ステップS29)、処理終了でなければステップS21に戻る。一方、処理終了であれば、この時点で処理を終了する。
次に、図36及び図37を用いてデータパケットの受信処理について説明する。データパケット処理部137は、受信データパケットの宛先ノードが自ノードであるか判断する(ステップS31)。受信データパケットの宛先ノードが自ノードである場合には、制御部130は、受信データパケットを通常どおり処理する(ステップS33)。この処理については従来と同じであるので元の処理に戻る。
一方、受信データパケットの宛先ノードが自ノードでない場合には、データパケット処理部137は、ACKパケット処理部138に指示を出し、受信したデータパケットの送信元ノードの識別子及びデータパケットの識別子FIDを含み、さらに受信データパケットに含まれる隣接元ノードの識別子を隣接先ノードの識別子として含むACKパケットを生成させ、当該ACKパケットを通信部110に送信させる(ステップS35)。
また、データパケット処理部137は、異常検出部132に指示を出し、受信データパケットの宛先ノードの識別子をキーとしてルーティングテーブル121を検索させ、一致するレコードのうち評価値が最も低い(優先度が最も高い)レコードを選択させる(ステップS37)。そして、異常検出部132は、データパケットに含まれる許容ホップ数が、抽出されたレコードのホップ数より小さいか判断する(ステップS39)。この条件を満たす場合には、これ以上データパケットを送信してもデータパケットに規定されている許容ホップ数の条件を満たして宛先ノードに当該データパケットを到達させることはできない。すなわち、異常検出部132は、この条件を満たした場合には異常を検出したとして、受信データパケットに含まれる宛先ノードの識別子、送信元ノードの識別子及びデータパケットの識別子FIDを含み、さらに隣接元ノードの識別子を隣接先ノードの識別子として含む異常通知パケットを生成し、当該異常通知パケットを通信部110に送信させる(ステップS41)。そして処理を終了する。
一方、許容ホップ数が、抽出されたレコードのホップ数以上であれば、端子Aを介して図37の処理に移行する。
図37の処理の説明に移行して、データパケット処理部137は、データ管理テーブル更新部136に指示を出し、データ管理テーブル122中に新たなレコードを生成し、受信データパケットに含まれる宛先ノードの識別子、送信元ノードの識別子、データパケットの識別子FID及び隣接元ノードの識別子をコピーして登録させる(ステップS43)。さらに、データ管理テーブル更新部136は、ルーティングテーブル121を受信データパケットの宛先ノードの識別子をキーとして検索し、一致するレコードのうち評価値が上位n番目までのレコードの隣接ノードの識別子を、順番にステップS43で生成したレコードの隣接ノードとして登録すると共に、評価値が最上位のレコードについての隣接ノードのためのフラグF1を「1」にセットする(ステップS45)。また、データ管理テーブル更新部136は、生成レコードにおけるTTW1を現時刻の所定時間後に設定し、登録する(ステップS47)。
なお、所定時間は、ACKパケットが返信されてくるまでの時間を想定して十分な余裕をもって定めるものとする。
さらに、データパケット処理部137は、受信データパケットに含まれる宛先ノードの識別子、送信元ノードの識別子、データパケットの識別子FID及び(許容ホップ数−1)を含み、さらに現ノードの識別子を隣接元として、また生成レコード中評価値が最上位であるので第1の隣接ノード(すなわち「隣接1」)として登録されているノードの識別子を隣接先ノードの識別子としてヘッダに含む送信用データパケットを生成し、通信部110に送信させる(ステップS49)。そして元の処理に戻る。
このように、データパケットを転送できなければ異常通知パケットを、データパケットの直接の送信元に返信すると共に、データパケットを転送できれば、データパケットの再送処理又は異常通知パケットを受信する際に用いるためにデータ管理テーブル122にレコードを生成・登録している。
次に、異常通知パケットの受信処理について図38を用いて説明する。異常通知パケット処理部133は、データ管理テーブル122を、異常通知パケットに含まれる送信元ノードの識別子とFIDとで検索して、該当するレコードを抽出する(ステップS51)。そして、抽出レコードに使用フラグFが「0」である隣接ノードが存在しているか判断する(ステップS53)。すなわち、抽出レコードに係るデータパケットを送信したことのない隣接ノードが存在しているか判断する。
抽出レコードに使用フラグFが「0」である隣接ノードが存在していない場合には、自ノードに、抽出レコードに係るデータパケットと同じ宛先ノードを指定したデータパケットを送信されても、宛先ノードに到達しないということである。従って、異常通知パケットを、経路を遡って通知する必要がある。そこで、異常通知パケット処理部133は、受信した異常通知パケットに含まれる、データパケットの送信元ノードの識別子、データパケットの識別子FID及び宛先ノードの識別子を含み、さらに抽出レコードの隣接元ノードの識別子を隣接先ノードの識別子として含む異常通知パケットを生成し、通信部110に送信させる(ステップS61)。そして元の処理に戻る。
一方、抽出レコードに使用フラグFが「0」である隣接ノードが存在している場合には、異常通知パケット処理部133は、ルーティングテーブル更新部134に指示を出力し、ルーティングテーブル更新部134は、抽出レコード中使用フラグが「1」となっている隣接ノードのうち優先度が最下位の隣接ノードである現隣接ノードを抽出する(ステップS55)。例えば3つの隣接ノードがステップS45で登録され、最上位の「隣接1」の隣接ノードにデータパケットを送信した後である場合には、「隣接1」の隣接ノードが現隣接ノードである。一方、以下で述べるようにデータパケットの再送処理を行った場合には、「隣接2」の隣接ノードにもデータパケットを送信している可能性がある。このような場合には、「隣接2」の隣接ノードが現隣接ノードとなる。
さらに、ルーティングテーブル更新部134は、ルーティングテーブル121を抽出レコードの宛先ノードの識別子で検索して該当レコードを抽出すると共に、現隣接ノードの識別子と同じ隣接先ノードの識別子を含むレコードを特定する(ステップS57)。そして、特定レコード中の評価値を一定量増加するように更新してルーティングテーブル121に登録する(ステップS59)。本実施の形態では、評価値は小さいほど優先されるので、一定量増加させることによって優先度を下げる。すなわち、現隣接ノードを直接の選択先として選択しないように設定する。一定量は、通常の評価値の最低値を最大値よりも大きくさせるのに十分な値とする。これによって今回の隣接ノードについての評価値が最下位となる。
また、異常通知パケットについては、経路上遡って転送することはしない。これは、ステップS51で抽出されたレコードに係るデータパケットをまだ送信したことのない隣接ノードが存在しており、その隣接ノードに送信すればデータパケットが宛先ノードに到達する可能性があるためである。そして元の処理に戻る。
このような処理を実施すれば、同じ宛先ノードについてのデータパケットを受け取っても当該宛先ノードに到達させることができない場合には、自ノードに同じ宛先ノードについてのデータパケットを送ってこないようにするために異常通知パケットを送信し、同じ宛先ノードについてのデータパケットを当該宛先ノードに到達させることができる場合には、ルーティングテーブルを更新して経路選択の際に異なる選択を行うように設定する。
次に図39を用いてACKパケットの受信処理について説明する。データ管理テーブル更新部136は、ACKパケットからFID及び送信元ノードの識別子を抽出する(ステップS71)。また、データ管理テーブル122を、抽出FID及び送信元ノードの識別子で検索して、該当レコードを抽出する(ステップS73)。そして、抽出レコードのTTW2を一定時間後に設定して登録する(ステップS75)。この一定時間については、例えばデータパケットの伝送に係る時間の数倍とする。これによって異常通知パケットが異常開始ノードまで転送されるまでの間、本レコードがデータ管理テーブル122に残るようになる。そして元の処理に戻る。
なお、上で述べたようにTTW2は、抽出レコードを削除するタイミングを規定するものであり、ステップS25で用いられる。
次に図40を用いてデータパケットの再送処理を説明する。データ管理テーブル更新部136は、データ管理テーブルの該当レコード(ステップS21で特定されたレコード)に使用フラグが「0」の隣接ノードが存在するか判断する(ステップS81)。該当レコードに使用フラグが「0」の隣接ノードが存在しない場合には、データパケットを送信する先がないので、該当レコードをデータ管理テーブル122から削除する(ステップS83)。すなわち、データパケットの転送も終了する。そして元の処理に戻る。
一方、該当レコードに使用フラグが「0」の隣接ノードが存在する場合には、データ管理テーブル更新部136は、使用フラグが「0」の隣接ノードのうち優先度最上位のものを選択し、使用フラグを「1」に設定する(ステップS85)。さらに、該当レコードのTTW1を一定時間後に設定する(ステップS87)。ACKパケットを受信できなければ、再度データパケットを送信する場合もあるためである。
そして、データ管理テーブル更新部136は、データパケット処理部137に指示を出力し、データパケット処理部137は、該当レコードに含まれる宛先ノードの識別子、送信元ノードの識別子及びFIDを含み、さらに自ノードの識別子を隣接元ノードの識別子として含み、且つステップS85で選択された隣接ノードの識別子を隣接先ノードの識別子として含む送信用データパケットを生成し、通信部110に送信させる(ステップS89)。そして元の処理に戻る。
このように、データパケットを送信したにもかかわらずACKパケットが返ってこないような場合には、送信可能な送信先ノードが他にあればその送信先ノードにデータパケットを再送し、送信可能な送信先ノードが存在しなければ処理を終了する。上では述べていないが、ACKパケットを返してこないノードについての評価値を優先度を下げるように変更するようにしても良い。
以上本技術の実施の形態を説明したが、本実施の形態はこれに限定されるものではない。例えば、図33に示した機能ブロック図は一例であって、必ずしも実際の構成と一致しない場合もある。例えば、制御部130の機能構成が実際のプログラムモジュール構成や部品構成と一致しない場合もある。
さらに、処理フローについても処理結果が変わらない限りにおいて変更可能である。例えば、処理を並列実行したり、順番を入れ替えたりすることができる。
また、上の例ではルーティングテーブル121における評価値のみをベースに隣接ノードを選択するようにしているが、評価値とホップ数を総合的に評価して隣接ノードを選択するようにしても良い。
さらに、上の例ではデータ管理テーブル122に、n個の隣接ノードの識別子を登録する例を示したが、必ずしも複数の隣接ノードの識別子を登録する必要はない。具体的には、データパケットの再送処理においては、その都度ルーティングテーブル121から使用可能な隣接ノードを抽出するようにしても良い。但し、ACKパケットを受信しなかった隣接ノードについては、評価値を優先度を下げるように変更する必要がある。また、異常通知パケットを受信した場合には、実際には隣接ノードを用いることはないので、例えば他に使用可能な隣接ノードが存在していることのみデータ管理テーブル122に登録しておくだけでも良い。
また、上で述べた例ではアドホックネットワークを構築した際の通信装置で上記のような処理を実施する例を示したが、他のネットワークにおいても有効な場合がある。
さらに、通信装置は、携帯電話機であってもよいし、パーソナルコンピュータ等の携帯端末装置であってもよい。
なお、上で述べた通信装置100は、コンピュータ装置であれば、図41に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
通信装置100は、ハードディスク・ドライブ2505やドライブ装置2513を有しない場合もあるが、代わりにSSD(Solid State Disk)その他のフラッシュメモリを有している場合もある。
以上本実施の形態をまとめると以下のようになる。
本通信処理方法は、宛先通信装置の識別子と当該宛先通信装置へ送信する場合に送信すべき隣接通信装置の識別子と当該隣接通信装置への送信の評価値と当該隣接通信装置を経由する場合に宛先通信装置までに必要なホップ数とを含む隣接データを格納するルーティングデータ格納部を、ある隣接通信装置からデータパケットを受信した場合当該データパケットに含まれる宛先通信装置の識別子で検索して評価値に基づき隣接データを抽出し、当該隣接データに含まれるホップ数が上記データパケットに含まれるホップ数以上であるか判断するステップと、抽出された隣接データに含まれるホップ数が上記データパケットに含まれるホップ数以上である場合に、上記データパケットに含まれる宛先通信装置の識別子及び送信元通信装置の識別子と上記データパケットの識別子とを含み、上記データパケットの直接の送信元通信装置である隣接元通信装置の識別子が送信先通信装置の識別子として指定され且つ上記データパケットの自通信装置以降の送信が不可能であることを通知する異常通知パケットを生成し、送信先通信装置に送信するステップとを含む。
このようにホップ数をルーティングデータ格納部に保持してデータパケットに含まれる許容ホップ数と比較することによって、宛先通信装置まで辿り着けるか否かを容易に判断することができる。そして、辿り着けない場合には無駄なデータパケットの伝送を中止させるための異常通知パケットを現経路を遡るように送信して現経路上の通信装置に通知することによって、ネットワーク全体のパケット伝送効率を向上させることができるようになる。
また、本通信処理方法は、抽出された隣接データに含まれるホップ数が上記データパケットに含まれるホップ数未満である場合に、上記データパケットに含まれる宛先通信装置の識別子に基づきルーティングデータ格納部から抽出される、評価値が上位所定順位(1の場合を含む)までの隣接データに含まれる隣接通信装置の識別子と、上記データパケットに含まれる送信元通信装置の識別子、隣接元通信装置の識別子及び上記データパケットの識別子とを、対応付けてデータパケット受信管理データ格納部に格納するステップと、抽出された隣接データのうち評価値が最上位の隣接データに含まれる特定の隣接通信装置に対して、隣接元通信装置の識別子としてある隣接通信装置の識別子の代わりに自通信装置の識別子を含むデータパケットを生成し、送信するステップと、上記データパケットの宛先通信装置の識別子及び送信元通信装置の識別子とデータパケットの識別子とを含み、自通信装置の識別子が送信先通信装置の識別子として指定され且つ上記データパケットの特定の隣接通信装置以降の送信が不可能であることを通知する異常通知パケットを受信した場合、データパケット受信管理データ格納部を異常通知パケットに含まれる上記データパケットの送信元通信装置の識別子及びデータパケットの識別子で検索して該当するレコードを特定し、当該レコードに含まれる隣接通信装置の識別子のうち上記データパケットを送信したことのない隣接通信装置の識別子が存在するか判断するステップと、上記データパケットを送信したことのない隣接通信装置の識別子が存在しない場合には、特定されたレコードに含まれる隣接元通信装置の識別子を自通信装置の識別子の代わりに送信先通信装置の識別子として含む異常通知パケットを送信するステップとさらに含むようにしても良い。
このようにデータパケット受信管理データ格納部にデータを登録しておくことによって、経路上自通信装置より先の通信装置から異常通知パケットを受信した場合に、自通信装置に同じ宛先通信装置宛のデータパケットが送られてきて対処できるか否かを容易に判断することができるようになる。すなわち、該当レコードに隣接通信装置の識別子のうちデータパケットを送信したことのない隣接通信装置の識別子が登録されていなければ、自通信装置に同じ宛先通信装置宛のデータパケットが送られてきても対処できないので、異常通知パケットを現経路を遡るように送信して、経路を切り換えるように促すことによって、データパケットの伝送効率を向上させる。
さらに、本通信処理方法は、上記データパケットを送信したことのない隣接通信装置の識別子が存在する場合には、ルーティングデータ格納部において、特定されたレコードに含まれる宛先通信装置の識別子及び特定されたレコードによって特定されるデータパケットを最後に送信した隣接通信装置の識別子に対応付けて格納されている評価値を所定レベル評価減となるように設定するステップをさらに含むようにしても良い。このようにすれば、今回異常通知パケットを送ってきた隣接通信装置へ、同一の宛先通信装置宛のデータパケットを送信しづらくなるので、自通信装置にて他の経路(具体的には上記データパケットを送信したことのない隣接通信装置を含む経路)を選択するようになる。
また、本通信処理方法では、上記データパケットを送信したことのない隣接通信装置の識別子が存在する場合には、受信した異常通知パケットの転送を停止するようにしてもよい。他の機構を用いて宛先通信装置に到達しなかったデータパケットについては再送するようにすれば、異常通知パケットを転送せずにネットワークの負荷を抑えると共に、次のデータパケットの転送のための経路の切り換え設定を行って、データパケットの伝送効率を向上させるものである。
なお、上で述べたような処理を通信装置に実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
宛先通信装置の識別子と当該宛先通信装置へ送信する場合に送信すべき隣接通信装置の識別子と当該隣接通信装置への送信の評価値と当該隣接通信装置を経由する場合に前記宛先通信装置までに必要なホップ数とを含む隣接データを格納するルーティングデータ格納部と、
ある隣接通信装置からデータパケットを受信した場合、当該データパケットに含まれる宛先通信装置の識別子で前記ルーティングデータ格納部を検索して評価値に基づき隣接データを抽出し、当該隣接データに含まれるホップ数が前記データパケットに含まれるホップ数以上であるか判断する手段と、
抽出された前記隣接データに含まれるホップ数が前記データパケットに含まれるホップ数以上である場合に、前記データパケットに含まれる宛先通信装置の識別子及び送信元通信装置の識別子と前記データパケットの識別子とを含み、前記データパケットの直接の送信元通信装置である隣接元通信装置の識別子が送信先通信装置の識別子として指定され且つ前記データパケットの自通信装置以降の送信が不可能であることを通知する異常通知パケットを生成し、前記送信先通信装置に送信する手段と、
を含む通信装置。
(付記2)
抽出された前記隣接データに含まれるホップ数が前記データパケットに含まれるホップ数未満である場合に、前記データパケットに含まれる前記宛先通信装置の識別子に基づき前記ルーティングデータ格納部から抽出される、評価値が上位所定順位までの隣接データに含まれる隣接通信装置の識別子と、前記データパケットに含まれる前記送信元通信装置の識別子、前記隣接元通信装置の識別子及び前記データパケットの識別子とを、対応付けてデータパケット受信管理データ格納部に格納する手段と、
抽出された前記隣接データのうち前記評価値が最上位の隣接データに含まれる特定の隣接通信装置に対して、前記隣接元通信装置の識別子として前記ある隣接通信装置の識別子の代わりに自通信装置の識別子を含む前記データパケットを生成し、送信する手段と、
前記データパケットの宛先通信装置の識別子及び送信元通信装置の識別子と前記データパケットの識別子とを含み、前記自通信装置の識別子が送信先通信装置の識別子として指定され且つ前記データパケットの前記特定の隣接通信装置以降の送信が不可能であることを通知する異常通知パケットを受信した場合、前記データパケット受信管理データ格納部を前記異常通知パケットに含まれる前記データパケットの送信元通信装置の識別子及び前記データパケットの識別子で検索して該当するレコードを特定し、当該レコードに含まれる隣接通信装置の識別子のうち前記データパケットを送信したことのない隣接通信装置の識別子が存在するか判断する手段と、
前記データパケットを送信したことのない隣接通信装置の識別子が存在しない場合には、特定された前記レコードに含まれる前記隣接元通信装置の識別子を前記自通信装置の識別子の代わりに前記送信先通信装置の識別子として含む前記異常通知パケットを送信する手段と、
をさらに有する付記1記載の通信装置。
(付記3)
前記データパケットを送信したことのない隣接通信装置の識別子が存在する場合には、前記ルーティングデータ格納部において、特定された前記レコードに含まれる前記宛先通信装置の識別子及び特定された前記レコードによって特定される前記データパケットを最後に送信した前記隣接通信装置の識別子に対応付けて格納されている評価値を所定レベル評価減となるように設定する手段、
をさらに有する付記1又は2記載の通信装置。
(付記4)
前記データパケットを送信したことのない隣接通信装置の識別子が存在する場合には、受信した前記異常通知パケットの転送を停止する
付記3記載の通信装置。
(付記5)
宛先通信装置の識別子と当該宛先通信装置へ送信する場合に送信すべき隣接通信装置の識別子と当該隣接通信装置への送信の評価値と当該隣接通信装置を経由する場合に前記宛先通信装置までに必要なホップ数とを含む隣接データを格納するルーティングデータ格納部を、ある隣接通信装置からデータパケットを受信した場合当該データパケットに含まれる宛先通信装置の識別子で検索して評価値に基づき隣接データを抽出し、当該隣接データに含まれるホップ数が前記データパケットに含まれるホップ数以上であるか判断するステップと、
抽出された前記隣接データに含まれるホップ数が前記データパケットに含まれるホップ数以上である場合に、前記データパケットに含まれる宛先通信装置の識別子及び送信元通信装置の識別子と前記データパケットの識別子とを含み、前記データパケットの直接の送信元通信装置である隣接元通信装置の識別子が送信先通信装置の識別子として指定され且つ前記データパケットの自通信装置以降の送信が不可能であることを通知する異常通知パケットを生成し、前記送信先通信装置に送信するステップと、
を含む通信処理方法。
(付記6)
抽出された前記隣接データに含まれるホップ数が前記データパケットに含まれるホップ数未満である場合に、前記データパケットに含まれる前記宛先通信装置の識別子に基づき前記ルーティングデータ格納部から抽出される、評価値が上位所定順位までの隣接データに含まれる隣接通信装置の識別子と、前記データパケットに含まれる前記送信元通信装置の識別子、前記隣接元通信装置の識別子及び前記データパケットの識別子とを、対応付けてデータパケット受信管理データ格納部に格納するステップと、
抽出された前記隣接データのうち前記評価値が最上位の隣接データに含まれる特定の隣接通信装置に対して、前記隣接元通信装置の識別子として前記ある隣接通信装置の識別子の代わりに自通信装置の識別子を含む前記データパケットを生成し、送信するステップと、
前記データパケットの宛先通信装置の識別子及び送信元通信装置の識別子と前記データパケットの識別子とを含み、前記自通信装置の識別子が送信先通信装置の識別子として指定され且つ前記データパケットの前記特定の隣接通信装置以降の送信が不可能であることを通知する異常通知パケットを受信した場合、前記データパケット受信管理データ格納部を前記異常通知パケットに含まれる前記データパケットの送信元通信装置の識別子及び前記データパケットの識別子で検索して該当するレコードを特定し、当該レコードに含まれる隣接通信装置の識別子のうち前記データパケットを送信したことのない隣接通信装置の識別子が存在するか判断するステップと、
前記データパケットを送信したことのない隣接通信装置の識別子が存在しない場合には、特定された前記レコードに含まれる前記隣接元通信装置の識別子を前記自通信装置の識別子の代わりに前記送信先通信装置の識別子として含む前記異常通知パケットを送信するステップと、
をさらに含む付記5記載の通信処理方法。
(付記7)
前記データパケットを送信したことのない隣接通信装置の識別子が存在する場合には、前記ルーティングデータ格納部において、特定された前記レコードに含まれる前記宛先通信装置の識別子及び特定された前記レコードによって特定される前記データパケットを最後に送信した前記隣接通信装置の識別子に対応付けて格納されている評価値を所定レベル評価減となるように設定するステップ
をさらに含む付記5又は6記載の通信処理方法。
(付記8)
付記5乃至7のいずれか1つ記載の通信処理方法をコンピュータに実行させるためのプログラム。
100 通信装置 110 通信部 120 記憶部
130 制御部
121 ルーティングテーブル 122 データ管理テーブル
131 パケットタイプ判定部 132 異常検出部
133 異常通知パケット処理部 134 ルーティングテーブル更新部
136 データ管理テーブル更新部
137 データパケット処理部 138 ACKパケット処理部

Claims (7)

  1. 宛先通信装置の識別子と当該宛先通信装置へ送信する場合に送信すべき隣接通信装置の識別子と当該隣接通信装置への送信の評価値と当該隣接通信装置を経由する場合に前記宛先通信装置までに必要なホップ数とを含む隣接データを格納するルーティングデータ格納部と、
    ある隣接通信装置からデータパケットを受信した場合、当該データパケットに含まれる宛先通信装置の識別子で前記ルーティングデータ格納部を検索して評価値に基づき隣接データを抽出し、当該隣接データに含まれるホップ数が前記データパケットに含まれるホップ数以上であるか判断する手段と、
    抽出された前記隣接データに含まれるホップ数が前記データパケットに含まれるホップ数以上である場合に、前記データパケットに含まれる宛先通信装置の識別子及び送信元通信装置の識別子と前記データパケットの識別子とを含み、前記データパケットの直接の送信元通信装置である隣接元通信装置の識別子が送信先通信装置の識別子として指定され且つ前記データパケットの自通信装置以降の送信が不可能であることを通知する異常通知パケットを生成し、前記送信先通信装置に送信する手段と、
    抽出された前記隣接データに含まれるホップ数が前記データパケットに含まれるホップ数未満である場合に、前記データパケットに含まれる前記宛先通信装置の識別子に基づき前記ルーティングデータ格納部から抽出される、評価値が上位所定順位までの隣接データに含まれる隣接通信装置の識別子と、前記データパケットに含まれる前記送信元通信装置の識別子、前記隣接元通信装置の識別子及び前記データパケットの識別子とを、対応付けてデータパケット受信管理データ格納部に格納する手段と、
    抽出された前記隣接データのうち前記評価値が最上位の隣接データに含まれる特定の隣接通信装置に対して、前記隣接元通信装置の識別子として前記ある隣接通信装置の識別子の代わりに自通信装置の識別子を含む前記データパケットを生成し、送信する手段と、
    前記データパケットの宛先通信装置の識別子及び送信元通信装置の識別子と前記データパケットの識別子とを含み、前記自通信装置の識別子が送信先通信装置の識別子として指定され且つ前記データパケットの前記特定の隣接通信装置以降の送信が不可能であることを通知する異常通知パケットを受信した場合、前記データパケット受信管理データ格納部を前記異常通知パケットに含まれる前記データパケットの送信元通信装置の識別子及び前記データパケットの識別子で検索して該当するレコードを特定し、当該レコードに含まれる隣接通信装置の識別子のうち前記データパケットを送信したことのない隣接通信装置の識別子が存在するか判断する手段と、
    前記データパケットを送信したことのない隣接通信装置の識別子が存在しない場合には、特定された前記レコードに含まれる前記隣接元通信装置の識別子を前記自通信装置の識別子の代わりに前記送信先通信装置の識別子として含む前記異常通知パケットを送信する手段と、
    を含む通信装置。
  2. 宛先通信装置の識別子と当該宛先通信装置へ送信する場合に送信すべき隣接通信装置の識別子と当該隣接通信装置への送信の評価値と当該隣接通信装置を経由する場合に前記宛先通信装置までに必要なホップ数とを含む隣接データを格納するルーティングデータ格納部と、
    ある隣接通信装置からデータパケットを受信した場合、当該データパケットに含まれる宛先通信装置の識別子で前記ルーティングデータ格納部を検索して評価値に基づき隣接データを抽出し、当該隣接データに含まれるホップ数が前記データパケットに含まれるホップ数以上であるか判断する手段と、
    抽出された前記隣接データに含まれるホップ数が前記データパケットに含まれるホップ数以上である場合に、前記データパケットに含まれる宛先通信装置の識別子及び送信元通信装置の識別子と前記データパケットの識別子とを含み、前記データパケットの直接の送信元通信装置である隣接元通信装置の識別子が送信先通信装置の識別子として指定され且つ前記データパケットの自通信装置以降の送信が不可能であることを通知する異常通知パケットを生成し、前記送信先通信装置に送信する手段と、
    抽出された前記隣接データに含まれるホップ数が前記データパケットに含まれるホップ数未満である場合に、前記データパケットに含まれる前記宛先通信装置の識別子に基づき前記ルーティングデータ格納部から抽出される、評価値が上位所定順位までの隣接データに含まれる隣接通信装置の識別子と、前記データパケットに含まれる前記宛先通信装置の識別子、前記送信元通信装置の識別子、前記隣接元通信装置の識別子及び前記データパケットの識別子とを、対応付けてデータパケット受信管理データ格納部に格納する手段と、
    抽出された前記隣接データのうち前記評価値が最上位の隣接データに含まれる特定の隣接通信装置に対して、前記隣接元通信装置の識別子として前記ある隣接通信装置の識別子の代わりに自通信装置の識別子を含む前記データパケットを生成し、送信する手段と、
    前記データパケットの宛先通信装置の識別子及び送信元通信装置の識別子と前記データパケットの識別子とを含み、前記自通信装置の識別子が送信先通信装置の識別子として指定され且つ前記データパケットの前記特定の隣接通信装置以降の送信が不可能であることを通知する異常通知パケットを受信した場合、前記データパケット受信管理データ格納部を前記異常通知パケットに含まれる前記データパケットの送信元通信装置の識別子及び前記データパケットの識別子で検索して該当するレコードを特定し、当該レコードに含まれる隣接通信装置の識別子のうち前記データパケットを送信したことのない隣接通信装置の識別子が存在するか判断する手段と、
    前記データパケットを送信したことのない隣接通信装置の識別子が存在する場合には、前記ルーティングデータ格納部において、特定された前記レコードに含まれる前記宛先通信装置の識別子及び特定された前記レコードによって特定される前記データパケットを最後に送信した前記隣接通信装置の識別子に対応付けて格納されている評価値を所定レベル評価減となるように設定する手段と、
    を含む通信装置。
  3. 前記格納する手段は、前記データパケットに含まれる前記宛先通信装置の識別子を、更に対応付けて前記データパケット受信管理データ格納部に格納し、
    前記データパケットを送信したことのない隣接通信装置の識別子が存在する場合には、前記ルーティングデータ格納部において、特定された前記レコードに含まれる前記宛先通信装置の識別子及び特定された前記レコードによって特定される前記データパケットを最後に送信した前記隣接通信装置の識別子に対応付けて格納されている評価値を所定レベル評価減となるように設定する手段、
    をさらに有する請求項1記載の通信装置。
  4. 宛先通信装置の識別子と当該宛先通信装置へ送信する場合に送信すべき隣接通信装置の識別子と当該隣接通信装置への送信の評価値と当該隣接通信装置を経由する場合に前記宛先通信装置までに必要なホップ数とを含む隣接データを格納するルーティングデータ格納部を、ある隣接通信装置からデータパケットを受信した場合当該データパケットに含まれる宛先通信装置の識別子で検索して評価値に基づき隣接データを抽出し、当該隣接データに含まれるホップ数が前記データパケットに含まれるホップ数以上であるか判断するステップと、
    抽出された前記隣接データに含まれるホップ数が前記データパケットに含まれるホップ数以上である場合に、前記データパケットに含まれる宛先通信装置の識別子及び送信元通信装置の識別子と前記データパケットの識別子とを含み、前記データパケットの直接の送信元通信装置である隣接元通信装置の識別子が送信先通信装置の識別子として指定され且つ前記データパケットの自通信装置以降の送信が不可能であることを通知する異常通知パケットを生成し、前記送信先通信装置に送信するステップと、
    抽出された前記隣接データに含まれるホップ数が前記データパケットに含まれるホップ数未満である場合に、前記データパケットに含まれる前記宛先通信装置の識別子に基づき前記ルーティングデータ格納部から抽出される、評価値が上位所定順位までの隣接データに含まれる隣接通信装置の識別子と、前記データパケットに含まれる前記送信元通信装置の識別子、前記隣接元通信装置の識別子及び前記データパケットの識別子とを、対応付けてデータパケット受信管理データ格納部に格納するステップと、
    抽出された前記隣接データのうち前記評価値が最上位の隣接データに含まれる特定の隣接通信装置に対して、前記隣接元通信装置の識別子として前記ある隣接通信装置の識別子の代わりに自通信装置の識別子を含む前記データパケットを生成し、送信するステップと、
    前記データパケットの宛先通信装置の識別子及び送信元通信装置の識別子と前記データパケットの識別子とを含み、前記自通信装置の識別子が送信先通信装置の識別子として指定され且つ前記データパケットの前記特定の隣接通信装置以降の送信が不可能であることを通知する異常通知パケットを受信した場合、前記データパケット受信管理データ格納部を前記異常通知パケットに含まれる前記データパケットの送信元通信装置の識別子及び前記データパケットの識別子で検索して該当するレコードを特定し、当該レコードに含まれる隣接通信装置の識別子のうち前記データパケットを送信したことのない隣接通信装置の識別子が存在するか判断するステップと、
    前記データパケットを送信したことのない隣接通信装置の識別子が存在しない場合には、特定された前記レコードに含まれる前記隣接元通信装置の識別子を前記自通信装置の識別子の代わりに前記送信先通信装置の識別子として含む前記異常通知パケットを送信するステップと、
    を含む通信処理方法。
  5. 宛先通信装置の識別子と当該宛先通信装置へ送信する場合に送信すべき隣接通信装置の識別子と当該隣接通信装置への送信の評価値と当該隣接通信装置を経由する場合に前記宛先通信装置までに必要なホップ数とを含む隣接データを格納するルーティングデータ格納部を、ある隣接通信装置からデータパケットを受信した場合当該データパケットに含まれる宛先通信装置の識別子で検索して評価値に基づき隣接データを抽出し、当該隣接データに含まれるホップ数が前記データパケットに含まれるホップ数以上であるか判断するステップと、
    抽出された前記隣接データに含まれるホップ数が前記データパケットに含まれるホップ数以上である場合に、前記データパケットに含まれる宛先通信装置の識別子及び送信元通信装置の識別子と前記データパケットの識別子とを含み、前記データパケットの直接の送信元通信装置である隣接元通信装置の識別子が送信先通信装置の識別子として指定され且つ前記データパケットの自通信装置以降の送信が不可能であることを通知する異常通知パケットを生成し、前記送信先通信装置に送信するステップと、
    抽出された前記隣接データに含まれるホップ数が前記データパケットに含まれるホップ数未満である場合に、前記データパケットに含まれる前記宛先通信装置の識別子に基づき前記ルーティングデータ格納部から抽出される、評価値が上位所定順位までの隣接データに含まれる隣接通信装置の識別子と、前記データパケットに含まれる前記宛先通信装置の識別子、前記送信元通信装置の識別子、前記隣接元通信装置の識別子及び前記データパケットの識別子とを、対応付けてデータパケット受信管理データ格納部に格納するステップと、
    抽出された前記隣接データのうち前記評価値が最上位の隣接データに含まれる特定の隣接通信装置に対して、前記隣接元通信装置の識別子として前記ある隣接通信装置の識別子の代わりに自通信装置の識別子を含む前記データパケットを生成し、送信するステップと、
    前記データパケットの宛先通信装置の識別子及び送信元通信装置の識別子と前記データパケットの識別子とを含み、前記自通信装置の識別子が送信先通信装置の識別子として指定され且つ前記データパケットの前記特定の隣接通信装置以降の送信が不可能であることを通知する異常通知パケットを受信した場合、前記データパケット受信管理データ格納部を前記異常通知パケットに含まれる前記データパケットの送信元通信装置の識別子及び前記データパケットの識別子で検索して該当するレコードを特定し、当該レコードに含まれる隣接通信装置の識別子のうち前記データパケットを送信したことのない隣接通信装置の識別子が存在するか判断するステップと、
    前記データパケットを送信したことのない隣接通信装置の識別子が存在する場合には、前記ルーティングデータ格納部において、特定された前記レコードに含まれる前記宛先通信装置の識別子及び特定された前記レコードによって特定される前記データパケットを最後に送信した前記隣接通信装置の識別子に対応付けて格納されている評価値を所定レベル評価減となるように設定するステップと、
    を含む通信処理方法。
  6. 前記格納するステップにおいて、前記データパケットに含まれる前記宛先通信装置の識別子を、更に対応付けて前記データパケット受信管理データ格納部に格納し、
    前記データパケットを送信したことのない隣接通信装置の識別子が存在する場合には、前記ルーティングデータ格納部において、特定された前記レコードに含まれる前記宛先通信装置の識別子及び特定された前記レコードによって特定される前記データパケットを最後に送信した前記隣接通信装置の識別子に対応付けて格納されている評価値を所定レベル評価減となるように設定するステップ
    をさらに含む請求項4記載の通信処理方法。
  7. 請求項4乃至6のいずれか1つ記載の通信処理方法をコンピュータに実行させるためのプログラム。
JP2009053576A 2009-03-06 2009-03-06 通信装置及び通信処理方法 Expired - Fee Related JP5287373B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009053576A JP5287373B2 (ja) 2009-03-06 2009-03-06 通信装置及び通信処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009053576A JP5287373B2 (ja) 2009-03-06 2009-03-06 通信装置及び通信処理方法

Publications (2)

Publication Number Publication Date
JP2010212758A JP2010212758A (ja) 2010-09-24
JP5287373B2 true JP5287373B2 (ja) 2013-09-11

Family

ID=42972538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009053576A Expired - Fee Related JP5287373B2 (ja) 2009-03-06 2009-03-06 通信装置及び通信処理方法

Country Status (1)

Country Link
JP (1) JP5287373B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013065131A1 (ja) * 2011-11-01 2013-05-10 富士通株式会社 送信制御方法および送信制御装置
JP6137322B2 (ja) * 2013-09-02 2017-05-31 富士通株式会社 システム、ノード、故障判定装置、故障判定方法、および故障判定プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3356145B2 (ja) * 1999-12-22 2002-12-09 日本電気株式会社 伝送路障害救済方法、伝送路障害救済システム、記憶媒体およびルータ
JP4222188B2 (ja) * 2003-11-11 2009-02-12 沖電気工業株式会社 通信端末および通信ネットワーク

Also Published As

Publication number Publication date
JP2010212758A (ja) 2010-09-24

Similar Documents

Publication Publication Date Title
JP5376068B2 (ja) 無線通信装置および無線ネットワークにおける迂回経路探索方法
JP6031894B2 (ja) 中継プログラム、中継装置及び中継方法
KR20050114654A (ko) 무선 애드 혹 통신 시스템, 단말기, 그 단말기에 있어서의처리 방법 및 그 방법을 단말기에 실행하도록 하기 위한프로그램
CN103516612B (zh) 分布式路由器中生成路由表项的方法及分布式路由器
JP4795859B2 (ja) 情報端末装置およびデータ通信方法
JP2007179243A (ja) 通信システム及び通信装置
US20140198666A1 (en) Data transfer method and node apparatus that uses the same
CN112910773A (zh) 下发oam配置信息的方法及控制节点
CN111654437B (zh) 基于数据中心的报文转发方法及装置
JP5381080B2 (ja) フレーム転送装置及びフレーム転送方法
JP5287373B2 (ja) 通信装置及び通信処理方法
US9203760B2 (en) Communication device and route search method
US9374849B2 (en) Node and link formation method
JP2000341323A (ja) 無線アドホック端末
JP4131181B2 (ja) 無線アドホック通信システム、端末、その端末における処理方法並びにその方法を端末に実行させるためのプログラム
JP4877769B2 (ja) ネットワークシステム、通信コスト算出プログラム及び通信コスト算出方法
JP2007221522A (ja) ポーリング装置及び端末装置及びポーリング方法及びプログラム
CN111225423B (zh) 一种数据前转的方法和设备
JP6206105B2 (ja) 通信システム、通信方法および通信プログラム
CN101577680A (zh) 一种隧道路由信息的更新方法、装置及系统
JP2021027389A (ja) 通信プログラム、通信方法および通信装置
JP4228850B2 (ja) パケット中継装置
JP2005295036A (ja) ホームエージェントシステム
JP7219832B1 (ja) 通信システム、通信装置、プログラム、及び処理方法
JP2012015733A (ja) 通信端末、経路選択方法及び通信方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121005

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130520

R150 Certificate of patent or registration of utility model

Ref document number: 5287373

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees