(57)【特許請求の範囲】
【請求項１】
コンテンツを１つ以上のオブジェクトに分割し、１つのオブジェクトを１つ以上のデータ・パケットで配信するコンテンツ配信ネットワークの転送装置であって、
オブジェクトを要求する要求パケットを転送したことにより受信待ちとなっている当該オブジェクトと、当該要求パケットの応答として受信するデータ・パケットの送信インタフェースとの関係を示すペンディング情報を保持する保持手段と、
要求パケットを受信すると、当該要求パケットを転送するか否かを判定する判定手段と、
を備えており、
前記判定手段は、第１要求パケットが要求するオブジェクトと、前記第１要求パケットの応答として受信するデータ・パケットの送信インタフェースとの関係が前記ペンディング情報に含まれているときに、当該オブジェクトを要求する第２要求パケットを受信すると、前記第１要求パケットの応答として少なくとも１つデータ・パケットを受信しているかを判定し、少なくとも１つデータ・パケットを受信していると、前記第２要求パケットを転送すると判定することを特徴とする転送装置。
【請求項２】
コンテンツを１つ以上のオブジェクトに分割し、１つのオブジェクトを１つ以上のデータ・パケットで配信するコンテンツ配信ネットワークの転送装置であって、
オブジェクトを要求する要求パケットを転送したことにより受信待ちとなっている当該オブジェクトと、当該要求パケットの応答として受信するデータ・パケットの送信インタフェースとの関係を示すペンディング情報を保持する保持手段と、
要求パケットを受信すると、当該要求パケットを転送するか否かを判定する判定手段と、
オブジェクトをキャッシュするキャッシュ手段と、
を備えており、
前記判定手段は、第１要求パケットが要求するオブジェクトと、前記第１要求パケットの応答として受信するデータ・パケットの送信インタフェースとの関係が前記ペンディング情報に含まれているときに、当該オブジェクトを要求する第２要求パケットを受信すると、当該オブジェクトがキャッシュ対象であるかと、前記第１要求パケットの応答として少なくとも１つデータ・パケットを受信しているかを判定し、当該オブジェクトがキャッシュ対象ではなく、かつ、少なくとも１つデータ・パケットを受信していると、前記第２要求パケットを転送すると判定することを特徴とする転送装置。
【請求項３】
要求パケットは、前記転送装置が、当該要求パケットを生成した装置に向けて送信できるデータ・パケットのサイズの最大値を示す経路最大値フィールドを有し、
前記判定手段は、前記第２要求パケットの経路最大値フィールドの値が、前記第１要求パケットの経路最大値フィールドの値より小さいと、前記第２要求パケットを転送すると判定することを特徴とする請求項１又は２に記載の転送装置。
【請求項４】
前記第２要求パケットを転送しないと、前記第１要求パケットの応答として受信するデータ・パケットの送信インタフェースとして、前記第２要求パケットを受信したインタフェースを追加する様に前記ペンディング情報を更新し、前記第２要求パケットを転送すると、前記第２要求パケットの応答として受信するデータ・パケットの送信インタフェースとして、前記第２要求パケットを受信したインタフェースを追加する様に前記ペンディング情報を更新する更新手段を更に備えていることを特徴とする請求項１から３のいずれか１項に記載の転送装置。
【請求項５】
要求パケットは識別情報を含み、当該要求パケットの応答としてデータ・パケットを送信する装置は、当該データ・パケットに当該要求パケットの識別情報を設定し、
前記判定手段は、受信したデータ・パケットの識別情報と、要求パケットの識別情報から、当該受信したデータ・パケットがどの要求パケットの応答として受信したものであるかを判定することを特徴とする請求項１から４のいずれか１項に記載の転送装置。
【請求項６】
コンテンツを１つ以上のオブジェクトに分割し、１つのオブジェクトを１つ以上のデータ・パケットで配信するコンテンツ配信ネットワークの転送装置であって、
受信して転送した、オブジェクトを要求する要求パケットの応答として受信するデータ・パケットの送信インタフェースを示すペンディング情報を保持する保持手段と、
データ・パケットを受信すると、前記ペンディング情報に基づき当該データ・パケットを送信するインタフェースを判定する判定手段と、
を備えており、
前記判定手段は、第１要求パケットの応答として受信する第１データ・パケットの送信インタフェースとして第１インタフェースが前記ペンディング情報に含まれ、かつ、前記第１要求パケットと同じオブジェクトを要求する第２要求パケットの応答として受信する第２データ・パケットの送信インタフェースとして第２インタフェースが前記ペンディング情報に含まれているときに、前記第１データ・パケットを受信した場合、前記第１データ・パケットを、前記第２インタフェースにも送信可能か否かを判定することを特徴とする転送装置。
【請求項７】
要求パケットは、前記転送装置が、当該要求パケットを生成した装置に向けて送信できるデータ・パケットのサイズの最大値を示す経路最大値フィールドを有し、
データ・パケットは、当該データ・パケットと同じオブジェクトから生成されたデータ・パケットのサイズの最大値を示す最大サイズ・フィールドを有し、
前記判定手段は、前記第１データ・パケットを前記第１要求パケットの応答として初めて受信し、かつ、前記初めて受信したデータ・パケットの最大サイズ・フィールドの値が前記第２要求パケットの経路最大値フィールドの値以下であり、かつ、前記第２データ・パケットを受信していない場合、前記初めて受信した第１データ・パケットを、前記第２インタフェースにも送信可能と判定することを特徴とする請求項６に記載の転送装置。
【請求項８】
前記判定手段は、前記第１データ・パケットを前記第１要求パケットの応答として初めて受信したときに、前記初めて受信した第１データ・パケットを、前記第２インタフェースにも送信可能と判定すると、前記第１要求パケットの応答として受信する各第１データ・パケットを前記第２インタフェースにも送信可能と判定することを特徴とする請求項７に記載の転送装置。
【請求項９】
要求パケットは識別情報を含み、当該要求パケットの応答としてデータ・パケットを送信する装置は、当該データ・パケットに当該要求パケットの識別情報を設定し、
前記判定手段は、受信したデータ・パケットの識別情報と、要求パケットの識別情報から、当該受信したデータ・パケットがどの要求パケットの応答として受信したものであるかを判定することを特徴とする請求項６から８のいずれか１項に記載の転送装置。
【請求項１０】
請求項１から９のいずれか１項に記載の転送装置として、プロセッサを有する装置を機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンテンツを複数のオブジェクトに分割し、オブジェクトを１つ以上のデータ・パケットで配信するコンテンツ配信ネットワークの転送装置に関する。
【背景技術】
【０００２】
コンテンツ名に基づきルーティングを行うネットワークが提案されている。特許文献１及び非特許文献１は、その様なネットワークの１つであるコンテンツ・セントリック・ネットワーク（ＣＣＮ：Ｃｏｎｔｅｎｔ  Ｃｅｎｔｒｉｃ  Ｎｅｔｗｏｒｋｉｎｇ）を開示している。
【０００３】
ＣＣＮにおいて、コンテンツを公開するサーバ装置は当該コンテンツを１つ以上のチャンクと呼ばれるオブジェクトに分割し、クライアント装置は、この分割されたオブジェクト単位でコンテンツを要求する。また、ＣＣＮにおいて、オブジェクトの転送を行った通信装置は、当該オブジェクトをキャッシュ（保持）できる。この通信装置は、自装置がキャッシュしているオブジェクトを要求するパケット（以下、インタレスト・パケット）をクライアント装置から受信すると、当該インタレスト・パケットをサーバ装置に向けて転送することなく、キャッシュしているオブジェクトを、当該インタレスト・パケットの送信元のクライアント装置に向けて送信できる。
【０００４】
ここで、以下の説明において使用する用語について説明する。インタレスト・パケット及びオブジェクトの転送を行う通信装置を転送装置と呼ぶものとする。インタレスト・パケットの応答として、オブジェクトを送信するサーバ装置や通信装置を纏めて送信装置と呼ぶものとする。なお、送信装置との用語は、説明の対象としている転送装置とは異なる装置に対して使用する。例えば、説明の対象としている転送装置が、キャッシュしているオブジェクトを要求するインタレスト・パケットを受信し、当該転送装置がキャッシュしているオブジェクトを送信する場合、当該転送装置は、送信装置でもあるが、この場合には転送装置との用語を使用する。また、オブジェクトは、パケットにより配信されるが、オブジェクトを含むパケットをデータ・パケットと呼ぶものとする。
【０００５】
以下に、転送装置の動作の一例を説明する。転送装置は、ＣＳ（Ｃｏｎｔｅｎｔｓ  Ｓｔｏｒｅ）と、ＦＩＢ（Ｆｏｒｗａｒｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）と、ＰＩＴ（Ｐｅｎｄｉｎｇ  Ｉｎｔｅｒｅｓｔ  Ｔａｂｌｅ）を管理する。ＣＳは、自装置がキャッシュしているオブジェクトを示す情報である。ＦＩＢは、インタレスト・パケットと、当該インタレスト・パケットを転送すべきインタフェースとの関係を示す情報である。ＰＩＴは、転送したインタレスト・パケットが要求するオブジェクトと、当該オブジェクトを含むデータ・パケットを受信した場合に、当該データ・パケットを送信するインタフェースとの関係を示す情報である。なお、このデータ・パケットを送信するインタフェースは、ＣＣＮにおいては、インタレスト・パケットを受信したインタフェースである。
【０００６】
転送装置は、インタレスト・パケットを受信すると、ＣＳを検索し、当該インタレスト・パケットが要求するオブジェクトをキャッシュしているか否かを判定する。キャッシュしている場合には、キャッシュしているオブジェクトを含むデータ・パケットを、当該インタレスト・パケットの送信元のクライアント装置に向けて送信する。一方、キャッシュしていない場合には、ＰＩＴを検索して、当該インタレスト・パケットと同じオブジェクトを要求するインタレスト・パケットを既に転送し、当該オブジェクトの受信待ちの状態であるかを判定する。受信待ちの状態であると、受信したインタレスト・パケットを転送せず、当該インタレスト・パケットの受信インタフェースを、当該インタレスト・パケットが要求するオブジェクトに関連付ける様にしてＰＩＴを更新する。一方、受信したインタレスト・パケットが要求するオブジェクトの受信待ちでなければ、ＦＩＢに基づき判定したインタフェースから当該インタレスト・パケットを転送すると共にＰＩＴを更新する。また、転送装置は、オブジェクトを含むデータ・パケットを受信すると、当該オブジェクトの転送先インタフェースをＰＩＴに基づき判定し、判定した転送先インタフェースから当該データ・パケットを送信すると共に、当該オブジェクトに関する情報をＰＩＴから削除する。さらに、転送装置は、受信して転送したオブジェクトを保存するとＣＳを更新する。
【０００７】
上述した様に、ＣＣＮにおいて、転送装置は、受信したインタレスト・パケットと同じオブジェクトを要求するインタレスト・パケットを既に転送し、当該オブジェクトの受信待ちの状態である場合、受信したインタレスト・パケットを転送しない。これは、転送装置が、あるオブジェクトを要求するインタレスト・パケット（第１インタレスト・パケット）を受信・転送し、当該オブジェクトの受信待ちであるときに、当該オブジェクトを要求する新たなインタレスト・パケット（第２インタレスト・パケット）受信した場合、第２インタレスト・パケットを転送しなくとも、当該オブジェクトをそのうちに受信するからである。この場合、転送装置は、当該オブジェクトを受信すると、第１インタレスト・パケット及び第２インタレスト・パケットを送信したクライアント装置それぞれに、当該オブジェクトを送信する。なお、以下の説明において、受信したインタレスト・パケットが要求するオブジェクトが、既に受信待ちの状態であるために、当該インタレスト・パケットを転送しない処理を"インタレスト集約"と呼ぶものとする。
【０００８】
一般的に、コンテンツ配信ネットワークの各リンクには、ＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）が設定されており、リンクを介して送受信されるデータ・パケットは、ＭＴＵで示されるサイズ以下に制限される。このため、各リンクのＭＴＵを考慮したデータ・パケットの転送方法を示す非特許文献２が作成された。以下に、非特許文献２の概要を述べる。まず、非特許文献２においては、サーバ装置が、当該装置からクライアント装置までの経路に含まれるリンクのＭＴＵの最小値に基づきオブジェクトを分割してデータ・パケットを生成し、当該経路の途中にある各転送装置でデータ・パケットを分割することを禁止している。サーバ装置が、経路に含まれるリンクのＭＴＵの最小値を判定するために、非特許文献２は、インタレスト・パケットに経路ＭＴＵ（Ｐａｔｈ  Ｍｉｎｉｍｕｍ  ＭＴＵ）フィールド（経路最大値フィールドとも呼ぶ。）を設けることを規定している。
【０００９】
具体的には、クライアント装置は、送信するインタレスト・パケットの経路ＭＴＵフィールドに、当該インタレスト・パケットを送信するリンクのＭＴＵ値を設定する。転送装置は、受信したインタレスト・パケットの経路ＭＴＵフィールドの値と、当該インタレスト・パケットを送信するリンクのＭＴＵ値を比較し、当該インタレスト・パケットを送信するリンクのＭＴＵ値が、受信したインタレスト・パケットの経路ＭＴＵフィールドの値より小さければ、当該インタレスト・パケットの経路ＭＴＵフィールドの値を、当該インタレスト・パケットを送信するリンクのＭＴＵ値に変更して送信する。これにより、送信装置や転送装置は、自装置からクライアント装置までの経路に含まれるリンクのＭＴＵの最小値を判定することができる。
【００１０】
また、１つのオブジェクトをＭＴＵに合わせて分割することにより、オブジェクトの名前を含むデータ・パケットと、名前を含まないデータ・パケットが生じる。したがって、非特許文献２によると、クライアント装置は、インタレスト・パケットのヘッダの第１識別子（ＦｒａｇｍｅｎｔＳｔｒｅａｍＩＤ）フィールドに第１識別子を設定する。送信装置は、送信するデータ・パケットの第２識別子（ＩｎｔｅｒｅｓｔＳｔｒｅａｍＩＤ）フィールドに、受信したインタレスト・パケットの第１識別子と同じ値を設定する。これにより、各転送装置は、データ・パケットを受信した場合、どのインタレスト・パケットに対するものであるかを判定できる。なお、データ・パケットも第１識別子フィールドを有し、送信装置は、同じオブジェクトを送信する複数のデータ・パケットには同じ第１識別子を設定する。なお、データ・パケットの第１識別子は、データ・パケットに設定する第２識別子とは独立して決定される。また、データ・パケットのヘッダには、最大ＭＴＵ（Ｏｂｊｅｃｔ  Ｍａｘｉｍｕｍ  ＭＴＵ）フィールド（最大サイズ・フィールドとも呼ぶ。）が設けられている。最大ＭＴＵフィールドには、１つのオブジェクトをＭＴＵに合わせて分割することで生成される各データ・パケットのＭＴＵの最大値が設定される。転送装置は、データ・パケットの最大ＭＴＵフィールドの値に基づき、当該データ・パケットが搬送するオブジェクトから生成された一連のデータ・パケットのＭＴＵの最大値を判定することができる。
【００１１】
上述した様に、リンクのＭＴＵを考慮しない場合、インタレスト集約は、ＰＩＴに同じオブジェクトに対するエントリが有るか否かのみにより判定することができた。しかしながら、リンクのＭＴＵを考慮する場合、ＰＩＴに同じオブジェクトについてのエントリが有るか否かのみによりインタレスト集約が可能であるかを判定できない。例えば、上述した様に、経路ＭＴＵフィールドに設定された値が第１ＭＴＵ値である第１インタレスト・パケットを転送装置が既に転送し、データ・パケットの受信待ち状態であるものとする。この状態において、当該転送装置が、経路ＭＴＵフィールドに設定された値が第１ＭＴＵ値より小さい第２ＭＴＵ値であり、第１インタレスト・パケットと同じオブジェクトを要求する第２インタレスト・パケットを受信したものとする。転送装置が受信するデータ・パケットは、第１インタレスト・パケットの応答として受信するものであるため、各データ・パケットのサイズは、第１ＭＴＵ値以下であるが、第２ＭＴＵ値以下である保証はない。したがって、受信したデータ・パケットのサイズのサイズが第２ＭＴＵ値より大きいと、転送装置は、受信したデータ・パケットを、第２インタレスト・パケットを送信したクライアント装置に向けて送信することはできない。
【００１２】
したがって、ＭＴＵを考慮した転送を行う場合、インタレスト・パケットの転送には、受信した第１インタレスト・パケットの経路ＭＴＵフィールドの値もＰＩＴで管理し、同じオブジェクトを要求する第２インタレスト・パケットを受信した場合、第２インタレスト・パケットの経路ＭＴＵフィールドの値と、ＰＩＴのエントリである、第１インタレスト・パケットの経路ＭＴＵフィールドの値とを比較して、インタレスト集約を行うか否かを判定しなければならない。具体的には、第２インタレスト・パケットの経路ＭＴＵフィールドの値が、第１インタレスト・パケットの経路ＭＴＵフィールドの値以上である場合にのみインタレスト集約を行い、第２インタレスト・パケットの経路ＭＴＵフィールドの値が、第１インタレスト・パケットの経路ＭＴＵフィールドの値より小さい場合には、第２インタレスト・パケットを転送してＰＩＴを更新する必要がある。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００９−２７７２３４号公報
【非特許文献】
【００１４】
【非特許文献１】Ｖ．Ｊａｃｏｂｓｏｎ，ｅｔ  ａｌ．，"Ｎｅｔｗｏｒｋｉｎｇ  Ｎａｍｅｄ  Ｃｏｎｔｅｎｔ"，ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＡＣＭ  ＣｏＮＥＸＴ  ２００９，２００９年１２月
【非特許文献２】"ＣＣＮｘ  Ｅｎｄ−ｔｏ−Ｅｎｄ  Ｆｒａｇｍｅｎｔａｔｉｏｎ、［ｏｎｌｉｎｅ］、［平成２７年１月２０日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：//ｗｗｗ．ｃｃｎｘ．ｏｒｇ／ｐｕｂｓ／ｃｃｎｘ−ｍｏｓｋｏ−ｆｒａｇｍｅｎｔａｔｉｏｎ−０１．ｈｔｍｌ
【発明の概要】
【発明が解決しようとする課題】
【００１５】
例えば、非特許文献２が示す構成において、第１インタレスト・パケットの応答として、既に一部のデータ・パケットを受信し転送しているものとする。この状態において、第１インタレスト・パケットと同じオブジェクトを要求する第２インタレスト・パケットを受信し、この第２インタレスト・パケットの経路ＭＴＵフィールドの値が、第１インタレスト・パケットの経路ＭＴＵフィールドの値以上であると、上述した判定方法では、インタレスト集約は可能となる。しかしながら、この場合、転送装置は、第２インタレスト・パケットの受信後に受信するデータ・パケットについては、第２インタレスト・パケットを送信したクライアント装置に送信することはできるが、既に転送したデータ・パケットについては、これらがキャッシュ対象でない限り、第２インタレスト・パケットを送信したクライアント装置に送信することはできない。つまり、非特許文献２に示す構成では、正確にインタレスト集約可能であるかを判定することはできない。
【００１６】
本発明は、コンテンツを複数のオブジェクトに分割し、オブジェクトを１つ以上のデータ・パケットで配信するコンテンツ配信ネットワークの転送装置であって、インタレスト集約の可否を判定できる転送装置を提供するものである。
【課題を解決するための手段】
【００１７】
本発明の一側面によると、コンテンツを１つ以上のオブジェクトに分割し、１つのオブジェクトを１つ以上のデータ・パケットで配信するコンテンツ配信ネットワークの転送装置は、オブジェクトを要求する要求パケットを転送したことにより受信待ちとなっている当該オブジェクトと、当該要求パケットの応答として受信するデータ・パケットの送信インタフェースとの関係を示すペンディング情報を保持する保持手段と、要求パケットを受信すると、当該要求パケットを転送するか否かを判定する判定手段と、を備えており、前記判定手段は、第１要求パケットが要求するオブジェクトと、前記第１要求パケットの応答として受信するデータ・パケットの送信インタフェースとの関係が前記ペンディング情報に含まれているときに、当該オブジェクトを要求する第２要求パケットを受信すると、前記第１要求パケットの応答として少なくとも１つデータ・パケットを受信しているかを判定し、少なくとも１つデータ・パケットを受信していると、前記第２要求パケットを転送すると判定することを特徴とする。
【発明の効果】
【００１８】
インタレスト集約の可否を判定することができる。
【図面の簡単な説明】
【００１９】
【図１】一実施形態による転送装置の構成図。
【図２】一実施形態によるＰＩＴを示す図。
【図３】一実施形態によるインタレスト・パケット受信時の処理を示すフローチャート。
【図４】一実施形態によるＰＩＴを示す図。
【図５】一実施形態によるデータ・パケット受信時の処理を示すフローチャート。
【図６】一実施形態によるデータ・パケット受信時の処理を示すフローチャート。
【図７】一実施形態によるデータ・パケット受信時の処理を示すフローチャート。
【発明を実施するための形態】
【００２０】
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の実施形態は例示であり、本発明を実施形態の内容に限定するものではない。また、以下の各図においては、実施形態の説明に必要ではない構成要素については図から省略する。
【００２１】
＜第一実施形態＞
図２は、本実施形態による転送装置が管理するＰＩＴの一例を示している。なお、図２において、番号フィールドは、ＰＩＴの各エントリを識別するエントリ番号を示しているが、説明の便宜上設けたものであり、番号フィールドを設けない構成とすることもできる。図２のオブジェクト名フィールドは、受信待ちであるオブジェクト名を示している。また、インタレスト・フィールドの第１識別子フィールドには、受信して転送したインタレスト・パケットの第１識別子フィールドの値が設定され、同じく経路ＭＴＵフィールドには、転送したインタレスト・パケットの受信時における経路ＭＴＵフィールドの値が設定される。受信状態フィールドには、対応するインタレスト・パケットの応答として受信したデータ・パケットを示す情報が設定される。図２においては、１つのオブジェクトから生成されるデータ・パケットの数の最大値を５とし、５ビットでデータ・パケットの受信状況を示すものとしている。本実施形態では、ＬＳＢ〜ＭＳＢの順に各ビットを各データ・パケットに対応させ、値"０"が未受信を、値"１"が受信済みを示すものとする。例えば、受信状態フィールドの値が"０００１１"であることは、１番目と２番目のデータ・パケットを既に受信し転送したことを示している。なお、１つのオブジェクトを構成するデータ・パケットの数は、例えば、データ・パケットのヘッダに設定されている。なお、受信状態フィールドのビット数は、コンテンツ配信ネットワークにおいて１つのオブジェクトから生成されるデータ・パケットの数の最大値に基づき決定される。
【００２２】
データ・フィールドの第１識別子フィールドは、受信したデータ・パケットの第１識別子フィールドの値が設定され、ＭＴＵフィールドには、受信したデータ・パケットの最大ＭＴＵフィールドの値が設定される。さらに、インタフェース・フィールドには、受信したデータ・パケットを送信すべきインタフェースと、当該インタフェースに受信したデータ・パケットを送信する際に、当該データ・パケットの第２識別子フィールドに設定すべき値が設定される。
【００２３】
以下、インタレスト・パケットを受信した際の処理を図３のフローチャートにより説明する。Ｓ１０で転送装置は、受信したインタレスト・パケットが要求するオブジェクトをキャッシュしており、かつ、送信可能であるかをＣＳに基づき判定する。例えば、転送装置は、受信したインタレスト・パケットが要求するオブジェクトをキャッシュしているが、当該オブジェクトを受信した際のデータ・パケットの最大ＭＴＵフィールドの値が、受信したインタレスト・パケットの経路ＭＴＵフィールドの値より大きいと、キャッシュしているが送信不可と判定する。なお、これは、非特許文献２においては、転送装置においてオブジェクトの分割を禁止しているからである。しかしながら、転送装置において、キャッシュしているオブジェクトの分割を許容する構成とすることもできる。この場合、キャッシュしているオブジェクトは、総て送信可能と判定する。キャッシュし、かつ、送信可能である場合、転送装置は、Ｓ１６で、キャッシュしているオブジェクトをクライアント装置に送信して処理を終了する。一方、要求されたオブジェクトをキャッシュしていない、或いは、キャッシュしているが送信不可である場合、転送装置は、Ｓ１１で、要求されたオブジェクトのエントリがＰＩＴに存在するかを判定する。この判定は、本実施形態では、オブジェクト名により行う。存在しないと、転送装置は、Ｓ１５で、受信したインタレスト・パケットの転送処理を行う。なお、インタレスト・パケットの転送により、転送装置は、ＰＩＴに当該インタレスト・パケットに関するエントリを追加する。一例として、オブジェクト名"ＡＡＡ"を要求し、第１識別子フィールド及び経路ＭＴＵフィールドにそれぞれ"１２３４５"及び"１５００"が設定されたインタレスト・パケットをインタフェースＩＦ＃１で受信した場合、図２（Ａ）の番号＃１で示すエントリが追加される。図２（Ａ）に示す様に、オブジェクト名フィールドと、インタレスト・フィールドには、それぞれ、インタレスト・パケットで示された値を設定する。また、受信状態フィールドは、総てのビットを０に設定する。さらに、インタフェース・フィールドには、当該インタレスト・パケットを受信したインタフェースと、当該インタレスト・パケットの第１識別子フィールドの値が設定される。
【００２４】
一方、Ｓ１１で、要求されたオブジェクトのエントリがＰＩＴに存在すると、転送装置は、Ｓ１２及びＳ１３で、受信したインタレスト・パケットを、既にＰＩＴにエントリされているインタレスト・パケットに集約可能であるかを判定する。なお、このインタレスト集約可能であるか否かを判定するためのする条件を、集約条件と呼ぶものとする。集約条件を満たさない場合、転送装置は、Ｓ１５で、受信したインタレスト・パケットの転送処理を行い、上述したのと同様に、ＰＩＴに新たなエントリを追加する。一方、集約条件を満足していると、転送装置は、受信したインタレスト・パケットを転送せず、ＰＩＴの更新を行う。本実施形態では、集約条件として、Ｓ１２で、データ・パケットの一部を既に受信しているかを判定する。転送装置は、データ・パケットを受信して転送すると、受信状態フィールドの対応するビットを"１"に変更する。したがって、転送装置は、データ・パケットの一部を既に受信しているかを受信状態フィールドの値により判定することができる。データ・パケットの一部を既に受信していないと、転送装置は、Ｓ１３で、受信したインタレスト・パケットがＭＴＵに関する条件を満たしているかを判定する。具体的には、受信したインタレスト・パケットの経路ＭＴＵフィールドの値が、集約対象の経路ＭＴＵフィールドの値以上であるか否かを判定する。受信したインタレスト・パケットの経路ＭＴＵフィールドの値が、集約対象の経路ＭＴＵフィールドの値以上ではないと、インタレスト集約できないと判定し、受信したインタレスト・パケットの経路ＭＴＵフィールドの値が、集約対象の経路ＭＴＵフィールドの値以上であると、インタレスト集約可能と判定する。
【００２５】
例えば、図２（Ａ）の状態において、名前"ＡＡＡ"のオブジェクトを要求するインタレスト・パケットをＩＦ＃２で受信し、当該インタレスト・パケットの第１識別子フィールド及び経路ＭＴＵフィールドにはそれぞれ"２３４５６"及び"１５００"が設定されていたものとする。この場合、Ｓ１１において、図２（Ａ）の番号＃１のエントリがヒットし、よって、転送装置は、番号＃１のエントリに対応するインタレスト・パケットに、受信したインタレスト・パケットを集約できるかを判定する。本例では、Ｓ１２及びＳ１３の判定は、それぞれ、"Ｎｏ"、"Ｙｅｓ"であり集約条件を満たす。よって、転送装置は、Ｓ１４において、図２（Ｂ）の様にＰＩＴを更新する。具体的には、番号＃１のエントリのインタフェース・フィールドに、インタレスト・パケットを受信したインタフェースであるＩＦ＃２と、当該インタレスト・パケットの第１識別子フィールドの値を設定する。
【００２６】
図２（Ｂ）の状態において、転送装置が、第１識別子フィールドの値が"３４５６７"であり、第２識別子フィールドの値が"１２３４５"であり、最大ＭＴＵフィールドの値が１４８０であるデータ・パケットを受信したものとする。転送装置は、データ・パケットの第２識別子フィールドの値に基づき、ＰＩＴのインタレスト・フィールドの第１識別子フィールドを検索し、受信したデータ・パケットがどのエントリに関するものであるかを判定する。本例においては、番号＃１のエントリに関するものと判定される。転送装置は、判定した番号＃１のエントリのインタフェース・フィールドに示されたインタフェースから受信したデータ・パケットを送信する。なお、この際、送信するデータ・パケットの第２識別子フィールドの値には、インタフェース・フィールドに設定された値を設定する。具体的には、本例では、ＩＦ＃１及びＩＦ＃２それぞれからデータ・パケットを送信し、ＩＦ＃１から送信するデータ・パケットの第２識別子フィールドには、受信したのと同じ"１２３４５"を設定し、ＩＦ＃２から送信するデータ・パケットの第２識別子フィールドには、"２３４５６"を設定する。また、ＰＩＴの受信状態フィールドと、データ・フィールドの値をそれぞれ受信したデータ・パケットに応じて更新する。図２（Ｃ）の番号＃１のエントリは、この更新後の状態を示している。
【００２７】
また、図３のＳ１２又はＳ１３の処理を経由してＳ１５を行う場合には、受信したインタレスト・パケットのエントリを新たにＰＩＴに追加する。例えば、図２（Ａ）の状態の後に、転送装置が、名前"ＡＡＡ"のオブジェクトを要求するインタレスト・パケットをＩＦ＃３で受信し、当該インタレスト・パケットの第１識別子フィールド及び経路ＭＴＵフィールドにはそれぞれ"４５６７８"及び"１２８０"が設定されていたものとする。この場合、当該インタレスト・パケットを受信した時点において、番号＃１のエントリに対する受信状態が未受信であるか否かに拘らず集約条件を満たさないため、Ｓ１５において、当該インタレスト・パケットの転送処理が行われる。したがって、図２（Ｃ）の番号＃２に示すエントリがＰＩＴに追加される。図２（Ｃ）においては、番号＃１のエントリについて、既に１つのデータ・パケットを受信済みであり、番号＃２のエントリに対してはデータ・パケットが未受信であることが示されている。なお、番号＃１のエントリに対して受信するオブジェクトが５つのデータ・パケットに分割されているものとすると、この５つのデータ・パケットを転送すると、転送装置は、番号＃１のエントリをＰＩＴから削除する。また、キャッシュを行う場合には、オブジェクト単位でキャッシュを行う。
【００２８】
続いて、オブジェクトを受信した場合の処理について説明する。図４（Ａ）は、以下の説明に使用するＰＩＴである。図４（Ａ）によると、ＰＩＴには番号＃１及び番号＃２のエントリが存在し、対象とするオブジェクトは同じである。また、何れのエントリもデータ・パケットを受信していないことがＰＩＴには示されている。
【００２９】
図５は、オブジェクトを受信した場合の処理を示すフローチャートである。Ｓ２０で、転送装置は、受信したデータ・パケットの第２識別子フィールドの値により、ＰＩＴのインタレスト・フィールドの第１識別子フィールドを検索する。例えば、受信したデータ・パケットの第２識別子フィールドの値が"１２３４５"であると、番号＃１のエントリがヒットする。転送装置は、Ｓ２１で、ヒットしたエントリから、当該データ・パケットを送信するインタフェースを判定する。本例では、ＩＦ＃１及びＩＦ＃２が転送先インタフェースとして判定される。その後、転送装置は、Ｓ２２で、ヒットしたエントリの受信状態フィールドから、データ・パケットを初めて受信するのか、少なくとも１つのデータ・パケットを既に受信しているかを判定する。本例では、図４（Ａ）に示す様に、受信状態フィールドの値が"０００００"、つまり、初めて受信したデータ・パケットである。この場合、転送装置は、Ｓ２４において、第２処理を実行し、当該データ・パケットを転送する他のインタフェースを判定する。
【００３０】
図７は、第２処理のフローチャートである。Ｓ４０で、転送装置は、Ｓ２０でヒットしたエントリとオブジェクト名フィールドの値が同じであり、経路ＭＴＵフィールドの値が、受信したデータ・パケットの最大ＭＴＵフィールドの値以上であり、かつ、受信状態フィールドが未受信を示しているエントリを検索する。例えば、本例において、受信したデータ・パケットの最大ＭＴＵフィールドの値が"１２００"であるものとする。この場合、図４（Ａ）の番号＃２のエントリがヒットする。したがって、Ｓ４１の判定は、Ｙｅｓとなり、Ｓ４２で、転送装置は、番号＃２のエントリから、ＩＦ＃３を転送先インタフェースと判定する。図５に戻り、転送装置は、判定した転送インタフェースからデータ・パケットを送信し、Ｓ２６でＰＩＴを更新する。本例では、更新後のＰＩＴは、図４（Ｂ）の通りとなる。なお、受信したデータ・パケットの第１識別子フィールドの値は、"３４５６７"としている。
【００３１】
一方、受信したデータ・パケットの最大ＭＴＵフィールドの値が、"１２００"ではなく"１４８０"であるものとする。この場合、番号＃２の経路ＭＴＵフィールドの値は、データ・パケットの最大ＭＴＵフィールドの値より小さいため、図７のＳ４０で、番号＃２のエントリはヒットしない。したがって、ＩＦ＃３は、転送先インタフェースとならず、よって、Ｓ２６においてＰＩＴは、図２（Ｃ）の様に更新される。
【００３２】
続いて、図５のＳ２２で一部受信済みである場合の処理について説明する。この場合、転送装置は、Ｓ２３で第１処理を実行し、当該データ・パケットを転送する他のインタフェースを判定する。図６は、第１処理のフローチャートである。Ｓ３０で、転送装置は、Ｓ２０でヒットしたエントリとオブジェクト名フィールド及びデータ・フィールドの値が同じである他のエントリを検索し、Ｓ３１で、他のエントリが存在するかを判定する。他のエントリが存在すると、転送装置は、Ｓ３１で、当該他のエントリのインタフェース・フィールドが示すインタフェースも転送インタフェースと判定する。
【００３３】
例えば、図４（Ｂ）の状態において、第２識別子フィールドの値が"１２３４５"、第１識別子フィールドの値が"３４５６７"、最大ＭＴＵフィールドの値がが"１２００"のデータ・パケットを受信したものとする。つまり、番号＃１のエントリに対する２番目のデータ・パケットを受信したものとする。この場合、Ｓ２０における検索で、番号＃１のエントリがヒットする。転送装置は、Ｓ３０で、番号＃１のエントリのオブジェクト名フィールド及びデータ・フィールドの値が同じであるエントリを検索し、この場合、番号＃２のエントリがヒットする。したがって、転送装置は、番号＃２のエントリが示すＩＦ＃３も転送インタフェースであると判定し、図５のＳ２５で、ＩＦ＃１、ＩＦ＃２、ＩＦ＃３からデータ・パケットを送信し、Ｓ２６でＰＩＴを更新する。なお、データ・パケットの最大ＭＴＵフィールドにより、あるインタレスト・パケットの応答として受信する一連のデータ・パケットのＭＴＵの最大値が示されているため、図６のＳ３０においては、データ・フィールド全体ではなく、データ・フィールドの第１識別子フィールドのみ、もしくは第２識別子フィールドのみの一致により検索する構成であっても良い。一方、図２（Ｃ）の状態において、番号＃１のエントリに対する２番目のデータ・パケットを受信した場合には、Ｓ３１で他のエントリは存在しないため、図５のＳ２５で、ＩＦ＃１、ＩＦ＃２からデータ・パケットを送信し、Ｓ２６でＰＩＴを更新する。
【００３４】
図１は、本実施形態による転送装置の構成図である。キャッシュ部１１は、オブジェクトのキャッシュを行う。保持部１２は、インタレスト・パケットを転送したことにより受信待ちとなっているオブジェクトと、当該インタレストの応答として受信するデータ・パケットの送信インタフェースとの関係を示すペンディング情報を保持する。本実施形態において、ペンディング情報は、ＰＩＴの形態とする。なお、保持部１２は、ＣＳやＦＩＢも管理する。判定部１３は、インタレスト・パケットを受信すると、当該インタレスト・パケットを転送するか否か、つまり、インタレスト集約を行うか否かを図３の処理に基づき判定する。例えば、判定部１３は、ＰＩＴのエントリに含まれているオブジェクトを要求するインタレスト・パケットを受信すると、当該エントリの受信状態フィールドから、少なくとも１つデータ・パケットを受信済であるかを判定する。受信済みであると、当該インタレスト・パケットについてはインタレスト集約不可であると判定する。また、判定部１３は、ＰＩＴのエントリの経路ＭＴＵフィールドの値と、受信したインタレスト・パケットの経路ＭＴＵフィールドの値を比較し、受信したインタレスト・パケットの経路ＭＴＵフィールドの値が、ＰＩＴのエントリの経路ＭＴＵフィールドの値より小さいと、インタレスト集約不可であると判定する。
【００３５】
さらに、判定部１３は、データ・パケットを受信すると、図５〜図７の処理によりデータ・パケットの送信インタフェースを決定する。具体的には、あるインタレスト・パケットの応答として初めてデータ・パケットを受信したものとする。この場合、当該インタレスト・パケットを受信したインタフェースと、当該インタレスト・パケットにインタレスト集約されたインタレスト・パケットを受信したインタフェースが、当該データ・パケットの送信インタフェースとなる。さらに、当該インタレスト・パケットとは異なるインタレスト・パケットであるが同じオブジェクトを要求するＰＩＴエントリであって、経路ＭＴＵフィールドの値が当該データ・パケットの最大ＭＴＵフィールドの値以上であり、かつ、データ・パケットを受信していないエントリがある場合、判定部１３は、当該エントリのインタフェース・フィールドが示すインタフェースも当該データ・パケットの送信インタフェースとする。これは、当該インタレスト・パケットとは異なるインタレスト・パケットについても、"事後的"に当該インタレスト・パケットにインタレスト集約したことに相当する。
【００３６】
また、判定部１３は、あるインタレスト・パケットの応答として２番目以降のデータ・パケットを受信したものとする。この場合、判定部１３は、当該インタレスト・パケットと、当該インタレスト・パケットにインタレスト集約したインタレスト・パケットの受信インタフェースを、当該データ・パケットの送信インタフェースとする。この場合のインタレスト集約は、インタレスト・パケット受信時のインタレスト集約のみならず、上記"事後的"なインタレスト集約も含む。なお、本実施形態において、判定部１３は、データ・パケットに含まれる第２識別子の値と、ＰＩＴエントリのインタレスト・フィールドの第１識別子フィールドの値により、インタレスト・パケットとデータ・パケットの対応関係を判定する。
【００３７】
更新部１４は、ＰＩＴの管理を行い、インタレスト・パケットの転送、データ・パケットの転送を行う度にＰＩＴを更新する。具体的には、受信したインタレスト・パケットについてインタレスト集約不可と判定すると、当該インタレスト・パケットについての新たなエントリをＰＩＴに追加する。一方、当該インタレスト・パケットについて、他のインタレスト・パケットへのインタレスト集約が可能であると判定すると、当該他のインタレスト・パケットに関するエントリのインタフェース・フィールドに、当該インタレスト・パケットを受信したインタフェースを追加する様にＰＩＴを更新する。また、データ・パケットを転送すると、上述した様にＰＩＴを更新する。なお、通信処理部１５は、複数のインタフェースを有し、パケットの送受信処理を行う。
【００３８】
以上、本実施形態によると転送装置は、ＭＴＵを考慮したネットワークにおいて、必要に応じてインタレスト集約を行い、コンテンツ配信ネットワークにおけるトラフィックを効果的に抑えることができる。
【００３９】
＜第二実施形態＞
続いて、第二実施形態について、第一実施形態との相違点を中心に説明する。なお、本実施形態においては、キャッシュしているオブジェクトについては転送装置において分割可能とする。第一実施形態において、キャッシュしているオブジェクトについては転送装置において分割可能とすると、図３のＳ１０での判定は、キャッシュの有無のみとなる。ここで、第一実施形態では、キャッシュ有無の判定は、オブジェクト毎に行っていた。つまり、オブジェクトの総てのデータ・パケットを受信して、当該オブジェクトをキャッシュしていると、インタレスト・パケットの転送は行わず、キャッシュしているオブジェクトをＳ１６で送信していた。なお、キャッシュ有無の判定は、ＣＳにより行う。つまり、ＣＳに要求されたオブジェクトが存在する場合、キャッシュ有りであり、ＣＳに要求されたオブジェクトが存在しない場合、キャッシュ無しと判定していた。
【００４０】
しかしながら、要求されたオブジェクトがＣＳに存在しない場合であっても、ＰＩＴにエントリが存在し、かつ、当該オブジェクトがキャッシュ対象であれば、転送装置は、最終的にはオブジェクトの全体を受信してキャッシュすることになる。また、一部のデータ・パケットを受信している場合、転送装置は、既にオブジェクトの一部を保持している。したがって、本実施形態では、インタレスト・パケットを受信し、当該インタレスト・パケットが要求するオブジェクトに対応するＰＩＴのエントリが存在すると、当該オブジェクトがキャッシュ対象であるかを判定する。キャッシュ対象であると、当該インタレスト・パケットに対するエントリをＰＩＴに新たに追加して、インタレスト・パケットの転送は行わない。なお、このとき、ＰＩＴの当該エントリには、キャッシュ待ちであることを示す情報を付加しておく。転送装置は、当該エントリが要求するオブジェクトに対する総てのデータ・パケットを受信すると、当該エントリの経路ＭＴＵフィールドの値と、インタフェース・フィールドの値に基づき、データ・パケットを送信する。なお、当該エントリが要求するオブジェクトを総て受信する前に、送信可能なデータ・パケットを送信する形態であっても良い。なお、受信したインタレスト・パケットが要求するオブジェクトがキャッシュ対象ではない場合の処理は、第一実施形態と同様である。
【００４１】
なお、本実施形態においても、転送装置におけるオブジェクトの分割を許容しない構成とすることもできる。この場合、転送装置は、インタレスト・パケットを受信し、当該インタレスト・パケットが要求するオブジェクトに対応するＰＩＴのエントリが存在すると、当該オブジェクトがキャッシュ対象であり、かつ、当該エントリの経路ＭＴＵフィールドの値が、受信したインタレスト・パケットの経路ＭＴＵフィールドの値以下であるかを判定する。転送装置は、キャッシュ対象であり、かつ、当該エントリの経路ＭＴＵフィールドの値が、受信したインタレスト・パケットの経路ＭＴＵフィールドの値以下であると、当該インタレスト・パケットに対するエントリをＰＩＴに新たに追加して、インタレスト・パケットの転送は行わない。そして、キャッシュしたオブジェクトをインタレスト・パケットの送信元のクライアント装置に送信する。それ以外の処理は第一実施形態と同様である。
【００４２】
＜第三実施形態＞
第一実施形態及び第二実施形態において、判定部１３は、データ・パケットの第２識別子フィールドの値と、インタレスト・パケットの第１識別子フィールドの値により、インタレスト・パケットとデータ・パケットの対応関係を判定していた。しかしながら、本発明は、これに限定されず、任意の方法によりインタレスト・パケットとデータ・パケットの対応関係を判定できる。例えば、インタレスト・パケットは、そのデータ部分のハッシュ値であるインタレスト・ラベル（ＩＬ：Ｉｎｔｅｒｅｓｔ  Ｌａｂｅｌ）を含み、データ・パケットもこのハッシュ値を含んでいる。また、インタレスト・パケット及びデータ・パケットは、その転送用に転送ラベル（ＦＬ：Ｆｏｗａｒｄｉｎｇ  Ｌａｂｅｌ）を含んでいる。したがって、これら情報や、それらの組み合わせによりインタレスト・パケットとデータ・パケットの対応関係を判定することができる。
【００４３】
なお、本発明による転送装置は、コンピュータを上記転送装置として動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。
【図１】
0006430849.tif 000002
【図２】
0006430849.tif 000003
【図３】
0006430849.tif 000004
【図４】
0006430849.tif 000005
【図５】
0006430849.tif 000006
【図６】
0006430849.tif 000007
【図７】
0006430849.tif 000008