(57)【要約】【課題】パケットのカプセル化（トンネルパケットの生成）を行うトンネルエントリポイントが、パケットがカプセル化を受けながら同一経路をループしてしまうトンネリングループの存在を検出できるようにする。【解決手段】ＴＥＰ（トンネルエントリポイント）１１２０は、送信元ノード（ソース）１１００から送信されたパケットを受信した場合に、トンネルパケットヘッダに識別子を挿入してカプセル化する。ＴＥＰ１１４０及びＴＥＰ１１６０は、それぞれＴＥＰ１１２０及びＴＥＰ１１４０からトンネルパケットを受信した場合、元のトンネルパケットヘッダの識別子を新たなトンネルパケットヘッダにコピーしてカプセル化する。トンネリングループによって、このトンネルパケットがＴＥＰ１１２０に戻ってきた場合に、受信したトンネルパケット内の識別子を参照することによって、トンネリングループを検出する。【選択図】図１１Ａ
2009514265.tif 000002
【特許請求の範囲】
【請求項１】
パケットに関してトンネリングループが起こっているか否かを検出可能とするために、転送するパケットにトンネリングループ検出用識別子を付加するように構成されているトンネリングループ検出制御装置。
【請求項２】
パケットを受信するパケット受信手段と、
前記パケット受信手段で受信した前記パケットをカプセル化して、トンネルパケットを生成するパケットカプセル化手段と、
前記パケットカプセル化手段で前記トンネルパケットを生成する際に付加される前記トンネルパケットのヘッダに、前記トンネリングループ検出用識別子を挿入する識別子挿入手段と、
前記パケットカプセル化手段で生成された前記トンネルパケットを送信するトンネルパケット送信手段とを、
有する請求項１に記載のトンネリングループ検出制御装置。
【請求項３】
前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられている一意の情報を使用するように構成されている請求項２に記載のトンネリングループ検出制御装置。
【請求項４】
前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられているアドレス情報、又は前記アドレス情報に対するハッシュ関数の演算結果を使用するように構成されている請求項３に記載のトンネリングループ検出制御装置。
【請求項５】
前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記一意の情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記一意の情報とが同一か否かを確認する識別子比較手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記一意の情報とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記一意の情報とが同一ではない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御する識別子複製制御手段とを、
有する請求項３又は４に記載のトンネリングループ検出制御装置。
【請求項６】
前記パケット受信手段で受信した前記パケットが、トンネルカプセル化の上限を超えた旨を通知するエラーメッセージである場合に、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子の値と、所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致するか否かを比較するエラーメッセージ識別子比較手段と、
前記エラーメッセージ識別子比較手段による比較の結果、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子の値と、所定の情報格納手段に格納されているトンネリングループ検出用識別子とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記エラーメッセージ識別子比較手段による比較の結果、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子の値と、所定の情報格納手段に格納されているトンネリングループ検出用識別子とが同一ではない場合には、前記エラーメッセージのペイロード部に存在するパケットに対応し、かつ前記エラーメッセージのペイロード部に存在するパケットのペイロード部に含まれるパケットを含むエラーメッセージを生成するように制御するとともに、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ用識別子を前記所定の情報格納手段に格納するように制御するエラーメッセージ処理制御手段と、
エラーの通知先に向けて、前記エラーメッセージ生成手段で生成された前記エラーメッセージを返送するエラーメッセージ返送手段とを、
有する請求項３又は４に記載のトンネリングループ検出制御装置。
【請求項７】
前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記一意の情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子を構成する複数の情報のいずれか１つと前記一意の情報とが同一か否かを確認する識別子比較手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子を構成する複数の情報のいずれか１つと前記一意の情報とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子を構成する複数の情報のすべてと前記一意の情報とが一致しない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ用識別子と、前記一意の情報とによってトンネリングループ検出用識別子を構成して、新たに構成された前記トンネリングループ検出用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段とを、
有する請求項３又は４に記載のトンネリングループ検出制御装置。
【請求項８】
前記トンネリングループ検出用識別子として、前記パケットカプセル化手段で生成された前記トンネルパケットごとに異なる情報を使用するように構成されている請求項２に記載のトンネリングループ検出制御装置。
【請求項９】
ランダムに又は所定の数列に従って、前記トンネルパケットごとに異なる情報として使用する数値を生成する数値生成手段を有する請求項８に記載のトンネリングループ検出制御装置。
【請求項１０】
前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記トンネルパケットごとに異なる情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致するか否かを確認する識別子比較手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致する場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致しない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御するとともに、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ用識別子を前記所定の情報格納手段に格納するように制御する識別子複製制御手段とを、
有する請求項８又は９に記載のトンネリングループ検出制御装置。
【請求項１１】
格納から所定の期間以上経過した場合には、所定の情報格納手段に格納されているトンネリングループ検出用識別子が前記所定の情報格納手段から解放されるように制御するメモリ制御手段を有する請求項１０に記載のトンネリングループ検出制御装置。
【請求項１２】
前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられている一意の情報を含む静的な部分と、前記パケットカプセル化手段で生成された前記トンネルパケットごとに異なる情報を含む動的な部分とを組み合わせた情報を使用するように構成されている請求項２に記載のトンネリングループ検出制御装置。
【請求項１３】
前記静的な部分として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられているアドレス情報、又は前記アドレス情報に対するハッシュ関数の演算結果を使用するように構成されている請求項１２に記載のトンネリングループ検出制御装置。
【請求項１４】
ランダムに又は所定の数列に従って、前記トンネルパケットごとに異なる情報として使用する数値を生成する数値生成手段を有する請求項１３に記載のトンネリングループ検出制御装置。
【請求項１５】
前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記一意の情報と前記トンネルパケットごとに異なる情報とを組み合わせた情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子の静的な部分と前記一意の情報とが一致するか否かを確認する静的識別子比較手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致するか否かを確認する識別子比較手段と、
前記静的識別子比較手段及び前記識別子比較手段のいずれか一方の結果が一致する場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記静的識別子比較手段及び前記識別子比較手段の両方とも一致が見られない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御するとともに、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ用識別子を前記所定の情報格納手段に格納するように制御する識別子複製制御手段とを、
有する請求項１２から１５のいずれか１つに記載のトンネリングループ検出制御装置。
【請求項１６】
格納から所定の期間以上経過した場合には、所定の情報格納手段に格納されているトンネリングループ検出用識別子が前記所定の情報格納手段から解放されるように制御するメモリ制御手段を有する請求項１５に記載のトンネリングループ検出制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット交換型データ通信ネットワークにおいて、パケットのカプセル化（パケットのトンネリング）を制御するためのトンネリングループ検出制御装置に関する。
【背景技術】
【０００２】
インターネットプロトコルスイート（Internet Protocol suite）に属する多数のプロトコルでは、パケットカプセル化（あるいは、パケットトンネリング）が利用されている。ＩＰｖ６（Internet Protocol version 6：インターネットプロトコルバージョン６）では、このパケットカプセル化は、主に下記の非特許文献１において定義されている。
【０００３】
例えば、仮想プライベートネットワーク（Virtual Private Network：ＶＰＮ）では、異なる位置に存在する２つ以上のネットワークを相互接続して、大規模プライベートネットワークを形成するために、トンネリング技術が用いられる。
【０００４】
また、モバイルＩＰｖ６（Mobile IPv6：ＭＩＰｖ６）のモビリティサポートでは、モバイルノードとホームエージェントとの間のトンネリングの使用によって、モバイルノードは、そのホームアドレスで常に到達可能な状態となる。
【０００５】
また、ＩＰｖ６のネットワークモビリティサポート（ＮＥＭＯ）では、モバイルルータが、自身のホームエージェントとの間にトンネルを確立することによって、ネットワーク全体が、モバイルネットワークのプレフィックスで到達可能な状態を維持したまま、インターネットを移動することが可能となる。
【０００６】
ＩＰｖ６トンネリングでは、内部のＩＰｖ６パケット（インナパケット）を、外部のＩＰｖ６パケット（アウタパケット）のペイロードとするカプセル化が行われる。なお、インナパケットは、ペイロードパケットと呼ばれることもあり、アウタパケットは、トンネルパケットと呼ばれることもある。
【０００７】
トンネリングは、トンネル入口ノード（tunnel entry node）及びトンネル出口ノード（tunnel exit node）の２つのエンティティに関連している。なお、本明細書では、トンネル入口ノードを、トンネルエントリポイント（tunnel entry point）又はＴＥＰと表現し、トンネル出口ノードをトンネル出口ポイントと表現することもある。
【０００８】
トンネル入口ノードは、送信元アドレス（source address）にトンネル入口ノードのアドレスを有するとともに、あて先アドレス（destination address）にトンネル出口ノードのアドレスを有するトンネルパケットに、ペイロードパケットをカプセル化する。トンネルパケットがトンネル出口ノードに到達した場合には、ペイロードパケットはデカプセル化されて、通常通り発送される。これによって、既存のルーティングインフラストラクチャ上に、オーバレイネットワークが効率良く作られる。
さらに、中継ルータがインナパケットの内容を見ることができないように、ペイロードパケットは暗号化されてもよい。トンネリングによって、インナパケットの送信元及びあて先アドレスは隠蔽されるので、既存のルーティングインフラストラクチャでは、単に、アウタパケットに基づく経路の決定のみが行われる。
【０００９】
しかしながら、これにより、トンネルパケットがトンネル出口ノードに到達する前にトンネル入口ノードに戻ってしまうときには、トンネリングループ（tunneling loop）として知られている現象が発生してしまうおそれがある。
【００１０】
また、パケットが複数レベルのカプセル化を被る必要がある場合には、トンネリングループは、より起こりやすくなる。カプセル化によって、インナパケットの送信元アドレスは隠れてしまうので、トンネル入口ノードは、トンネル入口ノード自身が以前にそのパケットのトンネル化を既に行っている旨に気付かない可能性がある。トンネリングループは、ネットワークリソースを瞬間的に消費してしまうので望ましいものではない。
【００１１】
カプセル化されたパケットには、それぞれ新たなホップリミットフィールド（hop limit field：中継限界数フィールド）が設定されるので、パケットは、トンネリングループ上で（トンネリングループに沿って）無限に発送され続けることになる。その結果、ルーティングのループを防ぐためにホップリミットを使用する既存のメカニズムは、有効ではなくなる。
【００１２】
さらに、各カプセル化によって、パケットには余分なパケットヘッダが付加され、パケットのサイズが大きくなる。パケットサイズが非常に大きくなることで、パケット分割（fragmentation）が行われる可能性もある。その結果、別のパケット（分割されたパケット）がトンネリングループに導入されてしまうことになる。
【００１３】
トンネリングループが起こる可能性がある場合は多数存在する。図１Ａ及び図１Ｂには、トンネリングループが起こることが予想される２つの展開が図示されている。
【００１４】
図１Ａでは、ＭＲ（Mobile Router：モバイルルータ）１１０、ＭＲ１１２、ＭＲ１１４は、インターネット１００を移動している。各モバイルルータによって、トンネリングループが形成される可能性がある。
【００１５】
ここで、ＭＲ１１０は、接続１２０に示されるようにＭＲ１１２に接続されており、ＭＲ１１２は、接続１２２に示されるようにＭＲ１１４に接続されており、ＭＲ１１４は、接続１２４に示されるようにＭＲ１１０に接続されている。モバイルルータの１つ（例えば、ＭＲ１１０）が、自身のＨＡ（Home Agent：ホームエージェント）１４０へのトンネル化を行っている場合には、ＭＲ１１０は、ＨＡ１４０へのトンネル用にパケットをカプセル化して、ＭＲ１１０のアクセスルータであるＭＲ１１２にパケットを渡す。
【００１６】
ＭＲ１１２も、自身のホームエージェントに渡すために、パケットを更にカプセル化する。そして、パケットはＭＲ１１４に渡され、ここでも、パケットのカプセル化が行われる。これは永久に続き、各モバイルルータは、パケットに対して、カプセル化のレイヤを１つずつ付加し続ける。
【００１７】
また、図１Ｂには、ＭＮ（Mobile Node：モバイルノード）１３０が２つのホームアドレス（ＭＮ．ＨｏＡ１及びＭＮ．ＨｏＡ２）を有し、それぞれに対応したホームエージェント（ＨＡ１４０及びＨＡ１４２）が存在する場合の展開が示されている。
【００１８】
ＨＡ１４０は、ホームアドレスＭＮ．ＨｏＡ１を管理しており、ＨＡ１４２は、ホームアドレスＭＮ．ＨｏＡ２を管理している。ＭＮ１３０は、ＨＡ１４０に対して偶然又は意図的に、自身の気付アドレス（care-of address：ＣｏＡ）がＭＮ．ＨｏＡ２であることを通知し、ＨＡ１４２に対して、自身の気付アドレスがＭＮ．ＨｏＡ１であることを通知したとする。
【００１９】
その結果、ＨＡ１４０のバインディングキャッシュ１５０内には、ＭＮ．ＨｏＡ１を含むホームアドレス（ＨｏＡ）フィールド１６２と、ＭＮ．ＨｏＡ２を含む気付アドレス（ＣｏＡ）フィールド１６４とを有するエントリが格納される。また、同様に、ＨＡ１４２のバインディングキャッシュ１５２内には、ＭＮ．ＨｏＡ２を含むホームアドレスフィールド１６６と、ＭＮ．ＨｏＡ１を含む気付アドレスフィールド１６８とを有するエントリが格納される。
【００２０】
ここで、ホームエージェントの１つ（例えば、ＨＡ１４０）が、ＭＮ１３０あてのパケットを受信した場合、ＨＡ１４０は、自身のバインディングキャッシュで特定される気付アドレス（すなわち、ＭＮ．ＨｏＡ２）に転送されるように、パケットのカプセル化を行う。これは、図１Ｂに経路１７２として示されている。
【００２１】
ＨＡ１４２は、このパケットを受信（intercept）し、自身のバインディングキャッシュ１５２内のＭＮ１３０の気付アドレス（ＭＮ．ＨｏＡ１）に対して、パケットのトンネルを行う。これにより、図１Ｂに経路１７４として示されているように、パケットは、トンネルによってＨＡ１４０に戻される。そして、このループは、無限に続くことになる。
【００２２】
下記の非特許文献１には、トンネルカプセル化制限（Tunnel Encapsulation Limit：ＴＥＬ）オプションを使用して、トンネリングループの破滅的な結末を防ぐことが記載されている。このＴＥＬオプションは、パケットが受けることができるカプセル化の最大数を含むあて先ヘッダオプション（destination header option）である。
【００２３】
通常、中継ルーティングノードは、通過パケットのあて先ヘッダを検査することはない。しかしながら、非特許文献１では、すべてのトンネル入口ノードが、カプセル化を行う前に、パケットのあて先ヘッダを検査する必要がある。そして、パケット内にＴＥＬオプションが見つかった場合には、トンネル入口ノードは、まず、ＴＥＬオプションにおいて、許容されるカプセル化の最大数がゼロではないことをチェックする必要がある。
【００２４】
ＴＥＬオプション内に記載されている値がゼロの場合には、トンネル入口ノードは、パケットを破棄するとともに、発信元に問題を通知するインターネット制御メッセージプロトコル（Internet Control Message Protocol：ＩＣＭＰ）エラーを、パケットの発信元に対して送信する。
【００２５】
また、ＴＥＬオプションがゼロではない場合には、トンネル入口ノードは、パケットのカプセル化処理を行い、元々のＴＥＬオプション（パケット受信時のＴＥＬオプション）から１を引いた値を含むＴＥＬオプションを、新たなトンネルパケットヘッダに付加する。
【００２６】
一方で、元々のパケット（受信したパケット）にＴＥＬオプションが含まれていない場合には、トンネル入口ノードは、カプセル化処理を行い、最大カプセル化のデフォルトの数値を含むＴＥＬオプションをトンネルパケットヘッダに付加する。このデフォルトの数値は、トンネル入口ノードで設定されるパラメータである。
【００２７】
次に、図１Ｃにおいて、上述した非特許文献１に開示されている技術に係る動作について例示する。ここで、送信元ノード１８０（図１Ｃでは、ソースと表記）は、データパケットを任意のあて先に送信する送信元のノードである。パケットは、３つのトンネルエントリポイント（ＴＥＰ１８２、ＴＥＰ１８４、ＴＥＰ１８６）を経由する経路を通る。しかしながら、構成のミスやその他の理由によって、３つのトンネルエントリポイントは、トンネリングループを形成しているとする。
【００２８】
送信元ノード１８０がデータパケット１８７（図１Ｃでは、Ｄａｔａと表記）を送信した場合、データパケット１８７は、最初のトンネルエントリ（ＴＥＰ１８２）に到達する。ＴＥＰ１８２は、トンネルパケット１８８内にデータパケットをカプセル化するとともに、トンネルパケットヘッダにＴＥＬオプションを付加する。ペイロードパケット１８７にはＴＥＬオプションは含まれていないので、トンネルパケット１８８内のＴＥＬオプションには、デフォルト値（例えば「４」）が設定された制限フィールドが設けられる。
【００２９】
さらに、ＴＥＰ１８４は、このパケット（図１Ｃでは、Ｐｋｔ｛ＴＥＬ＝３｝と表記）をＴＥＰ１８６にトンネルし、その結果、ＴＥＬ制限が「３」のパケット１８９（図１Ｃでは、Ｐｋｔ｛ＴＥＬ＝３｝と表記）が生じる。さらに、ＴＥＰ１８６は、このパケットをＴＥＰ１８２にトンネルし、その結果、ＴＥＬ制限が「２」のパケット１９０（図１Ｃでは、Ｐｋｔ｛ＴＥＬ＝２｝と表記）が生じる。ＴＥＰ１８４は、もう一度このパケットをＴＥＰ１８４にトンネルし、その結果、ＴＥＬ制限が「１」のパケット１９１（図１Ｃでは、Ｐｋｔ｛ＴＥＬ＝１｝と表記）が生じる。そして、最終的に、ＴＥＰ１８４は、このパケットをＴＥＰ１８６にトンネルし、その結果、ＴＥＬ制限が「０」のパケット１９２（図１Ｃでは、Ｐｋｔ｛ＴＥＬ＝０｝と表記）が生じる。
【００３０】
ここで、ＴＥＰ１８６は、受信したパケットには、値がゼロのＴＥＬオプションが存在していることに気付く。その結果、更なるカプセル化の実行は不可能となる。そして、ＴＥＰ１８６は、パケット１９２を破棄し、パケットの送信元（すなわち、ＴＥＰ１８４）に対して、パケット１９２の元のＴＥＬオプション１８４を示すＩＣＭＰエラーメッセージ１９３（図１Ｃでは、ＩＣＭＰ−Ｅｒｒｏｒと表記）を返送する。
【００３１】
このＩＣＭＰエラーメッセージ１９３を受信したＴＥＰ１８４は、ＩＣＭＰエラーメッセージ１９３から元のパケット１９１を抽出して、パケット１９１の送信元（すなわち、ＴＥＬ１８２）に対して、パケット１９１のＴＥＬオプションを示すＩＣＭＰエラーメッセージ１９４（図１Ｃでは、ＩＣＭＰ−Ｅｒｒｏｒと表記）を返送する。
【００３２】
このＩＣＭＰエラーメッセージの返送は、受信するＩＣＭＰエラーメッセージから抽出されるパケットにＴＥＬオプションが含まれなくなるまで実行される（すなわち、ＩＣＭＰエラーメッセージ１９５〜１９７（図１Ｃでは、ＩＣＭＰ−Ｅｒｒｏｒと表記）が順次返送される）。なお、図１Ｃでは、ＴＥＰ１８２がＩＣＭＰエラーメッセージ１９７を受信した場合に、パケットにＴＥＬオプションが含まれなくなる。そして、最終的なＩＣＭＰエラーメッセージ１９８（図１Ｃでは、ＩＣＭＰ−Ｅｒｒｏｒと表記）が、ＴＥＰ１８２から元の送信元ノード１８０に送信される。
【００３３】
また、ルーティングループに関する問題を解決しようとする他の従来技術も存在している。例えば、下記の特許文献１には、ＩＰヘッダに含まれているホップ数ごとに、パケットの個数を所定の期間カウントするカウンタを設けることによって、ルーティングループが起こっているか否かを推定し、一般的なルーティングループの検出を行う方法が開示されている。
【００３４】
また、ルーティングループそのものを防ごうとしている別の従来の技術も存在する。例えば、下記の特許文献２には、ルーティングループを防ごうとしているモバイルアドホックルーティング方法が記載されている。また、下記の特許文献３には、レイヤ２のトンネリングプロトコル（Ｌ２ＴＰ）や仮想プライベートネットワーク（ＶＰＮ）に関して、ルーティングループを防ぐために、スパニングツリーアルゴリズム（全域木アルゴリズム）を使用するルーティング方法が開示されている。
【非特許文献１】“Generic Packet Tunneling in IPv6 Specification”、ＲＦＣ２４７３、１９９８年１２月
【特許文献１】米国特許公開公報２００５／００６３３１１
【特許文献２】米国特許公開公報２００４／０１４６００７
【特許文献３】米国特許６７６５８８１号
【発明の開示】
【発明が解決しようとする課題】
【００３５】
しかしながら、非特許文献１に開示されている技術によれば、上述のＴＥＬオプションの使用によって、トンネリングループが無限に発生し続けないようにすることは可能となるものの、複雑な問題に対しては不十分な解決方法である。特に、ＴＥＬオプションを使用した場合、ＩＣＭＰエラーメッセージの受信者は、ＴＥＬの値がゼロになった理由が、トンネリングループによるものであるのか、あるいは、単に、ＴＥＬの値の設定が、最終のあて先に到達するまでに通過する必要があるトンネルの数に対して十分ではなかったことによるものなのかを判断することができない。
【００３６】
したがって、トンネル入口ノードが、トンネルカプセル化の制限に達したことを告げるＩＣＭＰエラーに対して、どのように応じればよいかに関しては不明瞭である。
【００３７】
トンネル入口ノードは、そのデフォルトのＴＥＬの値を増やして、パケットを通過させようと試みることができる。しかしながら、トンネリングループが実際に存在する場合には、これによって、ＩＣＭＰエラーの受信及びデフォルトのＴＥＬの値の増加が無限に行われることになるかもしれない。
【００３８】
また、トンネル入口ノードは、トンネリングループが存在していると仮定して、同一のあて先アドレスを有するトンネルパケットを単に拒否することもできる。しかしながら、ＩＣＭＰエラーの本当の理由が、パケットが通過する必要のあるトンネルの数が、パケットがその最終あて先に到達するために設定されるＴＥＬの値よりも大きかったという理由の場合には、これによって、不要なサービス拒否が行われてしまうかもしれない。
【００３９】
上述の説明から、トンネル入口ノードが、トンネリングループが形成されている場合と、パケットが通過するために必要となるトンネルの数が、設定されるデフォルトのＴＥＬの値よりも大きい場合とを区別することができる情報が、ＴＥＬオプションに含まれていないことがＴＥＬオプションの使用に係る問題であることが分かる。
【００４０】
また、特許文献１に開示されている方法は、１秒あたりに何千個ものパケットの処理を行うルータには適していない。さらに、この方法は、実際のループ検出アルゴリズムというよりも、ルーティングループの兆候を推定する発見的方法である。
【００４１】
また、特許文献２、３に開示されているような方法に関しては、特に、ループ発生の確率がかなり小さい場合に、ループをわざわざ防ぐために費やされる計算コストが割に合ったものではないという問題がある。トンネリングプロトコルは、トンネル入口ノードからトンネル出口ノードへのパケットのルーティングに関しては、基本的なルーティングインフラストラクチャを利用するものである。したがって、上記の問題は、特にトンネリングプロトコルに関して当てはまる。また、基本的なルーティングインフラストラクチャにルーティングループがない限り、トンネリングループが起こる可能性は、実際にはかなり小さい。したがって、トンネリングプロトコルに関しては、完全かつ複雑なループ回避メカニズムは適していない。
【００４２】
上記の課題に鑑み、本発明は、トンネルエントリポイントがトンネリングループの存在を検出するためのトンネリングループ検出制御装置を提供することを目的とする。
【課題を解決するための手段】
【００４３】
上記の目的を達成するため、本発明のトンネリングループ検出制御装置は、パケットに関してトンネリングループが起こっているか否かを検出可能とするために、転送するパケットにトンネリングループ検出用識別子を付加するように構成されている。
上記の構成により、パケットのカプセル化（トンネルパケットの生成）を行うトンネルエントリポイントが、パケットがカプセル化を受けながら同一経路をループしてしまうトンネリングループの存在を検出することが可能になる。
【００４４】
上記の目的を達成するため、本発明のトンネリングループ検出制御装置は、パケットを受信するパケット受信手段と、
前記パケット受信手段で受信した前記パケットをカプセル化して、トンネルパケットを生成するパケットカプセル化手段と、
前記パケットカプセル化手段で前記トンネルパケットを生成する際に付加される前記トンネルパケットのヘッダに、前記トンネリングループ検出用識別子を挿入する識別子挿入手段と、
前記パケットカプセル化手段で生成された前記トンネルパケットを送信するトンネルパケット送信手段とを、
有する。
上記の構成により、パケットのカプセル化を行うトンネルエントリポイントが、パケットのカプセル化によって生成されるトンネルパケットのヘッダに、トンネリングループ検出用識別子を付加することによって、トンネリングループの存在を検出できるようにすることが可能となる。
【００４５】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられている一意の情報を使用するように構成されている。
上記の構成により、トンネリングループ検出用識別子によって、最初のトンネルエントリポイントが識別可能となる。
【００４６】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられているアドレス情報、又は前記アドレス情報に対するハッシュ関数の演算結果を使用するように構成されている。
上記の構成により、トンネリングループ検出用識別子の一意性が、完全に、又はかなり高い精度で保証されるようになる。
【００４７】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記一意の情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記一意の情報とが同一か否かを確認する識別子比較手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記一意の情報とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記一意の情報とが同一ではない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御する識別子複製制御手段とを、
有する。
上記の構成により、トンネリングループ検出用識別子がトンネルパケットのヘッダ内に挿入された状態で伝搬されるとともに、このトンネリングループ検出用識別子が、自身を特定する一意の情報と一致した場合に、トンネリングループが検出されるようになる。
【００４８】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記パケット受信手段で受信した前記パケットが、トンネルカプセル化の上限を超えた旨を通知するエラーメッセージである場合に、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子の値と、所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致するか否かを比較するエラーメッセージ識別子比較手段と、
前記エラーメッセージ識別子比較手段による比較の結果、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子の値と、所定の情報格納手段に格納されているトンネリングループ検出用識別子とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記エラーメッセージ識別子比較手段による比較の結果、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子の値と、所定の情報格納手段に格納されているトンネリングループ検出用識別子とが同一ではない場合には、前記エラーメッセージのペイロード部に存在するパケットに対応し、かつ前記エラーメッセージのペイロード部に存在するパケットのペイロード部に含まれるパケットを含むエラーメッセージを生成するように制御するとともに、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ用識別子を前記所定の情報格納手段に格納するように制御するエラーメッセージ処理制御手段と、
エラーの通知先に向けて、前記エラーメッセージ生成手段で生成された前記エラーメッセージを返送するエラーメッセージ返送手段とを、
有する。
上記の構成により、エラーメッセージ（特に、受信したパケットをペイロードにそのまま挿入して返送することが可能なＩＣＭＰエラーメッセージ）の返送時に、トンネリングループが検出されるようになる。
【００４９】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記一意の情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子を構成する複数の情報のいずれか１つと前記一意の情報とが同一か否かを確認する識別子比較手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子を構成する複数の情報のいずれか１つと前記一意の情報とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子を構成する複数の情報のすべてと前記一意の情報とが一致しない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ用識別子と、前記一意の情報とによってトンネリングループ検出用識別子を構成して、新たに構成された前記トンネリングループ検出用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段とを、
有する。
上記の構成により、パケットの転送時に、このパケットに対してカプセル化を行ったすべてのトンネルエントリポイントの識別子がパケットのヘッダに付加され、パケットのヘッダを参照することによって、トンネルエントリポイントは、以前に自身によってカプセル化処理を受けたことのあるパケットか否かを判別することが可能となり、トンネリングループが検出されるようになる。
【００５０】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記トンネリングループ検出用識別子として、前記パケットカプセル化手段で生成された前記トンネルパケットごとに異なる情報を使用するように構成されている。
上記の構成により、トンネリングループ検出用識別子によって、各トンネルパケットが識別可能となる。
【００５１】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、ランダムに又は所定の数列に従って、前記トンネルパケットごとに異なる情報として使用する数値を生成する数値生成手段を有する。
上記の構成により、各トンネルパケットを識別可能とするトンネリングループ検出用識別子として、ランダムナンバーやシーケンスナンバーを使用することが可能となる。
【００５２】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記トンネルパケットごとに異なる情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致するか否かを確認する識別子比較手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致する場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致しない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御するとともに、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ用識別子を前記所定の情報格納手段に格納するように制御する識別子複製制御手段とを、
有する。
上記の構成により、トンネリングループ検出用識別子がトンネルパケットのヘッダ内に挿入された状態で伝搬されるとともに、各トンネルエントリポイントは伝搬時にこのトンネリングループ検出用識別子を格納し、受信パケット内のトンネリングループ検出用識別子と、格納されているトンネリングループ検出用識別子と一致した場合に、トンネリングループが検出されるようになる。
【００５３】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、格納から所定の期間以上経過した場合には、所定の情報格納手段に格納されているトンネリングループ検出用識別子が前記所定の情報格納手段から解放されるように制御するメモリ制御手段を有する。
上記の構成により、トンネリングループ検出用識別子を格納するためのメモリのリソースを節約することが可能となる。
【００５４】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられている一意の情報を含む静的な部分と、前記パケットカプセル化手段で生成された前記トンネルパケットごとに異なる情報を含む動的な部分とを組み合わせた情報を使用するように構成されている。
上記の構成により、トンネリングループ検出用識別子によって、最初のトンネルエントリポイントが識別可能となるとともに、各トンネルパケットが識別可能となる。
【００５５】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記静的な部分として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられているアドレス情報、又は前記アドレス情報に対するハッシュ関数の演算結果を使用するように構成されている。
上記の構成により、トンネリングループ検出用識別子の静的な部分の一意性が、完全に又はかなり高い精度で保証されるようになる。
【００５６】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、ランダムに又は所定の数列に従って、前記トンネルパケットごとに異なる情報として使用する数値を生成する数値生成手段を有する。
上記の構成により、各トンネルパケットを識別可能とするトンネリングループ検出用識別子の動的な部分として、ランダムナンバーやシーケンスナンバーを使用することが可能となる。
【００５７】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記一意の情報と前記トンネルパケットごとに異なる情報とを組み合わせた情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子の静的な部分と前記一意の情報とが一致するか否かを確認する静的識別子比較手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致するか否かを確認する識別子比較手段と、
前記静的識別子比較手段及び前記識別子比較手段のいずれか一方の結果が一致する場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記静的識別子比較手段及び前記識別子比較手段の両方とも一致が見られない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ用識別子を前記トンネリングループ検出用識別子として挿入するように制御するとともに、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ用識別子を前記所定の情報格納手段に格納するように制御する識別子複製制御手段とを、
有する。
上記の構成により、トンネリングループ検出用識別子がトンネルパケットのヘッダ内に挿入された状態で伝搬されるとともに、このトンネリングループ検出用識別子が、自身を特定する一意の情報と一致した場合、又は、各トンネルエントリポイントは伝搬時にこのトンネリングループ検出用識別子の動的な部分を格納し、受信パケット内のトンネリングループ検出用識別子と、格納されているトンネリングループ検出用識別子と一致した場合に、トンネリングループが検出されるようになる。
【００５８】
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、格納から所定の期間以上経過した場合には、所定の情報格納手段に格納されているトンネリングループ検出用識別子が前記所定の情報格納手段から解放されるように制御するメモリ制御手段を有する。
上記の構成により、トンネリングループ検出用識別子を格納するためのメモリのリソースを節約することが可能となる。
【発明の効果】
【００５９】
本発明は、上記の構成を有しており、トンネルエントリポイントがトンネリングループの存在を検出することができるようになるという効果を有している。
【発明を実施するための最良の形態】
【００６０】
以下、図面を参照しながら、本発明の実施の形態において、トンネルエントリポイントがトンネリングループの存在を検出するための方法及び装置について説明する。
【００６１】
本発明では、基本的に、トンネルエントリポイントがトンネルパケットヘッダに新たなＴＥＬオプションを挿入する際に、ＴＥＬオプションに識別子（ＩＤ）が含まれるようにする。
【００６２】
識別子を有するＴＥＬオプションがペイロードパケットに元々含まれている場合には、この識別子は、トンネルパケットヘッダに挿入されるＴＥＬオプションの識別子フィールド（limit field）に単にコピーされる。一方、識別子を有するＴＥＬオプションがペイロードパケットに元々含まれていない場合には、トンネルエントリポイントが、トンネルパケットヘッダに挿入されるＴＥＬオプションの識別子フィールド（ID field）に識別子を追加する。
【００６３】
図２には、本発明の実施の形態における動作の一例が図示されている。なお、図２に図示されているメッセージシーケンスチャートによって、本発明を用いた場合に、トンネルエントリポイントによるループの検出が可能となる方法の一例が説明される。
【００６４】
ここで、送信元ノード１８０（図２では、ソースと表記）は、データパケットを任意のあて先に送信する送信元のノードである。パケットは、３つのトンネルエントリポイント（ＴＥＰ１８２、ＴＥＰ１８４、ＴＥＰ１８６）を経由した経路を通ることになる。しかしながら、ここでは、構成のミスやその他の理由によって、３つのトンネルエントリポイントは、トンネリングループを形成しているものとする。
【００６５】
送信元ノード１８０がデータパケット２００を送信した場合、データパケット２００は、最初のトンネルエントリポイント（ＴＥＰ１８２）に到達する。ＴＥＰ１８２は、データパケット２００をトンネルパケット２1０内にカプセル化して、トンネルパケットヘッダにＴＥＬオプションを付加する。パケット２００にはＴＥＬオプションが含まれていないので、トンネルパケット２１０のＴＥＬオプションは、制限フィールドにデフォルト値（例えば、４）が設定され、識別子フィールドにＴＥＰ１８２の識別子（例えば、１８２）が設定される。
【００６６】
そして、トンネルパケット２１０（図２では、Ｐｋｔ｛ＴＥＬ＝４，ＩＤ＝１８２｝と表記）はＴＥＰ１８４に到達する。ＴＥＰ１８４では、トンネルドパケット２１０のＴＥＬオプションの識別子フィールドにＴＥＰ１８４自身の識別子が存在しないので、トンネルパケット２１０は、さらに、トンネルパケット２２０内にカプセル化される。ペイロードパケット２１０にはＴＥＬオプションが含まれているので、ＴＥＰ１８４は、トンネルパケット２２０に対して、新たなＴＥＬオプションを付加する。このトンネルパケット２２０に付加される新たなＴＥＬオプションは、ペイロードパケット２１０のＴＥＬオプションの制限フィールドの値から１を減算した値（すなわち、３）が設定された制限フィールドと、パケット２１０のＴＥＬオプションの識別子フィールドに等しい値（すなわち、１８２）が設定された識別子フィールドとを有している。
【００６７】
そして、トンネルパケット２２０（図２では、Ｐｋｔ｛ＴＥＬ＝３，ＩＤ＝１８２｝と表記）はＴＥＰ１８６に到達し、トンネルパケット２２０のＴＥＬオプションの識別子フィールドにＴＥＰ１８６自身の識別子が存在しないので、ＴＥＰ１８６で、さらにトンネルパケット２３０内にカプセル化される。ペイロードパケット２２０にはＴＥＬオプションが含まれているので、ＴＥＰ１８６は、トンネルパケット２３０に新たなＴＥＬオプションを付加する。このトンネルパケット２３０に付加される新たなＴＥＬオプションは、パケット２２０のＴＥＬオプションの制限フィールドの値から１を減算した値（すなわち、２）が設定された制限フィールドと、パケット２２０のＴＥＬオプションの識別子フィールドに等しい値（すなわち、１８２）が設定された識別子フィールドとを有している。
【００６８】
その後、トンネルパケット２３０（図２では、Ｐｋｔ｛ＴＥＬ＝２，ＩＤ＝１８２｝と表記）はＴＥＰ１８２に戻される。ＴＥＰ１８２は、受信したパケット２３０を調べ、パケット２３０に自身の識別子に等しい値が設定された識別子フィールドを有するＴＥＬオプションが含まれていることに気が付く。これによって、トンネリングループが起こった旨がＴＥＰ１８２に示される。
【００６９】
したがって、ＴＥＰ１８２は、パケットを破棄するとともに、トンネリングループが検出された旨を示すＩＣＭＰエラーメッセージ２４０（図２では、ＩＣＭＰ−Ｅｒｒｏｒと表記）をパケット２３０の送信者（すなわち、ＴＥＰ１８６）に返送する。ＴＥＰ１８６は、ＩＣＭＰエラーメッセージ２４０を受信すると、ＩＣＭＰエラーメッセージ２５０（図２では、ＩＣＭＰ−Ｅｒｒｏｒと表記）をＴＥＰ１８４に返送する。同様に、ＴＥＰ１８６は、ＩＣＭＰエラーメッセージ２６０（図２では、ＩＣＭＰ−Ｅｒｒｏｒと表記）をＴＥＰ１８２に返送する。そして、最終的に、ＴＥＰ１８２は、ＩＣＭＰエラーメッセージ２７０（図２では、ＩＣＭＰ−Ｅｒｒｏｒと表記）を最初の送信元ノード１８０に送り返す。
【００７０】
また、図３には、本発明の実施の形態において、トンネルエントリポイントが、カプセル化されるペイロードパケットを処理する際に使用するアルゴリズムの好適なフローチャートが図示されている。
【００７１】
まず、ステップＳ３１０において、ペイロードパケットのあて先オプションヘッダに、ＴＥＬオプションが存在するか否かのチェックが行われる。
【００７２】
ステップＳ３１０においてＴＥＬオプションが存在しない場合には、ステップＳ３２０に進み、トンネルエントリポイントはペイロードパケットのカプセル化を行うとともに、トンネルパケットのあて先オプションヘッダにＴＥＬオプションを付加する。このとき、付加されるＴＥＬオプションには、トンネルエントリポイント用に構成されたデフォルト値が設定された制限フィールドと、トンネルエントリポイントの識別子が設定された識別子フィールドとが設けられる。
【００７３】
一方、ステップＳ３１０においてペイロードパケットにＴＥＬオプションが含まれている場合には、ステップＳ３３０に進み、ペイロードパケットのＴＥＬオプションの制限フィールドのチェックが行われる。ここで、制限フィールドの値がゼロの場合には、ステップＳ３４０に進み、ペイロードパケットの送信元に対してＩＣＭＰエラーメッセージが返送される。このＩＣＭＰエラーメッセージは、トンネルカプセル化の制限を超えた旨を示すように設定される。
【００７４】
また、ステップＳ３３０において制限フィールドの値がゼロではない場合には、ステップＳ３５０に進む。ステップＳ３５０では、ペイロードパケットのＴＥＬオプションに、識別子フィールドが含まれているか否かのチェックが行われる。
【００７５】
ステップＳ３５０においてＴＥＬオプションに識別子フィールドが含まれていない場合には、ステップＳ３６０に示されるように、ペイロードパケットはカプセル化され、トンネルパケットヘッダにＴＥＬオプションが付加される。このとき、トンネルパケットヘッダに付加されるＴＥＬオプションには、ペイロードパケットのＴＥＬオプションの制限フィールドの値から１を減算した値を有する制限フィールドと、トンネルエントリポイントの識別子が設定された識別子フィールドとが含まれる。
【００７６】
一方、ステップＳ３５０においてペイロードパケットのＴＥＬオプションに識別子フィールドが含まれている場合には、ステップＳ３７０に進み、ペイロードパケットのＴＥＬオプションの識別子フィールドが、トンネルエントリポイント自身の識別子と同一の値であるか否かのチェックが行われる。
【００７７】
このとき、同一の値である場合には、トンネリングループが検出される。そして、ステップＳ３８０において、トンネリングループが検出された旨を示すＩＣＭＰエラーメッセージが、ペイロードパケットの送信元に返送される。
【００７８】
一方、ステップＳ３７０において、ペイロードパケットのＴＥＬオプションの識別子フィールドにトンネルエントリポイントの識別子が含まれていない場合、ステップＳ３９０に示されるように、ペイロードパケットはカプセル化されて、トンネルパケットヘッダにＴＥＬオプションが付加される。このとき、トンネルパケットヘッダに付加されるＴＥＬオプションには、ペイロードパケットのＴＥＬオプションの制限フィールドの値から１を減算した値を有する制限フィールドと、ペイロードパケットのＴＥＬオプションの識別子フィールドの値が設定された識別子フィールドとが設けられる。
【００７９】
また、図４には、本発明の実施の形態において、ＴＥＬオプションを含むトンネルパケット４００の好適なパケットフォーマットの一例が図示されている。トンネルパケット４００には、ペイロードとしてインナパケット４５０がカプセル化される。なお、図示明瞭とするため、パケット４５０の詳細な内容に関しては省略する。
【００８０】
送信元アドレスフィールド４０２には、トンネルエントリポイントのアドレスが含まれ、あて先アドレスフィールド４０４には、トンネル出口ポイントのアドレスが含まれる。これらの２つのフィールドは、標準ＩＰｖ６ヘッダのフィールドである。なお、図示明瞭とするため、標準ＩＰｖ６パケットの任意のフィールドが省略されていることは、当業者であれば分かるであろう。
【００８１】
また、ＴＥＬオプション４２０は、あて先オプションであり、パケット４００のあて先オプションヘッダ４１０内に存在している。あて先オプションヘッダ４１０には、あて先オプションヘッダ４１０であることを識別可能とするタイプフィールド４１２と、あて先オプションヘッダ４１０全体の長さを示す長さフィールド４１４とが含まれている。
【００８２】
なお、当業者であれば、実際には、タイプフィールド４１２があて先オプションヘッダ４１０に存在するのではなく、あて先オプションヘッダ４１０の直前のヘッダ内に存在することが分かるであろう。あて先オプションヘッダ４１０の前にタイプフィールドを配置した場合には説明上の混乱が生じるかもしれないので、ここでは、上述のように、説明を容易とするために簡略化された技術的表現を用いることにする。
【００８３】
あて先オプションヘッダ４１０には、１つ以上のあて先オプションが含まれる。ＴＥＬオプション４２０は、このようなオプションの１つである。ＴＥＬオプション４２０には、タイプフィールド４２２と長さフィールド４２４とが含まれている。タイプフィールド４２２によって、このオプションがＴＥＬオプション４２０であることが識別され、長さフィールド４２４によって、ＴＥＬオプション４２０全体の長さが示される。
【００８４】
さらに、ＴＥＬオプション４２０には、このパケット４００が受けることができるカプセル化の最大数を指定する制限フィールド４２６と、新たな識別子フィールド４２８も存在する。なお、当業者であれば、図示明瞭のため、図４では、ＴＥＬオプション内の他のフィールドが省略されていることが分かるであろう。
【００８５】
本発明によれば、非特許文献１に開示されている技術に、更に識別子フィールド４２８が付加される。識別子フィールド４２８は、本明細書において示されるように、トンネルエントリポイントがトンネリングループの形成を検出するために重要な役割を果たすものである。
【００８６】
また、図５には、本発明の実施の形態において、ＩＣＭＰエラーメッセージ５００の好適なパケットフォーマットの一例が図示されている。
【００８７】
送信元アドレスフィールド５０２には、送信者のアドレスが含まれ、あて先アドレスフィールド５０４には、受信者のアドレスが含まれる。これらの２つのフィールドは、標準ＩＰｖ６ヘッダのフィールドである。なお、図示明瞭とするため、標準ＩＰｖ６パケットの任意のフィールドが省略されていることは、当業者であれば分かるであろう。
【００８８】
ＩＣＭＰエラーメッセージとして、パケット５００にはＩＣＭＰヘッダ５１０が含まれ、また、可能な限りにおいて、エラーが生じた元のパケット５５０が含まれる。ＩＣＭＰヘッダ５１０のタイプフィールド５１２には、パケット５００のＩＣＭＰメッセージのタイプが示される。また、ＩＣＭＰヘッダ５１０のコードフィールド５１４には、このＩＣＭＰエラーに関するメッセージコードが示される。また、ＩＣＭＰヘッダ５１０のポインタフィールド５１６は、元のパケット５５０内のエラーとなったバイト（エラーが発見された場所）を示すために使用される。
【００８９】
本発明では、２つの好適なＩＣＭＰエラーメッセージが使用される。
【００９０】
１つ目は、トンネルカプセル化の制限（上限値）を超えた旨を示すＩＣＭＰエラーメッセージである。この場合には、ポインタフィールド５１６に、元のパケット５５０のＴＥＬオプションの制限フィールドを示す値が含まれることが望ましい。
【００９１】
２つ目は、トンネリングループが起こった旨を示すＩＣＭＰエラーメッセージである。この場合には、ポインタフィールド５１６に、元のパケット５５０のＴＥＬオプションの識別子フィールドを示す値が含まれることが望ましい。
【００９２】
なお、当業者であれば、タイプフィールド５１２、コードフィールド５１４、ポインタフィールド５１６のビットに関して特別な組み合わせを設定することで、ＩＣＭＰエラーメッセージが「トンネルカプセル化の制限の超過」エラー、又は「トンネリングループの検出」エラーを示すことが可能であることが理解できるであろう。
【００９３】
以降、本明細書では、「トンネルカプセル化の制限の超過」のＩＣＭＰエラーメッセージ及び「トンネリングループの検出」のＩＣＭＰエラーメッセージを、単にＩＣＭＰエラーメッセージと記載することにする。
【００９４】
また、上述の説明では、トンネルエントリポイントによってＴＥＬオプションに挿入される識別子として、各トンネルエントリポイントに一意である任意の文字列又はビットが仮定されている。
【００９５】
以下、識別子に関して、いくつかの好適な例を説明する。なお、当業者であれば、これらは単に一例に過ぎず、そして、識別子の実際の形式は、これらの例に限定されないことは分かるであろう。
【００９６】
識別子の形式の１つは、単に、各トンネルエントリポイントが、自身のＩＰアドレスを使用するものである。これは、識別子のグローバルの一意性が保証されるという利点がある。また、この形式の派生例として、トンネルエントリポイントのＩＰアドレスのハッシュ関数を演算した結果を使用することも実現可能である。これは、選ばれるハッシュ関数に応じて、信用性が高いレベルでユニークであるとともに、サイズがより小さくなるという利点を有している。
【００９７】
上述の本発明の実施の形態によれば、最初のトンネルエントリポイントがループの一部となる場合に、トンネルエントリポイントがトンネリングループを検出できることが保証される。しかしながら、ループ上のトンネルエントリポイント（最初のトンネルエントリポイントを除く）はループの検出は行うことはできない。これに関して、図６Ａ及び図６Ｂを参照しながら説明する。
【００９８】
図６Ａにおいて、送信元ノード１８０（図６Ａでは、ソースと表記）は、データパケットを任意のあて先に送信する送信元のノードである。送信元ノード１８０から送信されたパケットは、４つのトンネルエントリポイント（ＴＥＰ６００、ＴＥＰ１８２、ＴＥＰ１８４、ＴＥＰ１８６）を経由した経路を通ることになる。しかしながら、ここでは、構成のミスやその他の理由によって、３つのトンネルエントリポイント（ＴＥＰ１８２、ＴＥＰ１８４、ＴＥＰ１８６）でトンネリングループが形成されている。なお、データパス６１０、６１２、６１４、６１６、６１８は、パケットが通過する連続したルートを示している。これらの各ルートセグメントに沿って他の中継ルータも存在し得るが、図６Ａでは図示省略されている。
【００９９】
また、図６Ｂには、図６Ａに図示されている構成において、送信元ノード１８０がデータパケット６２０を送信する際のメッセージシーケンスが示されている。
【０１００】
データパケット６２０（図６Ｂでは、Ｄａｔａと表記）は、最初のトンネルエントリポイント（ＴＥＰ６００）に到達した場合、トンネルパケット６２２にカプセル化される。最初のトンネルエントリポイントであるＴＥＰ６００は、トンネルパケット６２２にＴＥＬオプションを挿入する。ＴＥＬオプションは、例えば「５」の値の制限フィールドと、ＴＥＰ６００の識別子（例えば、「６００」）に等しい値を有する識別子フィールドとを有している。
【０１０１】
そして、トンネルパケット６２２（図６Ｂでは、Ｐｋｔ｛ＴＥＬ＝５，ＩＤ＝６００｝と表記）は、経路６１２を経由してＴＥＰ１８２に到達する。パケット６２２には既に識別子フィールドを有するＴＥＬオプションが含まれており、トンネルパケット６２２のＴＥＬオプションの識別子フィールドにＴＥＰ１８２自身の識別子が存在しないので、ＴＥＰ１８２では、パケット６２２は単にトンネルパケット６２４にカプセル化され、元のＴＥＬオプションがトンネルパケット６２４にコピーされるとともに、新たなＴＥＬオプションの制限フィールドが１つ減算される。すなわち、トンネルパケット６２４のＴＥＬオプションの制限フィールドには、パケット６２２に付加されていた元のＴＥＬオプションの制限フィールドの値から１減算された値が設定される。
【０１０２】
そして、トンネルパケット６２４（図６Ｂでは、Ｐｋｔ｛ＴＥＬ＝４，ＩＤ＝６００｝と表記）は、経路６１４を経由してＴＥＰ１８４に到達する。同様に、パケット６２４には既に識別子フィールドを有するＴＥＬオプションが含まれており、トンネルパケット６２４のＴＥＬオプションの識別子フィールドにＴＥＰ１８４自身の識別子が存在しないので、ＴＥＰ１８４では、パケット６２４は単にトンネルパケット６２６にカプセル化され、元のＴＥＬオプションがトンネルパケット６２６にコピーされるとともに、新たなＴＥＬオプションの制限フィールドが１つ減算される。すなわち、トンネルパケット６２６のＴＥＬオプションの制限フィールドには、パケット６２４に付加されていた元のＴＥＬオプションの制限フィールドの値から１減算された値が設定される。
【０１０３】
そして、トンネルパケット６２６（図６Ｂでは、Ｐｋｔ｛ＴＥＬ＝３，ＩＤ＝６００｝と表記）は、経路６１６を経由してＴＥＰ１８６に到達する。ここでも、パケット６２６には既に識別子フィールドを有するＴＥＬオプションが含まれており、トンネルパケット６２６のＴＥＬオプションの識別子フィールドにＴＥＰ１８６自身の識別子が存在しないので、ＴＥＰ１８６では、パケット６２６は単にトンネルパケット６２８にカプセル化され、元のＴＥＬオプションがトンネルパケット６２８にコピーされるとともに、新たなＴＥＬオプションの制限フィールドが１つ減算される。すなわち、トンネルパケット６２８のＴＥＬオプションの制限フィールドには、パケット６２６に付加されていた元のＴＥＬオプションの制限フィールドの値から１減算された値が設定される。
【０１０４】
そして、トンネルパケット６２８（図６Ｂでは、Ｐｋｔ｛ＴＥＬ＝２，ＩＤ＝６００｝と表記）は、経路６１８を経由してＴＥＰ１８２に到達する。ＴＥＰ１８２がパケット６２８を再び受信したとき、ＴＥＬオプションの識別子フィールドは「６００」の識別子を有しているので、ＴＥＰ１８２は、ループが起こっている旨を検出することは不可能であり、引き続き、パケット６２８をトンネルパケット６３０でカプセル化してしまう。
【０１０５】
したがって、ＴＥＬオプションの識別子フィールドの値として一意の識別子だけを使用する方法では、ループの検出が不十分であることが分かる。
【０１０６】
ループの検出が可能となる方法としては、各トンネルエントリポイントが、自身が受信するＩＣＭＰエラーを監視し、そこから、ループが起こったか否かに関して推論を行う方法が挙げられる。これに関して、図６Ｂの後続のシーケンスを参照しながら説明する。
【０１０７】
図６Ｂに図示されているように、トンネリングループ上のＴＥＰ１８２、ＴＥＰ１８４、ＴＥＰ１８６による多重カプセル化の後、ＴＥＰ１８６に到達した際に、トンネルパケット６３２のＴＥＬオプションの制限フィールドはゼロとなる。したがって、ＴＥＰ１８６では、更なるパケットのカプセル化を行うことはできない。その代わり、ＴＥＰ１８６は、そのトンネルカプセル化の制限が超過した旨を示すＩＣＭＰエラーメッセージ６３４（図６Ｂでは、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−６３２｝と表記）をトンネルパケット６３２の送信元に送信する。なお、ＩＣＭＰエラーメッセージ６３４には、元のトンネルパケット６３２が含まれる。
【０１０８】
ＩＣＭＰエラーメッセージ６３４を受信したＴＥＰ１８４は、トンネルカプセル化の制限が超過した旨を把握する。そして、ＴＥＰ１８４は元のパケット６３０を抽出し、そのパケット６３０をＩＣＭＰエラーメッセージ６３６（図６Ｂでは、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−６３０｝と表記）内に置いて、パケット６３０の送信元（すなわち、ＴＥＰ１８２）に送信する。また、同時に、ＴＥＰ１８４は後に参照するために、ある短い期間だけ（すなわち、一時的に）、このＩＣＭＰエラーメッセージ６３４（もしくは、エラーの起こったパケットのＴＥＬオプションの識別子フィールドの値）を格納する。
【０１０９】
同様に、ＴＥＰ１８２は、ＩＣＭＰエラーメッセージ６３６を受信した場合に、トンネルカプセル化の制限が超過した旨を把握する。そして、ＴＥＰ１８２は元のパケット６２８を抽出し、そのパケット６２８をＩＣＭＰエラーメッセージ６３８（図６Ｂでは、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−６２８｝と表記）内に置いて、パケット６２８の送信元（すなわち、ＴＥＰ１８６）に送信する。また、同時に、ＴＥＰ１８２は後に参照するために、ある短い期間だけ、このＩＣＭＰエラーメッセージ６３６（もしくは、エラーの起こったパケットのＴＥＬオプションの識別子フィールドの値）を格納する。
【０１１０】
さらに、同様に、再びＴＥＰ１８６及びＴＥＰ１８４において、ＩＣＭＰエラーメッセージ６３８、６４０（もしくは、エラーの起こったパケットのＴＥＬオプションの識別子フィールドの値）の格納及びＩＣＭＰエラーメッセージ６４０、６４２の返送が行われる。
【０１１１】
ＩＣＭＰエラーがＴＥＰ１８６からＴＥＰ１８４を通って再びＴＥＰ１８２に戻るループを伝搬した場合、ＩＣＭＰエラーメッセージ（もしくは、エラーの起こったパケットのＴＥＬオプションの識別子フィールドの値）を格納した目的は明らかとなる。すなわち、ＩＣＭＰエラーメッセージ６４２を受信したＴＥＰ１８２は、ＩＣＭＰエラーメッセージ６４２内に存在する元のパケット６２４と、以前に格納されたＩＣＭＰエラーメッセージ６３６内に存在している元のパケット６３０との比較を行うことが可能となる。そして、ＴＥＰ１８２は、パケット６２４のＴＥＬオプション内の識別子フィールドと、パケット６３０のＴＥＬオプション内の識別子フィールドとが同一（すなわち、ＴＥＰ６００の識別子）であることを発見する。これによって、ＴＥＰ１８２に対して、トンネリングループが起こった旨が示される。
【０１１２】
なお、ＴＥＰ１８４においても同様に、ＩＣＭＰエラーメッセージ６４０内に存在する元のパケット６２６と、以前に格納されたＩＣＭＰエラーメッセージ６３４内に存在している元のパケット６３２との比較を行うことで、トンネリングループの検出を行うことが可能である。さらに、ＴＥＰ１８６においても、ＩＣＭＰエラーメッセージ６３４の送信時に、元のパケット６３２を格納しておくことで、ループを一周して戻ってきたＩＣＭＰエラーメッセージ６３８の受信時に、トンネリングループを検出することが可能となる。
【０１１３】
上述の説明によれば、トンネルエントリポイントは、トンネルカプセル化の制限が超過した旨を示す受信ＩＣＭＰエラーメッセージ（もしくは、エラーの起こったパケットのＴＥＬオプションの識別子フィールドの値）を格納することによって、トンネリングループが起こっている旨を推測できるようになることが分かる。トンネルエントリポイントは、ある短い期間内に別のＩＣＭＰエラーメッセージを受信した場合には、２つのＩＣＭＰエラーメッセージに含まれる元のパケットのＴＥＬオプションの識別子フィールドを比較することが可能である。そして、両者が同一の場合、これによってトンネリングループが起こった旨が示される。
【０１１４】
上記の方法は、最初のトンネルエントリポイントがループの一部ではない場合であっても、トンネリングエントリポイントがトンネリングループを検出することができる方法に見えるが、完全な解決方法であるとは言えない。このことに関して、図６Ｃに示されるメッセージシーケンスチャートを用いて説明する。
【０１１５】
図６Ｃにおいて、トンネルエントリポイント（ＴＥＰ６００、ＴＥＰ１８２、ＴＥＰ１８９）は、ループを形成していない。なお、ＴＥＰ１８２とＴＥＰ１８９との間に存在するトンネルエントリポイントに関しては、図示省略する。さらに、これらのトンネルエントリポイントのいずれに関しても、トンネリングループは形成されていない。
【０１１６】
送信元ノード１８０から送信されたデータパケット６５０（図６Ｃでは、Ｄａｔａと表記）は、最初のトンネルエントリポイント（ＴＥＰ６００）に到達すると、トンネルパケット６５２にカプセル化される。最初のトンネルエントリポイントであるＴＥＰ６００は、トンネルパケット６５２内にＴＥＬオプションを挿入する。このＴＥＬオプションは、例えば「５」の制限フィールドの値と、ＴＥＰ６００の識別子に等しい値を有する識別子フィールドとを有している。
【０１１７】
そして、トンネルパケット６５２（図６Ｃでは、Ｐｋｔ｛ＴＥＬ＝５，ＩＤ＝６００｝と表記）は、ＴＥＰ１８２に到達する。ＴＥＰ１８２では、パケット６５２には既に識別子フィールドを有するＴＥＬオプションが含まれており、トンネルパケット６５２のＴＥＬオプションの識別子フィールドにＴＥＰ１８２自身の識別子が存在しないので、ＴＥＰ１８２は、単にパケット６５２をトンネルパケット６５４にカプセル化し、トンネルパケット６５４に元のＴＥＬオプションをコピーするとともに、新たなＴＥＬオプションの制限フィールドを１つ減算する。
【０１１８】
この動作は、パケットがトンネルパケット６５６（図６Ｃでは、Ｐｋｔ｛ＴＥＬ＝０，ＩＤ＝６００｝と表記）としてＴＥＰ１８９に到達するまで行われる。ＴＥＰ１８９において、ＴＥＬオプションの制限フィールドはゼロに減算されているので、ＴＥＰ１８９は、更なるパケットのカプセル化を行わない。その代わり、ＴＥＰ１８９は、トンネルカプセル化の制限が超過した旨を示すＩＣＭＰエラーメッセージ６５８（図６Ｃでは、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−６５６｝と表記）をトンネルパケット６５６の送信元に送信する。
【０１１９】
その後、このＩＣＭＰエラーメッセージは、逆方向に伝搬され、元のパケット６５４を含むＩＣＭＰエラーメッセージ６６０（図６Ｃでは、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−６５４｝と表記）としてＴＥＰ１８２に到達する。
【０１２０】
上述のように、ＴＥＰ１８２は、元のパケット６５４を抽出して、そのパケット６５４をＩＣＭＰエラーメッセージ６６２（図６Ｃでは、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−６５２｝と表記）内に入れて、パケット６５２の送信元（すなわち、ＴＥＰ６００）に送信する。また、同時に、ＴＥＰ１８２は後に参照するために、ある短い期間だけ、このＩＣＭＰエラーメッセージ６６０を格納する。
【０１２１】
ここで、送信元ノード１８０が、別のデータパケット６７０（図６Ｃでは、Ｄａｔａと表記）を送信したとする。ＴＥＰ６００において、このデータパケット６７０は、トンネルパケット６７２にカプセル化される。最初のトンネルエントリポイントであるＴＥＰ６００は、トンネルパケット６７２内にＴＥＬオプションを挿入する。このＴＥＬオプションは、例えば「５」の制限フィールドの値と、ＴＥＰ６００の識別子に等しい値を有する識別子フィールドとを有している。
【０１２２】
そして、トンネルパケット６７２（図６Ｃでは、Ｐｋｔ｛ＴＥＬ＝５，ＩＤ＝６００｝と表記）は、ＴＥＰ１８２に到達する。ＴＥＰ１８２では、パケット６７２には既に識別子フィールドを有するＴＥＬオプションが含まれているので、ＴＥＰ１８２は、単にパケット６７２をトンネルパケット６７４にカプセル化し、トンネルパケット６７４に元のＴＥＬオプションをコピーするとともに、新たなＴＥＬオプションの制限フィールドを１つ減算する。
【０１２３】
この動作は、パケットがトンネルパケット６７６（図６Ｃでは、Ｐｋｔ｛ＴＥＬ＝０，ＩＤ＝６００｝と表記）としてＴＥＰ１８９に到達するまで行われる。ＴＥＰ１８９において、ＴＥＬオプションの制限フィールドはゼロに減算されているので、ＴＥＰ１８９は、更なるパケットのカプセル化を行わない。その代わり、ＴＥＰ１８９は、トンネルカプセル化の制限が超過した旨を示すＩＣＭＰエラーメッセージ６７８（図６Ｃでは、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−６７６｝と表記）をトンネルパケット６７６の送信元に送信する。
【０１２４】
その後、このＩＣＭＰエラーメッセージは、逆方向に伝搬され、元のパケット６７４を含むＩＣＭＰエラーメッセージ６８０（図６Ｃでは、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−６７４｝と表記）としてＴＥＰ１８２に到達する。
【０１２５】
ＴＥＰ１８２は、ＩＣＭＰエラーメッセージ６８０を受信すると、以前に格納されたＩＣＭＰエラーメッセージ６６０に存在している元のパケット６５４と、ＩＣＭＰエラーメッセージ６８０に存在している元のパケット６７４との比較を行う。そして、ＴＥＰ１８２は、パケット６５４のＴＥＬオプション内の識別子フィールドと、パケット６７４のＴＥＬオプション内の識別子フィールドとが同一（すなわち、ＴＥＰ６００の識別子）であることを発見する。これにより、ＴＥＰ１８２は、トンネリングループが起こっていると誤って結論付ける可能性がある。
【０１２６】
上述の説明によれば、一意の識別子（例えば、ＩＰアドレスや、ＩＰアドレスのハッシュ値）を使用することによって、最初のトンネルエントリポイントがループ上に存在する場合には、トンネルエントリポイントは、トンネリングループを正確に検出することができるが、最初のトンネルエントリポイントがループ上に存在しない場合には、トンネリングループの検出の正確性は低減してしまう。
【０１２７】
また、一意の識別子を使用しながらも、最初のトンネルエントリポイントがループ上に存在しない場合のトンネリングループの検出の正確性を高めるために、各ＴＥＰにおいてＴＥＬオプション内の識別子フィールドをコピーするだけでなく、自身の一意の識別子（例えば、自身のＩＰアドレスや、自身のＩＰアドレスをハッシュ関数によって計算した計算結果）も追加する方法が可能である。この場合には、ＴＥＰによってカプセル化が行われるたびに、カプセル化を行ったＴＥＰに一意の識別子が、ＴＥＬオプション内の識別子フィールドに追加されていく、そして、一度通過したＴＥＰにパケットが再びループして戻ってきたときに、自身の一意の識別子とＴＥＬオプション内の識別子フィールドとの一致が発見されることにより、ＴＥＰは、ループの構造によらずトンネリングループを検出することが可能になる。
【０１２８】
なお、この方法では、最初のトンネルエントリポイントがループ上に存在しない場合のトンネリングループの検出の正確性を高めることができるが、ネットワーク内で十分に一意と言える識別子のサイズがそれなりに大きいうえ、あるＴＥＰにおいて、それまで通過したＴＥＰの一連の識別子をコピーすることに加え、自身の識別子を付加することになるので、パケットのオーバヘッドが大きくなってしまうことが容認される必要がある。また、元のパケットの一連の識別子を削除した後、カプセル化したパケットに自身の識別子を付加した一連の識別子を挿入する方法も考えられるが、パケットの送信元とあて先のいずれでもないノード（パケットを転送するノード）がインナパケットを変更することを許可しなければならず、セキュリティ上のリスクを含む必要がある。
【０１２９】
一意の識別子に関する問題を解決するためには、異なるトンネルパケットに対して、異なる数値を識別子として使用する方法が可能である。この方法は、識別子として使用される一連の異なる数値を生成する数値生成器（number generator）を使用することによって実現可能である。この数値生成器は、ランダムに、又はある所定の順序（例えば、昇順、降順、擬似乱数など）に従って、数値を生成できることが望ましい。
【０１３０】
図７には、本発明の実施の形態において、最初のトンネルエントリポイントがループ上に存在しない場合であっても、異なる数値を識別子として使用することによって、トンネリングループの検出が可能となる方法が示されている。
【０１３１】
図７では、トンネルエントリポイント（ＴＥＰ６００、１８２、１８４、１８６）は、図６Ａに示されるように配置されている。送信元ノード１８０がデータパケット７００（図７では、Ｄａｔａと表記）を送信した場合、パケット７００は、最初のトンネルエントリポイント（ＴＥＰ６００）に到達する。
【０１３２】
ＴＥＰ６００は、新たなＴＥＬオプションを有するトンネルパケット７０２にパケット７００をカプセル化する。ＴＥＬオプションの制限フィールドは、例えば「５」のデフォルト値と、例えば「ｒ１」の識別子の値とを有している。なお、識別子の値は、ＴＥＰ６００によって生成される。
【０１３３】
そして、トンネルパケット７０２（図７では、Ｐｋｔ｛ＴＥＬ＝５，ＩＤ＝ｒ１｝と表記）は、経路６１２を経由してＴＥＰ１８２に到達する。トンネルパケット７０２のＴＥＬオプションの識別子フィールドは、ＴＥＰ１８２が一時的に格納している識別子（以前転送したことのあるパケットを識別可能とする識別子）と一致しないので、このパケット７０２は、ＴＥＰ１８２に到達すると、トンネルパケット７０４に更にカプセル化される。元のパケット７０２にはＴＥＬオプションが含まれているので、ＴＥＰ１８２は、単にトンネルパケット７０２内のＴＥＬオプションをトンネルパケット７０４にコピーするとともに、制限フィールドの値を４に減少させる。さらに、ＴＥＰ１８２は、ある短い期間だけ、識別子の値「ｒ１」を記憶しておく。この目的は後に明らかとなる。
【０１３４】
そして、トンネルパケット７０４（図７では、Ｐｋｔ｛ＴＥＬ＝４，ＩＤ＝ｒ１｝と表記）は、次のトンネルエントリポイント（ＴＥＰ１８４）に到達する。ＴＥＰ１８４では、トンネルパケット７０４は、トンネルパケット７０６に更にカプセル化される。元のパケット７０４にはＴＥＬオプションが含まれているので、ＴＥＰ１８４は、単にトンネルパケット７０４内のＴＥＬオプションをトンネルパケット７０６にコピーするとともに、制限フィールドの値を３に減少させる。また、同様に、ＴＥＰ１８４も、ある短い期間だけ、識別子の値「ｒ１」を記憶しておく。
【０１３５】
そして、トンネルパケット７０６（図７では、Ｐｋｔ｛ＴＥＬ＝３，ＩＤ＝ｒ１｝と表記）は、次のトンネルエントリポイント（ＴＥＰ１８６）に到達する。トンネルパケット７０６のＴＥＬオプションの識別子フィールドは、ＴＥＰ１８６が一時的に格納している識別子（以前転送したことのあるパケットを識別可能とする識別子）と一致しないので、ＴＥＰ１８６では、トンネルパケット７０６は、トンネルパケット７０８に更にカプセル化される。元のパケット７０６にはＴＥＬオプションが含まれているので、ＴＥＰ１８６は、単にトンネルパケット７０６内のＴＥＬオプションをトンネルパケット７０８にコピーするとともに、制限フィールドの値を２に減少させる。また、同様に、ＴＥＰ１８６も、ある短い期間だけ、識別子の値「ｒ１」を記憶しておく。
【０１３６】
そして、トンネルパケット７０８（図７では、Ｐｋｔ｛ＴＥＬ＝２，ＩＤ＝ｒ１｝と表記）が再びＴＥＰ１８２に到達すると、ＴＥＰ１８２は、トンネルパケット７０８の識別子フィールドと、先ほど一時的に記憶した識別子の値との比較を行う。そして、ＴＥＰ１８２は、識別子の値が同一であることに気付き、トンネリングループが検出されたと断定する。これは、異なるトンネルパケットが異なる識別子を有するように識別子の値が生成されているためであり、以前受信したパケットと同一の識別子の値を有するトンネルパケットの受信は、トンネリングループが起こっていることを示しているためである。
【０１３７】
なお、実際の環境では複数のトンネリングパケットが扱われることになるので、ＴＥＰは、新しい識別子を検出するたびに、検出された新しい識別子を順次記憶するとともに、古くなった識別子を順次削除していくことも可能である。
【０１３８】
この結果、ＴＥＰ１８２は、トンネルパケットの送信者（すなわち、ＴＥＰ１８６）に対して、ＩＣＭＰエラーメッセージ７１０（図７では、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−７０８｝と表記）を送信する。ＩＣＭＰエラーメッセージ７１０は、元のトンネルパケット７０８を含むとともに、エラーが「トンネリングループの検出」のタイプであることを示している。
【０１３９】
そして、このエラーは、ＩＣＭＰエラーメッセージ７１２、７１４、７１６、７１８（図７では、それぞれＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−７０６｝、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−７０４｝、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−７０２｝、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−７００｝と表記）を通じて、送信元ノード１８０に逆方向に伝搬される。
【０１４０】
ＴＥＬオプションの識別子フィールドが数値生成器を使用して生成されている場合には、トンネルエントリポイントは、上述のアルゴリズムとは異なるアルゴリズム（例えば、図８に示すアルゴリズム）に従って、トンネリングループの検出を行う必要がある。図８には、本発明の実施の形態における好適なフローチャートが示されている。
【０１４１】
まず、ステップＳ８１０において、ペイロードパケットのあて先オプションヘッダに、ＴＥＬオプションが存在するか否かのチェックが行われる。
【０１４２】
ステップＳ８１０においてＴＥＬオプションが存在しない場合には、ステップＳ８２０に進み、トンネルエントリポイントは、ペイロードパケットのカプセル化を行うとともに、トンネルパケットのあて先オプションヘッダにＴＥＬオプションを付加する。このとき付加されるＴＥＬオプションには、トンネルエントリポイント用に構成されたデフォルト値が設定された制限フィールドと、新たに生成された数値が設定された識別子フィールドとが含まれる。
【０１４３】
一方、ステップＳ８１０においてペイロードパケットにＴＥＬオプションが含まれている場合には、ステップＳ８３０に進み、ペイロードパケットのＴＥＬオプションの制限フィールドのチェックが行われる。ここで、制限フィールドの値がゼロの場合には、ステップＳ８４０に進み、ペイロードパケットの送信元に対してＩＣＭＰエラーメッセージが返送される。このＩＣＭＰエラーメッセージは、トンネルカプセル化の制限を超えた旨を示すように設定される。
【０１４４】
また、ステップＳ８３０において制限フィールドの値がゼロではない場合には、ステップＳ８５０に進む。ステップＳ８５０では、ペイロードパケットのＴＥＬオプションに、識別子フィールドが含まれているか否かのチェックが行われる。
【０１４５】
ステップＳ８５０においてＴＥＬオプションに識別子フィールドが含まれていない場合には、ステップＳ８６０に示すように、ペイロードパケットはカプセル化され、トンネルパケットヘッダにＴＥＬオプションが付加される。このとき、トンネルパケットヘッダに付加されるＴＥＬオプションには、ペイロードパケットのＴＥＬオプションの制限フィールドの値から１を減算した値を有する制限フィールドと、新たに生成された数値が設定された識別子フィールドとが含まれる。
【０１４６】
一方、ステップＳ８５０においてペイロードパケットのＴＥＬオプションに識別子フィールドが含まれている場合には、ステップＳ８７０に進み、ペイロードパケットのＴＥＬオプションの識別子フィールドに関して、トンネルエントリポイントが以前に受信したトンネルパケットに係る一時的に格納されている識別子と同一か否かのチェックが行われる。
【０１４７】
そして、ステップＳ８７０において両者が同一の場合（すなわち、ペイロードパケットのＴＥＬオプションの識別子フィールドの値が、一時的に格納されている識別子のいずれかと一致する場合）には、トンネリングループが検出される。その結果、ステップＳ８８０において、トンネリングループが検出された旨を示すＩＣＭＰエラーメッセージが、ペイロードパケットの送信元に送信される。
【０１４８】
一方、ステップＳ８７０においてペイロードパケットのＴＥＬオプションの識別子フィールドが、以前に格納された識別子のいずれとも一致しない場合には、ステップＳ８９０に進む。ステップＳ８９０では、ペイロードパケットはカプセル化され、トンネルパケットヘッダにＴＥＬオプションが付加される。このとき、トンネルパケットヘッダに付加されるＴＥＬオプションには、ペイロードパケットのＴＥＬオプションの制限フィールドの値から１を減算した値を有する制限フィールドと、ペイロードパケットのＴＥＬオプションの識別子フィールドが設定された識別子フィールドとが含まれる。さらに、このペイロードパケットのＴＥＬオプションの識別子フィールドは、ある短い期間だけ、トンネルエントリポイントによって格納される。なお、ある短い期間以上の時間が経過した場合には、格納されている識別子は、トンネルエントリポイントのメモリから解放される。
【０１４９】
上述のように、生成された数値を識別子として使用することによって、トンネルエントリポイントは、最初のトンネルエントリポイントがループ上に存在しない場合に、ＩＰアドレスなどの静的な識別子を用いた場合よりも、より正確にトンネリングループを検出することが可能となる。
【０１５０】
しかしながら、この方法は、最初のトンネルエントリポイントがループ上に存在する場合には、ループの検出精度を低下させることになる。これは、各トンネルエントリポイントがそれぞれ異なる数値を生成することは保証されにくいためである。すなわち、２つのトンネルエントリポイントが２つの異なるトンネルパケットに対して同一の識別子を生成してしまうおそれがあり、その結果、トンネルエントリポイントは、実在しないトンネリングループを誤って検出してしまうおそれがある。
【０１５１】
さらに、ループの検出を行うために生成された識別子を使用することが可能か否かは、識別子のサイズ、トンネルエントリポイントが識別子を格納しておく期間（上述のある短い期間）、ループ上のトンネルエントリポイントの数に依存する。
【０１５２】
一般に、識別子（すなわち、識別子に使用されるビット数）のサイズが大きいほど、２つのトンネルエントリポイントが異なるパケットに対して同一の識別子を生成する可能性は少なくなる。しかしながら、識別子のサイズが大きいほど、パケットのオーバヘッドや、必要なメモリは大きくなる。
【０１５３】
また、同様に、受信した識別子が長い期間格納されることにより、特にトンネリングループが大きい場合（すなわち、トンネリングループが多数のノードによって構成される場合）に、トンネルエントリポイントは、より正確にトンネリングループを検出することが可能となる。しかしながら、識別子を長い期間格納するためには、より大きなメモリが必要となるとともに、識別子の比較数も多くなる。
【０１５４】
受信した識別子を格納する時間の長さを決定する方法としては、ＴＥＬオプションの制限フィールドの値に従って時間の大きさを決定する方法が可能である。これは、制限フィールドの値が大きいトンネルパケットは、大きなトンネリングループを経由する可能性が高いことを意味している一方、小さな制限フィールドを有するトンネルパケットは、ループを一周する前にトンネルカプセル化の制限がゼロになることによって破棄される可能性があることに基づいている。
【０１５５】
上述の説明によれば、各トンネルパケットに対して異なる識別子を使用することによって、トンネルエントリポイントは、最初のトンネルエントリポイントがループ上に存在しない場合に、一意の識別子を使用することによって提供される方法よりも正確にトンネリングループを検出することが可能となる。しかしながら、この方法によれば、最初のトンネルエントリポイントがループに存在する場合の精度の低減や、メモリの増加、計算の必要性をもたらされる可能性もある。
【０１５６】
そこで、上述の２つの方法（識別子にトンネルエントリポイント固有の値を用いる方法と、識別子に各トンネルパケットに固有の値を用いる方法）を組み合わせることによって、双方の短所を補完することが可能である。
【０１５７】
この場合、識別子は、各トンネルエントリポイントに一意である静的な部分と、異なるトンネルパケットに対して異なるように生成される動的な部分の２つの部分によって構成される。静的な部分は、トンネルエントリポイントのＩＰアドレス、又はトンネルエントリポイントのＩＰアドレスの暗号ハッシュが可能である。一方、動的な部分は、例えば、ランダムに生成される数列や昇順又は降順の数列から生成される数値が可能である。
【０１５８】
なお、当業者であれば、静的及び動的な部分を任意に組み合わせることによって識別子として使用可能となることが分かるであろう。静的及び動的な部分の組み合わせとしては、例えば、静的な部分を識別子のプレフィックスとするとともに動的な部分を識別子のサフィックスとしたり、動的な部分を識別子のプレフィックスとするとともに静的な部分を識別子のサフィックスとしたり、あるいは、２つの部分を交互に配置して識別子を形成したりすることが挙げられる。
【０１５９】
図９には、本発明の実施の形態において、識別子を静的及び動的な部分で構成することにより、トンネリングループを検出する方法が図示されている。なお、図９では、図７と同様に、トンネルエントリポイント（ＴＥＰ６００、１８２、１８４、１８６）が、図６Ａに示されるように配置されている。送信元ノード１８０がデータパケット９００（図９では、Ｄａｔａと表記）を送信すると、パケット９００は、最初のトンネルエントリポイント（ＴＥＰ６００）に到達する。
【０１６０】
ＴＥＰ６００は、新たなＴＥＬオプションを有するトンネルパケット９０２にパケット９００をカプセル化する。ＴＥＬオプションの制限フィールドは、例えば「５」のデフォルト値と、例えば「６００＋ｒ１」の識別子の値とを有している。なお、識別子の静的な部分は、ＴＥＰ６００に一意である「６００」であり、ＴＥＰ６００によって生成された動的な部分は「ｒ１」である。
【０１６１】
そして、トンネルパケット９０２（図７では、Ｐｋｔ｛ＴＥＬ＝５，ＩＤ＝６００＋ｒ１｝と表記）はＴＥＰ１８２に到達し、トンネルパケット９０２のＴＥＬオプションの識別子フィールドに、ＴＥＰ１８２自身の識別子、及びＴＥＰ１８２が一時的に格納している識別子（以前転送したことのあるパケットを識別可能とする識別子）が存在しないので、ＴＥＰ１８２において、トンネルパケット９０４に更にカプセル化される。元のパケット９０２にはＴＥＬオプションが含まれているので、ＴＥＰ１８２は、単にトンネルパケット９０２内のＴＥＬオプションをトンネルパケット９０４にコピーするとともに、制限フィールドの値を４に減少させる。さらに、ＴＥＰ１８２は、ある短い期間だけ、識別子の値「６００＋ｒ１」を記憶しておく。
【０１６２】
そして、トンネルパケット９０４（図９では、Ｐｋｔ｛ＴＥＬ＝４，ＩＤ＝６００＋ｒ１｝と表記）は、次のトンネルエントリポイント（ＴＥＰ１８４）に到達する。ＴＥＰ１８４では、トンネルパケット９０４のＴＥＬオプションの識別子フィールドに、ＴＥＰ１８４自身の識別子、及びＴＥＰ１８４が一時的に格納している識別子（以前転送したことのあるパケットを識別可能とする識別子）が存在しないので、トンネルパケット９０４は、トンネルパケット９０６に更にカプセル化される。元のパケット９０４にはＴＥＬオプションが含まれているので、ＴＥＰ１８４は、単にトンネルパケット９０４内のＴＥＬオプションをトンネルパケット９０６にコピーするとともに、制限フィールドの値を３に減少させる。また、同様に、ＴＥＰ１８４も、ある短い期間だけ、識別子の値「６００＋ｒ１」を記憶しておく。
【０１６３】
そして、トンネルパケット９０６（図９では、Ｐｋｔ｛ＴＥＬ＝３，ＩＤ＝６００＋ｒ１｝と表記）は、次のトンネルエントリポイント（ＴＥＰ１８６）に到達する。ＴＥＰ１８６では、トンネルパケット９０６のＴＥＬオプションの識別子フィールドに、ＴＥＰ１８６自身の識別子、及びＴＥＰ１８６が一時的に格納している識別子（以前転送したことのあるパケットを識別可能とする識別子）が存在しないので、トンネルパケット９０６は、トンネルパケット９０８に更にカプセル化される。元のパケット９０６にはＴＥＬオプションが含まれているので、ＴＥＰ１８６は、単にトンネルパケット９０６内のＴＥＬオプションをトンネルパケット９０８にコピーするとともに、制限フィールドの値を２に減少させる。また、同様に、ＴＥＰ１８６も、ある短い期間だけ、識別子の値「６００＋ｒ１」を記憶しておく。
【０１６４】
そして、トンネルパケット９０８（図９では、Ｐｋｔ｛ＴＥＬ＝２，ＩＤ＝６００＋ｒ１｝と表記）が再びＴＥＰ１８２に到達すると、ＴＥＰ１８２は、トンネルパケット９０８の識別子フィールドと、先ほど一時的に記憶した識別子の値との比較を行う。そして、ＴＥＰ１８２は、識別子の値が同一であることに気付き、トンネリングループが検出された旨が明らかとなる。
【０１６５】
なお、実際の環境では複数のトンネリングパケットが扱われることになるので、ＴＥＰは、一時的に記憶しておく識別子の格納量を固定しておき、新しい識別子を検出するたびに、検出された新しい識別子を順次記憶するとともに、古くなった識別子を順次削除していくことも可能である。
【０１６６】
この結果、ＴＥＰ１８２は、トンネルパケット９０８の送信者（すなわち、ＴＥＰ１８６）に対して、ＩＣＭＰエラーメッセージ９１０（図９では、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−９０８｝と表記）を送信する。ＩＣＭＰエラーメッセージ９１０は、元のトンネルパケット９０８を含むとともに、エラーが「トンネリングループの検出」のタイプであることを示している。
【０１６７】
そして、このエラーは、ＩＣＭＰエラーメッセージ９１２、９１４、９１６、９１８（図９では、それぞれＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−９０６｝、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−９０４｝、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−９０２｝、ＩＣＭＰ−Ｅｒｒｏｒ｛Ｐｋｔ−９００｝と表記）を通じて、送信元ノード１８０に逆方向に伝搬される。
【０１６８】
ＴＥＬオプションの識別子フィールドに静的及び動的な部分が存在する場合には、トンネルエントリポイントは、上述のアルゴリズムとは異なるアルゴリズム（例えば、図１０に示すアルゴリズム）に従って、トンネリングループの検出を行う必要がある。図１０には、本発明の実施の形態における好適なフローチャートが示されている。
【０１６９】
まず、ステップＳ１０１０において、ペイロードパケットのあて先オプションヘッダに、ＴＥＬオプションが存在するか否かのチェックが行われる。
【０１７０】
ステップＳ１０１０においてＴＥＬオプションが存在しない場合には、ステップＳ１０２０に進み、トンネルエントリポイントは、ペイロードパケットのカプセル化を行うとともに、トンネルパケットのあて先オプションヘッダにＴＥＬオプションを付加する。このとき付加されるＴＥＬオプションには、トンネルエントリポイント用に構成されたデフォルト値が設定された制限フィールドと、トンネルエントリポイントの一意の識別子及び新たに生成された数値が設定された識別子フィールドとが含まれる。
【０１７１】
一方、ステップＳ１０１０においてペイロードパケットにＴＥＬオプションが含まれている場合には、ステップＳ１０３０に進み、ペイロードパケットのＴＥＬオプションの制限フィールドのチェックが行われる。ここで、制限フィールドの値がゼロの場合には、ステップＳ１０４０に進み、ペイロードパケットの送信元に対してＩＣＭＰエラーメッセージが返送される。このＩＣＭＰエラーメッセージは、トンネルカプセル化の制限を超えた旨を示すように設定される。
【０１７２】
また、制限フィールドの値がゼロではない場合には、ステップＳ１０５０に進む。ステップＳ１０５０では、ペイロードパケットのＴＥＬオプションに、識別子フィールドが含まれているか否かのチェックが行われる。
【０１７３】
ステップＳ１０５０においてＴＥＬオプションに識別子フィールドが含まれていない場合には、ステップＳ１０６０に示されるように、ペイロードパケットはカプセル化され、トンネルパケットヘッダにＴＥＬオプションが付加される。このとき、トンネルパケットヘッダに付加されるＴＥＬオプションには、ペイロードパケットのＴＥＬオプションの制限フィールドの値から１を減算した値を有する制限フィールドと、トンネルエントリポイントの一意の識別子及び新たに生成された数値が設定された識別子フィールドとが含まれる。
【０１７４】
一方、ステップＳ１０５０においてペイロードパケットのＴＥＬオプションに識別子フィールドが含まれている場合には、ステップＳ１０７０に進み、ペイロードパケットのＴＥＬオプションの識別子フィールドに関して、静的な部分がトンネルエントリポイントの一意の識別子（すなわち、自身の識別子）と同一か否かのチェックが行われる。
【０１７５】
ステップＳ１０７０において静的な部分がトンネルエントリポイントの一意の識別子と同一の場合には、トンネリングループが起こっており、ステップＳ１０８０に進む。ステップＳ１０８０では、トンネリングループが検出された旨を示すＩＣＭＰエラーメッセージが、ペイロードパケットの送信元に送信される。
【０１７６】
一方、ステップＳ１０７０において静的な部分がトンネルエントリポイントの一意の識別子と同一ではない場合には、ステップＳ１０７５に進み、識別子全体（静的及び動的な部分）に関して、トンネルエントリポイントが以前に受信したトンネルパケットに係る一時的に格納されている識別子のいずれかと同一であるか否かのチェックが行われる。このステップＳ１０７５によって、同一のトンネルエントリポイントにおいて生成された識別子のチェックが行われる。
【０１７７】
ステップＳ１０７５において、ペイロードパケットのＴＥＬオプションの識別子フィールドが、トンネルエントリポイントが以前に受信したトンネルパケットの一時的に格納されている識別子のいずれかと同一である場合には、トンネリングループが検出される。その結果、ステップＳ１０８０において、トンネリングループが検出された旨を示すＩＣＭＰエラーメッセージが、ペイロードパケットの送信元に送信される。
【０１７８】
一方、ステップＳ１０７５において、ペイロードパケットのＴＥＬオプションの識別子フィールドが、トンネルエントリポイントが以前に受信したトンネルパケットの一時的に格納されている識別子のいずれとも同一ではない場合には、ステップＳ１０９０に進み、ペイロードパケットはカプセル化され、トンネルパケットヘッダにＴＥＬオプションが付加される。このとき、トンネルパケットヘッダに付加されるＴＥＬオプションには、ペイロードパケットのＴＥＬオプションの制限フィールドの値から１を減算した値を有する制限フィールドと、ペイロードパケットのＴＥＬオプションの識別子フィールドが設定された識別子フィールドとが含まれる。さらに、このペイロードパケットのＴＥＬオプションの識別子フィールドは、ある短い期間だけ、トンネルエントリポイントによって格納される。なお、ある短い期間以上の時間が経過した場合には、格納されている識別子は、トンネルエントリポイントのメモリから解放される。
【０１７９】
トンネリングループが形成される場合としては、主に２つの場合が存在する。図１１Ａ及び図１１Ｂには、これらの２つの場合が図示されている。ここで、送信元ノード１１００（図１１Ａ及び図１１Ｂでは、ソースと表記）はデータパケットの発信元である。
【０１８０】
図１１Ａにおいて、送信元ノード１１００から送信されたデータパケットは、まず、経路１１１０を通ってトンネルエントリポイント（ＴＥＰ１１２０）に届く。なお、経路１１１０に沿って、不図示の複数のルータが存在してもよいが、ここでは、ＴＥＰ１１２０が、データパケットをカプセル化する最初のトンネルエントリポイントである。
【０１８１】
そして、カプセル化されたパケットは経路１１１２を経由してＴＥＰ１１２２に発送され、ＴＥＰ１１２２において、トンネルパケットは更にカプセル化される。なお、経路１１１２に沿って、不図示の複数のルータが存在してもよい。
【０１８２】
そして、カプセル化されたパケットは経路１１１４を経由してＴＥＰ１１２４に発送され、ＴＥＰ１１２４において、トンネルパケットは更にカプセル化される。なお、経路１１１４に沿って、不図示の複数のルータが存在してもよい。
【０１８３】
そして、カプセル化されたパケットは経路１１１６を経由してＴＥＰ１１２０に戻る。なお、経路１１１６に沿って、不図示の複数のルータが存在してもよい。その結果、最初のトンネルエントリポイント（すなわち、ＴＥＰ１１２０）がループの一部を形成するトンネリングループが形成される。
【０１８４】
一方、図１１Ｂでは、送信元ノード１１００から送信されたデータパケットは、まず、経路１１３０を通ってトンネルエントリポイント（ＴＥＰ１１４０）に届く。なお、経路１１３０に沿って、不図示の複数のルータが存在してもよいが、ここでは、ＴＥＰ１１４０が、データパケットをカプセル化する最初のトンネルエントリポイントである。
【０１８５】
そして、カプセル化されたパケットは経路１１３２を経由してＴＥＰ１１４２に発送され、ＴＥＰ１１４２において、トンネルパケットは更にカプセル化される。なお、経路１１３２に沿って、不図示の複数のルータが存在してもよい。
【０１８６】
そして、カプセル化されたパケットは経路１１３４を経由してＴＥＰ１１４４に発送され、ＴＥＰ１１４４において、トンネルパケットは更にカプセル化される。なお、経路１１３４に沿って、不図示の複数のルータが存在してもよい。
【０１８７】
そして、カプセル化されたパケットは経路１１３６を経由してＴＥＰ１１４６に発送され、ＴＥＰ１１４６において、トンネルパケットは更にカプセル化される。なお、経路１１３６に沿って、不図示の複数のルータが存在してもよい。
【０１８８】
そして、カプセル化されたパケットは経路１１３８を経由してＴＥＰ１１４２に戻る。なお、経路１１３８に沿って、不図示の複数のルータが存在してもよい。その結果、最初のトンネルエントリポイント（すなわち、ＴＥＰ１１４０）がループ上に存在しない状態で、トンネリングループが形成される。
【０１８９】
また、図１１Ｃには、トンネリングループを形成しない、多数のトンネルエントリポイントに関する別の構成例が図示されている。図１１Ｃでは、送信元ノード１１００（図１１Ｃでは、ソースと表記）から送信されたデータパケットは、最初に経路１１５０を通って、トンネルエントリポイント（ＴＥＰ１１６０）に届く。なお、経路１１５０に沿って、不図示の複数のルータが存在してもよいが、ここでは、ＴＥＰ１１６０が、データパケットをカプセル化する最初のトンネルエントリポイントである。
【０１９０】
そして、カプセル化されたパケットは経路１１５２を経由してＴＥＰ１１６２に発送され、ＴＥＰ１１６２において、トンネルパケットは更にカプセル化される。なお、経路１１５２に沿って、不図示の複数のルータが存在してもよい。
【０１９１】
その後、カプセル化されたパケットは経路１１５４を経由してＴＥＰ１１６４に発送され、ＴＥＰ１１６４において、トンネルパケットは更にカプセル化される。なお、経路１１５４に沿って、不図示の複数のルータが存在してもよい。
【０１９２】
そして、カプセル化されたパケットは経路１１５６を経由してＴＥＰ１１６６に発送され、ＴＥＰ１１６６において、トンネルパケットは更にカプセル化される。なお、経路１１５６に沿って、不図示の複数のルータが存在してもよい。この場合には、トンネリングループは形成されない。なお、これらのトンネルエントリポイントは、他のエンティティとの間においてはトンネルを確立したルータであってもよい。
【０１９３】
なお、当業者であれば、本発明は、ＶＰＮゲートウェイ、モバイルＩＰｖ６又はネットワークモビリティにおけるホームエージェント、モバイルルータ、ＩＰｖ４−ＩＰｖ６変換ルータなどの任意の形式のトンネルエントリポイントに適用されることが分かるであろう。さらに、トンネリングループは、異なるタイプのトンネルエントリポイントの組み合わせによって形成されてもよい。
【０１９４】
本明細書には、識別子を使用してトンネリングループの形成を検出するための３つの好適な方法が記載されている。そして、各識別子の形式によって、それぞれ異なる利益がもたらされる。なお、当業者であれば、本発明に関して、各識別子の形式に関する利益に基づき、特に異なる状況に応じて、異なる識別子の使用が可能であることが分かるであろう。
【０１９５】
本発明に係る第１の好適なトンネリングループ検出方法は、例えばトンネルエントリポイントのＩＰアドレスなどのように、静的かつ一意の識別子を使用するものである。上述のように、静的かつ一意の識別子を使用することによって、最初のトンネルエントリポイントがループの一部である場合（例えば、図１１Ａに示す構成の場合）に、トンネルエントリポイントは、すべてのトンネリングループを正しく検出することが可能となる。
【０１９６】
しかしながら、最初のトンネルエントリポイントがループの一部ではない場合、静的な識別子では、トンネリングループが存在している場合（例えば、図１１Ｂに示す構成の場合）と、トンネリングループは存在していないが、多数のトンネルエントリポイントによってトンネルカプセル化の制限の超過が生じている場合（例えば、図１１Ｃに示す構成の場合）とを正しく区別することができない。
【０１９７】
静的かつ一意の識別子を使用することによって、最初のトンネルエントリポイントがトンネリングループの一部である場合に、トンネリングループの検出が常に可能になるという利益があり、また、トンネルエントリポイントが以前に受信した識別子を比較用に格納しておく必要がないという利益がある。
【０１９８】
また、本発明に係る第２の好適なトンネリングループ検出方法は、例えば、乱数生成器から生成される数値や、連続した数値などのように、トンネルパケットごとに異なるように生成される識別子を使用するものである。
【０１９９】
上述のように、トンネルパケットごとに変化する識別子を使用することによって、最初のトンネルエントリポイントがループの一部ではない場合（例えば、図１１Ｂに示す構成）に、トンネルエントリポイントは、より精度良くトンネリングループを検出することが可能となる。しかしながら、精度のレベルは、識別子のサイズに依存する。
【０２００】
また、本発明に係る第３の好適なトンネリングループ検出方法は、静的かつ一意の数値と、トンネルパケットごとに異なるように生成される数値とを組み合わせて、識別子を形成するものである。
【０２０１】
上述のように、この組み合わせを使用することによって、トンネルエントリポイントは、最初のトンネルエントリポイントがループ上に存在する場合（例えば、図１１Ａに示す構成）に、すべてのトンネリングループを正しく検出することが可能となり、最初のトンネルエントリポイントがループ上に存在しない場合（例えば、図１１Ｂに示す構成）には、識別子の可変部分のサイズに依存した精度で、トンネリングループを検出することが可能となる。
【０２０２】
なお、これは、最良の結果を実現するが、最大の識別子サイズが必要となる（したがって、パケットのオーバヘッドが増大する）とともに、トンネルエントリポイントは、受信した識別子を比較用に一時的に格納する必要がある。
【０２０３】
また、本発明を実現するためには、図１２に図示されるような機能アーキテクチャが使用されることが望ましい。なお、図１２には、トンネルエントリポイントに含まれるトンネリングループ検出制御機能（トンネリングループ検出制御装置）に関する構成要素が図示されている。
【０２０４】
本発明の実施の形態によれば、図１２に示されるトンネルエントリポイント１２００の機能アーキテクチャは、ルーティング部１２２０と、１つ又は複数のネットワークインタフェース１２１０とを有している。なお、図１２では、ネットワークインタフェース１２１０は、１つのみ図示されている。
【０２０５】
各ネットワークインタフェース１２１０は、トンネルエントリポイント１２００が、リンクアクセス技術を使用して経路１２８５を通じた他のノードとの通信を行うために必要な、すべてのネットワークハードウェア、ソフトウェア、プロトコルを表す機能ブロックである。
【０２０６】
例えば、ＩＳＯ（International Standards Organization：国際標準化機構）のＯＳＩ（Open System Interconnect）の７レイヤモデルにおいて、ネットワークインタフェース１２１０は、物理層及びデータリンク層を包含している。
【０２０７】
ネットワークインタフェース１２１０がパケットを受信した場合には、更なる処理のために、データパス１２９５を通じてルーティング部１２２０にパケットを渡す。同様に、ルーティング部１２２０は、パケットの送信を行う際には、データ経路１２９５を通じた送信を行うために、対応するネットワークインタフェース１２１０にパケットを渡す。
【０２０８】
また、ルーティング部１２２０は、インターネットワーキングレイヤにおけるルーティングに関するすべての処理を行う。ＯＳＩモデルの下では、ルーティング部１２２０は、ネットワーク層のすべての機能を包含している。
【０２０９】
ルーティング部１２２０は、基本的に、ＩＰｖ６や一般的なトンネリング機能を実行する。ルーティング部１２２０には、ルーティングテーブル１２３０及びトンネリングモジュール１２４０が存在している。
【０２１０】
ルーティングテーブル１２３０には、ルーティング部１２２０が経路を決定するための情報が含まれている。なお、ルーティングテーブル１２３０は、エントリのリストのように構成されており、各エントリには、あて先フィールド及び次ホップフィールドが含まれていることが望ましい。あて先フィールドには、完全なあて先アドレス、又はあて先アドレスのプレフィックスが格納されており、次ホップフィールドには、あて先フィールドに格納されている値と一致するあて先アドレスを有するパケットの転送場所が記載されている。
【０２１１】
また、トンネリングモジュール１２４０は、必要に応じて、ＩＰトンネルの確立、維持、破棄を行う。例えば、ＮＥＭＯベーシックサポートの下では、モバイルルータは、自身のホームエージェントとの間に双方向トンネルを確立する。これは、トンネリングモジュール１２４０によって維持される。
【０２１２】
なお、当業者であれば、トンネリングモジュール１２４０は、トンネルインタフェースとして知られる仮想ネットワークインタフェースを作成することが望ましいことが分かるであろう。このトンネルインタフェースは、ルーティング部１２２０にとっては、他のネットワークインタフェース１２１０と等価に見える。
【０２１３】
また、トンネリングモジュール１２４０には、ループ検出モジュール１２５０が存在している。ループ検出モジュール１２５０は、受信パケットに対して、トンネルカプセル化制限オプションが存在するか否かの検査を行うとともに、トンネリングループが検出された場合にはエラーを始動する。さらに、ループ検出モジュール１２５０は、送出するトンネルパケットに対するトンネルカプセル化制限オプションの挿入や、トンネルカプセル化制限オプションに対して制限値や識別子の設定も行う。また、ループ検出モジュール１２５０が、静的な識別子及び／又は動的な識別子の読み出し又は生成の機能を有してもよく、さらには、静的な識別子及び動的な識別子を組み合わせた識別子を生成する機能を有していてもよい。
【０２１４】
なお、当業者であれば、図１２に図示されているトンネルエントリポイントの機能アーキテクチャには、トンネルエントリポイントを実現するために必要な最小限の機能ブロックのみが含まれており、実際には、さらに、他の機能が必要であるかもしれないことが分かるであろう。例えば、トンネルエントリポイントがホームエージェントである場合には、ホームエージェント能力を提供するための機能（例えば、バインディングキャッシュエントリなど）が追加される必要がある。
【０２１５】
また、上述の実施の形態では、通常の通信で送信されたパケットをトンネリングする際に識別子を付加しているが、パケットのヘッダの任意の箇所に、本発明に係る識別子を付加した場合でも、上述の実施の形態と同様の動作及び効果が実現される。例えば、パケットの転送が行われる際に、本発明に係る識別子がパケットのルーティングヘッダに挿入されてもよい。
【０２１６】
また、上述の実施の形態では、通常の通信で送信されたパケットをトンネリングする際に識別子を付加しているが、上述の実施の形態と同様のプロセスを用いて、トンネルカプセル化の制限を超えた際に返信されるＩＣＭＰエラーメッセージに識別子を付加することによっても、トンネリングループの検出が可能となる。すなわち、この方法によれば、パケットの送信者に返信されるＩＣＭＰエラーメッセージに識別子が付加されていない場合には識別子の付加を行い、また、ＩＣＭＰエラーメッセージに識別子が付加されている場合には、自身を一意に識別可能とする識別子や、自身が以前に格納した識別子と比較し、比較結果が一致しない場合には、受信したＩＣＭＰエラーメッセージに付加されている識別子を、送信するＩＣＭＰエラーメッセージにコピーし、比較結果が一致した場合には、トンネリングループの検出が把握される。なお、トンネリングループを検出したＴＥＰは、トンネルカプセル化の制限を超えた理由がトンネリングループであることを示すＩＣＭＰエラーメッセージに変更してもよい。このように、上記の方法では、エラー時にのみトンネリングループの検出が行われる。
【０２１７】
したがって、本発明によれば、パケットに関してトンネリングループが起こっているか否かを検出可能とするために、転送するパケットにトンネリングループ検出用識別子を付加するように構成されているトンネリングループ検出制御装置において、
前記パケットを受信するパケット受信手段と、
前記パケット受信手段で受信した前記パケットをカプセル化して、トンネルパケットを生成するパケットカプセル化手段と、
前記パケットカプセル化手段で前記トンネルパケットを生成する場合に、前記パケット受信手段で受信した前記パケットのヘッダ内に存在するトンネルカプセル化の上限を定める制限値を確認するトンネル制限確認手段と、
前記トンネル制限確認手段において、前記パケット受信手段で受信した前記パケットに対して更なるカプセル化を行うことができないと判断された場合に、トンネルカプセル化の上限を超えた旨を通知するエラーメッセージを生成するとともに、前記エラーメッセージのヘッダに、前記トンネリングループ検出用識別子を挿入する識別子挿入手段と、
エラーの通知先に向けて前記エラーメッセージを返送するエラーメッセージ返送手段とを、
有するトンネリングループ検出制御装置も提供される。
【０２１８】
また、本発明によれば、パケットに関してトンネリングループが起こっているか否かを検出可能とするために、転送するパケットにトンネリングループ検出用識別子を付加するように構成されているトンネリングループ検出制御装置において、
パケットを受信するパケット受信手段と、
前記パケット受信手段で受信した前記パケットが、トンネルカプセル化の上限を超えた旨を通知するエラーメッセージである場合に、前記エラーメッセージのヘッダに含まれている前記トンネリングループ検出用識別子の値と、所定の値とが同一か否かを比較するエラーメッセージ識別子比較手段と、
前記エラーメッセージ識別子比較手段による比較の結果、前記トンネリングループ検出用識別子と前記所定の値とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記エラーメッセージ識別子比較手段による比較の結果、前記トンネリングループ検出用識別子と前記所定の値とが同一ではない場合には、前記パケット受信手段で受信した前記エラーメッセージのヘッダに含まれている前記トンネリングループ検出用識別子を、エラーの通知先に向けて送信するエラーメッセージのヘッダに前記トンネリングループ検出用識別子として挿入する識別子挿入手段とを、
エラーの通知先に向けて、前記識別挿入手段で前記トンネリングループ検出用識別子が挿入された前記エラーメッセージを返送するエラーメッセージ返送手段とを、
有するトンネリングループ検出制御装置も提供される。
【０２１９】
また、本発明によれば、上記のトンネリングループ検出制御装置において、前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられている一意の情報を使用するように構成されているトンネリングループ検出制御装置も提供される。
【０２２０】
また、本発明によれば、上記のトンネリングループ検出制御装置において、前記トンネリングループ検出用識別子として、前記エラーメッセージごとに異なる情報を使用するように構成されており、前記識別子比較手段による比較の結果、前記トンネリングループ検出用識別子と前記所定の値とが同一ではない場合には、前記パケット受信手段で受信した前記エラーメッセージのヘッダに含まれている前記トンネリングループ検出用識別子を、前記所定の値として所定の情報格納手段に格納するように制御する識別子格納制御手段を有するトンネリングループ検出制御装置も提供される。
【０２２１】
また、本明細書では、最も実用的かつ好適な実施の形態であると思われる内容で本発明の開示及び説明が行われているが、当業者であれば、本発明の範囲を逸脱することなく、デザインやパラメータの詳細において様々な変更が可能であることが分かるであろう。
【０２２２】
なお、上記の本発明の実施の形態の説明で用いた各機能ブロックは、典型的には集積回路であるＬＳＩ（Large Scale Integration）として実現される。これらは個別に１チップ化されてもよいし、一部又はすべてを含むように１チップ化されてもよい。なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ（Integrated Circuit）、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０２２３】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０２２４】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。例えば、バイオ技術の適応などが可能性としてあり得る。
【産業上の利用可能性】
【０２２５】
本発明は、トンネルエントリポイントがトンネリングループの存在を検出することができるようになるという効果を有しており、パケット交換型データ通信ネットワークにかかる通信分野や、特に、パケットのカプセル化（パケットのトンネリング）の技術分野に適用可能である。
【図面の簡単な説明】
【０２２６】
【図１Ａ】従来の技術において、トンネリングループが起こることが予想される第１の構成例を示す図
【図１Ｂ】従来の技術において、トンネリングループが起こることが予想される第２の構成例を示す図
【図１Ｃ】従来の技術における動作に係るシーケンスチャートの一例を示す図
【図２】本発明の実施の形態において、静的な識別子を使用した場合の動作に係るシーケンスチャートの一例を示す図
【図３】本発明の実施の形態において、静的な識別子を使用した場合に、トンネルエントリポイントがパケットの処理の際に使用するアルゴリズムの好適なフローチャートを示す図
【図４】本発明の実施の形態において、ＴＥＬオプションを含むトンネルパケットの好適なパケットフォーマットの一例を示す図
【図５】本発明の実施の形態において、ＩＣＭＰエラーメッセージの好適なパケットフォーマットの一例を示す図
【図６Ａ】本発明の実施の形態において、最初のトンネルエントリポイントがループ上に存在しない場合の構成例を示す図
【図６Ｂ】図６Ａに図示されている構成において、送信元ノードがデータパケットを送信する際のシーケンスチャートの一例を示す図
【図６Ｃ】図６Ｂに図示されているシーケンスチャートに係る方法において、トンネリングループの検出を誤って行う動作に係るシーケンスチャートを示す図
【図７】本発明の実施の形態において、静的な識別子を使用した場合の動作に係るシーケンスチャートの一例を示す図
【図８】本発明の実施の形態において、動的な識別子を使用した場合に、トンネルエントリポイントがパケットの処理の際に使用するアルゴリズムの好適なフローチャートを示す図
【図９】本発明の実施の形態において、静的及び動的な識別子を組み合わせて使用した場合の動作に係るシーケンスチャートの一例を示す図
【図１０】本発明の実施の形態において、静的及び動的な識別子を組み合わせて使用した場合に、トンネルエントリポイントがパケットの処理の際に使用するアルゴリズムの好適なフローチャートを示す図
【図１１Ａ】本発明の実施の形態において、トンネリングループが形成される場合の第１の例を示す図
【図１１Ｂ】本発明の実施の形態において、トンネリングループが形成される場合の第２の例を示す図
【図１１Ｃ】本発明の実施の形態において、トンネリングループが形成されない場合の一例を示す図
【図１２】本発明の実施の形態におけるトンネルエントリポイントの構成例を示す図
【符号の説明】
【０２２７】
１００  インターネット
１０２  モバイルネットワーク
１１０、１１２、１１４  ＭＲ（モバイルルータ）
１３０  ＭＮ（モバイルノード）
１４０、１４２  ＨＡ（ホームエージェント）
１８０、１１００  送信元ノード（ソース）
１８２、１８４、１８６、６００、１１２０、１１２２、１１２４、１１４０、１１４２、１１４４、１１４６、１１６０、１１６２、１１６４、１１６６、１２００  ＴＥＰ（トンネルエントリポイント、トンネル入口ノード）
１２１０  ネットワークインタフェース
１２２０  ルーティング部
１２３０  ルーティングテーブル
１２４０  トンネリングモジュール
１２５０  ループ検出モジュール
【図１Ａ】
2009514265.tif 000003
【図１Ｂ】
2009514265.tif 000004
【図１Ｃ】
2009514265.tif 000005
【図２】
2009514265.tif 000006
【図３】
2009514265.tif 000007
【図４】
2009514265.tif 000008
【図５】
2009514265.tif 000009
【図６Ａ】
2009514265.tif 000010
【図６Ｂ】
2009514265.tif 000011
【図６Ｃ】
2009514265.tif 000012
【図７】
2009514265.tif 000013
【図８】
2009514265.tif 000014
【図９】
2009514265.tif 000015
【図１０】
2009514265.tif 000016
【図１１Ａ】
2009514265.tif 000017
【図１１Ｂ】
2009514265.tif 000018
【図１１Ｃ】
2009514265.tif 000019
【図１２】
2009514265.tif 000020
【国際調査報告】
2009514265.tif 000021
2009514265.tif 000022
2009514265.tif 000023