以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
<第1実施形態>
図3は、第1実施形態に係るコンテンツ配信システムの構成の一例を示す図である。コンテンツ配信システム100は、複数のReplicaを含む。ただし、図3に示される例では、便宜上、Replica#1,Replica#2,Replica#親が抽出されて示されている。また、図3に示されるコンテンツ配信システムは、CDNを前提としているが、これに限られない。
図3に示されるコンテンツ配信システム100では、モバイルIPv6が採用されることを想定する。また、図3に示されるコンテンツ配信システム100は、IPv6に限られず、IPv4が採用される場合にも第1実施形態は適用可能である。
モバイルIPv6は、IPv6の拡張仕様の一つで、同一のIPアドレスを保持したまま、別ネットワークへ移動してもその接続性を維持する仕組みである。モバイルIPv6では、移動端末(User Equipment:UEとも表記),Replica内部の仮想プロキシは、ホームアドレス及び気付けアドレス(Care of Address)を用いて、ネットワークへ
の接続性を維持する。本明細書において、“リンク”は、“ネットワーク”と同義で用いられる。また、リンクが同じであることは、ネットワークアドレスが同じであることを意味する。
ホームアドレスは、移動端末のホームリンクで用いられるアドレスである。気付けアドレスは、移動先のリンク(フォーリンリンク)で割り当てられるアドレスであり、移動端末の移動によるリンクの変化に応じて変化する。ホームリンクには、移動端末のホームアドレスと気付けアドレスとの対応を管理するホームエージェントが存在する。移動端末はフォーリンリンクに移動し、新たな気付けアドレスを取得すると、ホームエージェントに新たな気付けアドレスを通知する。なお、通信セッション確立中の通信相手がいる場合には、通信相手にも気付けアドレスの通知が行われる。ホームアドレスと気付けアドレスとを対応づけることを、モバイルIPでは、位置登録と称する。気付けアドレスの通知はBinding Updateを送信することで行われる。Binding Updateは、以下、BUと表記する。BUは、位置登録要求とも呼ばれる。
モバイルIPv6では、ホームアドレス宛てにデータを送信することで、ホームエージェントが気付けアドレスへとデータを転送し、中継役として動作するため、通信相手がフォーリンリンクに存在しており、気付けアドレスを知らない場合でもデータが通信相手に届く。
図3に示される例では、移動端末4がコンテンツをダウンロードする例が示される。移動端末4のホームリンクは、第1実施形態では、Replica#1の接続するリンクと想定する。また、Replica#2は、Replica#1とは異なるリンクに接続すると想定する。したがって、Replica#2の接続するリンクは、移動端末4にとってフォーリンリンクである。
移動端末4は、最初、Replica#1に接続し、Replica#1からコンテンツをダウンロードしている。コンテンツのダウンロードは、例えば、HTTP(Hypertext Transfer Protocol)で行われる。Replica#1では、移動端末4からのアクセ
スに応じて仮想プロキシ2のオブジェクトが作成される。仮想プロキシ2は、作成元のReplica#1の接続するリンクをホームリンクとし、Replica#1によって割り当てられるホームアドレスを有する。この仮想プロキシ2が、移動端末4の通信相手となる。
また、仮想プロキシ2の作成元のReplica#1では、仮想プロキシ用ホームエージェント3のオブジェクトも起動している。仮想プロキシ用ホームエージェント3は、仮想プロキシ2のホームアドレスと気付けアドレスとの対応を管理する。なお、仮想プロキシ用ホームエージェント3の存在位置は、Replica#1と同じリンク内の装置のいずれであってもよく、限定されない。第1実施形態では、仮想プロキシ2が存在する装置と同じ装置内に存在することを想定する。
仮想プロキシ2との通信セッション確立中に、移動端末4がReplica#1の接続するリンクからReplica#2の接続するリンクに移動した場合には、移動端末4は、移動先のリンクで気付けアドレスを取得する。移動端末4は、新たに取得した気付けアドレスとホームアドレスとの対応を通知するためのBUを、端末用ホームエージェント5と、通信相手の仮想プロキシ2とに送信する(OP1)。
仮想プロキシ2の作成元のReplica#1は、移動端末4からのBUの受信によって、移動端末4の異なるリンクへの移動を検知する。Replica#1は、BUによって通知された移動端末4の気付けアドレスから、移動端末4の近傍に位置するReplicaを検索し、Replica#2を検出する。Replica#1は、仮想プロキシ2と移動端末4とのセッションの情報を、Replica#2に移動させる(OP2)。仮想プロキシ2と移動端末4とのセッションの情報には、例えば、仮想プロキシ2のホームアドレス,移動端末4のホームアドレス及び気付けアドレス,配信コンテンツ,配信コンテンツの配信完了位置,セッション状態を示す情報等が含まれる。
仮想プロキシ2と移動端末4とのセッションの情報が、Replica#1からReplica#2に移動することは、仮想プロキシ2がホームリンクからフォーリンリンクに移動することである。したがって、Replica#2に移動した仮想プロキシ2は、気付けアドレスを取得し、Replica#1内の仮想プロキシ2の仮想プロキシ用ホームエージェント3と、通信相手の移動端末4とにBUを送信する(OP3、OP4)。
また、Replica#1からReplica#2へ移動される移動端末4と仮想プロキシ2との間に確立されたセッションの情報には、配信コンテンツ,セッションの状態等の情報も含まれる。そのため、Replica#2へ移動後、仮想プロキシ2は、該セッションの情報を用いて、最初からではなく、コンテンツ配信完了位置から、コンテンツ配信を再開する。なお、仮想プロキシ2の移動中に発生する仮想プロキシ2宛ての通信データは、モバイルIPの仕様に則って、仮想プロキシ用ホームエージェント3から、IPinIPトンネルを通じて、Replica#2へ移動後の仮想プロキシ2に渡される。
すなわち、第1実施形態では、仮想プロキシ2が、通信相手の移動端末の移動に応じて、該移動端末の近傍のReplicaに移動する。これによって、移動端末4は、移動の前後のいずれにおいても、近傍のReplicaからコンテンツをダウンロードすることになり、ネットワーク内の余計なトラフィックの増加を抑えることができる。また、移動端末4のユーザから見ると、移動に伴うコンテンツのダウンロードのやり直しや接続先の切替のための操作を行うことなく、移動前後で継続してコンテンツ配信が行われるので、移動前後で操作の煩わしさや違和感がない。
(キャッシュサーバの構成)
図4は、キャッシュサーバ1のハードウェア構成の一例を示す図である。キャッシュサーバ1は、例えば、図3に示されるコンテンツ配信システム100内のReplica#1又はReplica#2、Replica#親として動作する情報処理装置である。キャッシュサーバ1は、プロセッサ101,主記憶装置102,補助記憶装置105,可搬記録媒体駆動装置106,ネットワークインタフェース107を備える。また、これらはバス109により互いに接続されている。
可搬記録媒体駆動装置106は、可搬記録媒体110に記録されるプログラムや各種データを読出し、プロセッサ101に出力する。可搬記録媒体110は、例えば、SDカード,miniSDカード,microSDカード,USB(Universal Serial Bus)フラッシュメモリ,CD(Compact Disc),DVD(Digital Versatile Disc),Blu−ray Disc,又はフラッシュメモリカードのような記録媒体である。
ネットワークインタフェース107は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース107は、有線のネットワークと接続するインタフェース、無線のネットワークと接続するインタフェースを含む。ネットワークインタフェース107は、例えば、NIC(Network Interface Card),無線LAN(Local Area Network)カード等である。ネットワークインタフェース107で受信されたデータ等は、プロセッサ101に出力される。なお、図4では、ネットワークインタフェース107は、便宜上、1つのボックスで表示されているが、例えば、ネットワークインタフェース107は、複数のポートを備えてもよい。
補助記憶装置105は、様々なプログラムや、各プログラムの実行に際してプロセッサ101が使用するデータを格納する。補助記憶装置105は、例えば、EPROM(Erasable Programmable ROM)、又はハードディスクドライブ(Hard Disk Drive)等の不揮発性のメモリである。補助記憶装置105は、例えば、オペレーティングシステム(OS),コンテンツ配信プログラム,その他様々なアプリケーションプログラムを保持する。
主記憶装置102は、プロセッサ101に、補助記憶装置105に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする。主記憶装置102は、例えば、RAM(Random Access Memory)及びROMのような半導体メモリである。
プロセッサ101は、例えば、CPU(Central Processing Unit)である。プロセッ
サ101は、補助記憶装置105又は可搬記録媒体110に保持されたOSや様々なアプリケーションプログラムを主記憶装置102にロードして実行することによって、様々な処理を実行する。プロセッサ101は、1つに限られず、複数備えられてもよい。
例えば、キャッシュサーバ1は、プロセッサ101が補助記憶装置105に保持されるコンテンツ配信プログラムを主記憶装置102にロードして実行する。キャッシュサーバ1は、コンテンツ配信プログラムの実行を通じて、Replicaとして動作する。なお、キャッシュサーバ1のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。例えば、キャッシュサーバ1は、マウスやキーボード等の入力装置、ディスプレイ等の出力装置を備えてもよい。コンテンツ配信プログラムは、例えば、可搬記録媒体110に記録されていてもよい。コンテンツ配信プログラムは、「情報処理プログラム」の一例である。
図5は、第1実施形態に係るキャッシュサーバ1のReplicaとしての機能ブロックの一例を示す図である。キャッシュサーバ1は、コンテンツ配信プログラムを実行することによって機能ブロックとして、パケット転送処理部11,コンテンツキャッシュ管理
部12,仮想プロキシ処理部13,Webキャッシュ14,通信状態管理テーブル群15,仮想プロキシ用ホームエージェント16,仮想プロキシ用ホームエージェント管理テーブル17を含む。なお、仮想プロキシ用ホームエージェント16,仮想プロキシ用ホームエージェント管理テーブル17は、キャッシュサーバ1が、仮想プロキシ用ホームエージェント3を兼ねる場合に、機能ブロックとして有することとなる。
パケット転送処理部11は、受信パケットを、コンテンツキャッシュ管理部12,仮想プロキシ処理部13,仮想プロキシホームエージェント処理部16のいずれかへの振分を行う。例えば、パケット転送処理部11は、フローを識別しており、受信パケットの属するフローに応じて、受信パケットを振り分ける。
例えば、パケット転送処理部11は、キャッシュサーバ1から発信されたHTTPのフロー(通信相手側のポート番号が80)のパケットを、コンテンツキャッシュ管理部12に転送する。
キャッシュサーバ1内に存在する仮想プロキシ2には、キャッシュサーバ1の接続するリンクをホームリンクとする仮想プロキシ2と、キャッシュサーバ1の接続するリンクをフォーリンリンクとする仮想プロキシ2とがある。したがって、キャッシュサーバ1の接続するリンクをホームリンクとする仮想プロキシ2宛ての受信パケットの宛先アドレスは、該仮想プロキシ2のホームアドレスとなる。また、キャッシュサーバ1の接続するリンクをフォーリンリンクとする仮想プロキシ2宛ての受信パケットの宛先アドレスは、該仮想プロキシ2の気付けアドレスとなる。したがって、パケット転送処理部11は、受信パケットの宛先アドレスがキャッシュサーバ1内に存在する仮想プロキシ2のホームアドレス又は気付けアドレスである場合には、受信パケットを仮想プロキシ処理部13に転送する。
受信パケットの宛先アドレスが、後述の仮想プロキシ用ホームエージェント管理テーブル17に記載されるアドレスである場合には、パケット転送処理部11は、仮想プロキシ用ホームエージェント処理部16に受信パケットを転送する。
なお、パケット転送処理部11は、受信パケットの振り分けに、例えば、後述の通信先登録テーブル、仮想プロキシ用ホームエージェント管理テーブル17等を参照してもよい。または、例えば、これらのテーブルとは別に、専用のテーブルを補助記憶装置105の記憶領域に保持し参照してもよい。
コンテンツキャッシュ管理部12は、Webキャッシュ14内のコンテンツを管理する。例えば、仮想プロキシ処理部13から要求されるコンテンツがWebキャッシュ14内に保持されていない場合には、Replica#親又はWebサーバからコンテンツをダウンロードし、Webキャッシュ14に格納する。
Webキャッシュ14は、コンテンツを保持する。Webキャッシュ14は、例えば、補助記憶装置105内の記憶領域に、予め静的に、又は、コンテンツ配信プログラムの実行を通じて動的に作成される。Webキャッシュ14に保持されるコンテンツは、例えば、所定期間アクセスが無い場合には、コンテンツキャッシュ管理部12によって削除される。Webキャッシュ14は、「第1の格納部」の一例である。
仮想プロキシ処理部13は、キャッシュサーバ1内に存在する仮想プロキシ2の処理を行う。具体的には、例えば、移動端末からコンテンツ要求を受信した場合に、仮想プロキシ処理部13は、仮想プロキシ2を作成し、該当コンテンツを要求元に送信する。
また、コンテンツ配信中に移動端末が移動し、該移動端末からBUを受信した場合には、仮想プロキシ処理部13は、移動端末の移動先の近傍のReplicaを検索する。仮想プロキシ処理部13は、検出されたReplicaに、該移動端末と仮想プロキシ2とのセッションの情報等を送信する。このとき送信される情報は、具体的には、後述の通信状態管理テーブル群15に格納される通信先登録テーブルとセッション情報テーブルの該当レコードである。
また、他のReplicaから、該Replica内の仮想プロキシ2と移動端末とのセッションの情報等を受信した場合には、仮想プロキシ処理部13は、該仮想プロキシ2と通信相手の移動端末4との間のセッションを再開させ、該移動端末4にコンテンツを配信する。なお、仮想プロキシ処理部13の処理の詳細については、後述する。仮想プロキシ処理部13は、「処理部」の一例である。
仮想プロキシ用ホームエージェント処理部16は、キャッシュサーバ1を含む同じリンクに接続する装置において作成された仮想プロキシ2のホームエージェントの処理を行う。処理の詳細については、後述する。
(データ構造)
通信状態管理テーブル群15は、主記憶装置102又は補助記憶装置105の記憶領域に作成される。キャッシュサーバ1内に存在する仮想プロキシ2と通信相手とのセッションの情報を格納する。通信状態管理テーブル群15には、通信先登録テーブルと、セッション情報テーブルと、UE近傍Replica決定テーブルとが格納される。
図6は、通信先登録テーブルの一例を示す図である。通信先登録テーブルは、キャッシュサーバ1内に存在する仮想プロキシ2と、コンテンツ配信を行っている移動端末とを記憶するテーブルである。図6に示される通信先登録テーブルは、レコードに、「UEホームアドレス」、「UE気付けアドレス」、「仮想プロキシホームアドレス」、「仮想プロキシ気付けアドレス」の項目を含む。
移動端末は、ホームリンクに接続する場合には、気付けアドレスを持たない。そのため、「UE気付けアドレス」は、移動端末にとってキャッシュサーバ1の接続するリンクがホームリンクである場合には格納されず、フォーリンリンクである場合には移動端末の気付けアドレスが格納される。
また、キャッシュサーバ1内には、他のReplicaから移動してきた仮想プロキシ2も存在する。仮想プロキシ2が、キャッシュサーバ1によって作成された場合又はキャッシュサーバ1の接続するリンクをホームリンクとする場合には、「仮想プロキシ気付けアドレス」は空となる。仮想プロキシ2が、キャッシュサーバ1の接続するリンクをフォーリンリンクとする場合には、「仮想プロキシ気付けアドレス」に、仮想プロキシ2の気付けアドレスが格納される。
通信先登録テーブルのレコードは、例えば、移動端末から1回目の接続要求を受信した場合に仮想プロキシ処理部13によって作成、登録される。通信先登録テーブルに該当のレコードが存在することは、第1実施形態では、該当する仮想プロキシ2がキャッシュサーバ1内に存在することを意味する。コンテンツ配信が終了し、セッションが切断されると、通信先登録テーブルのレコードは、仮想プロキシ処理部13によって削除される。通信先登録テーブルのレコードが削除されることは、第1実施形態では、該当する仮想プロキシ2がキャッシュサーバ1内に存在しなくなることを意味する。
図7は、セッション情報テーブルの一例を示す図である。セッション情報テーブルは、
通信先登録テーブルに登録される仮想プロキシ2と移動端末との間に確立するセッションの状態を保持するテーブルである。
図7に示されるセッション情報テーブルでは、項目として、「UEホームアドレス」,「UEポート」,「送信シーケンス番号(SQN)」,「確認済みシーケンス番号(SQN)」,「受信済みシーケンス番号(SQN)」,「現在コンテンツURI」,「現在コンテンツ内位置」が含まれる。
「UEホームアドレス」によって、セッション情報テーブルのレコードと、通信先登録テーブルのレコードとが紐付けられる。
「UEポート」には、移動端末と仮想プロキシ2との間で確立するTCPの通信セッションの移動端末側のポート番号が格納される。仮想プロキシ2が取り扱うセッションは、移動端末が発信元となるため、セッション毎に移動端末側のポート番号は異なる。したがって、セッションは、移動端末のホームアドレス,ポート番号とで特定される。
「送信SQN」には、仮想プロキシ2から移動端末に送信された最新のPDU(Protocol Data Unit)に付与されたシーケンス番号が格納される。「確認済みSQN」には、仮想プロキシ2から移動端末に送信されたPDUに対して移動端末から確認応答(TCP ACK)を受信済みのシーケンス番号が格納される。「受信済みSQN」には、移動端末から仮想プロキシ2が受信した最新のPDUのシーケンス番号が格納される。
「現在コンテンツURI」には、該当のTCPセッションに関して移動端末から要求されるコンテンツの識別子が格納される、図7に示される例では、コンテンツの識別子として、コンテンツのURI(Uniform Resource Identifier)が格納されている。
「現在コンテンツ内位置」には、該当のTCPセッションに関して移動端末から要求されるコンテンツの現在の先頭からの配信完了の位置が格納される。例えば、「現在コンテンツ内位置」が、0バイトである場合には、コンテンツをまだ送信していないことが示される。例えば、「現在コンテンツ内位置」が、200バイトである場合には、コンテンツの先頭から200バイト目まで送信完了していることが示される。
図7に示される例では、キャッシュサーバ1内の仮想プロキシ2とホームアドレス「UE#x−HomeAddress」の移動端末との間で、移動端末側のポート番号が「10000」と「10002」との2つのセッションが確立していることが示される。なお、第1実施形態では、仮想プロキシは1つの移動端末に1つ用意され、1つの仮想プロキシと1つの移動端末との間で複数のセッションが用いられることを想定しているが、これに限られない。例えば、仮想プロキシは、セッション毎に用意されてもよい。
セッション情報テーブルのレコードは、第1実施形態では、仮想プロキシ処理部13によって、最初の通信セッション確立時に作成される。また、TCPのPDUの受信及び送信の度に、仮想プロキシ処理部13によって、該当レコードが更新される。通信セッションが切断されると、仮想プロキシ処理部13によって、セッション情報テーブルの該当レコードは削除される。
図8は、UE近傍Replica決定テーブルの一例を示す図である。UE近傍Replica決定テーブルは、ネットワークアドレスと、該ネットワークアドレスをカバーするReplicaとの対応付けを格納するテーブルである。
図8に示されるUE近傍Replica決定テーブルは、項目として、「UE収容ネッ
トワーク」、「近隣Replica」を含む。「UE収容ネットワーク」には、コンテンツ配信システム100内のネットワークアドレスが格納される。「近隣Replica」には、対応するネットワークアドレスの近傍に位置するReplicaの識別情報が格納される。Replicaの識別情報として、例えば、Replica自身のアドレスが格納されてもよい。
UE近傍Replica決定テーブルは、例えば、コンテンツ配信プログラムをインストールすることによって、又は、コンテンツ配信システム100の管理者によって、予め登録される。
図9は、仮想プロキシ用ホームエージェント管理テーブル17の一例を示す図である。仮想プロキシ用ホームエージェント管理テーブル17は、キャッシュサーバ1の接続するリンクをホームリンクとする仮想プロキシ2のホームアドレスと気付けアドレスとの対応付けを格納するテーブルである。
図9に示される仮想プロキシ用ホームエージェント管理テーブル17は、「仮想プロキシホームアドレス」、「仮想プロキシ気付けアドレス」を項目として含む。仮想プロキシ2は、ホームリンクに接続する場合には気付けアドレスを持たず、フォーリンリンクに接続する場合に気付けアドレスを持つ。そのため、仮想プロキシ用ホームエージェント管理テーブル17に登録されるのは、キャッシュサーバ1の接続するリンク(仮想プロキシ2にとってホームリンク)から他のリンク(仮想プロキシ2にとってフォーリンリンク)に移動している仮想プロキシ2となる。
なお、図6〜図9に示される各テーブルは、例示であって、各テーブルのデータ構造は、図6〜図9に示される例に限られない。
(処理の流れ)
図10は、第1実施形態におけるコンテンツ配信システム100内の処理シーケンスの一例を示す図である。図10に示される例では、図3に示されるコンテンツ配信システム100において、移動端末4とReplica#1との通信セッションの確立から、移動端末4の移動及びそれに伴う仮想プロキシ2の移動完了までのシーケンスが示される。図3に示される例では、通信セッションとして、HTTPのセッションを想定する。ただし、コンテンツ配信システム100において移動端末4とReplicaとの間に確立される通信セッションはHTTPに限られない。コンテンツ配信システム100において移動
端末4とReplicaとの間に確立される通信セッションは、1つのコンテンツを複数の視聴者へ配信することを目的とするサービスにおける、例えば、FTP(File TransferProtocol)やHTTP等のTCPをベースとする通信であってもよいし、TFTP(Trivial File Transfer Protocol)のようなユニキャストのUDPをベースとする通信であ
ってもよい。
なお、図10中におけるBS1,BS2は、それぞれ、移動端末が移動前、移動後に接続する基地局を示す。図10において、初期状態として、移動端末4はBS1に接続していることとする。
OP11では、移動端末4は、HTTPゲットメッセージを送信する。このHTTPゲットメッセージは、Replica#1のアドレスを宛先アドレスとして送信される。また、図10において、このHTTPゲットメッセージが、Replica#1が移動端末4から最初に受信する接続要求となる。
なお、図10では省略されているが、移動端末4は、OP11のHTTPゲットメッセ
ージの送信に先だって、DNS(Domain Name System)サーバにアクセスし、名前解決によってアクセス先のURLに対応するReplica#1のアドレスを取得している。
移動端末4からのHTTPゲットメッセージを受信することによって、Replica#1は移動端末4用の仮想プロキシ2を作成する。
OP12では、Replica#1は、HTTPリダイレクトメッセージを移動端末4に返信する。このHTTPリダイレクトメッセージは、URLの移動を通知するメッセージである。HTTPリダイレクトメッセージによって、Replica#1内の仮想プロキシ2のホームアドレスが移動端末4に通知される。
OP13では、移動端末4は、HTTPリダイレクトメッセージによって通知された仮想プロキシ2のホームアドレスを宛先アドレスとして、HTTPゲットメッセージを送信する。
OP14では、Replica#1は、仮想プロキシ2として、HTTPゲットメッセージの応答メッセージを移動端末4に送信する。OP14が完了すると、移動端末4とReplica#1内の仮想プロキシ2との間の通信セッションが確立する。
OP15では、仮想プロキシ2としてReplica#1は、移動端末4に要求されたコンテンツを送信する。なお、Replica#1のWebキャッシュ14内に、要求されたコンテンツが格納されていない場合には、Replica#1は、Replica#親から該当のコンテンツをダウンロードしてから、移動端末4に送信する。
OP16において、移動端末4が移動し、BS1からBS2にハンドオーバしたと想定する。また、BS2のカバー範囲内に移動したことによって、移動端末4が接続するリンクも変わることを想定する。
OP17では、移動端末4は、所定のDHCPサーバ(図3には図示せず)にアクセスして、移動先のリンクにおける気付けアドレスを取得する。
OP18では、移動端末4は、新たに気付けアドレスを取得したため、端末用ホームエージェント5にBUを送信する。また、モバイルIPにおいてBUは通信相手にも送信されるので、OP21では、移動端末4は、通信相手の仮想プロキシ2としてのReplica#1にもBUを送信する。このBUには、移動端末4のホームアドレスと移動先のリンクの気付けアドレスとの対応が格納されている。なお、移動端末4が送信するBUが、端末用ホームエージェント5とReplica#1とのどちらに先に届くかは、ネットワーク環境に依存するところが大きく、図10に示されるように、常に端末用ホームエージェント5に先にBUが届くとは限らない。
移動端末4の移動中も、仮想プロキシ2としてのReplica#1からのコンテンツの配信は行われる。OP19及びOP20は、移動端末4からのBUが届く前にReplica#1によって行われるデータ送信を表す。
OP19及びOP20では、Replica#1は、移動端末4の移動先の気付けアドレスを取得していないので、依然として、移動端末4のホームアドレスに宛ててデータを送信する。OP19では、データはBS1を経由するが、宛先となる移動端末4がBS1の配下に存在しないため、このデータ送信は失敗に終わる。
OP20のReplica#1からのデータ送信は、OP19のデータ送信の再送であ
る。OP20では、端末用ホームエージェント5はBUを受信しており、移動端末4の新しい気付けアドレスを取得している。そのため、OP20において、移動端末4のホームアドレス宛てのデータは、端末用ホームエージェント5に届けられ、端末用ホームエージェント5によって、移動端末4の新しい気付けアドレスに転送される。
以降、移動端末4から送信されるデータ、及び、移動端末4に宛てて送信されるデータは、BS2を経由する。
OP23では、Replica#1は、OP21において移動端末4からBUを受信しているので、移動端末4の移動先の気付けアドレスから、移動端末4の近傍のReplicaとしてReplica#2を検出する。Replica#1は、Replica#2に、移動端末4との通信セッションに関する情報を送信する。具体的には、Replica#1は、通信先登録テーブルと、セッション情報テーブルと、の移動端末4に該当するレコードを、Replica#2に送信する。Replica#2では、これらのレコードを受信すると、通信先登録テーブルとセッション情報テーブルとにこれらのレコードを登録する。これによって、仮想プロキシ2がReplica#1からReplica#2に移動することになる。ただし、この段階では、移動端末4は、「セッションはReplica#1との間にある」との認識のままである。
OP24及びOP25では、仮想プロキシ2が移動したので、仮想プロキシ2としてのReplica#2は、仮想プロキシ2の気付けアドレスを取得して、仮想プロキシ用ホームエージェント3と通信相手の移動端末4とに、BUを送信する。移動端末4がReplica#2からのBUを受信することによって、以降、移動端末4は、仮想プロキシ2の気付けアドレスを取得し、該気付けアドレスを宛先としてパケットを送信するようになる。これによってReplica#1との間のセッションがReplica#2との間へ移行する。
OP22は、仮想プロキシ2のReplica#2への移動完了までの間に行われた、移動端末4から仮想プロキシ2宛てのデータの送信である。OP22の段階では、移動端末4は、仮想プロキシ2の移動先の気付アドレスを取得していないので、仮想プロキシ2のホームアドレスに宛ててデータを送信する。したがって、該データは、仮想プロキシ2のホームエージェントである仮想プロキシ用ホームエージェント3に届けられる。ただし、仮想プロキシ用ホームエージェント3も、OP22の時点では、仮想プロキシ2の移動先のアドレスを知らないので、仮想プロキシ2にデータを転送することができない。例えば、仮想プロキシ用ホームエージェント3は、仮想プロキシ2宛てのデータを、一旦バッファする。
OP24における仮想プロキシ2からのBUの受信によって、仮想プロキシ用ホームエージェント3は、仮想プロキシ2の移動先の気付けアドレスを取得する。これ以降は、仮想プロキシ用ホームエージェント3は、仮想プロキシ2にデータを転送可能となる。
OP26では、仮想プロキシ用ホームエージェント3は、OP22においてバッファした仮想プロキシ2宛てのデータや、移動端末4から仮想プロキシ2のホームアドレスを宛先として送信されるデータを、仮想プロキシ2の移動先のRelplica#2に送信する。仮想プロキシ用ホームエージェント3から仮想プロキシ2の移動先のReplica#2へのデータの受け渡しは、モバイルIPの仕様に準じて、IPinIPトンネルを用いて行われる。
一方、移動端末4は、OP25において、仮想プロキシ2としてのReplica#2からBUを受信することによって、仮想プロキシ2の気付アドレスに宛ててデータを送信
可能になる。OP27及びOP28では、移動端末4と仮想プロキシ2としてのReplica#2は、互いの気付けアドレスを知っているので、気付けアドレス宛てにデータを送信する。
(パケットの例)
次に、図10に示されるシーケンスの例の流れにしたがって、送受信されるパケットの例について説明する。
図11Aは、図10のOP11において、移動端末4からReplica#1のアドレスに宛てて送信されるHTTPゲットメッセージの例を示す図である。図11Aでは、移動端末4がReplica#1の接続するリンクをホームリンクとする場合のHTTPゲットメッセージが示される。図10で説明されたシーケンスでは、移動端末4はReplica#1の接続するリンクをホームリンクとすることを想定しているため、OP11では、図11Aに示されるHTTPゲットメッセージが送信される。この場合のHTTPゲットメッセージの送信元アドレスは移動端末4のホームアドレス(図中、UE#x-HomeAddress)である。HTTPゲットメッセージの宛先アドレスは、Replica#1のアドレス(図中“Replica#1-Address”)である。
図11Bは、移動端末4がReplica#1の接続するリンクをフォーリンリンクとする場合の、Replicaのアドレス宛てに送信されるHTTPゲットメッセージの例を示す図である。この場合には、HTTPゲットメッセージのIPヘッダ内には、移動端末4のホームアドレスを格納するフィールド(図中、IPヘッダ内のHome Address=UE#x-HomeAddress)が設けられる。また、この場合にはHTTPゲットメッセージの送信元ア
ドレスは、移動端末4の気付けアドレス(UE#x-care of Address)となる。
図12は、図10のOP12において、Replica#1から移動端末4に送信されるHTTPリダイレクトのパケットの例を示す図である。ユーザデータ内のLocationフィールドは、URLの移動先が格納されるフィールドであって、図12では、仮想プロキシ2のホームアドレス(仮想Proxy#x-HomeAddress)が格納されている。このHT
TPリダイレクトメッセージによって、移動端末4にReplica#1内の仮想プロキシ2のホームアドレスが通知される。
図13は、図10のOP13において、移動端末4からReplica#1に送信されるHTTPゲットメッセージの例を示す図である。図10のOP13では、移動端末4は、Replica#1内の仮想プロキシ2のホームアドレスを取得しているため、HTTPゲットメッセージの宛先アドレスは、仮想プロキシ2のホームアドレス(仮想Proxy#x-HomeAddress)となる。HTTPゲットメッセージの送信元アドレスは、図11Aと同様
に、移動端末4のホームアドレス(UE#x-HomeAddress)である。
図14は、図10のOP14において、Replica#1から移動端末4に送信されるHTTPゲットメッセージの応答パケットの例を示す図である。送信元アドレスは、Replica#1内の仮想プロキシ2のホームアドレス(仮想Proxy#x-HomeAddress)、
宛先アドレスは移動端末4のホームアドレス(UE#x-HomeAddress)となる。
図15は、図10のOP18において、移動端末4から端末用ホームエージェント5に送信されるBUの例を示す図である。図10のOP18では、移動端末4は、フォーリンリンクであるReplica#2の接続するリンクに移動し、気付けアドレスを取得しているので、BUの「care of address」フィールドには、移動先で取得された移動端末4
の気付けアドレス(UE#x-care of Address#2)が格納される。また、BUの送信元アドレスも、移動先のリンクの移動端末4の気付けアドレス(UE#x-care of Address#2)が格納されている。
図16Aは、図10のOP21において、移動端末4からセッション確立中のReplica#1内の仮想プロキシ2に送信されるBUの例を示す図である。該BUでも、IPモバイルヘッダ内の「care of address」フィールドには、移動先で取得された移動端末
4の気付けアドレス(UE#x-care of Address#2)が格納される。また、BUの送信元アドレスも、移動先のリンクの移動端末4の気付けアドレス(UE#x-care of Address#2)が格納されている。BUの宛先アドレスは、Replica#1内の仮想プロキシ2のホームアドレス(仮想Proxy#x-HomeAddress)である。なお、図16Aに示される例は、Rep
lica#1内の仮想プロキシ2が、Replica#1の接続するリンクをホームリンクとする場合の例である。
図16Bは、移動端末4からセッション確立中のReplica内の仮想プロキシ2に送信されるBUのパケットの例を示す図である。ただし、図16Bに示される例は、Replica#1内の移動端末4とセッションを確立している仮想プロキシ2が、Replica#1の接続するリンクをフォーリンリンクとする場合の例である。そのため、図16Bに示されるBUの宛先アドレスが、Replica#1内の仮想プロキシ2の気付けアドレス(仮想Proxy#y-care of Address#1)となっている。
図17は、図10のOP24において、Replica#2内の仮想プロキシ2から仮想プロキシ用ホームエージェント3に送信されるBUの例を示す図である。図10のOP24では、仮想プロキシ2は、Replica#1からReplica#2に移動し、気付けアドレスを取得しているので、BUのモバイルIPヘッダ内の「care of address」
フィールドには、移動先で取得された仮想プロキシ2の気付けアドレス(仮想Proxy#x-care of Address#2)が格納される。また、BUの送信元アドレスも、移動先のリンクの仮
想プロキシ2の気付けアドレス(仮想Proxy#x-care of Address#2)が格納されている。
図18は、図10のOP25において、Replica#2内の仮想プロキシ2から移動端末4に送信されるBUの例を示す図である。該BUパケットでも、モバイルIPヘッダ内の「care of address」フィールドには、移動先で取得された仮想プロキシ2の気付
けアドレス(仮想Proxy#x-care of Address#2)が格納される。また、BUの送信元アド
レスも、移動先のリンクの仮想プロキシ2の気付けアドレス(仮想Proxy#x-care of Address#2)が格納されている。
(内部処理)
次に、図10に示されるシーケンスの例の流れにしたがって、キャッシュサーバ1の内部処理のフローについて説明する。
図19は、Replicaのアドレス宛てのHTTPゲットメッセージを受信した場合の、仮想プロキシ処理部13の処理のフローチャートの一例である。図19に示されるフローチャートは、例えば、図10のOP11において、プロキシ処理部13がReplica#1のアドレス宛てのHTTPゲットメッセージ(図11A参照)を受信するとReplica#1において開始される。
S1では、仮想プロキシ処理部13は、受信パケット(HTTPゲットメッセージ)から、移動端末4のホームアドレスを取り出す。Replica#1の接続するリンクが移動端末4にとってホームリンクである場合には、仮想プロキシ処理部13は、HTTPゲットメッセージの送信元アドレスから移動端末4のホームアドレスを取り出す(図11A参照)。Replica#1の接続するリンクが移動端末4にとってフォーリンリンクである場合には、仮想プロキシ処理部13は、HTTPゲットメッセージから、移動端末4
のホームアドレスと、送信元アドレスから移動端末4の気付けアドレスと、を取り出す(図11B参照)。次に処理がS2に進む。
S2では、仮想プロキシ処理部13は、S1で受信パケット(HTTPゲットメッセージ)から取り出した移動端末4のホームアドレスをキーとして、通信先登録テーブルの「UEホームアドレス」の項目を検索する。S1で受信パケット(HTTPゲットメッセージ)から取り出した移動端末4のホームアドレスに合致するレコードがない場合には(S3:NO)、処理がS4に進む。
S4では、通信先登録テーブルに該当レコードが存在しない、すなわち、移動端末4用の仮想プロキシ2がキャッシュサーバ1内に存在していないので、仮想プロキシ処理部13は、仮想プロキシ2を作成するために、仮想プロキシ2のホームアドレスを捕捉する。仮想プロキシ2のホームアドレスは、例えば、DHCPサーバから取得されてもよいし、キャッシュサーバ1が予め仮想プロキシ2用のアドレスプールを保持しており、アドレスプール内の未使用のアドレスから取得されてもよい。次に、処理がS5に進む。
S5では、仮想プロキシ処理部13は、通信先登録テーブルにレコードを追加する。このとき追加されるレコードの、「UEホームアドレス」,「UE気付けアドレス」,「仮想プロキシホームアドレス」の項目には、それぞれ、S1で取り出された移動端末4のホームアドレス,気付けアドレス,S4で捕捉された仮想プロキシ2のホームアドレスが格納される。なお、レコードの「仮想プロキシ気付けアドレス」は、仮想プロキシ2がホームリンクに存在しているため、空となる。また、「UE気付けアドレス」は、移動端末4はキャッシュサーバ1の接続するリンクをホームリンクとする場合には、空である。次に、処理がS6に進む。
S1で受信パケット(HTTPゲットメッセージ)から取り出された移動端末4のホームアドレスに合致するレコードがある場合には(S3:YES)、移動端末4と通信セッション確立中の仮想プロキシ2が存在することが示される。この場合には、通信先登録テーブルにレコードを追加しなくてもよいため、処理がS6に進む。
S6では、仮想プロキシ処理部13は、移動端末4にHTTPリダイレクトメッセージを返信する。HTTPリダイレクトメッセージには、URLの移動先を格納するLocationフィールドがあり、仮想プロキシ処理部13は、このLocationフィールドに仮想プロキシ2のホームアドレスを格納する(図12参照)。これによって、移動端末4に仮想プロキシ2のホームアドレスが通知される。S6の処理は、例えば、図10のOP12に相当する。その後、図19に示される処理が終了する。
図20A,図20B,図20C,図20Dは、Replica内の仮想プロキシのアドレス宛てのTCPパケットを受信した場合の、仮想プロキシ処理部13の処理のフローチャートの一例である。図20Aに示されるフローチャートは、例えば、プロキシ処理部13がキャッシュサーバ1内の仮想プロキシ2のホームアドレス宛てのTCPパケットを受信すると開始される。図10のOP13において、Replica#1が移動端末4からHTTPゲットメッセージを受信した場合にも、Replica#1において図20Aに示されるフローチャートが開始される。
S11〜S13の処理は、図19のS1〜S3と同様である。S11では、仮想プロキシ処理部13は、受信パケット(TCPパケット)から、移動端末4のホームアドレスを取り出す。S12では、仮想プロキシ処理部13は、S11で受信パケットから取り出した移動端末4のホームアドレスをキーとして、通信先登録テーブルの「UEホームアドレス」の項目を検索する。
S11で受信パケットから取り出された移動端末4のホームアドレスに合致するレコードがある場合には(S13:YES)、処理がS14に進む。図20Aより先に実行される図19に示される処理において、通信先登録テーブルにはレコードが登録されているため、通常は、処理がS14に進む。
S11で受信パケットから取り出された移動端末4のホームアドレスに合致するレコードがない場合には(S13:NO)、受信パケットの宛先となっている仮想プロキシ2がキャッシュサーバ1内に存在しないため、図20A〜図20Dに示される処理が終了する。
S14では、受信パケットから、送信元のポート番号を取り出す。この送信元のポート番号は、TCPセッションの移動端末4側のポート番号である。次に処理がS15に進む。
S15では、仮想プロキシ処理部13は、S11で受信パケットから取り出した移動端末4のホームアドレス,S14で受信パケットから取り出した送信元のポート番号をキーとして、セッション情報テーブルの「UEホームアドレス」,「UEポート」の項目を検索する。合致するレコードがある場合には(S16:YES)、処理がS20に進む。合致するレコードがない場合には(S16:NO)、処理がS17に進む。
S17では、仮想プロキシ処理部13は、受信パケットが接続要求であるか否かを判定する。接続要求のTCPパケットは、TCP SYNパケットであって、HTTPゲットメッセージはTCP SYNパケットの一つである。受信パケットが接続要求である場合には(S17:YES)、処理がS18に進む。受信パケットが接続要求でない場合には(S17:NO)、セッション情報テーブルに該当のレコードがなく、セッションが確立していないため、図20A〜図20Dに示される処理が終了する。
S18では、仮想プロキシ処理部13は、セッション情報テーブルにレコードを追加する。このとき追加されるレコードの、「UEホームアドレス」,「UEポート」には、それぞれ、S11で取り出された移動端末4のホームアドレス,S14で取り出された送信元のポート番号が格納される。その他のレコードの項目の情報も受信パケットから抽出されてセッション情報テーブルに格納される。次に、処理がS19に進む。
S19では、仮想プロキシ処理部13は、受信パケット(接続要求)の送信元の移動端末4に、応答を送信する。受信パケットがHTTPゲットメッセージである場合には、応答は、HTTP 200 OKのパケットとなる(図14参照)。その後、図20A〜図20Dに示される処理が終了する。S19の処理は、例えば、図10のOP14に相当する。
S20以降は、通信先登録テーブル及びセッション情報テーブルに、受信パケットの送信元の移動端末4に該当するレコードがある場合の処理である。S20では、仮想プロキシ処理部13は、受信パケットは切断要求であるか否かを判定する。受信パケットが切断要求である場合には(S20:YES)、処理がS22に進む。
受信パケットが切断要求でない場合には(S20:NO)、仮想プロキシ2と移動端末4との間にセッションが確立していることは判定済みであるので、受信パケットがデータパケットであることが示される。この場合には、処理がS21に進む。
S21では、受信パケットがデータパケットであるので、仮想プロキシ処理部13は、受信パケットから情報を抽出して、セッション情報テーブルの該当レコードを更新する。例えば、仮想プロキシ処理部13は、受信パケットのシーケンス番号を抽出して、セッション情報レコードの「送信SQN」,「確認済みSQN」,「受信済みSQN」のうちの該当する項目を更新する。また、仮想プロキシ処理部13は、コンテンツの次のPDUを移動端末4に送信する。その後、図20A〜図20Dに示される処理が終了する。S21の処理は、例えば、図10のOP15の処理に相当する。
S22では、受信パケットが切断要求であるので、仮想プロキシ処理部13は、セッション情報テーブルの、受信パケットの送信元のホームアドレスと、送信元のポート番号とが「UEホームアドレス」,「UEポート」に一致するレコードを削除する。次に処理がS23に進む。
S23では、受信パケットの送信元の移動端末4にTCP FINパケットを送信する。移動端末4がこのTCP FINパケットを受信することによって、移動端末4と仮想プロキシ2との通信セッションが切断される。次に処理がS24に進む。
S24では、仮想プロキシ処理部13は、受信パケットから取り出した移動端末4のホームアドレスをキーとして、セッション情報テーブルの「UEホームアドレス」の項目を検索する。S24は、S22において削除したレコードで示されるセッションの他に、仮想プロキシ2と移動端末4とのセッションが存在するか否かを確認する処理である。移動端末4のホームアドレスに「UEホームアドレス」の項目が合致するレコードがある場合には(S25:YES)、仮想プロキシ2と移動端末4との間に他のセッションが存在しているため、通信先登録テーブルの該当レコードは削除されずに、図20A〜図20Dに示される処理が終了する。
セッション情報テーブルにおいて、移動端末4のホームアドレスに「UEホームアドレス」の項目が合致するレコードがない場合には(S25:NO)、仮想プロキシ2と移動端末4との間にセッションが存在しないことが示される。この場合には、仮想プロキシ2を削除すればよい。したがって、S26〜S28は、仮想プロキシ2を削除する処理である。
S26では、仮想プロキシ処理部13は、通信先登録テーブルの該当レコードから、仮想プロキシ2がホームリンクに接続しているか否かを判定する。仮想プロキシ2がホームリンクに接続している場合には、通信先登録テーブルの該当レコードの「仮想プロキシ気付けアドレス」の項目が空となる。一方、仮想プロキシ2がフォーリンリンクに接続している場合には、通信先登録テーブルの該当レコードの「仮想プロキシ気付けアドレス」の項目に気付けアドレスが格納される。したがって、仮想プロキシ2は、ホームリンクに接続しているか否かは、通信先登録テーブルの該当レコードの「仮想プロキシ気付けアドレス」の項目の値の有無によって判定される。
仮想プロキシ2がフォーリンリンクに接続している場合には(S26:NO)、仮想プロキシ2が他のリンクから移動してきたことが示される。この場合には、仮想プロキシ2を管理する仮想プロキシ用ホームエージェント3の仮想プロキシ用ホームエージェント管理テーブル17に、仮想プロキシ2のホームアドレスと気付けアドレスを含むレコードが存在する。したがって、S27では、仮想プロキシ処理部13は、仮想プロキシ2のホームアドレスに宛てて、仮想プロキシ用ホームエージェント管理テーブル17の仮想プロキシ2のホームアドレスと気付けアドレスを含むレコードの削除の指示を送信する。仮想プロキシ2のホームアドレスに宛て送信された該削除指示は、仮想プロキシ2を管理する仮想プロキシ用ホームエージェント3に届き、仮想プロキシ用ホームエージェント管理テーブル17から該当のエントリが削除される。次に、処理がS28に進む。
仮想プロキシ2がホームリンクに接続している場合には(S26:YES)、仮想プロキシ2を管理する仮想プロキシ用ホームエージェント3の仮想プロキシ用ホームエージェント管理テーブル17には、仮想プロキシ2のレコードは存在しない。そのため、処理がS28に進む。
S28では、仮想プロキシ処理部13は、通信先登録テーブルから、仮想プロキシ2に該当するレコードを削除する。通信先登録テーブルから該当のレコードが削除されることによって、Replicaから移動端末4用の仮想プロキシ2が削除される。その後、図20A〜図20Dに示される処理が終了する。
図21は、図10のOP14の処理の後のReplica#1の通信先登録テーブルとセッション情報テーブルの例である。図10に示される例では、Replica#1が仮想プロキシ2を作成するため、仮想プロキシ2はホームリンクに接続する。また、図10に示される例では、移動端末4は、Replica#1の接続するリンクをホームリンクとすることが想定されている。そのため、図21に示される通信先登録テーブルのレコードには、「UEホームアドレス」,「仮想プロキシホームアドレス」の項目に値が格納されており、「UE気付けアドレス」,「仮想プロキシ気付けアドレス」の項目は値が格納されていない。
また、図10のOP14では、コンテンツの配信は始まっていないため、セッション情報テーブルのレコードの「現在コンテンツ位置」の項目の値は「0byte」である。
図22は、移動端末4からBUを受信した場合の仮想プロキシ処理部13の処理のフローチャートの一例を示す図である。図22に示されるフローチャートは、例えば、キャッシュサーバ1内の仮想プロキシ2宛てのBUを受信した場合に開始される。図10のOP21において、Replica#1が移動端末4からBU(図16A参照)を受信した場合にも、Replica#1において図22に示されるフローチャートが開始される。
S31では、仮想プロキシ処理部13は、受信パケット(BU)から送信元の移動端末4のホームアドレスを取り出す(図16A参照)。次に処理がS32に進む。
S32では、仮想プロキシ処理部13は、通信先登録テーブルの「UEホームアドレス」の項目をS31で取得した移動端末4のホームアドレスで検索する。通信先登録テーブルに、移動端末4のホームアドレスに「UEホームアドレス」の項目の値が合致するレコードが無い場合には(S33:NO)、該移動端末4とのセッションは存在しておらず、図22に示される処理が終了する。
移動端末4のホームアドレスに「UEホームアドレス」の項目の値が合致するレコードがある場合には(S33:YES)、受信パケット(BU)によって、他のリンクに該移動端末4が移動したことが通知されている。したがって、次のS34以降では、移動端末4とのセッションを維持する仮想プロキシ2を、移動端末4の移動先の近傍に位置するReplicaに移動させるための処理が行われる。以降、仮想プロキシ2の移動先となるReplicaを、移動端末4の移動に伴ってセッションごと移動させるので、ハンドオーバ先と称する。また、仮想プロキシ4の移動元のReplicaを、ハンドオーバ元と称する。
S34では、仮想プロキシ処理部13は、セッション情報テーブルの「UEホームアドレス」が移動端末4のホームアドレスに合致する全てのセッションを中断する。次に処理がS35に進む。
S35では、仮想プロキシ処理部13は、通信先登録テーブルの該当レコードの「UE気付アドレス」を受信パケット(BU)内の移動端末4の気付けアドレスで更新する。次に、処理がS36に進む。
S36では、仮想プロキシ処理部13は、移動端末4の移動先に最も近いReplicaを検索する。具体的には、仮想プロキシ処理部13は、受信パケット(BU)内の移動端末4の気付けアドレスでUE近傍Replica決定テーブルを検索し、移動端末4の移動先の近傍のReplicaを検出する。検出されたReplicaは、ハンドオーバ先のReplicaとなる。次に処理がS37に進む。
S37では、仮想プロキシ処理部13は、通信先登録テーブルとセッション情報テーブルの該当レコードをハンドオーバ先のReplicaに送信する。通信先登録テーブルとセッション情報テーブルの該当レコードは、「UEホームアドレス」が受信パケット(BU)内の移動端末4のホームアドレスに合致するレコードである。次に処理がS38に進む。S37の処理は、例えば、図10のOP23に相当する。
S38では、仮想プロキシ処理部13は、通信先登録テーブルとセッション情報テーブルの該当レコードを削除する。これによって、ハンドオーバ元となるReplicaから該当の仮想プロキシ2が削除される。その後、図22に示される処理が終了する。
図23は、他のReplicaより通信先登録テーブルとセッション情報テーブルとのレコードを受信した場合の、ハンドオーバ先のReplicaとしての、仮想プロキシ処理部13の処理のフローチャートの一例である。図23に示されるフローチャートは、他のReplicaより通信先登録テーブルとセッション情報テーブルとのレコードを受信した場合に開始される。図10のOP23において、Replica#2がReplica#1からセッションの情報を受信した場合にも、Replica#2において図23に示されるフローチャートが開始される。
S41では、仮想プロキシ処理部13は、ハンドオーバ元のReplicaから受信したレコードを、通信先登録テーブルとセッション情報テーブルとに登録する。これによって、仮想プロキシ2は、ハンドオーバ元からハンドオーバ先に移動完了する。次に処理がS42に進む。
S42では、仮想プロキシ2はフォーリンリンクに移動してきたことになるので、仮想プロキシ処理部13は、仮想プロキシ2の気付けアドレスを捕捉する。例えば、所定のDHCPサーバから仮想プロキシ2の気付けアドレスは取得される。次に処理がS43に進む。
S43では、仮想プロキシ処理部13は、通信先登録テーブルの該当レコードの「仮想プロキシ気付アドレス」の項目に、S42で取得した仮想プロキシ2の気付けアドレスを格納する。次に処理がS44に進む。
S44、S45では、仮想プロキシ2が新しく気付けアドレスを取得したので、仮想プロキシ2を管理する仮想プロキシ用ホームエージェント3と、通信相手の移動端末4とにBUを送信する。BUには、通信先登録テーブルの受信レコード内の仮想プロキシ2のホームアドレスと、S42で取得された仮想プロキシ2の気付けアドレスとの対応が格納される。
より具体的には、S44では、通信先登録テーブルの受信レコードの仮想プロキシ2の
ホームアドレスを宛先としてBUが仮想プロキシ2を管理する仮想プロキシ用ホームエージェント3に送信される。S44の処理は、例えば、図10のOP24に相当する。S45では、通信先登録テーブルの受信レコードの「UE気付けアドレス」が示すアドレスを宛先として通信相手の移動端末4にBUが送信される。S45の処理は、例えば、図10のOP25に相当する。次に処理がS46に進む。
S46では、仮想プロキシ処理部13は、セッション情報テーブルの受信レコードを用いて、移動端末4とのセッションを再開させ、コンテンツ配信を再開させる。例えば、セッション情報テーブルの該当レコードの「UEポート」を移動端末4側のポート番号として用い,「送信SQN」等の続きのシーケンス番号,「現在コンテンツ内位置」が示す位置の続きの位置から始まるコンテンツデータを用いることによって、移動端末4とのセッションが再開される。その後、図23に示される処理が終了する。
図24は、図10のOP23の処理の後の、Replica#1とReplica#2との通信先登録テーブルとセッション情報テーブルとの例である。Replica#1内の通信先登録テーブルとセッション情報テーブルとの該当レコードがReplica#2の通信先登録テーブルとセッション情報テーブルとにコピーされている。なお、この後、Replica#1から通信先登録テーブルとセッション情報テーブルとの該当レコードは削除される。
図25は、仮想プロキシ2よりBUを受信した場合の、仮想プロキシ用ホームエージェントとしての、仮想プロキシ用ホームエージェント処理部16の処理のフローチャートの一例である。図25に示されるフローチャートは、仮想プロキシ2よりBUを受信した場合に開始される。図10のOP24において、仮想プロキシ用ホームエージェント3がReplica#2内に移動した仮想プロキシ2からBU(図15参照)を受信した場合にも、仮想プロキシ用ホームエージェント3を備えるReplica#1において図25に示されるフローチャートが開始される。
S51では、仮想プロキシ用ホームエージェント処理部16は、受信パケット(BU)から送信元の仮想プロキシ2のホームアドレスと気付けアドレスとを取り出す(図15参照)。次に処理がS52に進む。
S52では、仮想プロキシ用ホームエージェント処理部16は、仮想プロキシ用ホームエージェント管理テーブル17の該当レコードが有る場合には、受信パケット(BU)から取り出した送信元の仮想プロキシ2の気付けアドレスで「仮想プロキシ気付けアドレス」の項目を更新する。仮想プロキシ用ホームエージェント管理テーブル17の該当レコードがない場合には、受信パケット(BU)から取り出した送信元の仮想プロキシ2のホームアドレスと気付けアドレスとを、「仮想プロキシホームアドレス」,「仮想プロキシ気付けアドレス」の項目に設定してレコードを追加する。その後、図25に示される処理が終了する。
図26は、図10のOP24の処理の後の、Replica#1とReplica#2との仮想プロキシ用ホームエージェント管理テーブル17の例である。図10のOP24において、Replica#1内の仮想プロキシ用ホームエージェント処理部16は、図25に示される処理を実行する。そのため、Replica#1内の仮想プロキシ用ホームエージェント管理テーブル17には、仮想プロキシ2のホームアドレス(仮想Proxy#x-HomeAddress)と、ハンドオーバ先の気付けアドレス(仮想Proxy#x-care of Address#2)とが格納されている。一方、Replica#2内の仮想プロキシ用ホームエージェント処理部16では、図25に示される処理が発生せず、初期状態のままである。
図27は、移動端末4からTCPパケットを受信した場合の、仮想プロキシ用ホームエージェント3としての、仮想プロキシ用ホームエージェント処理部16の処理のフローチャートの一例である。図27に示されるフローチャートは、移動端末4から、仮想プロキシ用ホームエージェント3が管理する仮想プロキシ2のホームアドレス宛てのTCPデータを受信した場合に開始される。図10のOP22において、仮想プロキシ用ホームエージェント3が他のリンクに移動した移動端末4からデータを受信した場合にも、仮想プロキシ用ホームエージェント3を備えるReplica#1において図27に示されるフローチャートが開始される。
S61では、仮想プロキシ用ホームエージェント処理部16は、受信パケット(TCPパケット)から仮想プロキシ2のホームアドレスを取り出す。仮想プロキシ2のホームアドレスは、受信パケット(TCPパケット)の宛先アドレスとして格納されている。次に処理がS62に進む。
S62では、仮想プロキシ用ホームエージェント処理部16は、受信パケットから取得した仮想プロキシ2のホームアドレスをキーとして、仮想プロキシ用ホームエージェント管理テーブル17の「仮想プロキシホームアドレス」の項目を検索する。受信パケットから取得した仮想プロキシ2のホームアドレスに「仮想プロキシホームアドレス」の項目の値が合致する仮想プロキシ用ホームエージェント管理テーブル17のレコードが有る場合には(S63:YES)、処理がS64に進む。受信パケットから取得した仮想プロキシ2のホームアドレスに「仮想プロキシホームアドレス」の項目の値が合致する仮想プロキシ用ホームエージェント管理テーブル17のレコードが無い場合には(S63:NO)、処理がS65に進む。
S64では、仮想プロキシ用ホームエージェント処理部16は、仮想プロキシ用ホームエージェント管理テーブル17の該当レコードの「仮想プロキシ気付けアドレス」の項目のアドレスに宛てて受信パケットを転送する。このとき、受信パケットはIPinIPでカプセル化される。S64の処理は、例えば、図10のOP26の処理に相当する。その後図27に示される処理が終了する。
なお、IPinIPでカプセル化されたパケットを仮想プロキシ2としてのReplicaが受信した場合には、該Replicaの仮想プロキシ処理部13は、受信パケットの非カプセル化を行ってから、例えば、図20A〜図20Dと同様の処理を行う。
S65では、仮想プロキシ用ホームエージェント処理部16は、受信パケットの転送先となる仮想プロキシ2の気付けアドレスを知らないので、受信パケットをバッファに一時保持する。その後図27に示される処理が終了する。なお、バッファに一時保持されたTCPパケットは、例えば、仮想プロキシ2からのBUによって仮想プロキシ2の気付けアドレスが通知された場合に、仮想プロキシ2にIPinIPトンネルで転送される。
<第1実施形態の作用及び効果>
第1実施形態では、移動端末の移動に対応させて、該移動端末がセッションを確立している仮想プロキシも移動端末の移動先の近くのキャッシュサーバ1に移動させる。これによって、移動端末と仮想プロキシ間のコンテンツ配信システムのネットワーク内を流れるトラフィック量の増加を抑えることができる。これによって、コンテンツ配信システムのネットワーク内の負荷を軽減することができる。
また、仮想プロキシの移動の際には、移動端末との間に確立中のセッションに関する情報も併せて移動先のキャッシュサーバ1に通知されるので、移動元からのセッションを継続させることができる。これは、移動端末のユーザにとっては、コンテンツ配信を継続さ
せるためのいずれの操作も行うことなく、移動端末の移動の前後で継続してコンテンツを受信でき、利便性が高い。
また、第1実施形態では、移動端末とReplica間の通信はモバイルIPに則っており、既存のモバイルIPを活用することができる。
<第2実施形態>
第2実施形態では、仮想プロキシ2のホームアドレス及び気付けアドレスにキャッシュサーバ1のアドレスを用いることで、アドレス削減を行う。第2実施形態において、第1実施形態と共通する説明は省略される。
第2実施形態では、キャッシュサーバ1のハードウェア構成及び機能ブロックは、第1実施形態と共通であり、図4,図5に示される通りである。
(データ構造)
第2実施形態では、仮想プロキシ2のホームアドレス及び気付けアドレスにキャッシュサーバ1のアドレスを用いるため、第1実施形態と、テーブルのデータ構造が異なる。
図28は、第2実施形態に係る通信先登録テーブルの例である。第2実施形態では、通信先登録テーブルのレコードは、「UEホームアドレス」,「UE気付けアドレス」,「仮想プロキシホームアドレス」の項目を有する。第2実施形態では、仮想プロキシ2の気付けアドレスはReplicaのアドレスが用いられ、ReplicaのアドレスはReplica自身が認識済みのためである。
また、第2実施形態では、仮想プロキシ2のホームアドレスは、Replicaのアドレスが用いられるため、通信先登録テーブルのレコードの「仮想プロキシホームアドレス」のアドレスによって、該仮想プロキシ2の作成元のReplicaを識別可能である。
図28に示される通信先登録テーブルが図3のコンテンツ配信システム100内のReplica#1のものである。「仮想プロキシホームアドレス」がReplica#1のアドレス(Replica#1-Address)であるレコードの仮想プロキシ2は、Replica#
1によって作成されたものであり、ホームリンクに接続している。
「仮想プロキシホームアドレス」がReplica#2のアドレス(Replica#2-Address)であるレコードの仮想プロキシ2は、Replica#2によって作成されたもので
あり、フォーリンリンクに接続している。該レコードの仮想プロキシ2の気付けアドレスは、Replica#1のアドレス(Replica#1-Address)となる。
図29は、第2実施形態に係る仮想プロキシ用ホームエージェント管理テーブル17の例である。第1実施形態では、仮想プロキシ用ホームエージェント3は、フォーリンリンクに接続する仮想プロキシ2をホームアドレスと気付けアドレスとで識別していた。しかしながら、第2実施形態では、仮想プロキシ2のホームアドレスは、Replicaのアドレスとなるため、ホームアドレスと気付けアドレスとでは仮想プロキシ2を識別できない。したがって、第2実施形態では、仮想プロキシ用ホームエージェント3は、フォーリンリンクに接続する仮想プロキシ2を通信相手の移動端末のホームアドレスと仮想プロキシ2の気付けアドレスとで識別する。
したがって、第2実施形態では、仮想プロキシ用ホームエージェント管理テーブル17のレコードの項目は、「UEホームアドレス」と「仮想プロキシ気付けアドレス」とになる。
(処理の流れ)
図30は、第2実施形態に係るコンテンツ配信システム100における処理のシーケンスの一例を示す図である。図30では、第1実施形態の図10と同様に、図3に示されるコンテンツ配信ネットワークにおいて、移動端末4とReplica#1との通信セッションの確立から、移動端末4の移動及びそれに伴う仮想プロキシ2の移動完了までのシーケンスが示される。図30に示される例の前提は、図10に示される例と同じである。
図10に示される第1実施形態のシーケンスと比較すると、図30に示される第2実施形態のシーケンスには、HTTPゲットメッセージに対してHTTPリダイレクトメッセージを返信する処理(図10のOP11、OP12)が無い。これは、第2実施形態では、Replicaのアドレスが仮想プロキシ2のホームアドレスとして用いられるためである。
OP31において移動端末4から送信されるHTTPゲットメッセージの宛先は、Replica#1のアドレスである。これは、OP31に先立って、移動端末4が所定のDNSサーバからReplica#1のアドレスを取得しているためである(図30では省略)。このHTTPゲットメッセージを受信すると、Replica#1内では、移動端末4とセッションを確立する仮想プロキシ2が作成される。この仮想プロキシ2のホームアドレスは、Replica#1のアドレスであり、HTTPゲットメッセージの宛先と一致する。そのため、OP32では、Replica#1は、移動端末4に仮想プロキシ2のホームアドレスを通知するためのHTTPリダイレクトを送信せずに、HTTPゲットメッセージの応答メッセージ(HTTP 200 OK)を移動端末4に送信する。
OP33以降は、図10のOP15以降と同様のシーケンスとなる。そのため、OP33以降の処理の説明は省略される。
(パケットの例)
図30に示されるシーケンスの例の流れにしたがって、送受信されるパケットの例について説明する。なお、第1実施形態と共通するパケットについては、説明を省略する。
図31は、図30のOP31において、移動端末4からReplica#1のアドレスに宛てて送信されるHTTPゲットメッセージの例である。HTTPゲットメッセージの宛先アドレスは、Replica#1のアドレス(Replica#1-Address)である。図30
のシーケンスのOP31において、移動端末4は、Replica#1の接続するリンクをホームリンクとする。したがって、図31に示される例のHTTPゲットメッセージの送信元アドレスは、移動端末4のホームアドレス(UE#x-HomeAddress)である。
図32は、図30のOP32において、Replica#1から移動端末4に送信されるHTTPゲットメッセージの応答メッセージ(HTTP 200 OK)のパケットの例を示す図である。図32に示される例のHTTPゲットメッセージの応答メッセージの送信元アドレスは、Replica#1内の仮想プロキシ2のホームアドレス、すなわち、Replica#1のアドレス(Replica#1-Address)である。また、宛先アドレスは
移動端末4のホームアドレス(UE#x-HomeAddress)である。
図30のOP36において、移動端末4から端末用ホームエージェント5に送信されるBUのパケットは、例えば、図10のOP18において移動端末4から端末用ホームエージェント5に送信されるBUパケットと同様である(図15参照)。
図33Aは、図30のOP39において、移動端末4からセッション確立中のRepl
ica#1内の仮想プロキシ2に送信されるBUのパケットの例を示す図である。図30のOP39では、移動端末4はフォーリンリンクに移動しており、移動先のリンクで気付けアドレスを取得している。したがって、図33Aに示されるBU内のIPモバイルヘッダ内の「care of address」フィールドには、移動先リンクで取得された移動端末4の気
付けアドレス(UE#x-care of Address#2)が格納される。また、BUの送信元アドレスも、移動先のリンクの移動端末4の気付けアドレス(UE#x-care of Address#2)が格納されている。BUの宛先アドレスは、Replica#1内の仮想プロキシ2のホームアドレス、すなわち、Replica#1のアドレス(Replica#1-Address)である。なお、図
33Aに示される例は、Replica#1内の仮想プロキシ2が、Replica#1の接続するリンクをホームリンクとする場合の例である。
図33Bは、図30のOP39において、移動端末4からセッション確立中のReplica#1内の仮想プロキシ2に送信されるBUのパケットの例を示す図である。ただし、図33Bに示される例は、Replica#1内の移動端末4とセッションを確立している仮想プロキシ2が、Replica#1の接続するリンクをフォーリンリンクとする場合の例である。そのため、図33Bに示されるBUの宛先アドレスが、Replica#1内の仮想プロキシ2の気付けアドレスとなっている。なお、第2実施形態では、仮想プロキシ2の気付けアドレスもReplicaのアドレスが用いられるので、Replica#1内の仮想プロキシ2の気付けアドレスは、Replica#1のアドレス(Replica#1-Address)となる。
図34は、図30のOP42において、Replica#2内の仮想プロキシ2から仮想プロキシ用ホームエージェント3に送信されるBUのパケットの例を示す図である。図30のOP42では、移動端末4も仮想プロキシ2もReplica#2の接続するリンクに移動完了している。このときのBUは、ペイロード部に、移動端末4のホームアドレス(UE#x-HomeAddress)と、仮想プロキシ2の移動先のリンクで取得された気付けアドレス、すなわち、Replica#2のアドレス(Replica#2-Address)とを含む。
また、図34に示されるBUの宛先アドレスは、Replica#1からReplica#2内に移動した仮想プロキシ2のホームアドレス、すなわち、Replica#1のアドレス(Replica#1-Address)である。また、BUの送信元アドレスは、Replic
a#1からReplica#2内に移動した仮想プロキシ2の気付けアドレス、すなわち、Replica#2のアドレス(Replica#2-Address)である。
図35は、図30のOP43において、Replica#2内の仮想プロキシ2から移動端末4に送信されるBUのパケットの例を示す図である。図35に示されるBUのIPモバイルヘッダ内の「care of address」のフィールドには、移動先リンクで取得された
Replica#2内の仮想プロキシ2の気付けアドレス、すなわち、Replica#2のアドレス(Replica#2-Address)が格納される。また、BUの送信元アドレスも、移
動先のリンクで取得されたReplica#2内の仮想プロキシ2の気付けアドレス、すなわち、Replica#2のアドレス(Replica#2-Address)が格納されている。BU
の宛先アドレスは、移動先のリンクで取得された移動端末4の気付けアドレス(UE#x-care of Address#2)である。
図36は、図30のOP44において、仮想プロキシ用ホームエージェント3からReplica#2内の仮想プロキシ2に送信されるIPinIPパケットの例を示す図である。図36に示されるパケットのIPinIPパケットヘッダの宛先アドレスは、Replica#2内の仮想プロキシ2の気付けアドレス、すなわち、Replica#2のアドレス(Replica#2-Address)である。IPinIPパケットヘッダの送信元アドレスは
、Replica#2内の仮想プロキシ2を管理する仮想プロキシ用ホームエージェント
3のアドレス、すなわち、仮想プロキシ2のホームアドレスでありReplica#1のアドレス(Replica#1-Address)である。
オリジナルパケットの宛先アドレスは、Replica#2内の仮想プロキシ2のホームアドレス、すなわち、Replica#1のアドレス(Replica#1-Address)である。
オリジナルのパケット部分の送信元アドレスは、移動端末4の移動先のリンクで取得された気付けアドレス(UE#x-care of Address#2)である。
(内部処理)
次に、図30に示されるシーケンスの例の流れにしたがって、キャッシュサーバ1の内部処理のフローについて説明する。
図37は、Replicaのアドレス宛てのコンテンツ要求を受信した場合の、仮想プロキシ処理部13の処理のフローチャートの一例である。図37に示されるフローチャートは、例えば、図30のOP31において、プロキシ処理部13がReplica#1のアドレス宛てのコンテンツ要求(図31参照)を受信するとReplica#1において開始される。
S71では、仮想プロキシ処理部13は、受信パケットから、移動端末4のホームアドレスを取り出す。受信パケットの「HomeAddress」のフィールドにアドレスが格納されている場合には、仮想プロキシ処理部13は、該アドレスを移動端末4のホームアドレスとして取り出す。受信パケットの「HomeAddress」のフィールドにアドレスが格納されていない場合には、仮想プロキシ処理部13は、送信元アドレスを移動端末4のホームアドレスとして取り出す。
S72では、仮想プロキシ処理部13は、S71で受信パケットから取り出した移動端末4のホームアドレスをキーとして、通信先登録テーブルの「UEホームアドレス」の項目を検索する。
通信先登録テーブルに、S71で受信パケットから取り出された移動端末4のホームアドレスに合致するレコードがある場合には(S73:YES)、処理が図20AのS14に進む。通信先登録テーブルに、S71で受信パケットから取り出された移動端末4のホームアドレスに合致するレコードがない場合には(S73:NO)、処理がS74に進む。
S74では、仮想プロキシ処理部13は、受信パケットが接続要求(TCP SYNパケット)であるか否かを判定する。受信パケットが接続要求である場合には(S74:YES)、処理がS75に進む。受信パケットが接続要求でない場合には(S74:NO)、セッション情報テーブルに該当のレコードがなく、セッションが確立していないため、図37に示される処理が終了する。
S75では、仮想プロキシ処理部13は、通信先登録テーブルにレコードを追加する。このとき追加されるレコードの、「UEホームアドレス」,「仮想プロキシホームアドレス」には、それぞれ、S71で取り出された移動端末4のホームアドレス,Replicaのアドレスが格納される。移動端末4がReplicaの接続するリンクをフォーリンリンクとする場合には、追加されるレコードの「UE気付けアドレス」には、受信パケットに含まれる移動端末4の気付けアドレスが格納される。その後、処理が図20BのS18に進む。
以降は、図20BのS18以降の処理と同様に、セッション情報テーブルにレコードが
追加され、受信パケット(接続要求)の送信元の移動端末4に、応答が送信される。
図30のOP39において、移動端末4から移動先で取得された気付けアドレスを通知するBUをReplica#1が受信した場合のReplica#1の処理は、第1実施形態と同様である(図22参照)。したがって、図30のOP39において、Replica#1における内部処理の詳細な説明は省略される。
図38は、他のReplicaより通信先登録テーブルとセッション情報テーブルとのレコードを受信した場合の、ハンドオーバ先のReplicaとしての、仮想プロキシ処理部13の処理のフローチャートの一例である。図38に示されるフローチャートは、他のReplicaより通信先登録テーブルとセッション情報テーブルとのレコードを受信した場合に開始される。図30のOP41において、Replica#2がReplica#1からセッションの情報を受信した場合にも、Replica#2において図38に示されるフローチャートが開始される。
第1実施形態において対応する図23に示されるフローチャートと比較すると、図38に示されるフローチャートには、仮想プロキシ2の気付けアドレスを捕捉する処理(図23、S42)と、捕捉した仮想プロキシ2の気付けアドレスを通信先登録テーブルの該当レコードの「仮想プロキシ気付けアドレス」の項目に設定する処理(図23、S43)と、の処理がない。これは、第2実施形態では、仮想プロキシ2の気付けアドレスはReplicaのアドレスとすることが前提となっているからである。
図38のS81〜S84の処理は、それぞれ、図23のS41,S44〜S46の処理と同様である。したがって、図38のS81〜S84の処理の詳細の説明は省略される。
図39は、仮想プロキシ2よりBUを受信した場合の、仮想プロキシ用ホームエージェント3としての、仮想プロキシ用ホームエージェント処理部16の処理のフローチャートの一例である。図39に示されるフローチャートは、仮想プロキシ2よりBUを受信した場合に開始される。図30のOP42において、仮想プロキシ用ホームエージェント3がReplica#2内に移動した仮想プロキシ2からBU(図34参照)を受信した場合にも、仮想プロキシ用ホームエージェント3を備えるReplica#1において図39に示されるフローチャートが開始される。
S91では、仮想プロキシ用ホームエージェント処理部16は、受信パケット(BU)から移動端末4のホームアドレスとReplica#2に移動した仮想プロキシ2の気付けアドレスとを取り出す(図34参照)。次に処理がS92に進む。
S92では、仮想プロキシ用ホームエージェント処理部16は、仮想プロキシ用ホームエージェント管理テーブル17の該当エントリが有る場合には、受信パケット(BU)から取り出した仮想プロキシ2の気付けアドレスで「仮想プロキシ気付けアドレス」の項目を更新する。仮想プロキシ用ホームエージェント管理テーブル17の該当エントリがない場合には、受信パケット(BU)から取り出した移動端末4のホームアドレスと、仮想プロキシ2の気付けアドレスと、を、「UEホームアドレス」,「仮想プロキシ気付けアドレス」の項目に設定してレコードを追加する。その後、図39に示される処理が終了する。
図40は、移動端末4からTCPパケットを受信した場合の、仮想プロキシ用ホームエージェント3としての、仮想プロキシ用ホームエージェント処理部16の処理のフローチャートの一例である。図40に示されるフローチャートは、移動端末4から、仮想プロキシ用ホームエージェント3が管理する仮想プロキシ2のホームアドレス宛てのTCPパケットを受信した場合に開始される。図30のOP40において、仮想プロキシ用ホームエージェント3が他のリンクに移動した移動端末4からデータを受信した場合にも、仮想プロキシ用ホームエージェント3を備えるReplica#1において図40に示されるフローチャートが開始される。
S101では、仮想プロキシ用ホームエージェント処理部16は、受信パケット(TCPパケット)から送信元の移動端末4のホームアドレスを取り出す(図11A、図11B参照)。次に処理がS102に進む。
S102では、仮想プロキシ用ホームエージェント処理部16は、受信パケットから取得した移動端末4のホームアドレスをキーとして、仮想プロキシ用ホームエージェント管理テーブル17の「UEホームアドレス」の項目を検索する。受信パケットから取得した移動端末4のホームアドレスに「UEホームアドレス」の項目の値が合致する仮想プロキシ用ホームエージェント管理テーブル17のレコードが有る場合には(S103:YES)、処理がS104に進む。受信パケットから取得した移動端末4のホームアドレスに「UEホームアドレス」の項目の値が合致する仮想プロキシ用ホームエージェント管理テーブル17のレコードが無い場合には(S103:NO)、処理がS105に進む。
S104では、仮想プロキシ用ホームエージェント処理部16は、仮想プロキシ用ホームエージェント管理テーブル17の該当レコードの「仮想プロキシ気付けアドレス」の項目のアドレスに宛てて受信パケットを転送する。このとき、受信パケットはIPinIPでカプセル化される。S104の処理は、例えば、図30のOP44の処理に相当する。その後図40に示される処理が終了する。
なお、IPinIPでカプセル化されたパケットを仮想プロキシ2としてのReplicaが受信した場合には、該Replicaの仮想プロキシ処理部13は、受信パケットの非カプセル化を行ってから、例えば、図37と同様の処理を行う。
S105では、仮想プロキシ用ホームエージェント処理部16は、受信パケットの転送先となる仮想プロキシ2の気付けアドレスを知らないので、受信パケットをバッファに一時保持する。その後図40に示される処理が終了する。
<第2実施形態の作用及び効果>
第2実施形態では、仮想プロキシ2のホームアドレスおよび気付けアドレスをReplicaのアドレスにすることによって、仮想プロキシ2に対して払い出されるアドレスを削減することができる。
また、仮想プロキシ2のホームアドレスおよび気付けアドレスをReplicaのアドレスにすることによって、例えば、第1実施形態の図19のS10のような仮想プロキシ2のホームアドレスを捕捉するための処理や、図23のS42のような仮想プロキシの気付けアドレスを捕捉するための処理がなくなり、Replicaにかかる処理負荷が軽減される。
また、第2実施形態では、図30のOP31,OP32のように、移動端末4からのHTTPゲットメッセージに対してHTTPリダイレクトを返信する処理が行われなくなり、装置間の通信手順を減らすことができ、効率がよい。
<第3実施形態>
第3実施形態では、仮想プロキシ2のホームアドレスとして、コンテンツ配信システム100で1つの代表ホームアドレスを用いる。これによって、コンテンツ配信システム1
00内で仮想プロキシ2のホームアドレスに払い出されるアドレスは1つとなり、アドレスを削減することができる。なお、仮想プロキシ2の気付けアドレスには、第2実施形態と同様に、Replicaのアドレスが用いられる。第3実施形態において、第1実施形態及び第2実施形態と共通する説明は省略される。
第3実施形態では、キャッシュサーバ1のハードウェア構成及び機能ブロックは、第1実施形態と共通であり、図4,図5に示される通りである。
(データ構造)
第3実施形態では、キャッシュサーバ1の通信先登録テーブル,セション情報テーブル,仮想プロキシ用ホームエージェント管理テーブル17のデータ構造は、第2実施形態と同様である。
図41は、第3実施形態に係る通信先登録テーブルの例である。第3実施形態では、第2実施形態と同様に、通信先登録テーブルのレコードは、「UEホームアドレス」,「UE気付けアドレス」,「仮想プロキシホームアドレス」の項目を有する。
第3実施形態では、仮想プロキシ2のホームアドレスには、コンテンツ配信システム100で1つの代表ホームアドレスが用いられるため、通信先登録テーブルのレコードの「仮想プロキシホームアドレス」には、いずれのレコードにも代表ホームアドレス(Replica#represent-Address)が格納されている。
なお、仮想プロキシ2の代表ホームアドレスには、コンテンツ配信システム100内のいずれのReplicaのアドレスとも重複しないアドレスが用いられてもよいし、いずれかのReplicaのアドレスが用いられてもよい。
(処理の流れ)
図42は、第3実施形態に係るコンテンツ配信システム100における処理のシーケンスの一例を示す図である。図42では、第1実施形態の図10、第2実施形態の図30と同様に、図3に示されるコンテンツ配信ネットワークにおいて、移動端末4とReplica#1との通信セッションの確立から、移動端末4の移動及びそれに伴う仮想プロキシ2の移動完了までのシーケンスが示される。なお、図42において、移動端末4は、Replica#1をホームリンクとすることを想定する。
OP51では、移動端末4は、代表ホームアドレス宛てにTCP SYNパケットを送信する。このパケットは、仮想プロキシを管理する仮想プロキシ用ホームエージェント3に届けられる。
OP52では、仮想プロキシ用ホームエージェント3は、受信したパケットから送信元の移動端末4の気付けアドレスを取得して、移動端末4の近傍のReplica#1を検出し、Replica#1に受信したTCP SYNパケットを転送する。なお、図42では、OP51の時点では、ホームリンクに接続しているため、気付けアドレスを持たない。そのため、気付けアドレスではなくホームアドレスが受信パケットから取り出される。
また、図42では、図3に示されるコンテンツ配信システム100を想定しており、仮想プロキシ用ホームエージェント3はReplica#1内に存在しているため、OP52の通信は、実際にはReplica#1の内部処理となる。仮想プロキシ用ホームエージェント3の存在するReplica#1とは異なるReplicaに転送する場合には、パケットは、IPinIPカプセル化される。
OP53では、Replica#1では、仮想プロキシ用ホームエージェント3からTCP SYNパケットを受信することによって、仮想プロキシ2が移動してきたとみなし、通信相手となる移動端末4にBUを送信する。
例えば、代表ホームアドレスがReplica#1のアドレスである場合には、仮想プロキシ2の移動先はホームリンクになるので、BUには仮想プロキシ2の気付けアドレスは含まれない。例えば、代表ホームアドレスがReplica#1のアドレスとは異なるアドレスである場合には、仮想プロキシ2の移動先はフォーリンリンクになるので、BUには仮想プロキシ2の気付けアドレスが含まれる。なお、この場合の仮想プロキシ2の気付けアドレスはReplica#1のアドレスとなる。
OP54では、Replica#1内の仮想プロキシ2は、移動端末4にTCP ACKを送信する。これによって、移動端末4と仮想プロキシ2としてのReplica#1との間の通信セッションが確立する。
OP55では、移動端末4は、BUによって通知された仮想プロキシ2のホームアドレス又は気付けアドレスを宛先アドレスとして、HTTPゲットメッセージを送信する。このHTTPゲットメッセージは、Replica#1に届く。BUに気付けアドレスが含まれている場合には、仮想プロキシ2の気付けアドレスがHTTPゲットメッセージの宛先となる。BUに気付けアドレスが含まれていない場合には、仮想プロキシ2のホームアドレスがHTTPゲットメッセージの宛先となる。
OP56以降は、図10のOP14以降と同様のシーケンスとなる。そのため、OP56以降の処理の説明は省略される。
(パケットの例)
図42に示されるシーケンスの各処理でやり取りされるパケットは、第2実施形態で説明されたパケット(図31〜図36参照)のホームアドレスを代表ホームアドレスに置換したものとなる。そのため、詳細な説明は省略する。
(内部処理)
図43は、移動端末4からTCPパケットを受信した場合の、仮想プロキシ用ホームエージェント3としての、仮想プロキシ用ホームエージェント処理部16の処理のフローチャートの一例である。図43に示されるフローチャートは、移動端末4から、仮想プロキシ用ホームエージェント3が管理する仮想プロキシ2のホームアドレス(代表ホームアドレス)宛てのTCPデータを受信した場合に開始される。図42のOP51、OP64において、仮想プロキシ用ホームエージェント3が移動端末4からデータを受信した場合にも、仮想プロキシ用ホームエージェント3を備えるReplica#1において図42に示されるフローチャートが開始される。
S111では、仮想プロキシ用ホームエージェント処理部16は、受信パケット(TCPパケット)から送信元の移動端末4のホームアドレスを取り出す。移動端末4のホームアドレスは、受信パケット(TCPパケット)の送信元アドレス又はペイロード部に格納されている(図11A、図11B参照)。次に処理がS112に進む。
S112では、仮想プロキシ用ホームエージェント処理部16は、受信パケットから取得した移動端末4のホームアドレスをキーとして、仮想プロキシ用ホームエージェント管理テーブル17の「UEホームアドレス」の項目を検索する。受信パケットから取得した移動端末4のホームアドレスに「UEホームアドレス」の項目の値が合致する仮想プロキ
シ用ホームエージェント管理テーブル17のレコードが有る場合には(S113:YES)、処理がS117に進む。受信パケットから取得した移動端末4のホームアドレスに「UEホームアドレス」の項目の値が合致する仮想プロキシ用ホームエージェント管理テーブル17のレコードが無い場合には(S113:NO)、処理がS114に進む。
S114では、仮想プロキシ用ホームエージェント処理部16は、受信パケット(TCPパケット)から送信元の移動端末4の気付けアドレスを取り出す。移動端末4の気付けアドレスは、受信パケットの送信元アドレスに格納されている。次に処理がS115に進む。
S115では、仮想プロキシ用ホームエージェント処理部16は、移動端末4の近傍のReplicaを検索し、仮想プロキシ2の気付けアドレスを決定する。具体的には、仮想プロキシ用ホームエージェント処理部16は、S114で取得した移動端末4の気付けアドレスを用いてUE近傍Replica決定テーブルを検索し、移動端末4に最も近いReplicaを決定する。検出されたReplicaのアドレスが仮想プロキシ2の気
付けアドレスとなる。次に処理がS37に進む。
S116では、仮想プロキシ用ホームエージェント処理部16は、仮想プロキシ用ホームエージェント管理テーブル17に、受信パケット(TCPパケット)から取り出した移動端末4のホームアドレスと、S115において決定した仮想プロキシ2の気付けアドレスと、を、「UEホームアドレス」,「仮想プロキシ気付けアドレス」の項目に設定してレコードを追加する。その後、処理がS117に進む。
S117では、仮想プロキシ用ホームエージェント処理部16は、仮想プロキシ用ホームエージェント管理テーブル17の該当レコードの「仮想プロキシ気付けアドレス」の項目のアドレスに宛てて受信パケットを転送する。このとき、受信パケットはIPinIPでカプセル化される。S117の処理は、例えば、図42のOP68の処理に相当する。その後、図43に示される処理が終了する。
図44は、仮想プロキシ用ホームエージェント3からTCPパケットを受信した場合の、仮想プロキシ処理部13の処理のフローチャートの一例である。図44に示されるフローチャートは、例えば、プロキシ処理部13が、IPinIPカプセル化されたTCPパケットを仮想プロキシ用ホームエージェント3から受信すると開始される。例えば、図43において、仮想プロキシ用ホームエージェント3がReplica#1以外の装置内に存在していると想定した場合、OP52において、Replica#1が仮想プロキシ用ホームエージェント3からTCPパケットを受信した場合にも、Replica#1において図44に示されるフローチャートが開始される。
S121では、仮想プロキシ処理部13は、受信パケットのIPinIPカプセルを外す。次に処理がS122に進む。
S122では、仮想プロキシ処理部13は、受信パケットから、送信元の移動端末4のホームアドレスを取り出す。次に処理がS123に進む。
S123では、仮想プロキシ処理部13は、S122で受信パケットから取り出した移動端末4のホームアドレスをキーとして、通信先登録テーブルの「UEホームアドレス」の項目を検索する。S122で受信パケットから取り出した移動端末4のホームアドレスに合致するレコードが通信先登録テーブルにない場合には(S124:NO)、処理がS125に進む。S122で受信パケットから取り出した移動端末4のホームアドレスに合致するレコードが通信先登録テーブルにある場合には(S124:YES)、処理が図2
0AのS14に進む。図20AのS14以降の処理については、上述の通りであるため、説明を省略する。
S125では、仮想プロキシ処理部13は、受信パケットが接続要求であるか否かを判定する。接続要求には、例えば、TCP SYNパケットがある。受信パケットが接続要求である場合には(S125:YES)、処理がS126に進む。受信パケットが接続要求でない場合には(S125:NO)、通信先登録テーブルにレコードが無く、該受信パケットの送信元とのセッションは確立していないため、受信パケットについて処理は行われず、例えば、受信パケットは廃棄される。その後、図44に示される処理が終了する。
S126では、仮想プロキシ処理部13は、通信先登録テーブルにレコードを追加する。追加されるレコードの「UEホームアドレス」,「UE気付けアドレス」,「仮想プロキシホームアドレス」は、それぞれ、S122で取得した移動端末4のホームアドレス,受信パケットから取得される移動端末4の気付けアドレス,仮想プロキシ2のホームアドレス(代表ホームアドレス)である。通信先登録テーブルにレコードが追加されることによって、仮想プロキシ2が当該Replicaに移動してきたことなる。なお、移動端末4の気付けアドレスは、移動端末4がホームリンクに接続している場合には存在しない。次に処理がS127に進む。
S127では、仮想プロキシ2が移動してきたので、通信相手の移動端末4にBUを送信する。BUに含まれる仮想プロキシ2のホームアドレスは代表ホームアドレス、気付けアドレスは当該Replicaのアドレスとなる。その後、図44に示される処理が終了する。
第3実施形態では、仮想プロキシ2のホームアドレスは代表ホームアドレス、気付けアドレスはReplicaのアドレスである。そのため、S126において仮想プロキシ2のホームアドレスを捕捉する処理、S127において仮想プロキシ2の気付けアドレスを捕捉する処理は、行われない。
図43、図44に示される以外のキャッシュサーバの内部処理については、第2実施形態と共通するため、説明を省略する。
<第3実施形態の作用及び効果>
第3実施形態では、仮想プロキシ2のホームアドレスに代表ホームアドレスを用いるため、コンテンツ配信システム100内で仮想プロキシ2のホームアドレスは1つとなる。したがって、第3実施形態によれば、使用されるアドレスを削減することができる。