(57)【特許請求の範囲】
【請求項１】
コンテンツを１つ以上のオブジェクトに分割して配信するコンテンツ配信ネットワークのクライアント装置であって、
要求したオブジェクトを待ち時間内に受信したか否かに応じてウィンドウ・サイズを更新する更新手段と、
受信待ちオブジェクトの数を管理する管理手段と、
前記ウィンドウ・サイズに基づき１つの要求メッセージで要求するオブジェクトの数を決定する決定手段と、
前記ウィンドウ・サイズから前記受信待ちオブジェクトの数を減じた値が、前記決定手段が決定したオブジェクトの数より大きくなった後に、前記決定手段が決定した数のオブジェクトを要求する要求メッセージを前記コンテンツ配信ネットワークに送信する送信手段と、
を備えていることを特徴とするクライアント装置。
【請求項２】
前記決定手段は、前記ウィンドウ・サイズを変数又は所定の定数で除することにより前記１つの要求メッセージで要求するオブジェクトの数を決定することを特徴とする請求項１に記載のクライアント装置。
【請求項３】
前記所定の定数は、前記コンテンツ配信ネットワークに前記クライアント装置が同時に送信できる要求メッセージの数に基づき決定されていることを特徴とする請求項２に記載のクライアント装置。
【請求項４】
前記決定手段は、前記変数を前記ウィンドウ・サイズに基づき決定することを特徴とする請求項２に記載のクライアント装置。
【請求項５】
前記送信手段は、前記減じた値が、前記決定手段が決定したオブジェクトの数より大きくなると、前記決定手段が決定した数のオブジェクトを要求する要求メッセージを前記コンテンツ配信ネットワークに送信することを特徴とする請求項１から４のいずれか１項に記載のクライアント装置。
【請求項６】
前記送信手段は、前記減じた値が、前記決定手段が決定したオブジェクトの数より大きくなったかを所定の期間毎に判定することを特徴とする請求項１から４のいずれか１項に記載のクライアント装置。
【請求項７】
前記送信手段は、オブジェクトを受信する度に、前記減じた値が、前記決定手段が決定したオブジェクトの数より大きくなったかを判定することを特徴とする請求項１から４のいずれか１項に記載のクライアント装置。
【請求項８】
請求項１から７のいずれか１項に記載のクライアント装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンテンツを複数のオブジェクトに分割して配信するコンテンツ配信ネットワークのクライアント装置及びプログラムに関する。
【背景技術】
【０００２】
コンテンツを示す名前に基づきコンテンツの配信を行うネットワークが提案されている。特許文献１及び非特許文献１は、その様なネットワークの１つであるコンテンツ・セントリック・ネットワーク（ＣＣＮ：Ｃｏｎｔｅｎｔ  Ｃｅｎｔｒｉｃ  Ｎｅｔｗｏｒｋｉｎｇ）を開示している。
【０００３】
ＣＣＮにおいて、コンテンツを公開するサーバ装置は当該コンテンツを１つ以上のチャンクと呼ばれるオブジェクトに分割し、クライアント装置は、この分割されたオブジェクトを指定するインタレスト・パケット（要求メッセージ）をＣＣＮに送信し、オブジェクト単位でコンテンツを取得する。しかしながら、１つのオブジェクトのみを指定するインタレスト・パケットを送信することは非効率であるため、特許文献２は、複数のオブジェクトの範囲を指定するインタレスト・パケットをＣＣＮに送信して、当該複数のオブジェクトを１つのインタレスト・パケットの応答として取得する構成を開示している。
【０００４】
また、非特許文献２は、クライアント装置によるインタレスト・パケットの送信制御として、ＴＣＰと同様の送信制御を適用することを提案している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２７７２３４号公報
【特許文献２】特開２０１１−１３５５７５号公報
【非特許文献】
【０００６】
【非特許文献１】Ｖ．Ｊａｃｏｂｓｏｎ，ｅｔ  ａｌ．，"Ｎｅｔｗｏｒｋｉｎｇ  Ｎａｍｅｄ  Ｃｏｎｔｅｎｔ"，ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＡＣＭ  ＣｏＮＥＸＴ  ２００９，２００９年１２月
【非特許文献２】Ｄ．Ｓａｕｃｅｚ，ｅｔ  ａｌ．，"ＡＩＭＤ  ａｎｄ  ＣＣＮ  Ｐａｓｔ  ａｎｄ  Ｎｏｖｅｌ  Ａｃｒｏｎｙｍｓ  Ｗｏｒｋｉｎｇ  Ｔｏｇｅｔｈｅｒ  ｉｎ  ｔｈｅ  Ｆｕｔｕｒｅ  Ｉｎｔｅｒｎｅｔ"、Ｉｎ  Ｐｒｏｃ．ｏｆ  ＡＣＭ  ＣｏＮＥＸＴ  ｗｏｒｋｓｈｏｐ  ｏｎ  Ｃａｐａｃｉｔｙ  Ｓｈａｒｉｎｇ、２０１２年
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献２は、インタレスト・パケットで要求するオブジェクトの数をどの様に決定するかについては何ら開示していない。また、オブジェクトの範囲を指定するインタレスト・パケットの送信タイミングについても何ら開示してはいない。また、非特許文献２に記載の送信制御は、インタレスト・パケットで要求するオブジェクトが１つの場合にのみ適用でき、複数のオブジェクトを１つのインタレスト・パケットで要求する場合には適用できない。複数のオブジェクトを１つのインタレスト・パケットで要求する場合、１つのインタレスト・パケットで要求するオブジェクトの数と、当該インタレスト・パケットを送信するタイミングを適切に決定しないと、ネットワークに輻輳を生じさせる恐れがある。
【０００８】
本発明は、コンテンツ配信ネットワークの輻輳を抑えるクライアント装置を提供するものである。
【課題を解決するための手段】
【０００９】
本発明の一側面によると、コンテンツを１つ以上のオブジェクトに分割して配信するコンテンツ配信ネットワークのクライアント装置は、要求したオブジェクトを待ち時間内に受信したか否かに応じてウィンドウ・サイズを更新する更新手段と、受信待ちオブジェクトの数を管理する管理手段と、前記ウィンドウ・サイズに基づき１つの要求メッセージで要求するオブジェクトの数を決定する決定手段と、前記ウィンドウ・サイズから前記受信待ちオブジェクトの数を減じた値が、前記決定手段が決定したオブジェクトの数より大きくなった後に、前記決定手段が決定した数のオブジェクトを要求する要求メッセージを前記コンテンツ配信ネットワークに送信する送信手段と、を備えていることを特徴とする。
【発明の効果】
【００１０】
コンテンツ配信ネットワークの輻輳を抑えることができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態によるコンテンツ配信ネットワークの構成図。
【図２】一実施形態によるクライアント装置の構成図。
【図３】一実施形態によるクライアント装置における処理のフローチャート。
【図４】一実施形態によるクライアント装置における処理の説明図。
【発明を実施するための形態】
【００１２】
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の各図においては実施形態の説明に必要ではない構成要素については図から省略する。また、以下の実施形態は例示であり本発明を実施形態の内容に限定するものではない。
【００１３】
図１は、本実施形態によるコンテンツ配信システムの構成図である。コンテンツ配信ネットワーク２には、コンテンツを公開するサーバ装置３と、コンテンツを取得するクライアント装置１が接続される。サーバ装置３は、コンテンツを複数のオブジェクトに分割し、クライアント装置１は、取得する１つ以上のオブジェクトを指定するインタレスト・パケット（要求メッセージ）をコンテンツ配信ネットワーク２に送信する。サーバ装置３は、インタレスト・パケットを受信すると、当該インタレスト・パケットで指定されたオブジェクトをクライアント装置１に向けて送信する。
【００１４】
なお、コンテンツ配信ネットワーク２内の各通信装置は、配信したオブジェクトをキャッシュすることができ、キャッシュしているオブジェクトを要求するインタレスト・パケットを受信すると、当該インタレスト・パケットをサーバ装置３に転送することなくキャッシュしているオブジェクトをクライアント装置１に向けて送信することができる。つまり、クライアント装置１は、送信したインタレスト・パケットの応答として、サーバ装置３及び／又はコンテンツ配信ネットワーク２の通信装置からオブジェクトを受信する。なお、コンテンツ配信ネットワーク２内の各通信装置は、インタレスト・パケットで要求された複数のオブジェクトの一部のみをキャッシュしている場合、キャッシュしているオブジェクトをクライアント装置１に送信すると共に、クライアント装置１に送信したオブジェクトの指定を当該インタレスト・パケットから削除して、当該インタレスト・パケットを転送する。したがって、クライアント装置１は、複数のオブジェクトを指定するインタレスト・パケットを送信したとしても、当該複数のオブジェクトを同じタイミングで必ず受信するのではない。
【００１５】
図２は、本実施形態によるクライアント装置１の構成図である。入出力部１１は、クライアント装置１のユーザとのユーザ・インタフェースである。インタレスト・パケット生成部１２は、後述する処理に基づきインタレスト・パケットの送信タイミングと、インタレスト・パケットで指定するオブジェクトの数を決定して、インタレスト・パケットを生成する。送受信部１３は、インタレスト・パケット生成部１２が生成したインタレスト・パケットをコンテンツ配信ネットワーク２に送信する。
【００１６】
図３は、本実施形態によるクライアント装置１のインタレスト・パケット生成部１２が実行する処理のフローチャートである。まず、以下の説明において使用する変数及び定数について説明する。Ｗ（ｔ）は、時刻ｔにおけるウィンドウ・サイズである。ここで、ウィンドウ・サイズＷ（ｔ）は、同時に受信待ちとできるオブジェクトの最大数である。Ｎ（ｔ）は時刻ｔにおいて受信待ちのオブジェクト数である。ｋは、所定の待ち時間内に受信したオブジェクトの数である。Ｍは所定の定数である。Ｌｍａｘ（ｔ）は、時刻ｔにおいて、インタレスト・パケットで指定することができるオブジェクトの最大数である。Ｒ（ｔ）は時刻ｔにおいて、クライアント装置１が新たに要求したいオブジェクトの数である。Ｌ（ｔ）は、時刻ｔにおいてインタレスト・パケットを送信する場合、当該インタレスト・パケットで指定するオブジェクトの数である。
【００１７】
Ｓ１０において、クライアント装置１は、待ち時間内にオブジェクトを受信したかを判定する。待ち時間内においてオブジェクトを受信していないと、クライアント装置１は、Ｓ１２でウィンドウ・サイズＷ（ｔ）を半分に変更する。なお、半分にした値が少数となる場合には、切り上げ、切り捨てを行って整数とする。なお、Ｓ１２においては、ウィンドウ・サイズを減少させれば良く、半分にするのではなく、所定の定数を減じても、所定の定数で除しても良い。一方、待ち時間内において少なくとも１つのオブジェクトを受信していると、クライアント装置１は、Ｓ１１でウィンドウ・サイズＷ（ｔ）を１だけ増加させる。なお、Ｓ１１におけるウィンドウ・サイズの増加は、１を加えることに限定されず、所定の定数を加えても、所定の定数で乗じても良い。クライアント装置１は、Ｓ１３で、受信待ちのオブジェクト数から、所定の待ち時間内に受信したオブジェクト数ｋを減じることで、受信待ちのオブジェクト数Ｎ（ｔ）を更新する。
【００１８】
クライアント装置１は、Ｓ１４でＷ（ｔ）と所定の定数ＭからＬｍａｘ（ｔ）を求める。具体的には、Ｗ（ｔ）／Ｍの小数点以下を、切り上げ、切り捨て、又は、四捨五入することで整数とし、これをＬｍａｘ（ｔ）とする。Ｍを例えば、同時に送信可能なインタレスト・パケットの数とすると、Ｌｍａｘ（ｔ）は、１つのインタレスト・パケットで指定できるオブジェクト数となる。
【００１９】
クライアント装置１は、Ｓ１５で、Ｒ（ｔ）がＬｍａｘ（ｔ）より大きいか否かを判定する。Ｒ（ｔ）が、Ｌｍａｘ（ｔ）より大きいと、クライアント装置１は、Ｓ１６でＬ（ｔ）をＬｍａｘ（ｔ）とし、Ｌｍａｘ（ｔ）が、Ｒ（ｔ）以下であると、クライアント装置１は、Ｓ１７でＬ（ｔ）をＲ（ｔ）とする。Ｓ１５からＳ１７の処理は、クライアント装置１が新たに要求したいオブジェクトの数Ｒ（ｔ）が、時刻ｔにおいてインタレスト・パケットで指定できるオブジェクトの最大数Ｌｍａｘ（ｔ）より大きいと、時刻ｔにおいてインタレスト・パケットを送信する場合に、当該インタレスト・パケットで指定するオブジェクト数Ｌ（ｔ）をＬｍａｘ（ｔ）に限定し、そうでないと、時刻ｔにおいてインタレスト・パケットを送信する場合に、当該インタレスト・パケットで指定するオブジェクト数をＲ（ｔ）のままとするための処理である。
【００２０】
クライアント装置１は、Ｓ１８で、Ｗ（ｔ）からＮ（ｔ）を減じた値が、Ｌ（ｔ）以上であるか否かを判定する。ウィンドウ・サイズＷ（ｔ）は、時刻ｔにおいて、受信待ちとできるオブジェクトの最大数であり、Ｎ（ｔ）は、時刻ｔにおいて、受信待ちのオブジェクト数、つまり、既に要求しているオブジェクト数である。したがって、この差が、オブジェクト数Ｌ（ｔ）以上ではないのに、Ｌ（ｔ）個のオブジェクトを指定するインタレスト・パケットを送信すると、受信待ちオブジェクト数Ｎ（ｔ）はウィンドウ・サイズを超えてしまう。つまり、この差が、オブジェクト数Ｌ（ｔ）以上ではないと、時刻ｔにおいてインタレスト・パケットは送信できないことになる。したがって、この差が、オブジェクト数Ｌ（ｔ）以上ではないと、クライアント装置１は、インタレスト・パケットを送信することなくＳ１０からの処理を再開する。一方、この差がオブジェクト数Ｌ（ｔ）以上であると、クライアント装置１は、Ｓ１９で、時刻ｔにおいてＬ（ｔ）個のオブジェクトを指定するインタレスト・パケットを送信し、Ｎ（ｔ）を更新する。その後、クライアント装置１は、Ｓ１８での判定が"Ｎｏ"となるまで、Ｓ１５〜Ｓ１９の処理を繰り返す。
【００２１】
図４は、図３のフローチャートでの処理を説明するための具体例を示している。なお、以下の例において、クライアント装置１は、多数のオブジェクトを取得するため、Ｒは常にＬｍａｘより大きく、よって、Ｓ１５〜Ｓ１６の処理においては常にＬ＝Ｌｍａｘであるものとする。さらに、Ｍ＝２であり、Ｓ１４で、Ｌｍａｘは、Ｗ／Ｍの少数点以下を切り上げた値とし、Ｓ１２ではウィンドウ・サイズを半分にした値が少数となる場合には切り上げて整数にするものとする。さらに、初期状態である時刻ｔ＝０において、Ｗ＝１、Ｎ＝１、Ｌ＝１とする。
【００２２】
時刻ｔ＝０から時刻ｔ＝１までの間に、クライアント装置１は、１つのオブジェクトを受信していたものとする。この場合、時刻ｔ＝１のＳ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（１）＝２となり、Ｓ１３でＮ（１）＝０となり、Ｓ１４〜Ｓ１７でＬ（１）＝１となる。さらに、Ｓ１８でＷ（１）−Ｎ（１）＝２がＬ（１）＝１以上であるため、クライアント装置１はＳ１９で１つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（１）＝１となる。その後の繰り返しのＳ１８においても、Ｗ（１）−Ｎ（１）＝１がＬ（１）＝１以上であるため、クライアント装置１はＳ１９で１つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（１）＝２となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００２３】
時刻ｔ＝１からｔ＝２までの間に、クライアント装置１は、２つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（２）＝３となり、Ｓ１３でＮ（２）＝０となり、Ｓ１４〜Ｓ１７でＬ（２）＝２となる。さらに、Ｓ１８でＷ（２）−Ｎ（２）＝３がＬ（２）＝２以上であるため、クライアント装置１はＳ１９で２つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（２）＝２となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００２４】
時刻ｔ＝２からｔ＝３までの間に、クライアント装置１は、２つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（３）＝４となり、Ｓ１３でＮ（３）＝０となり、Ｓ１４〜Ｓ１７でＬ（３）＝２となる。さらに、Ｓ１８でＷ（３）−Ｎ（３）＝４がＬ（３）＝２以上であるため、クライアント装置１はＳ１９で２つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（３）＝２となる。その後の繰り返しのＳ１８においても、Ｗ（３）−Ｎ（３）＝２がＬ（３）＝２以上であるため、クライアント装置１はＳ１９で２つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（３）＝４となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００２５】
時刻ｔ＝３からｔ＝４までの間に、クライアント装置１は、４つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（４）＝５となり、Ｓ１３でＮ（４）＝０となり、Ｓ１４〜Ｓ１７でＬ（４）＝３となる。さらに、Ｓ１８でＷ（４）−Ｎ（４）＝５がＬ（４）＝３以上であるため、クライアント装置１はＳ１９で３つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（４）＝３となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００２６】
時刻ｔ＝４からｔ＝５までの間に、クライアント装置１は、３つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（５）＝６となり、Ｓ１３でＮ（５）＝０となり、Ｓ１４〜Ｓ１７でＬ（４）＝３となる。さらに、Ｓ１８でＷ（５）−Ｎ（５）＝６がＬ（５）＝３以上であるため、クライアント装置１はＳ１９で３つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（５）＝３となる。その後の繰り返しのＳ１８においても、Ｗ（５）−Ｎ（５）＝３がＬ（３）＝３以上であるため、クライアント装置１はＳ１９で３つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（３）＝６となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００２７】
時刻ｔ＝５からｔ＝６までの間に、クライアント装置１は、６つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（６）＝７となり、Ｓ１３でＮ（６）＝０となり、Ｓ１４〜Ｓ１７でＬ（６）＝４となる。さらに、Ｓ１８でＷ（６）−Ｎ（６）＝７がＬ（５）＝４以上であるため、クライアント装置１はＳ１９で４つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（６）＝４となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００２８】
時刻ｔ＝６からｔ＝７までの間に、クライアント装置１は、４つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（７）＝８となり、Ｓ１３でＮ（７）＝０となり、Ｓ１４〜Ｓ１７でＬ（７）＝４となる。さらに、Ｓ１８でＷ（７）−Ｎ（７）＝８がＬ（７）＝４以上であるため、クライアント装置１はＳ１９で４つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（７）＝４となる。その後の繰り返しのＳ１８においても、Ｗ（７）−Ｎ（７）＝４がＬ（７）＝４以上であるため、クライアント装置１はＳ１９で４つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（７）＝８となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００２９】
時刻ｔ＝７からｔ＝８までの間に、クライアント装置１は、６つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（８）＝９となり、Ｓ１３でＮ（８）＝２となり、Ｓ１４〜Ｓ１７でＬ（８）＝５となる。さらに、Ｓ１８でＷ（８）−Ｎ（８）＝７がＬ（７）＝５以上であるため、クライアント装置１はＳ１９で５つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（８）＝７となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００３０】
時刻ｔ＝８からｔ＝９までの間に、クライアント装置１は、６つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（９）＝１０となり、Ｓ１３でＮ（９）＝１となり、Ｓ１４〜Ｓ１７でＬ（９）＝５となる。さらに、Ｓ１８でＷ（９）−Ｎ（９）＝９がＬ（９）＝５以上であるため、クライアント装置１はＳ１９で５つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（９）＝６となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００３１】
時刻ｔ＝９からｔ＝１０までの間に、クライアント装置１は、６つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（１０）＝１１となり、Ｓ１３でＮ（１０）＝０となり、Ｓ１４〜Ｓ１７でＬ（１０）＝６となる。さらに、Ｓ１８でＷ（１０）−Ｎ（１０）＝１１がＬ（１０）＝６以上であるため、クライアント装置１はＳ１９で６つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（１０）＝６となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００３２】
時刻ｔ＝１０からｔ＝１１までの間に、クライアント装置１は、６つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（１１）＝１２となり、Ｓ１３でＮ（１１）＝０となり、Ｓ１４〜Ｓ１７でＬ（１１）＝６となる。さらに、Ｓ１８でＷ（１１）−Ｎ（１１）＝１２がＬ（１０）＝６以上であるため、クライアント装置１はＳ１９で６つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（１１）＝６となる。その後の繰り返しのＳ１８においても、Ｗ（１１）−Ｎ（１１）＝６がＬ（１１）＝６以上であるため、クライアント装置１はＳ１９で６つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（１１）＝１２となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００３３】
時刻ｔ＝１１からｔ＝１２までの間に、クライアント装置１は、６つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（１２）＝１３となり、Ｓ１３でＮ（１２）＝６となり、Ｓ１４〜Ｓ１７でＬ（１２）＝７となる。さらに、Ｓ１８でＷ（１２）−Ｎ（１２）＝７がＬ（１２）＝７以上であるため、クライアント装置１はＳ１９で７つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（１２）＝１３となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００３４】
時刻ｔ＝１２からｔ＝１３までの間に、クライアント装置１は、６つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（１３）＝１４となり、Ｓ１３でＮ（１３）＝７となり、Ｓ１４〜Ｓ１７でＬ（１３）＝７となる。さらに、Ｓ１８でＷ（１３）−Ｎ（１３）＝７がＬ（１３）＝７以上であるため、クライアント装置１はＳ１９で７つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（１３）＝１４となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００３５】
時刻ｔ＝１３からｔ＝１４までの間に、クライアント装置１は、６つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（１４）＝１５となり、Ｓ１３でＮ（１４）＝８となり、Ｓ１４〜Ｓ１７でＬ（１４）＝８となる。この場合、Ｓ１８でＷ（１４）−Ｎ（１４）＝７がＬ（１４）＝８より小さいため、クライアント装置１は、インタレスト・パケットを送信することなく処理はＳ１０に戻る。
【００３６】
時刻ｔ＝１４からｔ＝１５までの間に、クライアント装置１は、６つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（１５）＝１６となり、Ｓ１３でＮ（１５）＝２となり、Ｓ１４〜Ｓ１７でＬ（１５）＝８となる。さらに、Ｓ１８でＷ（１５）−Ｎ（１５）＝１４がＬ（１５）＝８以上であるため、クライアント装置１はＳ１９で８つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（１５）＝１０となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００３７】
時刻ｔ＝１５からｔ＝１６までの間に、クライアント装置１は、オブジェクトを受信しなかったものとする。この場合、Ｓ１０は"Ｎｏ"となり、Ｓ１２でＷ（１６）＝８となり、Ｓ１３でＮ（１６）＝１０となり、Ｓ１４〜Ｓ１７でＬ（１６）＝４となる。この場合、Ｓ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００３８】
時刻ｔ＝１６からｔ＝１７までの間に、クライアント装置１は、２つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（１７）＝９となり、Ｓ１３でＮ（１７）＝８となり、Ｓ１４〜Ｓ１７でＬ（１７）＝５となる。この場合、Ｓ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００３９】
時刻ｔ＝１７からｔ＝１８までの間に、クライアント装置１は、２つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（１８）＝１０となり、Ｓ１３でＮ（１８）＝６となり、Ｓ１４〜Ｓ１７でＬ（１８）＝５となる。この場合、Ｓ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００４０】
時刻ｔ＝１８からｔ＝１９までの間に、クライアント装置１は、２つのオブジェクトを受信していたものとする。この場合、Ｓ１０は"Ｙｅｓ"となり、Ｓ１１でＷ（１９）＝１１となり、Ｓ１３でＮ（１９）＝４となり、Ｓ１４〜Ｓ１７でＬ（１８）＝６となる。さらに、Ｓ１８でＷ（１９）−Ｎ（１９）＝７がＬ（１５）＝６以上であるため、クライアント装置１はＳ１９で６つのオブジェクトを指定するインタレスト・パケットを送信し、よって、Ｎ（１９）＝１０となる。その後の繰り返しのＳ１８は、"Ｎｏ"となるため処理はＳ１０に戻る。
【００４１】
以上、時刻ｔにおいて、１つのインタレスト・パケットに含めるオブジェクトの数の最大値Ｌｍａｘを、時刻ｔにおいて、受信待ち状態とできるオブジェクトの最大数を示すウィンドウ・サイズＷ（ｔ）と、所定の値Ｍから求めて決定する。Ｍは、例えば、同時に送信できるインタレスト・パケットの数に基づき求めた値とする。そして、時刻ｔにおいて、１つのインタレスト・パケットに含めるオブジェクトの数を、この最大値Ｌｍａｘから求め、時刻ｔにおいて受信待ち状態であるオブジェクトの数Ｎ（ｔ）と、ウィンドウ・サイズＷ（ｔ）を比較することでインタレスト・パケットの送信タイミングを決定する。この構成により、インタレスト・パケットの送信タイミングと、当該インタレスト・パケットで指定するオブジェクト数を適切な値とし、ネットワークの輻輳を抑えることができる。
【００４２】
なお、上記実施形態において、値Ｍを所定値としていたが、値Ｍを変数とすることができる。例えば、時刻ｔにおけるウィンドウ・サイズＷ（ｔ）を所定の定数Ｘで除することで時刻ｔにおける値Ｍ（ｔ）を求める構成とすることができる。なお、定数Ｘは、時刻に拘らず、インタレスト・パケットで指定できるオブジェクトの最大限度数とすることができる。また、値Ｍの最小値Ｍｍｉｎを決めて置き、ウィンドウ・サイズＷ（ｔ）を所定の定数Ｘで除した値が、最小値Ｍｍｉｎより小さくなる場合には、時刻ｔにおけるＭ（ｔ）を、Ｍｍｉｎとする構成であっても良い。
【００４３】
さらに、図３のフローチャートは、所定の期間毎にＳ１０からの処理を行うものであったが、１つのオブジェクトを受信するか、１つのオブジェクトに対する待ち時間が経過する度にＳ１０からの処理を行うものであっても良い。
【００４４】
また、本発明によるクライアント装置１は、コンピュータを上記クライアント装置１として動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。 
【図１】
0006362536.tif 000002
【図２】
0006362536.tif 000003
【図３】
0006362536.tif 000004
【図４】
0006362536.tif 000005