(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-29
(45)【発行日】2024-04-08
(54)【発明の名称】コンテンツ配信ネットワークのクライアント装置及びプログラム
(51)【国際特許分類】
H04L 45/00 20220101AFI20240401BHJP
【FI】
H04L45/00
(21)【出願番号】P 2021049135
(22)【出願日】2021-03-23
【審査請求日】2023-03-02
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】植田 一暁
(72)【発明者】
【氏名】田上 敦士
【審査官】和平 悠希
(56)【参考文献】
【文献】特開2019-145900(JP,A)
【文献】特開2015-097349(JP,A)
【文献】特開2015-216498(JP,A)
【文献】特開2016-115210(JP,A)
【文献】特開2020-136708(JP,A)
【文献】国際公開第2012/011450(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
H04L 41/00-101/695
(57)【特許請求の範囲】
【請求項1】
コンテンツを1つ以上のチャンクに分割して配信するコンテンツ配信ネットワークのクライアント装置であって、
複数のキューと、
第1コンテンツの複数の第1チャンクそれぞれを取得する場合、前記複数の第1チャンクそれぞれを要求する複数の第1要求パケットを生成し、前記複数の第1要求パケットそれぞれが要求する第1チャンクのチャンク名に基づき、前記複数の第1要求パケットそれぞれを前記複数のキューのいずれかのキューに格納する格納手段と、
前記複数の第1要求パケットを前記コンテンツ配信ネットワークに送信するため、前記複数のキューそれぞれのキューから第1要求パケットを読み出す読出手段と、
前記コンテンツ配信ネットワーク内の転送装置が前記第1要求パケットの転送先を決定するために使用する転送情報を前記複数のキューそれぞれに割り当てる割当手段と、
を備え、
前記割当手段は、前記複数のキューそれぞれに異なる前記転送情報を割り当て、
前記読出手段は、前記複数のキューそれぞれのキューから読み出した前記第1要求パケットに、当該キューに割り当てられている前記転送情報を追加して前記コンテンツ配信ネットワークに送信することを特徴とするクライアント装置。
【請求項2】
前記複数のキューには優先度が設定され、
前記格納手段は、キューの優先度が高くなる程、当該キューに格納する前記第1要求パケットの数を多くすることを特徴とする請求項
1に記載のクライアント装置。
【請求項3】
前記格納手段は、前記複数のキューそれぞれに格納する前記第1要求パケットの数の比率が所定の比率となる様に、前記複数の第1要求パケットを前記複数のキューのいずれかのキューに格納することを特徴とする請求項
2に記載のクライアント装置。
【請求項4】
前記第1コンテンツに関連付けられた複数の転送情報と、前記複数の転送情報それぞれの優先度を示す数値情報と、を外部のサーバ装置から取得する取得手段をさらに備えており、
前記複数のキューには優先度が設定され、
前記割当手段が前記複数のキューそれぞれのキューに割り当てる前記転送情報の前記複数の転送情報における優先度の順位は、前記複数のキューにおける当該キューの優先度の順位と同じであることを特徴とする請求項1に記載のクライアント装置。
【請求項5】
前記複数の転送情報それぞれの前記数値情報は、優先度が高い程、大きくなる数値を示し、
前記格納手段は、前記第1要求パケットが要求する第1チャンクのチャンク名のハッシュ値と、前記複数の転送情報それぞれの前記数値情報と、に基づき、前記複数の転送情報から当該第1要求パケットに対応する転送情報を判定し、当該第1要求パケットを対応する転送情報が割り当てられたキューに格納することを特徴とする請求項
4に記載のクライアント装置。
【請求項6】
前記読出手段は、前記複数のキューそれぞれのキューからフロー制御に従い前記第1要求パケットを読み出し、
前記複数のキューそれぞれのキューには、独立したフロー制御が適用されることを特徴とする請求項
1に記載のクライアント装置。
【請求項7】
前記複数のキューに格納されている前記第1要求パケットの数を監視し、格納されている前記第1要求パケットの数が0になった第1キューが生じた際に、前記複数のキューの内の前記第1キューとは異なる第2キューに前記第1要求パケットが格納されていると、少なくとも1つの前記第1要求パケットを前記第2キューから前記第1キューに変更する管理手段をさらに備えていることを特徴とする請求項
6に記載のクライアント装置。
【請求項8】
前記複数のキューには優先度が設定され、
前記第2キューの優先度は、前記第1キューの優先度より低いことを特徴とする請求項
7に記載のクライアント装置。
【請求項9】
請求項1から
8のいずれか1項に記載のクライアント装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテンツを分割して配信するコンテンツ配信ネットワークのクライアント装置及びプログラムに関する。
【背景技術】
【0002】
コンテンツを示す名前に基づきコンテンツの配信を行うネットワークが提案されている。以下、その様なネットワークの1つであるコンテンツ・セントリック・ネットワーク(CCN:Content Centric Networking)の概略について説明する。
【0003】
CCNにおいて、コンテンツを公開するサーバ装置は、当該コンテンツを1つ以上のチャンク又はオブジェクトと呼ばれるデータ部分に分割し、クライアント装置は、チャンク単位でコンテンツを取得する。また、CCNにおいて、チャンクの転送を行った通信装置(以下、転送装置と呼ぶ。)は、当該チャンクを保持(キャッシュ)できる。この転送装置は、自装置がキャッシュしているチャンクを要求するインタレスト・パケット(要求パケット)をクライアント装置から受信すると、当該インタレスト・パケットをサーバ装置に向けて転送することなく、自装置が保持するチャンクを含むデータ・パケットを、当該インタレスト・パケットの送信元のクライアント装置に向けて送信できる。
【0004】
以下、転送装置の動作の一例を説明する。転送装置は、CS(Contents Store)と、FIB(Forwarding Information Base)と、PIT(PIT:Pending Interest Table)を管理する。CSは、自装置がキャッシュしているチャンクを示す情報である。FIBは、インタレスト・パケットと、当該インタレスト・パケットを転送する転送先インタフェースとの関係を示す情報である。PITは、転送したインタレスト・パケットが要求するチャンク(要求チャンク)と、当該転送したインタレスト・パケットを受信したインタフェースとの関係を示す情報である。PITは、転送したインタレスト・パケットの要求チャンクの受信待ちであることを示す情報でもある。
【0005】
転送装置は、インタレスト・パケットを受信すると、CSを検索し、当該インタレスト・パケットの要求チャンクをキャッシュしているか否かを判定する。キャッシュしている場合には、キャッシュしている要求チャンクを含むデータ・パケットを、当該インタレスト・パケットの送信元のクライアント装置に向けて送信する。一方、要求チャンクをキャッシュしていない場合、転送装置は、PITを検索して、当該要求チャンクの受信待ちの状態であるかを判定する。受信待ちの状態であると、転送装置は、受信したインタレスト・パケットを転送せず、当該インタレスト・パケットの受信インタフェースを、当該要求チャンクに関連付ける様にしてPITを更新する。一方、当該要求チャンクの受信待ちでない場合、転送装置は、FIBに基づき判定した転送先インタフェースから当該インタレスト・パケットを転送すると共にPITを更新する。また、転送装置は、チャンクを含むデータ・パケットを受信すると、当該データ・パケットの転送先インタフェースをPIT及び当該データ・パケットに含まれるチャンクに基づき判定し、判定したインタフェースから当該データ・パケットを送信すると共に、当該チャンクに関する情報をPITから削除する。また、転送装置は、転送したデータ・パケットに含まれるチャンクをキャッシュするとCSを更新する。
【0006】
FIBは、インタレスト・パケットの要求チャンクと、当該インタレスト・パケットの転送先インタフェースとの関係を示す情報である。なお、FIBにおいては、エントリの集約が可能となっている。例えば、コンテンツ名が"/TOKYO/AAA/A.mp4"のコンテンツが10000個のチャンクに分割されている場合、これらのチャンク名は、例えば、"/TOKYO/AAA/A.mp4/1"~"/TOKYO/AAA/A.mp4/10000"である。ここで、"/TOKYO/AAA/A.mp4/1"~"/TOKYO/AAA/A.mp4/10000"を要求チャンクとするインタレスト・パケットの転送先インタフェースが総て同じである場合、FIBに各チャンクに対応する計10000個のエントリを設けることなく、"/TOKYO/AAA/A.mp4"に対する1つのエントリを設ける構成とすることができる。これにより、FIBのサイズを小さくすることができる。
【0007】
ここで、例えば、コンテンツ名が"/TOKYO/AAA/***"の転送先インタフェース(***は、任意の文字列)が総て同じであると、FIBには、"/TOKYO/AAA"に対する1つのエントリを設ける構成とすることができる。しかしながら、***の文字列に応じて転送先インタフェースが異なる場合、"/TOKYO/AAA"にFIBのエントリを集約することはできない。この様に、様々なコンテンツ名のコンテンツを配信する場合、FIBのエントリ集約は効率的ではなく、FIBのサイズが大きくなり得る。
【0008】
非特許文献1及び非特許文献2は、FIBのサイズを削減するために、フォーワーディングヒント(FH:Fowarding Hint)の使用を提案している。具体的には、コンテンツ配信ネットワーク内に名前解決サーバを設ける。名前解決サーバは、コンテンツ名と、FHのリストとの対応関係を示す情報を保持している。あるコンテンツを取得するクライアント装置は、当該コンテンツのコンテンツ名を名前解決サーバに送信し、名前解決サーバから当該コンテンツ名に対応するFHのリストを取得する。クライアント装置は、当該コンテンツのチャンクを取得する際、当該チャンクのチャンク名に加えて、FHのリストから、例えば、1つのFHを選択してインタレスト・パケットに含める。FHに対応している転送装置のFIBは、FHと転送先インタフェースとの関係を示す情報も有し、インタレスト・パケットにFHが含まれている場合、FHに基づき転送先インタフェースを決定する。FHはチャンク名とは独立して自由に決定できるため、FHによりFIBのサイズを削減することができる。
【先行技術文献】
【非特許文献】
【0009】
【文献】Afanasyev,Alexander,et al.,"NDNS:A DNS-like name service for NDN",2017 26th International Conference on Computer Communication and Networks (ICCCN).IEEE,2017年
【文献】Afanasyev,Alexander,et al.,"SNAMP:Secure namespace mapping to scale NDN forwarding",2015 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS).IEEE,2015年
【発明の概要】
【発明が解決しようとする課題】
【0010】
CCNにおいて、チャンクを含むデータ・パケットは、当該チャンクを要求したインタレスト・パケットの送信経路と同じ経路を当該インタレスト・パケットとは逆方向に転送される。したがって、クライアント装置が1つのコンテンツの総てのチャンクを取得するために送信した多数のインタレスト・パケットが同じ経路で転送されると、多数のデータ・パケットにより当該経路の輻輳が生じ得る。ここで、一般的には、クライアント装置からサーバ装置までの経路は1つではなく、複数の経路が存在し得る。したがって、クライアント装置が1つのコンテンツの総てのチャンクを取得するため送信する多数のインタレスト・パケットの経路を複数の経路に分散させることができれば輻輳の発生を抑えることができる。
【0011】
一方、CCNにおいて転送装置はチャンクをキャッシュできる。また、転送装置は、PITにより同じチャンクを要求する複数のインタレスト・パケットを集約できる。つまり、転送装置は、同じチャンクを要求する複数のインタレスト・パケットを受信した場合、PITに基づき転送するインタレスト・パケットの数を低減させる。これらの機能により、CCNにおいては、サーバ装置がデータ・パケットを送信する回数を低くし、輻輳の発生を抑えている。したがって、同じチャンクを要求する複数のインタレスト・パケットが様々な経路で転送されると、転送装置におけるキャッシュヒットやインタレスト・パケット集約の確率が低くなり、サーバ装置が同じチャンクを含む複数のデータ・パケットを送信する回数が多くなって輻輳が生じ得る。
【0012】
つまり、CCNにおいては、コンテンツの総てのインタレスト・パケットを同じ経路で転送すると輻輳の発生確率が高くなる。しかしながら、インタレスト・パケットの経路を分散させても、分散のさせ方によっては輻輳の発生確率が高くなってしまう。
【0013】
本発明は、コンテンツを1つ以上のチャンクに分割して配信するコンテンツ配信ネットワークにおいて輻輳を抑える技術を提供するものである。
【課題を解決するための手段】
【0014】
本発明の一態様によると、コンテンツを1つ以上のチャンクに分割して配信するコンテンツ配信ネットワークのクライアント装置は、複数のキューと、第1コンテンツの複数の第1チャンクそれぞれを取得する場合、前記複数の第1チャンクそれぞれを要求する複数の第1要求パケットを生成し、前記複数の第1要求パケットそれぞれが要求する第1チャンクのチャンク名に基づき、前記複数の第1要求パケットそれぞれを前記複数のキューのいずれかのキューに格納する格納手段と、前記複数の第1要求パケットを前記コンテンツ配信ネットワークに送信するため、前記複数のキューそれぞれのキューから第1要求パケットを読み出す読出手段と、前記コンテンツ配信ネットワーク内の転送装置が前記第1要求パケットの転送先を決定するために使用する転送情報を前記複数のキューそれぞれに割り当てる割当手段と、を備え、前記割当手段は、前記複数のキューそれぞれに異なる前記転送情報を割り当て、前記読出手段は、前記複数のキューそれぞれのキューから読み出した前記第1要求パケットに、当該キューに割り当てられている前記転送情報を追加して前記コンテンツ配信ネットワークに送信することを特徴とする。
【発明の効果】
【0015】
本発明によると、コンテンツを1つ以上のチャンクに分割して配信するコンテンツ配信ネットワークにおいて輻輳を抑えることができる。
【図面の簡単な説明】
【0016】
【
図1】一実施形態によるコンテンツ配信ネットワークの構成図。
【
図2】一実施形態によるクライアント装置の構成図。
【
図5】一実施形態によるコンテンツ配信ネットワークの構成図。
【
図6】一実施形態によるクライアント装置の構成図。
【発明を実施するための形態】
【0017】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴うち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。
【0018】
<第一実施形態>
以下では、コンテンツ配信ネットワークがCCNであるものとして本実施形態の説明を行う。しかしながら、本発明は、CCNに限定されず、コンテンツを1つ以上に分割し、分割により得られた各データ部分を単位としてコンテンツの配信が行われ、かつ、転送したデータ部分を転送装置がキャッシュできる任意のコンテンツ配信ネットワークに対して適用することができる。また、以下の説明では、コンテンツを分割した各データ部分を、CCNに従い"チャンク"と表記する。しかしながら、1つのコンテンツを分割して得られる各データ部分の名前は任意である。
【0019】
図1は、本実施形態の説明に使用するコンテンツ配信ネットワークを示している。
図1に示す様に、コンテンツ配信ネットワークは、クライアント装置11及び12と、転送装置21~23と、コンテンツを公開するサーバ装置3と、を有する。転送装置21は、クライアント装置11及び12と、転送装置22及び23と、に接続されている。なお、転送装置21から見ると、転送装置22はインタフェースIF#1に接続される通信リンクを介して接続され、転送装置23はインタフェースIF#2に接続される通信リンク介して接続され、クライアント装置11はインタフェースIF#3に接続される通信リンク介して接続され、クライアント装置12はインタフェースIF#4に接続される通信リンク介して接続されている。
【0020】
なお、
図1では、クライアント装置11と転送装置21は直接接続されているが、クライアント装置11と転送装置21が直接接続される必要はなく、クライアント装置11と転送装置21との間でパケットの送受信を行うための経路が存在すれば良い。クライアント装置12についても同様である。
【0021】
また、
図1では、転送装置22とサーバ装置3は直接接続されていないが、転送装置22は、1つ以上の図示しない転送装置を介してサーバ装置3とパケットの送受信が可能になっている。つまり、転送装置22とサーバ装置3との間にはパケットを送受信するための少なくとも1つの経路が存在する。なお、転送装置22からサーバ装置3への経路は1つであっても、複数であっても良い。また、転送装置22とサーバ装置3は直接接続されていても良い。転送装置23とサーバ装置3との関係も、転送装置22とサーバ装置3との関係と同様である。
【0022】
なお、コンテンツ配信ネットワーク内の転送装置21~23を含む各転送装置は、FHに対応しているものとする。つまり、コンテンツ配信ネットワーク内の転送装置は、FHと転送先インタフェースとの関係を示すFIBを保持しているものとする。
【0023】
図2は、クライアント装置11の構成図である。なお、
図2に示す各機能ブロックは、クライアント装置11にインストールされたアプリケーションプログラムにより実現されているものとする。つまり、クライアント装置11の1つ以上のプロセッサが当該アプリケーションプログラムを実行することで、当該1つ以上のプロセッサには
図2に示す機能ブロックが実現される。なお、クライアント装置12にも同じアプリケーションプログラムがインストールされ、よって、
図2の機能ブロックが実現されているものとする。
【0024】
クライアント装置11は、N個(Nは2以上の整数)のキュー6と、各キューに対応するN個のフロー制御部7と、を有する。なお、以下の説明においてN個のキュー6を区別する場合、第kキュー(kは1からNまでの整数)と表記する。同様に、N個のフロー制御部7を区別する場合、第kフロー制御部と表記する。Nの値は、アプリケーションプログラムに設定されており、
図2の例では、N=3である。なお、N個のキューには優先度が設定される。本例において、第mキューの優先度は第(m+1)キューの優先度より高いものとする。なお、mは1からN-1までの整数である。
【0025】
以下では、クライアント装置11が、"/TOKYO/AAA/A.mp4"とのコンテンツ名であるコンテンツを取得する場合を例にして本実施形態の説明を行う。なお、当該コンテンツは、10000個のチャンクに分割されており、そのチャンク名を、"/TOKYO/AAA/A.mp4/1"~"/TOKYO/AAA/A.mp4/10000"とする。また、サーバ装置3がコンテンツ"/TOKYO/AAA/A.mp4"の公開を開始したばかりであり、よって、コンテンツ配信ネットワークのいずれの転送装置もコンテンツ"/TOKYO/AAA/A.mp4"のチャンクをキャッシュしていないものとする。したがって、クライアント装置11がコンテンツ"/TOKYO/AAA/A.mp4"を取得するために送信する10000個のインタレスト・パケットは総てサーバ装置3まで転送される。
【0026】
FH取得部5は、取得するコンテンツ名を図示しない名前解決サーバに送信し、当該名前解決サーバからFHリストを取得する。本例において、FH取得部5は、"/TOKYO/AAA/A.mp4"とのコンテンツ名を名前解決サーバに送信し、当該名前解決サーバから"/TOKYO/AAA/A.mp4"に関連付けられた複数のFHを含むFHリストを取得する。
【0027】
図3は、"/TOKYO/AAA/A.mp4"に関連付けられたFHリストの例を示している。FHリストは、"/TOKYO/AAA/A.mp4"に関連付けられた複数のFHと、各FHの優先度を示している。FHは、転送装置がインタレスト・パケットの転送先を決定する転送情報である。なお、優先度は、非特許文献1及び非特許文献2に記載されたパラメータ(数値情報)であり、FH選択の優先度をその数値で示すものである。なお、本例では、優先度が高い程、その数値が高くなるものとする。本例では、優先度の高いFH程、スループットが高い経路でインタレス・パケットが転送される様に、FHの優先度を示す数値情報が設定されているものとする。
図3によると、FHリストが示すFHは、"DomainA1"と、"DomainB1"と、"DomainA2"と、を含み、それらの優先度を示す数値情報は、それぞれ、"80"、"50"及び"42"である。なお、FHリストに含まれる上記3つのFH以外のFHの優先度を示す数値情報は、42より小さいものとする。
【0028】
FH取得部5は、FHリストの複数のFHから優先度の高い順にN個のFHを取り出す。本例ではN=3であるため、
図3より"DomainA1"と、"DomainB1"と、"DomainA2"が取り出される。FH取得部5は、優先度が最も高いFHである"DomainA1"を第1FHとして優先度が最も高い第1フロー制御部に通知する。また、FH取得部5は、優先度が2番目に高いFHである"DomainB1"を第2FHとして優先度が2番目に高い第2フロー制御部に通知する。さらに、FH取得部5は、優先度が3番目に高いFHである"DomainA2"を第3FHとして優先度が3番目に高い第3フロー制御部に通知する。
【0029】
なお、FH取得部がFHを各フロー制御部7に通知することは、各キュー6にFHを割り当てることに対応する。つまり、
図2において、FH取得部5は、"DomainA1"を第1キューに割り当て、"DomainB1"を第2キューに割り当て、"DomainA2"を第3キューに割り当てている。
【0030】
生成部4は、取得する10000個のチャンクそれぞれを要求する計10000個のインタレスト・パケットを生成し、アプリケーションプログラムによって予め決められた比率で10000個のインタレスト・パケットを各キューに格納する。なお、本実施形態において、比率は、キューの優先度が高い程、多くする。したがって、生成部4は、優先度の高いキュー程、格納するインタレスト・パケットの数を多くする。
【0031】
本例では、第1キュー、第2キュー及び第3キューそれぞれに格納するインタレスト・パケットの比率を5:3:2とする。したがって、生成部4は、5000個のインタレスト・パケットを第1キューに追加し、3000個のインタレスト・パケットを第2キューに追加し、2000個のインタレスト・パケットを第3キューに追加する。
【0032】
なお、各キューに追加するインタレスト・パケットが要求するチャンクの番号も、アプリケーションプログラムによって予め決められた所定のアルゴリズムにより決定される。本例において生成部4は、チャンクの番号順に各キューにインタレスト・パケットを追加するものとする。具体的には、生成部4は、"/TOKYO/AAA/A.mp4/1"~"/TOKYO/AAA/A.mp4/5000"を要求するインタレスト・パケットを第1キューに追加し、"/TOKYO/AAA/A.mp4/5001"~"/TOKYO/AAA/A.mp4/8000"を要求するインタレスト・パケットを第2キューに追加し、"/TOKYO/AAA/A.mp4/8001"~"/TOKYO/AAA/A.mp4/10000"を要求するインタレスト・パケットを第3キューに追加するものとする。
【0033】
なお、FHリスト内のFHの数がNより小さい場合、つまり、本例において2の場合、FH取得部5は、優先度の高い2つのFHを第1FH及び第2FHとして第1フロー制御部及び第2フロー制御部に通知する。この場合、第3キュー及び第3フロー制御部は使用されず、生成部4は、第1キューと、第2キューの比率5:3に従いインタレスト・パケットを第1キューと第2キューに追加する。具体的には、本例においてFHリストのFHの数が2の場合、生成部4は、"/TOKYO/AAA/A.mp4/1"~"/TOKYO/AAA/A.mp4/6250"を要求するインタレスト・パケットを第1キューに追加し、"/TOKYO/AAA/A.mp4/6251"~"/TOKYO/AAA/A.mp4/10000"を要求するインタレト・パケットを第2キューに追加する。
【0034】
第1フロー制御部から第3フロー制御部は、それぞれ、独立してフロー制御を行いながら対応するキューのインタレスト・パケットを読み出して送信部8に出力する。フロー制御は、例えば、TCPで使用されている様なウィンドウ制御を使用することができる。つまり、各フロー制御部7は、ウィンドウ・サイズWを管理し、送信済のインタレスト・パケットの内、応答としてのデータ・パケットを受信していないインタレスト・パケットの数がWになると、さらなるインタレスト・パケットの読み出しを停止する。また、ウィンドウ・サイズWについては、データ・パケットの受信状態に応じて増減させる。このため、第1フロー制御部から第3フロー制御部のそれぞれには、図示しない受信部からデータ・パケットの受信状態が通知される。
【0035】
各フロー制御部7は、インタレスト・パケットを送信部8に送信する際、FH取得部5から通知されているFHをインタレスト・パケットに含める。言い換えると、各フロー制御部7は、対応するキュー6から読み出したインタレスト・パケットに当該キュー6に割り当てられたFHを追加する。したがって、第1フロー制御部は、第1FHである"DomainA1"をインタレスト・パケットに含め、第2フロー制御部は、第2FHである"DomainB1"をインタレスト・パケットに含め、第3フロー制御部は、第3FHである"DomainA2"をインタレスト・パケットに含める。したがって、各インタレスト・パケットは、要求チャンクの名に加えてFHを示す情報を含む。
【0036】
送信部8は、第1フロー制御部~第3フロー制御部からのインタレスト・パケットを順に転送装置21に送信する。なお、各フロー制御部7と送信部8は、複数のキューそれぞれからインタレスト・パケットを読み出してコンテンツ配信ネットワークに送信する読出部を構成している。
【0037】
図4は、本例において、転送装置21が有するFIBを示している。
図4に示す様に、転送装置21は、第1FHである"DomainA1"を含むインタレスト・パケット、及び、第3FHである"DomainA2"を含むインタレスト・パケットをIF#1から転送装置22に転送し、第2FHである"DomainB1"を含むインタレスト・パケットをIF#2から転送装置23に転送する。したがって、第1キューの5000個のインタレスト・パケットと第3キューの2000個のインタレスト・パケット、つまり、合計7000個のインタレスト・パケットは、転送装置22を介してサーバ装置3に転送され、第2キューの3000個のインタレスト・パケットは、転送装置23を介してサーバ装置3に転送される。つまり、インタレスト・パケットの転送経路を分散させることができる。
【0038】
なお、転送装置22からサーバ装置3に至る経路が1つの場合、第1キューの5000個のインタレスト・パケットと第3キューの2000個のインタレスト・パケットは、総て同じ経路でサーバ装置3に送信される。しかしながら、転送装置22からサーバ装置3に至る経路が複数ある場合、第1キューの5000個のインタレスト・パケットと第3キューの2000個のインタレスト・パケットは、転送装置22からサーバ装置3までの区間において異なる経路となり得る。これは、第1キューから読み出されたインタレスト・パケットに含まれるFHと第3キューから読み出されたインタレスト・パケットに含まれるFHが異なるからである。
【0039】
例えば、コンテンツ配信ネットワークが
図5に示す様な複数のドメインの相互接続で構成され、FHがインタレスト・パケットの転送先のドメイン名を示しているものとする。なお、
図5において、"DomainX"は、転送装置21から23を含むドメインであり、サーバ装置3は、その名前が"DomainZ"のドメインに接続されている。この場合、第1キューのインタレスト・パケットは、"DomainX"、"DomainA1"及び"DomainZ"の3つのドメインを経由してサーバ装置3に転送される。また、第2キューのインタレスト・パケットは、"DomainX"、"DomainB1"及び"DomainZ"の3つのドメインを経由してサーバ装置3に転送される。さらに、第3キューのインタレスト・パケットは、"DomainX"、"DomainA1"、"DomainA2"及び"DomainZ"の4つのドメインを経由してサーバ装置3に転送される。
【0040】
ここで、クライアント装置12も、コンテンツ名"/TOKYO/AAA/A.mp4"のコンテンツを取得するものとする。クライアント装置12も、クライアント装置11と同様に、"/TOKYO/AAA/A.mp4/1"~"/TOKYO/AAA/A.mp4/5000"を要求するインタレスト・パケットを第1キューに追加し、"/TOKYO/AAA/A.mp4/5001"~"/TOKYO/AAA/A.mp4/8000"を要求するインタレスト・パケットを第2キューに追加し、"/TOKYO/AAA/A.mp4/8001"~"/TOKYO/AAA/A.mp4/10000"を要求するインタレスト・パケットを第3キューに追加する。
【0041】
したがって、クライアント装置11及びクライアント装置12が送信する、同じチャンクを要求するインタレスト・パケットは、総て同じ経路で転送される。例えば、クライアント装置11が先にコンテンツの取得を開始しており、クライアント装置12が後から同じコンテンツを取得する場合、クライアント装置12が送信するインタレスト・パケットが転送される経路上の転送装置は、当該インタレスト・パケットの要求チャンクをキャッシュしている、或いは、当該要求チャンクの受信待ちである可能性が高い。したがって、クライアント装置12が送信するインタレスト・パケットがサーバ装置3まで転送される確率が低くなり輻輳を抑えることができる。
【0042】
なお、
図1の例において、クライアント装置11及びクライアント装置12は同じ転送装置21に接続されており、よって、クライアント装置11及びクライアント装置12が送信する、同じチャンクを要求するインタレスト・パケットは、完全に同じ経路で転送されていた。しかしながら、クライアント装置11及びクライアント装置12が、同じドメインであっても異なる転送装置に接続されている場合や、クライアント装置11及びクライアント装置12が、異なるドメインに接続されている場合、クライアント装置11及びクライアント装置12が送信する、同じチャンクを要求するインタレスト・パケットのサーバ装置3への送信経路は完全には同じにならない。しかしながら、本実施形態の構成により、同じチャンクを要求する各インタレスト・パケットのサーバ装置3への転送経路それぞれが重複区間を持つようにすることができる。したがって、本実施形態の構成により、インタレスト・パケットの送信経路を分散させつつ、転送装置でのキャッシュヒット及びインタレスト・パケット集約の確率が低下することを抑えることができる。したがって、輻輳の発生を抑えることができる。
【0043】
なお、本実施形態では、FHリストのFHに優先度を設けていた。また、優先度の高いFH程、スループットが高い経路でインタレス・パケットが転送される様に、FHの優先度が設定されているものとした。そして、キューにも優先度を設け、キューに割り当てるFHを、FHの優先度の順位に応じたものとしていた。そして、生成部4は、優先度が高いキューにはより多くのインタレスト・パケットを格納していた。しかしながら、キューに優先度を設けない構成、或いは、キュー及び/FHの両方に優先度を設けない構成とすることもできる。
【0044】
キューに優先度を設けない場合、各キューに同じ数のインタレスト・パケットを格納する構成とすることもできる。なお、各キューに割り当てるFHは、FHリストから任意の方法で選択する。なお、FHリスト内のFH数がキュー数より大きい場合、FHの優先度が高いものを選択する。また、キュー及び/FHの両方に優先度を設けない場合、FHリストから任意の方法でキュー数と同じFHを選択して各キューに割り当てを行う。
【0045】
<第二実施形態>
続いて、第二実施形態について第一実施形態との相違点を中心に説明する。第一実施形態において生成部4は、所定の比率でインタレスト・パケットを各キューに格納していた。本実施形態において、生成部4は、インタレスト・パケットの要求チャンクのチャンク名を使用して、当該インタレスト・パケットを格納するキューを決定する。
【0046】
通常、チャンク名は、コンテンツ名とチャンク番号とを含む。したがって、例えば、生成部4は、インタレスト・パケットの要求チャンクのチャンク名に含まれるチャンク番号をNで割った余りに1を足した値を求め、当該値がkであると、当該インタレスト・パケットを第kキューに追加する構成とすることができる。なお、この場合、各キューに格納されるインタレスト・パケットの数は略同じであり、よって、キューに優先度を設ける必要はない。
【0047】
また、チャンク名のハッシュ値とFHの優先度を示す数値情報と、を使用する構成とすることができる。まず、使用するN個のFHの内のk番目に高い優先度の数値情報の値をPkとし、YkをP1からPkまでの積算値とする。なお、Y0を0とする。生成部4は、インタレスト・パケットの要求チャンクのチャンク名のハッシュ値をYNで割った余りに1を足した値Xを求める。生成部4は、Xの値がYk-1より大きくYk以下であると、当該インタレスト・パケットを第kキューに追加する構成とすることができる。
【0048】
例えば、
図3に示す様に、"DomainA1、"DomainB1"及び"DomainA2"の優先度を示す数値情報がそれぞれ"80"、"50"及び"42"であるものとする。この場合、Y
1=80、Y
2=130、Y
3=172である。したがって、生成部4は、チャンク名のハッシュ値に基づく値Xが1~80であると、当該チャンク名のチャンクを要求するインタレスト・パケットを第1キューに追加し、値Xが81~130であると当該インタレスト・パケットを第2キューに追加し、値Xが131~172であると当該インタレスト・パケットを第3キューに追加する。インタレスト・パケットを追加するキューを判定するための値Xの範囲は、優先度の順位が当該キューの優先度の順位と同じFHの数値情報に対応し(第1キューは80、第2キューは50、第3キューは42)、キューの優先度高い程、広くなるため、優先度の高いキュー程、追加されるインタレスト・パケットの数を多くすることができる。なお、チャンク名の全体を使用してハッシュ値を求める必要はなく、チャンク名の内の少なくともチャンク番号を含む部分を使用してハッシュ名を求める構成とすることもできる。
【0049】
<第三実施形態>
続いて、第三実施形態について第一実施形態及び第二実施形態との相違点を中心に説明する。
図6は、本実施形態によるクライアント装置11の構成図である。なお、
図6においては、図の簡略化のため
図2に示す生成部4を省略している。
図2に示す第一実施形態との相違点は、キュー管理部9を設けたことである。
【0050】
第一実施形態においては、生成部4がインタレスト・パケットを各キュー6に追加し、各キュー6に対応するフロー制御部7は、フロー制御を行いながら対応するキュー6からインタレスト・パケットを読み出して送信部8に出力していた。ここで、キュー6に応じてインタレスト・パケットの転送経路は異なる。また、FHの優先度が高いことは、スループットが高い経路でインタレスト・パケットが転送されることを意味する。したがって、優先度の最も高いFHを使用する第1キューは、第2キュー及び第3キューより早く空になり得る。同様に、優先度の2番目に高い第2キューは、優先度の最も低い第3キューより早く空になり得る。
【0051】
キュー管理部9は、第1キュー~第3キューのキュー状態を監視し、空になったキュー6が生じると、当該キュー6より優先度の低いキュー6に残っているインタレスト・パケットの少なくとも1つを当該空になったキュー6に移動させる。なお、空になったキュー6に移動させるインタレスト・パケットの選択方法や、一度に移動させるインタレスト・パケットの数は任意である。この様に構成することで、コンテンツの総てのチャンクを取得するまでの時間を短くすることができる。
【0052】
なお、あるキュー6が空になるタイミングや、そのタイミングにおいて当該空になったキュー6より優先度の低いキュー6に残っているインタレスト・パケットの数は、コンテンツ配信ネットワークの状態に応じて異なる。したがって、インタレスト・パケットのキュー6を変更することにより、異なるクライアント装置が送信する、同じチャンクを要求するインタレスト・パケットの転送経路が異なることになり得る。しかしながら、優先度の高いFHを使用するキュー6程、生成部は多くのインタレスト・パケットを割り当てているため、あるキュー6が空になったタイミングで、当該キュー6より優先度の低いキュー6に残っているインタレスト・パケットの数は、通常、それほど多くはない。したがって、第一実施形態と比較すると、転送装置におけるキャッシュヒットやインタレスト・パケット集約の確率はやや低下するが、第一実施形態の構成よりコンテンツの取得時間を短くすることができる。
【0053】
なお、キュー6に優先度を設けない構成の場合、キュー管理部9は、空になったキュー6が生じると、その時点において空ではないキュー6から少なくとも1つのインタレスト・パケットを当該空になったキュー6に移動させる構成とすることができる。
【0054】
本発明のクライアント装置は、1つ以上のプロセッサを有する装置・コンピュータの当該1つ以上のプロセッサで実行されると、当該装置・コンピュータを上記クライアント装置11として動作・機能させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。
【0055】
上記構成により、コンテンツを1つ以上のチャンクに分割して配信するコンテンツ配信ネットワークにおいて輻輳を抑えることができる。よって、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。
【符号の説明】
【0056】
6:キュー、7:フロー制御部、8:送信部