(57)【特許請求の範囲】
【請求項１】
複数の第１インタフェースと、１つ以上の第２インタフェースと、を有する通信装置であって、
前記複数の第１インタフェースの１つを介して受信した第１パケットが自装置宛でないと、フロー・テーブルに基づき前記複数の第１インタフェースの１つを介して前記第１パケットを転送し、前記第１パケットが自装置宛であると、前記第１パケットの第１フィールドに含まれる値に基づき前記第１パケットの転送先のアドレスを特定できるかを判定し、前記第１パケットの転送先のアドレスを特定できる場合、前記第１パケットの宛先アドレスに、前記特定した転送先のアドレスを設定し、前記フロー・テーブルに基づき前記複数の第１インタフェースの１つを介して転送する転送手段と、
自装置宛である前記第１パケットの転送先のアドレスを特定できず、かつ、前記第１パケットが、コンテンツを分割したオブジェクトのオブジェクト名により当該オブジェクトを要求する第１要求パケットを含む場合、前記オブジェクト名に基づき、当該第１要求パケットの転送先が前記複数の第１インタフェースであるか、前記１つ以上の第２インタフェースであるかと、当該第１要求パケットの転送先が前記１つ以上の第２インタフェースである場合には、当該第１要求パケットを出力する第２インタフェースを特定する処理を行う処理手段と、
を含むことを特徴とする通信装置。
【請求項２】
前記処理手段は、オブジェクト名と、当該オブジェクト名のオブジェクトを要求する要求パケットの転送先との関係を示す第１テーブルに基づき、前記第１要求パケットの転送先が前記複数の第１インタフェースであるか、前記１つ以上の第２インタフェースであるかと、前記第１要求パケットの転送先が前記１つ以上の第２インタフェースである場合には、前記第１要求パケットを出力する第２インタフェースを特定することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第１テーブルは、要求パケットの転送先が前記１つ以上の第２インタフェースである場合には、前記１つ以上の第２インタフェースの１つを当該転送先として示しており、要求パケットの転送先が前記複数の第１インタフェースである場合には、アドレスを当該転送先として示していることを特徴とする請求項２に記載の通信装置。
【請求項４】
前記処理手段は、前記第１要求パケットの転送先として、前記第１テーブルにアドレスが示されていると、前記第１要求パケットをカプセル化して第２パケットを生成し、生成した第２パケットの宛先アドレスに前記第１テーブルに示されたアドレスを設定し、
前記転送手段は、前記第２パケットを、前記フロー・テーブルに基づき前記複数の第１インタフェースの１つを介して転送することを特徴とする請求項３に記載の通信装置。
【請求項５】
前記第１パケットの第２フィールドにはアドレスが設定されており、
前記処理手段は、前記第１要求パケットの転送先として、前記第１テーブルに第２インタフェースが示されていると、前記第１要求パケットを当該第２インタフェースから出力し、前記第１要求パケットが要求するオブジェクト名と、前記第２フィールドに設定されたアドレスとの関係を第２テーブルに格納し、前記第１要求パケットの応答として当該第２インタフェースを介してオブジェクトを含むデータ・パケットを受信すると、当該データ・パケットをカプセル化して第３パケットを生成し、生成した第３パケットの宛先アドレスに前記第２テーブルに格納したアドレスを設定し、
前記転送手段は、前記第３パケットを、前記フロー・テーブルに基づき前記複数の第１インタフェースの１つを介して転送することを特徴とする請求項３に記載の通信装置。
【請求項６】
前記第１パケットの第１フィールドには、前記第１要求パケットが要求するオブジェクト名に基づくハッシュ値が格納されることを特徴とする請求項１から５のいずれか１項に記載の通信装置。
【請求項７】
前記転送手段は、前記ハッシュ値と転送先のアドレスを示す第３テーブルを保持しており、前記第３テーブルに基づき前記第１パケットの転送先のアドレスを特定できるかを判定することを特徴とする請求項６に記載の通信装置。
【請求項８】
請求項１から７のいずれか１項に記載の通信装置としてコンピュータを機能させることを特徴とするプログラム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンテンツを複数のオブジェクトに分割して配信するコンテンツ配信ネットワーク間の中継を行うネットワークにおける通信装置に関する。
【背景技術】
【０００２】
コンテンツを示す名前に基づきコンテンツの配信を行うネットワークが提案されている。特許文献１及び非特許文献１は、その様なネットワークの１つであるコンテンツ・セントリック・ネットワーク（ＣＣＮ：Ｃｏｎｔｅｎｔ  Ｃｅｎｔｒｉｃ  Ｎｅｔｗｏｒｋｉｎｇ）を開示している。
【０００３】
コンテンツ・セントリック・ネットワークにおいて、コンテンツを公開するサーバ装置は当該コンテンツを１つ以上のチャンクと呼ばれるオブジェクトに分割し、クライアント装置は、この分割されたオブジェクト単位でコンテンツを取得する。また、コンテンツ・セントリック・ネットワークにおいて、オブジェクトの転送を行った通信装置（以下、転送装置と呼ぶ。）は、当該オブジェクトを保存（キャッシュ）できる。この転送装置は、自装置が保持しているオブジェクトを要求するインタレスト・パケット（要求パケット）をクライアント装置から受信すると、当該インタレスト・パケットをサーバ装置に向けて転送することなく、自装置が保持するオブジェクトを、当該インタレスト・パケットの送信元のクライアント装置に向けて送信できる。
【０００４】
以下に、転送装置の動作の一例を説明する。転送装置は、ＣＳ（Ｃｏｎｔｅｎｔｓ  Ｓｔｏｒｅ）と、ＦＩＢ（Ｆｏｒｗａｒｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）と、ＰＩＴ（ＰＩＴ：Ｐｅｎｄｉｎｇ  Ｉｎｔｅｒｅｓｔ  Ｔａｂｌｅ）を管理する。ＣＳは、自装置が保持しているオブジェクトを示す情報である。ＦＩＢは、インタレスト・パケットと、当該インタレスト・パケットを転送すべきインタフェースとの関係を示す情報である。ＰＩＴは、転送したインタレスト・パケットが要求するオブジェクトと、当該転送したインタレスト・パケットを受信したインタフェースとの関係を示す情報である。
【０００５】
転送装置は、インタレスト・パケットを受信すると、ＣＳを検索し、当該インタレスト・パケットが要求するオブジェクトを保持しているか否かを判定する。保持している場合には、自装置が保持しているオブジェクトを、当該インタレスト・パケットの送信元のクライアント装置に向けて送信する。一方、受信したインタレスト・パケットが要求するオブジェクトを保持していない場合には、ＰＩＴを検索して、当該インタレスト・パケットと同じオブジェクトを要求するインタレスト・パケットを既に転送し、当該オブジェクトの受信待ちの状態であるかを判定する。受信待ちの状態であると、受信したインタレスト・パケットを転送せず、当該インタレスト・パケットの受信インタフェースを、当該インタレスト・パケットが要求するオブジェクトに関連付ける様にしてＰＩＴを更新する。一方、受信したインタレスト・パケットが要求するオブジェクトの受信待ちでなければ、ＦＩＢに基づき判定したインタフェースから当該インタレスト・パケットを転送すると共にＰＩＴを更新する。また、転送装置は、オブジェクトを受信すると、当該オブジェクトの転送先インタフェースをＰＩＴに基づき判定し、当該オブジェクトに関する情報をＰＩＴから削除する。また、転送装置は、受信して転送したオブジェクトを保存するとＣＳを更新する。
【０００６】
非特許文献２は、ＣＣＮパケットをオープンフロー（ＯｐｅｎＦｌｏｗ）ネットワークで転送する構成を開示している。ここで、オープンフロー・ネットワークとは、パケットの転送を行う通信装置と、通信装置におけるパケットの転送先を通信装置に設定する制御装置とを分離したネットワークである。オープンフロー・ネットワークの制御装置は、ＩＰパケットの宛先アドレス、送信元アドレス、宛先ポート番号、送信元ポート番号等からフローを識別し、各フローのオープンフロー・ネットワークにおける経路を判定し、判定した経路上の転送装置に対して当該フローに属するパケットの出力インタフェースを設定する。非特許文献２においては、ＣＣＮパケットに含まれるコンテンツの名前のハッシュ値を求め、このハッシュ値をＩＰパケットの宛先アドレスに設定することで、オープンフロー・ネットワークにおいてＣＣＮパケットの転送を行っている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−２７７２３４号公報
【非特許文献】
【０００８】
【非特許文献１】Ｖ．Ｊａｃｏｂｓｏｎ，ｅｔ  ａｌ．，"Ｎｅｔｗｏｒｋｉｎｇ  Ｎａｍｅｄ  Ｃｏｎｔｅｎｔ"，ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＡＣＭ  ＣｏＮＥＸＴ  ２００９，２００９年１２月
【非特許文献２】大岡  睦、他、"ＯｐｅｎＦｌｏｗを用いたＣＣＮアーキテクチャおよびルータの実装"、電子情報通信学会技術研究報告（ＩＮ２０１３−１９）、２０１３年５月
【発明の概要】
【発明が解決しようとする課題】
【０００９】
非特許文献２の構成では、制御装置がコンテンツのキャッシュや、各転送装置におけるＰＩＴ等を管理するため制御装置での処理負荷が増大する。
【００１０】
本発明は、コンテンツを複数のオブジェクトに分割して配信するコンテンツ配信ネットワーク間の中継を効率よく行うための通信装置及びプログラムを提供するものである。
【課題を解決するための手段】
【００１１】
本発明の一側面によると、通信装置は、複数の第１インタフェースと、１つ以上の第２インタフェースと、を有する通信装置であって、前記複数の第１インタフェースの１つを介して受信した第１パケットが自装置宛でないと、フロー・テーブルに基づき前記複数の第１インタフェースの１つを介して前記第１パケットを転送し、前記第１パケットが自装置宛であると、前記第１パケットの第１フィールドに含まれる値に基づき前記第１パケットの転送先のアドレスを特定できるかを判定し、前記第１パケットの転送先のアドレスを特定できる場合、前記第１パケットの宛先アドレスに、前記特定した転送先のアドレスを設定し、前記フロー・テーブルに基づき前記複数の第１インタフェースの１つを介して転送する転送手段と、自装置宛である前記第１パケットの転送先のアドレスを特定できず、かつ、前記第１パケットが、コンテンツを分割したオブジェクトのオブジェクト名により当該オブジェクトを要求する第１要求パケットを含む場合、前記オブジェクト名に基づき、当該第１要求パケットの転送先が前記複数の第１インタフェースであるか、前記１つ以上の第２インタフェースであるかと、当該第１要求パケットの転送先が前記１つ以上の第２インタフェースである場合には、当該第１要求パケットを出力する第２インタフェースを特定する処理を行う処理手段と、を含むことを特徴とする。
【発明の効果】
【００１２】
本発明によると、コンテンツを複数のオブジェクトに分割して配信するコンテンツ配信ネットワーク間の中継を効率良く行うことができる。
【図面の簡単な説明】
【００１３】
【図１】一実施形態によるネットワーク構成を示す図。
【図２】一実施形態によるＣＣＮパケットの中継構成を示す図。
【図３】一実施形態によるＣＣＮパケットのカプセル化を示す図。
【図４】一実施形態による通信装置の構成図。
【図５】一実施形態によるＦＩＢ及びハッシュ値テーブルを示す図。
【図６】一実施形態によるＰＩＴを示す図。
【発明を実施するための形態】
【００１４】
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の各図においては実施形態の説明に必要ではない構成要素については図から省略する。また、以下の実施形態は例示であり本発明を実施形態の内容に限定するものではない。
【００１５】
図１は、本実施形態によるネットワーク１００を示している。ネットワーク１００は、ＣＣＮ２００及びＣＣＮ３００間においてＣＣＮパケットの中継を行う。ここで、ＣＣＮパケットは、コンテンツのオブジェクトを要求するインタレスト・パケットと、インタレスト・パケットの応答として送信され、オブジェクトを含むデータ・パケットに分けられる。なお、ネットワーク１００は、ＣＣＮ以外の通常のＩＰネットワーク間の中継も行う。また、以下では、ネットワーク１００がＣＣＮ間の中継を行うものとして説明するが、コンテンツをオブジェクトに分割し、オブジェクトの名前に基づきインタレスト・パケットの転送を行う他の任意のネットワークの中継に本発明を適用できる。
【００１６】
ネットワーク１００は、オープンフロー・ネットワークと同様に、通信装置と制御装置で構成される。以下、通常のオープンフロー・ネットワークのプロトコルについて説明する。オープンフロー・ネットワークの通信装置はフロー・テーブルを維持している。フロー・テーブルは、フローと出力先の関係を示すテーブルであり、通信装置は、ＩＰパケットを受信すると、ＩＰパケットのヘッダ情報から当該ＩＰパケットが属するフローを判定し、フロー・テーブルで示されるインタフェースから当該ＩＰパケットを出力する。さらに、受信したＩＰパケットが属するフローについての情報がフロー・テーブルにないと、受信したＩＰパケットのコピーを制御装置に送信する。制御装置は、受信したＩＰパケットから、フロー及びその経路を決定し、経路上の各通信装置にフローを特定するために使用するＩＰパケットのヘッダ情報と出力先との関係を通知して、各通信装置にフロー・テーブルを更新させる。
【００１７】
図４は、本実施形態によるネットワーク１００の通信装置の構成図である。ＣＣＮインタフェース部１は、ＣＣＮと接続するための１つ以上のインタフェースを含んでいる。ＣＣＮ処理部２は、ＰＩＴ７及びＦＩＢ８に基づきＣＣＮパケット、つまり、インタレスト・パケットや、データ・パケットの転送処理を行う。ＩＰパケット終端部３は、ＣＣＮインタフェース部１から受信したＣＣＮパケットを、ネットワーク１００で中継する際に、ＣＣＮパケットをＩＰパケットにカプセル化する処理を行う。また、ネットワーク１００で中継されたＩＰパケットに含まれるＣＣＮパケットを、ＣＣＮインタフェース部１のインタフェースから送信する場合、受信したＩＰパケットからＣＣＮパケットを取り出す処理を行う。判定部４とハッシュ値テーブル９については後述する。オープンフロー処理部５は、上述したオープンフロー・プロトコルに従いＩＰパケットの転送を行う。なお、オープンフロー処理部５は、図示しないフロー・テーブルを保持している。このフロー・テーブルは、フローと出力先インタフェースとの関係を示し、その内容については、図示しない制御装置から指定される。オープンフロー・インタフェース部６は、他の通信装置と接続するための複数のインタフェースを有する。なお、ネットワーク１００は、通信装置以外に、通信装置を制御する制御装置を有するが、制御装置と通信装置間での処理は、オープンフロー・プロトコルに従うため、その説明については省略する。
【００１８】
以下では、図２に示す様に、本実施形態による通信装置１０、２０、３０により、ＣＣＮ２００から受信したインタレスト・パケットをＣＣＮ３００に転送し、転送したインタレスト・パケットの応答としてＣＣＮ３００から受信したデータ・パケットをＣＣＮ２００に転送する場合を例にし、各通信装置における動作を説明する。なお、インタレスト・パケットは、オブジェクト名が"／ＫＤＤＩ．ｃｏｍ／Ａ／１"であるオブジェクトを要求するものとし、通信装置１０、２０、３０は、このオブジェクトをキャッシュしていないものとする。また、オブジェクト名が"／ＫＤＤＩ．ｃｏｍ／Ａ／１"であるオブジェクトを要求するインタレスト・パケットを初めて受信したものとする。
【００１９】
図２の構成においては、通信装置１０のオープンフロー・インタフェース部６の１つのインタフェースが、通信装置２０のオープンフロー・インタフェース部６の１つのインタフェースと接続しており、通信装置２０のオープンフロー・インタフェース部６の１つのインタフェースが、通信装置３０のオープンフロー・インタフェース部６の１つのインタフェースと接続している。さらに、通信装置１０のＣＣＮインタフェース部１の１つのインタフェースがＣＣＮ２００と接続しており、通信装置３０のＣＣＮインタフェース部１の１つのインタフェースがＣＣＮ３００と接続している。また、通信装置１０、２０、３０のＰＩＴ７、ＦＩＢ８、ハッシュ値テーブル９には、必要な情報があらかじめ設定されているものとする。また、図２に示す様に、通信装置１０、２０、３０のＩＰアドレスを、それぞれ、Ａｄｄ＃１０、Ａｄｄ＃２０、Ａｄｄ＃３０とする。
【００２０】
通信装置１０は、ＣＣＮ２００からＣＣＮインタフェース部１でインタレスト・パケットを受信すると、受信したインタレスト・パケットをＣＣＮ処理部２に出力する。ＣＣＮ処理部２は、受信したインタレスト・パケットが要求する、その名前が"／ＫＤＤＩ．ｃｏｍ／Ａ／１"であるオブジェクトをキャッシュしているか否かを判定する。本例では、キャッシュしていないため、ＣＣＮ処理部２は、ＰＩＴ７に基づき、その名前が"／ＫＤＤＩ．ｃｏｍ／Ａ／１"であるオブジェクトを要求するインタレスト・パケットを転送済みで、当該オブジェクトの受信待ちであるかを判定する。本例では、受信待ちではないため、ＣＣＮ処理部２は、当該インタレスト・パケットの転送先をＦＩＢ８に基づき決定する。
【００２１】
図５（Ａ）は、通信装置１０のＦＩＢ８の例を示している。通常、ＦＩＢ８には、オブジェクト名に対応する転送先インタフェースが示されている。本実施形態において、インタレスト・パケットの転送先がＣＣＮインタフェース部１のインタフェースであると、ＦＩＢ８の転送先インタフェースには、転送先のインタフェースを特定する情報を設定する。例えば、図５（Ａ）において、オブジェクト名"Ａ"に対しては、ＣＣＮインタフェース部１のインタフェースであるＩＦ＃１が示されている。一方、インタレスト・パケットの転送先が、オープンフロー・インタフェース部６のインタフェースである場合、つまり、ネットワーク１００である場合には、ＦＩＢ８の転送先インタフェースには、ＩＰアドレスが設定される。図５（Ａ）のＦＩＢ８においては、オブジェクト名が"／ＫＤＤＩ．ｃｏｍ／Ａ"であるオブジェクトを要求するインタレスト・パケットについては、通信装置２０のＩＰアドレスが記載されている。なお、"／ＫＤＤＩ．ｃｏｍ／Ａ"とは、"／ＫＤＤＩ．ｃｏｍ／Ａ＊"の意味であり、"＊"は任意の文字列との意味である。つまり、図５（Ａ）の例において、オブジェクト名が"／ＫＤＤＩ．ｃｏｍ／Ａ／１"であるオブジェクトを要求するインタレスト・パケットの転送先として、通信装置２０のＩＰアドレスが設定されている。よって、ＣＣＮ処理部２は、このインタレスト・パケットについては、ネットワーク１００で転送するものと判定し、このインタレスト・パケットをＩＰパケット終端部３に出力する。このとき、ＣＣＮ処理部２は、ＦＩＢ８のヒットしたエントリのオブジェクト名である、"／ＫＤＤＩ．ｃｏｍ／Ａ"と、その転送先として示されているＩＰアドレスである、Ａｄｄ＃２０をＩＰパケット終端部３に通知する。また、ＣＣＮ処理部２は、当該インタレスト・パケットの応答として受信するデータ・パケットの出力先を示す情報をＰＩＴ７に追加する。この出力先は、当該インタレスト・パケットを受信したＣＣＮインタフェース部１のインタフェースである。
【００２２】
ＩＰパケット終端部３は、図３（Ａ）に示す様に、受信したインタレスト・パケットに返送先アドレス・フィールドと、ハッシュ値フィールドを加え、さらに、ＩＰヘッダを追加してＩＰパケットを生成する。ここで、返送先アドレス・フィールドには、自装置、つまり、通信装置１０のＩＰアドレスであるＡｄｄ＃１０を格納する。また、ハッシュ値フィールドには、ＣＣＮ処理部２から通知された"／ＫＤＤＩ．ｃｏｍ／Ａ"のハッシュ値を格納する。なお、本例において、"／ＫＤＤＩ．ｃｏｍ／Ａ"のハッシュ値を"Ｈａｓｈ＃１"であるものとする。さらに、ＩＰパケット終端部３は、ＩＰヘッダの宛先アドレスには、ＣＣＮ処理部２から通知された通信装置２０のＩＰアドレス、つまり、Ａｄｄ＃２０を設定する。
【００２３】
そして、ＩＰパケット終端部３は、この様にして生成したＩＰパケットを、判定部４を介してオープンフロー処理部５に出力する。オープンフロー処理部５は、ＩＰパケットの宛先アドレスが自装置ではない場合、通常のオープンフロー・プロトコルに従い処理する。したがって、このＩＰパケットは、オープンフロー・インタフェース部６のインタフェースを介して通信装置２０に送信される。
【００２４】
通信装置２０は、通信装置１０からオープンフロー・インタフェース部６のインタフェースを介してＩＰパケットを受信すると、当該ＩＰパケットをオープンフロー処理部５に出力する。オープンフロー処理部５は、ＩＰパケットのＩＰヘッダの宛先アドレスを確認する。ＩＰヘッダの宛先アドレスが自装置ではないと、通常のオープンフロー・プロトコルに従い、フローを識別し、フロー・テーブルに基づきＩＰパケットの転送を行う。一方、ＩＰヘッダの宛先アドレスが自装置のものであると、受信したＩＰパケットを判定部４に出力する。本例においては、宛先アドレスが通信装置２０を示しているため、オープンフロー処理部５は、判定部４に受信したＩＰパケットを出力する。
【００２５】
判定部４は、ＩＰパケットのハッシュ値フィールドに設定されている値が、ハッシュ値テーブル９に存在するかを確認する。ハッシュ値テーブル９とは、ＩＰパケットのハッシュ値フィールドに設定されている値と、転送先のＩＰアドレスとの対応関係を示すテーブルである。ハッシュ値テーブルに、受信したＩＰパケットのハッシュ値フィールドに設定されている値が存在すると、通信装置２０は、受信したＩＰパケットのＩＰヘッダの宛先アドレスにハッシュ値テーブルが示すＩＰアドレスを設定してオープンフロー処理部５に出力する。オープンフロー処理部５は、判定部４から受信するＩＰパケットを、通常のオープンフロー・プロトコルに従い処理する。一方、ハッシュ値テーブル９に、受信したＩＰパケットのハッシュ値フィールドに設定されている値が存在しない場合、判定部４は、ＩＰパケットをＩＰパケット終端部３に出力する。ＩＰパケット終端部３は、ＩＰパケットからＣＣＮパケットを取り出してＣＣＮ処理部２に出力し、ＣＣＮ処理部２は、ＦＩＢ８に基づき転送先を判定する。なお、ＦＩＢ８から転送先を判定できない場合には、当該ＣＣＮパケットを廃棄する。
【００２６】
図５（Ｂ）は、本例において、通信装置２０が有するハッシュ値テーブル９を示している。図５（Ｂ）においては、ハッシュ値フィールドに設定されているＨａｓｈ＃１の宛先ＩＰアドレスとして、通信装置３０のアドレス、つまり、Ａｄｄ＃３０が設定されている。この場合、通信装置２０の判定部４は、受信したＩＰパケットの宛先アドレスをＡｄｄ＃３０に変更し、変更後のＩＰパケットをオープンフロー処理部５に出力する。オープンフロー処理部５は、このＩＰパケットを、オープンフロー・インタフェース部６のインタフェースを介して通信装置３０に送信する。
【００２７】
なお、本例においては、通信装置２０が有するハッシュ値テーブル９には、Ｈａｓｈ＃１の宛先ＩＰアドレスとして、通信装置３０のアドレスが設定されているものとした。しかしながら、ハッシュ値テーブル９に、Ｈａｓｈ＃１のエントリが存在しないが、通信装置２０のＦＩＢ８には、オブジェクト名"／ＫＤＤＩ．ｃｏｍ／Ａ／１"の転送先として通信装置３０のＩＰアドレスが設定されている場合も存在する。この場合、判定部４は、ＩＰパケットをＩＰパケット終端部３に出力し、ＩＰパケット終端部３は、ＩＰパケットからインタレスト・パケットを取り出してＣＣＮ処理部２に出力する。ＣＣＮ処理部２は、インタレスト・パケットが示すオブジェクト名から、当該インタレスト・パケットの転送先を判定する。ここで、本例では、当該インタレスト・パケットの転送先として通信装置３０のＩＰアドレスが設定されている。したがって、通信装置１０のＣＣＮ処理部２が当該インタレスト・パケットを受信した際の処理と同様に、通信装置２０ＣＣＮ処理部２は、当該インタレスト・パケットを処理し、当該インタレスト・パケットは、図３（Ａ）に示す様に、カプセル化されて通信装置３０に送信される。
【００２８】
通信装置３０は、通信装置２０から受信したＩＰパケットをオープンフロー処理部５に出力する。この受信したＩＰパケットの宛先アドレスは、通信装置３０のアドレスであるため、オープンフロー処理部５は、このＩＰアドレスを判定部４に出力する。通信装置３０のハッシュ値テーブル９には、ハッシュ値"Ｈａｓｈ＃１"が格納されていないため、判定部４は、受信したＩＰパケットをＩＰパケット終端部３に出力し、ＩＰパケット終端部３は、ＩＰパケットに格納されているインタレスト・パケットをＣＣＮ処理部２に出力する。また、ＩＰパケット終端部３は、返送先アドレス・フィールドに設定されている、通信装置１０のＩＰアドレスである、Ａｄｄ＃１０をＣＣＮ処理部２に通知する。
【００２９】
なお、通信装置３０は、ＣＣＮ２００とＣＣＮ３００間で送受信されるＣＣＮパケットではなく、通信装置３０が最終的な目的地であるＩＰパケットも受信する。このＩＰパケットの宛先アドレスは、通信装置３０のアドレスであるが、このＩＰパケットにはＣＣＮパケットが格納されてはいない。よって、ＩＰパケット終端部３は、判定部４から入力されるＩＰパケットにＣＣＮパケットが格納されている場合には、当該ＣＣＮパケットをＣＣＮ処理部２に出力するが、ＣＣＮパケットが格納されていない場合には、図示しない処理部にＩＰパケットのペイロードを出力して自装置で処理する。なお、ＣＣＮパケットが格納されているか否かは、例えば、ＩＰヘッダにおいて示す構成とすることができる。
【００３０】
ＣＣＮ処理部２は、ＦＩＢ８に基づき当該インタレスト・パケットの転送先インタフェースを判定する。本例では、ＦＩＢ８には、ＣＣＮインタフェース部１のインタフェースが示されており、ＣＣＮ処理部２は、このインタフェースを介してインタレスト・パケットをＣＣＮ３００に転送する。また、ＰＩＴ７には、このインタレスト・パケットの応答として受信するデータ・パケットの送信先として、ＩＰパケット終端部３が通知する通信装置１０のＩＰアドレスを記載する。図６は、このときの通信装置３０のＰＩＴ７を示している。
【００３１】
続いて、通信装置３０のＣＣＮ処理部２は、先に送信したインタレスト・パケットの応答として、ＣＣＮ３００からＣＣＮインタフェース部１のインタフェースを介してデータ・パケットを受信する。ＣＣＮ処理部２は、ＰＩＴ７に基づき、当該データ・パケットの返送先インタフェースを判定する。ここで、通常、ＰＩＴ７には、インタフェースを示す値が格納されているが、前述したように、本例において、当該データ・パケットの返送先としては、通信装置１０のＩＰアドレスが格納されている。ＦＩＢ８での説明と同様に、本実施形態において、データ・パケットの転送先が、ＣＣＮインタフェース部１のインタフェースである場合、ＰＩＴ７の転送先には、インタフェースを特定する情報が格納される。一方、データ・パケットの転送先が、オープンフロー・インタフェース部６のインタフェース、つまり、データ・パケットをネットワーク１００で転送する場合には、ＰＩＴ７の転送先には、ＩＰアドレスが格納される。したがって、ＣＣＮ処理部２は、ＰＩＴ７の転送先としてＩＰアドレスが格納されている場合、当該データ・パケットをＩＰパケット終端部３に出力する。なお、このとき、ＣＣＮ処理部２は、ＰＩＴ７が示すＩＰアドレス、つまり、本例においては通信装置１０のＩＰアドレスであるＡｄｄ＃１０をＩＰパケット終端部３に通知する。ＩＰパケット終端部３は、図３（Ｂ）に示すＩＰパケットを生成する。ここで、ＩＰヘッダの宛先アドレスには、ＣＣＮ処理部２から通知されたＩＰアドレス、つまり、本例では、通信装置１０のＩＰアドレスを格納する。
【００３２】
ＩＰパケット終端部３が生成したＩＰパケットは、判定部４を介してオープンフロー処理部５に送信される。オープンフロー処理部５は、ＩＰパケットのＩＰアドレスに基づき、当該ＩＰパケットを通信装置１０に送信する。なお、このＩＰパケットの宛先アドレスは、通信装置１０を示しているため、通信装置２０においては、オープンフロー処理部５において単なる転送処理のみが行われる。
【００３３】
通信装置１０は、通信装置３０から受信したＩＰアドレスの宛先アドレスが自装置を示しているため、このＩＰパケットを判定部４に出力する。このＩＰパケットには、ハッシュ値フィールドが含まれていないため、判定部４は、このＩＰパケットをＩＰパケット終端部３に出力する。このＩＰパケットには、データ・パケット、つまり、ＣＣＮパケットが含まれているため、ＩＰパケット終端部３は、このＩＰパケットからデータ・パケットを取出してＣＣＮ処理部２に出力する。ＣＣＮ処理部２は、ＰＩＴ７に基づき、ＣＣＮインタフェース部１のインタフェースから、当該データ・パケットを送信する。
【００３４】
続いて、ハッシュ値テーブル９の作成について説明する。ＣＣＮにおいては、ＦＩＢ８が保持される。ここで、ハッシュ値テーブル９は、同じ装置が保持するＦＩＢ８から生成できる。つまり、ハッシュ値テーブル９は、ＦＩＢ８の各エントリの内、その転送先にＩＰアドレスが設定されているエントリのオブジェクト名をハッシュ値に変換し、転送先には同じＩＰアドレスを設定したものである。なお、この場合、インタレスト・パケットは、ＣＣＮ２００に接続する通信装置からＣＣＮ３００に接続する通信装置の間に有る総ての通信装置において、判定部４におけるハッシュ値テーブル９を用いたＩＰヘッダの宛先アドレスの変換が行われ、転送される。しかしながら、本実施形態において、返送先アドレス・フィールドにより、データ・パケットは、ＣＣＮ３００に接続する通信装置からＣＣＮ２００に接続する通信装置に直接送信され、間にある通信装置においては、オープンフロー処理部５による処理のみが行われる。したがって、データ・パケットを高速に転送することができる。また、インタレスト・パケットについても、中間の通信装置において、ＣＣＮ処理部２での処理を要しないため、通常のＣＣＮより高速に転送できる。
【００３５】
また、本実施形態のネットワーク１００において、図示しない制御装置は、本実施形態との通信装置との間で通常のオープンフローの処理を行うのみであり、制御装置の処理負荷が増大することはない。なお、例えば、通信装置１０のＦＩＢ８において、"／ＫＤＤＩ．ｃｏｍ／Ａ"の転送先としてＣＣＮ３００と接続する通信装置３０のＩＰアドレスを設定する構成とすることもできる。この場合、インタレスト・パケットについても中間の通信装置における判定部４での処理を省略でき高速に転送を行うことができる。
【００３６】
また、本発明による通信装置は、コンピュータを上記通信装置として動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。
【符号の説明】
【００３７】
１：ＣＣＮインタフェース部、２：ＣＣＮ処理部、３：ＩＰパケット終端部、４：判定部、５：オープンフロー処理部、６：オープンフロー・インタフェース部、７：ＰＩＴ、８：ＦＩＢ、９：ハッシュ値テーブル
【図１】
0006474710.tif 000002
【図２】
0006474710.tif 000003
【図３】
0006474710.tif 000004
【図４】
0006474710.tif 000005
【図５】
0006474710.tif 000006
【図６】
0006474710.tif 000007