(57)【要約】【課題】アクティブキャッシュ動作のためのデータ取得を、ネットワークの輻輳状態を悪化させることなく、アクティブキャッシュ動作を従来より高い確率で実行させること。【解決手段】本発明の中継サーバ１０１の、一時的にアクティブキャッシュのデータを記憶しておく記憶部１１０とデータの中継を行う中継制御部１０８と中継経路の負荷情報を収集するネットワーク情報収集部１０７とによって、キャッシュサーバとＷｅｂサーバ間、あるいはキャッシュサーバ間の経路上の一部に輻輳が生じている場合でも，ネットワークの負荷の低い経路を使って輻輳している手前までのデータの中継転送が可能である。このため、キャッシュサーバとＷｅｂサーバ間、あるいはキャッシュサーバ間のリンク上の全ての輻輳が同時に解消しなくても、輻輳が生じていない区間を利用して、データの中継転送が可能となる。【特許請求の範囲】
【請求項１】
ネットワークにおけるデータ中継機であって、次段に接続された１以上のデータ中継機にネットワークから取得したデータをフォワーディングする中継制御手段を有し、
前記中継制御手段はフォワーディングが可能となるまで記憶手段にデータを記憶し、前記記憶手段にデータを記憶するスペースがない場合、前記記憶手段に記憶されているデータから有効期限切れのデータを消去することにより前記スペースを確保することを特徴とするデータ中継機。
【請求項２】
前記記憶手段にデータを記憶するスペースがない場合、前記記憶手段に記憶されているデータから古い順にデータを消去することにより前記スペースを確保することを特徴とする請求項１に記載のデータ中継機。
【請求項３】
前記中継制御手段は次段に接続されたいずれか１つのデータ中継機へのフォワードが可能ならばデータをフォワードすることを特徴とする請求項１又は２に記載のデータ中継機。
【請求項４】
前記データ中継機はさらに中継経路上のネットワークの負荷情報を収集するネットワーク負荷情報収集手段を有し、前記中継制御手段は次段のデータ中継機へのネットワーク負荷が設定された閾値未満または以下になると前記ネットワークから取得したデータを次段のデータ中継機にフォワードすることを特徴とする請求項１、２又は３に記載のデータ中継機。
【請求項５】
前記閾値はデータのコンテンツサイズおよび前記ネットワークの負荷情報、またはデータの有効期限および前記ネットワークの負荷情報に基づいて変えることを特徴とする請求項４に記載のデータ中継機。
【請求項６】
前記中継制御手段はデータをフォワーディングする次段のデータ中継機を当該データ中継機に対応付けられた優先度に基づいて判定することを特徴とする請求項１、２、３、４又は５に記載のデータ中継機。
【請求項７】
前記中継制御手段は、有効期限が過ぎたデータはフォワーディングせずに破棄あるいは中継せずに最終宛先に通知することを特徴とする請求項１、２、３、４、５又は６に記載のデータ中継機。
【請求項８】
次段に接続された１以上のデータ中継機にネットワークから取得したデータをフォワーディングするデータ中継機におけるデータ中継方法であって、
フォワーディングが可能な次段のデータ中継機を調べるステップと、
次段のデータ中継機へのフォワーディングが可能となるまでデータを記憶手段に記憶するステップと、
前記記憶手段に前記ネットワークから取得したデータを記憶するスペースがない場合、前記記憶手段に記憶されているデータから有効期限切れのデータを消去することにより前記スペースを確保するステップと、
フォワーディングが可能となった次段のデータ中継機にデータをフォワーディングするステップと、
を含むことを特徴とするデータ中継方法。
【請求項９】
次段に接続された１以上のデータ中継機にネットワークから取得したデータをフォワーディングするデータ中継機におけるデータ中継方法であって、
フォワーディングが可能な次段のデータ中継機を調べるステップと、
次段のデータ中継機の中でフォワーディングが可能なデータ中継機が無いときはデータを記憶手段に記憶するステップと、
前記記憶手段に前記ネットワークから取得したデータを記憶するスペースがない場合、前記記憶手段に記憶されているデータから有効期限切れのデータを消去することにより前記スペースを確保するステップと、
フォワーディングが可能となった次段のデータ中継機にデータをフォワーディングするステップとを含むことを特徴とするデータ中継方法。
【請求項１０】
前記記憶手段に前記ネットワークから取得したデータを記憶するスペースがない場合、前記記憶手段に記憶されているデータから古い順にデータを消去することにより前記スペースを確保することを特徴とする請求項８又は９に記載のデータ中継方法。
【請求項１１】
中継経路上のネットワークの負荷情報を収集するステップを有し、
前記フォワーディングが可能な次段のデータ中継機を調べるステップは、次段のデータ中継機へのネットワーク負荷が設定された閾値未満または以下になった次段のデータ中継機へのフォワードが可能と判定することを特徴とする請求項８、９又は１０に記載のデータ中継方法。
【請求項１２】
前記閾値はデータのコンテンツサイズおよび前記ネットワークの負荷情報、またはデータの有効期限および前記ネットワークの負荷情報に基づいて変えることを特徴とする請求項１１に記載のデータ中継方法。
【請求項１３】
データをフォワーディングする次段のデータ中継機をデータ中継機に対応付けられた優先度に基づいて判定するステップを含むことを特徴とする請求項８、９、１０、１１又は１２に記載のデータ中継方法。
【請求項１４】
前記データをフォワーディングするステップにおいて、有効期限が過ぎたデータはフォワーディングせずに破棄あるいは中継せずに最終宛先に通知することを特徴とする請求項８、９、１０、１１、１２又は１３に記載のデータ中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ取得システム及びデータ取得方法に関し、特にアクティブキャッシュのためのデータ取得システム及びデータ取得方法に関する。
【背景技術】
【０００２】
従来のキャッシュサーバの動きを図３９を用いて説明する。図３９は従来のウェブ（以下、Ｗｅｂという）キャッシュサーバを有するネットワークシステムの構成例である。ＷｅｂサーバＳ１０１，Ｓ１０２，Ｓ１０３はそれぞれサブネットＮ５，Ｎ２，Ｎ３内に存在し、様々なＷｅｂ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）コンテンツ情報を保持するサーバで、サブネットＮ１，Ｎ４にはＷｅｂサーバへのアクセスを行う端末Ｔ１０１，Ｔ０２が存在する。また、キャッシュサーバＣ１０１，Ｃ１０２，Ｃ１０３，Ｃ１０４もそれぞれ、サブネットＮ１，Ｎ４，Ｎ３，Ｎ２に配置されている。ルータＲ１０１，Ｒ１０２，Ｒ１０３，Ｒ１０４，Ｒ１０５は、リンクＬ０〜Ｌ５を用いてサブネットＮ１，Ｎ２，Ｎ３，Ｎ４，Ｎ５を接続するネットワークを構成している。キャッシュサーバＣ１０１，Ｃ１０２，Ｃ１０３，Ｃ１０４，Ｗｅｂサーバ（Ｓ１０１，Ｓ１０２など）のさまざまなコンテンツのコピーを保持している。端末（ここではＴ（ここではＣ１０１とする）がその仲介をする。まず、端末Ｔ１０１は、Ｃ１０１にアクセスし、取得したいコンテンツ名をＣ１０１へ通知する。Ｃ１０１は、アクセスのあったＷｅｂサーバのコンテンツをＣ１０１自身が保持しているかどうか調べる。保持していない場合は、他のキャッシュサーバか、該当コンテンツを元々保持していたＷｅｂサーバ（オリジナルＷｅｂサーバと呼ぶ。この場合Ｓ１０１）から該当コンテンツ情報を取得し，端末Ｔ１０１へコンテンツ情報を受け渡す。
【０００３】
キャッシュサーバＣ１０１が、端末あるいは他のキャッシュサーバから要求のあったコンテンツを保持しておらず、他のキャッシュサーバからコンテンツを取得する場合には、該当コンテンツを保持しているキャッシュサーバを知る必要がある。このため、現在のキャッシュサーバでは、該当コンテンツを保持していないと判明した時点で、他の複数のキャッシュサーバへ問い合わせて回答を得たり、前もって、他のキャッシュサーバがどのようなコンテンツを保持しているかという情報を交換したりしている。複数のキャッシュサーバが該当コンテンツを保持していることが判明した場合に、取得するキャッシュサーバを選択する基準は、他の複数のキャッシュサーバへ問い合わせて回答を得る方式の場合には、最も早く保持しているという回答のあったキャッシュサーバ、前もって、他のキャッシュサーバがどのようなコンテンツを保持しているかという情報を交換したりしている場合には、単純な優先度で選択している。
【０００４】
該当コンテンツを元々保持していたＷｅｂサーバ（オリジナルＷｅｂサーバと呼ぶ．この場合Ｓ１０１）から該当コンテンツ情報を取得し、端末Ｔ１０１へコンテンツ情報を受け渡す。オリジナルＷｅｂサーバの名前は、端末から指定されるコンテンツ名から得られる。この時，同時にＣ１０１内の記憶装置へ該当コンテンツを記憶しておく。保持している場合には，該当コンテンツを，端末Ｔ１０１へ受け渡す。なお、この場合（保持している場合）に、該当コンテンツを端末Ｔ１０１へ受け渡す場合に、オリジナルＷｅｂサーバへコンテンツの最終更新時間を問い合わせ、保持しているコンテンツが、オリジナルＷｅｂサーバでの最終更新時間より古い場合には、オリジナルＷｅｂサーバのコンテンツをキャッシュサーバが再取得することもある（更新チェック動作と呼ぶ）。
【０００５】
キャッシュサーバは、端末からだけでなく他のキャッシュサーバからコンテンツ情報を保持しているかどうか問い合わされるが、この場合の動作も端末のＷｅｂサーバへのアクセスを仲介する場合と同様である。すなわち、アクセスのあったＷｅｂサーバのコンテンツをキャッシュサーバ自身が保持しているかどうか調べる。保持していない場合は、他のキャッシュサーバへそのコンテンツを所持しているか問い合わせて、あるいは、他のキャッシュサーバがどのようなコンテンツを保持しているか知っていて、所持しているキャッシュサーバから該当コンテンツを取得するか、オリジナルＷｅｂサーバから該当コンテンツ情報を取得し、問い合わせ元のキャッシュサーバへコンテンツ情報を受け渡す。この時、同時に記憶装置へ該当コンテンツを保持してもよい。保持している場合には、該当コンテンツを受け渡す。更新チェック動作を行ってもよい。上記のように、キャッシュサーバは、他のキャッシュサーバへ該当のコンテンツを所持しているか問い合わせる。あるいは、他のキャッシュサーバがどのようなコンテンツを保持しているか知っていて、所持しているキャッシュサーバから該当コンテンツを取得する、という動作をするが、この時、複数のキャッシュサーバーが該当コンテンツを保持している場合がある。現在のキャッシュサーバは、この時、最も早く問い合わせに対して、該当コンテンツを保持していると回答したキャッシュサーバを選択するか、単純な優先度をつけておいて、優先度の高いものからコンテンツを取得している。
【０００６】
キャッシュサーバは、以上のような動作をするが、更新チェック動作をしない場合では、アクセスのあったＷｅｂサーバのコンテンツ情報を保持していていても、Ｗｅｂサーバの保持している内容より古い（Ｗｅｂサーバ側でのコンテンツの内容変更を反映していない）コンテンツ情報を保持している場合、端末には古いコンテンツを送ってしまうことになる。また、更新チェックをする場合において、同様の場合にはＷｅｂサーバへのコンテンツの再取得がおこるため、端末がコンテンツを得るまでに時間がかかってしまう。
【０００７】
以上のことから、キャッシュサーバにおいては、端末からアクセスされる可能性の高いＷｅｂコンテンツで、かつ、Ｗｅｂサーバ上のあるものより古くないものを保持しておくことが重要である。
【０００８】
このため、従来のキャッシュサーバでは、（１）自動キャッシュ更新動作、（２）リンク先読み動作、（３）キャッシュサーバ連携動作を行っていた（この３動作をアクティブキャッシュ動作と呼ぶ）。（１）自動キャッシュ更新動作とは、キャッシュサーバが保持しているＷｅｂコンテンツについて、オリジナルＷｅｂサーバへアクセスを行って、コンテンツの更新がある場合には、コンテンツを取得し直して、最新のコンテンツを得る動作であり、（２）リンク先読み動作とは、キャッシュサーバが保持しているＷｅｂコンテンツ内にかかれたリンク（関連情報のある場所を指定しているもの）に関して、そのリンクで指定されるコンテンツを取得する動作である。また、（３）キャッシュサーバ連携動作とは、複数のキャッシュサーバの間で、各キャッシュサーバが持つキャッシュの再分配、共有、鮮度比較動作のことである。キャッシュの再分配とは、あるコンテンツを持たないキャッシュサーバが、持っているキャッシュサーバからそのコンテンツを得る動作である。キャッシュの共有とは、あるコンテンツを持たないキャッシュサーバが、そのコンテンツに対するアクセスを端末から受けた時に、そのアクセス要求を，そのコンテンツを持つキャッシュサーバに転送する動作である。キャッシュの鮮度比較とは、あるコンテンツを持つキャッシュサーバが、他のキャッシュサーバが同じコンテンツのより新しい（Ｗｅｂサーバ側でのより最近の内容変更を反映した）版を持っていないかどうかを検証し，必要に応じて新しい版のコンテンツを取得する動作である。これらのキャッシュサーバ連携動作のために、従来のキャッシュサーバは、それぞれが持つコンテンツの一覧や、各キャッシュサーバが持つコンテンツのキャッシュとしての有効性を示す情報（コンテンツサマリーと呼ぶ）を他のキャッシュサーバと交換する処理を行っていた。キャッシュとしての有効性を示す情報としては、たとえばコンテンツの発信元サーバが指示したキャッシュの有効期限や、コンテンツの最終更新日時を用いていた。
【０００９】
キャッシュサーバの有効性を高めるためのアクティブキャッシュ動作は、基本的には、端末が要求するＷｅｂコンテンツを予想し、実際に端末が該当のコンテンツを必要とする時刻より前に、Ｗｅｂサーバへのアクセスを先に行っておく、という動作である。予想が当たらなかった場合や、Ｗｅｂサーバ側の該当コンテンツの更新が、自動キャッシュ更新動作よりも頻繁であった場合には、これらの動作の効果はなく、ネットワークの帯域などの資源を無駄に消費しているだけである。このため、この３つの動作のために生じるトラヒックは、実際に端末がＷｅｂコンテンツを必要としているために生じているトラヒック等の、他のトラヒックを妨害しないようにしたい場合が多い。このため、従来はアクティブキャッシュ動作を行うネットワークの経路上の負荷情報（空き帯域情報や、遅延情報）を得て、できるだけ負荷が低い場合にアクティブキャッシュ動作を実行するようにしていた。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
図３９の構成において、キャッシュサーバＣ１０１のアクティブキャッシュ動作のために、キャッシュサーバＣ１０１が取得しようとするコンテンツ、あるいはコンテンツサマリーが、サブネットＮ４上にあり（たとえば、キャッシュサーバＣ１０２上）、サブネットＮ４からサブネットＮ１までの経路がＮ４→Ｌ４→Ｌ３→Ｌ１→Ｌ０→Ｎ１であったとする。この場合、従来のキャッシュサーバでは、Ｎ４→Ｌ４→Ｌ３→Ｌ１→Ｌ０→Ｎ１という経路全体の最大の空き帯域情報や、経路全体の遅延情報といった負荷情報が低い場合に、アクティブキャッシュ動作を行うため、リンクのどこか１つでも混雑していると、他のリンクは負荷が低いにもかかわらず、アクティブキャッシュ動作に関わるデータを移動することが出来ない、という問題があった。また、経路上のリンクのどこか１つでも負荷が高いとアクティブキャッシュ動作が出来ないため、アクティブキャッシュ動作が出来る確率が低い、という問題があった。また、図３９の構成において、キャッシュサーバＣ１０３とキャッシュサーバＣ１０２の間の経路が混雑していて、キャッシュサーバＣ１０４とキャッシュサーバＣ１０２の間キャッシュサーバの経路が混雑していないとする。また、Ｃ１０２が、あるアクティブキャッシュ動作、あるいは、端末から要求のあったコンテンツを取得しようとするとき、他のキャッシュサーバへ該当のコンテンツを所持しているか問い合わせる、あるいは、他のキャッシュサーバがどのようなコンテンツを保持しているか知っていて、所持しているキャッシュサーバから該当コンテンツを取得する、という動作をする場合を考える。現在のキャッシュサーバは、この時、最も早く問い合わせに対して、該当コンテンツを保持していると回答したキャッシュサーバを選択するか、単純な優先度をつけておいて、優先度の高いものからコンテンツを取得している。たとえば、キャッシュサーバＣ１０２が、キャッシュサーバＣ１０３とＣ１０４については、両方に取得したいコンテンツがあれば、Ｃ１０３から取得する、といった単純な優先度を採用している場合、キャッシュサーバＣ１０３とキャッシュサーバＣ１０２の間の経路が混雑していて、キャッシュサーバＣ１０４とキャッシュサーバＣ１０２の間キャッシュサーバの経路が混雑していないにもかかわらず、キャッシュサーバＣ１０３からコンテンツを取得してしまい、混雑を悪化させるという問題があった。また、最も早く問い合わせに対して回答したサーバを選ぶという方法は、サーバまでのネットワーク経路が混雑していない場合には回答が早く帰ってくる可能性が高い、という意味で、ネットワー混雑状況を考慮しているが、キャッシュサーバが多数あったり広域に分散している場合、回答に時間がかり現実的でない。
【００１１】
そこで本発明の目的は、アクティブキャッシュ動作のためのデータ取得を、負荷状態の低いリンクを使って中継し、ネットワークの輻輳状態を悪化させることなく、アクティブキャッシュ動作を従来より高い確率で実行させ、キャッシュサーバの効率を高めることにある。
【００１２】
また、キャッシュサーバが、あるコンテンツを取得するのに、該当コンテンツを保持しているキャッシュサーバが複数あるときのキャッシュサーバ選択基準として、ネットワークの状況やサーバの負荷考慮してキャッシュサーバを選択させることを可能にし、コンテンツの取得を高速にしたり、輻輳しているネットワークをコンテンツ取得によって輻輳を悪化させないことにある。また、キャッシュ連携部がキャッシュサーバが多数あったり広域に分散している場合においても、どのキャッシュサーバにどのようなコンテンツがあるか、という情報を効率よく収集する事にある。
【００１３】
また、キャッシュサーバが、あるコンテンツを保持しておらず、該当コンテンツを他のどのキャッシュサーバが保持しているか分からないとき、次に問い合わせるべきサーバ（他のキャッシュサーバ、あるいは、該当コンテンツを元々保持しているＷｅｂサーバ）を、取得要求が小さな遅延時間を要求されるＷｅｂアクセスのための取得なのか、比較的大きな遅延も許されるアクティブキャッシュ動作のための取得なのかに依存して最適に選べるようにする事にある。また、取得要求の問い合わせが多段のキャッシュサーバに処理される場合に、処理が進につれて該当コンテンツを元々保持しているＷｅｂサーバへとネットワーク経路的に近付いてゆく事を可能にすることによって、多段に経由したどのキャッシュサーバにおいてもコンテンツが見つからず、最終的にコンテンツをもともと保持しているキャッシュサーバへ取得にゆく事になった場合に、ネットワークを流れるトラヒックの無駄を削減する事にある。
【課題を解決するための手段】
【００１４】
前記課題を解決するために本発明は、アクティブキャッシュのためのデータを所定サーバから取得するキャッシュサーバを含むデータ取得システムであって、そのシステムはネットワークの経路上に負荷が高い場所があり、アクティブキャッシュ動作が行えないと判断される場合に、経路上の負荷が低い部分を利用して前記データを中継して前記キャッシュサーバへ転送する中継サーバを含むことを特徴とする。
【００１５】
又、本発明による他の発明は、アクティブキャッシュのためのデータを所定サーバから取得するキャッシュサーバを含むデータ取得方法であって、その方法はネットワークの経路上に負荷が高い場所があり、アクティブキャッシュ動作が行えないと判断される場合に、経路上の負荷が低い部分を利用して前記データを中継して前記キャッシュサーバへ転送する中継ステップを含むことを特徴とする。
【００１６】
本発明及び本発明による他の発明によれば、経路上に中継サーバを設けることにより、経路上の負荷が低い部分を利用して前記データを中継して前記キャッシュサーバへ転送することが可能となる。
【００１７】
具体的に説明すると、本発明の中継サーバの、一時的にアクティブキャッシュのデータを記憶しておく記憶部と、データの中継を行う中継制御部と、中継経路の負荷情報を収集するネットワーク情報収集部とによって、キャッシュサーバとＷｅｂサーバ間、あるいはキャッシュサーバ間の経路上の一部に輻輳が生じている場合でも、ネットワークの負荷の低い経路を使って、輻輳している手前までのデータの中継転送が可能である。このため、キャッシュサーバとＷｅｂサーバ間、あるいはキャッシュサーバ間のリンク上の全ての輻輳が同時に解消しなくても、輻輳が生じていない区間を利用して、データの中継転送が可能となり、ネットワークの輻輳を悪化させないアクティブキャッシュのためのデータ転送を行える可能性を高めたり、転送の完了までの時間を短縮することが可能となる。また、本発明の中継サーバのマルチキャスト対応中継制御部によって、同一のデータが複数回ネットワークを流れる可能性を低くし、ネットワークの輻輳を緩和することが可能となる。さらに、ネットワークの経路情報および、経路上の負荷情報を取得するＱｏＳ経路情報取得部によって、ネットワークのトポロジー（ｔｏｐｏｌｏｇｙ）および、ネットワークの負荷情報を得ることができ、中継サーバ間や、データの配送の始点終点のサーバ間との間の現在の経路の負荷が高い場合でも、迂回経路を求め、経路設定部によって経路設定可能ルータへ求めた経路を設定し、この経路を用いてデータの転送を行うことによって、ネットワークの輻輳を悪化させないアクティブキャッシュのためのデータ転送を行える可能性を高めたり、転送の完了までの時間を短縮することが可能となる。
【００１８】
また、本発明のキャッシュサーバの、サーバ選択基準情報取得部が、他のキャッシュサーバへの経路上のネットワークの状況やサーバの負荷情報を収集する作用によって、キャッシュサーバが、あるコンテンツを取得するのに、該当コンテンツを保持しているキャッシュサーバが複数あるときのキャッシュサーバ選択基準として、ネットワークの状況やサーバの負荷考慮してキャッシュサーバを選択させることを可能にし、キャッシュ連携部がキャッシュサーバが多数あったり広域に分散している場合においても、どのキャッシュサーバにどのようなコンテンツがあるか、という情報を効率よく収集する事を可能にしている。
【発明の効果】
【００１９】
本発明によれば、アクティブキャッシュのためのデータを所定サーバから取得するキャッシュサーバを含むデータ取得システムであって、そのシステムはネットワークの経路上に負荷が高い場所があり、アクティブキャッシュ動作が行えないと判断される場合に、経路上の負荷が低い部分を利用して前記データを中継して前記キャッシュサーバへ転送する中継サーバを含むため、経路上の負荷が低い部分を利用して前記データを中継して前記キャッシュサーバへ転送することが可能となる。
【００２０】
又、本発明による他の発明によれば、アクティブキャッシュのためのデータを所定サーバから取得するキャッシュサーバを含むデータ取得方法であって、その方法はネットワークの経路上に負荷が高い場所があり、アクティブキャッシュ動作が行えないと判断される場合に、経路上の負荷が低い部分を利用して前記データを中継して前記キャッシュサーバへ転送する中継ステップを含むため、上述の本発明と同様の効果を奏する。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態について添付図面を参照しながら説明する。図１は本発明に係るデータ取得システムの第１の実施の形態のネットワーク構成図である。同図を参照すると、ルータＲ１０１〜Ｒ１０５が、リンクＬ０〜Ｌ５を用いて、サブネットＮ１〜Ｎ５を接続している。ＷｅｂサーバＳ１０１，Ｓ１０２は，それぞれサブネットＮ５，Ｎ２内に存在し、様々なＷｅｂコンテンツ情報を保持している。サブネットＮ１，Ｎ４にはＷｅｂサーバへのアクセスを行う端末Ｔ１０１，Ｔ１０２が存在する。また、キャッシュサーバＣ１０１，Ｃ１０２がサブネットＮ１，Ｎ４に配置されている。また、中継サーバＭ１０１，Ｍ１０２も、サブネットＮ３，Ｎ２にそれぞれ配置されている。
【００２２】
キャッシュサーバは、アクティブキャッシュ動作を行う場合、ネットワークの経路上の負荷情報（空き帯域情報や、遅延情報）を得て，経路上に負荷が高い場所があり、アクティブキャッシュ動作が行えないと判断した場合、中継サーバを使ったアクティブキャッシュ動作を実施する。この動作の概略をまず説明する。
【００２３】
中継サーバとは、ネットワーク上に配置され、アクティブキャッシュ動作のためのデータを中継転送するサーバで、キャッシュサーバ機能をもっていてもよい。キャッシュサーバは、ネットワーク中の１つの中継サーバのアドレスを知っており、この最初の中継サーバに対して、以下の“コンテンツ取得依頼情報”を受け渡す。*取得サーバ名：どのキャッシュサーバあるいはＷｅｂサーバからコンテンツを取得するのかを示す。* 取得コンテンツ識別子：取得するコンテンツの識別子を示す。例えば現在のＷｅｂでは、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）などである。これは複数あってもよい。* 取得要求識別子：取得するコンテンツの識別子を示す。要求元のキャッシュサーバが一意に与え、コンテンツを受け取った時に、どの要求に対するコンテンツなのか判断するのに使用する。* 依頼者ネットワークアドレス: 取得を依頼している、キャッシュサーバのネットワークアドレスを示す。* 有効期限: 取得要求の有効期限を示す。
【００２４】
このコンテンツ取得依頼情報を受け取った中継サーバは、コンテンツ依頼情報中の取得サーバ名に対して、最初にどの中継サーバから中継を開始するか、という情報を設定情報として保持している。中継サーバはコンテンツ取得依頼情報をこの中継を開始する中継サーバへと送る。
【００２５】
コンテンツ取得依頼情報を受け取った中継を開始する中継サーバは、コンテンツを取得して、他の中継サーバへコンテンツを中継し、最終的に、依頼者ネットワークアドレスのキャッシュサーバへコンテンツを送り届ける。以下では、上記動作を行う中継サーバの内部構成を説明する。
【００２６】
図２は第１の実施の形態の中継サーバの内部構成図である。各構成要素の動作をまず説明する。＊コンテンツ取得指示部（１０２）：コンテンツ取得依頼情報を受け取る。他の中継サーバから、コンテンツ取得依頼情報が転送されてきた場合、コンテンツ取得部１０３にコンテンツ取得依頼情報を受け渡す。そうではない場合、設定情報記憶部１０５の情報をもとに、中継を開始する中継サーバを決定し、その中継サーバの、コンテンツ取得指示部へ、コンテンツ取得依頼情報を転送する。もし、自分自身が中継を開始する中継サーバで合った場合は、コンテンツ取得部１０３にコンテンツ取得依頼情報を受け渡す。* コンテンツ取得部（１０３):コンテンツ取得依頼情報の中の、”取得サーバ名”に書かれているキャッシュサーバ、あるいは、Ｗｅｂサーバからの経路上の負荷情報をネットワーク情報収集部から得る。また、設定情報記憶部１０５に記憶されている取得条件を満たすかどうかを判断する。満たさない場合には、満たすようになるまで待つ。条件を満たすようになると、取得コンテンツ識別子”の示すコンテンツを取得し、そのサイズを求めて、”依頼者ネットワークアドレス”、”取得コンテンツ識別子”、”取得要求識別子”、求めたサイズ、”有効期限”，取得したコンテンツ、を、それぞれ、図３のフォーマットの、最終宛先、コンテンツ識別子、取得要求識別子、有効期限（この５つを付加情報と呼ぶ）、コンテンツ、とした中継データを、で中継制御部に受け渡す。
【００２７】
＊設定情報記憶部（１０５）：以下の４つの情報を記憶している。これらの情報は動的に変更されてもよい。中継データフォワーディングテーブル：中継データの最終宛先毎に、次に、どこへ中継データを受け渡せばよいか（この受け渡し相手を次段サーバと呼ぶ）、設定情報として記憶している。中継データの候補は複数あってもよく、複数ある場合には、優先順位をつけておく。
【００２８】
中継開始サーバテーブル：コンテンツ依頼情報中の取得サーバ名に対して、最初にどの中継サーバから中継を開始するか、という情報も設定情報として保持している。なお、次段サーバとして可能性があるのは、他の中継サーバか、最終宛先であるキャッシュサーバかのいずれかである。
【００２９】
取得条件：コンテンツ取得部１０３が、コンテンツを取得する際に、取得を行うかどうかを決める取得条件も記憶している。この条件は、負荷情報が、設定された遅延以下であるか、や、空き帯域値が、設定された閾値以上であるかという条件である。コンテンツを取得することなくコンテンツサイズが得られる場合には、サイズに応じてこの閾値が変わってもいいし、コンテンツサイズに応じて、遅延か、空き帯域のいずれを基準とするかが変わっても良い。
【００３０】
フォワーディング条件：中継制御部（１０８）でのフォワーディングを行う時の、フォワーディング条件を記憶している。この条件は、負荷情報が、設定された遅延以下であるか、や、空き帯域値が、設定された閾値以上であるかという条件である。また、フォワーディング条件については、コンテンツサイズに応じて、この閾値が変わってもいいし、コンテンツサイズに応じて、遅延か、空き帯域のいずれを基準とするかが変わっても良い。また、有効期限までの時間に応じて、条件が変わっても良い。び、中継データフォワーディング動作2 を行う。中継データフォワーディング動作１は、中継データを受け取った事をきっかけに行い、中継フォワーディング動作２は、記憶部１１０に格納されたデータに対して定期的に行う。
【００３１】
中継データフォワーディング動作１：ステップ１：中継データの最終宛先毎に決められた、次段サーバを設定情報記憶部から得る。次段サーバの候補は複数あってもよく、複数ある場合には、その優先度とともに複数の次段サーバ候補を得る。
【００３２】
ステップ２：次段サーバとの間のネットワーク負荷情報（遅延や空き帯域情報）を、ネットワーク情報収集１０７から得る。
【００３３】
ステップ３：ネットワーク負荷情報１０７から得られた負荷情報が、設定情報記憶部に記憶されたフォワーディング条件を満たしているかどうか調べる。条件を満たす場合には、ステップ５へ進み、満たさない場合には、ステップ４へ分岐する。次段中継サーバの候補が複数ある場合には、その優先順にこの判定を行い、満たした時点で、ステップ５へ進み、すべてについて満たさない場合には、ステップ４へ分岐する。
【００３４】
ステップ４：有効期限が切れていなければ記憶部１１０へ中継データを記憶する。記憶スペースがなければ、有効期限切れのもの、あるいは、古いものから順に消去して、スペースをつくる。有効期限が切れていれば、中継データを破棄，あるいは、中継サーバがキャッシュサーバ機能を持っている場合には、破棄せず、キャッシュサーバ機能がこのデータをキャッシュとして利用してもよい。そして、最終宛先のキャッシュサーバーへ有効期限が切れたことを通知し終了となる。
【００３５】
ステップ５：ＴＣＰ処理部Ｂ１０９へ、次段サーバのアドレスと、中継データを受け渡して終了となる。
【００３６】
中継データフォワーディング動作２：ステップ１：記憶部１１０に格納された中継データに関して、有効期限が切れていれば破棄、あるいは、中継サーバがキャッシュサーバ機能を持っている場合には、破棄せず、キャッシュサーバ機能がこのデータをキャッシュとして利用してもよい。有効期限が切れたことを、最終宛先のキャッシュサーバーへ通知して終了となる。切れていなければ、ステップ２へ進む。
【００３７】
ステップ２：中継データの最終宛先毎に決められた、次段サーバを設定情報記憶部から得る。次段サーバの候補は複数あってもよく、複数ある場合には、その優先度とともに複数の次段サーバ候補を得る。
【００３８】
ステップ３：次段サーバとの間のネットワーク負荷情報（遅延や空き帯域情報）を、ネットワーク情報収集１０７から得る。
【００３９】
ステップ４：ネットワーク負荷情報１０７から得られた負荷情報が、設定情報記憶部に記憶されたフォワーディング条件を満たしているかどうか調べる。条件を満たす場合には、ステップ５へ進み、満たさない場合には終了となる。ただし、次段中継サーバの候補が複数ある場合には、その優先順にこの判定を行い、満たした時点で、ステップ５へ進み、すべてについて満たさない場合には終了となる。
【００４０】
ステップ５：ＴＣＰ処理部Ｂ１０９へ、次段サーバのアドレスと、中継データを受け渡す。中継データは消去してもよいし、中継サーバがキャッシュサーバ機能を持っている場合には、消去せず、キャッシュサーバ機能がこのデータをキャッシュとして利用してもよい。これで終了となる。
【００４１】
格納された中継データのそれぞれに関して、中継データフォワーディング動作２を行う順番は、最終宛先ごとにラウンドロビン（ｒｏｕｎｄ  ｒｏｂｉｎ  ａｌｇｏｒｉｔｈｍ）したり、コンテンツサイズを考慮して優先度を変えたり、有効期限の切れそうなものほど優先度を上げる等して決める。
【００４２】
＊ＴＣＰ処理部Ｂ（１０９）：中継制御部１０８から次段サーバのアドレスと中継データを受け取り、次段サーバへデータを受け渡す。中継制御部１０８から受け取った次段サーバのアドレスへのＴＣＰコネクションが張られていない場合、ＴＣＰコネクションを開設し、中継データを送信する。送信完了後、コネクションを切断してもよいし、そのままにしてもよい。
【００４３】
＊ＴＣＰ処理部Ａ（１０４）：他の中継サーバからのコネクション開設要求を受けて、他の中継サーバとのコネクションを張る。また、そのコネクション上に送信されてくる、中継データを受け取り、中継制御部１０８へと受け渡す。
【００４４】
＊ネットワーク情報収集部（１０７）：中継制御部１０８によって指定された次段サーバ、あるいは、コンテンツ取得部１０３によって指定されたキャッシュサーバへ、測定パケットを打ったり、ＴＣＰ処理部Ｂから得られる、ＴＣＰのラウンドトリップタイムなどを参照して、測定対象のサーバまでのネットワーク負荷（空き帯域情報や、遅延情報）を計測し、中継制御部１０８、あるいは、コンテンツ取得部１０３へその結果を渡す。
【００４５】
＊記憶部（１１０）：中継データを記憶しておく装置である。
【００４６】
この中継サーバの動作を図４を用いて説明する。コンテンツ取得依頼情報を、コンテンツ取得指示部１０２が受け取る（Ｆ１０１）。他の中継サーバから、コンテンツ取得依頼情報が転送されてきた場合（Ｆ１０３），コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す（Ｆ１２１）。そうではない場合（Ｆ１０２）、設定情報記憶部１０５の情報をもとに、中継を開始する中継サーバを決定する（Ｆ１０４）。もし、自分自身が中継を開始する中継サーバで合った場合は、コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す（Ｆ１２１）。そうでない場合、中継を開始する中継サーバの、コンテンツ取得指示部へ、コンテンツ取得依頼情報を転送する（Ｆ１０７）。
【００４７】
次に、コンテンツ取得部１０３は、コンテンツ取得依頼情報の中の、”取得サーバ名”にかかれているキャッシュサーバ、あるいは、Ｗｅｂサーバからの経路上の付加情報を、ネットワーク情報収集部から得て、設定情報記憶部に記憶されている取得条件を満たすかどうかを判断する（Ｆ１２３）。満たさない場合には、満たすようになるまで待つ（Ｆ１２２）。条件を満たすようになると、”取得コンテンツ識別子”の示すコンテンツを取得し（Ｆ１０８）、そのサイズを求めて、”依頼者ネットワークアドレス”、”取得要求識別子”，”取得コンテンツ識別子”、求めたサイズ、取得したコンテンツを、それぞれ、最終宛先、取得要求識別子、コンテンツ識別子、コンテンツサイズ、コンテンツ、とした中継データを生成し（Ｆ１０９）、図３のフォーマットで中継制御部１０８に受け渡す（Ｆ１１１）。
【００４８】
ＴＣＰ処理部Ａ１０４が、中継データを他の中継サーバから受信した場合も、中継データを中継制御部１０８へ渡す（Ｆ１１０）。
【００４９】
コンテンツ取得部，あるいは，ＴＣＰ処理部Ａ１０４から、中継データを受け取った中継制御部は、前記の中継データフォワーディング動作１を行う。すなわち、中継データの最終宛先毎に決められた、次段サーバを設定情報記憶部１０７から取得し（Ｆ１１２）、次段サーバとの間のネットワーク負荷情報（遅延や空き帯域情報）を、ネットワーク情報収集１０７から取得し、ネットワーク負荷情報１０７から得られた負荷情報が、設定情報記憶部に記憶されたフォワーディング条件を満たしているかどうか調べる。条件を満たす場合には（Ｆ１１３）、ＴＣＰ処理部Ｂ１０９へ、次段サーバのアドレスと、中継データを受け渡す。満たさない場合には、有効期限が切れていないものについてのみ、記憶部１１０へ中継データを記憶する（Ｆ１１５）。記憶部１１０へ格納された中継データに関しては、定期的に前記の中継データフォワーディング動作２を行う（Ｆ１１６）。
【００５０】
中継データフォワーディング動作１，中継データフォワーディング動作２の結果、中継制御部１０８から次段サーバのアドレスと中継データを受け取ったＴＣＰ処理部Ｂ１０９は、中継制御部１０８から受け取った次段サーバのアドレスへのＴＣＰコネクションが張られていない場合（Ｆ１１７）、ＴＣＰコネクションを開設し（Ｆ１１９）、中継データを送信する。送信完了後、コネクションを切断してもよいし、そのままにしてもよい。
【００５１】
以上の動作によって、中継サーバの中継動作によって、コンテンツ取得依頼を行ったキャッシュサーバは、コンテンツを取得する事が出来る。
【００５２】
次に、図１において、キャッシュサーバＣ１０１が、キャッシュサーバＣ１０２から、アクティブキャッシュのための１０ＫバイトのコンテンツＸを取得する場合を説明する。
【００５３】
中継サーバＭ１０１、 Ｍ１０２の設定情報、は図５，６のようなものであったとする。また、ネットワークの経路は、Ｃ１０２からＣ１０１までが、Ｃ１０２→Ｒ１０４→Ｒ１０３→Ｒ１０２→Ｒ１０１→Ｃ１０１，Ｃ１０２からＭ１０１までが、Ｃ１０２→Ｒ１０４→Ｒ１０３→Ｍ１０１，Ｍ１０１からＭ１０２までが、Ｍ１０１→Ｒ１０３→Ｒ１０２→Ｍ１０２，Ｍ１０２からＣ１０１までが、Ｍ１０２→Ｒ１０２→Ｒ１０１→Ｃ１０１であったとする。さらに、これらの経路に関連するリンクＬ０，Ｌ１，Ｌ３，Ｌ４と、サブネットＮ４，Ｎ３，Ｎ２，Ｎ１の内部リンクのうち、Ｌ０のみが非常に混雑しているとする。
【００５４】
キャッシュサーバＣ１０１は、中継サーバの中の１つ（ここでは、中継サーバＭ１０２とする）を知っており、以下のコンテンツ取得依頼情報を中継サーバＭ１０２へと渡す。
【００５５】
コンテンツ取得依頼情報：＊取得サーバ名：Ｃ１０２＊取得コンテンツ識別子：コンテンツＸの識別子＊取得要求識別子：この要求を特定出来る識別子＊依頼者ネットワークアドレス：Ｃ１０２のネットワークアドレス中継サーバＭ１０２では、設定情報記憶部の、中継開始サーバテーブルを参照して、Ｃ１０２からコンテンツを取得する場合の、中継を開始する中継サーバが、Ｍ１０１である事を得る。このコンテンツ取得情報を、中継サーバＭ１０１へと転送する。中継サーバＭ１０１では、他の中継サーバから転送されてきたコンテンツ取得依頼情報であるので、取得サーバ名に書かれている、Ｃ１０２からコンテンツＸを取得する（このときサイズが、１０Ｋバイトであるとわかる）。この時、Ｃ１０２から、Ｍ１０２までの経路上は混雑していないので、その経路の負荷は、設定情報の取得条件を満たしているものとする。Ｃ１０２の内部では、取得したコンテンツを以下の内容をもつ中継データとして、Ｃ１０２中継制御部に渡される。
【００５６】
最終宛先：Ｃ１０１コンテンツ識別子：コンテンツＸの識別子取得要求識別子：要求を特定出来る識別子コンテンツサイズ：１０Ｋバイトコンテンツ：取得したコンテンツＸ次に、Ｍ１０１では、設定情報記憶部の中継データフォワーディングテーブル（図６）を参照して、最終宛先がＣ１０１のコンテンツは、中継サーバＭ１０２へフォワードする事を知る。また、この時、Ｍ１０２とＭ１０１の間のネットワークは混雑しておらず、フォワーディング条件を満たすものとする。Ｍ１０１からＭ１０２へ中継データがフォワードされる。
【００５７】
次に、Ｍ１０２は、中継データを受け取り、図５の、Ｍ１０２の中継データフォワーディングテーブル（図６）を参照して、フォワード先が、最終宛先である、Ｃ１０１であることを知る。この時、リンクＬ１の混雑のため、Ｍ１０２とＣ１０１の間の遅延が５００ｍｓであったとする。この場合、図５のフォワーディング条件を満たさないので（コンテンツサイズは１０Ｋバイトなので、コンテンツサイズが２０Ｋバイト未満の場合、遅延が１００ｍｓ以下、という条件を満たさない）、記憶部に中継データが記憶される。このデータはリンクＬ１の混雑解消を待って、キャッシュサーバＣ１０１へ送り届けられる。
【００５８】
従来のキャッシュサーバで、同様のアクティブキャッシュのコンテンツを取得する場合、キャッシュサーバＣ１０２から、キャッシュサーバＣ１０１までのすべての区間でネットワーク負荷が低い場合にのみ、アクティブキャッシュを実行出来るが、本発明の第１実施の形態の場合，上記例のように、経路上の負荷の低い部分を利用して、データを取得したいキャッシュサーバの近くへ持ってくる事が可能である。上記の例では、Ｍ１０２までコンテンツを持ってきた後は、残りの区間のみの負荷が下がれば、データをC101へ送り届ける事が出来るが、従来のキャッシュサーバでは、Ｃ１０２からＣ１０１までの全区間の負荷が同時に下がるまで待たねばならないので、アクティブキャッシュ動作が成功する確率が低い。
【００５９】
また、従来のキャッシュサーバでは、アクティブキャッシュをするために、その経路上の負荷を監視し、転送すべきかどうかを判断する事をキャッシュサーバ自身で行わなければならないが、本発明第１の実施の形態の中継サーバを用いれば、取得したいアクティブキャッシュに関するコンテンツを、中継サーバのうちの１台に伝えるだけでよいため、この負荷を中継サーバへと肩代わりさせる事が可能となる。
【００６０】
以上のように、本発明の第１の実施の形態によって、ネットワークの負荷が低い時を利用したアクティブキャッシュの成功率を上げる事が可能となる。また、キャッシュサーバがアクティブキャッシュを行う負荷を低減する事が可能となる。
【００６１】
次に、第２の実施の形態について説明する。図７が，発明の第２の形態のネットワーク構成を示している．ルータＲ１０１〜Ｒ１０５が、リンクＬ０〜Ｌ４を用いて、サブネットＮ１〜Ｎ５を接続している。ＷｅｂサーバＳ１０１，Ｓ１０２，Ｓ１０３は，それぞれサブネットＮ５，Ｎ２，Ｎ３内に存在し，様々なＷｅｂコンテンツ情報を保持している。サブネットＮ１，Ｎ４には，Ｗｅｂサーバへのアクセスを行う端末Ｔ１０１，Ｔ１０２が存在する。また、キャッシュサーバＣ１０１，Ｃ１０２がサブネットＮ１，Ｎ４に配置されている．また、中継サーバＭ２０１，Ｍ２０２も、サブネットＮ３，Ｎ２にそれぞれ配置されている。
【００６２】
キャッシュサーバは、アクティブキャッシュ動作を行う場合、ネットワークの経路上の負荷情報（空き帯域情報や、遅延情報）を得て，経路上に負荷が高い場所があり、アクティブキャッシュ動作が行えないと判断した場合、中継サーバを使ったアクティブキャッシュ動作を実施する。この動作の概略をまず説明する。
【００６３】
中継サーバとは、ネットワーク上に配置され、アクティブキャッシュ動作のためのデータを中継転送するサーバで、キャッシュサーバ機能をもっていてもよい。キャッシュサーバは、ネットワーク中の１つの中継サーバのアドレスを知っており、この最初の中継サーバに対して、以下の“コンテンツ取得依頼情報”を受け渡す。
【００６４】
＊取得サーバ名：どのキャッシュサーバ、あるいは、Ｗｅｂサーバからコンテンツを取得するのかを示す。
【００６５】
＊取得コンテンツ識別子：取得するコンテンツの識別子を示す。例えば現在のＷｅｂでは、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）など。複数あってもよい。
【００６６】
＊取得要求識別子：取得するコンテンツの識別子。要求元のキャッシュサーバが一意に与え、コンテンツを受け取った時に出来た時に、どの要求に対するコンテンツなのか判断するのに使用する。
【００６７】
＊依頼者ネットワークアドレス：取得を依頼している、キャッシュサーバのネットワークアドレスを示す（複数あってもよい）。
【００６８】
＊有効期限：取得要求の有効期限を示す。
【００６９】
このコンテンツ取得依頼情報を受け取った中継サーバは、コンテンツ依頼情報中の取得サーバ名に対して、最初にどの中継サーバから中継を開始するか、という情報を設定情報として保持している。中継サーバは、コンテンツ取得依頼情報を、この、中継を開始する中継サーバへと送る。コンテンツ取得依頼情報を受け取った中継を開始する中継サーバは、コンテンツを取得して、他の中継サーバへコンテンツを中継し、最終的に、依頼者ネットワークアドレスのキャッシュサーバへコンテンツを送り届ける。また、中継開始サーバで、複数の取得依頼要求の、取得コンテンツ識別子が、同一である場合には、後述するように、複数の要求をまとめて、キャッシュサーバへと送り届ける。
【００７０】
以下では、上記動作を行う中継サーバの内部構成を説明する。図８が中継サーバの内部構成図である。各構成要素の動作をまず説明する。
【００７１】
＊コンテンツ取得指示部（１０２）：コンテンツ取得依頼情報を受け取る。他の中継サーバから、コンテンツ取得依頼情報が転送されてきた場合、コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す。そうではない場合、設定情報記憶部１０５の情報をもとに、中継を開始する中継サーバを決定し、その中継サーバの、コンテンツ取得指示部へ、コンテンツ取得依頼情報を転送する。もし、自分自身が中継を開始する中継サーバで合った場合は、コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す。
【００７２】
＊コンテンツ取得部（２０３）：コンテンツ取得依頼情報の中の、”取得サーバ名”に書かれているキャッシュサーバ、あるいは、Ｗｅｂサーバからの経路上の負荷情報を、ネットワーク情報収集部から得る。また、設定情報記憶部１０５に記憶されている取得条件を満たすかどうかを判断する。満たさない場合には、満たすようになるまで待つ。取得コンテンツ識別子が、同一であるコンテンツ取得要求が到着した場合、複数の要求をまとめ、１回の取得でコンテンツを取得する。条件を満たすようになると、取得コンテンツ識別子”の示すコンテンツを取得し、そのサイズを求めて、”依頼者ネットワークアドレス”、”取得要求識別子”，”有効期限”，”取得コンテンツ識別子”、求めたサイズ、取得したコンテンツ、を、それぞれ、図９のフォーマットの、最終宛先、取得要求識別子、有効期限、コンテンツ識別子、コンテンツサイズ、コンテンツとした中継データを、マルチキャスト対応中継制御部に受け渡す。取得コンテンツ識別子が、同一であるコンテンツ取得要求が到着せず、１つのコンテンツ取得要求の処理となった場合、あるいは、依頼者ネットワークアドレスが１つだけの場合には、付加情報の宛先数は１とする。複数の取得要求をまとめた場合、あるいは、依頼者ネットワークアドレスが複数ある場合には、図９のフォーマットで、宛先数に、まとめた取得依頼の数の中の、依頼者ネットワークアドレスの数の合計、依頼者ネットワークアドレス毎に、最終宛先、取得要求識別子、有効期限、を埋め（１つの依頼の中に、複数の依頼者ネットワークアドレスがある場合には、取得要求識別子、有効期限、はコピーする）、コンテンツ識別子としては、取得コンテンツ識別子を、コンテンツサイズは、取得したコンテンツのサイズを埋めて、マルチキャスト対応中継制御部に受け渡す。
【００７３】
＊設定情報記憶部（１０５）：以下の４つの情報を記憶している。これらの情報は動的に変更されてもよい。
【００７４】
中継データフォワーディングテーブル：中継データの最終宛先毎に、次に、どこへ中継データを受け渡せばよいか（この受け渡し相手を次段サーバと呼ぶ）、設定情報として記憶している。中継データの候補は複数あってもよく、複数ある場合には、優先順位をつけておく。
【００７５】
中継開始サーバテーブル：コンテンツ依頼情報中の取得サーバ名に対して、最初にどの中継サーバから中継を開始するか、という情報も設定情報として保持している。なお、次段サーバとして可能性があるのは、他の中継サーバか、最終宛先であるキャッシュサーバかのいずれかである。
【００７６】
取得条件：コンテンツ取得部２０３が、コンテンツを取得する際に、取得を行うかどうかを決める取得条件も記憶している。この条件は、負荷情報が、設定された遅延以下であるか、や、空き帯域値が、設定された閾値以上であるかという条件である。コンテンツを取得することなくコンテンツサイズが得られる場合には、サイズに応じてこの閾値が変わってもいいし、コンテンツサイズに応じて、遅延か、空き帯域のいずれを基準とするかが変わっても良い。
【００７７】
フォワーディング条件：マルチキャスト対応中継制御部（２０８）でのフォワーディングを行う時の、フォワーディング条件を記憶している。この条件は、負荷情報が、設定された遅延以下であるか、や、空き帯域値が、設定された閾値以上であるかという条件である。また、フォワーディング条件については、コンテンツサイズに応じて、この閾値が変わってもいいし、コンテンツサイズに応じて、遅延か、空き帯域のいずれを基準とするかが変わっても良い。また、有効期限までの時間に応じて、条件が変わっても良い。
【００７８】
＊マルチキャスト対応中継制御部（２０８）：以下の中継データフォワーディング動作２−１、および、中継データフォワーディング動作２−２を行う。中継データフォワーディング動作２−１は、中継データを受け取った事をきっかけに行い、中継フォワーディング動作２−２は、記憶部１１０に格納されたデータに対して定期的に行う。
【００７９】
中継データフォワーディング動作２−１：ステップ１：Ｎ＝宛先数，Ｉ＝１とする。Ｎ＜Ｉならステップ７へ。Ｎ≧Ｉなら、ステップ２へ進む。
【００８０】
ステップ２：中継データの先頭からＩ番目の最終宛先を取り出し、最終宛先毎に決められた、次段サーバを設定情報記憶部から得る。次段サーバの候補は複数あってもよく、複数ある場合には、複数得ておく。
【００８１】
ステップ３：次段サーバとの間のネットワーク負荷情報（遅延や空き帯域情報）を、ネットワーク情報収集１０７から得る。
【００８２】
ステップ４：ネットワーク負荷情報１０７から得られた負荷情報が、設定情報記憶部に記憶されたフォワーディング条件を満たしているかどうか調べる。条件を満たす場合にはステップ６へ進み、満たさない場合にはステップ５へ分岐する。次段サーバの候補が複数ある場合には、その優先順にこの判定を行い、満たした時点で、ステップ６へ、すべてについて満たさない場合にはステップ５へ分岐する。
【００８３】
ステップ５：もし、Ｉ番目の有効期限が切れていなければ，記憶部１１０へ中継データを記憶する。この時、すでに、記憶部に同一の中継データが記憶されていない場合、宛先数を１、Ｉ番目の宛先毎の付加情報フィールド、コンテンツ識別子、コンテンツサイズを取り出して、図９のフォーマットで、中継データを記憶。すでに記憶されている場合、宛先数に１を加算して書き戻し、Ｉ番目の宛先毎の付加情報フィールドを、記憶されている中継データの付加情報フィールドに追加するだけでいい。記憶スペースがなければ、記憶部１１０中の中継データのうちで、有効期限切れのもの、あるいは、古いものから順に消去して、スペースをつくる。
【００８４】
また、Ｉ番目の有効期限が切れていれば、Ｉ番目の最終宛先のキャッシュサーバーへ有効期限切れを通知する。有効期限が切れたものについては、消去せず、中継サーバがキャッシュサーバ機能を有する場合には、これをキャッシュとして利用してもよい。Ｉ＝Ｉ＋１としてステップ１へ進む。
【００８５】
ステップ６：次段サーバのアドレスと，それ毎に、現在のＩの値をリストに追加して記憶する。Ｉ＝Ｉ＋１としてステップ１へ進む。
【００８６】
ステップ７：ステップ６で記憶した、すべての次段サーバのアドレスに対して，以下を実行する。まず、Ｉの値のリストの情報を元に、中継データの付加情報から、Ｉの値に対応する、宛先毎の付加情報を集め、リストのサイズを”宛先数”とし、コンテンツ識別子、コンテンツサイズ、コンテンツはコピーし、図９と同じフォーマットになるようにする。また、中継データの宛先数からリストサイズを減算して書きもどし、リスト中のＩの値に対する、宛先毎の付加情報を削除する。
【００８７】
ステップ８：ステップ７の結果、もし、記憶部１１０中の中継データの宛先数が０となれば、もとの中継データを削除する。あるいは、中継サーバがキャッシュサーバ機能を有する場合には、削除せず、これをキャッシュとして利用してもよい。
【００８８】
ステップ９：ステップ６で記憶した、すべての次段サーバのアドレスと、それぞれに対する、ステップ７で生成した中継データを、ＴＣＰ処理部Ｂへ受け渡す。保持している中継データを破棄。あるいは、中継サーバがキャッシュサーバ機能を有する場合には、破棄せず、これをキャッシュとして利用してもよい。これで終了となる。
【００８９】
中継データフォワーディング動作２−２：ステップ１：Ｎ＝宛先数，Ｉ＝１とする。Ｎ＜Ｉならステップ７へ、Ｎ≧Ｉならステップ２へ進む。
【００９０】
ステップ２：中継データの先頭からＩ番目の最終宛先を取り出し、最終宛先毎に決められた、次段サーバを設定情報記憶部から得る。次段サーバの候補は複数あってもよく、複数ある場合には、複数得ておく。
【００９１】
ステップ３：次段サーバとの間のネットワーク負荷情報（遅延や空き帯域情報）を、ネットワーク情報収集１０７から得る。
【００９２】
ステップ４：ネットワーク負荷情報１０７から得られた負荷情報が、設定情報記憶部に記憶されたフォワーディング条件を満たしているかどうか調べる。条件を満たす場合にはステップ６へ進み、満たさない場合にはステップ５へ分岐する。
【００９３】
ただし、次段サーバの候補が複数ある場合には、その優先順にこの判定を行い、満たした時点でステップ６へ進み、すべてについて満たさない場合にはステップ５へ分岐する。
【００９４】
ステップ５：Ｉ番目の有効期限が切れていれば、中継データの宛先数の値を１減らし、Ｉ番目の宛先の付加情報を除き、最終宛先のキャッシュサーバーへ通知。次に、中継データの宛先数の値が１以上であれば、Ｉ＝Ｉ＋１としてステップ１へ進む。中継データの宛先数の値が０であれば、中継データ全体を破棄し、あるいは、中継サーバがキャッシュサーバ機能を持つ場合には、破棄せず、キャッシュサーバ機能がこれをキャッシュデータとして利用してもよい。
【００９５】
ステップ６：次段サーバのアドレスと，それ毎に、現在のＩの値を追加して記憶する。Ｉ＝Ｉ＋１としてステップ１へ進む。
【００９６】
ステップ７：ステップ６で記憶した、すべての次段サーバのアドレスに対して，以下を実行する。まず、Ｉの値のリストの情報を元に、記憶部１１０中の中継データの付加情報から、Ｉの値に対応する、宛先毎の付加情報を集め、リストのサイズを”宛先数”とし、コンテンツ識別子、コンテンツサイズ、コンテンツはコピーし、図９と同じフォーマットになるようにする。また、記憶部１１０中の中継データの宛先数からリストサイズを減算して書き戻し、リスト中のＩの値に対する、宛先毎の付加情報を削除する。
【００９７】
ステップ８：ステップ７の結果、もし、記憶部１１０中の中継データの宛先数が０となれば、中継データを削除する。あるいは、中継サーバがキャッシュサーバ機能を持つ場合には、削除せず、キャッシュサーバ機能がこれをキャッシュデータとして利用してもよい。
【００９８】
ステップ９：ステップ６で記憶した、すべての次段サーバのアドレスと、それぞれに対する、ステップ７で生成した中継データを、ＴＣＰ処理部Ｂへ受け渡す。
【００９９】
格納された中継データのそれぞれに関して、中継データフォワーディング動作２−２を行う順番は、最終宛先ごとにラウンドロビンしたり、コンテンツサイズを考慮して優先度を変えたり、有効期限の切れそうなものほど優先度を上げる等して決める。
【０１００】
＊ＴＣＰ処理部Ｂ（１０９）：マルチキャスト対応中継制御部２０８から次段サーバのアドレスと中継データを受け取り、次段サーバへデータを受け渡す。マルチキャスト対応中継制御部１０８から受け取った次段サーバのアドレスへのＴＣＰコネクションが張られていない場合、ＴＣＰコネクションを開設し、中継データを送信する。送信完了後、コネクションを切断してもよいし、そのままにしてもよい。
【０１０１】
＊ＴＣＰ処理部Ａ（１０４）：他の中継サーバからのコネクション開設要求を受けて、他の中継サーバとのコネクションを張る。また、そのコネクション上に送信されてくる、中継データを受け取り、マルチキャスト対応中継制御部２０８へと受け渡す。
【０１０２】
＊ネットワーク情報収集部（１０７）：マルチキャスト対応中継制御部２０８によって指定された次段サーバ、あるいは、コンテンツ取得部２０３によって指定されたキャッシュサーバへ、測定パケットを打ったり、ＴＣＰ処理部Ｂから得られる、ＴＣＰのラウンドトリップタイムなどを参照して、測定対象のサーバまでのネットワーク負荷（空き帯域情報や、遅延情報）を計測し、マルチキャスト対応中継制御部２０８、あるいは、コンテンツ取得部２０３へその結果を渡す。
【０１０３】
＊記憶部（１１０）：中継データを記憶しておく装置である。
【０１０４】
この中継サーバの動作を図１０を用いて説明する。図１０は第２の実施の形態の中継サーバの動作を示すフローチャートである。同図を参照すると、コンテンツ取得依頼情報を、コンテンツ取得指示部１０２が受け取る（Ｆ２０１）。他の中継サーバから、コンテンツ取得依頼情報が転送されてきた場合（Ｆ２０３），コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す（Ｆ２２１）。そうではない場合（Ｆ２０２）、設定情報記憶部１０５の情報をもとに、中継を開始する中継サーバを決定する（Ｆ２０４）。もし、自分自身が中継を開始する中継サーバで合った場合は（Ｆ２０５）、コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す（Ｆ２２１）。そうでない場合（Ｆ２０６）、中継を開始する中継サーバの、コンテンツ取得指示部へ、コンテンツ取得依頼情報を転送する（Ｆ２０７）。
【０１０５】
次に、コンテンツ取得部２０３は、コンテンツ取得依頼情報の中の、”取得サーバ名”に書かれているキャッシュサーバ、あるいは、Ｗｅｂサーバからの経路上の付加情報を、ネットワーク情報収集部から得て、設定情報記憶部に記憶されている取得条件を満たすかどうかを判断する（Ｆ２２３）。満たさない場合には、満たすようになるまで待つ（Ｆ２２２）。取得コンテンツ識別子が、同一であるコンテンツ取得要求が到着した場合には、複数の要求をまとめ、１回の取得でコンテンツを取得する。条件を満たすようになると（Ｆ２２４）、”取得コンテンツ識別子”の示すコンテンツを取得し（Ｆ２０８）、そのサイズを求め、中継データを、図３のフォーマットで生成する（Ｆ２０９）。生成の際、複数のコンテンツ取得要求をまとめた場合には、まとめた要求の数を”宛先数”フィールドに書く。まとめていないとき、このフィールドは１である。また、コンテンツ取得要求の、”依頼者ネットワークアドレス”、”取得要求識別子”，”有効期限”を、宛先毎の付加情報として、それぞれ、”最終宛先”，”ｓ取得要求識別子”，”有効期限”のフィールドに書き込む。複数の取得要求をまとめた場合、ｋの、宛先毎の付加情報も、複数個になる。また、”取得コンテンツ識別子”、求めたサイズを、それぞれ、”コンテンツ識別子”，”コンテンツサイズ”のフィールドに書き込む。そして、マルチキャスト対応中継制御部２０８に受け渡す（Ｆ２１１）。
【０１０６】
ＴＣＰ処理部Ａ１０４が、中継データを他の中継サーバから受信した場合も、中継データをマルチキャスト対応中継制御部２０８へ渡す（Ｆ２１０）。
【０１０７】
コンテンツ取得部，あるいは，ＴＣＰ処理部Ａ１０４から、中継データを受け取ったマルチキャスト対応中継制御部は、前記の中継データフォワーディング動作２−１を行う。すなわち、中継データの、宛先数をＮとおき、Ｉ＝１とし、Ｉ＝１〜Ｎまで以下を繰り返す。
【０１０８】
中継データの先頭からＩ番目の最終宛先を取り出し、最終宛先毎に決められた、次段サーバを設定情報記憶部から得る（Ｆ２０７）。次に、次段サーバとの間のネットワーク負荷情報（遅延や空き帯域情報）を、ネットワーク情報収集１０７から得る。ネットワーク負荷情報１０７から得られた負荷情報が、設定情報記憶部に記憶されたフォワーディング条件を満たしているかどうか調べる。条件を満たす場合にはＦ２１９へ分岐し、そうでない場合にはＦ２１８へ分岐する。Ｆ２１８では、もし、Ｉ番目の有効期限が切れていなければ，記憶部１１０へ中継データを記憶する。この時、すでに、記憶部に同一の中継データが記憶されていない場合、宛先数を１、Ｉ番目の宛先毎の付加情報フィールド、コンテンツ識別子、コンテンツサイズを取り出して、図９のフォーマットで、中継データを記憶。すでに記憶されている場合、宛先数に１を加算して書き戻し、Ｉ番目の宛先毎の付加情報フィールドを、記憶されている中継データの付加情報フィールドに追加するだけでいい。記憶スペースがなければ、記憶部１１０中の中継データのうちで、有効期限切れのもの、あるいは、古いものから順に消去して、スペースをつくる。また、Ｉ番目の有効期限が切れていれば、Ｉ番目の最終宛先のキャッシュサーバーへ通知する。Ｆ２１９では、次段サーバのアドレスと，それ毎に、現在のＩの値をリストに追加して記憶する。
【０１０９】
繰り返しが終わると、Ｆ２１９で記憶した、すべての次段サーバのアドレスに対して，以下を実行する。まず、Ｉの値のリストの情報を元に、記憶部１１０中の中継データの付加情報から、Ｉの各値に対応する、宛先毎の付加情報を集め、リストのサイズを”宛先数”とし、コンテンツ識別子、コンテンツサイズ、コンテンツはコピーし、図９と同じフォーマットになるようにあらたな中継データを生成する。また、中継データの宛先数からリストサイズを減算して書きもどし、リスト中のＩの値に対する、宛先毎の付加情報を削除する。
【０１１０】
全ての次段サーバのアドレスに対して以上を実行した後、もし、記憶部１１０中のもとの中継データの宛先数が０となれば、もとの中継データを削除する。
【０１１１】
そして、すべての次段サーバのアドレスと、それぞれに対する、新たに生成した中継データを、ＴＣＰ処理部Ｂへ受け渡す（Ｆ２２０）。
【０１１２】
Ｆ２１８で記憶部に格納された中継データに関しては（Ｆ２２２）、中継データフォワーディング動作２−２が後を引き継ぐ（Ｆ２２３）。
【０１１３】
中継データフォワーディング動作２−１，中継データフォワーディング動作２−２の結果、マルチキャスト対応中継制御部２０８から次段サーバのアドレスと中継データを受け取ったＴＣＰ処理部Ｂ１０９は、マルチキャスト対応中継制御部２０８から受け取った次段サーバのアドレスへのＴＣＰコネクションが張られていない場合、ＴＣＰコネクションを開設し、中継データを送信する（Ｆ２２４）。送信完了後、コネクションを切断してもよいし、そのままにしてもよい。
【０１１４】
以上の動作によって、中継サーバの中継動作によって、コンテンツ取得依頼を行ったキャッシュサーバは、コンテンツを取得する事が出来る。また、複数のコンテンツ取得要求が、同じコンテンツ識別子をもつコンテンツを要求している場合、同一の次段サーバへのフォワーディングが可能な間は１つの中継データとしてフォワーディングするため、ネットワークの資源（帯域やルータのフォワーディング能力）の消費量を削減する事が可能である。
次に、図７において、キャッシュサーバＣ１０３と、キャッシュサーバＣ１０２が、キャッシュサーバＣ１０１から、アクティブキャッシュのための１０ＫバイトのコンテンツＸを取得する場合を説明する。
【０１１５】
中継サーバＭ２０１、Ｍ２０２の設定情報は図１１，１２のようなものであったとする。また、ネットワークの経路は、Ｃ１０１からＣ１０３までが、Ｃ１０１→Ｒ１０１→Ｒ１０２→Ｒ１０３→Ｒ１０５→Ｃ１０３であり，Ｃ１０１からＣ１０２までが、Ｃ１０１→Ｒ１０１→Ｒ１０２→Ｒ１０３→Ｒ１０４→Ｃ１０２であり、Ｃ１０１からＭ２０２までが、Ｃ１０１→Ｒ１０１→Ｒ１０２→Ｍ２０２であり、Ｍ２０２からＭ２０１までが、Ｍ２０２→Ｒ１０２→Ｒ１０３→Ｍ２０１であり、Ｍ２０１からＣ１０３までが、Ｍ２０１→Ｒ１０３→Ｒ１０５→Ｃ１０３であり、Ｍ２０１からＣ１０２までが、Ｍ２０１→Ｒ１０３→Ｒ１０４→Ｃ１０２であったとする。
【０１１６】
さらに、これらの経路に関連するリンクＬ０，Ｌ２，Ｌ３，Ｌ４と、サブネットＮ５，Ｎ４，Ｎ３，Ｎ２，Ｎ１の内部リンクのうち、Ｌ０，Ｌ２が非常に混雑しており、図１３のように遅延が推移したとする。また、キャッシュサーバＣ１０３と、キャッシュサーバＣ１０２のアクティブキャッシュコンテンツを取得しようとした時刻をそれぞれ、ｔ１，ｔ２とする。
【０１１７】
キャッシュサーバＣ１０２は、時刻ｔ１において、中継サーバの中の１つ（ここでは、中継サーバＭ２０１とする）を知っており、以下のコンテンツ取得依頼情報を中継サーバＭ２０１へと渡す。
【０１１８】
コンテンツ取得依頼情報：＊取得サーバ名：Ｃ１０１＊取得コンテンツ識別子：コンテンツＸの識別子＊取得要求識別子：この要求を特定出来る識別子＊依頼者ネットワークアドレス：Ｃ１０２のネットワークアドレス中継サーバＭ２０１では、設定情報記憶部１０５の、中継開始サーバテーブルを参照して、Ｃ１０１からコンテンツを取得する場合の、中継を開始する中継サーバが、Ｍ２０２である事を得る。このコンテンツ取得情報を、中継サーバＭ２０２へと転送する。中継サーバＭ２０２では、他の中継サーバから転送されてきたコンテンツ取得依頼情報であるので、取得サーバ名に書かれている、Ｃ１０１からコンテンツＸを取得しようとする。しかし、Ｃ１０１から、Ｍ２０２までの経路上は混雑しているので、設定情報の取得条件を満たしていないので、この取得コンテンツ取得要求は待たされる。
【０１１９】
次に、キャッシュサーバＣ１０３は、時刻ｔ２において、中継サーバの中の１つ（ここでは、中継サーバＭ２０１とする）を知っており、以下のコンテンツ取得依頼情報を中継サーバＭ２０１へと渡す。
【０１２０】
コンテンツ取得依頼情報：＊取得サーバ名：Ｃ１０１＊取得コンテンツ識別子：コンテンツＸの識別子＊取得要求識別子：この要求を特定出来る識別子＊依頼者ネットワークアドレス：Ｃ１０３のネットワークアドレス中継サーバＭ２０１では、設定情報記憶部の、中継開始サーバテーブルを参照して、Ｃ１０１からコンテンツを取得する場合の、中継を開始する中継サーバが、Ｍ２０２である事を得る。このコンテンツ取得情報を、中継サーバＭ２０２へと転送する。Ｍ２０２において、このＣ１０３からのコンテンツ取得リクエストの取得コンテンツ識別子は、待たされている、Ｃ１０２からのコンテンツリクエストと同じ、取得コンテンツ識別子（コンテンツＸ）を持っているため、このコンテンツＸの拾得はまとめて行われる。時刻ｔ４において、Ｃ１０１からＭ２０２までのネットワーク遅延が取得条件を満たすので，Ｍ２０２からコンテンツＸを取得し、サイズを求める。Ｍ２０２の内部では、取得したコンテンツを図１４の内容をもつ中継データとして、中継制御部２０８に渡される。
【０１２１】
次に、Ｍ２０２では、中継データフォワーディング動作２−１が実行される。この時点での時刻が、ｔ４であったとする。まず、中継データの、最初の宛先毎の付加情報中の、最終宛先である、Ｃ１０２に対する次段サーバは、設定情報記憶部の中継データフォワーディングテーブル（図１２）を参照して、中継サーバＭ１０２であることを知る。図１３からわかるように、時刻ｔ４において、リンクＬ２の遅延が大きく、次段サーバへのフォワーディング条件をみたさない（１０Ｋのコンテンツは、次段サーバへの遅延１００ｍｓ以下でなければ、条件を満たせないが、時刻ｔ４では、Ｌ２の遅延が大きく、これを満たせない）。このため、図１４の中継データから、図１５のフォーマットのデータを生成して、記憶部１１０へ格納する。次に、中継データの２番目の宛先毎の付加情報中の、最終宛先である、Ｃ１０３に対する次段サーバは、設定情報記憶部の中継データフォワーディングテーブル（図１２）を参照して、中継サーバＭ１０２であることを知る。同様に、フォワーディング条件を満たさないため、図１５の形で、記憶部されている中継データに、中継データーの２つめの、宛先毎の付加情報を追加し、結局、図１６のような中継データが記憶部に記憶される。そして元の中継データ（図１４）は破棄される。
【０１２２】
次に、中継データフォワーディング動作２−２が何度か実行されるが、リンクＬ２の混雑が解消されるまで、中継データはフォワードされないままとなる。中継データフォワーディング動作２−２が、時刻ｔ７で実行されるとする。このとき、中継データの、最初の宛先毎の付加情報中の、最終宛先である、Ｃ１０２に対する次段サーバと、２番目の宛先毎の付加情報中の、最終宛先である、Ｃ１０３に対する次段サーバが共に、Ｍ２０１であるので，図１６の形式の中継データは、そのまま、Ｍ２０１へとフォワードされる。
【０１２３】
次に、Ｍ２０１は、中継データを受け取り、中継データフォワーディング動作２−１を実行する。まず、中継データ（図１６）の、最初の宛先毎の付加情報中の、最終宛先である、Ｃ１０２に対する次段サーバは、設定情報記憶部の中継データフォワーディングテーブル（図１１）を参照して、最終宛先である、キャッシュサーバＣ１０２であることを知る。さらに、中継データの２番目の宛先毎の付加情報中の、最終宛先Ｃ１０３への次段サーバは、設定情報記憶部の中継データフォワーディングテーブル（図１１）を参照して，キャッシュサーバＣ１０３であることも知る。この時点（ｔ８とする）で、Ｍ２０１からＣ１０２、Ｃ１０３への遅延が十分小さく、フォワーディング条件を満たすとする。
【０１２４】
この結果、図１６の中継データから、Ｃ１０２へフォワーディングする中継データ（図１７）と、Ｃ１０３へフォワーディングする中継データ（図１８）が生成され、ＴＣＰ処理部Ｂへと受け渡される。ＴＣＰ処理部Ｂでは、Ｃ１０２，Ｃ１０３へのコネクションが張られていなければ、コネクションを開設し，図１７，図１８のコンテンツを、それぞれ、Ｃ１０２，Ｃ１０３へ送信する。
【０１２５】
従来のキャッシュサーバで、同様のアクティブキャッシュのコンテンツを取得する場合、キャッシュサーバＣ１０２は、キャッシュサーバＣ１０１から、キャッシュサーバＣ１０２までのすべての区間でネットワーク負荷が低い場合にのみ、Ｃ１０１からアクティブキャッシュを実行出来、キャッシュサーバＣ１０３は、キャッシュサーバＣ１０１から、キャッシュサーバＣ１０３までのすべての区間でネットワーク負荷が低い場合にのみ，アクティブキャッシュ動作を実行出来る。上記の例で図１３のように負荷が推移した場合、時刻ｔ９になっても、まだ、Ｃ１０２，Ｃ１０３のいずれも、コンテンツＸを取得出来ない。本発明の第２実施の形態の場合，上記例のように、経路上の負荷の低い部分と中継サーバーを利用して、データを取得したいキャッシュサーバの近くへ持ってくる事が可能であるので、時刻ｔ８から、データをＭ２０１からＣ１０２あるいはＣ１０３へ送る時間後には、Ｃ１０２，Ｃ１０３共に、コンテンツＸを取得する事が可能となっている。
【０１２６】
また、上記例を発明の実施の形態１の中継サーバで実行した場合、Ｃ１０１からＣ１０２，とＣ１０１からＣ１０３へと、２回コンテンツがネットワークを流れるが、実施の形態２の中継サーバでは、Ｃ１０１からＭ１０１までの区間ではコンテンツが一度しか流れないため、ネットワーク資源の消費を減らす事が可能である。
【０１２７】
また、従来のキャッシュサーバでは、アクティブキャッシュをするために、その経路上の負荷を監視し、転送すべきかどうかを判断する事をキャッシュサーバ自身で行わなければならないが、本発明第２の実施の形態の中継サーバを用いれば、取得したいアクティブキャッシュに関するコンテンツを、中継サーバのうちの１台に伝えるだけでよいため、この負荷を中継サーバへと肩代わりさせる事が可能となる。
【０１２８】
以上のように、本発明によって、ネットワークの負荷が低い時を利用したアクティブキャッシュの成功率を上げる事が可能となる。また、キャッシュサーバがアクティブキャッシュを行う負荷を低減する事が可能となる。
【０１２９】
次に、第３の実施の形態について説明する。図１９が，発明の第３の形態のネットワーク構成を示している．経路制御可能ルータＲ３０１〜Ｒ３０５が、リンクＬ０〜Ｌ５を用いて、サブネットＮ１〜Ｎ５を接続している。経路制御可能ルータＲ３０１〜Ｒ３０５は、ＱＯＳＰＦ等の、リンク毎の残余帯域や遅延情報を含んだ経路情報を互いにやりとりする、ＱｏＳ経路制御プロトコルが動作している。ＷｅｂサーバＳ１０１，Ｓ１０２は，それぞれサブネットＮ５，Ｎ２内に存在し，様々なＷｅｂコンテンツ情報を保持している。サブネットＮ１，Ｎ４には，Ｗｅｂサーバへのアクセスを行う端末Ｔ１０１，Ｔ１０２が存在する．また，キャッシュサーバＣ１０１，Ｃ１０２がサブネットＮ１，Ｎ４に配置されている．また、中継サーバＭ３０１，Ｍ３０２も、サブネットＮ３，Ｎ２にそれぞれ配置されている。
【０１３０】
キャッシュサーバは、アクティブキャッシュ動作を行う場合、ネットワークの経路上の負荷情報（空き帯域情報や、遅延情報）を得て，経路上に負荷が高い場所があり、アクティブキャッシュ動作が行えないと判断した場合、中継サーバを使ったアクティブキャッシュ動作を実施する。この動作の概略をまず説明する。
【０１３１】
中継サーバとは、ネットワーク上に配置され、アクティブキャッシュ動作のためのデータを中継転送するサーバで、キャッシュサーバ機能をもっていてもよい。キャッシュサーバは、ネットワーク中の１つの中継サーバのアドレスを知っており、この最初の中継サーバに対して、以下の“コンテンツ取得依頼情報”を受け渡す。
【０１３２】
＊取得サーバ名：どのキャッシュサーバ、あるいは、Ｗｅｂサーバからコンテンツを取得するのかを示す。
【０１３３】
＊取得コンテンツ識別子：取得するコンテンツの識別子を示す。例えば現在のＷｅｂでは、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）などである。複数あってもよい。
【０１３４】
＊取得要求識別子：取得するコンテンツの識別子を示す。要求元のキャッシュサーバが一意に与え、コンテンツを受け取った時に出来た時に、どの要求に対するコンテンツなのか判断するのに使用する。
【０１３５】
＊依頼者ネットワークアドレス：取得を依頼している、キャッシュサーバのネットワークアドレスを示す。
【０１３６】
＊有効期限：取得要求の有効期限を示す。
【０１３７】
このコンテンツ取得依頼情報を受け取った中継サーバは、コンテンツ依頼情報中の取得サーバ名に対して、最初にどの中継サーバから中継を開始するか、という情報を設定情報として保持している。中継サーバは、コンテンツ取得依頼情報を、この、中継を開始する中継サーバへと送る。
【０１３８】
コンテンツ取得依頼情報を受け取った中継を開始する中継サーバは、コンテンツを取得して、他の中継サーバへコンテンツを中継し、最終的に、依頼者ネットワークアドレスのキャッシュサーバへコンテンツを送り届ける。以下では、上記動作を行う中継サーバの内部構成を説明する。
【０１３９】
図２０が中継サーバの内部構成図である。各構成要素の動作をまず説明する。
【０１４０】
＊ＱｏＳ経路情報収集部（３５０）：ＱｏＳ経路制御プロトコルが動作しているルータから、ＱｏＳ経路情報（ルータ間を接続するリンク情報と、そのリンクの残余帯域や遅延の情報）を収集する。
【０１４１】
＊経路設定部（３６０）：経路設定可能ルータに対して、経路設定および解除を行う。
【０１４２】
＊コンテンツ取得指示部（１０２）：コンテンツ取得依頼情報を受け取る。他の中継サーバから、コンテンツ取得依頼情報が転送されてきた場合，コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す。そうではない場合、設定情報記憶部２０５の情報をもとに、中継を開始する中継サーバを決定し、その中継サーバの、コンテンツ取得指示部へ、コンテンツ取得依頼情報を転送する。もし、自分自身が中継を開始する中継サーバで合った場合は、コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す。
【０１４３】
＊コンテンツ取得部（３０３）：まず、設定情報記憶部１０５に記憶されている取得条件を得る。コンテンツ取得依頼情報の中の、”取得サーバ名”に書かれているキャッシュサーバ、あるいは、Ｗｅｂサーバからの現在の経路上の負荷情報を、ネットワーク情報収集部から得て、取得条件を満たすかどうかを判断する。満たさない場合には、ＱｏＳ経路情報取得部３５０から得たＱｏＳ経路情報を基に、取得条件を満たす経路を計算する。見つからない場合には、一定時間待って、最初からやり直す。
【０１４４】
現在の経路が、取得条件を満たす場合、取得コンテンツ識別子”の示すコンテンツを取得する。現在の経路が取得条件を満たさず、経路計算によって、取得条件を満たす経路が見つかった場合、経路設定部３６０に、計算で求まった経路を設定させ、その経路を用いて、取得コンテンツ識別子" の示すコンテンツを取得する。次に、いずれの場合も、コンテンツサイズを求めて、”依頼者ネットワークアドレス”、”取得コンテンツ識別子”、”取得要求識別子”、求めたサイズ、”有効期限”，取得したコンテンツ、を、それぞれ、図２１のフォーマットの、最終宛先、コンテンツ識別子、取得要求識別子、コンテンツサイズ、有効期限（この５つを付加情報と呼ぶ）、コンテンツ、とした中継データを、中継制御部１０８に受け渡す。経路設定部に経路を設定させている場合には、その経路を経路設定部３６０へ指示して解除する。
【０１４５】
＊設定情報記憶部（１０５）：以下の４つの情報を記憶している。これらの情報は動的に変更されてもよい。
【０１４６】
中継データフォワーディングテーブル：中継データの最終宛先毎に、次に、どこへ中継データを受け渡せばよいか（この受け渡し相手を次段サーバと呼ぶ）を、設定情報として記憶している。中継データの候補は複数あってもよく、複数ある場合には、優先順位をつけておく。
【０１４７】
中継開始サーバテーブル：コンテンツ依頼情報中の取得サーバ名に対して、最初にどの中継サーバから中継を開始するか、という情報も設定情報として保持している。なお、次段サーバとして可能性があるのは、他の中継サーバか、最終宛先であるキャッシュサーバかのいずれかである。
【０１４８】
取得条件：コンテンツ取得部３０３が、コンテンツを取得する際に、取得を行うかどうかを決める取得条件も記憶している。この条件は、負荷情報が、設定された遅延以下であるか、や、空き帯域値が、設定された閾値以上であるかという条件である。コンテンツを取得することなくコンテンツサイズが得られる場合には、サイズに応じてこの閾値が変わってもいいし、コンテンツサイズに応じて、遅延か、空き帯域のいずれを基準とするかが変わっても良い。
【０１４９】
フォワーディング条件：中継制御部（１０８）でのフォワーディングを行う時の、フォワーディング条件を記憶している。この条件は、負荷情報が、設定された遅延以下であるか、や、空き帯域値が、設定された閾値以上であるかという条件である。また、フォワーディング条件については、コンテンツサイズに応じて、この閾値が変わってもいいし、コンテンツサイズに応じて、遅延か、空き帯域のいずれを基準とするかが変わっても良い。また、有効期限までの時間に応じて、条件が変わっても良い。
【０１５０】
＊中継制御部（１０８）：以下の中継データフォワーディング動作１、および、中継データフォワーディング動作２を行う。中継データフォワーディング動作１は、中継データを受け取った事をきっかけに行い、中継フォワーディング動作２は、記憶部１１０に格納されたデータに対して定期的に行う。
【０１５１】
中継データフォワーディング動作３−１：ステップ１：設定情報記憶部に記憶されたフォワーディング条件を得る。
【０１５２】
ステップ２：中継データの最終宛先毎に決められた、次段サーバを設定情報記憶部から得る。次段サーバの候補は複数あってもよく、複数ある場合には、その優先度とともに複数の次段サーバ候補を得る。
【０１５３】
ステップ３：次段サーバとの間のネットワーク負荷情報（遅延や空き帯域情報）を、ネットワーク情報収集１０７から得る。
【０１５４】
ステップ４：ネットワーク負荷情報１０７から得られた負荷情報が、設定情報記憶部に記憶されたフォワーディング条件を満たしているかどうか調べる。条件を満たす場合にはステップ７へ進み、満たさない場合にはステップ５へ分岐する。次段中継サーバの候補が複数ある場合には、その優先順にこの判定を行い、満たした時点でステップ７へ進み、すべてについて満たさない場合には、ステップ５へ分岐する。
【０１５５】
ステップ５：ＱｏＳ経路情報収集部から、ＱｏＳ経路情報を得て、フォワーディング条件を満たす、次段サーバへの経路を計算する。見つからなければ、ステップ６へ進み、見つかれば、ステップ７へ進む。次段サーバの候補が複数ある場合、優先度順に、経路を計算してゆき、見つかった時点で、ステップ７へ進み、全く見つからなければ、ステップ６へ進む。
【０１５６】
ステップ６：有効期限が切れていなければ記憶部１１０へ中継データを記憶する。記憶スペースがなければ、有効期限切れのもの、あるいは、古いものから順に消去して、スペースをつくる。有効期限が切れていれば、中継データを破棄。あるいは、中継サーバがキャッシュサーバ機能を持つ場合には、破棄せず、キャッシュサーバ機能がこれをキャッシュデータとして利用してもよい。有効期限が切れたことを、最終宛先のキャッシュサーバーへ通知。終了。
【０１５７】
ステップ７：ＴＣＰ処理部Ｂ１０９へ、次段サーバのアドレスと、中継データと、計算された経路がある場合にはそれも受け渡す。これで終了となる。
【０１５８】
中継データフォワーディング動作３−２：ステップ１：記憶部１１０に格納された中継データに関して、有効期限が切れていれば破棄し、最終宛先のキャッシュサーバーへ通知して終了となる。切れていなければ、ステップ２へ進む。
【０１５９】
ステップ２：中継データの最終宛先毎に決められた、次段サーバを設定情報記憶部から得る。次段サーバの候補は複数あってもよく、複数ある場合には、その優先度とともに複数の次段サーバ候補を得る。
【０１６０】
ステップ３：次段サーバとの間のネットワーク負荷情報（遅延や空き帯域情報）を、ネットワーク情報収集１０７から得る。
【０１６１】
ステップ４：ＱｏＳ経路情報収集部から、ＱｏＳ経路情報を得て、フォワーディング条件を満たす、次段サーバへの経路を計算する。見つからなければ、ステップ５へ進み、見つかれば、ステップ６へ進む。次段サーバの候補が複数ある場合、優先度順に、経路を計算してゆき、見つかった時点で、ステップ６へ進み、全く見つからなければ、ステップ５へ進む。
【０１６２】
ステップ５：ＱｏＳ経路情報収集部から、ＱｏＳ経路情報を得て、フォワーディング条件を満たす、次段サーバへの経路を計算する。見つからなければ終了となる。見つかれば、ステップ６へ進む。次段サーバの候補が複数ある場合、優先度順に、経路を計算してゆき、見つかった時点で、ステップ６へ進む。全く見つからなければ終了となる。
【０１６３】
ステップ６：ＴＣＰ処理部Ｂ１０９へ、次段サーバのアドレスと、中継データと、もし、計算された経路がある場合にはそれも受け渡す。これで終了となる。
【０１６４】
格納された中継データのそれぞれに関して、中継データフォワーディング動作２を行う順番は、最終宛先ごとにラウンドロビンしたり、コンテンツサイズを考慮して優先度を変えたり、有効期限の切れそうなものほど優先度を上げる等して決める。
【０１６５】
＊ＴＣＰ処理部Ｂ（３０９）：中継制御部３０８から，次段サーバのアドレスと中継データを受け取る。同時に、次段サーバへの経路情報を受け取る場合もある。経路情報を受け取らなかった場合、受け取った次段サーバのアドレスへのＴＣＰコネクションが張られていない場合、ＴＣＰコネクションを開設し、中継データを送信する。送信完了後、コネクションを切断してもよいし、そのままにしてもよい。経路情報を受け取った場合には、まず、経路設定部３６０へ次段サーバへの経路情報を渡して経路を設定させる。次に、設定した経路を使って、次段サーバのアドレスへのＴＣＰコネクションが張られていない場合、ＴＣＰコネクションを開設し、中継データを送信する。送信完了後、コネクションを切断し、経路も経路設定部３６０へ指示して解除する。
【０１６６】
＊ＴＣＰ処理部Ａ（１０４）：他の中継サーバからのコネクション開設要求を受けて、他の中継サーバとのコネクションを張る。また、そのコネクション上に送信されてくる、中継データを受け取り、中継制御部３０８へと受け渡す。
【０１６７】
＊ネットワーク情報収集部（１０７）：中継制御部３０８によって指定された次段サーバ、あるいは、コンテンツ取得部３０３によって指定されたキャッシュサーバへ、測定パケットを打ったり、ＴＣＰ処理部Ｂから得られる、ＴＣＰのラウンドトリップタイムなどを参照して、測定対象のサーバまでのネットワーク負荷（空き帯域情報や、遅延情報）を計測し、中継制御部308 、あるいは、コンテンツ取得部３０３へその結果を渡す。
【０１６８】
＊記憶部（１１０）：中継データを記憶しておく装置である。
【０１６９】
この中継サーバの動作を図２２を用いて説明する。コンテンツ取得依頼情報を、コンテンツ取得指示部３０２が受け取る（Ｆ３０１）。他の中継サーバから、コンテンツ取得依頼情報が転送されてきた場合（Ｆ３０３），コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す（Ｆ３０８）。そうではない場合（Ｆ３０２）、設定情報記憶部１０５の情報をもとに、中継を開始する中継サーバを決定する(F304)。もし、自分自身が中継を開始する中継サーバであった場合は（Ｆ３０５）、コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す（Ｆ３０８）。そうでない場合、中継を開始する中継サーバの、コンテンツ取得指示部へ、コンテンツ取得依頼情報を転送する（Ｆ３０７）。
【０１７０】
次に、コンテンツ取得部３０３は、設定情報記憶部１０５に記憶されている取得条件を得る。コンテンツ取得依頼情報の中の、”取得サーバ名”に書かれているキャッシュサーバ、あるいは、Ｗｅｂサーバからの現在の経路上の負荷情報を、ネットワーク情報収集部から得て、取得条件を満たすかどうかを判断する（Ｆ３０９）。満たさない場合には（Ｆ３１１）、ＱｏＳ経路情報取得部３５０から得たＱｏＳ経路情報を基に、取得条件を満たす経路を計算する。見つからない場合には（Ｆ３１４）、一定時間待って、最初からやり直す（Ｆ３０９へ戻る）。現在の経路が、取得条件を満たす場合（Ｆ３１０）、取得コンテンツ識別子”の示すコンテンツを取得する（Ｆ３１５）。現在の経路が取得条件を満たさず、経路計算によって、取得条件を満たす経路が見つかった場合（Ｆ３１３）、経路設定部３６０に、計算で求まった経路を設定させ、その経路を用いて、取得コンテンツ識別子”の示すコンテンツを取得する（Ｆ３１５）。次に、いずれの場合も、コンテンツサイズを求めて、”依頼者ネットワークアドレス”、”取得コンテンツ識別子”、”取得要求識別子”、求めたサイズ、”有効期限”，取得したコンテンツ、を、それぞれ、図２１のフォーマットの、最終宛先、コンテンツ識別子、取得要求識別子、コンテンツサイズ、有効期限（この５つを付加情報と呼ぶ）、コンテンツ、とした中継データを生成し（Ｆ３１６），中継制御部に受け渡す（Ｆ３１８）。経路設定部に経路を設定させている場合には、その経路を経路設定部３６０へ指示して解除する。
【０１７１】
ＴＣＰ処理部Ａ１０４が、中継データを他の中継サーバから受信した場合も、中継データを中継制御部１０へ渡す（Ｆ３１７）。
【０１７２】
コンテンツ取得部，あるいは，ＴＣＰ処理部Ａ１０４から、中継データを受け取った中継制御部は、前記の中継データフォワーディング動作３−１を行う。すなわち、中継データの最終宛先毎に決められた、次段サーバを設定情報記憶部１０７から取得し（Ｆ３１９）、次段サーバとの間のネットワーク負荷情報（遅延や空き帯域情報）を、ネットワーク情報収集１０７から取得し、ネットワーク負荷情報１０７から得られた負荷情報が、設定情報記憶部に記憶されたフォワーディング条件を満たしているかどうか調べる（Ｆ３２０）。条件を満たす場合には（Ｆ３２１）、ＴＣＰ処理部Ｂ３０９へ、次段サーバのアドレスと、中継データを受け渡す。満たさない場合には（Ｆ３２２）、ＱｏＳ経路情報収集部から、ＱｏＳ経路情報を得て、フォワーディング条件を満たす、次段サーバへの経路を計算する。見つからなければ（Ｆ３２４）、有効期限が切れていないものについてのみ、記憶部１１０へ中継データを記憶する（Ｆ３２６）。見つかれば、ＴＣＰ処理部Ｂ３０９へ進み、次段サーバのアドレスと、中継データと、計算された経路情報を受け渡す。次段サーバの候補が複数ある場合、優先度順に、経路を計算してゆく。経路が見つかった場合、見つからなかった場合の処理は、それぞれ、前記と同じである。すなわち、見つからなければ、有効期限が切れていないものについてのみ、記憶部１１０へ中継データを記憶する（Ｆ３２６）。見つかれば、ＴＣＰ処理部Ｂ３０９へ、次段サーバのアドレスと、中継データと、計算された経路情報を受け渡す。
【０１７３】
記憶部１１０へ格納された中継データに関しては、定期的に前記の中継データフォワーディング動作３−２を行う（Ｆ３２７）。
【０１７４】
中継データフォワーディング動作３−１，中継データフォワーディング動作３−２の結果、中継制御部３０８から次段サーバのアドレスと中継データ、および、経路計算をしている場合には経路情報も受け取った、ＴＣＰ処理部Ｂ３０９は、経路情報を受け取っていない場合には、中継制御部３０８から受け取った次段サーバのアドレスへのＴＣＰコネクションが張られているかどうか調べ、張られていなければ、ＴＣＰコネクションを開設し、中継データを送信する（Ｆ３２８）。送信完了後、コネクションを切断してもよいし、そのままにしてもよい。
【０１７５】
経路情報も受け取っている場合には、経路情報を受け取った場合には、まず、経路設定部３６０へ次段サーバへの経路情報を渡して経路を設定させる。次に、設定した経路を使って、次段サーバのアドレスへのＴＣＰコネクションが張られていない場合、ＴＣＰコネクションを開設し、中継データを送信する（Ｆ３２８）。送信完了後、コネクションを切断し、経路も経路設定部３６０へ指示して解除する。
【０１７６】
以上の中継サーバの中継動作によって、コンテンツ取得依頼を行ったキャッシュサーバは、コンテンツを取得する事が出来る。
【０１７７】
次に、図１９において、キャッシュサーバＣ１０１が、キャッシュサーバＣ１０２から、アクティブキャッシュのための１０ＫバイトのコンテンツＸを取得する場合を説明する。
【０１７８】
中継サーバＭ３０１、Ｍ３０２の設定情報、は図２３，２４のようなものであったとする。また、ネットワークの経路は、Ｃ１０２からＣ１０１までが、Ｃ１０２→Ｒ３０４→Ｒ３０３→Ｒ３０２→Ｒ３０１→Ｃ１０１，Ｃ１０２からＭ３０１までが、Ｃ１０２→Ｒ３０４→Ｒ３０３→Ｍ３０１，Ｍ３０１からＭ３０２までが、Ｍ３０１→Ｒ３０３→Ｒ３０２→Ｍ３０２，Ｍ３０２からＣ１０１までが、Ｍ３０２→Ｒ３０２→Ｒ３０１→Ｃ１０１であったとする。さらに、これらの経路に関連するリンクＬ０，Ｌ１，Ｌ３，Ｌ４と、サブネットＮ４，Ｎ３，Ｎ２，Ｎ１の内部リンクのうち、Ｌ２のみが非常に混雑しているとする。さらに、中継サーバＭ３０１，Ｍ３０２のＱｏＳ経路情報収集部が得た、ＱｏＳ経路情報は図２５のようなものであったとする。
【０１７９】
キャッシュサーバＣ１０１は、中継サーバの中の１つ（ここでは、中継サーバＭ３０２とする）を知っており、以下のコンテンツ取得依頼情報を中継サーバＭ３０２へと渡す。
【０１８０】
コンテンツ取得依頼情報：＊取得サーバ名：Ｃ１０２＊取得コンテンツ識別子：コンテンツＸの識別子＊取得要求識別子：この要求を特定出来る識別子＊依頼者ネットワークアドレス：Ｃ１０２のネットワークアドレス中継サーバＭ３０２では、設定情報記憶部の、中継開始サーバテーブルを参照して、Ｃ１０２からコンテンツを取得する場合の、中継を開始する中継サーバが、Ｍ３０１である事を得る。このコンテンツ取得情報を、中継サーバＭ３０１へと転送する。中継サーバＭ３０１では、他の中継サーバから転送されてきたコンテンツ取得依頼情報であるので、取得サーバ名に書かれている、Ｃ１０２からコンテンツＸを取得する（このときサイズが、１０Ｋバイトであるとわかる）。この時、Ｃ１０２から、Ｍ３０２までの経路上は混雑していないので、その経路の負荷は、設定情報の取得条件を満たしているものとする。Ｃ１０２の内部では、取得したコンテンツを以下の内容をもつ中継データとして、中継制御部１０８に渡される。
【０１８１】
最終宛先：Ｃ１０１コンテンツ識別子：コンテンツＸの識別子取得要求識別子：要求を特定出来る識別子コンテンツサイズ：１０Ｋバイトコンテンツ：取得したコンテンツＸ次に、Ｍ３０１では、設定情報記憶部の中継データフォワーディングテーブル（図２４）を参照して、最終宛先がＣ１０１のコンテンツは、中継サーバＭ３０２へフォワードする事を知る。また、この時、Ｍ３０２とＭ３０１の間経の現在の経路（Ｍ３０１→Ｒ３０３→Ｒ３０２→Ｍ３０２）上のリンクＬ２が混雑しており、Ｍ３０２とＭ３０１の間の遅延が５００ｍｓであったとする。フォワーディング動作３−１において、次段サーバ（Ｍ３０２）への経路の負荷は、フォワーディング条件（コンテンツサイズが２０Ｋバイト未満なら、遅延１００ｍｓ以下）を満たさない。そこで、ＱｏＳ経路情報取得部から得られたＱｏＳ経路情報（図２５）を用いて、フォワーディング条件にあう経路が、Ｍ３０１→Ｒ３０３→Ｒ３０５→Ｒ３０２→Ｍ３０２であると求まる。この経路を用いて中継データが、Ｍ３０１からＭ３０２まで転送される。
【０１８２】
次に、Ｍ３０２は、中継データを受け取り、図２３の、Ｍ３０２の中継データフォワーディングテーブル（図２４）を参照して、フォワード先が、最終宛先である、Ｃ１０１であることを知る。Ｍ３０２からＣ１０１までの経路（Ｍ３０２→Ｒ３０２→Ｒ３０１→Ｃ１０１）は混雑しておらず、フォワーディング条件を満たし、中継データは、キャッシュサーバＣ１０１へと送り届けられる。
【０１８３】
従来のキャッシュサーバで、同様のアクティブキャッシュのコンテンツを取得する場合、キャッシュサーバＣ１０２から、キャッシュサーバＣ１０１までのすべての区間でネットワーク負荷が低い場合にのみ、アクティブキャッシュを実行出来るが、本発明の第３実施の形態の場合，上記例のように、経路上の負荷の低い部分を利用して、データを取得したいキャッシュサーバへ持ってくる事が可能である。上記の例では、従来のキャッシュサーバでは、アクティブキャッシュを実行できないが、混雑したリンクＬ２を迂回することにより、アクティブキャッシュ動作が可能となっている。
【０１８４】
また、従来のキャッシュサーバでは、アクティブキャッシュをするために、その経路上の負荷を監視し、転送すべきかどうかを判断する事をキャッシュサーバ自身で行わなければならないが、本発明第１の実施の形態の中継サーバを用いれば、取得したいアクティブキャッシュに関するコンテンツを、中継サーバのうちの１台に伝えるだけでよいため、この負荷を中継サーバへと肩代わりさせる事が可能となる。
【０１８５】
また、本発明の第１の実施の構成の場合、Ｍ３０１までコンテンツを持ってきた後は、Ｌ２の負荷が下がるまで待たなければならなかったが、本発明の第３の実施の形態では、中継サーバがＱｏＳ経路情報取得部を用いて、負荷の低い経路をみつけ、経路設定可能ルータに経路を設定することによって、負荷の低い経路を利用し，リンクＬ２の負荷が下がるのを待つことなく、アクティブキャッシュ動作を完了する事が出来る。
【０１８６】
以上のように、本発明の第３の実施の形態によって、ネットワークの負荷が低い時を利用したアクティブキャッシュの成功率を上げる事が可能となる。また、キャッシュサーバがアクティブキャッシュを行う負荷を低減する事が可能となる。また、アクティブキャッシュ完了までの時間を短縮する事が可能となる。
【０１８７】
次に、第４の実施の形態について説明する。図２６が，本発明の第４の形態のネットワーク構成を示している。経路設定可能ルータＲ４０１〜Ｒ４０５が、リンクＬ０〜Ｌ４を用いて、サブネットＮ１〜Ｎ５を接続している。経路制御可能ルータＲ４０１〜Ｒ４０５は、ＱＯＳＰＦ等の、リンク毎の残余帯域や遅延情報を含んだ経路情報を互いにやりとりする、ＱｏＳ経路制御プロトコルが動作している。ＷｅｂサーバＳ１０１，Ｓ１０２は，それぞれサブネットＮ５，Ｎ２内に存在し，様々なＷｅｂコンテンツ情報を保持している。サブネットＮ１，Ｎ４には，Ｗｅｂサーバへのアクセスを行う端末Ｔ１０１，Ｔ１０２が存在する。また，キャッシュサーバＣ１０１，Ｃ１０２がサブネットＮ１，Ｎ４に配置されている。また、中継サーバＭ２０１，Ｍ２０２も、サブネットＮ３，Ｎ２にそれぞれ配置されている。
【０１８８】
キャッシュサーバは、アクティブキャッシュ動作を行う場合、ネットワークの経路上の負荷情報（空き帯域情報や、遅延情報）を得て，経路上に負荷が高い場所があり、アクティブキャッシュ動作が行えないと判断した場合、中継サーバを使ったアクティブキャッシュ動作を実施する。この動作の概略をまず説明する。
【０１８９】
中継サーバとは、ネットワーク上に配置され、アクティブキャッシュ動作のためのデータを中継転送するサーバで、キャッシュサーバ機能をもっていてもよい。キャッシュサーバは、ネットワーク中の１つの中継サーバのアドレスを知っており、この最初の中継サーバに対して、以下の“コンテンツ取得依頼情報”を受け渡す。
【０１９０】
キャッシュサーバは、ネットワーク中の１つの中継サーバのアドレスを知っており、この最初の中継サーバに対して、以下の“コンテンツ取得依頼情報”を受け渡す。
【０１９１】
＊取得サーバ名：どのキャッシュサーバ、あるいは、Ｗｅｂサーバからコンテンツを取得するのかを示す。
【０１９２】
＊取得コンテンツ識別子：取得するコンテンツの識別子を示す。例えば現在のＷｅｂでは、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）などである。複数あってもよい。
【０１９３】
＊取得要求識別子：取得するコンテンツの識別子を示す。要求元のキャッシュサーバが一意に与え、コンテンツを受け取った時に出来た時に、どの要求に対するコンテンツなのか判断するのに使用する。
【０１９４】
＊依頼者ネットワークアドレス：取得を依頼している、キャッシュサーバのネットワークアドレスを示す（複数あってもよい）。
【０１９５】
＊有効期限：取得要求の有効期限を示す。
【０１９６】
このコンテンツ取得依頼情報を受け取った中継サーバは、コンテンツ依頼情報中の取得サーバ名に対して、最初にどの中継サーバから中継を開始するか、という情報を設定情報として保持している。中継サーバは、コンテンツ取得依頼情報を、この、中継を開始する中継サーバへと送る。コンテンツ取得依頼情報を受け取った中継を開始する中継サーバは、コンテンツを取得して、他の中継サーバへコンテンツを中継し、最終的に、依頼者ネットワークアドレスのキャッシュサーバへコンテンツを送り届ける。また、中継開始サーバで、複数の取得依頼要求の、取得コンテンツ識別子が、同一である場合には、後述するように、複数の要求をまとめて、キャッシュサーバへと送り届ける。
【０１９７】
以下では、上記動作を行う中継サーバの内部構成を説明する。図２７が中継サーバの内部構成図である。各構成要素の動作をまず説明する。
【０１９８】
＊ＱｏＳ経路情報収集部（３５０）：ＱｏＳ経路制御プロトコルが動作しているルータから、ＱｏＳ経路情報（ルータ間を接続するリンク情報と、そのリンクの残余帯域や遅延の情報）を収集する。
【０１９９】
＊経路設定部（３６０）：経路設定可能ルータに対して、経路設定および解除を行う。
【０２００】
＊コンテンツ取得指示部（１０２）：コンテンツ取得依頼情報を受け取る。他の中継サーバから、コンテンツ取得依頼情報が転送されてきた場合，コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す。そうではない場合、設定情報記憶部１０５の情報をもとに、中継を開始する中継サーバを決定し、その中継サーバの、コンテンツ取得指示部へ、コンテンツ取得依頼情報を転送する。もし、自分自身が中継を開始する中継サーバで合った場合は、コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す。
【０２０１】
＊コンテンツ取得部（４０３）：まず、設定情報記憶部１０５に記憶されている取得条件を得る。コンテンツ取得依頼情報の中の、”取得サーバ名”に書かれているキャッシュサーバ、あるいは、Ｗｅｂサーバからの現在の経路上の負荷情報を、ネットワーク情報収集部から得て、取得条件を満たすかどうかを判断する。満たさない場合には、ＱｏＳ経路情報取得部３５０から得たＱｏＳ経路情報を基に、取得条件を満たす経路を計算する。見つからない場合には、一定時間待って、最初からやり直す。取得コンテンツ識別子が、同一であるコンテンツ取得要求が到着した場合には、複数の要求をまとめ、１回の取得でコンテンツを取得する。現在の経路が、取得条件を満たす場合、取得コンテンツ識別子”の示すコンテンツを取得する。現在の経路が取得条件を満たさず、経路計算によって、取得条件を満たす経路が見つかった場合、経路設定部３６０に、計算で求まった経路を設定させ、その経路を用いて、取得コンテンツ識別子”の示すコンテンツを取得する。コンテンツサイズを求める。
【０２０２】
取得したコンテンツは、図２８のフォーマットにするが、この時、複数のコンテンツ取得依頼をまとめて１度で取得した場合には、宛先数は、まとめた依頼の数の依頼者ネットワークアドレスの数の合計となる。そうでない場合、宛先数は、１つの取得依頼の中の、依頼者ネットワークアドレスの数である。また、複数あるいは単数のコンテンツ取得依頼の、依頼者ネットワークアドレス毎に、”依頼者ネットワークアドレス”、”取得コンテンツ識別子”、”取得要求識別子”、”有効期限”の情報を、図２８のように、宛先毎の付加情報として付与する（１つの取得依頼の中に、依頼者ネットワークアドレスが複数ある場合には、”取得要求識別子”、”有効期限”は、複数ある依頼者ネットワークアドレスに対して、コピーしてしようする).さらに、コンテンツ識別子のフィールドには、複数あるいは単数のコンテンツ取得依頼の、”取得コンテンツ識別子“を書き入れ（どの依頼も同一の識別子）、求めたコンテンツサイズを、コンテンツサイズのフィールドに書き込む。こうして生成した中継データを、マルチキャスト対応中継制御部に受け渡す。経路設定部に経路を設定させている場合には、その経路を経路設定部３６０へ指示して解除する。
【０２０３】
＊設定情報記憶部（１０５）：以下の４つの情報を記憶している。これらの情報は動的に変更されてもよい。
【０２０４】
中継データフォワーディングテーブル：中継データの最終宛先毎に、次に、どこへ中継データを受け渡せばよいか（この受け渡し相手を次段サーバと呼ぶ）、設定情報として記憶している。中継データの候補は複数あってもよく、複数ある場合には、優先順位をつけておく。
【０２０５】
中継開始サーバテーブル：コンテンツ依頼情報中の取得サーバ名に対して、最初にどの中継サーバから中継を開始するか、という情報も設定情報として保持している。なお、次段サーバとして可能性があるのは、他の中継サーバか、最終宛先であるキャッシュサーバかのいずれかである。
【０２０６】
取得条件：コンテンツ取得部１０３が、コンテンツを取得する際に、取得を行うかどうかを決める取得条件も記憶している。この条件は、負荷情報が、設定された遅延以下であるか、や、空き帯域値が、設定された閾値以上であるかという条件である。コンテンツを取得することなくコンテンツサイズが得られる場合には、サイズに応じてこの閾値が変わってもいいし、コンテンツサイズに応じて、遅延か、空き帯域のいずれを基準とするかが変わっても良い。
【０２０７】
フォワーディング条件：マルチキャスト対応中継制御部（２０８）でのフォワーディングを行う時の、フォワーディング条件を記憶している。この条件は、負荷情報が、設定された遅延以下であるか、や、空き帯域値が、設定された閾値以上であるかという条件である。また、フォワーディング条件については、コンテンツサイズに応じて、この閾値が変わってもいいし、コンテンツサイズに応じて、遅延か、空き帯域のいずれを基準とするかが変わっても良い。また、有効期限までの時間に応じて、条件が変わっても良い。
【０２０８】
＊マルチキャスト対応中継制御部（２０８）：以下の中継データフォワーディング動作２−１、および、中継データフォワーディング動作２−２を行う。中継データフォワーディング動作２−１は、中継データを受け取った事をきっかけに行い、中継フォワーディング動作２−２は、記憶部１１０に格納されたデータに対して定期的に行う。
【０２０９】
中継データフォワーディング動作４−１：ステップ１：Ｎ＝宛先数，Ｉ＝１とする。Ｎ＜Ｉならステップ７へ進み、Ｎ≧Ｉなら、ステップ２へ進む。
【０２１０】
ステップ２：中継データの先頭からＩ番目の最終宛先を取り出し、最終宛先毎に決められた、次段サーバを設定情報記憶部から得る。次段サーバの候補は複数あってもよく、複数ある場合には、複数得ておく。
【０２１１】
ステップ３：次段サーバとの間のネットワーク負荷情報（遅延や空き帯域情報）を、ネットワーク情報収集１０７から得る。
【０２１２】
ステップ４：ネットワーク負荷情報１０７から得られた負荷情報が、設定情報記憶部に記憶されたフォワーディング条件を満たしているかどうか調べる。条件を満たす場合には、ステップ７へ進み、満たさない場合には、ステップ６へ分岐する。次段サーバの候補が複数ある場合には、その優先順にこの判定を行い、満たした時点で、ステップ６へ進み、すべてについて満たさない場合には、ステップ６へ分岐する。
【０２１３】
ステップ５：既計算経路を調べ、次段サーバと関連づけられた経路が既にあるかどうか調べる。あればステップ７へ進み、なければ、ＱｏＳ経路情報収集部からＱｏＳ経路情報を得て、フォワーディング条件を満たす次段サーバへの経路を計算する。見つからなければ、ステップ６へ進む。見つかれば、ステップ７へ進む。次段サーバの候補が複数ある場合、優先度順に、経路を計算してゆき、見つかった時点で、ステップ７へ進む。全く見つからなければ、ステップ６へ進む。見つかった経路は、”既計算経路”として、次段サーバと関連づけて記憶しておく。
【０２１４】
ステップ６：もし、Ｉ番目の有効期限が切れていなければ，記憶部１１０へ中継データを記憶する。この時、すでに、記憶部に同一の中継データが記憶されていない場合、宛先数を１、Ｉ番目の宛先毎の付加情報フィールド、コンテンツ識別子、コンテンツサイズを取り出して、図２８のフォーマットで、中継データを記憶する。すでに記憶されている場合、宛先数に１を加算して書き戻し、Ｉ番目の宛先毎の付加情報フィールドを、記憶されている中継データの付加情報フィールドに追加するだけでいい。記憶スペースがなければ、記憶部１１０中の中継データのうちで、有効期限切れのもの、あるいは、古いものから順に消去して、スペースをつくる。
【０２１５】
また、Ｉ番目の有効期限が切れていれば、Ｉ番目の最終宛先のキャッシュサーバーへ通知する。Ｉ＝Ｉ＋１としてステップ１へ進む。
【０２１６】
ステップ７：次段サーバのアドレスと，それ毎に、現在のＩの値をリストに追加して記憶。次段サーバに対応した経路情報がある場合は、それも記憶する。Ｉ＝Ｉ＋１としてステップ１へ進む。
【０２１７】
ステップ８：ステップ７で記憶した、すべての次段サーバのアドレスに対して，以下を実行する。まず、Ｉの値のリストの情報を元に、中継データの付加情報から、Ｉの値に対応する、宛先毎の付加情報を集め、リストのサイズを”宛先数”とし、コンテンツ識別子、コンテンツサイズ、コンテンツはコピーし、図２８と同じフォーマットになるようにする。また、中継データの宛先数からリストサイズを減算して書きもどし、リスト中のＩの値に対する、宛先毎の付加情報を削除する。
【０２１８】
ステップ９：ステップ８の結果、もし、記憶部１１０中の中継データの宛先数が０となれば、もとの中継データを削除する。あるいは、中継サーバがキャッシュサーバ機能を有する場合、削除せず、キャッシュサーバ機能がこれをキャッシュとして利用してもよい。
【０２１９】
ステップ１０：ステップ７で記憶した、すべての次段サーバのアドレスと、それぞれに対する、ステップ８で生成した中継データを、ＴＣＰ処理部Ｂへ受け渡す。次段サーバに対応した経路情報がある場合は、それも受け渡す。保持している中継データを破棄する。あるいは、中継サーバがキャッシュサーバ機能を有する場合、削除せず、キャッシュサーバ機能がこれをキャッシュとして利用してもよい。また、ステップ５で記憶している既計算経路も破棄する。これで終了となる。
【０２２０】
中継データフォワーディング動作４−２：ステップ１：Ｎ＝宛先数，Ｉ＝１とする。Ｎ＜Ｉならステップ７へ進み、Ｎ≧Ｉなら、ステップ２へ進む。
【０２２１】
ステップ２：中継データの先頭からＩ番目の最終宛先を取り出し、最終宛先毎に決められた、次段サーバを設定情報記憶部から得る。次段サーバの候補は複数あってもよく、複数ある場合には、複数得ておく。
【０２２２】
ステップ３：次段サーバとの間のネットワーク負荷情報（遅延や空き帯域情報）を、ネットワーク情報収集１０７から得る。
【０２２３】
ステップ４：ネットワーク負荷情報１０７から得られた負荷情報が、設定情報記憶部に記憶されたフォワーディング条件を満たしているかどうか調べる。条件を満たす場合には、ステップ７へ進み、満たさない場合には、ステップ５へ分岐する。
【０２２４】
ただし、次段サーバの候補が複数ある場合には、その優先順にこの判定を行い、満たした時点で、ステップ７へ進み、すべてについて満たさない場合には、ステップ５へ分岐する。
【０２２５】
ステップ５：既計算経路を調べ、次段サーバと関連づけられた経路が既にあるかどうか調べる。あればステップ７へ進み、なければ、ＱｏＳ経路情報収集部から、ＱｏＳ経路情報を得て、フォワーディング条件を満たす、次段サーバへの経路を計算する。見つからなければ、ステップ６へ進み、見つかれば、ステップ７へ進む。次段サーバの候補が複数ある場合、優先度順に、経路を計算してゆき、見つかった時点で、ステップ７へ進み、全く見つからなければ、ステップ６へ進む。見つかった経路は、”既計算経路”として、次段サーバと関連づけて記憶しておく。
【０２２６】
ステップ６：Ｉ番目の有効期限が切れていれば、中継データの宛先数の値を１減らし、Ｉ番目の宛先の付加情報を除き、最終宛先のキャッシュサーバーへ通知。次に、中継データの宛先数の値が１以上であれば、Ｉ＝Ｉ＋１としてステップ１へ。中継データの宛先数の値が０であれば、中継データ全体を破棄。あるいは、中継サーバがキャッシュサーバ機能を有する場合、削除せず、キャッシュサーバ機能がこれをキャッシュとして利用してもよい。
【０２２７】
ステップ７：次段サーバのアドレスと，それ毎に、現在のＩの値を追加して記憶する。次段サーバに対応した経路情報がある場合は、それも記憶する。Ｉ＝Ｉ＋１としてステップ１へ進む。
【０２２８】
ステップ８：ステップ７で記憶した、すべての次段サーバのアドレスに対して，以下を実行する。まず、Ｉの値のリストの情報を元に、記憶部１１０中の中継データの付加情報から、Ｉの値に対応する、宛先毎の付加情報を集め、リストのサイズを”宛先数”とし、コンテンツ識別子、コンテンツサイズ、コンテンツはコピーし、図９と同じフォーマットになるようにする。また、記憶部１１０中の中継データの宛先数からリストサイズを減算して書き戻し、リスト中のＩの値に対する、宛先毎の付加情報を削除する。
【０２２９】
ステップ９：ステップ８の結果、もし、記憶部１１０中の中継データの宛先数が０となれば、中継データを削除する。あるいは、中継サーバがキャッシュサーバ機能を有する場合、削除せず、キャッシュサーバ機能がこれをキャッシュとして利用してもよい。
【０２３０】
ステップ１０：ステップ７で記憶した、すべての次段サーバのアドレスと、それぞれに対する、ステップ８で生成した中継データを、ＴＣＰ処理部Ｂへ受け渡す。次段サーバに対応した経路情報がある場合は、それも受け渡す。また、ステップ５で記憶している、既計算経路も破棄する。これで終了となる。
【０２３１】
格納された中継データのそれぞれに関して、中継データフォワーディング動作４−２を行う順番は、最終宛先ごとにラウンドロビンしたり、コンテンツサイズを考慮して優先度を変えたり、有効期限の切れそうなものほど優先度を上げる等して決める。
【０２３２】
＊ＴＣＰ処理部Ｂ（４０９）：マルチキャスト対応中継制御部４０８から，次段サーバのアドレスと中継データを受け取る。同時に、次段サーバへの経路情報を受け取る場合もある。経路情報を受け取らなかった場合、受け取った次段サーバのアドレスへのＴＣＰコネクションが張られていない場合、ＴＣＰコネクションを開設し、中継データを送信する。送信完了後、コネクションを切断してもよいし、そのままにしてもよい。経路情報を受け取った場合には、まず、経路設定部３６０へ次段サーバへの経路情報を渡して経路を設定させる。次に、設定した経路を使って、次段サーバのアドレスへのＴＣＰコネクションが張られていない場合、ＴＣＰコネクションを開設し、中継データを送信する。送信完了後、コネクションを切断し、経路も経路設定部３６０へ指示して解除する。
【０２３３】
＊ＴＣＰ処理部Ａ（１０４）：他の中継サーバからのコネクション開設要求を受けて、他の中継サーバとのコネクションを張る。また、そのコネクション上に送信されてくる、中継データを受け取り、マルチキャスト対応中継制御部２０８へと受け渡す。
【０２３４】
＊ネットワーク情報収集部（１０７）：マルチキャスト対応中継制御部２０８によって指定された次段サーバ、あるいは、コンテンツ取得部２０３によって指定されたキャッシュサーバへ、測定パケットを打ったり、ＴＣＰ処理部Ｂから得られる、ＴＣＰのラウンドトリップタイムなどを参照して、測定対象のサーバまでのネットワーク負荷（空き帯域情報や、遅延情報）を計測し、マルチキャスト対応中継制御部２０８、あるいは、コンテンツ取得部203 へその結果を渡す。
【０２３５】
＊記憶部（１１０）：中継データを記憶しておく装置である。
【０２３６】
この中継サーバの動作を図２９を用いて説明する。コンテンツ取得依頼情報を、コンテンツ取得指示部１０２が受け取る（Ｆ４０１）。他の中継サーバから、コンテンツ取得依頼情報が転送されてきた場合（Ｆ４０３），コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す（Ｆ４０８）。そうではない場合（Ｆ４０２）、設定情報記憶部１０５の情報をもとに、中継を開始する中継サーバを決定する（Ｆ４０４）。もし、自分自身が中継を開始する中継サーバであった場合は（Ｆ４０５）、コンテンツ取得部に、コンテンツ取得依頼情報を受け渡す（Ｆ４０８）。そうでない場合（Ｆ４０６）、中継を開始する中継サーバの、コンテンツ取得指示部へ、コンテンツ取得依頼情報を転送する（Ｆ４０７）。
【０２３７】
次に、コンテンツ取得部４０３は、設定情報記憶部１０５に記憶されている取得条件を得る。コンテンツ取得依頼情報の中の、”取得サーバ名”に書かれているキャッシュサーバ、あるいは、Ｗｅｂサーバからの現在の経路上の負荷情報を、ネットワーク情報収集部から得て、取得条件を満たすかどうかを判断する（Ｆ４０９）。満たさない場合には（Ｆ４１１）、ＱｏＳ経路情報取得部３５０から得たＱｏＳ経路情報を基に、取得条件を満たす経路を計算する。見つからない場合には（Ｆ４１４）、一定時間待って、最初からやり直す（Ｆ４０９へ戻る）。現在の経路が、取得条件を満たす場合（Ｆ４１０）、取得コンテンツ識別子”の示すコンテンツを取得する（Ｆ４１５）。現在の経路が取得条件を満たさず、経路計算によって、取得条件を満たす経路が見つかった場合（Ｆ４１３）、経路設定部３６０に、計算で求まった経路を設定させ、その経路を用いて、取得コンテンツ識別子”の示すコンテンツを取得する（Ｆ４１５）。
【０２３８】
取得したコンテンツは、図２８のフォーマットにするが（Ｆ４１６）、この時、複数のコンテンツ取得依頼をまとめて１度で取得した場合には、宛先数は、まとめた依頼の中の依頼者ネットワークアドレスの数の合計となる。そうでない場合は、宛先数は、１つの取得依頼の中の、依頼者ネットワークアドレスの数である。また、複数あるいは単数のコンテンツ取得依頼の、”依頼者ネットワークアドレス”、”取得コンテンツ識別子”、”取得要求識別子”、”有効期限”の情報を、図２８のように、依頼者ネットワークアドレス毎に、宛先毎の付加情報として付与する（１つの取得依頼に複数の依頼者ネットワークアドレスがある場合には、”取得要求識別子”、”有効期限”は、複数の依頼者ネットワークアドレスでコピーして同じものを使う）．さらに、コンテンツ識別子のフィールドには、複数あるいは単数のコンテンツ取得依頼の、”取得コンテンツ識別子“を書き入れ（どの依頼も同一の識別子）、求めたコンテンツサイズを、コンテンツサイズのフィールドに書き込む。こうして生成した中継データを、マルチキャスト対応中継制御部に受け渡す（Ｆ４１８）。経路設定部に経路を設定させている場合には、その経路を経路設定部３６０へ指示して解除する。
【０２３９】
ＴＣＰ処理部Ａ１０４が、中継データを他の中継サーバから受信した場合も、中継データをマルチキャスト対応中継制御部２０８へ渡す（Ｆ４１７）。
【０２４０】
コンテンツ取得部，あるいは，ＴＣＰ処理部Ａ１０４から、中継データを受け取ったマルチキャスト対応中継制御部は、前記の中継データフォワーディング動作４−１を行う。すなわち、中継データの、宛先数をＮとおき、Ｉ＝１とし、Ｉ＝１〜Ｎまで以下を繰り返す。
【０２４１】
中継データの先頭からＩ番目の最終宛先を取り出し、最終宛先毎に決められた、次段サーバを設定情報記憶部から得る（Ｆ４２２）。次に、次段サーバとの間のネットワーク負荷情報（遅延や空き帯域情報）を、ネットワーク情報収集１０７から得る。ネットワーク負荷情報１０７から得られた負荷情報が、設定情報記憶部に記憶されたフォワーディング条件を満たしているかどうか調べる。条件を満たす場合にはＦ４２３へ分岐し、そうでない場合にはＦ４２４へ分岐する。Ｆ４２４へ分岐した場合、まず、既計算経路を検索し、次段サーバと関連づけられた経路があればＦ４２５へ分岐する。なければ、ＱｏＳ経路情報収集部から、ＱｏＳ経路情報を得て、フォワーディング条件を満たす次段サーバへの経路を計算する。見つからなければ、Ｆ４２６へ分岐する。見つかれば、Ｆ４２５へ分岐する。次段サーバの候補が複数ある場合、優先度順に、経路を計算してゆき、見つかった時点で、Ｆ４２５へ分岐し、全く見つからなければ、Ｆ４２６へ分岐する。見つかった経路は、既計算経路として、次段サーバへと関連づけて記憶しておく。
【０２４２】
Ｆ４２３および、Ｆ４２５の分岐によって到達するＦ４２８では、次段サーバ毎に、現在のＩの値を追加して、リストとして記憶しておく。次段サーバに関連づけられた経路情報がある場合には、それも記憶しておく。
【０２４３】
Ｆ４２７に達した場合、もし、Ｉ番目の有効期限が切れていなければ, 記憶部１１０へ中継データを記憶する。この時、すでに、記憶部に同一の中継データが記憶されていない場合、宛先数を１、Ｉ番目の宛先毎の付加情報フィールド、コンテンツ識別子、コンテンツサイズを取り出して、図２８のフォーマットで、中継データを記憶。すでに記憶されている場合、宛先数に１を加算して書き戻し、Ｉ番目の宛先毎の付加情報フィールドを、記憶されている中継データの付加情報フィールドに追加するだけでいい。記憶スペースがなければ、記憶部１１０中の中継データのうちで、有効期限切れのもの、あるいは、古いものから順に消去して、スペースをつくる。また、Ｉ番目の有効期限が切れていれば、Ｉ番目の最終宛先のキャッシュサーバーへ通知する。Ｆ２１９では、次段サーバのアドレスと，それ毎に、現在のＩの値をリストに追加して記憶する。
【０２４４】
繰り返しが終わると、Ｆ４２８で記憶した、すべての次段サーバのアドレスに対して，以下を実行する。まず、次段サーバに関連づけられた、Ｉの値のリストの情報を元に、記憶部１１０中の中継データの付加情報から、Ｉの各値に対応する、宛先毎の付加情報を集める。次に、リストのサイズを”宛先数”とし、コンテンツ識別子、コンテンツサイズ、コンテンツはコピーし、図２８と同じフォーマットになるように、新たな中継データを生成する。また、記憶部１１０中のもとの中継データの宛先数からリストサイズを減算して書きもどし、リスト中のＩの値に対する、宛先毎の付加情報を削除する。
【０２４５】
全ての次段サーバのアドレスに対して以上を実行した後、もし、記憶部１１０中の中継データの宛先数が０となれば、もとの中継データを削除する。
【０２４６】
そして、すべての次段サーバのアドレスと、それぞれに対する、新たに生成した中継データを、ＴＣＰ処理部Ｂへ受け渡す（Ｆ４２９）。この時、関連づけられた経路情報があれば、それも受け渡す。
【０２４７】
Ｆ４２７で記憶部に格納された中継データに関しては（Ｆ４３０）、フォワーディング動作４−２が後を引き継ぐ（Ｆ４３１）。
【０２４８】
中継データフォワーディング動作４−１，中継データフォワーディング動作４−２の結果、中継制御部４０８から次段サーバのアドレスと中継データ、および、経路計算をしている場合には経路情報も受け取った、ＴＣＰ処理部Ｂ４０９は、経路情報を受け取っていない場合には、中継制御部４０８から受け取った次段サーバのアドレスへのＴＣＰコネクションが張られているかどうか調べ、張られていなければ、ＴＣＰコネクションを開設し、中継データを送信する（Ｆ４３２）。送信完了後、コネクションを切断してもよいし、そのままにしてもよい。
【０２４９】
経路情報も受け取っている場合には、経路情報を受け取った場合には、まず、経路設定部３６０へ次段サーバへの経路情報を渡して経路を設定させる。次に、設定した経路を使って、次段サーバのアドレスへのＴＣＰコネクションが張られていない場合、ＴＣＰコネクションを開設し、中継データを送信する（Ｆ４３２）。送信完了後、コネクションを切断し、経路も経路設定部360 へ指示して解除する。
【０２５０】
以上の中継サーバの中継動作によって、コンテンツ取得依頼を行ったキャッシュサーバは、コンテンツを取得する事が出来る。また、複数のコンテンツ取得要求が、同じコンテンツ識別子をもつコンテンツを要求している場合、同一の次段サーバへのフォワーディングが可能な間は１つの中継データとしてフォワーディングするため、ネットワークの資源（帯域やルータのフォワーディング能力）の消費量を削減する事が可能である。
【０２５１】
次に、図２６において、キャッシュサーバＣ１０３と、キャッシュサーバＣ１０２が、キャッシュサーバＣ１０１から、アクティブキャッシュのための１０ＫバイトのコンテンツＸを取得する場合を説明する。
【０２５２】
中継サーバＭ４０１、Ｍ４０２の設定情報は図３０，  ３１のようなものであったとする。また、ネットワークの経路は、Ｃ１０１からＣ１０３までが、Ｃ１０１→Ｒ４０１→Ｒ４０２→Ｒ４０３→Ｒ４０５→Ｃ１０３であり，Ｃ１０１からＣ１０２までが、Ｃ１０１→Ｒ４０１→Ｒ４０２→Ｒ４０３→Ｒ４０４→Ｃ１０２であり、Ｃ１０１からＭ４０２までが、Ｃ１０１→Ｒ４０１→Ｒ４０２→Ｍ４０２であり、Ｍ４０２からＭ４０１までが、Ｍ４０２→Ｒ４０２→Ｒ４０３→Ｍ４０１であり、Ｍ４０１からＣ１０３までが、Ｍ４０１→Ｒ４０３→Ｒ４０５→Ｃ１０３であり、Ｍ４０１からＣ１０２までが、Ｍ４０１→Ｒ４０３→Ｒ４０４→Ｃ１０２であったとする。
【０２５３】
さらに、これらの経路に関連するリンクＬ０，Ｌ２，Ｌ３，Ｌ４と、サブネットＮ５，Ｎ４，Ｎ３，Ｎ２，Ｎ１の内部リンクのうち、Ｌ０，Ｌ２が非常に混雑しており、図３２のように遅延が推移したとする。また、キャッシュサーバＣ１０３と、キャッシュサーバＣ１０２のアクティブキャッシュコンテンツを取得しようとした時刻をそれぞれ、ｔ１，ｔ２とする。
【０２５４】
キャッシュサーバＣ１０２は、時刻ｔ１において、中継サーバの中の１つ（ここでは、中継サーバＭ４０１とする）を知っており、以下のコンテンツ取得依頼情報を中継サーバＭ４０１へと渡す。
【０２５５】
コンテンツ取得依頼情報：＊取得サーバ名：Ｃ１０１＊取得コンテンツ識別子：コンテンツＸの識別子＊取得要求識別子：この要求を特定出来る識別子＊依頼者ネットワークアドレス：Ｃ１０２のネットワークアドレス中継サーバＭ４０１では、設定情報記憶部の、中継開始サーバテーブルを参照して、Ｃ１０１からコンテンツを取得する場合の、中継を開始する中継サーバが、Ｍ４０２である事を得る。このコンテンツ取得情報を、中継サーバＭ４０２へと転送する。中継サーバＭ４０２では、他の中継サーバから転送されてきたコンテンツ取得依頼情報であるので、取得サーバ名に書かれている、Ｃ１０２からコンテンツＸを取得しようとする。しかし、Ｃ１０１から、Ｍ１０２までの経路上は混雑しているので、設定情報の取得条件を満たしていないので、この取得コンテンツ取得要求は待たされる。
【０２５６】
次に、キャッシュサーバＣ１０３は、時刻ｔ２において、中継サーバの中の１つ（ここでは、中継サーバＭ４０１とする）を知っており、以下のコンテンツ取得依頼情報を中継サーバＭ４０１へと渡す。
【０２５７】
コンテンツ取得依頼情報：＊取得サーバ名：Ｃ１０１＊取得コンテンツ識別子：コンテンツＸの識別子＊取得要求識別子：この要求を特定出来る識別子＊依頼者ネットワークアドレス：Ｃ１０３のネットワークアドレス中継サーバＭ４０１では、設定情報記憶部の、中継開始サーバテーブルを参照して、Ｃ１０１からコンテンツを取得する場合の、中継を開始する中継サーバが、Ｍ４０２である事を得る。このコンテンツ取得情報を、中継サーバＭ４０２へと転送する。Ｍ４０２において、このＣ１０３からのコンテンツ取得リクエストの取得コンテンツ識別子は、待たされている、Ｃ１０２からのコンテンツリクエストと同じ、取得コンテンツ識別子（コンテンツＸ）を持っているため、このコンテンツＸの取得はまとめて行われる。時刻ｔ３において、Ｃ１０１からＭ４０２までのネットワーク遅延が取得条件を満たすので，Ｍ４０２からコンテンツＸを取得し、サイズを求める。Ｍ４０２の内部では、取得したコンテンツを図３３の内容をもつ中継データとして、Ｃ１０２中継制御部に渡される。
【０２５８】
次に、Ｍ４０２では、中継データフォワーディング動作２−１が実行される。この時点での時刻が、ｔ４であったとする。まず、中継データの、最初の宛先毎の付加情報中の、最終宛先である、Ｃ１０２に対する次段サーバは、設定情報記憶部の中継データフォワーディングテーブル（図３１）を参照して、中継サーバＭ４０２であることを知る。図３２からわかるように、時刻ｔ４において、リンクＬ２の遅延が大きく、現在の経路Ｍ４０２→Ｒ４０２→Ｒ４０３→Ｍ４０１では、次段サーバへのフォワーディング条件をみたさない（１０Ｋのコンテンツは、次段サーバへの遅延１００ｍｓ以下でなければ、条件を満たせないが、時刻ｔ４では、現在の経路上にあるＬ２の遅延が大きく、これを満たせない）。
【０２５９】
このため、ＱｏＳ経路情報取得部から、ＱｏＳ経路情報を取得し、フォワーディング条件を満たす経路を計算する。たとえば、図３４のような、ＱｏＳ経路情報であったとする。Ｍ４０１からＭ４０２への経路で、フォワーディング条件を満たせるものとして、例えば、Ｍ４０２→Ｒ４０２→Ｒ４０５→Ｒ４０３→Ｍ４０１が求まる。この経路をもちいて、中継データは、Ｍ４０２へと転送される。
【０２６０】
次に、Ｍ４０１は、中継データを受け取り、中継データフォワーディング動作４−１を実行する。まず、中継データ（図３３）の、最初の宛先毎の付加情報中の、最終宛先である、Ｃ１０２に対する次段サーバは、設定情報記憶部の中継データフォワーディングテーブル（図３０）を参照して、最終宛先である、キャッシュサーバＣ１０２であることを知る。また、この時点（ｔ５とする）でＣ１０２への遅延が十分小さく、フォワーディング条件を満たすとする。さらに、中継データの２番目の宛先毎の付加情報中の、最終宛先Ｃ１０３への次段サーバは、設定情報記憶部の中継データフォワーディングテーブル（図３０）を参照して，キャッシュサーバＣ１０３であることも知る。また、この時点（ｔ５とする）でＣ１０３への遅延が十分小さく、フォワーディング条件を満たすとする。
【０２６１】
この結果、図３３の中継データから、Ｃ１０２へフォワーディングする中継データ（図３５）と、Ｃ１０３へフォワーディングする中継データ（図３６）が生成され、ＴＣＰ処理部Ｂへと受け渡される。ＴＣＰ処理部Ｂでは、Ｃ１０２，Ｃ１０３へのコネクションが張られていなければ、コネクションを開設し，図３５，図３６のコンテンツを、それぞれ、Ｃ１０２，Ｃ１０３へ送信する。
【０２６２】
従来のキャッシュサーバで、同様のアクティブキャッシュのコンテンツを取得する場合、キャッシュサーバＣ１０２は、キャッシュサーバＣ１０１から、キャッシュサーバＣ１０２までのすべての区間でネットワーク負荷が低い場合にのみ、Ｃ１０１からアクティブキャッシュを実行出来、キャッシュサーバＣ１０３は、キャッシュサーバＣ１０１から、キャッシュサーバＣ１０３までのすべての区間でネットワーク負荷が低い場合にのみ，アクティブキャッシュ動作を実行出来る。上記の例で図３２のように負荷が推移した場合、時刻ｔ６になっても、まだ、Ｃ１０２，Ｃ１０３のいずれも、コンテンツＸを取得出来ない。本発明の第４の実施の形態の場合，上記例のように、経路上の負荷の低い部分と中継サーバーを利用して、経路を迂回することが可能であるので、時刻ｔ５から、データをＭ４０１からＣ１０２あるいはＣ１０３へ送る時間後には、Ｃ１０２，Ｃ１０３共に、コンテンツＸを取得する事が可能となっている。
【０２６３】
また、上記例を本発明の第３の実施の形態の中継サーバで実行した場合、Ｃ１０１からＣ１０２，とＣ１０１からＣ１０３へと、２回コンテンツがネットワークを流れるが、第４の実施の形態の中継サーバでは、Ｃ１０１からＭ４０１までの区間では、コンテンツが、一度しかコンテンツを流さないため、ネットワーク資源の消費を減らす事が可能である。
【０２６４】
また、従来のキャッシュサーバでは、アクティブキャッシュをするために、その経路上の負荷を監視し、転送すべきかどうかを判断する事をキャッシュサーバ自身で行わなければならないが、本発明の第４の実施の形態の中継サーバを用いれば、取得したいアクティブキャッシュに関するコンテンツを、中継サーバのうちの１台に伝えるだけでよいため、この負荷を中継サーバへと肩代わりさせる事が可能となる。
【０２６５】
以上のように、本発明によって、ネットワークの負荷が低い時を利用したアクティブキャッシュの成功率を上げる事が可能となる。また、キャッシュサーバがアクティブキャッシュを行う負荷を低減する事が可能となる。
【０２６６】
次に、第５の実施の形態について説明する。本発明の第５の実施の形態のキャッシュサーバの内部構成を図３７に示す。キャッシュ連携部５０２は、他のキャッシュサーバとどのようなコンテンツを保持しているかのという情報をやりとりしている。サーバ選択基準情報取得部５０４は、同一のコンテンツを保持する複数のキャッシュサーバから、どのキャッシュサーバ選択してコンテンツを取得すればよいかの判断基準となる情報、たとえば、他のキャッシュサーバからある特定のコンテンツを定期的に取得したり、他のキャッシュサーバーへの遅延をテストパケットで調べたり、キャッシュサーバの負荷を問い合わせて調べたりして、他のキャッシュサーバからデータを取得する際のサーバの遅延やネットワーク遅延を調査している。記憶装置には、コンテンツを記憶することができる。キャッシュ動作部５０１は、端末あるいは、他のキャッシュサーバからアクティブキャッシュのため、あるいは、Ｗｅｂアクセスのためのコンテンツの取得要求があると、記憶装置５０３をしらべ、見つかればそれを返す。見つからなければ、キャッシュ連携部５０２に問い合わせ、どのキャッシュサーバがコンテンツを持っているかを調べる。保持しているキャッシュサーバがない場合、もともとそのコンテンツを保持しているＷｅｂサーバからコンテンツを取得し、それを要求のあった端末あるいはキャッシュサーバに返す。保持しているキャッシュサーバが１つあった場合、そのキャッシュサーバからコンテンツを取得しそれを要求のあった端末あるいはキャッシュサーバに返す。複数あった場合、サーバ選択基準情報取得部、複数のキャッシュサーバへの経路の遅延やキャッシュサーバの負荷情報を得て、最も混雑していないキャッシュサーバを選択し、そこからコンテンツを取得しそれを要求のあった端末あるいはキャッシュサーバに返す。同時に記憶装置５０３に取得したコンテンツを記憶しておいてもよい。
【０２６７】
以上の動作によって、キャッシュサーバが、あるコンテンツを取得するのに、該当コンテンツを保持しているキャッシュサーバが複数あるときのキャッシュサーバ選択基準として、ネットワークの状況を考慮したキャッシュサーバを選択させることを可能にし、ネットワークへの負荷やを低減する事が可能となる。また、キャッシュ連携部の働きによって、効率よく他のキャッシュサーバのコンテンツ情報を収集する事ができる。
【０２６８】
図３８が本発明の第５の実施の形態のキャッシュサーバＣ１０２が、他のキャッシュサーバからコンテンツＸを取得する例を示している。キャッシュサーバＣ１０３とキャッシュサーバＣ１０２の間の経路が混雑していて、キャッシュサーバＣ１０４とキャッシュサーバＣ１０２の間キャッシュサーバの経路が混雑していないとする。
【０２６９】
Ｃ１０２のキャッシュ連携部は、Ｃ１０３，Ｃ１０１，Ｃ１０４と連携して、コンテンツＸがＣ１０４とＣ１０３に存在していることを知っている。Ｃ１０２が、アクティブキャッシュ動作、あるいは、端末から要求のあったコンテンツＸを取得しようとする場合、キャッシュ動作部５０１がその要求を受け取る。キャッシュ連携部５０２へ問い合わせて、コンテンツＸは、Ｃ１０４とＣ１０３に存在しているこを得る。次に、サーバ選択基準情報取得部５０４へ問い合わせて、Ｃ１０４よりＣ１０３のサーバの負荷が高く、Ｃ１０３，Ｃ１０２へのネットワーク遅延は同じであることを知る。そこで、コンテンツを早く取得するため、キャッシュサーバＣ１０４からコンテンツを取得する。結果を要求のあった端末あるいは他のキャッシュサーバへ返す。また取得結果は記憶部に記憶しておく。
【０２７０】
従来のキャッシュサーバの場合、他のキャッシュサーバへ該当のコンテンツを所持しているか問い合わせる，あるいは、他のキャッシュサーバがどのようなコンテンツを保持しているか知っていて、所持しているキャッシュサーバから該当コンテンツを取得する、という動作をする場合を考える。現在のキャッシュサーバは、この時、最も早く問い合わせに対して、該当コンテンツを保持していると回答したキャッシュサーバを選択するか、単純な優先度をつけておいて、優先度の高いものからコンテンツを取得している。たとえば、キャッシュサーバＣ１０２が、キャッシュサーバＣ１０３とＣ１０４については、両方に取得したいコンテンツがあれば、Ｃ１０３から取得する、といった単純な優先度を採用しているなら、この例の場合においても、Ｃ１０３からコンテンツを取得してしまい、取得に時間がかかってしまう。また、リンクＬ４，Ｌ５の長さが大きい場合、従来のキャッシュサーバの、他のキャッシュサーバへ該当のコンテンツＸを所持しているか問い合わせる動作を行うと、回答を得るまでに大きな時間がかかり、現実的でない。本実施の形態では、キャッシュ連携部の働きによって、前もって他のサーバがどのようなコンテンツを保持しているかを取得しているのでこのような問題はおきない。
【０２７１】
次に第６の実施の形態について説明する。本発明の第６の実施例の形態のキャッシュサーバの内部構成を図４０に示す。次段サーバ選択基準情報取得部６０４は、キャッシュサーバがコンテンツを保持しにていない場合に、次にどのキャッシュサーバあるいはＷｅｂサーバからコンテンツを取得すればいいかの判断基準になる情報を収集している。たとえば、ルータから経路情報を取得したり、他のキャッシュサーバへの遅延をテストパケットで調べたり、キャッシュサーバの負荷を問い合わせて調べたりしている。記憶装置６０３には、コンテンツを記憶することができる。キャッシュ動作部６０１は、端末あるいは、他のキャッシュサーバからアクティブキャッシュのため、あるいはＷｅｂアクセスのためのコンテンツの取得要求を受け取る。コンテンツ取得要求は、取得したいコンテンツ識別子を含む。キャッシュ動作部６０１は、コンテンツ取得要求を受け取ると、記憶装置５０３をしらべ、見つかればそれを返す。見つからなければ、次段サーバ決定部５０５にコンテンツ識別子と、Ｗｅｂアクセスのためのコンテンツの取得要求なのか、アクティブキャッシュのためのコンテンツ取得要求なのかという情報（取得要求種別情報）を受け渡し、次にどのキャッシュサーバ、あるいは、Ｗｅｂサーバから情報を取得すればいいかを問い合わせ、得られた回答に従って、そのＷｅｂサーバあるいはキャッシュサーバへアクセスし、コンテンツを取得して、それを要求のあった端末あるいはキャッシュサーバに返す。該当コンテンツを取得しそれを取得要求のあった端末あるいはキャッシュサーバへ返す時、同時に記憶装置６０３に取得したコンテンツを記憶しておいてもよい。次段サーバ決定部６０５は、キャッシュ動作部５０１から与えられるコンテンツの識別子と取得要求種別情報、および、記憶している設定情報と次段サーバ選択基準情報取得部６０４から得られる情報を基に、次にどのキャッシュサーバあるいはＷｅｂサーバへ問い合わせをすれば良いかを決定する。例えば次のように決定する。まず、コンテンツ識別子から、該当コンテンツをもともと保持しているＷｅｂサーバのネットワークアドレスを特定する。取得要求種別情報がＷｅｂアクセスのためのコンテンツ取得要求である場合には、該当コンテンツをもともと保持しているＷｅｂサーバを次に問い合わせるサーバと決定する。取得要求種別情報が、アクティブキャッシュのためのコンテンツ取得要求である場合には、次段サーバ選択基準情報取得部６０４から得られる経路情報を参照して、該当コンテンツをもともと保持しているＷｅｂサーバのネットワークアドレスをもとに、キャッシュサーバから見て、Ｗｅｂサーバにより近く、かつ、キャッシュサーバに一番近いキャッシュサーバを記憶しているキャッシュサーバの中から選択する。そのようなキャッシュサーバがない場合には、該当コンテンツをもともと保持しているＷｅｂサーバを選択する。
【０２７２】
以上の動作によって、キャッシュサーバが保持していない場合に、最適な次に問い合わせるべきサーバを決定する事が出来る。例えば、上記の次段サーバ決定部６０５の説明の中であげた動作例では、Ｗｅｂアクセスのための取得要求の場合には、コンテンツをもともと保持しているＷｅｂサーバからコンテンツが取得出来、他のキャッシュに問い合わせ、そこでも見つからないという場合に生じる処理の遅延時間の増大の可能性をなくすことが出来る。そうでない場合には、他のキャッシュサーバへ問い合わせることで、他のキャッシュサーバでキャッシュヒットする場合にネットワークを流れるトラヒック量をへらすことが出来る。また、他のキャッシュサーバを選択する際に、該キャッシュサーバから見て、コンテンツをもともと保持しているＷｅｂサーバにより近いサーバを選ぶことによって、選択したキャッシュサーバでもコンテンツが見つからず、コンテンツをもともと保持しているキャッシュサーバへ取得にゆく事になった場合に、ネットワークを流れるトラヒックの無駄を削除する事が出来る。
【０２７３】
次に、図４１を使って、本発明の第６の実施の形態のキャッシュサーバＣ６０１の動作を説明する。以下で登場するコンテンツＸは、もともと、ＷｅｂサーバＳ１０１が保持していたとする。また、キャッシュサーバＣ１０１の記憶部はコンテンツＸを保持していないとする。
【０２７４】
まず、キャッシュサーバＣ６０１が、端末Ｔ１０１からＷｅｂアクセスのためのコンテンツＸの取得要求を受けた場合、キャッシュ動作部６０１は、コンテンツＸは記憶部にないので、次段サーバ決定部６０５に、取得要求種別情報として、Ｗｅｂアクセスのための取得要求であることと、コンテンツＸの識別子を渡す。次段サーバ決定部６０５では、コンテンツＸの識別子から、もともとコンテンツＸを保持しているＷｅｂサーバは、Ｓ１０１である事を得て、取得要求種別情報として、Ｗｅｂアクセスのための情報要求であるため、Ｓ１０１を回答として、キャッシュ動作部６０１へ返す。キャッシュ動作部６０１はこの回答を元に、Ｓ１０１へアクセスしてコンテンツＸを取得し、端末へと返す。このとき、取得したコンテンツを記憶部６０３へ同時に記憶してもよい。
【０２７５】
次に、キャッシュサーバＣ６０１が、アクティブキャッシュのためのコンテンツＸの取得要求を受けた場合、キャッシュ動作部６０１は、コンテンツＸは記憶部にないので、次段サーバ決定部６０５に、取得要求種別情報として、アクティブキャッシュのための取得要求であることと、コンテンツＸの識別子を渡す、次段サーバ決定部６０５では、コンテンツＸの識別子から、もともとコンテンツＸを保持しているＷｅｂサーバは、Ｓ１０１である事を得る。また、取得要求種別情報として、アクティブキャッシュの取得要求であるため、次のように次段サーバを決定する。まず、次段サーバ選択基準情報取得部から経路情報を得て、記憶している他のキャッシュサーバＣ６０４，Ｃ６０３の中で、ＷｅｂサーバＳ１０１により近く、かつ、キャッシュサーバに一番近いキャッシュサーバとして、Ｃ６０４を選択し、これをキャッシュ動作部６０１へと返す。キャッシュ動作部６０１はこの回答を元に、Ｃ６０４へアクセスしてコンテンツＸを取得依頼する。Ｃ６０４では、次段サーバ決定部が、同様に、Ｃ６０１，Ｃ６０３の中で、ＷｅｂサーバＳ１０１により近く、かつ、キャッシュサーバに一番近いキャッシュサーバとして、Ｃ６０３を選択し、Ｃ６０３ｈｅコンテンツＸを取得依頼する。Ｃ６０３でも同様に、次段サーバ決定部がＣ６０１，Ｃ６０４の中で、ＷｅｂサーバＳ１０１により近く、かつ、キャッシュサーバに一番近いキャッシュサーバを選択しようとするが、そのようなサーバはないので、Ｓ１０１を次段サーバと決定し、コンテンツを取得し、Ｃ６０４へと返す。Ｃ６０４ではこのコンテンツをＣ６０１へと返し、Ｃ６０１は最終的にコンテンツＸを得る。なお、Ｃ６０３，Ｃ６０４は該当コンテンツを記憶部６０３へと記憶してもよい。
【０２７６】
従来のキャッシュサーバの場合、次段サーバは、キャッシュサーバ毎に固定的に決められており、Ｗｅｂアクセスのように遅延を小さく保つ必要があるコンテンツ取得についても、アクティブキャッシュのような、比較的遅延が大きくてもかまわないコンテンツ取得と同様に、多数のキャッシュサーバを経由する取得方法をとっているため、遅延の増大が問題であったが、本発明の第６の実施例では、次段サーバ決定部が、Ｗｅｂアクセスによるコンテンツ取得か、アクティブキャッシュによる取得なのかに依存して次段サーバを変える事が出来るので、この問題を解決出来る。例えば実施例に挙げた例では、Ｗｅｂアクセスのように遅延を小さく保つ必要のあるコンテツ取得については、直接、コンテンツを元々保持しているＷｅｂサーバから取得するようにしているため、この遅延を低く押さえる事が可能となる。従来のキャッシュサーバの場合、次段サーバは、キャッシュサーバ毎に固定的に決められているので、コンテンツをもともと保持しているサーバに対して経路的に遠いキャッシュサーバとなってしまう場合もある得る。この場合、選択したキャッシュサーバでもコンテンツが見つからず、コンテンツをもともと保持しているキャッシュサーバへ取得にゆく事になった場合に、コンテンツをもともと保持しているサーバに対して、経路的に近いキャッシュサーバを選んだ場合に比べて、経路的に大きな距離をコンテンツが移動する事になり、ネットワーク資源の消費量が大きくなってしまう。これに対して、本発明の第６の実施例では、次段サーバ決定部が、次段サーバ選択基準情報取得部から得た情報を基に、次段サーバを決定するため、この問題を解決出来る。例えば実施例に挙げた例では、次段サーバ選択基準情報取得部から得た経路情報をもとに、該キャッシュサーバから見て、コンテンツをもともと保持しているＷｅｂサーバにより近いサーバを選ぶことによって、選択したキャッシュサーバでもコンテンツが見つからず、コンテンツをもともと保持しているキャッシュサーバへ取得にゆく事になった場合にネットワークを流れるトラヒックの無駄を削減する事が出来る。
【図面の簡単な説明】
【０２７７】
【図１】本発明の第１の実施の形態のネットワーク構成図である。
【図２】本発明の第１の実施の形態の中継サーバの内部構成図である。
【図３】本発明の第１の実施の形態の中継データフォーマットである。
【図４】本発明の第１の実施の形態の中継サーバの動作フローチャートである。
【図５】本発明の第１の実施の形態の動作例での中継サーバＭ１０１の設定情報である。
【図６】本発明の第１の実施の形態の動作例での中継サーバＭ１０２の設定情報である。
【図７】本発明の第２の実施の形態のネットワーク構成図である。
【図８】本発明の第２の実施の形態の中継サーバの内部構成図である。
【図９】本発明の第２の実施の形態の中継データフォーマットである。
【図１０】本発明の第２の実施の形態の中継サーバの動作フローチャートである。
【図１１】本発明の第２の実施の形態の動作例での中継サーバＭ２０１の設定情報例である。
【図１２】本発明の第２の実施の形態の動作例での中継サーバＭ２０２の設定情報例である。
【図１３】本発明の第２の実施の形態の動作例でのリンク負荷の推移図である。
【図１４】本発明の第２の実施の形態の動作例で中継サーバＭ２０２のコンテンツ取得部が取得する中継データである。
【図１５】本発明の第２の実施の形態の動作例で中継サーバＭ２０２の中継データフォワーディング動作２−１で記憶部に格納される途中の中継データである。
【図１６】本発明の第２の実施の形態の動作例で中継サーバＭ２０２の中継データフォワーディング動作２−１で記憶部に格納される中継データである。
【図１７】本発明の第２の実施の形態の動作例で中継サーバＭ１０２からキャッシュサーバＣ１０２へ送られる中継データである。
【図１８】本発明の第２の実施の形態の動作例で中継サーバＭ１０２からキャッシュサーバＣ１０３へ送られる中継データである。
【図１９】本発明の第３の実施の形態のネットワーク構成図である。
【図２０】本発明の第３の実施の形態の中継サーバの内部構成図である。
【図２１】本発明の第３の実施の形態の中継データフォーマットである。
【図２２】本発明の第３の実施の形態の中継サーバの動作フローチャートである。
【図２３】本発明の第３の実施の形態の動作例での中継サーバＭ３０１の設定情報である。
【図２４】本発明の第３の実施の形態の動作例での中継サーバＭ３０２の設定情報である。
【図２５】本発明の第３の実施の形態の動作例でのＱｏＳ経路情報である。
【図２６】本発明の第４の実施の形態のネットワーク構成図である。
【図２７】本発明の第４の実施の形態の中継サーバの内部構成図である。
【図２８】本発明の第４の実施の形態の中継データフォーマットである。
【図２９】本発明の第４の実施の形態の中継サーバの動作フローチャートである。
【図３０】本発明の第４の実施の形態の動作例での中継サーバＭ４０１の設定情報例である。
【図３１】本発明の第４の実施の形態の動作例での中継サーバＭ４０２の設定情報例である。
【図３２】本発明の第４の実施の形態の動作例でのリンク負荷の推移図である。
【図３３】本発明の第４の実施の形態の動作例で中継サーバＭ４０２のコンテンツ取得部が取得する中継データである。
【図３４】本発明の第４の実施の形態の動作例でのＱｏＳ経路情報である。
【図３５】本発明の第４の実施の形態の動作例で中継サーバＭ３０２からキャッシュサーバＣ１０２へ送られる中継データである。
【図３６】本発明の第４の実施の形態の動作例で中継サーバＭ３０２からキャッシュサーバＣ１０３へ送られる中継データである。
【図３７】本発明の第５の実施の形態の中継サーバである。
【図３８】本発明の第５の実施の形態の中継サーバの動作例である。
【図３９】従来のキャッシュサーバを有するネットワークの構成図である。
【図４０】本発明の第６の実施の形態のキャッシュサーバの内部構成図である。
【図４１】本発明の第６の実施の形態のキャッシュサーバの動作例を示す図である。
【符号の説明】
【０２７８】
Ｍ１０１，１０２  中継サーバ
Ｍ２０１，２０２  中継サーバ
Ｍ３０１，３０２  中継サーバ
Ｍ４０１，４０２  中継サーバ
Ｎ１〜Ｎ５  サブネット
Ｃ１０１〜Ｃ１０３  キャッシュサーバ
Ｃ５０１  キャッシュサーバ
Ｓ１０１〜Ｓ１０３  Ｗｅｂサーバ
Ｔ１０１，Ｔ１０２  端末
Ｒ１０１〜Ｒ１０５  ルータ
Ｒ３０１〜Ｒ３０５  ルータ
Ｒ４０１〜Ｒ４０５  ルータ
Ｌ０〜Ｌ５  リンク
【図１】
2006081215.tif 000002
【図２】
2006081215.tif 000003
【図３】
2006081215.tif 000004
【図４】
2006081215.tif 000005
【図５】
2006081215.tif 000006
【図６】
2006081215.tif 000007
【図７】
2006081215.tif 000008
【図８】
2006081215.tif 000009
【図９】
2006081215.tif 000010
【図１０】
2006081215.tif 000011
【図１１】
2006081215.tif 000012
【図１２】
2006081215.tif 000013
【図１３】
2006081215.tif 000014
【図１４】
2006081215.tif 000015
【図１５】
2006081215.tif 000016
【図１６】
2006081215.tif 000017
【図１７】
2006081215.tif 000018
【図１８】
2006081215.tif 000019
【図１９】
2006081215.tif 000020
【図２０】
2006081215.tif 000021
【図２１】
2006081215.tif 000022
【図２２】
2006081215.tif 000023
【図２３】
2006081215.tif 000024
【図２４】
2006081215.tif 000025
【図２５】
2006081215.tif 000026
【図２６】
2006081215.tif 000027
【図２７】
2006081215.tif 000028
【図２８】
2006081215.tif 000029
【図２９】
2006081215.tif 000030
【図３０】
2006081215.tif 000031
【図３１】
2006081215.tif 000032
【図３２】
2006081215.tif 000033
【図３３】
2006081215.tif 000034
【図３４】
2006081215.tif 000035
【図３５】
2006081215.tif 000036
【図３６】
2006081215.tif 000037
【図３７】
2006081215.tif 000038
【図３８】
2006081215.tif 000039
【図３９】
2006081215.tif 000040
【図４０】
2006081215.tif 000041
【図４１】
2006081215.tif 000042