(57)【特許請求の範囲】
【請求項１】
コンテンツを１つ以上のオブジェクトに分割して配信するコンテンツ配信ネットワークの転送装置であって、
受信待ちのオブジェクト数である第１の値を管理する管理手段と、
閾値を保持する保持手段と、
１つ以上のオブジェクトを示す要求パケットを受信すると、当該１つ以上のオブジェクトの内、キャッシュしておらず、かつ、受信待ちでないオブジェクトを判定して、前記判定したオブジェクトの数である第２の値を求め、前記第１の値と前記第２の値の和が前記閾値を超えていると、前記第２の値より小さい第３の値を決定し、前記判定したオブジェクトから前記第３の値の数のオブジェクトを選択し、前記選択したオブジェクトを示す要求パケットを送信する処理を行う処理手段と、
を備えていることを特徴とする転送装置。
【請求項２】
前記保持手段は、前記閾値より大きい制限値を保持しており、
前記処理手段は、前記第３の値を、前記制限値から前記第１の値を減じた値以下に制限することを特徴とする請求項１に記載の転送装置。
【請求項３】
前記第３の値は、前記第１の値と前記第２の値の和が前記制限値以下では、前記第１の値と前記第２の値の和が大きくなると、大きくなることを特徴とする請求項２に記載の転送装置。
【請求項４】
前記処理手段は、前記判定したオブジェクトから選択されなかった、前記第２の値から前記第３の値を減じた数のオブジェクトを、前記受信した要求パケットの送信元の装置に通知することを特徴とする請求項１から３のいずれか１項に記載の転送装置。
【請求項５】
請求項１から４のいずれか１項に記載の転送装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンテンツを複数のオブジェクトに分割して配信するコンテンツ配信ネットワークの転送装置及びプログラムに関する。
【背景技術】
【０００２】
コンテンツを示す名前に基づきコンテンツの配信を行うネットワークが提案されている。特許文献１は、その様なネットワークの１つであるコンテンツ・セントリック・ネットワーク（ＣＣＮ：Ｃｏｎｔｅｎｔ  Ｃｅｎｔｒｉｃ  Ｎｅｔｗｏｒｋｉｎｇ）を開示し、非特許文献１は、その様なネットワークの１つであるネームド・データ・ネットワーク（ＮＤＮ：Ｎａｍｅｄ  Ｄａｔａ  Ｎｅｔｗｏｒｋｉｎｇ）を開示している。
【０００３】
例えば、ＣＣＮにおいて、コンテンツを公開するサーバ装置は当該コンテンツを１つ以上のチャンクと呼ばれるオブジェクトに分割し、クライアント装置は、この分割されたオブジェクトを指定するインタレスト・パケット（要求パケット）をＣＣＮに送信し、オブジェクト単位でコンテンツを取得する。ＣＣＮを構成する転送装置は、インタレスト・パケットを受信すると、当該インタレスト・パケットを、当該インタレスト・パケットが要求するオブジェクトを保持しているサーバ装置に向けて転送し、転送したインタレスト・パケットの応答としてオブジェクトを受信すると、受信したオブジェクトを、当該インタレスト・パケットを送信したクライアント装置に向けて転送する。
【０００４】
また、転送装置は、受信して転送したオブジェクトをキャッシュできる。転送装置は、キャッシュしているオブジェクトを要求するインタレスト・パケットを受信すると、当該インタレスト・パケットを転送することなく、キャッシュしているオブジェクトをクライアント装置に向けて送信することができる。また、転送装置は、第１インタレスト・パケットを転送したことにより受信待ちとなっているオブジェクトと同じオブジェクトを要求する第２インタレスト・パケットを受信すると、第２インタレスト・パケットを転送しない。これは、第２インタレスト・パケットを転送しなくとも、そのうち当該オブジェクトを受信するからである。
【０００５】
以上の動作を行うため、転送装置は、ＣＳ（Ｃｏｎｔｅｎｔ  Ｓｔｏｒｅ）とＰＩＴ（Ｐｅｎｄｉｎｇ  Ｉｎｔｅｒｅｓｔ  Ｔａｂｌｅ）を管理している。ＣＳはキャッシュしているオブジェクトを示す情報であり、ＰＩＴは、受信待ちとなっているオブジェクトと、当該オブジェクトを受信した場合の送信インタフェースの関係を示す情報である。この様なＣＣＮにおいて、１つのオブジェクトのみを指定するインタレスト・パケットを送信してオブジェクトを取得すると、コンテンツのサイズが大きい場合には大量のインタレスト・パケットを送信する必要があり非効率である。したがって、特許文献２は、クライアント装置が、複数のオブジェクトの範囲を指定するインタレスト・パケットをＣＣＮに送信して、当該複数のオブジェクトを１つのインタレスト・パケットの応答として取得する構成を開示している。
【０００６】
また、非特許文献１は、オブジェクトを転送する転送装置において、要求パケットの転送数に制限を設ける構成を開示している。具体的には、所定の制限値をあらかじめ決めておくと共に、転送装置は、受信待ちであるオブジェクト数を管理する。そして、転送装置は、受信した要求パケットを転送することで、受信待ち数が制限値を超える場合には、当該要求パケットを転送せず、代わりに、当該要求パケットを送信したクライアント装置に否定応答（ＮＡＣＫ）を送信している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−２７７２３４号公報
【特許文献２】特開２０１１−１３５５７５号公報
【非特許文献】
【０００８】
【非特許文献１】Ｃ．Ｙｉ，ｅｔ  ａｌ．，"Ａｄａｐｔｉｖｅ  Ｆｏｒｗａｒｄｉｎｇ  ｉｎ  Ｎａｍｅｄ  Ｄａｔａ  Ｎｅｔｗｏｒｋｉｎｇ"，ＡＣＭ  ＳＩＧＣＯＭＭ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｒｅｖｉｅｗ，２０１２年
【発明の概要】
【発明が解決しようとする課題】
【０００９】
コンテンツのサイズが大きいと、クラインアント装置は、１つのオブジェクトを取得するために多数の要求パケットを送信する必要がある。非特許文献１に記載の方法において、転送装置は、制限値を超えると要求パケットの転送を制限するが、クライアント装置が多数のオブジェクトに分割されたコンテンツを取得する様な場合には、受信待ち数が制限値にはりつくことが生じ得る。この場合、他のクライアント装置が送信した要求パケットがなかなか転送されず、クライアント装置間で帯域利用の不公平さが生じる恐れがある。
【００１０】
本発明は、クライアント装置間での帯域利用の不公平さを低減させる転送装置及びプログラムを提供するものである。
【課題を解決するための手段】
【００１１】
本発明の一側面によると、コンテンツを１つ以上のオブジェクトに分割して配信するコンテンツ配信ネットワークの転送装置は、受信待ちのオブジェクト数である第１の値を管理する管理手段と、閾値を保持する保持手段と、１つ以上のオブジェクトを示す要求パケットを受信すると、当該１つ以上のオブジェクトの内、キャッシュしておらず、かつ、受信待ちでないオブジェクトを判定して、前記判定したオブジェクトの数である第２の値を求め、前記第１の値と前記第２の値の和が前記閾値を超えていると、前記第２の値より小さい第３の値を決定し、前記判定したオブジェクトから前記第３の値の数のオブジェクトを選択し、前記選択したオブジェクトを示す要求パケットを送信する処理を行う処理手段と、を備えていることを特徴とする。
【発明の効果】
【００１２】
クライアント装置間での帯域利用の不公平さを低減させることができる。
【図面の簡単な説明】
【００１３】
【図１】一実施形態による転送装置の構成図。
【図２】一実施形態による転送装置における処理のフローチャート。
【図３】一実施形態による転送装置における処理の説明図。
【発明を実施するための形態】
【００１４】
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の各図においては実施形態の説明に必要ではない構成要素については図から省略する。また、以下の実施形態は例示であり本発明を実施形態の内容に限定するものではない。
【００１５】
＜第一実施形態＞
図２は、本実施形態による転送装置における処理を示すフローチャートである。なお、以下の説明においては、ＣＣＮにおける用語を使用するが、本実施形態はＣＣＮに限定されない。まず、以下の説明において使用する用語について説明する。インタレスト・パケットは、コンテンツを分割したオブジェクトを要求する要求パケットである。なお、本実施形態において、インタレスト・パケットは、１つのオブジェクトのみを要求するものではなく、１つ以上のオブジェクトを要求するものとする。よって、インタレスト・パケットにおいては、要求するオブジェクトのオブジェクト名が列挙される。以下では、インタレスト・パケットにおいて要求されているオブジェクトの数を、"要求オブジェクト数"と呼ぶ。また、転送装置は、インタレスト・パケットを転送したことにより受信待ちとなっているオブジェクトの数を管理している。以下では、この受信待ちとなっているオブジェクトの数を"受信待ち数"と呼ぶ。転送装置には、"受信待ち数"の最大値が設定されている。以下では、この"受信待ち数"の最大値を"制限値"と呼ぶ。例えば、受信待ち数が"７５"であり、制限値が"１００"である場合に、転送装置は、２５個までのオブジェクトであれば、インタレスト・パケットを転送して受信待ちに加えることができる。本実施形態において、転送装置は、制限値に加えて閾値を使用する。閾値は制限値以下の値である。なお、以下の説明においては、特に断りのない限り、具体的な数値例とし、受信待ち数として"７５"を、制限値として"１００"を、閾値として"８０"を使用する。転送装置は、インタレスト・パケットを受信する度に、図２の処理を行う。
【００１６】
Ｓ１０において、転送装置は、受信したインタレスト・パケットの要求オブジェクト数を判定する。転送装置は、Ｓ１１で、インタレスト・パケットが要求する個々のオブジェクトについて、キャッシュしているものと、既に受信待ちであるものをＣＳ及びＰＩＴにより判定する。そして、インタレスト・パケットに含めて転送が必要なオブジェクトの数、つまり、受信したインタレスト・パケットが要求するオブジェクトの内、キャッシュしておらず、かつ、受信待ちでないオブジェクトの数を判定する。なお、以下では、インタレスト・パケットに含めて転送が必要なオブジェクトと、その数をそれぞれ"転送必要オブジェクト"及び"転送必要オブジェクト数"と呼ぶ。例えば、受信したインタレスト・パケットの要求オブジェクト数が"３０"であり、そのうち、キャッシュしているオブジェクトが"１０"であり（ＣＳにより判定）、既に受信待ちであるオブジェクトが"５"（ＰＩＴにより判定）であるとすると、転送必要オブジェクト数は、"３０−１０−５＝１５"となる。
【００１７】
転送装置は、Ｓ１２で、転送必要オブジェクトを総て含むインタレスト・パケットを転送すると、受信待ち数が閾値を超えるか否かを判定する。具体的には、現在の受信待ち数と転送必要オブジェクト数の和が閾値を超えるか否かを判定する。閾値を超えない場合、転送装置は、Ｓ１５で、転送必要オブジェクトのオブジェクト名を含むインタレスト・パケットを転送してＰＩＴを更新する。例えば、受信待ち数が"７５"であり、閾値が"８０"であると、"転送必要オブジェクト数"が"５"以下であれば、Ｓ１２はＹｅｓである。一方、現在の受信待ち数と転送必要オブジェクト数との和が閾値を超えると、転送装置は、Ｓ１３で、実際に転送するオブジェクト数を決定する。なお、この実際に転送するオブジェクト数を、以下では"転送オブジェクト数"と呼ぶ。当然ではあるが、"転送オブジェクト数"は、"転送必要オブジェクト数"より少ない値である。
【００１８】
以下では、Ｓ１３での処理について説明する。まず、転送装置は、現在の受信待ち数と転送必要オブジェクト数との和から閾値を減じた値を求める。この値に所定の係数を乗じ、これにより、転送するインタレスト・パケットから除くオブジェクトの数（以下、除く数と呼ぶ）を求める。例えば、受信待ち数が"７５"であり、閾値が"８０"であり、転送必要オブジェクト数が"１５"であるとすると、転送必要オブジェクト数と受信待ち数の和から閾値を減じた値は、"７５＋１５−８０＝１０"となる。所定の係数を０．１とすると、除く数は、"１０×０．１＝１"となる。なお、所定の係数を乗じた値が整数とならない場合には、切り上げ、切り捨て、四捨五入等の任意の方法で整数にする。以下の数値例では切り上げるものとする。転送装置は、転送必要オブジェクト数から除く数を減じた値を転送オブジェクト数とする。上記例では、除く数は"１"であるため、転送オブジェクト数は"１４"となる。なお、転送オブジェクト数が、制限値から受信待ちオブジェクト数を減じた値（以下、最大転送数と呼ぶ。）より大きくなる場合には、転送オブジェクト数を最大転送数に制限する。
【００１９】
例えば、受信待ち数が"７５"で制限値が"１００"であるため、最大転送数は"２５"である。また、閾値が"８０"であるため、転送必要オブジェクト数が"２８"であり、所定の係数が０．１であると、除く数は、"（７５＋２８−８０）×０．１＝２．３"であり、切り上げて"３"となる。この場合、上記説明した式により求められる転送オブジェクト数は"２８−３＝２５"であり、最大転送数"２５"以下である。したがって、転送オブジェクト数はそのまま"２５"となる。しかし、転送必要オブジェクト数が"２９"であり、所定の係数が０．１であると、除く数は、"（７５＋２９−８０）×０．１＝２．４"であり切り上げて"３"となる。この場合、上記説明した式により求められる転送オブジェクト数は"２９−３＝２６"であり、最大転送数"２５"より多くなる。この場合、"転送必要オブジェクト数"は最大転送数に等しい"２５"とする。したがって、結果として除く数は"４"となる。
【００２０】
つまり、転送装置は、Ｓ１３において、転送オブジェクト数と除く数を決定する。また、決定した数に従い、どのオブジェクトを転送するインタレスト・パケットに含め、どのオブジェクトを含めないかも決定する。なお、転送するインタレスト・パケットに含めるオブジェクトをどの様に決定するかは任意の方法を使用することができる。転送装置は、Ｓ１４において、インタレスト・パケットを送信したクライアント装置に、転送するインタレスト・パケットに含めないと決定したオブジェクトをＮＡＣＫにより通知する。なお、１つのＮＡＣＫに１つのオブジェクト名を含めても、１つのＮＡＣＫに転送しないと決定した総てのオブジェクト名を含めても良い。その後、転送装置は、Ｓ１５で、決定したオブジェクト名を含むインタレスト・パケットを転送する。
【００２１】
図３は、インタレスト・パケットを受信した時点における受信待ち数と当該インタレスト・パケットの転送必要オブジェジェクト数の和（横軸）と、当該受信待ち数と転送オブジェクト数の和（縦軸）との関係を示している。なお、点線は従来技術であり、実線が本実施形態での関係である。点線に示す様に、従来技術では、制限値のみで判定するため、横軸の値が制限値以下においては、横軸の値と縦軸の値は同じであり、横軸の値が制限値を超えると縦軸の値は制限値に制限される。本実施形態では、横軸が閾値を超えると、従来技術より縦軸の値が低くなる。なお、本実施形態においては、横軸が閾値より大きく、から、制限値以下の範囲においては、横軸の値が大きくなる程、縦軸の値も大きくなる。しかしながら、階段状に大きく、つまり、ある範囲において縦軸の値が一定となる様にしても良い。さらに、図３の例では、横軸の値が制限値を超えても、縦軸は制限値より小さい範囲が存在するが、横軸の値が制限値を超えると、縦軸の値を制限値とする構成であっても良い。いずれにしても、本実施形態によると、制限値に対する余裕が増加し、クライアント装置が利用する帯域の不公平さを低減することができる。
【００２２】
図１は、本実施形態による転送装置の構成図である。インタフェース部１１は、複数のインタフェースを有し、パケットの送受信を行う。保持部１３は、ＰＩＴや、ＣＳや、キャッシュしているオブジェクトを保持する。保持部１３は、さらに、制限値や閾値や、所定の係数を保持する。また、管理部１４は、受信待ち数、制限値から受信待ち数を減じた最大転送数等を管理する。処理部１２は、図２に示す処理を行ってインタレスト・パケットの転送を行う。
【００２３】
＜その他の実施形態＞
なお、第一実施形態では、転送必要オブジェクト数と受信待ち数の和から閾値を減じた値に所定の係数を乗ずることで除く数を求め、転送必要オブジェクト数から除く数を減ずることで転送オブジェクト数を求めていた。しかしながら、例えば、転送必要オブジェクト数と受信待ち数の和から閾値を減じた値に所定の係数を乗ずることで転送オブジェクト数を求める構成であっても良い。また、所定の係数は、固定的な値ではなく、転送必要オブジェクト数と受信待ち数の和から閾値を減じた値により変化する値であっても良い。より一般的には、転送必要オブジェクト数と受信待ち数の和が閾値を超えた場合、転送必要オブジェクト数より少ない数を、転送オブジェクト数とする構成であれば良い。なお、何れの場合にしても、転送オブジェクト数と受信待ち数の和は、制限値以内とする。
【００２４】
さらに、第一実施形態においては、現在の受信待ち数と転送必要オブジェクト数との和から閾値を減じた値を求め、この値に所定の係数を乗じ、これにより、除く数を求めていた。しかしながら、現在の受信待ち数と転送必要オブジェクト数との和が制限値を超えていると、制限値を超えた数と、制限値から現在の受信待ち数を減じた値に所定の係数を乗じた値との和を除く数とする形態であっても良い。例えば、受信待ち数が"７５"であり、閾値が"８０"であり、制限値が"１００"であり、所定の係数を"０．１"とする。この場合、転送必要オブジェクト数が"２８"であると、制限値を超えた数は、"７５＋２８−１００＝３"である。また、制限値から現在の受信待ち数を減じた値に所定の係数を乗じた値は、"（１００−８０）×０．１＝２"である。したがって、除く数は"２＋３＝５"であり、転送オブジェクト数は"２３"となる。さらに、転送必要オブジェクト数が"２９"であると、制限値を超えた数は、"７５＋２９−１００＝４"である。また、制限値から現在の受信待ち数を減じた値に所定の係数を乗じた値は、"（１００−８０）×０．１＝２"である。したがって、除く数は"２＋４＝６"であり、転送オブジェクト数は"２３"となる。なお、現在の受信待ち数と転送必要オブジェクト数との和が制限値を超えていない場合の処理は、第一実施形態と同様である。この形態では、現在の受信待ち数と転送必要オブジェクト数との和が制限値を超えると、現在の受信待ち数と転送オブジェクト数の和は制限値より小さくなる。よって、１つのインタレスト・パケットにおける転送必要オブジェクト数が大きくとも、当該インタレスト・パケット転送後の受信待ち数は制限値より小さくなる。よって、他のクライアント装置がオブジェクトを要求できなくなる状態を減らすことができる。
【００２５】
また、本発明による転送装置は、コンピュータを上記転送装置として動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。 
【図１】
0006371230.tif 000002
【図２】
0006371230.tif 000003
【図３】
0006371230.tif 000004