本発明は、IP(Internet Protocol:インターネットプロトコル)を利用した通信を管理する通信管理方法に関し、特に、IPパケットのバッファリング制御及び再送制御を行う通信管理方法に関する。
従来、ネットワークを利用した通信には、障害を引き起こす様々な原因が存在している。特に、端末(無線通信端末)が無線通信を用いてインターネットへ接続している場合、電波状況の変化などによってパケットロスや遅延などの問題が引き起こされる場合がある。
このような問題に対し、下記の非特許文献1には、送信元ノードのTCP(Transmission Control Protocol)レイヤは、送信したデータパケットに対する通信相手からのACK(acknowledgment)が一定時間経過しても返ってこない場合に、パケットの再送を行う旨が規定されている。また、伝送経路上のルータにおいて、何らかの原因であて先への転送がこれ以上できないという状況に返されるICMP(Internet Control Message Protocol)のDestination Unreachable Message(あて先到達不可能通知)を受信した場合などにおいても同様に、送信元ノードのTCPレイヤはパケットの再送を行う場合がある。
しかしながら、上記の2つの方法は、いずれもエンド−エンド(End-End)の再送制御であり、パケットロスは改善されるものの、パケットの受信ノードから最も遠い場所に位置する送信元ノードが再送を行うことに伴って、再送遅延(再送制御における遅延)が発生してしまう可能性がある。このようなエンド−エンドの再送制御に伴って発生する再送遅延を改善するための方法として、例えば下記の非特許文献2には、転送経路上に存在するルータが再送制御を行う方法が提案されている。
非特許文献2で提案されている方法によれば、従来の送信ノードが行うような再送制御機能をネットワーク上のルータに持たせ、このルータがパケット再送の要否を検出し、パケットを再送する必要を検出した場合に、バッファしていたパケットの転送(再送)が行われる。この方法を用いることによって、再送を必要とする問題が生じた場合、非特許文献1に開示されているように送信元ノードが再送をするのではなく、問題が発生した箇所から比較的近いところに存在するルータ(パケットの中継地点)がパケットの再送を行うことで、送信元ノードがパケットの再送を行う場合よりも再送遅延を低減させることが可能となる。
しかしながら、単一のルータが再送のためにバッファリングできる容量は限られているため、バッファリングを行うルータのバッファ容量がバッファすべきパケット量に対して小さい場合には、ルータはバッファが必要となるすべてのパケットをバッファすることができず、結果的に、パケットのロスが生じてしまうことになる。このような場合の改善方法としては、バッファがフル(Full)になった時点で、あふれたパケットを別のバッファ可能なルータへ転送するという方法が考えられる。この方法を用いることで、バッファ容量を事実上増やすことが可能となり、単一のルータのバッファ容量が限られている場合であっても、非特許文献2で提案されている方法による再送遅延やパケットロスの低減を実現することが可能となる。
次に、モバイルIPv6(Mobile IPv6)を利用したMN(Mobile Node:モバイルノード)とCN(Correspondent Node:コレスポンデントノード)との間の通信に対して、上記のTCPによる再送制御を適用した場合について説明する。MNが移動先(MNが外部ネットワークに接続されている状態)からHA(Home Agent:ホームエージェント)経由でCNと通信を行っている場合、その通信経路は、パケットがカプセル化されていない状態のCN−HA間の経路と、パケットがカプセル化されている状態のHA−MN間の経路とに分けて考えることが可能である。
CNがMNのHoA(Home Address:ホームアドレス)しか知らない場合には、MNに対して送信するパケットのあて先アドレスにMNのHoAを設定して送信する。CNから送信されたパケットはMNのホームネットワークまで転送され、MNのホームネットワーク上のHAによって代理受信(intercept)された後、MNのCoAあてにカプセル化されて転送される。このように、CN−HA間を流れるパケットはCNが送信したままのパケットであるが、HA−MN間を流れるパケットは、HAによってカプセル化されたパケットとなる。
ここで、仮にCN−HA間のルータが、何らかの原因によってCNが送信したパケットをこれ以上転送できないと判断したとする。この場合には、通常のルータの処理によってDestination Unreachable Messageが送信元であるCNに返されるため、CNのTCPレイヤは再送制御を行うことが可能となる。
一方、HA−MN間のルータが、何らかの原因によってCNが送信したパケットを転送できないと判断したとする。この場合には、転送パケットの送信元アドレスはHAのアドレスであるため、Destination Unreachable MessageはHAに対して送信される。モバイルIPv6では、HAが、MNに送信したカプセル化パケットに対するDestination Unreachable Messageを受信した場合、そのパケットを元のパケットの送信元であるCNに中継しなければならない。これにより、CNに対してパケット不達の通知が届けられ、HA−MN間で発生した障害に対しても、CNのTCPレイヤが再送制御を行うことが可能となるが、モバイルIPv6を利用した通信においても、TCPによる再送はエンドーエンドで行われるため、再送遅延が生じる問題に変わりはない。
さらに、上述の転送経路上のルータによる再送制御方法(非特許文献2に開示されている再送制御方法)を、モバイルIPv6を利用したMNとCNとの間の通信に適用することも可能である。この場合、CN−HA間の経路上で問題が発生した場合には、上記と同様の効果があると言える。しかしながら、MNが移動した場合には、MNのケアオブアドレス(CoA:Care-of address)も変更されてしまい、その結果、MNの移動前のケアオブアドレスあてのパケットは、再送されても目的とするMNに到達することはできない。再送制御機能を持つルータは、MNの移動に伴うアドレスの変化に対応できないため、MNが移動した場合には、HA−MN間の経路上で発生した問題に対してはあまり効果がない。すなわち、パケットのあて先であるケアオブアドレスを使用するMNが移動してしまい、既にそのネットワーク上に存在しないことに起因してDestination Unreachable Messageが発生した場合には、非特許文献2に開示されている再送制御方法がHA−MN間のルータによって実行されたとしても、再送されたパケットはMNに到達することは不可能である。
J. Postel, "Transmission Control Protocol", RFC793, September 1981.
下國 治、古賀久志、陣崎 明 "広域並列分散システムのための信頼できるマルチキャスト" 情報処理学会研究報告、計算機アーキテクチャ研究会報告、第2000巻、第23号、53〜58ページ、2000年3月2日
モバイルIPv6を利用したMNとCNとの間の通信において、その経路上に位置するHAに、上述の非特許文献2に開示されている再送制御の機能を実装させることも可能である。この場合、HAは、MNの移動を管理しているため、転送したパケットがMNに到達しなかった場合には、MNの移動に追従してパケットの再送を行うことが可能である。しかしながら、HAによる再送制御が、MNにとってすべて好ましいものであるとは限らない。すなわち、HAが、MNあてのすべてのパケットに対して同一の再送制御を行った場合には、例えば、パケットロスや遅延の影響を受けるのが望ましくないパケット(再送制御が有効なパケット)に加えて、パケットロスや遅延の影響を受けても構わないパケット(再送制御が特に有効ではないパケット)のバッファリングや再送制御まで行われてしまうことになる。その結果、パケットロスや遅延の影響を受けても構わないパケットに対する処理やリソース消費によって、パケットロスや遅延の影響を受けるのが望ましくないパケットに関してパケットロスや遅延が発生してしまう可能性があるという問題がある。
また、HAは、MNのバインディングキャッシュを保持している。しかしながら、例えばMNの接続が一時的に切断してしまい、HAがMNからライフタイム(Lifetime)を更新するバインディングアップデートを一定時間経過しても受信しなかった場合には、HAは、そのMNに係るエントリをバインディングキャッシュから削除してしまう。この場合、HAは、そのMNのホームアドレスあてのパケットの代理受信を中止してしまうため、CNが送信したホームアドレスあてのパケットはMNに届かなくなってしまう。一方、このMNの接続の切断が一時的なものである場合には、HAは、MNからバインディングアップデートを受信してバインディングキャッシュにMNに係るエントリを再登録することになるが、MNの一時的な接続の中断の間にCNから送信されたパケットはMNに到達せずにすべて破棄されてしまうことになる。その結果、CNがパケットの再送を行う必要が生じ、パケットロスや遅延が発生してしまうことになるという問題がある。
また、MNが複数のHAを利用でき、それぞれのHAからホームアドレスが割り当てられている場合、あるホームアドレスを別のホームアドレスに対するケアオブアドレスとして関連付けることで、常に有効なアドレスをケアオブアドレスとして登録し続けることが可能である。あるMNがこのような登録を行った場合、HAは、CNからMNへのパケットを転送する際に、ケアオブアドレスとして登録されているホームアドレスを用いてパケットのカプセル化を行い、そのカプセル化されたパケットがHAから送信されることになる。
しかしながら、MNが、接続の切断などによって、有効なケアオブアドレスを失った場合、すなわち、あるHAに対して、そのHAが送信する転送パケットを自身まで到達させることが可能な転送先アドレスを登録できない場合は、別のHAに対しても同様に、自身まで到達可能な転送先アドレスを登録できないと言える。そのため、あるHAによってHoAあてにカプセル化されて転送されたパケットは、その転送パケットを代理受信する別のHAによってMNへの転送先がないパケットとして再び処理されるため、ホームアドレスを単にケアオブアドレスとして登録しただけでは、MNにとって有効な登録とはならないという問題がある。
上記の問題点に鑑み、本発明は、CNからHAを経由してMNに送信されるパケットに関して、MNにとって有効なパケットに関する再送制御を可能とするパケット転送制御装置及びモバイルノードを提供することを目的とする。
上記の目的を達成するため、本発明のパケット転送制御装置は、所定のネットワークに属するホームエージェントにおけるパケット転送の制御を行うパケット転送制御装置であって、
前記所定のネットワークからホームアドレスが割り当てられているモバイルノードのアドレス管理を行い、前記ホームアドレスとそのケアオブアドレスとが関連付けられているバインディング情報を保持するバインディング情報管理手段と、
前記ホームアドレスあての第1パケットを代理受信し、前記ケアオブアドレスあてのヘッダを用いて前記第1パケットをカプセル化することによって第2パケットを生成して転送を行うパケット転送手段と、
前記パケット転送手段により行われるパケットの転送において、所定の条件を満たす転送パケットのバッファリングの要求を前記モバイルノードから受信するバッファリング要求受信手段と、
前記バッファリング要求受信手段で前記所定の条件を満たす前記転送パケットのバッファリングの要求を受けた場合、前記所定の条件を満たす前記転送パケットのバッファリングを行うバッファリング手段とを、
有する。
上記の構成により、CN(通信相手ノード)からHA(ホームエージェント)を経由してMN(モバイルノード)に送信されるパケットに関して、MNは、自身にとって有効なパケットを選択し、ホームエージェントにおいて、選択されたパケットの再送制御が行われるようにすることが可能となる。
さらに、本発明のパケット転送制御装置は、上記の構成に加えて、前記所定の条件が、前記転送パケットのあて先が所定のケアオブアドレスであること、前記転送パケットが所定のフロー情報を有すること、前記転送パケットが所定の通信相手ノードから送信されたパケットであることの少なくとも1つである。
上記の構成により、MNは、所定のケアオブアドレスあてに転送されるパケット、所定のフロー情報を有するパケット、所定の通信相手ノードから送信されたパケットを適宜選択して、ホームエージェントにおいて、選択されたパケットの再送制御を行わせることが可能となる。
さらに、本発明のパケット転送制御装置は、上記の構成に加えて、前記バッファリング要求受信手段が、前記モバイルノードから、前記転送パケットの転送と同時に前記転送パケットをバッファリングする要求を受けるように構成されている。
上記の構成により、ホームエージェントは、転送パケットの転送と同時に転送パケットのバッファリングを行い、転送パケットがモバイルノードに到達不能である場合には、バッファリングされている転送パケットの再送を行うことが可能となる。
さらに、本発明のパケット転送制御装置は、上記の構成に加えて、前記バッファリング要求受信手段が、前記モバイルノードから、前記転送パケットの転送が行われる前に一時的にバッファリングする要求を受けるように構成されている。
上記の構成により、ホームエージェントは、転送パケットの転送前に一時的に転送パケットのバッファリングを行った後にパケット転送を行うことで、モバイルノードへのパケットの転送を意図的に遅延させ、例えばモバイルノードが一時的に到達不能な状態にあっても、モバイルノードが到達可能状態に戻る時間までパケットをバッファリングできるようにすることで、パケットロスを抑制することが可能となる。
さらに、本発明のパケット転送制御装置は、上記の構成に加えて、前記ケアオブアドレスが、前記モバイルノードが前記所定のネットワークから割り当てられているホームアドレスである。
上記の構成により、複数のホームエージェント間におけるパケット転送によって、ネットワーク側におけるパケットのバッファリングが行われるようにすることで、モバイルノードへのパケットの転送を意図的に遅延させ、例えばモバイルノードが一時的に到達不能な状態にあっても、モバイルノードが到達可能状態に戻る時間までパケットをバッファリングできるようにすることで、パケットロスを抑制することが可能となる。
また、上記の目的を達成するため、本発明のモバイルノードは、第1ネットワークから割り当てられている第1アドレスに加えて、前記第1ネットワークとは異なる第2ネットワークから割り当てられている第2アドレスを有するモバイルノードであって、
前記第1アドレスをホームアドレスとし、前記第1アドレスのケアオブアドレスとして前記第2アドレスを関連付けるアドレス関連付け手段と、
前記アドレス関連付け手段で関連付けられた前記第1アドレスと前記第2アドレスのバインディング情報を前記第1ネットワークのホームエージェントに登録するバインディング情報登録手段と、
前記第1アドレスあての第1パケットを代理受信し、前記第2アドレスあてのヘッダを用いて前記第1パケットをカプセル化することによって生成された第2パケットを転送する前記第1ネットワークの前記ホームエージェントに対して、所定の条件を満たす転送パケットのバッファリングを要求するバッファリング要求手段とを、
有する。
上記の構成により、CNからHAを経由してMNに送信されるパケットに関して、MNは、自身にとって有効なパケットを選択し、ホームエージェントにおいて、選択されたパケットの再送制御を行わせることが可能となる。
さらに、本発明のモバイルノードは、上記の構成に加えて、前記所定の条件が、前記転送パケットのあて先が所定のケアオブアドレスであること、前記転送パケットが所定のフロー情報を有すること、前記転送パケットが所定の通信相手ノードから送信されたパケットであることの少なくとも1つである。
上記の構成により、MNは、所定のケアオブアドレスあてに転送されるパケット、所定のフロー情報を有するパケット、所定の通信相手ノードから送信されたパケットを適宜選択して、ホームエージェントにおいて、選択されたパケットの再送制御を行わせることが可能となる。
さらに、本発明のモバイルノードは、上記の構成に加えて、前記バッファリング要求手段が、前記ホームエージェントに対して、前記転送パケットの転送と同時に前記転送パケットをバッファリングする要求を行うように構成されている。
上記の構成により、ホームエージェントは、転送パケットの転送と同時に転送パケットのバッファリングを行い、転送パケットがモバイルノードに到達不能である場合には、バッファリングされている転送パケットの再送を行うことが可能となる。
さらに、本発明のモバイルノードは、上記の構成に加えて、前記バッファリング要求手段が、前記ホームエージェントに対して、前記転送パケットの転送が行われる前に一時的にバッファリングする要求を行うように構成されている。
上記の構成により、ホームエージェントは、転送パケットの転送前に一時的に転送パケットのバッファリングを行った後にパケット転送を行うことで、パケットの転送を意図的に遅延させ、モバイルノードが一時的に到達不能な状態にあっても、モバイルノードが到達可能状態に戻る時間までパケットをバッファリングできるようにすることで、パケットロスを抑制することが可能となる。
さらに、本発明のモバイルノードは、上記の構成に加えて、前記第2アドレスが、前記第2ネットワークから割り当てられているホームアドレスである。
上記の構成により、複数のホームエージェント間におけるパケット転送によって、ネットワーク側におけるパケットのバッファリングが行われるようにすることで、モバイルノードへのパケットの転送を意図的に遅延させ、例えばモバイルノードが一時的に到達不能な状態にあっても、モバイルノードが到達可能状態に戻る時間までパケットをバッファリングできるようにすることで、パケットロスを抑制することが可能となる。
本発明は、上記の構成を有しており、CNからHAを経由してMNに送信されるパケットに関して、MNにとって有効なパケットに関する再送制御ができるようになるという効果を有している。
本発明の第1の実施の形態におけるネットワーク構成の一例を示す図
本発明の第1の実施の形態におけるMN10の構成の一例を示す図
本発明の第1の実施の形態におけるMN10が生成、送信するバインディング情報通知メッセージの一例を示す図
本発明の第1の実施の形態におけるMN10が生成、送信するフロー情報通知メッセージの一例を示す図
本発明の第1の実施の形態におけるMN10が生成、送信するバッファリング要求メッセージの一例を示す図
本発明の第1の実施の形態におけるHA60の構成の一例を示す図
本発明の第2の実施の形態におけるネットワーク構成の一例を示す図
本発明の第2の実施の形態におけるMNの構成の一例を示す図
本発明の第2の実施の形態におけるMNが生成、送信するバインディング情報通知メッセージの一例を示す図
本発明の第2の実施の形態におけるHAの構成の一例を示す図
本発明の第3の実施の形態におけるMNの構成の一例を示す図
本発明の第3の実施の形態におけるHAの構成の一例を示す図
本発明の第1〜第3の実施の形態において、代理ノードを有するネットワーク構成の一例を示す図
以下、図面を参照しながら、本発明の第1〜第3の実施の形態について説明する。
<第1の実施の形態>
まず、本発明の第1の実施の形態について説明する。図1には、本発明の第1の実施の形態におけるネットワーク構成の一例が図示されている。図1において、MN10は、自身のホームエージェントとしてホームネットワーク50に存在するHA60を利用することが可能である。MN10には、ホームネットワーク50からホームアドレス(HoA1)が割り当てられており、このHoA1はHA60で管理されている。なお、図1では、MN10が、インタフェース(IF)20を用いて外部ネットワーク30に接続しており、外部ネットワーク30からCoA1が割り当てられている一方、CN40との通信に関しては、HoA1を用いてHA60を経由した通信を行っているものとする。
次に、本発明の第1の実施の形態におけるMN10の構成について説明する。図2には、本発明の第1の実施の形態におけるMN10の構成の一例が図示されている。図2において、MN10は、送受信部101、バインディング情報通知メッセージ生成部102、バインディング情報管理部103、バッファリング要求判断部104、フロー情報通知メッセージ生成部105、フロー情報管理部106を有している。なお、MN10は、例えばCN40との間で送受信するデータパケットを処理するためのデータパケット処理部やその他の様々な機能も有しているが、図2では図示省略する。
送受信部101は、MN10が接続するネットワーク(例えば図1の外部ネットワーク30)内の任意の通信ノードや、MN10のホームネットワーク50内の任意の通信ノード(例えば図1のHA60)、さらには、その他の任意のネットワークに存在する任意の通信ノード(例えば図1のCN40)との通信を行うためのパケット送受信機能を有している。なお、送受信部101には、例えば図1に図示されている無線接続のインタフェース20の機能も包含される。
また、バインディング情報通知メッセージ生成部102は、バインディング情報管理部103から通知されたバインディング情報を含むバインディング情報通知メッセージを生成するための機能を有している。バインディング情報通知メッセージ生成部102で生成されたバインディング情報通知メッセージは、HA60に対して、そのバインディング情報によって特定されるケアオブアドレスあてのパケットをバッファリングするよう要求するためのメッセージであり、送受信部101を通じてMN10のHA60に送信される。
また、バインディング情報管理部103は、HA60によって管理されているHoA1に対して関連付けられているケアオブアドレスを管理するための機能を有している。なお、バインディング情報管理部103では、HA60によって管理されているHoA1と、そのHoA1に対して関連付けられているケアオブアドレスとのセットが、バインディング情報として管理されている。
また、バインディング情報管理部103は、HA60に対してバインディング情報の通知が必要なときに、バインディング情報通知メッセージ生成部102に対して、通知すべきバインディング情報や、そのバインディング情報に付加されている情報(例えば、下記のバッファリング要求情報)を渡して、バインディング情報通知メッセージを生成するよう指示する機能を有している。さらに、バインディング情報管理部103は、バッファリング要求判断部104から、特定のケアオブアドレスに対してバッファリング要求を付加するよう指示された場合、そのケアオブアドレスに対してバッファリング要求情報を付加して管理する機能を有している。
また、バッファリング要求判断部104は、特定のケアオブアドレスや特定のフローに対してバッファリングを要求するか否かを判断する機能を有している。バッファリング要求判断部104は、特定のケアオブアドレスに対してバッファリングを要求する旨を決定した場合には、バインディング情報管理部103に対して、対象となるケアオブアドレスに対してバッファリング要求を付加するよう指示する機能を有しており、また、特定のフロー(データトラフィックフロー)に対してバッファリングを要求する旨を決定した場合には、フロー情報通知メッセージ生成部105に対して、対象となるフローを特定する識別子を供給し、そのフローに対してバッファリング要求を行うフロー情報通知メッセージを生成するよう指示する機能を有している。
例えば、使用しているインタフェース20の無線接続が不安定であり、断続的に切断してしまうような状況では、バッファリング要求判断部104は、インタフェース20に割り当てられているケアオブアドレスに対してバッファリング要求を付加するように決定することが可能である。これにより、特定のケアオブアドレスに対して転送されるパケットを選択的にHA60にバッファリングさせることが可能となり、無線接続の断続的な切断によるパケットロスを最小限に防ぐことが可能となる。
また、バッファリング要求判断部104は、パケットロスに対してセンシティブ(sensitive:敏感)であるフローに対してバッファリング要求を付加するように決定することが可能である。なお、こうしたパケットロスに対してセンシティブなフローは、例えばフロー情報管理部106からの通知によって把握可能である。これにより、パケットロスに対してセンシティブなフローと、パケットロスよりも伝送遅延やジッタに対してセンシティブなフローとを区別し、パケットロスに対してセンシティブなフローに係るパケットを選択的にHA60にバッファリングさせることが可能となる。
また、フロー情報通知メッセージ生成部105は、バッファリング要求判断部104から、特定のフロー識別子と共に、その特定のフローに対してバッファリング要求を行うよう指示を受けたときに、特定のフロー識別子を含むフロー情報通知メッセージを生成する機能を有している。フロー情報通知メッセージ生成部105で生成されたフロー情報通知メッセージは、HA60に対して、そのフロー識別子によって特定されるフローに係るパケットをバッファリングするよう要求するためのメッセージであり、送受信部101を通じてMN10のHA60に送信される。
また、フロー情報管理部106は、パケットのフローを管理する機能を有しており、フロー情報(フロー識別子)の管理や、各フローの特性(例えばパケットロスに対してセンシティブか否か)の管理を行うことが可能である。また、フロー情報管理部106、特にパケットロスに対してセンシティブなフローに係るフロー情報を、バッファリング要求判断部104に通知することが可能である。
なお、図2では、MN10は、バインディング情報通知メッセージ及びフロー情報通知メッセージの両方をHA60に対して送信することが可能なように構成されているが、どちらか一方の通知メッセージのみを送信することが可能なように構成されていてもよい。すなわち、MN10は、バインディング情報通知メッセージによってバッファリング要求を付加する対象のケアオブアドレスを通知するだけでもよく、フロー情報通知メッセージによってバッファリング要求を付加する対象のフローを通知するだけでもよく、あるいは、両方のメッセージを用いて、バッファリング要求を付加する対象のケアオブアドレス及びフローの両方を通知してもよい。
また、図2のMN10の構成では、バッファリング要求を付加する対象がケアオブアドレスの場合にはバインディング通知メッセージが用いられ、バッファリング要求を付加する対象がフローの場合にはフロー情報通知メッセージが用いられるが、例えばフローに対するバッファリング要求を通知するメッセージとして、バインディング情報通知メッセージが用いられてもよい。この場合、例えば、フローに対するバッファリング要求情報を、バインディング情報通知メッセージのオプションとして付加することが可能である。また、ケアオブアドレスに対するバッファリング要求を通知するメッセージとして、フロー情報通知メッセージが用いられてもよい。
以上、図2を参照しながら説明したように、本発明の第1の実施の形態におけるMN10は、自身のHA60に対して、特定のケアオブアドレスあてのパケットや、特定のフローに係るパケットのバッファリングを選択的に行うよう要求することが可能である。なお、特定のケアオブアドレスあてのパケットや特定のフローに係るパケット以外に、例えば、特定の通信相手から送られてきたパケットのバッファリングを選択的に行うように要求してもよい。この場合には、MN10はHA60に対して、バッファリング要求の対象として、例えば通信相手のアドレスの通知を行えばよい。
また、図3には、本発明の第1の実施の形態におけるMN10が生成、送信するバインディング情報通知メッセージの一例が図示されている。なお、図3には、バインディングアップデートメッセージを利用して、特定のケアオブアドレス(HoA1と関連付けられているCoA1)に対してバッファリングを要求する場合のバインディング情報通知メッセージの構成例が図示されている。
図3に図示されているIPv6ヘッダ(HA60をあて先アドレスに設定)、ホームアドレスオプション、モビリティヘッダ(バインディングアップデート)は、モバイルIPv6で定義されているバインディングアップデートメッセージの構成と基本的に同一である。本発明の第1の実施の形態では、図3に図示されているように、モバイルIPv6で定義されているバインディングアップデートメッセージの代替用CoAオプション(alternate CoA option)の中に、更にバッファリング要求情報と、バッファリングの対象として指定されるケアオブアドレスとが付加される。なお、バッファリング要求情報は、代替用CoAオプションに含まれているケアオブアドレス(図3の例ではCoA1)をあて先アドレスとするパケットのバッファリング要求を示す情報であり、例えばフラグなどの任意の形式で実現可能である。
また、図4には、本発明の第1の実施の形態におけるMN10が生成、送信するフロー情報通知メッセージの一例が図示されている。なお、図4には、フロー制御メッセージを利用して、特定のフロー識別子に対してバッファリングを要求する場合のフロー情報通知メッセージの構成例が図示されている。
図4では、IPv6ヘッダ(HA60をあて先アドレスに設定)を有するフロー制御メッセージに、バッファリング要求の対象となるフローを特定するフロー識別子と、任意の形式によって表されるバッファリング要求情報(上記のフロー識別子に係るパケットのバッファリング要求を示す情報)とを有するフロー制御情報が挿入されることによって、フロー情報通知メッセージが実現されている。なお、フロー情報通知メッセージは、モバイルIPv6で定義されているモビリティヘッダに、上記のフロー識別子及びバッファリング要求情報が挿入されることによって実現されてもよい。
また、図5には、本発明の第1の実施の形態におけるMN10が生成、送信するバッファリング要求メッセージの一例が図示されている。上述のバインディング情報通知メッセージ(例えば、図3に図示されている構成)やフロー情報通知メッセージ(例えば、図4に図示されている構成)の代わりに、特定のケアオブアドレスや特定のフローに対するバッファリング要求を通知するメッセージとして、図5に図示されているように、バッファリング要求の対象となるケアオブアドレスやフローを含む専用のバッファリング要求メッセージが用いられてもよい。なお、図5に図示されているバッファリング要求メッセージは、このメッセージ自体がパケットのバッファリング要求を示すバッファリング要求情報であると言える。
次に、本発明の第1の実施の形態におけるHA60の構成について説明する。図6には、本発明の第1の実施の形態におけるHA60の構成の一例が図示されている。図6において、HA60は、送受信部601、バインディング情報通知メッセージ処理部602、フロー情報通知メッセージ生成部603、フロー情報保持部604、バインディング情報保持部605、代理受信パケットバッファリング部606、再送・転送先切替指示部607、転送先選択部608、代理受信パケット転送処理部609を有している。なお、HA60は、その他の様々な機能も有しているが、図6では図示省略する。
送受信部601は、HA60が接続するネットワーク(例えば図1のホームネットワーク50)内の任意の通信ノードや、外部ネットワーク30に接続しているMN10(HA60が存在するホームネットワーク50に属するMN10)、その他の任意のネットワークに接続している任意の通信ノードとの通信を行うためのパケット送受信機能を有している。
また、バインディング情報通知メッセージ処理部602は、MN10で生成、送信されたバインディング情報通知メッセージを送受信部601で受信した場合に、このバインディング情報通知メッセージに関する処理を行い、バインディング情報通知メッセージに含まれるMN10のバインディング情報を取得して、このバインディング情報をバインディング情報保持部605に保持させる機能を有している。なお、バインディング情報に関連してバッファリング要求情報が付加されている場合には、バインディング情報と共にバッファリング要求情報をバインディング情報保持部605に保持させる。
また、フロー情報通知メッセージ処理部603は、MN10で生成、送信されたフロー情報通知メッセージを送受信部601で受信した場合に、このフロー情報通知メッセージに関する処理を行い、フロー情報通知メッセージに含まれるMN10のフロー識別子を取得して、このフロー識別子をフロー情報保持部604に保持させる機能を有している。なお、フロー識別子に関連してバッファリング要求情報が付加されている場合には、フロー識別子と共にバッファリング要求情報をフロー情報保持部604に保持させる。
また、フロー情報保持部604は、フロー情報通知メッセージ処理部603におけるフロー情報通知メッセージの処理によって抽出されたフロー識別子(パケットのバッファリング要求の対象となるフロー識別子)を保持する機能を有している。なお、フロー情報保持部604では、バッファリング要求情報が付加されているフロー情報、及びバッファリング要求情報が付加されていないフロー情報が保持される。
また、バインディング情報保持部605は、バインディング情報通知メッセージ処理部602におけるバインディング情報通知メッセージの処理によって抽出されたバインディング情報(MN10のホームアドレスと、パケットのバッファリング要求の対象となるケアオブアドレスとが関連付けられたバインディング情報)を保持する機能を有している。なお、バインディング情報保持部605では、特定のケアオブアドレスに対して転送されるパケットのバッファリング要求が含まれているバインディング情報のほかに、バッファリング要求が含まれていない通常のバインディング情報も保持される。
また、代理受信パケットバッファリング部606は、フロー情報保持部604に保持されているフロー識別子をチェックし、フロー情報にバッファリング要求情報が付加されている場合には、そのフロー識別子に対応するフローに係るパケットのバッファリングを行う機能を有している。また、代理受信パケットバッファリング部606は、バインディング情報保持部605に保持されているバインディング情報をチェックし、バインディング情報にバッファリング要求が付加されている場合には、そのバインディング情報に対応するパケット(すなわち、バインディング情報に含まれるケアオブアドレスに転送すべきパケット)のバッファリングを行う機能を有している。すなわち、代理受信パケットバッファリング部606では、MN10からバッファリング要求を受けたバッファリング対象のパケットのみがバッファリングされる。
また、再送・転送先切替指示部607は、MN10へ転送したパケットが、MN10に届かなかったことを検出したとき(例えば、MN10に転送したパケットに関するDestination Unreachable Messageを受信したとき)や転送経路上の輻輳を検出したときなどに、パケットの再送を行うべきか、あるいは使用中の転送先アドレスを別のアドレスへ切り替えるべきかを判断する機能を有している。再送が必要であると判断した場合には、再送・転送先切替指示部607は、代理受信パケット転送処理部609へパケットの再送を行うよう指示する。
一方、再送・転送先切替指示部607は、転送先アドレスを現在設定されているアドレスから別のアドレスに切り替えることが必要であると判断した場合には、転送先選択部608へ別の転送先アドレスを選択するよう指示を行う。このとき、再送・転送先切替指示部607は、転送先の切り替えを指示する際に、切り替え前のアドレスあてへの送信が失敗したパケットに関して、転送先選択部608に対して転送先アドレスを別のアドレスへ切り替えるよう指示するとともに、代理受信パケット転送処理部609に対して、新たに選択された転送先アドレスあてにパケットの再送を行うよう指示する。
また、転送先選択部608は、代理受信したMN10のHoAあてのパケットの転送先として、バインディング情報保持部605に保持されているバインディング情報の中から、転送先アドレスとして使用すべきケアオブアドレスを選択する機能を有している。また、転送先選択部608は、代理受信したMN10のHoAあてのパケットの転送先として、フロー情報保持部604に保持されているMN10のフロー識別子、及びバインディング情報保持部605を参照し、特定のフローの転送先として使用すべきケアオブアドレスを選択する機能を有している。
また、代理受信パケット転送処理部609は、管理しているMN10のHoAあてのパケットを代理受信し、転送先選択部608によって選択されたケアオブアドレスあてへカプセル化して転送する機能を有している。また、代理受信パケット転送処理部609は、再送・転送先切替指示部607から再送の指示を受けた場合、再送すべきパケットを代理受信パケットバッファリング部606から取得してパケットの再送を送信する機能を有している。また、転送先選択部608から新たな転送先アドレスが通知された場合には、代理受信パケット転送処理部609は、通知された転送先アドレスあてにパケットのカプセル化を行って転送する機能を有している。
以上、図6を参照しながら説明したように、本発明の第1の実施の形態におけるHA60は、MN10からバッファリングを行うように要求されたパケット(特定のケアオブアドレスあてに転送すべきパケットや、特定のフローに係るパケット)のみを選択的にバッファリングし、これらのパケットの再送が必要となった場合には、バッファリングされているパケットを即座に再送することが可能である。
なお、図13に示すように、MN10が、ネットワークベースのモビリティプロトコルが提供されているローカルネットワーク515に接続している際には、MN10の移動に係る制御を代理で行う代理ノード518(Proxy Mobile Agent)が、本発明の第1の実施の形態におけるMN10が保持する機能を有していてもよい。この場合、代理ノード518は、独自の判断で選択的にバッファリングするべきパケットの対象を判断してもよいし、MN10から指示を受けてもよい。また、代理ノード518は、MN10の接続状態を随時監視することで、MN10の接続が安定している場合には、バッファリング要求情報の通知をしないことを選択し、MN10の接続が切れているときや、不安定なときなどに、バッファリング要求情報の通知を行うことを選択するようにしてもよい。代理ノード518は、決定したバッファリング要求情報を、MN10を管理しているHA60へ通知する。
また、代理ノード518が、本発明の第1の実施の形態におけるHA60が保持する機能を有していてもよい。この場合、MN10は、フロー情報に対してバッファリング要求情報を付加して代理ノード518へ通知する。それを受けた代理ノード518は、HA60から転送されたMN10のホームアドレス(HoA1)あてパケットが、バッファリング要求情報が付加されたフローに一致した場合には、バッファリングを行い、さらにMN10の接続の不安定性などにより再送が必要であると判断した場合には、バッファリングしているパケットを用いて再送を行う。また、代理ノード518は、MN10の接続状態を随時監視することで、MN10の接続が安定している場合には、バッファリングを行わないことを選択し、接続が切れているときや不安定なときなどに、バッファリングを行うことを選択するようにしてもよい。
次に、本発明の第1の実施の形態における具体的な動作の一例について、図1に図示されているネットワーク構成を参照しながら説明する。なお、以下では、何らかの原因でMN10と外部ネットワーク30との接続が切断した場合を想定する。接続の切断の原因としては、例えばMN10の移動などが挙げられる。
(本発明の第1の実施の形態の第1動作例)
まず、本発明の第1の実施の形態における第1動作例について説明する。MN10は、外部ネットワーク30に接続した場合には、通常のモバイルIPv6の処理として、ホームアドレス(HoA1)とケアオブアドレス(CoA1)とのバインディング情報をHA60に登録する。この際、例えば、MN10が、無線接続の不安定性に起因する外部ネットワーク30との断続的な切断や、パケット転送経路上でのパケットロスなどに備えて、登録するケアオブアドレスあてのパケットをHA60にバッファリングさせるよう要求することを決定した場合には、そのケアオブアドレス(CoA1)に対してバッファリング要求を付加したバインディング情報通知メッセージをHA60に送信する。
このバインディング情報通知メッセージを受信したHA60は、バインディング情報通知メッセージ内に含まれる情報をバインディング情報保持部605に格納する。また、HA60は、MN10のHoA1あてのパケットを代理受信し、そのパケットをCoA1へ転送すると同時に、CoA1に対して転送すべきパケットを代理受信パケットバッファリング部606にバッファする。
ここで、MN10と外部ネットワーク30との接続が切断され、HA60が、MN10のCoA1あての転送に失敗したことを、例えばDestination Unreachable Messageを受信することで検出したとする。この場合、HA60は、CoA1あてのパケット転送が失敗したことに対し、代理受信パケットバッファリング部606にバッファされているCoAあてのパケットを用いてパケットの再送を行う。なお、このとき、MN10が複数のケアオブアドレスをHA10に登録している場合、HA60は、MN10からのバッファリング要求がないケアオブアドレスに関してはバッファリングを行っておらず、したがって、バッファリング要求がないケアオブアドレスに係るパケットは、HA60から再送されない。
そして、例えばMN10と外部ネットワーク30との切断が一時的なものであり、MN10が外部ネットワーク30に再接続することができた場合には、HA60による再送制御によってCoA1あてのパケットのパケットロスを防ぐことが可能となる。なお、この再送制御では、HA60によってパケット再送が行われるため、パケットの送信元(例えばCN40)によってパケット再送が行われた場合に比べて、MN10は、より早期に再送されたパケットを受信することができるようになる。
また、MN10が、例えば一定時間後に別のネットワークと接続して新たなケアオブアドレス(CoA2)を取得した場合には、そのCoA2が新たな転送先としてHA60に登録された時点で、HA60は、バッファリングしていたCoA1あてのパケットをCoA2あてに転送してもよく、これによって、パケットロスを防ぐことも可能である。
(本発明の第1の実施の形態の第2動作例)
次に、本発明の第1の実施の形態における第2動作例について説明する。MN10は、外部ネットワーク30に接続した場合には、通常のモバイルIPv6の処理として、ホームアドレス(HoA1)とケアオブアドレス(CoA1)とのバインディング情報をHA60に登録する。この際、例えば、MN10が、無線接続の不安定性に起因する外部ネットワーク30との断続的な切断や、パケット転送経路上でのパケットロスなどに備えて、通信中の特定のフロー(フロー1)に係るパケットをHA60にバッファリングさせるよう要求することを決定した場合には、MN10は、そのフロー1に対してバッファリング要求を付加したフロー情報通知メッセージをHA60に送信する。
このフロー情報通知メッセージを受信したHA60は、フロー情報通知メッセージ内に含まれる情報をフロー情報保持部604に格納する。また、HA60は、MN10のHoA1あてのパケットを代理受信し、そのパケットをCoA1へ転送すると同時に、フロー1に係るパケットを代理受信パケットバッファリング部606にバッファする。
ここで、MN10と外部ネットワーク30との接続が切断され、HA60が、MN10のCoA1あての転送に失敗したことを、例えばDestination Unreachable Messageを受信することで検出したとする。この場合、HA60は、CoA1あてのパケット転送が失敗したことに対し、代理受信パケットバッファリング部606にバッファされているフロー1に係るパケットを用いてパケットの再送を行う。なお、このときHA60は、MN10からのバッファリング要求がないフローに関してはバッファリングを行っておらず、したがって、バッファリング要求がないフローに係るパケットは、HA60から再送されない。
そして、例えばMN10と外部ネットワーク30との切断が一時的なものであり、MN10が外部ネットワーク30に再接続することができた場合には、HA60による再送制御によってフロー1に係るパケットのパケットロスを防ぐことが可能となる。なお、この再送制御では、HA60によってパケット再送が行われるため、パケットの送信元(例えばCN40)によってパケット再送が行われた場合に比べて、MN10は、より早期に再送されたパケットを受信することができるようになる。
また、MN10が、例えば一定時間後に別のネットワークと接続して新たなケアオブアドレス(CoA2)を取得した場合には、そのCoA2が新たな転送先としてHA60に登録された時点で、HA60は、バッファリングしていたフロー1に係るパケットをCoA2あてに転送してもよく、これによって、パケットロスを防ぐことも可能である。
以上、説明したように、本発明の第1の実施の形態によれば、MNはHAに対して、自身の特定のケアオブアドレスあてに送信されるパケットや、特定のフローに係るパケットをバッファリングするよう要求することによって、MNにとって好適なパケット(例えば、パケットロスに対してセンシティブなパケット)のみをHAにバッファリングさせ、必要に応じてHAからパケット再送が行われるようにすることが可能となり、効率的な再送制御が実現されるようになる。
<第2の実施の形態>
次に、本発明の第2の実施の形態について説明する。図7には、本発明の第2の実施の形態におけるネットワーク構成の一例が図示されている。図7において、MN10は、複数のホームネットワーク(ホームネットワーク50、70)のそれぞれに存在するHA(HA60、HA80)を利用することが可能である。MN10には、ホームネットワーク50、70のそれぞれからホームアドレス(HoA1及びHoA2)が割り当てられており、これらのHoA1及びHoA2はそれぞれのHA(HA60、HA80)で管理されている。なお、図7では、MN10が、インタフェース(IF)20を用いて外部ネットワーク30に接続しており、外部ネットワーク30からCoA1が割り当てられている一方、CN40との通信に関しては、HoA1を用いてHA60を経由した通信を行っているものとする。
なお、MN10が利用するインタフェースの数は1つに限定されるものではなく、複数のインタフェースを利用してもよい。この場合、複数のケアオブアドレスがHoA1及びHoA2のそれぞれに対して関連付けられてもよい。また、MN10が利用できるHA(HA60及びHA80)の数は、図7に図示されているように2つに限定されるものではなく、さらに多くのHAが利用されてもよい。この場合、複数のHAのそれぞれからホームアドレスが割り当てられている必要がある。
次に、本発明の第2の実施の形態におけるMN10の構成について説明する。図8には、本発明の第2の実施の形態におけるMN10の構成の一例が図示されている。図8において、MN10は、送受信部201、バインディング情報通知メッセージ生成部202、HoA1バインディング情報管理部203、HoA2バインディング情報管理部204、転送前バッファリング要求判断部205、フロー情報通知メッセージ生成部206、ホームアドレス関連付け判断部207、フロー情報管理部208を有している。なお、MN10は、例えばCN40との間で送受信するデータパケットを処理するためのデータパケット処理部やその他の様々な機能も有しているが、図8では図示省略する。
送受信部201は、MN10が接続するネットワーク(例えば図1の外部ネットワーク30)内の任意の通信ノードや、MN10のホームネットワーク50、70内の任意の通信ノード(例えば図7のHA60又はHA80)、さらには、その他の任意のネットワークに存在する任意の通信ノード(例えば図7のCN40)との通信を行うためのパケット送受信機能を有している。なお、送受信部201には、例えば図7に図示されている無線接続のインタフェース20の機能も包含される。
また、バインディング情報通知メッセージ生成部202は、HoA1バインディング情報管理部203又はHoA2バインディング情報管理部204から通知されたバインディング情報を含むバインディング情報通知メッセージを生成するための機能を有している。バインディング情報通知メッセージ生成部202では、例えば、そのバインディング情報を登録する従来のモバイルIPv6のバインディングアップデートメッセージと、バインディング情報の登録と共に、さらに、そのバインディング情報によって特定されるケアオブアドレスあてのパケットを一時的にバッファリングした後に転送を行うよう要求するためのメッセージとが生成される。なお、ケアオブアドレスあてのパケットを一時的にバッファリングした後に転送を行うよう要求する対象となるケアオブアドレスには、転送前バッファリング要求が付加される。バインディング情報通知メッセージ生成部202で生成されたバインディング情報通知メッセージは、送受信部201を通じてMN10のHA(HA60又はHA80)に送信される。
また、HoA1バインディング情報管理部203は、HoA1(図7のホームネットワーク50から割り当てられるホームアドレス)に関するバインディング情報を管理する機能を有しており、HoA1に対して関連付けるべきケアオブアドレスを取得又は変更した場合に、それらのケアオブアドレスに関するバインディング情報をHA60へ通知すべきか否かの判断を行う機能を有している。バインディング情報を通知すべきと判断した場合には、HoA1バインディング情報管理部203は、バインディング情報通知メッセージ生成部202に対して、通知すべきバインディング情報を供給してバインディング情報通知メッセージを生成するよう指示する。
また、転送前バッファリング要求判断部205から、特定のケアオブアドレスに対して転送前バッファリング要求を付加するよう指示された場合や、ホームアドレス関連付け判断部207から、ホームアドレスをケアオブアドレスとして登録するよう指示された場合には、HoA1バインディング情報管理部203は、バインディング情報通知メッセージ生成部202に対して、転送前バッファリング要求が付加されたバインディング情報通知メッセージを生成するよう指示する。
なお、転送前バッファリング要求とは、MN10がHA(HA60又はHA80)に対して、転送先アドレスとして選択された特定のケアオブアドレスあてにパケット転送を開始する前に、そのパケットのバッファリングを一時的に行うことを要求するものである。転送前バッファリング要求が付加されたケアオブアドレスを選択したHAは、すぐにパケットの転送を開始するのではなく、いったんパケットのバッファリングを行い、パケットの転送開始タイミングをある程度(任意の遅延時間だけ)意図的に遅らせてパケットの転送を開始する。
また、HoA2バインディング情報管理部204は、HoA2(図7のホームネットワーク70から割り当てられるホームアドレス)に関するバインディング情報を管理する機能を有しており、HoA2に対して関連付けるべきケアオブアドレスを取得又は変更した場合に、それらのケアオブアドレスに関するバインディング情報をHA80へ通知すべきか否かの判断を行う機能を有している。バインディング情報を通知すべきと判断した場合には、HoA2バインディング情報管理部204は、バインディング情報通知メッセージ生成部202に対して、通知すべきバインディング情報を供給してバインディング情報通知メッセージを生成するよう指示する。
また、転送前バッファリング要求判断部205から、特定のケアオブアドレスに対して転送前バッファリング要求を付加するよう指示された場合や、ホームアドレス関連付け判断部207から、ホームアドレスをケアオブアドレスとして登録するよう指示された場合には、HoA2バインディング情報管理部204は、バインディング情報通知メッセージ生成部202に対して、転送前バッファリング要求が付加されたバインディング情報通知メッセージを生成するよう指示する。
なお、転送前バッファリング要求が付加されているか否かにかかわらず、ホームアドレスをケアオブアドレスとして登録するためのバインディング情報通知メッセージに含まれるLifetimeには、有効期限が切れることがないことを示す値を含めてもよい。この場合、HAによって保持されるこのバインディング情報は、有効期限が切れることがないため、HAに対してHoAあてのパケットを常に代理受信し続けるよう要求することが可能となる。これにより、通常のケアオブアドレスに関するバインディング情報がすべて削除されたとしても、このエントリだけは残り続けるため、HAによる代理受信が有効な状態を保つことが可能となる。
また、HAによって行われる転送前バッファリングが実行された後に転送されるパケットの転送先となるアドレスが常に有効な状態であることを確保するために、ケアオブアドレスとして登録するホームアドレスに対してだけ転送前バッファリング要求を付加するようにしてもよい。この場合、HAによって転送前バッファリングが行われた後に転送されるパケットは、別のHAによって再び代理受信されるため、そのHAによる転送前バッファリングの効果を更に受けることが可能となる。
なお、HoA1バインディング情報管理部203、及びHoA2バインディング情報管理部204が、バインディング情報をHAへ通知するべきかどうかを判断するタイミングは、前述の転送前バッファリング要求判断部205からの指示を受けたときだけでなく、例えば、他のネットワークへの移動を検出した場合や、新たなCoAを生成・取得した場合なども考えられる。また、HAから通知されたバインディング情報を更新するインターバルが近づいてきたときや、バインディング情報の有効期限が残り少なくなったとき、更にはHAからバインディング情報の更新を要求するメッセージ(Binding Refresh Request Message)を受信した場合なども考えられる。
なお、ここでは、MN10に対してHoA1及びHoA2の2つのホームアドレスが割り当てられる場合を想定しており、図8には、MN10が、これら2つのホームアドレス(HoA1及びHoA2)をそれぞれ管理するHoA1バインディング情報管理部203及びHoA2バインディング情報管理部204を有している状態が図示されているが、割り当てられるホームアドレスの数に応じて、対応するHoAバインディング情報管理部が存在してもよい。また、HoA1バインディング情報管理部203及びHoA2バインディング情報管理部204は、管理するホームアドレスが異なるのみで基本的には同一機能を有しており、複数のホームアドレスの管理を行うことが可能な1つのHoAバインディング情報管理部に統合されてもよい。
また、転送前バッファリング要求判断部205は、各HA(HA60又はHA80)へ登録するケアオブアドレス、あるいは既に登録されているケアオブアドレスに対して、転送前バッファリング要求を付加すべきか否かを判断する機能を有している。転送前バッファリング要求判断部205は、特定のケアオブアドレスに対して転送前バッファリング要求を付加すべきと決定した場合には、対応するHoAバインディング情報管理部(HoA1バインディング情報管理部203、あるいはHoA2バインディング情報管理部204)に、特定のケアオブアドレスに対して転送前バッファリング要求を付加するよう指示する機能を有している。
なお、転送前バッファリング要求判断部205は、例えばハンドオーバなどの影響によって、あるインタフェース20の接続が一定時間不安定になることが事前に検出された場合などにおいて、そのインタフェース20に割り当てられているケアオブアドレスに対して転送前バッファリング要求の付加を決定することが可能である。
HA(HA60又はHA80)は、転送前バッファリング要求が付加されていないケアオブアドレスを転送先として選択した場合には、すぐにパケットの転送を開始してしまうため、接続が不安定である期間にもパケットがHA(HA60又はHA80)から転送され続け、その間のパケットをMN10が受信できずにパケットロスが発生してしまう可能性がある。しかしながら、転送前バッファリング要求が付加されている場合には、HAは、そのケアオブアドレスを転送先として選択した場合、すぐにパケット転送を開始せずにいったんバッファリングを行った後にパケットの転送を行うので、接続が不安定である期間にパケットが転送されるのを防ぐことが可能となる。
また、転送前バッファリング要求判断部205は、例えば、フロー情報管理部208からの通知を受けて、特定のフローに対して転送前バッファリング要求を付加すべきと判断してもよい。特定のフローに対して転送前バッファリング要求を付加すべきと判断した場合には、フロー情報通知メッセージ生成部206に対して、特定のフローに対する転送前バッファリング要求の付加をHA(HA60又はHA80)に通知するためのフロー情報通知メッセージを生成するよう指示してもよい。
また、転送前バッファリング要求判断部205は、ホームアドレス関連付け判断部207に対して、特定のホームアドレスを別のホームアドレスのケアオブアドレスとして使用するとともに、転送前バッファリング要求を付加するよう指示を行うことが可能である。この指示を受けたホームアドレス関連付け判断部207は、後述のように、HoA1バインディング情報管理部203、あるいはHoA2バインディング情報管理部204に対して、転送前バッファリング要求を付加したホームアドレスをケアオブアドレスとして登録するように指示を行う。
また、転送前バッファリング要求判断部205は、転送前バッファリング要求を付加すべき決定を行った場合に、HA(HA60又はHA80)において、パケット転送前に一時的にパケットのバッファリングを行う際のバッファ時間やバッファ容量を定める機能を有していてもよい。これらのバッファ時間やバッファ容量は、パケットを意図的に遅延させるための遅延時間に相当する。転送前バッファリング要求判断部205で定められた遅延時間は、転送前バッファリング要求と共にHA(HA60又はHA80)に通知されることが望ましい。
また、フロー情報通知メッセージ生成部206は、上述のように、転送前バッファリング要求判断部205から、特定のフローに対する転送前バッファリング要求の付加をHA(HA60又はHA80)に通知するためのメッセージ生成の指示を受けた場合に、転送前バッファリング要求が付加されたフロー情報を含むフロー情報通知メッセージを生成する機能を有している。
また、ホームアドレス関連付け判断部207は、MN10が保持しているホームアドレス(HoA1及びHoA2)を別のホームアドレスに関連付けるケアオブアドレスとして使用すべきか否かを判断する機能を有している。HoA1がHoA2のケアオブアドレスとして使用可能である場合には、HoA2バインディング情報管理部204に対してHoA1をケアオブアドレスとして関連付けるよう指示を行うことが可能である。一方、HoA2がHoA1のケアオブアドレスとして使用可能である場合には、HoA1バインディング情報管理部203に対してHoA2をケアオブアドレスとして関連付けるよう指示を行うことが可能である。
また、ホームアドレス関連付け判断部207は、転送前バッファリング要求判断部205から特定のホームアドレスに対して転送前バッファリング要求を付加するよう指示された場合には、HoA1バインディング情報管理部203、あるいはHoA2バインディング情報管理部204に対して、転送前バッファリング要求を付加したホームアドレスをケアオブアドレスとして登録するよう指示する。
なお、図8では、MN10は、バインディング情報通知メッセージ及びフロー情報通知メッセージの両方をHA(HA60又はHA80)に対して送信することが可能なように構成されているが、どちらか一方の通知メッセージのみを送信することが可能なように構成されていてもよい。すなわち、MN10は、バインディング情報通知メッセージによって転送前バッファリング要求を付加する対象のケアオブアドレスを通知するだけでもよく、フロー情報通知メッセージによって転送前バッファリング要求を付加する対象のフローを通知するだけでもよく、あるいは、両方のメッセージを用いて、転送前バッファリング要求を付加する対象のケアオブアドレス及びフローの両方を通知してもよい。
また、図8のMN10の構成では、転送前バッファリング要求を付加する対象がケアオブアドレスの場合にはバインディング通知メッセージが用いられ、転送前バッファリング要求を付加する対象がフローの場合にはフロー情報通知メッセージが用いられるが、例えばフローに対する転送前バッファリング要求を通知するメッセージとして、バインディング情報通知メッセージが用いられてもよい。この場合、例えば、フローに対する転送前バッファリング要求情報を、バインディング情報通知メッセージのオプションとして付加することが可能である。また、ケアオブアドレスに対する転送前バッファリング要求を通知するメッセージとして、フロー情報通知メッセージが用いられてもよい。
以上、図8を参照しながら説明したように、本発明の第2の実施の形態におけるMN10は、自身のHA60に対して、いったんバッファリングを行った後にパケットの転送を開始することでMN10あてのパケットの転送開始タイミングを遅らせるよう要求することが可能である(転送前バッファリング要求)。また、MN10は、転送前バッファリング要求の対象となるケアオブアドレスを選択することも可能である。また、複数のホームアドレスが割り当てられており、複数のホームアドレスのいずれかを別のホームアドレスのケアオブアドレスとして登録する場合に、HA(HA60又はHA80)に対して、特定のケアオブアドレス(MN10の複数のホームアドレスのうちの1つ)あてに転送されるパケットに関して、転送前バッファリング要求を行うことも可能である。また、MN10は、特定のケアオブアドレスあてのパケット、又は特定のフローに係るパケットに対して転送前バッファリング要求を行うだけではなく、例えば、特定の通信相手から送られてきたパケットに関して、転送前バッファリング要求を行ってもよい。
また、図9には、本発明の第2の実施の形態におけるMN10が生成、送信するバインディング情報通知メッセージの一例が図示されている。なお、図9には、バインディングアップデートメッセージを利用して、HoA2をHoA1に関連付けるケアオブアドレスとして通知するとともに、このケアオブアドレス(HoA2)に対して転送前バッファリングを要求する場合のバインディング情報通知メッセージの構成例が図示されている。
図9に図示されているIPv6ヘッダ(HA60をあて先アドレスに設定)、ホームアドレスオプション、モビリティヘッダ(バインディングアップデート)は、モバイルIPv6で定義されているバインディングアップデートメッセージの構成と基本的に同一である。本発明の第2の実施の形態では、図9に図示されているように、モバイルIPv6で定義されているバインディングアップデートメッセージの代替用CoAオプションの中に、更に転送前バッファリング要求情報と、バッファリングの対象として指定されるケアオブアドレス(HoA2)とが付加される。なお、転送前バッファリング要求情報は、HoA1をあて先アドレスとするパケットを、代替用CoAオプションに含まれているケアオブアドレス(図9の例ではHoA2)をあて先アドレスとするパケットでカプセル化して転送する前に、このパケットの転送前バッファリング要求を示す情報であり、例えばフラグなどの任意の形式で実現可能である。
また、特定のフローに対して転送前バッファリング要求を行う場合には、図4と同様のフォーマット(ただし、メッセージに含まれる要求は、転送前バッファリング要求)を有するフロー情報通知メッセージを使用することも可能である。また、図5と同様のフォーマット(ただし、メッセージは転送前バッファリング要求メッセージ)を有する専用の転送前バッファリング要求メッセージを用いることも可能である。
次に、本発明の第2の実施の形態におけるHA(HA60又はHA80)の構成について説明する。図10には、本発明の第2の実施の形態におけるHAの構成の一例が図示されている。図10において、HAは、送受信部701、バインディング情報通知メッセージ処理部702、フロー情報通知メッセージ処理部703、フロー情報保持部704、バインディング情報保持部705、転送先選択部706、代理受信パケット転送処理部707、転送前バッファリング処理部708を有している。なお、HAは、その他の様々な機能も有しているが、図10では図示省略する。
送受信部701は、HAが接続するネットワーク(例えば図7のホームネットワーク50、70)内の任意の通信ノードや、外部ネットワーク30に接続しているMN10(HA60又はHA80が存在するホームネットワーク50、70に属するMN10)、その他の任意のネットワークに接続している任意の通信ノードとの通信を行うためのパケット送受信機能を有している。
また、バインディング情報通知メッセージ処理部702は、MN10で生成、送信されたバインディング情報通知メッセージを送受信部701で受信した場合に、このバインディング情報通知メッセージに関する処理を行い、バインディング情報通知メッセージに含まれるMN10のバインディング情報を取得して、このバインディング情報をバインディング情報保持部705に保持させる機能を有している。なお、バインディング情報に関連して転送前バッファリング要求情報が付加されている場合には、バインディング情報と共に転送前バッファリング要求情報をバインディング情報保持部705に保持させる。
また、フロー情報通知メッセージ処理部703は、MN10で生成、送信されたフロー情報通知メッセージを送受信部701で受信した場合に、このフロー情報通知メッセージに関する処理を行い、フロー情報通知メッセージに含まれるMN10のフロー情報(フロー識別子)を取得して、このフロー識別子をフロー情報保持部704に保持させる機能を有している。なお、フロー識別子に関連して転送前バッファリング要求情報が付加されている場合には、フロー識別子と共に転送前バッファリング要求情報をフロー情報保持部704に保持させる。
また、フロー情報保持部704は、フロー情報通知メッセージ処理部703におけるフロー情報通知メッセージの処理によって抽出されたフロー識別子を保持する機能を有している。なお、フロー識別子に転送前バッファリング要求情報が付加されている場合には、フロー識別子と共に、転送前バッファリング要求情報も保持される。
また、バインディング情報保持部705は、バインディング情報通知メッセージ処理部702におけるバインディング情報通知メッセージの処理によって抽出されたバインディング情報(MN10のホームアドレスと、パケットの転送前バッファリング要求の対象となるケアオブアドレスとが関連付けられたバインディング情報)を保持する機能を有している。なお、バインディング情報保持部705では、特定のケアオブアドレスに対して転送されるパケットの転送前バッファリング要求が含まれているバインディング情報のほかに、バッファリング要求が含まれていない通常のバインディング情報も保持される。
なお、MN10がケアオブアドレスとしてホームアドレスを登録するためのバインディング情報通知メッセージを受信したとき、そのメッセージ処理によって抽出されたバインディング情報に関するLifetimeは、有効期限が切れることがないことを示す値が設定されている場合がある。この場合、保持されるバインディング情報は有効期限が切れて削除されることがなくなるため、HAは常にMN10のHoAあてのパケットを代理受信し続けることが可能となる。また、バインディング情報保持部705は、転送前バッファリング要求が付加されたバインディング情報を保持するときには常に、有効期限が切れることがない情報として保持するようにしてもよい。ただしこの場合は、MN10はケアオブアドレスとして登録するホームアドレスに対してだけ転送前バッファリング要求を付加する必要がある。また、HAは、有効期限が切れることがないことを示す値が設定されているバインディング情報を保持するときには常に、転送前バッファリング要求情報を付加するようにしてもよい。この場合、有効期限が切れることがないことを示す値が設定されているバインディング情報は、ケアオブアドレスとしてホームアドレスが登録される場合が望ましい。
また、転送先選択部706は、代理受信したMN10のHoAあてのパケットの転送先として、バインディング情報保持部705に保持されているバインディング情報の中から、転送先アドレスとして使用すべきケアオブアドレスを選択する機能を有している。また、転送先選択部706は、代理受信したMN10のHoAあてのパケットの転送先として、フロー情報保持部704に保持されているMN10のフロー識別子、及びバインディング情報保持部705を参照し、特定のフローの転送先として使用すべきケアオブアドレスを選択する機能を有している。
代理受信パケット転送処理部707は、管理しているMN10のHoAあてのパケットを代理受信した際に、転送先選択部706に対してそのパケットの転送先を選択するよう要求して、その選択結果を取得し、選択されたケアオブアドレスに転送前バッファリング要求が付加されている場合には、そのケアオブアドレスあてへすぐに転送せずに、転送前バッファリング処理部708に対して代理受信したパケットを渡し、バッファリングするよう指示する機能を有している。なお、転送前バッファリング要求が付加されていない場合には、代理受信パケット転送処理部707は、そのケアオブアドレスあてにカプセル化を行ってすぐに転送を開始する。
また、転送前バッファリング処理部708に対してパケットのバッファリングを指示した後、転送前バッファリング処理部708からバッファがフルになったことが通知された場合には、代理受信パケット転送処理部707は、転送先選択部706によって選択された転送前バッファリング要求が付加されていた転送先のケアオブアドレスに対して、転送前バッファリング処理部708が保持しているパケットの転送を開始する。これによって、転送前バッファリング処理部708にいったんバッファリングされるパケットは、バッファがフルになるまでの間、転送前バッファリング処理部708に留まることになり、一定時間だけ遅延してパケットの転送が行われることになる。
なお、ここでは、転送前バッファリング処理部708のバッファがフルになった場合に、転送前バッファリング処理部708に保持されているパケットの転送が開始されるように構成されているが、バッファに所定量のパケットが蓄積された場合にパケットの転送が開始されてもよく、また、バッファに所定の時間だけ格納された後にパケットの転送が開始されてもよい。さらに、MN10からパケットの遅延時間の通知を受けた場合には、通知された遅延時間だけ転送前バッファリング処理部708に格納された後に、パケットの転送が開始されてもよい。
また、転送前バッファリング処理部708は、代理受信パケット転送処理部707から渡されたパケットをバッファリングする機能を有している。代理受信パケット転送処理部707から渡されるパケットは、MN10から通知された特定のケアオブアドレスを転送先とするパケットや特定のフローに係るパケットであり、したがって、転送前パケットバッファリング部708では、MN10からバッファリング要求を受けたバッファリング対象のパケットのみがバッファリングされる。転送前バッファリング処理部708でパケットをバッファリングすることによって、パケットの転送タイミングを意図的に遅らせることが可能となる。
以上、図10を参照しながら説明したように、本発明の第2の実施の形態におけるHAは、MN10からバッファリングを行うように要求されたパケット(特定のケアオブアドレスあてに転送すべきパケットや、特定のフローに係るパケット)を一定の遅延時間だけ遅らせて転送することが可能となる。なお、特定のケアオブアドレスとして、MN10が有する別のホームアドレスが設定されている場合には、MN10からバッファリングを行うように要求されたパケットは、一定の遅延時間だけHAで保持された後、別のHAに転送されることになる。
次に、本発明の第2の実施の形態における具体的な動作の一例について、図7に図示されているネットワーク構成を参照しながら説明する。なお、以下では、何らかの原因でMN10と外部ネットワーク30との接続が切断した場合を想定する。接続の切断の原因としては、例えばMN10の移動などが挙げられる。
(本発明の第2の実施の形態の動作例)
MN10は、外部ネットワーク30に接続した場合には、通常のモバイルIPv6の処理として、例えば、ホームアドレス(HoA1)とケアオブアドレス(CoA1)とのバインディング情報をHA60に登録する。この際、例えば、MN10が、無線接続の不安定性に起因する外部ネットワーク30との断続的な切断や、パケット転送経路上でのパケットロスなどに備えて、HA60に対してバッファリング(転送前バッファリング)を要求することを決定した場合には、HoA2をHoA1のケアオブアドレスとして登録するとともに、そのケアオブアドレス(HoA2)へのパケット転送前にパケットのバッファリングを行うよう要求する転送前バッファリング要求を付加したバインディング情報通知メッセージをHA60に送信する。すなわち、ここでは、HoA1に対して、2つのケアオブアドレス(CoA1及びHoA2)が設定され、別のホームエージェント(HA80)によって管理されているHoA2に対して転送前バッファリング要求情報が付加されるものとする。
また同様に、MN10は、例えば、ホームアドレス(HoA2)とケアオブアドレス(CoA1)とのバインディング情報をHA80に登録する。さらに、MN10は、HA80に対してバッファリング(転送前バッファリング)を要求することを決定した場合には、HoA1をHoA2のケアオブアドレスとして登録するとともに、そのケアオブアドレス(HoA1)へのパケット転送前にパケットのバッファリングを行うよう要求する転送前バッファリング要求を付加したバインディング情報通知メッセージをHA80に送信する。すなわち、ここでは、HoA2に対して、2つのケアオブアドレス(CoA1及びHoA1)が設定され、別のホームエージェント(HA60)によって管理されているHoA1に対して転送前バッファリング要求情報が付加されるものとする。
これらのバインディング情報通知メッセージをそれぞれ受信したHA60及びHA80は、バインディング情報通知メッセージ内に含まれる情報をバインディング情報保持部705に格納する。
HA60は、MN10のHoA1あてのパケットを代理受信した場合には、そのパケットをCoA1へ転送するが、ここで、MN10と外部ネットワーク30との接続が切断され、HA60が、MN10のCoA1あての転送に失敗したことを、例えばDestination Unreachable Messageを受信することで検出したとする。この場合、HA60は、CoA1あてのパケット転送が失敗したことに対し、別のケアオブアドレスを転送先として選択する。HA60がCoA1に代わって、HoA2を次の転送先として選択した場合、HoA2には転送前バッファリング要求が付加されているので、HA60は、パケットをすぐにHoA2に転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してHoA2あてに転送を開始する。
一方、HA80は、HA60から転送されてきたHoA2あてのパケットを代理受信する。代理受信されたパケットは、HA80によって転送されるが、転送先としてCoA1が依然として使用できない場合には、HoA1が転送先として選択される。このときHoA1には転送前バッファリング要求が付加されているので、HA80は、パケットをすぐにHoA1へ転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してHoA1あてに転送を開始する。この動作の結果、パケットは、各HA60、80でバッファリングを繰り返しながら複数のHA間で転送され続けることになる。
そして、例えばMN10と外部ネットワーク30との切断が一時的なものであり、MN10が外部ネットワーク30に再接続することができた場合には、HA60又はHA80からCoA1あてにパケットが転送され、その結果、パケットロスを防ぐことが可能となる。
また、MN10が再接続を行って、HA60、80に新たなCoAが登録された場合には、パケットがそのCoAあてに転送されることによって、パケットロスが生じることなく、MN10は即座にパケットを受信することが可能となる。なお、他の任意の方法を用いて、複数のHA間でのパケットの転送回数をある程度の回数に制限することによって、複数のHA間でパケットが長期的に(あるいは永久に)転送され続けないように制御することが望ましい。
なお、上述の動作例では、特定のケアオブアドレスあてのパケットが、複数のHA間で転送され続けることによってネットワーク上でパケットのバッファリングが行われているが、特定のフローに係るパケットに関してのみ転送前バッファリングが有効になるようにしてもよい。すなわち、フロー情報を考慮して、特定のケアオブアドレスあての特定のフローに係るパケットのみが、複数のHA間で転送され続けることによってネットワーク上でパケットのバッファリングが行われるようにしてもよい。
また、上述の説明では、主に、MN10が2つのホームアドレスを有する場合の構成及び動作について記載したが、3つ以上のホームアドレスを有する場合であっても本発明は適用可能である。その場合、転送前バッファリングが、利用できる複数のHAによって連鎖的に順次起こるように、転送前バッファリング要求を付加したそれぞれのホームアドレスをケアオブアドレスとして登録をすることによって、利用できるHAの数だけバッファ量を増やすことが可能となるため、よりパケットロスを軽減することが可能となる。
以上、説明したように、本発明の第2の実施の形態によれば、MNは、HAに登録するケアオブアドレスに転送前バッファリング要求情報を付加することによって、HAは、そのケアオブアドレスあての転送パケットをいったんバッファリングしてから、パケット転送を行うことが可能となる。特に、MNが複数のホームアドレスを有し、あるホームアドレスのケアオブアドレスとして別のホームアドレスの関連付けを行った場合には、1つのHAだけではバッファしきれないパケットを別のHAに転送させることが可能となり、複数のHA間でパケットの転送が行われ、その結果、複数のHA間におけるバッファリングを実現することが可能となる。さらに、この場合、例えば同一のケアオブアドレスが再び到達可能となった場合や別のケアオブアドレスが登録された場合など、MN10のインタフェースに到達可能な状態となった場合には、複数のHA間でバッファリングされていたパケットをMNに送信することによって、パケットロスを最小限に抑えた効率的な再送制御が実現されるようになる。
なお、図13に示すように、MN10が、ネットワークベースのモビリティプロトコルが提供されているローカルネットワーク515に接続している際には、MN10の移動に係る制御を代理で行う代理ノード518(Proxy Mobile Agent)が、本発明の第2の実施の形態におけるMN10が保持する機能を有していてもよい。この場合、代理ノード518は、独自の判断で選択的にバッファリングするべきパケットの対象を判断してもよいし、MN10から指示を受けてもよい。また、代理ノード518は、MN10の接続状態を随時監視することで、MN10の接続が安定している場合には、転送前バッファリング要求情報の通知をしないことを選択し、MN10の接続が切れているときや不安定なときなどに、転送前バッファリング要求情報の通知を行うことを選択するようにしてもよい。代理ノード518は、決定した転送前バッファリング要求情報を、MN10を管理しているHA60へ通知する。
また、代理ノード518が、本発明の第2の実施の形態におけるHAが保持する機能を有していてもよい。この場合、MN10は、フロー情報に転送前バッファリング要求情報を付加して代理ノード518へ通知する。この通知を受けた代理ノード518は、HA60から転送されたMN10のホームアドレス(HoA1)あてのパケットが、転送前バッファリング要求情報が付加されたフローに一致した場合には、パケットをすぐにMN10へ転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してMN10へ転送を開始する。また、代理ノード518は、独自の判断で転送前バッファリングするべきパケットの対象を判断してもよい。また、代理ノード518は、MN10の接続状態を随時監視することで、MN10の接続が安定している場合には、転送前バッファリング行わないことを選択し、MN10の接続が切れているときや不安定なときなどに、転送前バッファリングを行うことを選択するようにしてもよい。
<第3の実施の形態>
次に、本発明の第3の実施の形態について説明する。本発明の第3の実施の形態は、基本的に、上述の本発明の第1及び第2の実施の形態を組み合わせたものである。なお、本発明の第3の実施の形態では、ネットワーク構成の具体例に関しては、図7のネットワーク構成を前提として説明を行う。
まず、本発明の第3の実施の形態におけるMN10の構成について説明する。図11には、本発明の第3の実施の形態におけるMN10の構成の一例が図示されている。図11において、MN10は、送受信部301、バインディング情報通知メッセージ生成部302、HoA1バインディング情報管理部303、HoA2バインディング情報管理部304、転送前バッファリング要求判断部305、フロー情報通知メッセージ生成部306、ホームアドレス関連付け判断部307、フロー情報管理部308、バッファリング要求判断部309を有している。なお、図11に図示されているMN10は、基本的に、図2及び図8のMN10を組み合わせた構成を有している。
図11において、送受信部301は、図2に図示されている送受信部101又は図8に図示されている送受信部201と同一である。
また、バインディング情報通知メッセージ生成部302は、図2に図示されているバインディング情報通知メッセージ生成部102、及び図8に図示されているバインディング情報通知メッセージ生成部202の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。バインディング情報通知メッセージ生成部302は、バッファリング転送要求情報及び/又は転送前バッファリング転送要求情報を含むバインディング情報通知メッセージを生成することが可能である。
また、HoA1バインディング情報管理部303は、図2に図示されているバインディング情報管理部103、及び図8に図示されているHoA1バインディング情報管理部203の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。HoA1バインディング情報管理部303は、転送前バッファリング要求判断部305からの指示に基づいて、バインディング情報通知メッセージ生成部302に対して、転送前バッファリング要求が付加されたバインディング情報通知メッセージを生成するよう指示する機能や、バッファリング要求判断部309からの指示に基づいて、バインディング情報通知メッセージ生成部302に対して、バッファリング要求が付加されたバインディング情報通知メッセージを生成するよう指示する機能を有している。
また、HoA2バインディング情報管理部304は、図2に図示されているバインディング情報管理部103、及び図8に図示されているHoA2バインディング情報管理部204の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。HoA1バインディング情報管理部303では、HoA1に関する管理が行われ、HoA2バインディング情報管理部304では、HoA2に関する管理が行われる。
また、転送前バッファリング要求判断部305は、図8に図示されている転送前バッファリング要求判断部205と同一である。
また、フロー情報通知メッセージ生成部306は、図2に図示されているフロー情報通知メッセージ生成部105、及び図8に図示されているフロー情報通知メッセージ生成部206の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。フロー情報通知メッセージ生成部306は、バッファリング転送要求情報及び/又は転送前バッファリング転送要求情報を含むフロー情報通知メッセージを生成することが可能である。
また、ホームアドレス関連付け判断部307は、図8に図示されているホームアドレス関連付け判断部207と同一である。
また、フロー情報管理部308は、図2に図示されているフロー情報管理部106、及び図8に図示されているフロー情報管理部208の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。
また、バッファリング要求判断部309は、図2に図示されているバッファリング要求判断部104と同一である。
なお、図11では、MN10は、バインディング情報通知メッセージ及びフロー情報通知メッセージの両方をHA(HA60又はHA80)に対して送信することが可能なように構成されているが、どちらか一方の通知メッセージのみを送信することが可能なように構成されていてもよい。すなわち、MN10は、バインディング情報通知メッセージによってバッファリング要求及び/又は転送前バッファリング要求を付加する対象のケアオブアドレスを通知するだけでもよく、フロー情報通知メッセージによってバッファリング要求及び/又は転送前バッファリング要求を付加する対象のフローを通知するだけでもよく、あるいは、両方のメッセージを用いて、バッファリング要求及び/又は転送前バッファリング要求を付加する対象のケアオブアドレス及びフローの両方を通知してもよい。
また、図11のMN10の構成では、バッファリング要求及び/又は転送前バッファリング要求を付加する対象がケアオブアドレスの場合にはバインディング通知メッセージが用いられ、バッファリング要求及び/又は転送前バッファリング要求を付加する対象がフローの場合にはフロー情報通知メッセージが用いられるが、例えばフローに対するバッファリング要求及び/又は転送前バッファリング要求を通知するメッセージとして、バインディング情報通知メッセージが用いられてもよい。この場合、例えば、フローに対するバッファリング要求及び/又は転送前バッファリング要求情報を、バインディング情報通知メッセージのオプションとして付加することが可能である。また、ケアオブアドレスに対するバッファリング要求及び/又は転送前バッファリング要求を通知するメッセージとして、フロー情報通知メッセージが用いられてもよい。
次に、本発明の第3の実施の形態におけるHA(HA60又はHA80)の構成について説明する。図12には、本発明の第3の実施の形態におけるHAの構成の一例が図示されている。図12において、HAは、送受信部801、バインディング情報通知メッセージ処理部802、フロー情報通知メッセージ処理部803、フロー情報保持部804、バインディング情報保持部805、代理受信/転送前バッファリング部806、再送・転送先切替指示部807、転送先選択部808、代理受信パケット転送処理部809を有している。なお、図12に図示されているHAは、基本的に、図6及び図10のHAを組み合わせた構成を有している。
図12において、送受信部801は、図6に図示されている送受信部601又は図10に図示されている送受信部701と同一である。
また、バインディング情報通知メッセージ処理部802は、図6に図示されているバインディング情報通知メッセージ処理部602、及び図10に図示されているバインディング情報通知メッセージ処理部702の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。バインディング情報通知メッセージ処理部802では、バッファリング要求情報及び/又は転送前バッファリング要求情報が付加されたバインディング情報通知メッセージに係る処理が行われる。
また、フロー情報通知メッセージ処理部803は、図6に図示されているフロー情報通知メッセージ処理部603、及び図10に図示されているフロー情報通知メッセージ処理部703の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。フロー情報通知メッセージ処理部803では、バッファリング要求情報及び/又は転送前バッファリング要求情報が付加されたフロー情報通知メッセージに係る処理が行われる。
また、フロー情報保持部804は、図6に図示されているフロー情報保持部604、及び図10に図示されているフロー情報保持部704の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。フロー情報保持部804では、バッファリング要求情報及び/又は転送前バッファリング要求情報が付加されたフロー情報が保持される。
また、バインディング情報保持部805は、図6に図示されているバインディング情報保持部605、及び図10に図示されているバインディング情報保持部705の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。バインディング情報保持部805では、バッファリング要求情報及び/又は転送前バッファリング要求情報が付加されたバインディング情報が保持される。
また、代理受信/転送前バッファリング部806は、図6に図示されている代理受信パケットバッファリング部606、及び図10に図示されている転送前バッファリング処理部708の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。なお、代理受信/転送前バッファリング部806には、再送を目的として転送と同時にバッファリングされるパケット(バッファリング要求の対象となるパケット)と、転送を目的としてその転送前にバッファリングされるパケット(転送前バッファリング要求の対象となるパケット)とが存在する。
また、再送・転送先切替指示部807は、図6に図示されている再送・転送先切替指示部607と同一である。
また、転送先選択部808は、図6に図示されている転送先選択部608、及び図10に図示されている転送先選択部706の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。
また、代理受信パケット転送処理部809は、図6に図示されている代理受信パケット転送処理部609、及び図10に図示されている代理受信パケット転送処理部707の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。代理受信パケット転送処理部809は、バッファリング要求によって指定されたパケットの再送を行う場合や、転送前バッファリング要求によって指定されたパケットの転送を行う場合には、代理受信/転送前バッファリング部806から取得してパケットの再送又は転送を行う。
なお、本発明の第3の実施の形態では、バッファリング要求情報と転送前バッファリング要求情報との組み合わせによって、バッファリングの態様を定めるルールを様々に設定することが可能である。例えば、バッファリング要求情報が付加されているケアオブアドレスあてのパケットやフローに係るパケットに関しては、転送前バッファリング要求情報の有無によらず自動的に転送前バッファリングが行われるようにしたり、バッファリング要求情報が付加されているケアオブアドレスあてのパケットやフローに係るパケットに関してのみ、転送前バッファリングが行われるようにしたりすることが可能である。
次に、本発明の第3の実施の形態における具体的な動作の一例について、図7に図示されているネットワーク構成を参照しながら説明する。なお、以下では、何らかの原因でMN10と外部ネットワーク30との接続が切断した場合を想定する。接続の切断の原因としては、例えばMN10の移動などが挙げられる。
(本発明の第3の実施の形態の第1動作例)
まず、本発明の第3の実施の形態における第1動作例について説明する。MN10は、外部ネットワーク30に接続した場合には、通常のモバイルIPv6の処理として、ホームアドレス(HoA1)とケアオブアドレス(CoA1)とのバインディング情報をHA60に登録する。
この際、例えば、MN10が、無線接続の不安定性に起因する外部ネットワーク30との断続的な切断や、パケット転送経路上でのパケットロスなどに備えて、登録するケアオブアドレスあてのパケットをHA60にバッファリングさせるよう要求することを決定した場合には、そのケアオブアドレス(CoA1)に対してバッファリング要求を付加したバインディング情報通知メッセージをHA60に送信する。
また、さらに、この際、例えば、MN10が、無線接続の不安定性に起因する外部ネットワーク30との断続的な切断や、パケット転送経路上でのパケットロスなどに備えて、HA60に対してバッファリング(転送前バッファリング)を要求することを決定した場合には、HoA2をHoA1のケアオブアドレスとして登録するとともに、そのケアオブアドレス(HoA2)へのパケット転送前にパケットのバッファリングを行うよう要求する転送前バッファリング要求を付加したバインディング情報通知メッセージをHA60に送信する。
すなわち、ここでは、HoA1に対して、2つのケアオブアドレス(CoA1及びHoA2)が設定され、CoA1にはバッファリング要求情報が付加され、別のホームエージェント(HA80)によって管理されているHoA2には転送前バッファリング要求情報が付加されるものとする。
一方、MN10は、例えば、ホームアドレス(HoA2)とケアオブアドレス(CoA1)とのバインディング情報をHA80に登録する。さらに、MN10は、HA80に対してバッファリング(転送前バッファリング)を要求することを決定した場合には、HoA1をHoA2のケアオブアドレスとして登録するとともに、そのケアオブアドレス(HoA1)へのパケット転送前にパケットのバッファリングを行うよう要求する転送前バッファリング要求を付加したバインディング情報通知メッセージをHA80に送信する。
これらのバインディング情報通知メッセージをそれぞれ受信したHA60及びHA80は、バインディング情報通知メッセージ内に含まれる情報をバインディング情報保持部805に格納する。
HA60は、MN10のHoA1あてのパケットを代理受信した場合には、そのパケットをCoA1へ転送すると同時に、CoA1に転送されるパケットのバッファリングを行う。このパケットのバッファリングは、パケットの再送を決定した場合に使用されるものである。
ここで、MN10と外部ネットワーク30との接続が切断され、HA60が、MN10のCoA1あての転送に失敗したことを、例えばDestination Unreachable Messageを受信することで検出したとする。この場合、HA60は、CoA1あてのパケット転送が失敗したことに対し、別のケアオブアドレスを転送先として選択する。なお、パケットの再送を所定の回数試みてもMN10にパケットが到達しなかった場合に、パケットの転送先を切り替えるようにするなど、任意の方法に基づいて、転送先の切り替えに移行するタイミングを決定することが可能である。
HA60がCoA1に代わって、HoA2を次の転送先として選択した場合、HoA2には転送前バッファリング要求が付加されているので、HA60は、パケットをすぐにHoA2に転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してHoA2あてに転送を開始する。
一方、HA80は、HA60から転送されてきたHoA2あてのパケットを代理受信する。代理受信されたパケットは、HA80によって転送されるが、転送先としてCoA1が依然として使用できない場合には、HoA1が転送先として選択される。このときHoA1には転送前バッファリング要求が付加されているので、HA80は、パケットをすぐにHoA1へ転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してHoA1あてに転送を開始する。この動作の結果、パケットは、各HA60、80でバッファリングを繰り返しながら複数のHA間で転送され続けることになる。
(本発明の第3の実施の形態の第2動作例)
次に、本発明の第3の実施の形態における第2動作例について説明する。MN10は、外部ネットワーク30に接続した場合には、通常のモバイルIPv6の処理として、例えば、ホームアドレス(HoA1)とケアオブアドレス(CoA1)とのバインディング情報をHA60に登録する。この際、例えば、MN10が、無線接続の不安定性に起因する外部ネットワーク30との断続的な切断や、パケット転送経路上でのパケットロスなどに備えて、通信中の特定のフロー(フロー1)に係るパケットをHA60にバッファリングさせるよう要求することを決定した場合には、MN10は、そのフロー1に対してバッファリング要求を付加したバインディング情報通知メッセージをHA60に送信する。
さらに、MN10は、HoA2をHoA1のケアオブアドレスとして登録するとともに、そのケアオブアドレス(HoA2)へのパケット転送前にパケットのバッファリングを行うよう要求する転送前バッファリング要求を付加したバインディング情報通知メッセージをHA60に送信する。
すなわち、ここでは、HoA1に対して、2つのケアオブアドレス(CoA1及びHoA2)が設定され、特定のフロー1に対してバッファリング要求情報が付加され、別のホームエージェント(HA80)によって管理されているHoA2には転送前バッファリング要求情報が付加されるものとする。
これらのバインディング情報通知メッセージをそれぞれ受信したHA60及びHA80は、バインディング情報通知メッセージ内に含まれる情報をバインディング情報保持部805に格納する。
HA60は、MN10のHoA1あてのパケットを代理受信した場合には、そのパケットをCoA1へ転送すると同時に、フロー1に係るパケットのバッファリングを行う。このパケットのバッファリングは、パケットの再送を決定した場合に使用されるものである。
ここで、MN10と外部ネットワーク30との接続が切断され、HA60が、MN10のCoA1あての転送に失敗したことを、例えばDestination Unreachable Messageを受信することで検出したとする。この場合、HA60は、CoA1あてのパケット転送が失敗したことに対し、別のケアオブアドレスを転送先として選択する。HA60がCoA1に代わって、HoA2を次の転送先として選択した場合、HoA2には転送前バッファリング要求が付加されているので、HA60は、CoA1あてのパケットをすぐにHoA2に転送せず、いったん代理受信/転送前バッファリング処理部806にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してHoA2あてに転送を開始する。なお、HA60は、バッファリング要求が付加されているフロー1に係るパケットに対してのみ、転送前バッファリング処理を行って、フロー1以外のパケットに関しては、転送前バッファリングを行わないようにしてもよい。
一方、HA80は、HA60から転送されてきたHoA2あてのパケットを代理受信する。代理受信されたパケットは、HA80によって転送されるが、転送先としてCoA1が依然として使用できない場合には、HoA1が転送先として選択される。このときHoA1には転送前バッファリング要求が付加されているので、HA80は、パケットをすぐにHoA1へ転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してHoA1あてに転送を開始する。この動作の結果、パケットは、各HA60、80でバッファリングを繰り返しながら複数のHA間で転送され続けることになる。なお、3つ以上のHAを用いてもよく、その場合、転送前バッファリングが、利用できる複数のHAによって連鎖的に順次起こるように、転送前バッファリング要求を付加したそれぞれのホームアドレスをケアオブアドレスとして登録をすることによって、利用できるHAの数だけバッファ量を増やすことが可能となるため、よりパケットロスを軽減することが可能となる。
以上、説明したように、本発明の第3の実施の形態によれば、上述の本発明の第1及び第2の実施の形態を組み合わせて利用することが可能である。また、例えば、転送バッファリング要求で特定のケアオブアドレスが指定されている場合であっても、バッファリング要求の対象のパケット(例えば、特定のフローに係るパケット)に対してのみ転送前バッファリング処理が行われるようにするなど、バッファリング要求情報と転送前バッファリング要求情報との組み合わせに応じて、バッファリングの態様を定めるルールを様々に設定することが可能である。
なお、図13に示すように、MN10が、ネットワークベースのモビリティプロトコルが提供されているローカルネットワーク515に接続している際には、MN10の移動に係る制御を代理で行う代理ノード518(Proxy Mobile Agent)が、本発明の第3の実施の形態におけるMN10が保持する機能を有していてもよい。この場合、代理ノード518は、独自の判断で選択的バッファリング及び転送前バッファリングするべきパケットの対象を判断してもよいし、MN10から指示を受けてもよい。また、代理ノード518は、MN10の接続状態を随時監視することで、MN10の接続が安定している場合には、選択的バッファリング及び転送前バッファリング要求情報の通知をしないことを選択し、MN10の接続が切れているときや不安定なときなどに、選択的バッファリング及び転送前バッファリング要求情報の通知を行うことを選択するようにしてもよい。代理ノード518は、決定したバッファリング要求及び転送前バッファリング要求情報を、MN10を管理しているHA60へ通知する。
また、代理ノード518が、本発明の第3の実施の形態におけるHAが保持する機能を有していてもよい。この場合、MN10は、フロー情報にバッファリング要求情報及び転送前バッファリング要求情報を付加して代理ノードへ通知する。この通知を受けた代理ノード518は、HA60から転送されたMN10のホームアドレス(HoA1)あてのパケットが、バッファリング要求情報が付加されたフローに一致した場合には、バッファリングを行い、さらにMN10の接続の不安定性などにより再送が必要であると判断した場合には、バッファリングしているパケットを用いて再送を行う。また、転送前バッファリング要求情報が付加されたフローに一致した場合には、パケットをすぐにMN10へ転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してMN10へ転送を開始する。また、代理ノード518は、独自の判断で選択的バッファリング及び転送前バッファリングするべきパケットの対象を判断してもよい。また、代理ノード518は、MN10の接続状態を随時監視することで、MN10の接続が安定している場合には、選択的バッファリング及び転送前バッファリング行わないことを選択し、MN10の接続が切れているときや不安定なときなどに、選択的バッファリング及び転送前バッファリングを行うことを選択するようにしてもよい。
なお、本明細書では、本発明の第1〜第3の実施の形態に係る技術を独立して説明しているが、本発明の第1〜第3の実施の形態に係る技術を任意に組み合わせて、本発明を実現することも可能である。
また、上述の本発明の各実施の形態の説明で用いた各機能ブロックは、典型的には集積回路であるLSI(Large Scale Integration)として実現される。これらは個別に1チップ化されてもよいし、一部又はすべてを含むように1チップ化されてもよい。なお、ここでは、LSIとしたが、集積度の違いにより、IC(Integrated Circuit)、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。例えば、バイオ技術の適応などが可能性としてあり得る。
本発明は、CNからHAを経由してMNに送信されるパケットに関して、MNにとって有効なパケットに関する再送制御ができるようになるという効果を有しており、パケット転送技術及びアドレス管理技術に適用可能であり、特にモバイルIPv6におけるパケット転送技術及びアドレス管理技術に適用可能である。
本発明は、IP(Internet Protocol:インターネットプロトコル)を利用した通信を管理する通信管理方法に関し、特に、IPパケットのバッファリング制御及び再送制御を行う通信管理方法に関する。
従来、ネットワークを利用した通信には、障害を引き起こす様々な原因が存在している。特に、端末(無線通信端末)が無線通信を用いてインターネットへ接続している場合、電波状況の変化などによってパケットロスや遅延などの問題が引き起こされる場合がある。
このような問題に対し、下記の非特許文献1には、送信元ノードのTCP(Transmission Control Protocol)レイヤは、送信したデータパケットに対する通信相手からのACK(acknowledgment)が一定時間経過しても返ってこない場合に、パケットの再送を行う旨が規定されている。また、伝送経路上のルータにおいて、何らかの原因であて先への転送がこれ以上できないという状況に返されるICMP(Internet Control Message Protocol)のDestination Unreachable Message(あて先到達不可能通知)を受信した場合などにおいても同様に、送信元ノードのTCPレイヤはパケットの再送を行う場合がある。
しかしながら、上記の2つの方法は、いずれもエンド−エンド(End-End)の再送制御であり、パケットロスは改善されるものの、パケットの受信ノードから最も遠い場所に位置する送信元ノードが再送を行うことに伴って、再送遅延(再送制御における遅延)が発生してしまう可能性がある。このようなエンド−エンドの再送制御に伴って発生する再送遅延を改善するための方法として、例えば下記の非特許文献2には、転送経路上に存在するルータが再送制御を行う方法が提案されている。
非特許文献2で提案されている方法によれば、従来の送信ノードが行うような再送制御機能をネットワーク上のルータに持たせ、このルータがパケット再送の要否を検出し、パケットを再送する必要を検出した場合に、バッファしていたパケットの転送(再送)が行われる。この方法を用いることによって、再送を必要とする問題が生じた場合、非特許文献1に開示されているように送信元ノードが再送をするのではなく、問題が発生した箇所から比較的近いところに存在するルータ(パケットの中継地点)がパケットの再送を行うことで、送信元ノードがパケットの再送を行う場合よりも再送遅延を低減させることが可能となる。
しかしながら、単一のルータが再送のためにバッファリングできる容量は限られているため、バッファリングを行うルータのバッファ容量がバッファすべきパケット量に対して小さい場合には、ルータはバッファが必要となるすべてのパケットをバッファすることができず、結果的に、パケットのロスが生じてしまうことになる。このような場合の改善方法としては、バッファがフル(Full)になった時点で、あふれたパケットを別のバッファ可能なルータへ転送するという方法が考えられる。この方法を用いることで、バッファ容量を事実上増やすことが可能となり、単一のルータのバッファ容量が限られている場合であっても、非特許文献2で提案されている方法による再送遅延やパケットロスの低減を実現することが可能となる。
次に、モバイルIPv6(Mobile IPv6)を利用したMN(Mobile Node:モバイルノード)とCN(Correspondent Node:コレスポンデントノード)との間の通信に対して、上記のTCPによる再送制御を適用した場合について説明する。MNが移動先(MNが外部ネットワークに接続されている状態)からHA(Home Agent:ホームエージェント)経由でCNと通信を行っている場合、その通信経路は、パケットがカプセル化されていない状態のCN−HA間の経路と、パケットがカプセル化されている状態のHA−MN間の経路とに分けて考えることが可能である。
CNがMNのHoA(Home Address:ホームアドレス)しか知らない場合には、MNに対して送信するパケットのあて先アドレスにMNのHoAを設定して送信する。CNから送信されたパケットはMNのホームネットワークまで転送され、MNのホームネットワーク上のHAによって代理受信(intercept)された後、MNのCoAあてにカプセル化されて転送される。このように、CN−HA間を流れるパケットはCNが送信したままのパケットであるが、HA−MN間を流れるパケットは、HAによってカプセル化されたパケットとなる。
ここで、仮にCN−HA間のルータが、何らかの原因によってCNが送信したパケットをこれ以上転送できないと判断したとする。この場合には、通常のルータの処理によってDestination Unreachable Messageが送信元であるCNに返されるため、CNのTCPレイヤは再送制御を行うことが可能となる。
一方、HA−MN間のルータが、何らかの原因によってCNが送信したパケットを転送できないと判断したとする。この場合には、転送パケットの送信元アドレスはHAのアドレスであるため、Destination Unreachable MessageはHAに対して送信される。モバイルIPv6では、HAが、MNに送信したカプセル化パケットに対するDestination Unreachable Messageを受信した場合、そのパケットを元のパケットの送信元であるCNに中継しなければならない。これにより、CNに対してパケット不達の通知が届けられ、HA−MN間で発生した障害に対しても、CNのTCPレイヤが再送制御を行うことが可能となるが、モバイルIPv6を利用した通信においても、TCPによる再送はエンドーエンドで行われるため、再送遅延が生じる問題に変わりはない。
さらに、上述の転送経路上のルータによる再送制御方法(非特許文献2に開示されている再送制御方法)を、モバイルIPv6を利用したMNとCNとの間の通信に適用することも可能である。この場合、CN−HA間の経路上で問題が発生した場合には、上記と同様の効果があると言える。しかしながら、MNが移動した場合には、MNのケアオブアドレス(CoA:Care-of address)も変更されてしまい、その結果、MNの移動前のケアオブアドレスあてのパケットは、再送されても目的とするMNに到達することはできない。再送制御機能を持つルータは、MNの移動に伴うアドレスの変化に対応できないため、MNが移動した場合には、HA−MN間の経路上で発生した問題に対してはあまり効果がない。すなわち、パケットのあて先であるケアオブアドレスを使用するMNが移動してしまい、既にそのネットワーク上に存在しないことに起因してDestination Unreachable Messageが発生した場合には、非特許文献2に開示されている再送制御方法がHA−MN間のルータによって実行されたとしても、再送されたパケットはMNに到達することは不可能である。
J. Postel, "Transmission Control Protocol", RFC793, September 1981.
下國 治、古賀久志、陣崎 明 "広域並列分散システムのための信頼できるマルチキャスト" 情報処理学会研究報告、計算機アーキテクチャ研究会報告、第2000巻、第23号、53〜58ページ、2000年3月2日
モバイルIPv6を利用したMNとCNとの間の通信において、その経路上に位置するHAに、上述の非特許文献2に開示されている再送制御の機能を実装させることも可能である。この場合、HAは、MNの移動を管理しているため、転送したパケットがMNに到達しなかった場合には、MNの移動に追従してパケットの再送を行うことが可能である。しかしながら、HAによる再送制御が、MNにとってすべて好ましいものであるとは限らない。すなわち、HAが、MNあてのすべてのパケットに対して同一の再送制御を行った場合には、例えば、パケットロスや遅延の影響を受けるのが望ましくないパケット(再送制御が有効なパケット)に加えて、パケットロスや遅延の影響を受けても構わないパケット(再送制御が特に有効ではないパケット)のバッファリングや再送制御まで行われてしまうことになる。その結果、パケットロスや遅延の影響を受けても構わないパケットに対する処理やリソース消費によって、パケットロスや遅延の影響を受けるのが望ましくないパケットに関してパケットロスや遅延が発生してしまう可能性があるという問題がある。
また、HAは、MNのバインディングキャッシュを保持している。しかしながら、例えばMNの接続が一時的に切断してしまい、HAがMNからライフタイム(Lifetime)を更新するバインディングアップデートを一定時間経過しても受信しなかった場合には、HAは、そのMNに係るエントリをバインディングキャッシュから削除してしまう。この場合、HAは、そのMNのホームアドレスあてのパケットの代理受信を中止してしまうため、CNが送信したホームアドレスあてのパケットはMNに届かなくなってしまう。一方、このMNの接続の切断が一時的なものである場合には、HAは、MNからバインディングアップデートを受信してバインディングキャッシュにMNに係るエントリを再登録することになるが、MNの一時的な接続の中断の間にCNから送信されたパケットはMNに到達せずにすべて破棄されてしまうことになる。その結果、CNがパケットの再送を行う必要が生じ、パケットロスや遅延が発生してしまうことになるという問題がある。
また、MNが複数のHAを利用でき、それぞれのHAからホームアドレスが割り当てられている場合、あるホームアドレスを別のホームアドレスに対するケアオブアドレスとして関連付けることで、常に有効なアドレスをケアオブアドレスとして登録し続けることが可能である。あるMNがこのような登録を行った場合、HAは、CNからMNへのパケットを転送する際に、ケアオブアドレスとして登録されているホームアドレスを用いてパケットのカプセル化を行い、そのカプセル化されたパケットがHAから送信されることになる。
しかしながら、MNが、接続の切断などによって、有効なケアオブアドレスを失った場合、すなわち、あるHAに対して、そのHAが送信する転送パケットを自身まで到達させることが可能な転送先アドレスを登録できない場合は、別のHAに対しても同様に、自身まで到達可能な転送先アドレスを登録できないと言える。そのため、あるHAによってHoAあてにカプセル化されて転送されたパケットは、その転送パケットを代理受信する別のHAによってMNへの転送先がないパケットとして再び処理されるため、ホームアドレスを単にケアオブアドレスとして登録しただけでは、MNにとって有効な登録とはならないという問題がある。
上記の問題点に鑑み、本発明は、CNからHAを経由してMNに送信されるパケットに関して、MNにとって有効なパケットに関する再送制御を可能とするパケット転送制御装置及びモバイルノードを提供することを目的とする。
上記の目的を達成するため、本発明のパケット転送制御装置は、所定のネットワークに属するホームエージェントにおけるパケット転送の制御を行うパケット転送制御装置であって、
前記所定のネットワークからホームアドレスが割り当てられているモバイルノードのアドレス管理を行い、前記ホームアドレスとそのケアオブアドレスとが関連付けられているバインディング情報を保持するバインディング情報管理手段と、
前記ホームアドレスあての第1パケットを代理受信し、前記ケアオブアドレスあてのヘッダを用いて前記第1パケットをカプセル化することによって第2パケットを生成して転送を行うパケット転送手段と、
前記パケット転送手段により行われるパケットの転送において、所定の条件を満たす転送パケットのバッファリングの要求を前記モバイルノードから受信するバッファリング要求受信手段と、
前記バッファリング要求受信手段で前記所定の条件を満たす前記転送パケットのバッファリングの要求を受けた場合、前記所定の条件を満たす前記転送パケットのバッファリングを行うバッファリング手段とを、
有する。
上記の構成により、CN(通信相手ノード)からHA(ホームエージェント)を経由してMN(モバイルノード)に送信されるパケットに関して、MNは、自身にとって有効なパケットを選択し、ホームエージェントにおいて、選択されたパケットの再送制御が行われるようにすることが可能となる。
さらに、本発明のパケット転送制御装置は、上記の構成に加えて、前記所定の条件が、前記転送パケットのあて先が所定のケアオブアドレスであること、前記転送パケットが所定のフロー情報を有すること、前記転送パケットが所定の通信相手ノードから送信されたパケットであることの少なくとも1つである。
上記の構成により、MNは、所定のケアオブアドレスあてに転送されるパケット、所定のフロー情報を有するパケット、所定の通信相手ノードから送信されたパケットを適宜選択して、ホームエージェントにおいて、選択されたパケットの再送制御を行わせることが可能となる。
さらに、本発明のパケット転送制御装置は、上記の構成に加えて、前記バッファリング要求受信手段が、前記モバイルノードから、前記転送パケットの転送と同時に前記転送パケットをバッファリングする要求を受けるように構成されている。
上記の構成により、ホームエージェントは、転送パケットの転送と同時に転送パケットのバッファリングを行い、転送パケットがモバイルノードに到達不能である場合には、バッファリングされている転送パケットの再送を行うことが可能となる。
さらに、本発明のパケット転送制御装置は、上記の構成に加えて、前記バッファリング要求受信手段が、前記モバイルノードから、前記転送パケットの転送が行われる前に一時的にバッファリングする要求を受けるように構成されている。
上記の構成により、ホームエージェントは、転送パケットの転送前に一時的に転送パケットのバッファリングを行った後にパケット転送を行うことで、モバイルノードへのパケットの転送を意図的に遅延させ、例えばモバイルノードが一時的に到達不能な状態にあっても、モバイルノードが到達可能状態に戻る時間までパケットをバッファリングできるようにすることで、パケットロスを抑制することが可能となる。
さらに、本発明のパケット転送制御装置は、上記の構成に加えて、前記ケアオブアドレスが、前記モバイルノードが前記所定のネットワークから割り当てられているホームアドレスである。
上記の構成により、複数のホームエージェント間におけるパケット転送によって、ネットワーク側におけるパケットのバッファリングが行われるようにすることで、モバイルノードへのパケットの転送を意図的に遅延させ、例えばモバイルノードが一時的に到達不能な状態にあっても、モバイルノードが到達可能状態に戻る時間までパケットをバッファリングできるようにすることで、パケットロスを抑制することが可能となる。
また、上記の目的を達成するため、本発明のモバイルノードは、第1ネットワークから割り当てられている第1アドレスに加えて、前記第1ネットワークとは異なる第2ネットワークから割り当てられている第2アドレスを有するモバイルノードであって、
前記第1アドレスをホームアドレスとし、前記第1アドレスのケアオブアドレスとして前記第2アドレスを関連付けるアドレス関連付け手段と、
前記アドレス関連付け手段で関連付けられた前記第1アドレスと前記第2アドレスのバインディング情報を前記第1ネットワークのホームエージェントに登録するバインディング情報登録手段と、
前記第1アドレスあての第1パケットを代理受信し、前記第2アドレスあてのヘッダを用いて前記第1パケットをカプセル化することによって生成された第2パケットを転送する前記第1ネットワークの前記ホームエージェントに対して、所定の条件を満たす転送パケットのバッファリングを要求するバッファリング要求手段とを、
有する。
上記の構成により、CNからHAを経由してMNに送信されるパケットに関して、MNは、自身にとって有効なパケットを選択し、ホームエージェントにおいて、選択されたパケットの再送制御を行わせることが可能となる。
さらに、本発明のモバイルノードは、上記の構成に加えて、前記所定の条件が、前記転送パケットのあて先が所定のケアオブアドレスであること、前記転送パケットが所定のフロー情報を有すること、前記転送パケットが所定の通信相手ノードから送信されたパケットであることの少なくとも1つである。
上記の構成により、MNは、所定のケアオブアドレスあてに転送されるパケット、所定のフロー情報を有するパケット、所定の通信相手ノードから送信されたパケットを適宜選択して、ホームエージェントにおいて、選択されたパケットの再送制御を行わせることが可能となる。
さらに、本発明のモバイルノードは、上記の構成に加えて、前記バッファリング要求手段が、前記ホームエージェントに対して、前記転送パケットの転送と同時に前記転送パケットをバッファリングする要求を行うように構成されている。
上記の構成により、ホームエージェントは、転送パケットの転送と同時に転送パケットのバッファリングを行い、転送パケットがモバイルノードに到達不能である場合には、バッファリングされている転送パケットの再送を行うことが可能となる。
さらに、本発明のモバイルノードは、上記の構成に加えて、前記バッファリング要求手段が、前記ホームエージェントに対して、前記転送パケットの転送が行われる前に一時的にバッファリングする要求を行うように構成されている。
上記の構成により、ホームエージェントは、転送パケットの転送前に一時的に転送パケットのバッファリングを行った後にパケット転送を行うことで、パケットの転送を意図的に遅延させ、モバイルノードが一時的に到達不能な状態にあっても、モバイルノードが到達可能状態に戻る時間までパケットをバッファリングできるようにすることで、パケットロスを抑制することが可能となる。
さらに、本発明のモバイルノードは、上記の構成に加えて、前記第2アドレスが、前記第2ネットワークから割り当てられているホームアドレスである。
上記の構成により、複数のホームエージェント間におけるパケット転送によって、ネットワーク側におけるパケットのバッファリングが行われるようにすることで、モバイルノードへのパケットの転送を意図的に遅延させ、例えばモバイルノードが一時的に到達不能な状態にあっても、モバイルノードが到達可能状態に戻る時間までパケットをバッファリングできるようにすることで、パケットロスを抑制することが可能となる。
本発明は、上記の構成を有しており、CNからHAを経由してMNに送信されるパケットに関して、MNにとって有効なパケットに関する再送制御ができるようになるという効果を有している。
以下、図面を参照しながら、本発明の第1〜第3の実施の形態について説明する。
<第1の実施の形態>
まず、本発明の第1の実施の形態について説明する。図1には、本発明の第1の実施の形態におけるネットワーク構成の一例が図示されている。図1において、MN10は、自身のホームエージェントとしてホームネットワーク50に存在するHA60を利用することが可能である。MN10には、ホームネットワーク50からホームアドレス(HoA1)が割り当てられており、このHoA1はHA60で管理されている。なお、図1では、MN10が、インタフェース(IF)20を用いて外部ネットワーク30に接続しており、外部ネットワーク30からCoA1が割り当てられている一方、CN40との通信に関しては、HoA1を用いてHA60を経由した通信を行っているものとする。
次に、本発明の第1の実施の形態におけるMN10の構成について説明する。図2には、本発明の第1の実施の形態におけるMN10の構成の一例が図示されている。図2において、MN10は、送受信部101、バインディング情報通知メッセージ生成部102、バインディング情報管理部103、バッファリング要求判断部104、フロー情報通知メッセージ生成部105、フロー情報管理部106を有している。なお、MN10は、例えばCN40との間で送受信するデータパケットを処理するためのデータパケット処理部やその他の様々な機能も有しているが、図2では図示省略する。
送受信部101は、MN10が接続するネットワーク(例えば図1の外部ネットワーク30)内の任意の通信ノードや、MN10のホームネットワーク50内の任意の通信ノード(例えば図1のHA60)、さらには、その他の任意のネットワークに存在する任意の通信ノード(例えば図1のCN40)との通信を行うためのパケット送受信機能を有している。なお、送受信部101には、例えば図1に図示されている無線接続のインタフェース20の機能も包含される。
また、バインディング情報通知メッセージ生成部102は、バインディング情報管理部103から通知されたバインディング情報を含むバインディング情報通知メッセージを生成するための機能を有している。バインディング情報通知メッセージ生成部102で生成されたバインディング情報通知メッセージは、HA60に対して、そのバインディング情報によって特定されるケアオブアドレスあてのパケットをバッファリングするよう要求するためのメッセージであり、送受信部101を通じてMN10のHA60に送信される。
また、バインディング情報管理部103は、HA60によって管理されているHoA1に対して関連付けられているケアオブアドレスを管理するための機能を有している。なお、バインディング情報管理部103では、HA60によって管理されているHoA1と、そのHoA1に対して関連付けられているケアオブアドレスとのセットが、バインディング情報として管理されている。
また、バインディング情報管理部103は、HA60に対してバインディング情報の通知が必要なときに、バインディング情報通知メッセージ生成部102に対して、通知すべきバインディング情報や、そのバインディング情報に付加されている情報(例えば、下記のバッファリング要求情報)を渡して、バインディング情報通知メッセージを生成するよう指示する機能を有している。さらに、バインディング情報管理部103は、バッファリング要求判断部104から、特定のケアオブアドレスに対してバッファリング要求を付加するよう指示された場合、そのケアオブアドレスに対してバッファリング要求情報を付加して管理する機能を有している。
また、バッファリング要求判断部104は、特定のケアオブアドレスや特定のフローに対してバッファリングを要求するか否かを判断する機能を有している。バッファリング要求判断部104は、特定のケアオブアドレスに対してバッファリングを要求する旨を決定した場合には、バインディング情報管理部103に対して、対象となるケアオブアドレスに対してバッファリング要求を付加するよう指示する機能を有しており、また、特定のフロー(データトラフィックフロー)に対してバッファリングを要求する旨を決定した場合には、フロー情報通知メッセージ生成部105に対して、対象となるフローを特定する識別子を供給し、そのフローに対してバッファリング要求を行うフロー情報通知メッセージを生成するよう指示する機能を有している。
例えば、使用しているインタフェース20の無線接続が不安定であり、断続的に切断してしまうような状況では、バッファリング要求判断部104は、インタフェース20に割り当てられているケアオブアドレスに対してバッファリング要求を付加するように決定することが可能である。これにより、特定のケアオブアドレスに対して転送されるパケットを選択的にHA60にバッファリングさせることが可能となり、無線接続の断続的な切断によるパケットロスを最小限に防ぐことが可能となる。
また、バッファリング要求判断部104は、パケットロスに対してセンシティブ(sensitive:敏感)であるフローに対してバッファリング要求を付加するように決定することが可能である。なお、こうしたパケットロスに対してセンシティブなフローは、例えばフロー情報管理部106からの通知によって把握可能である。これにより、パケットロスに対してセンシティブなフローと、パケットロスよりも伝送遅延やジッタに対してセンシティブなフローとを区別し、パケットロスに対してセンシティブなフローに係るパケットを選択的にHA60にバッファリングさせることが可能となる。
また、フロー情報通知メッセージ生成部105は、バッファリング要求判断部104から、特定のフロー識別子と共に、その特定のフローに対してバッファリング要求を行うよう指示を受けたときに、特定のフロー識別子を含むフロー情報通知メッセージを生成する機能を有している。フロー情報通知メッセージ生成部105で生成されたフロー情報通知メッセージは、HA60に対して、そのフロー識別子によって特定されるフローに係るパケットをバッファリングするよう要求するためのメッセージであり、送受信部101を通じてMN10のHA60に送信される。
また、フロー情報管理部106は、パケットのフローを管理する機能を有しており、フロー情報(フロー識別子)の管理や、各フローの特性(例えばパケットロスに対してセンシティブか否か)の管理を行うことが可能である。また、フロー情報管理部106、特にパケットロスに対してセンシティブなフローに係るフロー情報を、バッファリング要求判断部104に通知することが可能である。
なお、図2では、MN10は、バインディング情報通知メッセージ及びフロー情報通知メッセージの両方をHA60に対して送信することが可能なように構成されているが、どちらか一方の通知メッセージのみを送信することが可能なように構成されていてもよい。すなわち、MN10は、バインディング情報通知メッセージによってバッファリング要求を付加する対象のケアオブアドレスを通知するだけでもよく、フロー情報通知メッセージによってバッファリング要求を付加する対象のフローを通知するだけでもよく、あるいは、両方のメッセージを用いて、バッファリング要求を付加する対象のケアオブアドレス及びフローの両方を通知してもよい。
また、図2のMN10の構成では、バッファリング要求を付加する対象がケアオブアドレスの場合にはバインディング通知メッセージが用いられ、バッファリング要求を付加する対象がフローの場合にはフロー情報通知メッセージが用いられるが、例えばフローに対するバッファリング要求を通知するメッセージとして、バインディング情報通知メッセージが用いられてもよい。この場合、例えば、フローに対するバッファリング要求情報を、バインディング情報通知メッセージのオプションとして付加することが可能である。また、ケアオブアドレスに対するバッファリング要求を通知するメッセージとして、フロー情報通知メッセージが用いられてもよい。
以上、図2を参照しながら説明したように、本発明の第1の実施の形態におけるMN10は、自身のHA60に対して、特定のケアオブアドレスあてのパケットや、特定のフローに係るパケットのバッファリングを選択的に行うよう要求することが可能である。なお、特定のケアオブアドレスあてのパケットや特定のフローに係るパケット以外に、例えば、特定の通信相手から送られてきたパケットのバッファリングを選択的に行うように要求してもよい。この場合には、MN10はHA60に対して、バッファリング要求の対象として、例えば通信相手のアドレスの通知を行えばよい。
また、図3には、本発明の第1の実施の形態におけるMN10が生成、送信するバインディング情報通知メッセージの一例が図示されている。なお、図3には、バインディングアップデートメッセージを利用して、特定のケアオブアドレス(HoA1と関連付けられているCoA1)に対してバッファリングを要求する場合のバインディング情報通知メッセージの構成例が図示されている。
図3に図示されているIPv6ヘッダ(HA60をあて先アドレスに設定)、ホームアドレスオプション、モビリティヘッダ(バインディングアップデート)は、モバイルIPv6で定義されているバインディングアップデートメッセージの構成と基本的に同一である。本発明の第1の実施の形態では、図3に図示されているように、モバイルIPv6で定義されているバインディングアップデートメッセージの代替用CoAオプション(alternate CoA option)の中に、更にバッファリング要求情報と、バッファリングの対象として指定されるケアオブアドレスとが付加される。なお、バッファリング要求情報は、代替用CoAオプションに含まれているケアオブアドレス(図3の例ではCoA1)をあて先アドレスとするパケットのバッファリング要求を示す情報であり、例えばフラグなどの任意の形式で実現可能である。
また、図4には、本発明の第1の実施の形態におけるMN10が生成、送信するフロー情報通知メッセージの一例が図示されている。なお、図4には、フロー制御メッセージを利用して、特定のフロー識別子に対してバッファリングを要求する場合のフロー情報通知メッセージの構成例が図示されている。
図4では、IPv6ヘッダ(HA60をあて先アドレスに設定)を有するフロー制御メッセージに、バッファリング要求の対象となるフローを特定するフロー識別子と、任意の形式によって表されるバッファリング要求情報(上記のフロー識別子に係るパケットのバッファリング要求を示す情報)とを有するフロー制御情報が挿入されることによって、フロー情報通知メッセージが実現されている。なお、フロー情報通知メッセージは、モバイルIPv6で定義されているモビリティヘッダに、上記のフロー識別子及びバッファリング要求情報が挿入されることによって実現されてもよい。
また、図5には、本発明の第1の実施の形態におけるMN10が生成、送信するバッファリング要求メッセージの一例が図示されている。上述のバインディング情報通知メッセージ(例えば、図3に図示されている構成)やフロー情報通知メッセージ(例えば、図4に図示されている構成)の代わりに、特定のケアオブアドレスや特定のフローに対するバッファリング要求を通知するメッセージとして、図5に図示されているように、バッファリング要求の対象となるケアオブアドレスやフローを含む専用のバッファリング要求メッセージが用いられてもよい。なお、図5に図示されているバッファリング要求メッセージは、このメッセージ自体がパケットのバッファリング要求を示すバッファリング要求情報であると言える。
次に、本発明の第1の実施の形態におけるHA60の構成について説明する。図6には、本発明の第1の実施の形態におけるHA60の構成の一例が図示されている。図6において、HA60は、送受信部601、バインディング情報通知メッセージ処理部602、フロー情報通知メッセージ生成部603、フロー情報保持部604、バインディング情報保持部605、代理受信パケットバッファリング部606、再送・転送先切替指示部607、転送先選択部608、代理受信パケット転送処理部609を有している。なお、HA60は、その他の様々な機能も有しているが、図6では図示省略する。
送受信部601は、HA60が接続するネットワーク(例えば図1のホームネットワーク50)内の任意の通信ノードや、外部ネットワーク30に接続しているMN10(HA60が存在するホームネットワーク50に属するMN10)、その他の任意のネットワークに接続している任意の通信ノードとの通信を行うためのパケット送受信機能を有している。
また、バインディング情報通知メッセージ処理部602は、MN10で生成、送信されたバインディング情報通知メッセージを送受信部601で受信した場合に、このバインディング情報通知メッセージに関する処理を行い、バインディング情報通知メッセージに含まれるMN10のバインディング情報を取得して、このバインディング情報をバインディング情報保持部605に保持させる機能を有している。なお、バインディング情報に関連してバッファリング要求情報が付加されている場合には、バインディング情報と共にバッファリング要求情報をバインディング情報保持部605に保持させる。
また、フロー情報通知メッセージ処理部603は、MN10で生成、送信されたフロー情報通知メッセージを送受信部601で受信した場合に、このフロー情報通知メッセージに関する処理を行い、フロー情報通知メッセージに含まれるMN10のフロー識別子を取得して、このフロー識別子をフロー情報保持部604に保持させる機能を有している。なお、フロー識別子に関連してバッファリング要求情報が付加されている場合には、フロー識別子と共にバッファリング要求情報をフロー情報保持部604に保持させる。
また、フロー情報保持部604は、フロー情報通知メッセージ処理部603におけるフロー情報通知メッセージの処理によって抽出されたフロー識別子(パケットのバッファリング要求の対象となるフロー識別子)を保持する機能を有している。なお、フロー情報保持部604では、バッファリング要求情報が付加されているフロー情報、及びバッファリング要求情報が付加されていないフロー情報が保持される。
また、バインディング情報保持部605は、バインディング情報通知メッセージ処理部602におけるバインディング情報通知メッセージの処理によって抽出されたバインディング情報(MN10のホームアドレスと、パケットのバッファリング要求の対象となるケアオブアドレスとが関連付けられたバインディング情報)を保持する機能を有している。なお、バインディング情報保持部605では、特定のケアオブアドレスに対して転送されるパケットのバッファリング要求が含まれているバインディング情報のほかに、バッファリング要求が含まれていない通常のバインディング情報も保持される。
また、代理受信パケットバッファリング部606は、フロー情報保持部604に保持されているフロー識別子をチェックし、フロー情報にバッファリング要求情報が付加されている場合には、そのフロー識別子に対応するフローに係るパケットのバッファリングを行う機能を有している。また、代理受信パケットバッファリング部606は、バインディング情報保持部605に保持されているバインディング情報をチェックし、バインディング情報にバッファリング要求が付加されている場合には、そのバインディング情報に対応するパケット(すなわち、バインディング情報に含まれるケアオブアドレスに転送すべきパケット)のバッファリングを行う機能を有している。すなわち、代理受信パケットバッファリング部606では、MN10からバッファリング要求を受けたバッファリング対象のパケットのみがバッファリングされる。
また、再送・転送先切替指示部607は、MN10へ転送したパケットが、MN10に届かなかったことを検出したとき(例えば、MN10に転送したパケットに関するDestination Unreachable Messageを受信したとき)や転送経路上の輻輳を検出したときなどに、パケットの再送を行うべきか、あるいは使用中の転送先アドレスを別のアドレスへ切り替えるべきかを判断する機能を有している。再送が必要であると判断した場合には、再送・転送先切替指示部607は、代理受信パケット転送処理部609へパケットの再送を行うよう指示する。
一方、再送・転送先切替指示部607は、転送先アドレスを現在設定されているアドレスから別のアドレスに切り替えることが必要であると判断した場合には、転送先選択部608へ別の転送先アドレスを選択するよう指示を行う。このとき、再送・転送先切替指示部607は、転送先の切り替えを指示する際に、切り替え前のアドレスあてへの送信が失敗したパケットに関して、転送先選択部608に対して転送先アドレスを別のアドレスへ切り替えるよう指示するとともに、代理受信パケット転送処理部609に対して、新たに選択された転送先アドレスあてにパケットの再送を行うよう指示する。
また、転送先選択部608は、代理受信したMN10のHoAあてのパケットの転送先として、バインディング情報保持部605に保持されているバインディング情報の中から、転送先アドレスとして使用すべきケアオブアドレスを選択する機能を有している。また、転送先選択部608は、代理受信したMN10のHoAあてのパケットの転送先として、フロー情報保持部604に保持されているMN10のフロー識別子、及びバインディング情報保持部605を参照し、特定のフローの転送先として使用すべきケアオブアドレスを選択する機能を有している。
また、代理受信パケット転送処理部609は、管理しているMN10のHoAあてのパケットを代理受信し、転送先選択部608によって選択されたケアオブアドレスあてへカプセル化して転送する機能を有している。また、代理受信パケット転送処理部609は、再送・転送先切替指示部607から再送の指示を受けた場合、再送すべきパケットを代理受信パケットバッファリング部606から取得してパケットの再送を送信する機能を有している。また、転送先選択部608から新たな転送先アドレスが通知された場合には、代理受信パケット転送処理部609は、通知された転送先アドレスあてにパケットのカプセル化を行って転送する機能を有している。
以上、図6を参照しながら説明したように、本発明の第1の実施の形態におけるHA60は、MN10からバッファリングを行うように要求されたパケット(特定のケアオブアドレスあてに転送すべきパケットや、特定のフローに係るパケット)のみを選択的にバッファリングし、これらのパケットの再送が必要となった場合には、バッファリングされているパケットを即座に再送することが可能である。
なお、図13に示すように、MN10が、ネットワークベースのモビリティプロトコルが提供されているローカルネットワーク515に接続している際には、MN10の移動に係る制御を代理で行う代理ノード518(Proxy Mobile Agent)が、本発明の第1の実施の形態におけるMN10が保持する機能を有していてもよい。この場合、代理ノード518は、独自の判断で選択的にバッファリングするべきパケットの対象を判断してもよいし、MN10から指示を受けてもよい。また、代理ノード518は、MN10の接続状態を随時監視することで、MN10の接続が安定している場合には、バッファリング要求情報の通知をしないことを選択し、MN10の接続が切れているときや、不安定なときなどに、バッファリング要求情報の通知を行うことを選択するようにしてもよい。代理ノード518は、決定したバッファリング要求情報を、MN10を管理しているHA60へ通知する。
また、代理ノード518が、本発明の第1の実施の形態におけるHA60が保持する機能を有していてもよい。この場合、MN10は、フロー情報に対してバッファリング要求情報を付加して代理ノード518へ通知する。それを受けた代理ノード518は、HA60から転送されたMN10のホームアドレス(HoA1)あてパケットが、バッファリング要求情報が付加されたフローに一致した場合には、バッファリングを行い、さらにMN10の接続の不安定性などにより再送が必要であると判断した場合には、バッファリングしているパケットを用いて再送を行う。また、代理ノード518は、MN10の接続状態を随時監視することで、MN10の接続が安定している場合には、バッファリングを行わないことを選択し、接続が切れているときや不安定なときなどに、バッファリングを行うことを選択するようにしてもよい。
次に、本発明の第1の実施の形態における具体的な動作の一例について、図1に図示されているネットワーク構成を参照しながら説明する。なお、以下では、何らかの原因でMN10と外部ネットワーク30との接続が切断した場合を想定する。接続の切断の原因としては、例えばMN10の移動などが挙げられる。
(本発明の第1の実施の形態の第1動作例)
まず、本発明の第1の実施の形態における第1動作例について説明する。MN10は、外部ネットワーク30に接続した場合には、通常のモバイルIPv6の処理として、ホームアドレス(HoA1)とケアオブアドレス(CoA1)とのバインディング情報をHA60に登録する。この際、例えば、MN10が、無線接続の不安定性に起因する外部ネットワーク30との断続的な切断や、パケット転送経路上でのパケットロスなどに備えて、登録するケアオブアドレスあてのパケットをHA60にバッファリングさせるよう要求することを決定した場合には、そのケアオブアドレス(CoA1)に対してバッファリング要求を付加したバインディング情報通知メッセージをHA60に送信する。
このバインディング情報通知メッセージを受信したHA60は、バインディング情報通知メッセージ内に含まれる情報をバインディング情報保持部605に格納する。また、HA60は、MN10のHoA1あてのパケットを代理受信し、そのパケットをCoA1へ転送すると同時に、CoA1に対して転送すべきパケットを代理受信パケットバッファリング部606にバッファする。
ここで、MN10と外部ネットワーク30との接続が切断され、HA60が、MN10のCoA1あての転送に失敗したことを、例えばDestination Unreachable Messageを受信することで検出したとする。この場合、HA60は、CoA1あてのパケット転送が失敗したことに対し、代理受信パケットバッファリング部606にバッファされているCoAあてのパケットを用いてパケットの再送を行う。なお、このとき、MN10が複数のケアオブアドレスをHA10に登録している場合、HA60は、MN10からのバッファリング要求がないケアオブアドレスに関してはバッファリングを行っておらず、したがって、バッファリング要求がないケアオブアドレスに係るパケットは、HA60から再送されない。
そして、例えばMN10と外部ネットワーク30との切断が一時的なものであり、MN10が外部ネットワーク30に再接続することができた場合には、HA60による再送制御によってCoA1あてのパケットのパケットロスを防ぐことが可能となる。なお、この再送制御では、HA60によってパケット再送が行われるため、パケットの送信元(例えばCN40)によってパケット再送が行われた場合に比べて、MN10は、より早期に再送されたパケットを受信することができるようになる。
また、MN10が、例えば一定時間後に別のネットワークと接続して新たなケアオブアドレス(CoA2)を取得した場合には、そのCoA2が新たな転送先としてHA60に登録された時点で、HA60は、バッファリングしていたCoA1あてのパケットをCoA2あてに転送してもよく、これによって、パケットロスを防ぐことも可能である。
(本発明の第1の実施の形態の第2動作例)
次に、本発明の第1の実施の形態における第2動作例について説明する。MN10は、外部ネットワーク30に接続した場合には、通常のモバイルIPv6の処理として、ホームアドレス(HoA1)とケアオブアドレス(CoA1)とのバインディング情報をHA60に登録する。この際、例えば、MN10が、無線接続の不安定性に起因する外部ネットワーク30との断続的な切断や、パケット転送経路上でのパケットロスなどに備えて、通信中の特定のフロー(フロー1)に係るパケットをHA60にバッファリングさせるよう要求することを決定した場合には、MN10は、そのフロー1に対してバッファリング要求を付加したフロー情報通知メッセージをHA60に送信する。
このフロー情報通知メッセージを受信したHA60は、フロー情報通知メッセージ内に含まれる情報をフロー情報保持部604に格納する。また、HA60は、MN10のHoA1あてのパケットを代理受信し、そのパケットをCoA1へ転送すると同時に、フロー1に係るパケットを代理受信パケットバッファリング部606にバッファする。
ここで、MN10と外部ネットワーク30との接続が切断され、HA60が、MN10のCoA1あての転送に失敗したことを、例えばDestination Unreachable Messageを受信することで検出したとする。この場合、HA60は、CoA1あてのパケット転送が失敗したことに対し、代理受信パケットバッファリング部606にバッファされているフロー1に係るパケットを用いてパケットの再送を行う。なお、このときHA60は、MN10からのバッファリング要求がないフローに関してはバッファリングを行っておらず、したがって、バッファリング要求がないフローに係るパケットは、HA60から再送されない。
そして、例えばMN10と外部ネットワーク30との切断が一時的なものであり、MN10が外部ネットワーク30に再接続することができた場合には、HA60による再送制御によってフロー1に係るパケットのパケットロスを防ぐことが可能となる。なお、この再送制御では、HA60によってパケット再送が行われるため、パケットの送信元(例えばCN40)によってパケット再送が行われた場合に比べて、MN10は、より早期に再送されたパケットを受信することができるようになる。
また、MN10が、例えば一定時間後に別のネットワークと接続して新たなケアオブアドレス(CoA2)を取得した場合には、そのCoA2が新たな転送先としてHA60に登録された時点で、HA60は、バッファリングしていたフロー1に係るパケットをCoA2あてに転送してもよく、これによって、パケットロスを防ぐことも可能である。
以上、説明したように、本発明の第1の実施の形態によれば、MNはHAに対して、自身の特定のケアオブアドレスあてに送信されるパケットや、特定のフローに係るパケットをバッファリングするよう要求することによって、MNにとって好適なパケット(例えば、パケットロスに対してセンシティブなパケット)のみをHAにバッファリングさせ、必要に応じてHAからパケット再送が行われるようにすることが可能となり、効率的な再送制御が実現されるようになる。
<第2の実施の形態>
次に、本発明の第2の実施の形態について説明する。図7には、本発明の第2の実施の形態におけるネットワーク構成の一例が図示されている。図7において、MN10は、複数のホームネットワーク(ホームネットワーク50、70)のそれぞれに存在するHA(HA60、HA80)を利用することが可能である。MN10には、ホームネットワーク50、70のそれぞれからホームアドレス(HoA1及びHoA2)が割り当てられており、これらのHoA1及びHoA2はそれぞれのHA(HA60、HA80)で管理されている。なお、図7では、MN10が、インタフェース(IF)20を用いて外部ネットワーク30に接続しており、外部ネットワーク30からCoA1が割り当てられている一方、CN40との通信に関しては、HoA1を用いてHA60を経由した通信を行っているものとする。
なお、MN10が利用するインタフェースの数は1つに限定されるものではなく、複数のインタフェースを利用してもよい。この場合、複数のケアオブアドレスがHoA1及びHoA2のそれぞれに対して関連付けられてもよい。また、MN10が利用できるHA(HA60及びHA80)の数は、図7に図示されているように2つに限定されるものではなく、さらに多くのHAが利用されてもよい。この場合、複数のHAのそれぞれからホームアドレスが割り当てられている必要がある。
次に、本発明の第2の実施の形態におけるMN10の構成について説明する。図8には、本発明の第2の実施の形態におけるMN10の構成の一例が図示されている。図8において、MN10は、送受信部201、バインディング情報通知メッセージ生成部202、HoA1バインディング情報管理部203、HoA2バインディング情報管理部204、転送前バッファリング要求判断部205、フロー情報通知メッセージ生成部206、ホームアドレス関連付け判断部207、フロー情報管理部208を有している。なお、MN10は、例えばCN40との間で送受信するデータパケットを処理するためのデータパケット処理部やその他の様々な機能も有しているが、図8では図示省略する。
送受信部201は、MN10が接続するネットワーク(例えば図1の外部ネットワーク30)内の任意の通信ノードや、MN10のホームネットワーク50、70内の任意の通信ノード(例えば図7のHA60又はHA80)、さらには、その他の任意のネットワークに存在する任意の通信ノード(例えば図7のCN40)との通信を行うためのパケット送受信機能を有している。なお、送受信部201には、例えば図7に図示されている無線接続のインタフェース20の機能も包含される。
また、バインディング情報通知メッセージ生成部202は、HoA1バインディング情報管理部203又はHoA2バインディング情報管理部204から通知されたバインディング情報を含むバインディング情報通知メッセージを生成するための機能を有している。バインディング情報通知メッセージ生成部202では、例えば、そのバインディング情報を登録する従来のモバイルIPv6のバインディングアップデートメッセージと、バインディング情報の登録と共に、さらに、そのバインディング情報によって特定されるケアオブアドレスあてのパケットを一時的にバッファリングした後に転送を行うよう要求するためのメッセージとが生成される。なお、ケアオブアドレスあてのパケットを一時的にバッファリングした後に転送を行うよう要求する対象となるケアオブアドレスには、転送前バッファリング要求が付加される。バインディング情報通知メッセージ生成部202で生成されたバインディング情報通知メッセージは、送受信部201を通じてMN10のHA(HA60又はHA80)に送信される。
また、HoA1バインディング情報管理部203は、HoA1(図7のホームネットワーク50から割り当てられるホームアドレス)に関するバインディング情報を管理する機能を有しており、HoA1に対して関連付けるべきケアオブアドレスを取得又は変更した場合に、それらのケアオブアドレスに関するバインディング情報をHA60へ通知すべきか否かの判断を行う機能を有している。バインディング情報を通知すべきと判断した場合には、HoA1バインディング情報管理部203は、バインディング情報通知メッセージ生成部202に対して、通知すべきバインディング情報を供給してバインディング情報通知メッセージを生成するよう指示する。
また、転送前バッファリング要求判断部205から、特定のケアオブアドレスに対して転送前バッファリング要求を付加するよう指示された場合や、ホームアドレス関連付け判断部207から、ホームアドレスをケアオブアドレスとして登録するよう指示された場合には、HoA1バインディング情報管理部203は、バインディング情報通知メッセージ生成部202に対して、転送前バッファリング要求が付加されたバインディング情報通知メッセージを生成するよう指示する。
なお、転送前バッファリング要求とは、MN10がHA(HA60又はHA80)に対して、転送先アドレスとして選択された特定のケアオブアドレスあてにパケット転送を開始する前に、そのパケットのバッファリングを一時的に行うことを要求するものである。転送前バッファリング要求が付加されたケアオブアドレスを選択したHAは、すぐにパケットの転送を開始するのではなく、いったんパケットのバッファリングを行い、パケットの転送開始タイミングをある程度(任意の遅延時間だけ)意図的に遅らせてパケットの転送を開始する。
また、HoA2バインディング情報管理部204は、HoA2(図7のホームネットワーク70から割り当てられるホームアドレス)に関するバインディング情報を管理する機能を有しており、HoA2に対して関連付けるべきケアオブアドレスを取得又は変更した場合に、それらのケアオブアドレスに関するバインディング情報をHA80へ通知すべきか否かの判断を行う機能を有している。バインディング情報を通知すべきと判断した場合には、HoA2バインディング情報管理部204は、バインディング情報通知メッセージ生成部202に対して、通知すべきバインディング情報を供給してバインディング情報通知メッセージを生成するよう指示する。
また、転送前バッファリング要求判断部205から、特定のケアオブアドレスに対して転送前バッファリング要求を付加するよう指示された場合や、ホームアドレス関連付け判断部207から、ホームアドレスをケアオブアドレスとして登録するよう指示された場合には、HoA2バインディング情報管理部204は、バインディング情報通知メッセージ生成部202に対して、転送前バッファリング要求が付加されたバインディング情報通知メッセージを生成するよう指示する。
なお、転送前バッファリング要求が付加されているか否かにかかわらず、ホームアドレスをケアオブアドレスとして登録するためのバインディング情報通知メッセージに含まれるLifetimeには、有効期限が切れることがないことを示す値を含めてもよい。この場合、HAによって保持されるこのバインディング情報は、有効期限が切れることがないため、HAに対してHoAあてのパケットを常に代理受信し続けるよう要求することが可能となる。これにより、通常のケアオブアドレスに関するバインディング情報がすべて削除されたとしても、このエントリだけは残り続けるため、HAによる代理受信が有効な状態を保つことが可能となる。
また、HAによって行われる転送前バッファリングが実行された後に転送されるパケットの転送先となるアドレスが常に有効な状態であることを確保するために、ケアオブアドレスとして登録するホームアドレスに対してだけ転送前バッファリング要求を付加するようにしてもよい。この場合、HAによって転送前バッファリングが行われた後に転送されるパケットは、別のHAによって再び代理受信されるため、そのHAによる転送前バッファリングの効果を更に受けることが可能となる。
なお、HoA1バインディング情報管理部203、及びHoA2バインディング情報管理部204が、バインディング情報をHAへ通知するべきかどうかを判断するタイミングは、前述の転送前バッファリング要求判断部205からの指示を受けたときだけでなく、例えば、他のネットワークへの移動を検出した場合や、新たなCoAを生成・取得した場合なども考えられる。また、HAから通知されたバインディング情報を更新するインターバルが近づいてきたときや、バインディング情報の有効期限が残り少なくなったとき、更にはHAからバインディング情報の更新を要求するメッセージ(Binding Refresh Request Message)を受信した場合なども考えられる。
なお、ここでは、MN10に対してHoA1及びHoA2の2つのホームアドレスが割り当てられる場合を想定しており、図8には、MN10が、これら2つのホームアドレス(HoA1及びHoA2)をそれぞれ管理するHoA1バインディング情報管理部203及びHoA2バインディング情報管理部204を有している状態が図示されているが、割り当てられるホームアドレスの数に応じて、対応するHoAバインディング情報管理部が存在してもよい。また、HoA1バインディング情報管理部203及びHoA2バインディング情報管理部204は、管理するホームアドレスが異なるのみで基本的には同一機能を有しており、複数のホームアドレスの管理を行うことが可能な1つのHoAバインディング情報管理部に統合されてもよい。
また、転送前バッファリング要求判断部205は、各HA(HA60又はHA80)へ登録するケアオブアドレス、あるいは既に登録されているケアオブアドレスに対して、転送前バッファリング要求を付加すべきか否かを判断する機能を有している。転送前バッファリング要求判断部205は、特定のケアオブアドレスに対して転送前バッファリング要求を付加すべきと決定した場合には、対応するHoAバインディング情報管理部(HoA1バインディング情報管理部203、あるいはHoA2バインディング情報管理部204)に、特定のケアオブアドレスに対して転送前バッファリング要求を付加するよう指示する機能を有している。
なお、転送前バッファリング要求判断部205は、例えばハンドオーバなどの影響によって、あるインタフェース20の接続が一定時間不安定になることが事前に検出された場合などにおいて、そのインタフェース20に割り当てられているケアオブアドレスに対して転送前バッファリング要求の付加を決定することが可能である。
HA(HA60又はHA80)は、転送前バッファリング要求が付加されていないケアオブアドレスを転送先として選択した場合には、すぐにパケットの転送を開始してしまうため、接続が不安定である期間にもパケットがHA(HA60又はHA80)から転送され続け、その間のパケットをMN10が受信できずにパケットロスが発生してしまう可能性がある。しかしながら、転送前バッファリング要求が付加されている場合には、HAは、そのケアオブアドレスを転送先として選択した場合、すぐにパケット転送を開始せずにいったんバッファリングを行った後にパケットの転送を行うので、接続が不安定である期間にパケットが転送されるのを防ぐことが可能となる。
また、転送前バッファリング要求判断部205は、例えば、フロー情報管理部208からの通知を受けて、特定のフローに対して転送前バッファリング要求を付加すべきと判断してもよい。特定のフローに対して転送前バッファリング要求を付加すべきと判断した場合には、フロー情報通知メッセージ生成部206に対して、特定のフローに対する転送前バッファリング要求の付加をHA(HA60又はHA80)に通知するためのフロー情報通知メッセージを生成するよう指示してもよい。
また、転送前バッファリング要求判断部205は、ホームアドレス関連付け判断部207に対して、特定のホームアドレスを別のホームアドレスのケアオブアドレスとして使用するとともに、転送前バッファリング要求を付加するよう指示を行うことが可能である。この指示を受けたホームアドレス関連付け判断部207は、後述のように、HoA1バインディング情報管理部203、あるいはHoA2バインディング情報管理部204に対して、転送前バッファリング要求を付加したホームアドレスをケアオブアドレスとして登録するように指示を行う。
また、転送前バッファリング要求判断部205は、転送前バッファリング要求を付加すべき決定を行った場合に、HA(HA60又はHA80)において、パケット転送前に一時的にパケットのバッファリングを行う際のバッファ時間やバッファ容量を定める機能を有していてもよい。これらのバッファ時間やバッファ容量は、パケットを意図的に遅延させるための遅延時間に相当する。転送前バッファリング要求判断部205で定められた遅延時間は、転送前バッファリング要求と共にHA(HA60又はHA80)に通知されることが望ましい。
また、フロー情報通知メッセージ生成部206は、上述のように、転送前バッファリング要求判断部205から、特定のフローに対する転送前バッファリング要求の付加をHA(HA60又はHA80)に通知するためのメッセージ生成の指示を受けた場合に、転送前バッファリング要求が付加されたフロー情報を含むフロー情報通知メッセージを生成する機能を有している。
また、ホームアドレス関連付け判断部207は、MN10が保持しているホームアドレス(HoA1及びHoA2)を別のホームアドレスに関連付けるケアオブアドレスとして使用すべきか否かを判断する機能を有している。HoA1がHoA2のケアオブアドレスとして使用可能である場合には、HoA2バインディング情報管理部204に対してHoA1をケアオブアドレスとして関連付けるよう指示を行うことが可能である。一方、HoA2がHoA1のケアオブアドレスとして使用可能である場合には、HoA1バインディング情報管理部203に対してHoA2をケアオブアドレスとして関連付けるよう指示を行うことが可能である。
また、ホームアドレス関連付け判断部207は、転送前バッファリング要求判断部205から特定のホームアドレスに対して転送前バッファリング要求を付加するよう指示された場合には、HoA1バインディング情報管理部203、あるいはHoA2バインディング情報管理部204に対して、転送前バッファリング要求を付加したホームアドレスをケアオブアドレスとして登録するよう指示する。
なお、図8では、MN10は、バインディング情報通知メッセージ及びフロー情報通知メッセージの両方をHA(HA60又はHA80)に対して送信することが可能なように構成されているが、どちらか一方の通知メッセージのみを送信することが可能なように構成されていてもよい。すなわち、MN10は、バインディング情報通知メッセージによって転送前バッファリング要求を付加する対象のケアオブアドレスを通知するだけでもよく、フロー情報通知メッセージによって転送前バッファリング要求を付加する対象のフローを通知するだけでもよく、あるいは、両方のメッセージを用いて、転送前バッファリング要求を付加する対象のケアオブアドレス及びフローの両方を通知してもよい。
また、図8のMN10の構成では、転送前バッファリング要求を付加する対象がケアオブアドレスの場合にはバインディング通知メッセージが用いられ、転送前バッファリング要求を付加する対象がフローの場合にはフロー情報通知メッセージが用いられるが、例えばフローに対する転送前バッファリング要求を通知するメッセージとして、バインディング情報通知メッセージが用いられてもよい。この場合、例えば、フローに対する転送前バッファリング要求情報を、バインディング情報通知メッセージのオプションとして付加することが可能である。また、ケアオブアドレスに対する転送前バッファリング要求を通知するメッセージとして、フロー情報通知メッセージが用いられてもよい。
以上、図8を参照しながら説明したように、本発明の第2の実施の形態におけるMN10は、自身のHA60に対して、いったんバッファリングを行った後にパケットの転送を開始することでMN10あてのパケットの転送開始タイミングを遅らせるよう要求することが可能である(転送前バッファリング要求)。また、MN10は、転送前バッファリング要求の対象となるケアオブアドレスを選択することも可能である。また、複数のホームアドレスが割り当てられており、複数のホームアドレスのいずれかを別のホームアドレスのケアオブアドレスとして登録する場合に、HA(HA60又はHA80)に対して、特定のケアオブアドレス(MN10の複数のホームアドレスのうちの1つ)あてに転送されるパケットに関して、転送前バッファリング要求を行うことも可能である。また、MN10は、特定のケアオブアドレスあてのパケット、又は特定のフローに係るパケットに対して転送前バッファリング要求を行うだけではなく、例えば、特定の通信相手から送られてきたパケットに関して、転送前バッファリング要求を行ってもよい。
また、図9には、本発明の第2の実施の形態におけるMN10が生成、送信するバインディング情報通知メッセージの一例が図示されている。なお、図9には、バインディングアップデートメッセージを利用して、HoA2をHoA1に関連付けるケアオブアドレスとして通知するとともに、このケアオブアドレス(HoA2)に対して転送前バッファリングを要求する場合のバインディング情報通知メッセージの構成例が図示されている。
図9に図示されているIPv6ヘッダ(HA60をあて先アドレスに設定)、ホームアドレスオプション、モビリティヘッダ(バインディングアップデート)は、モバイルIPv6で定義されているバインディングアップデートメッセージの構成と基本的に同一である。本発明の第2の実施の形態では、図9に図示されているように、モバイルIPv6で定義されているバインディングアップデートメッセージの代替用CoAオプションの中に、更に転送前バッファリング要求情報と、バッファリングの対象として指定されるケアオブアドレス(HoA2)とが付加される。なお、転送前バッファリング要求情報は、HoA1をあて先アドレスとするパケットを、代替用CoAオプションに含まれているケアオブアドレス(図9の例ではHoA2)をあて先アドレスとするパケットでカプセル化して転送する前に、このパケットの転送前バッファリング要求を示す情報であり、例えばフラグなどの任意の形式で実現可能である。
また、特定のフローに対して転送前バッファリング要求を行う場合には、図4と同様のフォーマット(ただし、メッセージに含まれる要求は、転送前バッファリング要求)を有するフロー情報通知メッセージを使用することも可能である。また、図5と同様のフォーマット(ただし、メッセージは転送前バッファリング要求メッセージ)を有する専用の転送前バッファリング要求メッセージを用いることも可能である。
次に、本発明の第2の実施の形態におけるHA(HA60又はHA80)の構成について説明する。図10には、本発明の第2の実施の形態におけるHAの構成の一例が図示されている。図10において、HAは、送受信部701、バインディング情報通知メッセージ処理部702、フロー情報通知メッセージ処理部703、フロー情報保持部704、バインディング情報保持部705、転送先選択部706、代理受信パケット転送処理部707、転送前バッファリング処理部708を有している。なお、HAは、その他の様々な機能も有しているが、図10では図示省略する。
送受信部701は、HAが接続するネットワーク(例えば図7のホームネットワーク50、70)内の任意の通信ノードや、外部ネットワーク30に接続しているMN10(HA60又はHA80が存在するホームネットワーク50、70に属するMN10)、その他の任意のネットワークに接続している任意の通信ノードとの通信を行うためのパケット送受信機能を有している。
また、バインディング情報通知メッセージ処理部702は、MN10で生成、送信されたバインディング情報通知メッセージを送受信部701で受信した場合に、このバインディング情報通知メッセージに関する処理を行い、バインディング情報通知メッセージに含まれるMN10のバインディング情報を取得して、このバインディング情報をバインディング情報保持部705に保持させる機能を有している。なお、バインディング情報に関連して転送前バッファリング要求情報が付加されている場合には、バインディング情報と共に転送前バッファリング要求情報をバインディング情報保持部705に保持させる。
また、フロー情報通知メッセージ処理部703は、MN10で生成、送信されたフロー情報通知メッセージを送受信部701で受信した場合に、このフロー情報通知メッセージに関する処理を行い、フロー情報通知メッセージに含まれるMN10のフロー情報(フロー識別子)を取得して、このフロー識別子をフロー情報保持部704に保持させる機能を有している。なお、フロー識別子に関連して転送前バッファリング要求情報が付加されている場合には、フロー識別子と共に転送前バッファリング要求情報をフロー情報保持部704に保持させる。
また、フロー情報保持部704は、フロー情報通知メッセージ処理部703におけるフロー情報通知メッセージの処理によって抽出されたフロー識別子を保持する機能を有している。なお、フロー識別子に転送前バッファリング要求情報が付加されている場合には、フロー識別子と共に、転送前バッファリング要求情報も保持される。
また、バインディング情報保持部705は、バインディング情報通知メッセージ処理部702におけるバインディング情報通知メッセージの処理によって抽出されたバインディング情報(MN10のホームアドレスと、パケットの転送前バッファリング要求の対象となるケアオブアドレスとが関連付けられたバインディング情報)を保持する機能を有している。なお、バインディング情報保持部705では、特定のケアオブアドレスに対して転送されるパケットの転送前バッファリング要求が含まれているバインディング情報のほかに、バッファリング要求が含まれていない通常のバインディング情報も保持される。
なお、MN10がケアオブアドレスとしてホームアドレスを登録するためのバインディング情報通知メッセージを受信したとき、そのメッセージ処理によって抽出されたバインディング情報に関するLifetimeは、有効期限が切れることがないことを示す値が設定されている場合がある。この場合、保持されるバインディング情報は有効期限が切れて削除されることがなくなるため、HAは常にMN10のHoAあてのパケットを代理受信し続けることが可能となる。また、バインディング情報保持部705は、転送前バッファリング要求が付加されたバインディング情報を保持するときには常に、有効期限が切れることがない情報として保持するようにしてもよい。ただしこの場合は、MN10はケアオブアドレスとして登録するホームアドレスに対してだけ転送前バッファリング要求を付加する必要がある。また、HAは、有効期限が切れることがないことを示す値が設定されているバインディング情報を保持するときには常に、転送前バッファリング要求情報を付加するようにしてもよい。この場合、有効期限が切れることがないことを示す値が設定されているバインディング情報は、ケアオブアドレスとしてホームアドレスが登録される場合が望ましい。
また、転送先選択部706は、代理受信したMN10のHoAあてのパケットの転送先として、バインディング情報保持部705に保持されているバインディング情報の中から、転送先アドレスとして使用すべきケアオブアドレスを選択する機能を有している。また、転送先選択部706は、代理受信したMN10のHoAあてのパケットの転送先として、フロー情報保持部704に保持されているMN10のフロー識別子、及びバインディング情報保持部705を参照し、特定のフローの転送先として使用すべきケアオブアドレスを選択する機能を有している。
代理受信パケット転送処理部707は、管理しているMN10のHoAあてのパケットを代理受信した際に、転送先選択部706に対してそのパケットの転送先を選択するよう要求して、その選択結果を取得し、選択されたケアオブアドレスに転送前バッファリング要求が付加されている場合には、そのケアオブアドレスあてへすぐに転送せずに、転送前バッファリング処理部708に対して代理受信したパケットを渡し、バッファリングするよう指示する機能を有している。なお、転送前バッファリング要求が付加されていない場合には、代理受信パケット転送処理部707は、そのケアオブアドレスあてにカプセル化を行ってすぐに転送を開始する。
また、転送前バッファリング処理部708に対してパケットのバッファリングを指示した後、転送前バッファリング処理部708からバッファがフルになったことが通知された場合には、代理受信パケット転送処理部707は、転送先選択部706によって選択された転送前バッファリング要求が付加されていた転送先のケアオブアドレスに対して、転送前バッファリング処理部708が保持しているパケットの転送を開始する。これによって、転送前バッファリング処理部708にいったんバッファリングされるパケットは、バッファがフルになるまでの間、転送前バッファリング処理部708に留まることになり、一定時間だけ遅延してパケットの転送が行われることになる。
なお、ここでは、転送前バッファリング処理部708のバッファがフルになった場合に、転送前バッファリング処理部708に保持されているパケットの転送が開始されるように構成されているが、バッファに所定量のパケットが蓄積された場合にパケットの転送が開始されてもよく、また、バッファに所定の時間だけ格納された後にパケットの転送が開始されてもよい。さらに、MN10からパケットの遅延時間の通知を受けた場合には、通知された遅延時間だけ転送前バッファリング処理部708に格納された後に、パケットの転送が開始されてもよい。
また、転送前バッファリング処理部708は、代理受信パケット転送処理部707から渡されたパケットをバッファリングする機能を有している。代理受信パケット転送処理部707から渡されるパケットは、MN10から通知された特定のケアオブアドレスを転送先とするパケットや特定のフローに係るパケットであり、したがって、転送前パケットバッファリング部708では、MN10からバッファリング要求を受けたバッファリング対象のパケットのみがバッファリングされる。転送前バッファリング処理部708でパケットをバッファリングすることによって、パケットの転送タイミングを意図的に遅らせることが可能となる。
以上、図10を参照しながら説明したように、本発明の第2の実施の形態におけるHAは、MN10からバッファリングを行うように要求されたパケット(特定のケアオブアドレスあてに転送すべきパケットや、特定のフローに係るパケット)を一定の遅延時間だけ遅らせて転送することが可能となる。なお、特定のケアオブアドレスとして、MN10が有する別のホームアドレスが設定されている場合には、MN10からバッファリングを行うように要求されたパケットは、一定の遅延時間だけHAで保持された後、別のHAに転送されることになる。
次に、本発明の第2の実施の形態における具体的な動作の一例について、図7に図示されているネットワーク構成を参照しながら説明する。なお、以下では、何らかの原因でMN10と外部ネットワーク30との接続が切断した場合を想定する。接続の切断の原因としては、例えばMN10の移動などが挙げられる。
(本発明の第2の実施の形態の動作例)
MN10は、外部ネットワーク30に接続した場合には、通常のモバイルIPv6の処理として、例えば、ホームアドレス(HoA1)とケアオブアドレス(CoA1)とのバインディング情報をHA60に登録する。この際、例えば、MN10が、無線接続の不安定性に起因する外部ネットワーク30との断続的な切断や、パケット転送経路上でのパケットロスなどに備えて、HA60に対してバッファリング(転送前バッファリング)を要求することを決定した場合には、HoA2をHoA1のケアオブアドレスとして登録するとともに、そのケアオブアドレス(HoA2)へのパケット転送前にパケットのバッファリングを行うよう要求する転送前バッファリング要求を付加したバインディング情報通知メッセージをHA60に送信する。すなわち、ここでは、HoA1に対して、2つのケアオブアドレス(CoA1及びHoA2)が設定され、別のホームエージェント(HA80)によって管理されているHoA2に対して転送前バッファリング要求情報が付加されるものとする。
また同様に、MN10は、例えば、ホームアドレス(HoA2)とケアオブアドレス(CoA1)とのバインディング情報をHA80に登録する。さらに、MN10は、HA80に対してバッファリング(転送前バッファリング)を要求することを決定した場合には、HoA1をHoA2のケアオブアドレスとして登録するとともに、そのケアオブアドレス(HoA1)へのパケット転送前にパケットのバッファリングを行うよう要求する転送前バッファリング要求を付加したバインディング情報通知メッセージをHA80に送信する。すなわち、ここでは、HoA2に対して、2つのケアオブアドレス(CoA1及びHoA1)が設定され、別のホームエージェント(HA60)によって管理されているHoA1に対して転送前バッファリング要求情報が付加されるものとする。
これらのバインディング情報通知メッセージをそれぞれ受信したHA60及びHA80は、バインディング情報通知メッセージ内に含まれる情報をバインディング情報保持部705に格納する。
HA60は、MN10のHoA1あてのパケットを代理受信した場合には、そのパケットをCoA1へ転送するが、ここで、MN10と外部ネットワーク30との接続が切断され、HA60が、MN10のCoA1あての転送に失敗したことを、例えばDestination Unreachable Messageを受信することで検出したとする。この場合、HA60は、CoA1あてのパケット転送が失敗したことに対し、別のケアオブアドレスを転送先として選択する。HA60がCoA1に代わって、HoA2を次の転送先として選択した場合、HoA2には転送前バッファリング要求が付加されているので、HA60は、パケットをすぐにHoA2に転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してHoA2あてに転送を開始する。
一方、HA80は、HA60から転送されてきたHoA2あてのパケットを代理受信する。代理受信されたパケットは、HA80によって転送されるが、転送先としてCoA1が依然として使用できない場合には、HoA1が転送先として選択される。このときHoA1には転送前バッファリング要求が付加されているので、HA80は、パケットをすぐにHoA1へ転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してHoA1あてに転送を開始する。この動作の結果、パケットは、各HA60、80でバッファリングを繰り返しながら複数のHA間で転送され続けることになる。
そして、例えばMN10と外部ネットワーク30との切断が一時的なものであり、MN10が外部ネットワーク30に再接続することができた場合には、HA60又はHA80からCoA1あてにパケットが転送され、その結果、パケットロスを防ぐことが可能となる。
また、MN10が再接続を行って、HA60、80に新たなCoAが登録された場合には、パケットがそのCoAあてに転送されることによって、パケットロスが生じることなく、MN10は即座にパケットを受信することが可能となる。なお、他の任意の方法を用いて、複数のHA間でのパケットの転送回数をある程度の回数に制限することによって、複数のHA間でパケットが長期的に(あるいは永久に)転送され続けないように制御することが望ましい。
なお、上述の動作例では、特定のケアオブアドレスあてのパケットが、複数のHA間で転送され続けることによってネットワーク上でパケットのバッファリングが行われているが、特定のフローに係るパケットに関してのみ転送前バッファリングが有効になるようにしてもよい。すなわち、フロー情報を考慮して、特定のケアオブアドレスあての特定のフローに係るパケットのみが、複数のHA間で転送され続けることによってネットワーク上でパケットのバッファリングが行われるようにしてもよい。
また、上述の説明では、主に、MN10が2つのホームアドレスを有する場合の構成及び動作について記載したが、3つ以上のホームアドレスを有する場合であっても本発明は適用可能である。その場合、転送前バッファリングが、利用できる複数のHAによって連鎖的に順次起こるように、転送前バッファリング要求を付加したそれぞれのホームアドレスをケアオブアドレスとして登録をすることによって、利用できるHAの数だけバッファ量を増やすことが可能となるため、よりパケットロスを軽減することが可能となる。
以上、説明したように、本発明の第2の実施の形態によれば、MNは、HAに登録するケアオブアドレスに転送前バッファリング要求情報を付加することによって、HAは、そのケアオブアドレスあての転送パケットをいったんバッファリングしてから、パケット転送を行うことが可能となる。特に、MNが複数のホームアドレスを有し、あるホームアドレスのケアオブアドレスとして別のホームアドレスの関連付けを行った場合には、1つのHAだけではバッファしきれないパケットを別のHAに転送させることが可能となり、複数のHA間でパケットの転送が行われ、その結果、複数のHA間におけるバッファリングを実現することが可能となる。さらに、この場合、例えば同一のケアオブアドレスが再び到達可能となった場合や別のケアオブアドレスが登録された場合など、MN10のインタフェースに到達可能な状態となった場合には、複数のHA間でバッファリングされていたパケットをMNに送信することによって、パケットロスを最小限に抑えた効率的な再送制御が実現されるようになる。
なお、図13に示すように、MN10が、ネットワークベースのモビリティプロトコルが提供されているローカルネットワーク515に接続している際には、MN10の移動に係る制御を代理で行う代理ノード518(Proxy Mobile Agent)が、本発明の第2の実施の形態におけるMN10が保持する機能を有していてもよい。この場合、代理ノード518は、独自の判断で選択的にバッファリングするべきパケットの対象を判断してもよいし、MN10から指示を受けてもよい。また、代理ノード518は、MN10の接続状態を随時監視することで、MN10の接続が安定している場合には、転送前バッファリング要求情報の通知をしないことを選択し、MN10の接続が切れているときや不安定なときなどに、転送前バッファリング要求情報の通知を行うことを選択するようにしてもよい。代理ノード518は、決定した転送前バッファリング要求情報を、MN10を管理しているHA60へ通知する。
また、代理ノード518が、本発明の第2の実施の形態におけるHAが保持する機能を有していてもよい。この場合、MN10は、フロー情報に転送前バッファリング要求情報を付加して代理ノード518へ通知する。この通知を受けた代理ノード518は、HA60から転送されたMN10のホームアドレス(HoA1)あてのパケットが、転送前バッファリング要求情報が付加されたフローに一致した場合には、パケットをすぐにMN10へ転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してMN10へ転送を開始する。また、代理ノード518は、独自の判断で転送前バッファリングするべきパケットの対象を判断してもよい。また、代理ノード518は、MN10の接続状態を随時監視することで、MN10の接続が安定している場合には、転送前バッファリング行わないことを選択し、MN10の接続が切れているときや不安定なときなどに、転送前バッファリングを行うことを選択するようにしてもよい。
<第3の実施の形態>
次に、本発明の第3の実施の形態について説明する。本発明の第3の実施の形態は、基本的に、上述の本発明の第1及び第2の実施の形態を組み合わせたものである。なお、本発明の第3の実施の形態では、ネットワーク構成の具体例に関しては、図7のネットワーク構成を前提として説明を行う。
まず、本発明の第3の実施の形態におけるMN10の構成について説明する。図11には、本発明の第3の実施の形態におけるMN10の構成の一例が図示されている。図11において、MN10は、送受信部301、バインディング情報通知メッセージ生成部302、HoA1バインディング情報管理部303、HoA2バインディング情報管理部304、転送前バッファリング要求判断部305、フロー情報通知メッセージ生成部306、ホームアドレス関連付け判断部307、フロー情報管理部308、バッファリング要求判断部309を有している。なお、図11に図示されているMN10は、基本的に、図2及び図8のMN10を組み合わせた構成を有している。
図11において、送受信部301は、図2に図示されている送受信部101又は図8に図示されている送受信部201と同一である。
また、バインディング情報通知メッセージ生成部302は、図2に図示されているバインディング情報通知メッセージ生成部102、及び図8に図示されているバインディング情報通知メッセージ生成部202の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。バインディング情報通知メッセージ生成部302は、バッファリング転送要求情報及び/又は転送前バッファリング転送要求情報を含むバインディング情報通知メッセージを生成することが可能である。
また、HoA1バインディング情報管理部303は、図2に図示されているバインディング情報管理部103、及び図8に図示されているHoA1バインディング情報管理部203の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。HoA1バインディング情報管理部303は、転送前バッファリング要求判断部305からの指示に基づいて、バインディング情報通知メッセージ生成部302に対して、転送前バッファリング要求が付加されたバインディング情報通知メッセージを生成するよう指示する機能や、バッファリング要求判断部309からの指示に基づいて、バインディング情報通知メッセージ生成部302に対して、バッファリング要求が付加されたバインディング情報通知メッセージを生成するよう指示する機能を有している。
また、HoA2バインディング情報管理部304は、図2に図示されているバインディング情報管理部103、及び図8に図示されているHoA2バインディング情報管理部204の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。HoA1バインディング情報管理部303では、HoA1に関する管理が行われ、HoA2バインディング情報管理部304では、HoA2に関する管理が行われる。
また、転送前バッファリング要求判断部305は、図8に図示されている転送前バッファリング要求判断部205と同一である。
また、フロー情報通知メッセージ生成部306は、図2に図示されているフロー情報通知メッセージ生成部105、及び図8に図示されているフロー情報通知メッセージ生成部206の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。フロー情報通知メッセージ生成部306は、バッファリング転送要求情報及び/又は転送前バッファリング転送要求情報を含むフロー情報通知メッセージを生成することが可能である。
また、ホームアドレス関連付け判断部307は、図8に図示されているホームアドレス関連付け判断部207と同一である。
また、フロー情報管理部308は、図2に図示されているフロー情報管理部106、及び図8に図示されているフロー情報管理部208の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。
また、バッファリング要求判断部309は、図2に図示されているバッファリング要求判断部104と同一である。
なお、図11では、MN10は、バインディング情報通知メッセージ及びフロー情報通知メッセージの両方をHA(HA60又はHA80)に対して送信することが可能なように構成されているが、どちらか一方の通知メッセージのみを送信することが可能なように構成されていてもよい。すなわち、MN10は、バインディング情報通知メッセージによってバッファリング要求及び/又は転送前バッファリング要求を付加する対象のケアオブアドレスを通知するだけでもよく、フロー情報通知メッセージによってバッファリング要求及び/又は転送前バッファリング要求を付加する対象のフローを通知するだけでもよく、あるいは、両方のメッセージを用いて、バッファリング要求及び/又は転送前バッファリング要求を付加する対象のケアオブアドレス及びフローの両方を通知してもよい。
また、図11のMN10の構成では、バッファリング要求及び/又は転送前バッファリング要求を付加する対象がケアオブアドレスの場合にはバインディング通知メッセージが用いられ、バッファリング要求及び/又は転送前バッファリング要求を付加する対象がフローの場合にはフロー情報通知メッセージが用いられるが、例えばフローに対するバッファリング要求及び/又は転送前バッファリング要求を通知するメッセージとして、バインディング情報通知メッセージが用いられてもよい。この場合、例えば、フローに対するバッファリング要求及び/又は転送前バッファリング要求情報を、バインディング情報通知メッセージのオプションとして付加することが可能である。また、ケアオブアドレスに対するバッファリング要求及び/又は転送前バッファリング要求を通知するメッセージとして、フロー情報通知メッセージが用いられてもよい。
次に、本発明の第3の実施の形態におけるHA(HA60又はHA80)の構成について説明する。図12には、本発明の第3の実施の形態におけるHAの構成の一例が図示されている。図12において、HAは、送受信部801、バインディング情報通知メッセージ処理部802、フロー情報通知メッセージ処理部803、フロー情報保持部804、バインディング情報保持部805、代理受信/転送前バッファリング部806、再送・転送先切替指示部807、転送先選択部808、代理受信パケット転送処理部809を有している。なお、図12に図示されているHAは、基本的に、図6及び図10のHAを組み合わせた構成を有している。
図12において、送受信部801は、図6に図示されている送受信部601又は図10に図示されている送受信部701と同一である。
また、バインディング情報通知メッセージ処理部802は、図6に図示されているバインディング情報通知メッセージ処理部602、及び図10に図示されているバインディング情報通知メッセージ処理部702の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。バインディング情報通知メッセージ処理部802では、バッファリング要求情報及び/又は転送前バッファリング要求情報が付加されたバインディング情報通知メッセージに係る処理が行われる。
また、フロー情報通知メッセージ処理部803は、図6に図示されているフロー情報通知メッセージ処理部603、及び図10に図示されているフロー情報通知メッセージ処理部703の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。フロー情報通知メッセージ処理部803では、バッファリング要求情報及び/又は転送前バッファリング要求情報が付加されたフロー情報通知メッセージに係る処理が行われる。
また、フロー情報保持部804は、図6に図示されているフロー情報保持部604、及び図10に図示されているフロー情報保持部704の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。フロー情報保持部804では、バッファリング要求情報及び/又は転送前バッファリング要求情報が付加されたフロー情報が保持される。
また、バインディング情報保持部805は、図6に図示されているバインディング情報保持部605、及び図10に図示されているバインディング情報保持部705の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。バインディング情報保持部805では、バッファリング要求情報及び/又は転送前バッファリング要求情報が付加されたバインディング情報が保持される。
また、代理受信/転送前バッファリング部806は、図6に図示されている代理受信パケットバッファリング部606、及び図10に図示されている転送前バッファリング処理部708の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。なお、代理受信/転送前バッファリング部806には、再送を目的として転送と同時にバッファリングされるパケット(バッファリング要求の対象となるパケット)と、転送を目的としてその転送前にバッファリングされるパケット(転送前バッファリング要求の対象となるパケット)とが存在する。
また、再送・転送先切替指示部807は、図6に図示されている再送・転送先切替指示部607と同一である。
また、転送先選択部808は、図6に図示されている転送先選択部608、及び図10に図示されている転送先選択部706の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。
また、代理受信パケット転送処理部809は、図6に図示されている代理受信パケット転送処理部609、及び図10に図示されている代理受信パケット転送処理部707の両方の機能を有しており、機能の詳細に関しては、ここでは説明を省略する。代理受信パケット転送処理部809は、バッファリング要求によって指定されたパケットの再送を行う場合や、転送前バッファリング要求によって指定されたパケットの転送を行う場合には、代理受信/転送前バッファリング部806から取得してパケットの再送又は転送を行う。
なお、本発明の第3の実施の形態では、バッファリング要求情報と転送前バッファリング要求情報との組み合わせによって、バッファリングの態様を定めるルールを様々に設定することが可能である。例えば、バッファリング要求情報が付加されているケアオブアドレスあてのパケットやフローに係るパケットに関しては、転送前バッファリング要求情報の有無によらず自動的に転送前バッファリングが行われるようにしたり、バッファリング要求情報が付加されているケアオブアドレスあてのパケットやフローに係るパケットに関してのみ、転送前バッファリングが行われるようにしたりすることが可能である。
次に、本発明の第3の実施の形態における具体的な動作の一例について、図7に図示されているネットワーク構成を参照しながら説明する。なお、以下では、何らかの原因でMN10と外部ネットワーク30との接続が切断した場合を想定する。接続の切断の原因としては、例えばMN10の移動などが挙げられる。
(本発明の第3の実施の形態の第1動作例)
まず、本発明の第3の実施の形態における第1動作例について説明する。MN10は、外部ネットワーク30に接続した場合には、通常のモバイルIPv6の処理として、ホームアドレス(HoA1)とケアオブアドレス(CoA1)とのバインディング情報をHA60に登録する。
この際、例えば、MN10が、無線接続の不安定性に起因する外部ネットワーク30との断続的な切断や、パケット転送経路上でのパケットロスなどに備えて、登録するケアオブアドレスあてのパケットをHA60にバッファリングさせるよう要求することを決定した場合には、そのケアオブアドレス(CoA1)に対してバッファリング要求を付加したバインディング情報通知メッセージをHA60に送信する。
また、さらに、この際、例えば、MN10が、無線接続の不安定性に起因する外部ネットワーク30との断続的な切断や、パケット転送経路上でのパケットロスなどに備えて、HA60に対してバッファリング(転送前バッファリング)を要求することを決定した場合には、HoA2をHoA1のケアオブアドレスとして登録するとともに、そのケアオブアドレス(HoA2)へのパケット転送前にパケットのバッファリングを行うよう要求する転送前バッファリング要求を付加したバインディング情報通知メッセージをHA60に送信する。
すなわち、ここでは、HoA1に対して、2つのケアオブアドレス(CoA1及びHoA2)が設定され、CoA1にはバッファリング要求情報が付加され、別のホームエージェント(HA80)によって管理されているHoA2には転送前バッファリング要求情報が付加されるものとする。
一方、MN10は、例えば、ホームアドレス(HoA2)とケアオブアドレス(CoA1)とのバインディング情報をHA80に登録する。さらに、MN10は、HA80に対してバッファリング(転送前バッファリング)を要求することを決定した場合には、HoA1をHoA2のケアオブアドレスとして登録するとともに、そのケアオブアドレス(HoA1)へのパケット転送前にパケットのバッファリングを行うよう要求する転送前バッファリング要求を付加したバインディング情報通知メッセージをHA80に送信する。
これらのバインディング情報通知メッセージをそれぞれ受信したHA60及びHA80は、バインディング情報通知メッセージ内に含まれる情報をバインディング情報保持部805に格納する。
HA60は、MN10のHoA1あてのパケットを代理受信した場合には、そのパケットをCoA1へ転送すると同時に、CoA1に転送されるパケットのバッファリングを行う。このパケットのバッファリングは、パケットの再送を決定した場合に使用されるものである。
ここで、MN10と外部ネットワーク30との接続が切断され、HA60が、MN10のCoA1あての転送に失敗したことを、例えばDestination Unreachable Messageを受信することで検出したとする。この場合、HA60は、CoA1あてのパケット転送が失敗したことに対し、別のケアオブアドレスを転送先として選択する。なお、パケットの再送を所定の回数試みてもMN10にパケットが到達しなかった場合に、パケットの転送先を切り替えるようにするなど、任意の方法に基づいて、転送先の切り替えに移行するタイミングを決定することが可能である。
HA60がCoA1に代わって、HoA2を次の転送先として選択した場合、HoA2には転送前バッファリング要求が付加されているので、HA60は、パケットをすぐにHoA2に転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してHoA2あてに転送を開始する。
一方、HA80は、HA60から転送されてきたHoA2あてのパケットを代理受信する。代理受信されたパケットは、HA80によって転送されるが、転送先としてCoA1が依然として使用できない場合には、HoA1が転送先として選択される。このときHoA1には転送前バッファリング要求が付加されているので、HA80は、パケットをすぐにHoA1へ転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してHoA1あてに転送を開始する。この動作の結果、パケットは、各HA60、80でバッファリングを繰り返しながら複数のHA間で転送され続けることになる。
(本発明の第3の実施の形態の第2動作例)
次に、本発明の第3の実施の形態における第2動作例について説明する。MN10は、外部ネットワーク30に接続した場合には、通常のモバイルIPv6の処理として、例えば、ホームアドレス(HoA1)とケアオブアドレス(CoA1)とのバインディング情報をHA60に登録する。この際、例えば、MN10が、無線接続の不安定性に起因する外部ネットワーク30との断続的な切断や、パケット転送経路上でのパケットロスなどに備えて、通信中の特定のフロー(フロー1)に係るパケットをHA60にバッファリングさせるよう要求することを決定した場合には、MN10は、そのフロー1に対してバッファリング要求を付加したバインディング情報通知メッセージをHA60に送信する。
さらに、MN10は、HoA2をHoA1のケアオブアドレスとして登録するとともに、そのケアオブアドレス(HoA2)へのパケット転送前にパケットのバッファリングを行うよう要求する転送前バッファリング要求を付加したバインディング情報通知メッセージをHA60に送信する。
すなわち、ここでは、HoA1に対して、2つのケアオブアドレス(CoA1及びHoA2)が設定され、特定のフロー1に対してバッファリング要求情報が付加され、別のホームエージェント(HA80)によって管理されているHoA2には転送前バッファリング要求情報が付加されるものとする。
これらのバインディング情報通知メッセージをそれぞれ受信したHA60及びHA80は、バインディング情報通知メッセージ内に含まれる情報をバインディング情報保持部805に格納する。
HA60は、MN10のHoA1あてのパケットを代理受信した場合には、そのパケットをCoA1へ転送すると同時に、フロー1に係るパケットのバッファリングを行う。このパケットのバッファリングは、パケットの再送を決定した場合に使用されるものである。
ここで、MN10と外部ネットワーク30との接続が切断され、HA60が、MN10のCoA1あての転送に失敗したことを、例えばDestination Unreachable Messageを受信することで検出したとする。この場合、HA60は、CoA1あてのパケット転送が失敗したことに対し、別のケアオブアドレスを転送先として選択する。HA60がCoA1に代わって、HoA2を次の転送先として選択した場合、HoA2には転送前バッファリング要求が付加されているので、HA60は、CoA1あてのパケットをすぐにHoA2に転送せず、いったん代理受信/転送前バッファリング処理部806にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してHoA2あてに転送を開始する。なお、HA60は、バッファリング要求が付加されているフロー1に係るパケットに対してのみ、転送前バッファリング処理を行って、フロー1以外のパケットに関しては、転送前バッファリングを行わないようにしてもよい。
一方、HA80は、HA60から転送されてきたHoA2あてのパケットを代理受信する。代理受信されたパケットは、HA80によって転送されるが、転送先としてCoA1が依然として使用できない場合には、HoA1が転送先として選択される。このときHoA1には転送前バッファリング要求が付加されているので、HA80は、パケットをすぐにHoA1へ転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してHoA1あてに転送を開始する。この動作の結果、パケットは、各HA60、80でバッファリングを繰り返しながら複数のHA間で転送され続けることになる。なお、3つ以上のHAを用いてもよく、その場合、転送前バッファリングが、利用できる複数のHAによって連鎖的に順次起こるように、転送前バッファリング要求を付加したそれぞれのホームアドレスをケアオブアドレスとして登録をすることによって、利用できるHAの数だけバッファ量を増やすことが可能となるため、よりパケットロスを軽減することが可能となる。
以上、説明したように、本発明の第3の実施の形態によれば、上述の本発明の第1及び第2の実施の形態を組み合わせて利用することが可能である。また、例えば、転送バッファリング要求で特定のケアオブアドレスが指定されている場合であっても、バッファリング要求の対象のパケット(例えば、特定のフローに係るパケット)に対してのみ転送前バッファリング処理が行われるようにするなど、バッファリング要求情報と転送前バッファリング要求情報との組み合わせに応じて、バッファリングの態様を定めるルールを様々に設定することが可能である。
なお、図13に示すように、MN10が、ネットワークベースのモビリティプロトコルが提供されているローカルネットワーク515に接続している際には、MN10の移動に係る制御を代理で行う代理ノード518(Proxy Mobile Agent)が、本発明の第3の実施の形態におけるMN10が保持する機能を有していてもよい。この場合、代理ノード518は、独自の判断で選択的バッファリング及び転送前バッファリングするべきパケットの対象を判断してもよいし、MN10から指示を受けてもよい。また、代理ノード518は、MN10の接続状態を随時監視することで、MN10の接続が安定している場合には、選択的バッファリング及び転送前バッファリング要求情報の通知をしないことを選択し、MN10の接続が切れているときや不安定なときなどに、選択的バッファリング及び転送前バッファリング要求情報の通知を行うことを選択するようにしてもよい。代理ノード518は、決定したバッファリング要求及び転送前バッファリング要求情報を、MN10を管理しているHA60へ通知する。
また、代理ノード518が、本発明の第3の実施の形態におけるHAが保持する機能を有していてもよい。この場合、MN10は、フロー情報にバッファリング要求情報及び転送前バッファリング要求情報を付加して代理ノードへ通知する。この通知を受けた代理ノード518は、HA60から転送されたMN10のホームアドレス(HoA1)あてのパケットが、バッファリング要求情報が付加されたフローに一致した場合には、バッファリングを行い、さらにMN10の接続の不安定性などにより再送が必要であると判断した場合には、バッファリングしているパケットを用いて再送を行う。また、転送前バッファリング要求情報が付加されたフローに一致した場合には、パケットをすぐにMN10へ転送せず、いったん転送前バッファリング処理部708にバッファリングする。そして、一定の時間だけパケットを格納した後(例えばパケットをバッファリングしているバッファがフルになるまで)、パケットをカプセル化してMN10へ転送を開始する。また、代理ノード518は、独自の判断で選択的バッファリング及び転送前バッファリングするべきパケットの対象を判断してもよい。また、代理ノード518は、MN10の接続状態を随時監視することで、MN10の接続が安定している場合には、選択的バッファリング及び転送前バッファリング行わないことを選択し、MN10の接続が切れているときや不安定なときなどに、選択的バッファリング及び転送前バッファリングを行うことを選択するようにしてもよい。
なお、本明細書では、本発明の第1〜第3の実施の形態に係る技術を独立して説明しているが、本発明の第1〜第3の実施の形態に係る技術を任意に組み合わせて、本発明を実現することも可能である。
また、上述の本発明の各実施の形態の説明で用いた各機能ブロックは、典型的には集積回路であるLSI(Large Scale Integration)として実現される。これらは個別に1チップ化されてもよいし、一部又はすべてを含むように1チップ化されてもよい。なお、ここでは、LSIとしたが、集積度の違いにより、IC(Integrated Circuit)、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。例えば、バイオ技術の適応などが可能性としてあり得る。
本発明は、CNからHAを経由してMNに送信されるパケットに関して、MNにとって有効なパケットに関する再送制御ができるようになるという効果を有しており、パケット転送技術及びアドレス管理技術に適用可能であり、特にモバイルIPv6におけるパケット転送技術及びアドレス管理技術に適用可能である。
本発明の第1の実施の形態におけるネットワーク構成の一例を示す図
本発明の第1の実施の形態におけるMN10の構成の一例を示す図
本発明の第1の実施の形態におけるMN10が生成、送信するバインディング情報通知メッセージの一例を示す図
本発明の第1の実施の形態におけるMN10が生成、送信するフロー情報通知メッセージの一例を示す図
本発明の第1の実施の形態におけるMN10が生成、送信するバッファリング要求メッセージの一例を示す図
本発明の第1の実施の形態におけるHA60の構成の一例を示す図
本発明の第2の実施の形態におけるネットワーク構成の一例を示す図
本発明の第2の実施の形態におけるMNの構成の一例を示す図
本発明の第2の実施の形態におけるMNが生成、送信するバインディング情報通知メッセージの一例を示す図
本発明の第2の実施の形態におけるHAの構成の一例を示す図
本発明の第3の実施の形態におけるMNの構成の一例を示す図
本発明の第3の実施の形態におけるHAの構成の一例を示す図
本発明の第1〜第3の実施の形態において、代理ノードを有するネットワーク構成の一例を示す図