(57)【要約】【課題】ノードが転送処理のために保持する情報量を削減する。【解決手段】制御装置は、コンテンツ名とコンテンツ名で識別されるコンテンツの取得要求の出力先となるポートとの組み合わせを記憶する複数の転送装置を制御し、検索部、生成部、通信部を備える。検索部は、複数の転送装置の少なくとも一部を通るループ経路を検索する。生成部は、ループ経路を介して取得可能なコンテンツに対する組み合わせを、共通識別情報とループ経路を使用する際の出力ポートを対応付けた情報に置き換えることを、ループ経路に含まれる転送装置の各々に要求する制御パケットを生成する。ここで、共通識別情報は、ループ経路を介して取得可能なコンテンツを識別するコンテンツ名に共通する情報である。通信部は、ループ経路に含まれる転送装置の各々に、制御パケットを送信する。【選択図】図２
2018098765.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツ名と前記コンテンツ名で識別されるコンテンツの取得要求の出力先となるポートとの組み合わせを記憶する複数の転送装置を制御する制御装置であって、
前記複数の転送装置の少なくとも一部を通るループ経路を検索する検索部と、
前記ループ経路を介して取得可能なコンテンツに対する前記組み合わせを、前記ループ経路を介して取得可能なコンテンツを識別するコンテンツ名に共通する共通識別情報と、前記ループ経路を使用する際の出力ポートを対応付けた情報に置き換えることを、前記ループ経路に含まれる転送装置の各々に要求する制御パケットを生成する生成部と、
前記ループ経路に含まれる転送装置の各々に、前記制御パケットを送信する通信部
を備えることを特徴とする制御装置。
【請求項２】
前記生成部は、前記ループ経路に含まれている転送装置の各々について、前記共通識別情報を含むコンテンツ名で識別されるコンテンツのうち、当該転送装置に直接接続されているサーバに格納されているコンテンツ以外のコンテンツを、当該転送装置が前記ループ経路を介して取得可能なコンテンツとして特定する
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記生成部は、前記ループ経路に含まれていない転送装置の各々について、
当該転送装置から前記ループ経路に含まれる転送装置の何れかに至る通信経路を特定し、
当該転送装置に対して、前記共通識別情報を含むコンテンツ名で識別されるコンテンツのうち、当該転送装置に直接接続されているサーバに格納されているコンテンツ以外のコンテンツに関する前記組み合わせを、前記通信経路を用いた通信を行う際に用いる出力ポートに前記共通識別情報を対応付けた情報に置き換えることを要求する他の制御パケットを生成し、
前記通信部は、前記他の制御パケットを送信する
ことを特徴とする請求項１または２に記載の制御装置。
【請求項４】
パケットを転送可能な転送装置であって、
コンテンツ名と前記コンテンツ名で識別されるコンテンツの取得要求の出力先となるポートとの組み合わせを記憶する記憶部と、
前記転送装置を含むループ経路を介して取得可能なコンテンツに対する前記組み合わせについて、前記ループ経路を介して取得可能なコンテンツを識別するコンテンツ名に共通する共通識別情報と前記ループ経路を使用する際の出力ポートを対応付けた情報に置き換えることを要求する制御パケットを受信すると、前記記憶部の情報を更新する更新部と、
コンテンツの取得を要求するメッセージを受信すると、前記記憶部に記憶された情報を用いて特定される出力先に、前記メッセージを転送する通信部
を備えることを特徴とする転送装置。
【請求項５】
パケットを転送可能な転送装置であって、
コンテンツ名と前記コンテンツ名で識別されるコンテンツの取得要求の出力先となるポートとの組み合わせを記憶する記憶部と、
前記転送装置を含むループ経路に接続している接続ポートが通知されると、前記記憶部に記憶されている前記組み合わせのうち、前記転送装置に接続されたサーバに記憶されていないコンテンツに対する前記組み合わせを、前記サーバに記憶されていないコンテンツを識別する識別情報に共通する共通識別情報と前記接続ポートを対応付けた情報で更新する更新部と、
コンテンツの取得を要求するメッセージを受信すると、前記記憶部に記憶された情報を用いて特定される出力先に、前記メッセージを転送する通信部
を備えることを特徴とする転送装置。
【請求項６】
コンテンツ名と前記コンテンツ名で識別されるコンテンツの取得要求の出力先となるポートとの組み合わせを記憶する複数の転送装置を制御する制御装置が、
前記複数の転送装置の少なくとも一部を通るループ経路を検索し、
前記ループ経路を介して取得可能なコンテンツに対する前記組み合わせを、前記ループ経路を介して取得可能なコンテンツを識別するコンテンツ名に共通する共通識別情報と、前記ループ経路を使用する際の出力ポートを対応付けた情報に置き換えることを、前記ループ経路に含まれる転送装置の各々に要求する制御パケットを生成し、
前記ループ経路に含まれる転送装置の各々に、前記制御パケットを送信する
処理を行うことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の転送装置を含むネットワーク中の通信に関する。
【背景技術】
【０００２】
近年のインターネットでは、ビデオコンテンツなどの大容量のコンテンツが全体のトラフィックに占める割合が大きくなってきている。ＩＰ（Internet  Protocol）ネットワークでは、コンテンツを保持しているサーバの名前から、名前解決サーバを用いて、コンテンツを保持しているサーバに割り当てられたＩＰアドレスを検索する。コンテンツを取得しようとする装置は、得られたＩＰアドレスを用いて、コンテンツを保持しているサーバにアクセスしてコンテンツを取得する。このように、ＩＰネットワークでは、コンテンツの取得の際に、コンテンツ取得に使用する情報を得るための通信を行うための処理が発生する。
【０００３】
そこで、情報指向ネットワークが注目を集めている。情報指向ネットワークでは、コンテンツ名を識別情報としてデータの転送を要求するメッセージや、コンテンツのデータ等が転送される。このため、情報指向ネットワークは、コンテンツの取得の際には、ＩＰネットワークよりも効率的であると考えられている。
【０００４】
図１は、情報指向ネットワークの例を説明する図である。図１では、各ノードのポート番号を、＃に続けて記載している。図１は、情報指向ネットワークの一方式であるＮＤＮ（Named  Data  Networking）での通信の例である。ネットワーク中の各ノードは、コンテンツ名とそのコンテンツを取得する際に使用する出力ポートを対応付けたテーブル（Forwarding  Information  Base）を記憶している。コンテンツを要求する装置は、コンテンツ名を含むコンテンツ要求メッセージ（Interest  Packet）を生成し、テーブル中のエントリのうち、コンテンツ名に最長一致するエントリ中のポートからコンテンツ要求メッセージを送信する。
【０００５】
例えば、図１のノードＣが、コンテンツ名＝／ａ／ａのコンテンツを要求するために、コンテンツ要求メッセージＭ１を生成したとする。図１の例では、ノードＡ〜Ｅの各々が保持するテーブルには、コンテンツ名＝／ａ／ａにポート＃１が対応付けられているので、ノードＣは、コンテンツ要求メッセージＭ１をポート＃１から送信する（矢印Ａａ）。
【０００６】
ノードＢは、コンテンツ要求メッセージＭ１をポート＃２から受信すると、コンテンツ名に対応付けて、コンテンツ要求メッセージＭ１の受信ポート（ポート＃２）を記憶する。ノードＢでも、コンテンツ要求メッセージＭ１で要求されているコンテンツ名がポート＃１に対応付けられている。そこで、ノードＢは、コンテンツ要求メッセージＭ１をポート＃１から出力する（矢印Ａｂ）。
【０００７】
ノードＡは、コンテンツ要求メッセージＭ１をポート＃３から受信すると、コンテンツ名に対応付けて、コンテンツ要求メッセージＭ１の受信ポート（ポート＃３）を記憶する。ノードＡでも、コンテンツ要求メッセージＭ１で要求されているコンテンツ名がポート＃１に対応付けられているので、ノードＡは、コンテンツ要求メッセージＭ１をポート＃１から出力する（矢印Ａｃ）。この結果、コンテンツ要求メッセージＭ１は、コンテンツ名＝／ａ／ａのコンテンツを保持しているサーバ５に到達する。
【０００８】
サーバ５は、コンテンツ名＝／ａ／ａのコンテンツを含むパケットを生成し、生成したパケットを、コンテンツ要求メッセージＭ１を受信したポートから出力する。ノードＡ、Ｂの各々も、コンテンツを含むパケットを受信するとコンテンツ要求メッセージＭ１の受信ポートから、コンテンツを含むパケットを送信する。このため、コンテンツ要求メッセージＭ１を送信したノードＣは、コンテンツを含むパケットを受信することができる。
【０００９】
関連する技術として、コンテンツを１つ以上のオブジェクトに分割して配信する配信ネットワークにおいて、クライアント装置が送信する要求メッセージを削減するための方法が提案されている（例えば、特許文献１）。この通信方法では、クライアント装置は、オブジェクト名に共通のプレフィックスを有する複数のオブジェクト名を示す情報を含む要求メッセージを送信する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１６−１１５２０９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
ＮＤＮを用いたシステムでは、コンテンツ名とそのコンテンツを取得する際に使用する出力ポートの組み合わせを、コンテンツごとに保持している。このため、コンテンツ数が増えるたびに、ネットワーク中の各ノードが記憶する情報数が増大してしまうという問題がある。
【００１２】
本発明では、１つの側面では、ノードが転送処理のために保持する情報量を削減することを目的とする。
【課題を解決するための手段】
【００１３】
ある１つの態様にかかる制御装置は、コンテンツ名と前記コンテンツ名で識別されるコンテンツの取得要求の出力先となるポートとの組み合わせを記憶する複数の転送装置を制御し、検索部、生成部、通信部を備える。検索部は、前記複数の転送装置の少なくとも一部を通るループ経路を検索する。生成部は、前記ループ経路を介して取得可能なコンテンツに対する前記組み合わせを、共通識別情報と前記ループ経路を使用する際の出力ポートを対応付けた情報に置き換えることを、前記ループ経路に含まれる転送装置の各々に要求する制御パケットを生成する。ここで、共通識別情報は、前記ループ経路を介して取得可能なコンテンツを識別するコンテンツ名に共通する情報である。通信部は、前記ループ経路に含まれる転送装置の各々に、前記制御パケットを送信する。
【発明の効果】
【００１４】
ノードが転送処理のために保持する情報量を削減できる。
【図面の簡単な説明】
【００１５】
【図１】情報指向ネットワークの例を説明する図である。
【図２】実施形態にかかる通信方法の例を説明する図である。
【図３】制御装置の構成の例を説明する図である。
【図４】制御装置が保持する情報の例を説明する図である。
【図５】コンテンツ情報の例を説明する図である。
【図６】転送装置の構成の例を説明する図である。
【図７】制御装置と転送装置のハードウェア構成の例を説明する図である。
【図８】ネットワークの例を説明する図である。
【図９】情報転送テーブル情報の例を説明する図である。
【図１０】情報転送テーブルの設定の際に使用される制御パケットの例を説明する図である。
【図１１】情報転送テーブルの更新例を説明する図である。
【図１２】情報転送テーブルの更新後の要求メッセージの送信例を説明する図である。
【図１３】情報転送テーブルの更新後のデータの送信例を説明する図である。
【図１４】制御装置の処理の例を説明するフローチャートである。
【図１５】第２の実施形態でのループの検索例と情報転送テーブル情報の更新例を説明する図である。
【図１６】情報転送テーブル情報の更新例を説明する図である。
【図１７】情報転送テーブル情報の更新例を説明する図である。
【図１８】第２の実施形態でのループの検索例と情報転送テーブルの更新例を説明する図である。
【図１９】制御装置の処理の例を説明するフローチャートである。
【図２０】第３の実施形態にかかる転送装置の構成の例を説明する図である。
【図２１】制御装置の処理の例を説明するフローチャートである。
【図２２】転送装置の処理の例を説明するフローチャートである。
【図２３】情報転送テーブルの例を説明する図である。
【図２４】第４の実施形態でのループの検索例と情報転送テーブル情報の更新例を説明する図である。
【図２５】情報転送テーブル情報の更新例を説明する図である。
【図２６】第４の実施形態でのループの検索例と情報転送テーブルの更新例を説明する図である。
【図２７】ループ経路の追加制御を説明する図である。
【図２８】第４の実施形態にかかる制御装置の処理の例を説明するフローチャートである。
【図２９】ループ経路の追加制御の別例を説明する図である。
【発明を実施するための形態】
【００１６】
図２は、実施形態にかかる通信方法の例を説明する図である。図２の例では、制御装置１０（図示せず）は、ネットワーク中に含まれる複数の転送装置４０（転送装置Ａ〜Ｅ）を制御する。各転送装置４０は、ネットワーク中のいずれかのサーバ装置に新たなコンテンツが追加されるたびに、コンテンツ名と、そのコンテンツ名で識別されるコンテンツの取得要求の出力先のポートの組み合わせを記憶する。このため、ネットワークに含まれるサーバ装置に複数のコンテンツが保持されている場合、各転送装置４０は、コンテンツと同数の組み合わせを記憶する。例えば、ネットワーク中のいずれかのサーバ装置中に／ａ／ａ、／ａ／ｂ、／ａ／ｃ、／ａ／ｄ、／ａ／ｅの各々で識別されるコンテンツが保持されている場合、転送装置Ａは、テーブルＴ１に示すように、５つの組み合わせを記憶している。転送装置Ｂ〜Ｅも同様に、各コンテンツについて、コンテンツ名とそのコンテンツの取得要求の出力ポートの組み合わせを記憶する。
【００１７】
制御装置１０は、ネットワーク中の転送装置４０を通るループ経路を検索する。例えば、制御装置１０は、ネットワーク中のトポロジ情報を用いてハミルトン閉路問題を解くことにより、ループ経路を検索できる。制御装置１０は、ループ経路を発見すると、各転送装置４０について、ループ経路を介して取得可能なコンテンツを特定する。制御装置１０は、各転送装置４０に対して、その転送装置４０に直接接続しているサーバ５に格納されていないコンテンツを、ループ経路を介して取得できるコンテンツとして特定する。一方、制御装置１０は、各転送装置４０に対して、その転送装置４０に直接接続しているサーバ５に格納されているコンテンツを、ループ経路を介さずに取得できるコンテンツであると判定する。制御装置１０は、ループ経路を介して取得できるコンテンツに対するコンテンツ名と出力ポートの組み合わせを、共通識別情報とループ経路を使用する場合の出力ポートを対応付けた情報で置換することを決定する。ここで、共通識別情報は、ループ経路を介して取得可能なコンテンツを識別するコンテンツ名に共通する情報である。
【００１８】
例えば、図２に示すネットワークについて、矢印Ａ１０１〜Ａ１０５で示すように、転送装置Ａ、転送装置Ｂ、転送装置Ｃ、転送装置Ｄ、転送装置Ｅを含むループ経路が発見されたとする。すると、制御装置１０は、転送装置Ａについて、／ａ／ａで識別されるコンテンツを、ループ経路を介さずに取得できるが、／ａ／ｂ、／ａ／ｃ、／ａ／ｄ、／ａ／ｅの各々で識別されるコンテンツはループ経路を介して取得できると判定する。さらに、転送装置Ａがループ経路を用いて取得可能なコンテンツを識別するコンテンツ名から、共通識別情報が「／ａ」に決定されたとする。制御装置１０は、転送装置Ｂ〜Ｅについても同様に判定処理を行う。
【００１９】
制御装置１０は、各転送装置４０に対して、その転送装置４０が記憶している情報を、共通識別情報を用いた情報に置換する処理を要求するための制御パケットを生成する。各転送装置４０は、制御装置１０からの制御パケットに従って、コンテンツ名と出力ポートの組み合わせを、共通識別情報を含む情報に置換する。例えば、転送装置Ａに、／ａ／ｂ、／ａ／ｃ、／ａ／ｄ、／ａ／ｅの各々を含む組み合わせを、共通識別情報（／ａ）と出力ポート＝ポート＃３という情報に置き換えることを要求する制御パケットが送信されたとする。すると、転送装置Ａは、制御パケットに従ってテーブルＴ１をテーブルＴ２に更新する。その後、転送装置Ａは、テーブルＴ２を用いてパケットの転送処理を行う。すなわち、転送装置Ａは、コンテンツ名＝／ａ／ａのコンテンツを要求するパケットはポート＃１から出力するが、／ａ／ａ以外で、／ａを含むコンテンツ名で識別されるコンテンツの取得要求などは、ポート＃３から出力する。このため、転送装置Ａは、矢印Ａ１０１〜Ａ１０５で示すループの一部を介して、／ａを含むコンテンツ名で識別される／ａ／ａ以外のコンテンツを取得できる。
【００２０】
換言すると、転送装置Ａでは、／ａ／ａ以外の複数のコンテンツを取得するために使用する経路が、ループ経路を介した経路として統合されていることになる。このように、複数のコンテンツの取得経路が統合されたことに伴って、転送装置Ａが保持する転送処理のための情報は、テーブルＴ１に示す状態から、テーブルＴ２に示す状態に更新される。従って、転送装置Ａが転送処理のために保持する情報の量が削減される。
【００２１】
図２を参照しながら、転送装置Ａでの処理の具体例を述べたが、ネットワーク中のループ経路に含まれる他の転送装置４０でも、転送装置Ａと同様の処理が行われる。従って、実施形態にかかる方法を用いると、ネットワーク中の転送装置４０が転送処理のために保持する情報の量を削減できる。
【００２２】
なお、図２を参照しながら説明した方法は一例である。例えば、後述するように、制御装置１０がループ経路の検索結果を転送装置に通知すると、転送装置が自律的に、複数のコンテンツの取得のための情報を、ループ経路を介した経路の情報に統合しても良い。さらに、図２に示すネットワークは一例であって、ネットワーク中の転送装置や転送装置がアクセス可能なコンテンツの数は、実装に応じて任意に変更され得る。
【００２３】
＜装置構成＞
図３は、制御装置１０の構成の例を説明する図である。制御装置１０は、通信部１１、制御部２０、記憶部３０を備える。制御部２０は、取得処理部２１、検索部２２、生成部２３を有する。記憶部３０は、トポロジ情報３１、情報転送テーブル情報３２、コンテンツ情報３３を保持する。トポロジ情報３１、情報転送テーブル情報３２、コンテンツ情報３３の例は、図４、図５を参照しながら説明する。
【００２４】
通信部１１は、ネットワーク中の転送装置４０との間で制御メッセージなどのパケットの送受信を行う。取得処理部２１は、ネットワーク中の転送装置４０が保持する情報転送テーブル６１（図６）を取得するための処理を行う。取得処理部２１は、情報転送テーブル６１の更新を行うトリガが発生すると、検索部２２にループ経路の検索を要求する。情報転送テーブル６１の更新を行うトリガは、例えば、転送装置４０が保持する情報転送テーブル６１中に含まれるエントリ数が閾値を超えたことであっても良く、また、オペレータから制御装置１０への入力が発生したことなどであっても良い。検索部２２は、トポロジ情報３１を用いて、複数の転送装置４０を通るループ経路を検索する。検索部２２は、例えば、ネットワーク中の転送装置４０を１回だけ通るループ経路を、転送装置４０を頂点としたハミルトン閉路問題として、求めることができる。生成部２３は、検索部２２で得られた検索結果、情報転送テーブル情報３２、コンテンツ情報３３などを用いて、各転送装置４０に対して、その転送装置４０が保持する情報転送テーブル６１の更新を要求するための制御パケットを生成する。
【００２５】
図４は、制御装置１０が保持する情報の例を説明する図である。トポロジ情報３１は、ネットワーク中に含まれている転送装置４０の各ポートについて、そのポートに接続されている装置のポートを対応付けている。例えば、転送装置Ａのポート＃３は、転送装置Ｂのポート＃１に接続されている。また、転送装置Ａのポート＃２は転送装置Ｅのポート＃１に接続され、転送装置Ｂのポート＃２は転送装置Ｃのポート＃１に接続されている。さらに、転送装置Ｂのポート＃３は転送装置Ｅのポート＃３に接続されている。
【００２６】
情報転送テーブル情報３２は、各転送装置４０が転送処理のために記憶している情報を、１つのテーブルにまとめた情報である。各エントリには、コンテンツ名とそのコンテンツ名を含むコンテンツの取得要求を出力する出力ポートの組み合わせが、その組み合わせを記憶している転送装置４０の識別情報に対応付けられている。制御装置１０は、定期的に転送装置４０と通信することにより、情報転送テーブル情報３２を更新する。
【００２７】
図４に示す情報転送テーブル情報３２−１は、複数のコンテンツに対する経路の統合処理が行われる前に制御装置１０が保持している情報転送テーブル情報３２の例である。情報転送テーブル情報３２−１によると、転送装置Ａは、コンテンツ名＝／ａ／ａで識別されるコンテンツに対する取得要求をポート＃１から出力する。情報転送テーブル情報３２−１には、さらに、コンテンツ名＝／ａ／ｂかコンテンツ名＝／ａ／ｃで識別されるコンテンツに対する取得要求を、転送装置Ａがポート＃３から出力することが記録されている。情報転送テーブル情報３２−１には、コンテンツ名＝／ａ／ｄかコンテンツ名＝／ａ／ｅで識別されるコンテンツに対する取得要求を、転送装置Ａがポート＃２から出力することも記録されている。同様に、転送装置Ｂなどの他の転送装置４０で使用される情報なども情報転送テーブル情報３２に記録されている。情報転送テーブル情報３２−１の６番目のエントリには、転送装置Ｂがコンテンツ名＝／ａ／ａで識別されるコンテンツに対する取得要求をポート＃１から出力することが記録されている。
【００２８】
図５は、コンテンツ情報３３の例を説明する図である。コンテンツ情報３３には、ネットワーク中の転送装置４０がアクセス可能なコンテンツの各々について、コンテンツ名と、そのコンテンツが保持されているサーバに接続されている転送装置４０のポートを特定する情報が対応付けられている。図５に示すコンテンツ情報３３では、コンテンツ名、転送装置、ポートが互いに対応付けられている。転送装置の欄には、エントリ中のコンテンツが保持されているサーバに接続されている転送装置４０の識別情報が格納される。ポートの欄には、エントリ中の識別情報で識別される転送装置４０が備えるポートのうち、エントリ中のコンテンツが保持されているサーバに接続されているポートの番号が格納される。
【００２９】
例えば、図５中のコンテンツ情報３３の１番目のエントリには、コンテンツ名＝／ａ／ａで識別されるコンテンツは、転送装置Ａのポート＃１に接続されているサーバに格納されていることが記録されている。同様に、２番目のエントリには、コンテンツ名＝／ａ／ｂで識別されるコンテンツは、転送装置Ｂのポート＃４に接続されているサーバに格納されていることが記録されている。また、３番目のエントリから、コンテンツ名＝／ａ／ｃで識別されるコンテンツは、転送装置Ｃのポート＃２に接続されているサーバに格納されていることが特定される。４番目のエントリからは、コンテンツ名＝／ａ／ｄで識別されるコンテンツが転送装置Ｄのポート＃２に接続されているサーバに格納されていることが特定される。
【００３０】
図６は、転送装置４０の構成の例を説明する図である。転送装置４０は、通信部４１、制御部５０、記憶部６０を備える。通信部４１は、送信部４２と受信部４３を備え、さらに、送信部４２や受信部４３に使用されるポート（Ｐ１〜Ｐｎ）も備えている。各ポートは、通信部４１と送信部４２の各々に接続されている。図６の例では、図を見やすくするために、出力ポートと入力ポートを分けて示しているが、各ポートのポート番号はＰに続く数値で特定される。例えば、Ｐ１は転送装置４０中のポート＃１であり、Ｐｎはポートｎ（ｎは整数）である。制御部５０は、転送処理部５１とテーブル更新部５２を有する。記憶部６０は、情報転送テーブル６１とペンディングインタレストテーブル６２を格納する。
【００３１】
情報転送テーブル６１は、コンテンツ名とそのコンテンツ名で識別されるコンテンツの取得要求を出力する出力先のポートの番号を対応付けている。なお、情報転送テーブル６１の情報は、定期的に制御装置１０に通知され、制御装置１０において、情報転送テーブル情報３２として記憶されている。ペンディングインタレストテーブル６２は、転送装置４０が取得要求を出力した後、コンテンツを返送していない取得要求について、その取得要求の受信ポートと取得要求に含まれているコンテンツ名を対応付ける情報である。情報転送テーブル６１やペンディングインタレストテーブル６２の例は後述する。
【００３２】
送信部４２は、パケットを他の転送装置４０、制御装置１０、サーバなどの他の装置に送信する。受信部４３は、他の転送装置４０、制御装置１０、サーバなどの他の装置からパケットを受信する。
【００３３】
転送処理部５１は、情報転送テーブル６１やペンディングインタレストテーブル６２を用いて、パケットの転送に使用するポートを特定するなど、パケットの転送のための処理を行う。テーブル更新部５２は、情報転送テーブル６１やペンディングインタレストテーブル６２の更新処理を行う。
【００３４】
図７は、制御装置１０と転送装置４０のハードウェア構成の例を説明する図である。制御装置１０と転送装置４０のいずれも、プロセッサ１０１、メモリ１０２、バス１０３、ネットワーク接続装置１０４を有する。プロセッサ１０１は、任意の処理回路であり、例えば、ＣＰＵ（Central  Processing  Unit）とすることができる。プロセッサ１０１は、メモリ１０２をワーキングメモリとして使用して、プログラムを実行することにより、様々な処理を実行する。メモリ１０２には、ＲＡＭ（Random  Access  Memory）が含まれ、さらに、ＲＯＭ（Read  Only  Memory）等の不揮発性のメモリも含まれる。メモリ１０２は、プログラムやプロセッサ１０１での処理に使用されるデータの格納に使用される。ネットワーク接続装置１０４は、ネットワークを介した他の装置との通信に使用される。バス１０３は、プロセッサ１０１、メモリ１０２、ネットワーク接続装置１０４を、互いにデータの入出力が可能になるように接続する。
【００３５】
制御装置１０において、プロセッサ１０１は制御部２０として動作し、メモリ１０２は記憶部３０として動作する。さらに、ネットワーク接続装置１０４は、通信部１１として動作する。なお、図７には図示していないが、制御装置１０は、さらに、オペレータが指示などを入力するための入力装置や、制御装置１０が保持している情報をオペレータが視認可能になるように表示するための表示装置などを保持していていてもよい。入力装置は、例えば、キーボードなどであり、表示装置は例えばディスプレイなどである。
【００３６】
転送装置４０において、プロセッサ１０１は制御部５０として動作し、メモリ１０２は記憶部６０として動作する。さらに、ネットワーク接続装置１０４は、通信部４１として動作する。
【００３７】
＜第１の実施形態＞
図８は、ネットワークの例を説明する図である。図８の例では、ネットワーク中に複数の転送装置４０（転送装置Ａ〜Ｅ）、複数のサーバ５（５ａ〜５ｅ）、制御装置１０（図示せず）が含まれている。制御装置１０は、ネットワーク中の転送装置４０の各々との間で、制御用のポート等を用いて接続を確立しているとする。なお、制御装置１０および制御装置１０と転送装置の間の接続は、図を見やすくするために図８には示していない。以下、図８に示すネットワークを例として、第１の実施形態で行われる処理の例を説明する。以下の説明では、いずれの転送装置４０に関する説明であるかを分かりやすくするために、符号の後にその転送装置４０の符号の末尾のアルファベットの小文字を示すことがある。例えば、情報転送テーブル６１ａは転送装置Ａが保持する情報転送テーブル６１であり、転送処理部５１ａは転送装置Ａ中の転送処理部５１である。
【００３８】
図８に示すネットワークでは、サーバ５ａはコンテンツ／ａ／ａを保持し、サーバ５ｂはコンテンツ／ａ／ｂを保持しているとする。サーバ５ｃはコンテンツ／ａ／ｃを保持し、サーバ５ｄはコンテンツ／ａ／ｄを保持している。さらに、サーバ５ｅはコンテンツ／ａ／ｅを保持しているとする。ネットワークが図８に示す通りである場合に制御装置１０が保持するコンテンツ情報３３の例は図５に示す通りである。同様に、ネットワークが図８に示す通りである場合に制御装置１０が保持するトポロジ情報３１の例は図４に示す通りである。なお、図４のトポロジ情報３１には、全ての接続が示されていないが、トポロジ情報３１には、図８に示すネットワーク中の全ての接続関係が記録されている。
【００３９】
図８は、各転送装置４０が保持する情報転送テーブル６１の例も示す。図８に示す段階では、各転送装置４０は、全てのコンテンツについて、コンテンツ名と出力ポートの組み合わせを別個に情報転送テーブル６１中に記憶している。例えば、図８の時点において、転送装置Ａの転送処理部５１ａは、情報転送テーブル６１ａ−１を保持している。このため、図８の時点では、転送装置Ａは、コンテンツ／ａ／ａの取得要求をポート＃１から出力する。同様に、転送装置Ａは、コンテンツ／ａ／ｂとコンテンツ／ａ／ｃの取得要求をポート＃３から出力し、コンテンツ／ａ／ｄとコンテンツ／ａ／ｅの取得要求をポート＃２から出力する。他の転送装置４０も同様に、その転送装置４０が保持する情報転送テーブル６１に従って取得要求の出力先を決定する。例えば、転送装置Ｂは情報転送テーブル６１ｂ−１に従って取得要求の出力先を決定し、転送装置Ｃは情報転送テーブル６１ｃ−１に従って取得要求の出力先を決定する。同様に、転送装置Ｄは情報転送テーブル６１ｄ−１に従って取得要求の出力先を決定し、転送装置Ｅは情報転送テーブル６１ｅ−１に従って取得要求の出力先を決定している。
【００４０】
制御装置１０の取得処理部２１は、転送装置Ａ〜Ｅの各々に対して、情報転送テーブル６１の情報の通知を要求する制御パケットを生成し、通信部１１経由で各転送装置４０に制御パケットを送信する。
【００４１】
転送装置Ａの受信部４３ａは、制御パケットを受信すると、転送処理部５１ａに出力する。転送処理部５１ａは、制御パケットが自装置宛のパケットであるため、制御パケットを転送せずに、テーブル更新部５２ａに出力する。テーブル更新部５２ａは、情報転送テーブル６１の転送を要求する制御パケットを取得すると、情報転送テーブル６１ａ−１の情報を含むパケットを生成する。情報転送テーブル６１ａ−１の情報を含むパケットは、送信部４２ａを介して、制御装置１０に送信される。
【００４２】
制御装置１０の通信部１１は、情報転送テーブル６１ａ−１の情報を含むパケットを受信すると、受信したパケットを取得処理部２１に出力する。取得処理部２１は、得られた情報を、情報転送テーブル情報３２に記録する。
【００４３】
制御装置１０は、転送装置Ｂ〜Ｅとの間でも、転送装置Ａとの間の処理と同様に情報転送テーブル６１の情報の取得を行う。このため、図８の時点では、制御装置１０は、情報転送テーブル６１ａ−１〜６１ｅ−１の全ての情報を含む情報転送テーブル情報３２−１（図４）を保持している。なお、図４には、情報転送テーブル情報３２−１中の全ての情報が記載されていないが、情報転送テーブル情報３２−１には、各転送装置４０が保持する情報転送テーブル６１の全ての情報が記録されている。
【００４４】
取得処理部２１は、各転送装置４０が情報転送テーブル６１中に保持するコンテンツ名と出力ポートの組み合わせの数を、定期的に閾値Ｔｈと比較する。閾値Ｔｈは、情報転送テーブル６１の更新を行うかを判定するために、情報転送テーブル６１中に記録されている組み合わせの数と比較する閾値である。例えば、閾値Ｔｈ＝３であり、１つの転送装置４０が保持するエントリ数が閾値Ｔｈを超えると情報転送テーブル６１の更新を行うように、取得処理部２１が設定されているとする。図８の例では、各情報転送テーブル６１に含まれている組み合わせの数は５つであり、閾値Ｔｈを超えているので、取得処理部２１は、情報転送テーブル６１の更新を行うことを決定する。
【００４５】
取得処理部２１は、検索部２２に転送装置Ａ〜Ｅを含むループ経路の検索を要求する。検索部２２は、トポロジ情報３１（図４）を用いて、転送装置Ａ〜Ｅを含むループ経路を検索する。ループ経路の検索のための処理として、既知の任意の方法が用いられる。図８の例では、取得処理部２１は、矢印Ａ１〜Ａ５で示すように、転送装置Ａから転送装置Ｂ、転送装置Ｃ、転送装置Ｄ、転送装置Ｅを順に介して転送装置Ａに戻るループ経路を発見したとする。
【００４６】
次に、検索部２２は、経路を統合する処理の対象となるコンテンツを識別するコンテンツ名に共通する共通識別情報を取得する。共通識別情報は、検索部２２が情報転送テーブル情報３２−１（図４）を参照することによって決定してもよく、また、オペレータが情報転送テーブル情報３２−１を参照して決定した上で、制御装置１０に入力してもよい。以下の説明では、コンテンツ／ａ／ａ、コンテンツ／ａ／ｂ、コンテンツ／ａ／ｃ、コンテンツ／ａ／ｄ、コンテンツ／ａ／ｅへの経路が統合する対象として選択されたとする。この場合、統合する対象のコンテンツのコンテンツ名の間で、冒頭の／ａが共通しているので、／ａが共通識別情報に決定される。
【００４７】
検索部２２は、トポロジ情報３１（図４）とコンテンツ情報３３（図５）を用いて、転送装置Ａに接続されているサーバ５に保持されているコンテンツを特定する。この例では、検索部２２は、転送装置Ａに接続されているサーバ５ａにコンテンツ／ａ／ａが保持されていることを特定する。検索部２２は、転送装置Ａに接続されているサーバ５ａに格納されたコンテンツ／ａ／ａ以外のコンテンツを、転送装置Ａが矢印Ａ１〜Ａ５に示すループ経路の一部を介して取得可能であると判定する。そこで、検索部２２は、転送装置Ａが使用する出力ポートの情報を、コンテンツ／ａ／ａ以外のコンテンツについては、取得要求の出力先を、転送装置Ａのポートのうちでループ経路にパケットを出力可能なポートに設定する。図８の例では、転送装置Ａのポートのうちでループ経路にパケットを出力するポートは、ポート＃３である。そこで、検索部２２は、情報転送テーブル情報３２−１において、転送装置Ａでのコンテンツ／ａ／ａ以外のコンテンツの取得要求の出力先をポート＃３に置き換える。さらに、検索部２２は、転送装置Ａでのコンテンツ／ａ／ａ以外のコンテンツ名を共通識別情報に置き換える。このため、転送装置Ａが使用する転送経路を統合すると、転送装置Ａに設定される経路情報は以下に示すようになる。
コンテンツ／ａ／ａ    出力ポート：ポート＃１
コンテンツ／ａ        出力ポート：ポート＃３
【００４８】
検索部２２は、ループ経路に含まれている他の転送装置４０についても同様の処理を行う。
【００４９】
図９は、情報転送テーブル情報３２−２の例を説明する図である。情報転送テーブル情報３２−２は、検索部２２が転送装置Ａ〜Ｅの全てについて経路情報の統合を行った結果、得られた情報転送テーブル情報３２の例である。転送装置Ａに関する経路の情報は、図９では、上から１番目と２番目のエントリに示すように更新されている。
【００５０】
転送装置Ｂは、コンテンツ情報３３（図５）に記録されているように、コンテンツ／ａ／ｂを保持するサーバ５ｂに接続されている。このため、検索部２２は、転送装置Ｂでのコンテンツ／ａ／ｂ以外のコンテンツの取得要求の出力先を、ループ経路への出力ポートであるポート＃２に置き換える。さらに、転送装置Ｂでのコンテンツ／ａ／ｂ以外のコンテンツのコンテンツ名が共通識別情報に置き換えられる。このため、情報転送テーブル情報３２−２では、転送装置Ｂに関する情報が以下のように更新されている。
コンテンツ／ａ／ｂ    出力ポート：ポート＃４
コンテンツ／ａ        出力ポート：ポート＃２
【００５１】
同様に、転送装置Ｃは、コンテンツ／ａ／ｃを保持するサーバ５ｃに接続されている。このため、検索部２２は、転送装置Ｃでのコンテンツ／ａ／ｃ以外のコンテンツの取得要求の出力先を、ループ経路への出力ポートであるポート＃４に置き換え、コンテンツ／ａ／ｃ以外のコンテンツのコンテンツ名を共通識別情報に置き換える。このため、情報転送テーブル情報３２−２では、転送装置Ｃに関する情報が以下のように更新されている。
コンテンツ／ａ／ｃ    出力ポート：ポート＃２
コンテンツ／ａ        出力ポート：ポート＃４
【００５２】
転送装置Ｄは、コンテンツ／ａ／ｄを保持するサーバ５ｄに接続されている。このため、検索部２２は、転送装置Ｄでのコンテンツ／ａ／ｄ以外のコンテンツの取得要求の出力先を、ループ経路への出力ポートであるポート＃１に置き換え、コンテンツ／ａ／ｄ以外のコンテンツのコンテンツ名を共通識別情報に置き換える。このため、情報転送テーブル情報３２−２では、転送装置Ｄに関する情報が以下のように更新されている。
コンテンツ／ａ／ｄ    出力ポート：ポート＃２
コンテンツ／ａ        出力ポート：ポート＃１
【００５３】
転送装置Ｅは、コンテンツ／ａ／ｅを保持するサーバ５ｅに接続されている。このため、検索部２２は、転送装置Ｅでのコンテンツ／ａ／ｅ以外のコンテンツの取得要求の出力先を、ループ経路への出力ポートであるポート＃１に置き換え、コンテンツ／ａ／ｅ以外のコンテンツのコンテンツ名を共通識別情報に置き換える。このため、情報転送テーブル情報３２−２では、転送装置Ｅに関する情報が以下のように更新されている。
コンテンツ／ａ／ｅ    出力ポート：ポート＃５
コンテンツ／ａ        出力ポート：ポート＃１
情報転送テーブル情報３２の更新が終わると、生成部２３は、各転送装置４０に情報転送テーブル６１の更新を要求するための制御パケットを生成する。
【００５４】
図１０は、情報転送テーブルの設定の際に使用される制御パケットの例を説明する図である。図１０の例では、生成部２３は、制御パケットの宛先の転送装置４０が保持する情報転送テーブル６１に追加するエントリを指定するコマンドとしてａｄｄ＿ｅｎｔｒｙを用いる。ａｄｄ＿ｅｎｔｒｙコマンドに続けて、追加するエントリに含まれるコンテンツ名と出力ポートの指定が記載される。図１０の例では、コンテンツ名＝／ａに最大一致するコンテンツの取得要求の出力ポートをポート＃３に指定するために、以下の記述が使用されている。
ａｄｄ＿ｅｎｔｒｙ，ｎａｍｅ＝“／ａ”，ｏｕｔｐｏｒｔ＝“＃３”
【００５５】
一方、制御パケットの宛先の転送装置が保持する情報転送テーブル６１から削除するエントリを指定するコマンドとしてｄｅｌ＿ｅｎｔｒｙが用いられる。図１０の例では、コンテンツ名＝／ａ／ｂ、コンテンツ名＝／ａ／ｃ、コンテンツ名＝／ａ／ｄ、コンテンツ名＝／ａ／ｅの各々に対するエントリを情報転送テーブル６１ａ−１から削除させるために、以下のコマンドが記載されている。
ｄｅｌ＿ｅｎｔｒｙ，ｎａｍｅ＝“／ａ／ｂ”，ｎａｍｅ＝“／ａ／ｃ”，ｎａｍｅ＝“／ａ／ｄ”，ｎａｍｅ＝“／ａ／ｅ”
生成部２３は、生成したこれらのコマンドをデータに含む制御パケットを生成する。このとき、生成部２３は、コマンドの宛先とする転送装置４０のＩＰアドレス等を宛先に指定したＩＰヘッダを用いる。生成部２３は、生成した制御パケットを、通信部１１を介して各転送装置４０に送信する。
【００５６】
図１１は、情報転送テーブルの更新例を説明する図である。まず、転送装置Ａが図１０に記載した制御パケットを受信した場合について説明する。転送装置Ａの受信部４３ａは、制御装置１０から送信された制御パケットを受信する。テーブル更新部５２ａは、制御パケットに従って、情報転送テーブル６１ａ−１を更新する。すなわち、情報転送テーブル６１ａ−１に、コンテンツ名＝／ａの出力ポートがポート＃３であることを示すエントリを追加するとともに、コンテンツ名＝／ａ／ｂ、／ａ／ｃ、／ａ／ｄ、／ａ／ｅのエントリを削除する。このため、情報転送テーブル６１ａ−１は情報転送テーブル６１ａ−２に示すように更新される。
【００５７】
制御装置１０の生成部２３は、転送装置Ａ以外の転送装置４０に対しても、更新後の情報転送テーブル情報３２−２と各転送装置４０が保持する情報転送テーブル６１の情報を整合させるための制御パケットを生成する。制御パケットは、宛先となる転送装置４０に送信され、各転送装置４０は、制御パケットに従って情報転送テーブル６１を更新する。従って、転送装置Ｂは、情報転送テーブル６１ｂ−１（図８）を情報転送テーブル６１ｂ−２に示すように更新する。同様に、転送装置Ｃは情報転送テーブル６１ｃ−１（図８）を情報転送テーブル６１ｃ−２に示すように更新し、転送装置Ｄは情報転送テーブル６１ｄ−１（図８）を情報転送テーブル６１ｄ−２に示すように更新する。さらに、転送装置Ｅは、情報転送テーブル６１ｅ−１（図８）を情報転送テーブル６１ｅ−２に示すように更新する。
【００５８】
情報転送テーブル６１の更新後に、転送装置Ｂ〜Ｅがコンテンツ名＝／ａ／ａで識別されるコンテンツにアクセスするとする。この場合、矢印Ａ１〜Ａ５で表されるループ経路の一部と、転送装置Ａからサーバ５ａに向かう経路（矢印Ａ６）を介して、コンテンツの取得要求がサーバ５ａに転送される。また、転送装置Ａや転送装置Ｃ〜Ｅがコンテンツ名＝／ａ／ｂのコンテンツにアクセスする場合、矢印Ａ１〜Ａ５で表されるループ経路の一部と、転送装置Ｂからサーバ５ｂに向かう経路（矢印Ａ７）を介して、コンテンツの取得要求がサーバ５ｂに転送される。転送装置Ａ、Ｂ、Ｄ、Ｅがコンテンツ名＝／ａ／ｃのコンテンツにアクセスする場合、矢印Ａ１〜Ａ５で表されるループ経路の一部と、転送装置Ｃからサーバ５ｃに向かう経路（矢印Ａ８）を介して、コンテンツの取得要求がサーバ５ｃに転送される。また、転送装置Ａ〜Ｃと転送装置Ｅがコンテンツ名＝／ａ／ｄのコンテンツにアクセスする場合、矢印Ａ１〜Ａ５で表されるループ経路の一部と、転送装置Ｄからサーバ５ｄに向かう経路（矢印Ａ９）を介して、コンテンツの取得要求がサーバ５ｄに転送される。さらに、転送装置Ａ〜Ｄがコンテンツ名＝／ａ／ｅのコンテンツにアクセスする場合、矢印Ａ１〜Ａ５で表されるループ経路の一部と、転送装置Ｅからサーバ５ｅに向かう経路（矢印Ａ１０）を介して、コンテンツの取得要求がサーバ５ｅに転送される。
【００５９】
図１２は、情報転送テーブルの更新後の要求メッセージの送信例を説明する図である。以下、転送装置Ｃに接続された通信装置８０（ｒｅｑｕｅｓｔｅｒ）がコンテンツ名＝／ａ／ａのコンテンツを取得しようとする場合について、更新後の情報転送テーブル６１を用いて各転送装置４０で行われる処理の例を説明する。
【００６０】
まず、通信装置８０は、コンテンツ名＝／ａ／ａのコンテンツの取得要求メッセージＭ１１を生成し、取得要求メッセージＭ１１を送信する（矢印Ａ２１）。取得要求メッセージＭ１１は、転送装置Ｃに到達したとする。転送装置Ｃの受信部４３ｃは、ポート＃５を介して、取得要求メッセージＭ１１を受信する。
【００６１】
テーブル更新部５２ｃは、取得要求メッセージＭ１１の受信ポートと、取得要求メッセージＭ１１に含まれているコンテンツ名を対応付けてペンディングインタレストテーブル６２ｃに記録する。このため、ペンディングインタレストテーブル６２ｃには、コンテンツ名＝／ａ／ａと入力ポート＝ポート＃５が対応付けて記録される。一方、転送処理部５１ｃは、取得要求メッセージＭ１１中のコンテンツ名をキーとして、情報転送テーブル６１ｃ−２を検索することにより転送先を決定する。情報転送テーブル６１ｃ−２に含まれているコンテンツ名のうち、取得要求メッセージＭ１１中のコンテンツ名＝／ａ／ａと最長一致するコンテンツ名は／ａである。そこで、転送処理部５１ｃは、取得要求メッセージＭ１１の出力ポートをポート＃４に決定し、決定したポートの情報とともに取得要求メッセージＭ１１を送信部４２ｃに出力する。送信部４２ｃは、取得要求メッセージＭ１１をポート＃４から送信するので、取得要求メッセージＭ１１は転送装置Ｄに転送される（矢印Ａ２２）。
【００６２】
転送装置Ｄの受信部４３ｄは、ポート＃３を介して、取得要求メッセージＭ１１を受信する。テーブル更新部５２ｄは、取得要求メッセージＭ１１の受信ポートと、取得要求メッセージＭ１１に含まれているコンテンツ名を対応付けてペンディングインタレストテーブル６２ｄに記録する。このため、ペンディングインタレストテーブル６２ｄには、コンテンツ名＝／ａ／ａと入力ポート＝ポート＃３が対応付けて記録される。一方、転送処理部５１ｄは、取得要求メッセージＭ１１中のコンテンツ名をキーとして、情報転送テーブル６１ｄ−２を検索することにより転送先を決定する。情報転送テーブル６１ｄ−２に含まれているコンテンツ名のうち、取得要求メッセージＭ１１中のコンテンツ名＝／ａ／ａと最長一致するコンテンツ名は／ａである。そこで、転送処理部５１ｄは、取得要求メッセージＭ１１の出力ポートをポート＃１に決定する。送信部４２ｄは、取得要求メッセージＭ１１をポート＃１から送信するので、取得要求メッセージＭ１１は転送装置Ｅに転送される（矢印Ａ２３）。
【００６３】
転送装置Ｅの受信部４３ｅは、ポート＃２を介して、取得要求メッセージＭ１１を受信する。テーブル更新部５２ｅは、取得要求メッセージＭ１１の受信ポートと、取得要求メッセージＭ１１に含まれているコンテンツ名を対応付けてペンディングインタレストテーブル６２ｅに記録する。このため、ペンディングインタレストテーブル６２ｅには、コンテンツ名＝／ａ／ａと入力ポート＝ポート＃２が対応付けて記録される。一方、転送処理部５１ｅは、取得要求メッセージＭ１１中のコンテンツ名をキーとして、情報転送テーブル６１ｅ−２を検索することにより転送先を決定する。情報転送テーブル６１ｅ−２に含まれているコンテンツ名のうち、取得要求メッセージＭ１１中のコンテンツ名＝／ａ／ａと最長一致するコンテンツ名は／ａである。そこで、転送処理部５１ｅは、取得要求メッセージＭ１１の出力ポートをポート＃１に決定する。送信部４２ｅは、取得要求メッセージＭ１１をポート＃１から送信するので、取得要求メッセージＭ１１は転送装置Ａに転送される（矢印Ａ２４）。
【００６４】
転送装置Ａの受信部４３ａは、ポート＃２を介して、取得要求メッセージＭ１１を受信する。テーブル更新部５２ａは、取得要求メッセージＭ１１の受信ポートと、取得要求メッセージＭ１１に含まれているコンテンツ名を対応付けてペンディングインタレストテーブル６２ａに記録する。このため、ペンディングインタレストテーブル６２ａには、コンテンツ名＝／ａ／ａと入力ポート＝ポート＃２が対応付けて記録される。一方、転送処理部５１ａは、取得要求メッセージＭ１１中のコンテンツ名をキーとして、情報転送テーブル６１ａ−２を検索することにより転送先を決定する。情報転送テーブル６１ａ−２に含まれているコンテンツ名のうち、取得要求メッセージＭ１１中のコンテンツ名＝／ａ／ａと最長一致するコンテンツ名は／ａ／ａである。そこで、転送処理部５１ａは、取得要求メッセージＭ１１の出力ポートをポート＃１に決定する。送信部４２ａは、取得要求メッセージＭ１１をポート＃１から送信するので、取得要求メッセージＭ１１は、コンテンツ／ａ／ａを保持しているサーバ５ａに転送される（矢印Ａ２５）。
【００６５】
図１３は、情報転送テーブルの更新後のデータの送信例を説明する図である。図１３を参照しながら、取得要求メッセージＭ１１がサーバ５ａに到達した後に行われる処理の例を説明する。
【００６６】
サーバ５ａは、取得要求メッセージＭ１１を受信すると、コンテンツ名＝／ａ／ａで識別されるコンテンツのデータを含む応答メッセージＭ１２を生成する。サーバ５ａは、生成した応答メッセージＭ１２を、取得要求メッセージＭ１１の受信ポートから出力するので、応答メッセージＭ１２は転送装置Ａに到達する（矢印Ａ３１）。
【００６７】
転送装置Ａの受信部４３ａは、ポート＃１を介して、応答メッセージＭ１２を受信する。転送処理部５１ａは、応答メッセージＭ１２を、コンテンツ名＝／ａ／ａに対応づけて記憶部６０ａに記憶する。さらに、転送処理部５１ａは、応答メッセージＭ１２中のコンテンツ名をキーとして、ペンディングインタレストテーブル６２ａを検索することにより転送先を決定する。ペンディングインタレストテーブル６２ａには、コンテンツ名＝／ａ／ａと入力ポート＝ポート＃２が対応付けて記録されている。そこで、転送処理部５１ａは、応答メッセージＭ１２の出力ポートをポート＃２に決定する。送信部４２ａは、応答メッセージＭ１２をポート＃２から送信するので、応答メッセージＭ１２は、転送装置Ｅに転送される（矢印Ａ３２）。
【００６８】
転送装置Ｅの受信部４３ｅは、ポート＃１を介して、応答メッセージＭ１２を受信する。転送処理部５１ｅは、応答メッセージＭ１２を、コンテンツ名＝／ａ／ａに対応づけて記憶部６０ｅに記憶する。さらに、転送処理部５１ｅは、応答メッセージＭ１２中のコンテンツ名をキーとして、ペンディングインタレストテーブル６２ｅを検索することにより転送先を決定する。ペンディングインタレストテーブル６２ｅには、コンテンツ名＝／ａ／ａと入力ポート＝ポート＃２が対応付けて記録されている。そこで、転送処理部５１ｅは、応答メッセージＭ１２の出力ポートをポート＃２に決定する。送信部４２ｅは、応答メッセージＭ１２をポート＃２から送信するので、応答メッセージＭ１２は、転送装置Ｄに転送される（矢印Ａ３３）。
【００６９】
転送装置Ｄの受信部４３ｄは、ポート＃１を介して、応答メッセージＭ１２を受信する。転送処理部５１ｄは、応答メッセージＭ１２を、コンテンツ名＝／ａ／ａに対応づけて記憶部６０ｄに記憶する。さらに、転送処理部５１ｄは、応答メッセージＭ１２中のコンテンツ名をキーとして、ペンディングインタレストテーブル６２ｄを検索する。ペンディングインタレストテーブル６２ｄには、コンテンツ名＝／ａ／ａと入力ポート＝ポート＃３が対応付けて記録されている。そこで、転送処理部５１ｄは、応答メッセージＭ１２の出力ポートをポート＃３に決定する。送信部４２ｄは、応答メッセージＭ１２をポート＃３から送信するので、応答メッセージＭ１２は、転送装置Ｃに転送される（矢印Ａ３４）。
【００７０】
転送装置Ｃの受信部４３ｃは、ポート＃４を介して、応答メッセージＭ１２を受信する。転送処理部５１ｃは、応答メッセージＭ１２を、コンテンツ名＝／ａ／ａに対応づけて記憶部６０ｃに記憶する。さらに、転送処理部５１ｃは、応答メッセージＭ１２中のコンテンツ名をキーとして、ペンディングインタレストテーブル６２ｃを検索する。ペンディングインタレストテーブル６２ｃには、コンテンツ名＝／ａ／ａと入力ポート＝ポート＃５が対応付けて記録されている。そこで、転送処理部５１ｃは、応答メッセージＭ１２の出力ポートをポート＃５に決定する。送信部４２ｃは、応答メッセージＭ１２をポート＃５から送信するので、応答メッセージＭ１２は、通信装置８０に転送される（矢印Ａ３５）。なお、通信装置８０は、コンテンツ名＝／ａ／ａで識別されるコンテンツの要求元（ｒｅｑｕｅｓｔｅｒ）である。
【００７１】
図１２と図１３を参照しながら説明したように、複数のコンテンツの取得に使用される経路が第１の実施形態によって統合されても、コンテンツの取得要求はコンテンツを保持しているサーバ５に到達する。さらに、コンテンツは、各転送装置４０がペンディングインタレストテーブル６２を用いることによって、コンテンツの要求元に転送される。このため、各転送装置４０が転送処理に使用するために保持するデータを削減しつつ、転送処理を行うことができる。
【００７２】
図１４は、制御装置１０の処理の例を説明するフローチャートである。図１４の例では、制御装置１０が共通識別情報として、取得経路を統合する対象のコンテンツを識別するコンテンツ名の中で共通するプレフィックス（共通プレフィックス）を求めるものとする。
【００７３】
まず、取得処理部２１は、取得経路を統合する対象のコンテンツを識別するコンテンツ名を用いて、共通プレフィックスを選択する（ステップＳ１）。検索部２２は、ネットワーク中の全ての転送装置４０を一度だけ通るループが発見されたかを判定する（ステップＳ２）。ステップＳ２において、ネットワーク中の全ての転送装置４０を一度だけ通るループが発見されなかった場合、検索部２２は、処理を終了する（ステップＳ２でＮｏ）。
【００７４】
一方、ネットワーク中の全ての転送装置４０を一度だけ通るループが発見された場合、検索部２２は、ネットワーク中の各転送装置４０に直接接続されているサーバに格納されているコンテンツを特定する（ステップＳ２でＹｅｓ、ステップＳ３）。
【００７５】
ステップＳ４において、検索部２２は、情報転送テーブル情報３２中で、各転送装置４０に直接接続されているサーバに格納されているコンテンツ以外のコンテンツの取得経路であり、共通プレフィックスを含むコンテンツ名が登録されたエントリを更新する。このとき、検索部２２は、共通プレフィックスを含むコンテンツ名が登録されたエントリ中のエントリ名と出力ポートを、共通プレフィックスと、ステップＳ２で発見したループ経路への出力に使用するポート（出力ポート）の組み合わせで置換する。その後、生成部２３は、更新後の情報転送テーブル情報３２の情報と、各転送装置４０中の情報転送テーブル６１を整合させるための制御パケットを生成するとともに、通信部１１経由で制御パケットを転送装置４０に送信する。このため、各転送装置４０において、その転送装置４０に直接接続されたサーバ５に格納されたコンテンツ以外のエントリのうち、共通プレフィックスを含むコンテンツのエントリが、共通プレフィックスとループ経路への出力ポートの組み合わせに置き換えられる。
【００７６】
以上説明したように、複数のコンテンツの取得に使用される経路が第１の実施形態によって統合されると、各転送装置４０が転送処理に使用するために保持するデータを削減しつつ、転送処理を行うことができる。
【００７７】
＜第２の実施形態＞
第２の実施形態では、検索部２２において、ネットワーク中の転送装置４０のうちの一部を用いたループ経路が発見された場合の処理の例を説明する。なお、取得処理部２１の処理は第２の実施形態でも第１の実施形態と同様であり、検索部２２は取得処理部２１からの要求に応じて、ループ経路を検出するものとする。以下の説明では、ネットワーク中の転送装置４０は、統合処理の前にいずれも、コンテンツ名＝／ａ／ａ、／ａ／ｃ、／ａ／ｄ、／ａ／ｅを取得するための経路を保持しているものとする。
【００７８】
図１５は、第２の実施形態でのループの検索例と情報転送テーブル情報３２の更新例を説明する図である。図１５の例では、矢印Ａ４１〜Ａ４３で示すように、転送装置Ｃ〜Ｅを含むループ経路が検出されたとする。さらに、コンテンツ名＝／ａ／ａ、／ａ／ｃ、／ａ／ｄ、／ａ／ｅのコンテンツについての共通識別情報として、／ａが選択されているものとする。
【００７９】
検索部２２は、情報転送テーブル情報３２において、ループ経路に含まれている転送装置４０については、共通識別情報を含むコンテンツについてのエントリを、一旦、共通識別情報とループ経路への出力ポートの組み合わせに置き換える。例えば、検索部２２は、情報転送テーブル情報３２において、転送装置Ｃ〜Ｅがコンテンツ名＝／ａ／ａ、／ａ／ｃ、／ａ／ｄ、／ａ／ｅを取得するための経路を、共通識別情報（／ａ）と、各転送装置４０でのループ経路への出力ポートの組み合わせに置き換える。このため、転送装置Ｃ〜Ｅの経路の情報は、以下のように変更され、情報転送テーブル情報３２−３が得られる。
転送装置Ｃ：コンテンツ名＝／ａ、出力ポート＝ポート＃４
転送装置Ｄ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
転送装置Ｅ：コンテンツ名＝／ａ、出力ポート＝ポート＃４
【００８０】
次に、検索部２２は、ループ経路に含まれていない転送装置４０について、ループ経路に含まれている転送装置４０のいずれかと通信するための経路を検索する。
【００８１】
図１６は、情報転送テーブル情報３２の更新例を説明する図である。図１６を参照しながら、図１５の処理後に、検索部２２がループ経路に含まれていない転送装置Ａ、Ｂ、Ｆについて、ループ経路に含まれている転送装置４０と通信するための経路を検索したときの処理について説明する。
【００８２】
検索部２２は、転送装置Ａについて、矢印Ａ５１に示す経路により、ループ経路に含まれている転送装置Ｅと通信可能であることを特定する。すると、検索部２２は、情報転送テーブル情報３２−３（図１５）において、転送装置Ａに関する共通識別情報を含むコンテンツへの経路を、共通識別情報と転送装置Ｅとの通信を行う際の出力ポートの組み合わせに置換する。このため、転送装置Ａに関するエントリは以下に示すように更新される。
転送装置Ａ：コンテンツ名＝／ａ、出力ポート＝ポート＃２
【００８３】
同様に、検索部２２は、転送装置Ｆについて、矢印Ａ５２に示す経路により、ループ経路に含まれている転送装置Ｄと通信可能であることを特定する。すると、検索部２２は、情報転送テーブル情報３２−３において、転送装置Ｆに関する共通識別情報を含むコンテンツへの経路を、共通識別情報と転送装置Ｄとの通信を行う際の出力ポートの組み合わせに置換する。このため、転送装置Ｆに関するエントリは、以下に示すように更新される。
転送装置Ｆ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
【００８４】
さらに、検索部２２は、転送装置Ｂについて、矢印Ａ５３に示す経路により、ループ経路に含まれている転送装置Ｃと通信可能であることを特定する。すると、検索部２２は、情報転送テーブル情報３２−３において、転送装置Ｂに関する共通識別情報を含むコンテンツへの経路を、共通識別情報と転送装置Ｃとの通信を行う際の出力ポートの組み合わせに置換する。このため、転送装置Ｂに関するエントリは、以下に示すように更新される。
転送装置Ｂ：コンテンツ名＝／ａ、出力ポート＝ポート＃２
【００８５】
情報転送テーブル情報３２−４は、転送装置Ａ、Ｂ、Ｆについて、ループ経路に含まれている転送装置４０に到達するための経路（矢印Ａ５１〜Ａ５３）を用いた更新処理を行うことにより得られる情報転送テーブル情報３２の例である。
【００８６】
図１７は、情報転送テーブル情報３２の更新例を説明する図である。検索部２２は、図１５、図１６を参照しながら説明した処理の後に、ループ経路中の転送装置４０からネットワーク中の各コンテンツを保持しているサーバ５に至る経路を検索する。
【００８７】
検索部２２は、コンテンツ名＝／ａ／ａのコンテンツを保持しているサーバ５ａについて、矢印Ａ６１、Ａ６２に示す経路により、ループ経路に含まれている転送装置Ｅから通信可能であることを特定する。すると、検索部２２は、情報転送テーブル情報３２−４に、コンテンツ名＝／ａ／ａのコンテンツの取得の際に転送装置Ｅが使用する経路として、矢印Ａ６１に示す経路を追加する。さらに、検索部２２は、コンテンツ名＝／ａ／ａのコンテンツの取得の際に転送装置Ａが使用する経路として、矢印Ａ６２に示す経路を追加する。このため、転送装置Ａと転送装置Ｅに関するエントリは、以下に示すように更新される。
転送装置Ａ：コンテンツ名＝／ａ、    出力ポート＝ポート＃２
転送装置Ａ：コンテンツ名＝／ａ／ａ、出力ポート＝ポート＃１
転送装置Ｅ：コンテンツ名＝／ａ、    出力ポート＝ポート＃４
転送装置Ｅ：コンテンツ名＝／ａ／ａ、出力ポート＝ポート＃１
【００８８】
次に、検索部２２は、コンテンツ名＝／ａ／ｃのコンテンツを保持しているサーバ５ｃについて、矢印Ａ６３に示す経路により、ループ経路に含まれている転送装置Ｃから通信可能であることを特定したとする。すると、検索部２２は、情報転送テーブル情報３２−４に、コンテンツ名＝／ａ／ｃのコンテンツの取得の際に転送装置Ｃが使用する経路として、矢印Ａ６３に示す経路を追加する。このため、転送装置Ｃに関するエントリは、以下に示すように更新される。
転送装置Ｃ：コンテンツ名＝／ａ、    出力ポート＝ポート＃４
転送装置Ｃ：コンテンツ名＝／ａ／ｃ、出力ポート＝ポート＃２
【００８９】
検索部２２は、コンテンツ名＝／ａ／ｄのコンテンツを保持しているサーバ５ｄについて、矢印Ａ６４、Ａ６５に示す経路により、ループ経路に含まれている転送装置Ｄから通信可能であることを特定する。すると、検索部２２は、情報転送テーブル情報３２−４に、コンテンツ名＝／ａ／ｄのコンテンツの取得の際に転送装置Ｄが使用する経路として、矢印Ａ６４に示す経路を追加する。さらに、検索部２２は、コンテンツ名＝／ａ／ｄのコンテンツの取得の際に転送装置Ｆが使用する経路として、矢印Ａ６５に示す経路を追加する。このため、転送装置Ｄと転送装置Ｆに関するエントリは、以下に示すように更新される。
転送装置Ｄ：コンテンツ名＝／ａ、    出力ポート＝ポート＃１
転送装置Ｄ：コンテンツ名＝／ａ／ｄ、出力ポート＝ポート＃２
転送装置Ｆ：コンテンツ名＝／ａ、    出力ポート＝ポート＃１
転送装置Ｆ：コンテンツ名＝／ａ／ｄ、出力ポート＝ポート＃２
【００９０】
さらに、検索部２２は、コンテンツ名＝／ａ／ｅのコンテンツを保持しているサーバ５ｅについて、矢印Ａ６６に示す経路により、ループ経路に含まれている転送装置Ｅから通信可能であることを特定したとする。すると、検索部２２は、情報転送テーブル情報３２−４に、コンテンツ名＝／ａ／ｅのコンテンツの取得の際に転送装置Ｅが使用する経路として、矢印Ａ６６に示す経路を追加する。このため、転送装置Ｅに関するエントリは、以下に示すように更新される。
転送装置Ｅ：コンテンツ名＝／ａ、    出力ポート＝ポート＃４
転送装置Ｅ：コンテンツ名＝／ａ／ａ、出力ポート＝ポート＃１
転送装置Ｅ：コンテンツ名＝／ａ／ｅ、出力ポート＝ポート＃５
【００９１】
情報転送テーブル情報３２−５は、各コンテンツについて、ループ経路に含まれている転送装置４０からアクセスするための経路（矢印Ａ６１〜Ａ６６）を追加したときに得られる情報転送テーブル情報３２の例である。
【００９２】
図１８は、第２の実施形態でのループの検索例と情報転送テーブル６１の更新例を説明する図である。図１５〜図１７に示す処理により、経路の統合のための情報転送テーブル情報３２の更新が終了する。
【００９３】
すると、生成部２３は、情報転送テーブル情報３２−５（図１７）に従って、各転送装置４０にその転送装置４０に適用する経路情報を通知するための制御パケットを生成するとともに、制御パケットの送信処理を行う。各転送装置４０は、制御パケットに従って、情報転送テーブル６１を更新する。このため、転送装置Ａは更新処理により、情報転送テーブル６１ａ−３に示すように、コンテンツ名＝／ａと／ａ／ａに関するエントリを記憶する。転送装置Ｂは更新処理により、情報転送テーブル６１ｂ−３に示すように、コンテンツ名＝／ａに関するエントリを記憶する。転送装置Ｃは更新処理により、情報転送テーブル６１ｃ−３に示すように、コンテンツ名＝／ａと／ａ／ｃに関するエントリを記憶する。転送装置Ｄは更新処理により、情報転送テーブル６１ｄ−３に示すように、コンテンツ名＝／ａと／ａ／ｄに関するエントリを記憶する。転送装置Ｅは更新処理により、情報転送テーブル６１ｅ−３に示すように、コンテンツ名＝／ａ、／ａ／ａ、／ａ／ｅに関するエントリを記憶する。さらに、転送装置Ｆは更新処理により、情報転送テーブル６１ｆ−３に示すように、コンテンツ名＝／ａと／ａ／ｄに関するエントリを記憶する。
【００９４】
図１９は、制御装置１０の処理の例を説明するフローチャートである。図１９の例でも、制御装置１０が共通識別情報として、共通プレフィックスを求めるものとする。図１９では、定数Ｍ、Ｎと変数ｍ、ｎを使用する。定数Ｎは、ネットワーク中に含まれている転送装置４０の総数であり、定数Ｍはネットワークからアクセス可能で、共通プレフィックスを含むコンテンツ名で識別されるコンテンツの総数である。さらに、変数ｍは経路の検索を行ったコンテンツの計数に使用する変数であり、変数ｎは経路の検索を行ったコンテンツの計数に使用する変数である。なお、図１９は、処理の一例であり、実装に応じて処理の手順は変更され得る。例えば、ステップＳ１２とＳ１３の順序は互いに変更されても良い。
【００９５】
まず、取得処理部２１は、取得経路を統合する対象のコンテンツを識別するコンテンツ名を用いて、共通プレフィックスを選択する（ステップＳ１１）。検索部２２は、情報転送テーブル情報３２から、ネットワーク中の各転送装置４０について、共通プレフィックスを含むコンテンツのエントリを削除する（ステップＳ１２）。さらに、検索部２２は、ネットワーク中に含まれる任意の転送装置４０を通るループを探索する（ステップＳ１３）。検索部２２は、変数ｎを１に設定する（ステップＳ１４）。
【００９６】
検索部２２は、ｎ番目の転送装置４０はステップＳ１３で検索したループに属しているかを判定する（ステップＳ１５）。ｎ番目の転送装置４０がループに属している場合、検索部２２は、ｎ番目の転送装置４０について、共通プレフィックスをループへの出力ポートに対応付けたエントリを、情報転送テーブル情報３２に追加する（ステップＳ１５でＹｅｓ、ステップＳ１６）。一方、ｎ番目の転送装置４０がループに属していない場合、検索部２２は、ｎ番目の転送装置４０からループに含まれている転送装置４０に至る経路を検索する（ステップＳ１５でＮｏ）。検索部２２は、ｎ番目の転送装置４０について、ｎ番目の転送装置４０からループに含まれている転送装置４０に至る経路を共通プレフィックスに対応付けたエントリを、情報転送テーブル情報３２に追加する（ステップＳ１７）。ステップＳ１６かＳ１７の処理が終わると、検索部２２は、変数ｎを定数Ｎと比較する（ステップＳ１８）。変数ｎが定数Ｎ未満の場合、検索部２２は、変数ｎを１つインクリメントした上で、ステップＳ１５に戻る（ステップＳ１８でＹｅｓ、ステップＳ１９）。
【００９７】
変数ｎが定数Ｎ以上になると、図１６等を参照しながら説明したように、ネットワーク中の各転送装置４０について、共通プレフィックスに対応付けたエントリを情報転送テーブル情報３２に記録したことになる（ステップＳ１８でＮｏ）。そこで、検索部２２は、変数ｍを１に設定すると共に、ループに属する転送装置から各コンテンツにアクセスするための経路の検索を開始する（ステップＳ２０）。
【００９８】
検索部２２は、ｍ番目のコンテンツを保持するサーバ５から、ループに含まれる転送装置４０への経路のエントリを、情報転送テーブル情報３２に追加する（ステップＳ２１）。その後、検索部２２は、変数ｍを定数Ｍと比較する（ステップＳ２２）。変数ｍが定数Ｍ未満の場合、検索部２２は、変数ｍを１つインクリメントして、ステップＳ２１に戻る（ステップＳ２２でＹｅｓ、ステップＳ２３）。一方、変数ｍが定数Ｍ以上になると、共通プレフィックスを含むコンテンツ名で識別されるコンテンツの全てについて、ループ中の転送装置４０が取得するための経路を情報転送テーブル情報３２に記録したことになる（ステップＳ２２でＮｏ）。そこで、検索部２２は、情報転送テーブル情報３２の更新を終了する。
【００９９】
その後、図１８を参照しながら説明したように、生成部２３が情報転送テーブル情報３２に合わせて、ネットワーク中の転送装置４０が保持する情報転送テーブル６１の更新を要求する制御パケットを生成すると共に、転送装置４０に送信する。このため、第２の実施形態によると、ネットワーク中の一部の転送装置４０を通るループ経路を用いて、一部のコンテンツの取得に使用する経路の情報を統合できる。このため、個々の転送装置４０が転送処理のために保持する情報量を削減できる。
【０１００】
第２の実施形態は、ネットワーク中の全ての転送装置４０を１度だけ通るループ経路が発見されない場合や、ネットワーク規模が大きく、ループを発見することが困難な場合に有効である。さらに、ネットワーク中の全ての転送装置４０を１度だけ通るループ経路を発見できても、ループ経路が大きいためにメッセージ転送遅延が生じる場合などにも、有効である。
【０１０１】
＜第３の実施形態＞
第３の実施形態では、転送装置が自律的に情報転送テーブル６１を更新する場合の実施形態について説明する。
【０１０２】
図２０は、第３の実施形態にかかる転送装置７０の構成の例を説明する図である。転送装置７０は、通信部４１、制御部７５、記憶部６０を備える。制御部７５は、転送処理部５１、検出部７６、更新部７７を有する。記憶部６０は、情報転送テーブル６１、ペンディングインタレストテーブル６２、コンテンツ情報６３、ループ情報６４を保持する。
【０１０３】
コンテンツ情報６３は、制御装置１０が保持しているコンテンツ情報３３（図５）と同様に、ネットワーク中の装置がアクセス可能なコンテンツのコンテンツ名とそのコンテンツが保持されているサーバ５に接続している転送装置の情報を対応付けている。ループ情報６４は、その転送装置７０が備えているポートのうち、ループ経路に接続されているポートを特定する情報である。ループ情報６４は、制御装置１０から通知される。情報転送テーブル６１およびペンディングインタレストテーブル６２は、転送装置４０が記憶しているテーブルと同様である。
【０１０４】
検出部７６は、予め閾値を記憶しており、情報転送テーブル６１中のエントリの数が閾値を超えると、経路の統合を更新部７７に要求する。更新部７７は、情報転送テーブル６１、コンテンツ情報６３、ループ情報６４を用いて、経路の統合処理を行う。検出部７６や更新部７７の処理の詳細は後述する。転送処理部５１と通信部４１の処理は、転送装置７０でも転送装置４０と同様である。
【０１０５】
転送装置７０もハードウェア構成は、図７に示すとおりである。転送装置７０において、プロセッサ１０１は制御部７５として動作し、メモリ１０２は記憶部６０として動作する。さらに、通信部４１はネットワーク接続装置１０４により実現される。
【０１０６】
図２１は、制御装置１０の処理の例を説明するフローチャートである。制御装置１０中の検索部２２は、ネットワーク中の全ての転送装置７０を一度だけ通るループが検索できたかを判定する（ステップＳ５１）。ステップＳ５１での処理は、第１の実施形態でのループ経路の検索と同様である。ネットワーク中の全ての転送装置７０を一度だけ通るループが得られない場合、制御装置１０は、転送装置７０にループ情報６４を通知せずに処理を終了する（ステップＳ５１でＮｏ）。
【０１０７】
ネットワーク中の全ての転送装置７０を一度だけ通るループが得られた場合、生成部２３は、各転送装置７０に対して、その転送装置７０でのループ経路への出力ポートを、ループ情報６４として通知するパケットを生成する（ステップＳ５１でＹｅｓ）。生成部２３は、ループ情報６４を通知するパケットを通信部１１経由で転送装置７０に送信することにより、ループ情報６４を転送装置７０に設定する（ステップＳ５２）。
【０１０８】
例えば、転送装置７０ａにおいて、ポート＃３がループ経路を用いるときの出力ポートであるとする。すると、生成部２３は、転送装置７０ａに宛てて、ポート＃３がループ経路を用いるときの出力ポートであることを通知する。転送装置７０ａの転送処理部５１は受信部４３を介してパケットを取得する。転送処理部５１は、取得したパケットを用いて、ループ経路を用いるときの出力ポート＝ポート＃３という情報を、ループ情報６４として記憶部６０に格納する。
【０１０９】
図２２は、転送装置７０の処理の例を説明するフローチャートである。図２２において、定数Ｉは、統合処理の開始時の情報転送テーブル６１中のエントリの総数であり、変数ｉは処理対象としたエントリの計数に用いる変数である。なお、図２２は処理の一例であって、実装に応じて処理の順序が変更され得る。例えば、ステップＳ３３〜Ｓ３５の順序は任意に変更され得る。
【０１１０】
コンテンツがネットワークに追加されると、コンテンツを保持しているサーバ５から、そのコンテンツのコンテンツ名などを通知するための広告メッセージが送信される。広告メッセージは、例えば、ＮＬＳＲ(Named  Data  Link  State  Routing  Protocol)等のプロトコルにより送信される。受信部４３は、広告メッセージを受信する（ステップＳ３１）。更新部７７は、広告メッセージで広告されたコンテンツのエントリを、情報転送テーブル６１に追加する（ステップＳ３２）。さらに、更新部７７は、広告メッセージで広告されたコンテンツを保持するサーバ５に接続されている転送装置７０の情報が広告メッセージに含まれている場合、広告メッセージを用いてコンテンツ情報６３を更新する。
【０１１１】
検出部７６は、情報転送テーブル６１中のエントリ数が閾値以上であるかを判定する（ステップＳ３３）。情報転送テーブル６１中のエントリ数が閾値未満の場合、検出部７６は処理を終了する（ステップＳ３３でＮｏ）。
【０１１２】
情報転送テーブル６１中のエントリ数が閾値以上の場合、検出部７６は、更新部７７に経路情報の統合を要求する（ステップＳ３３でＹｅｓ）。検出部７６から経路情報の統合が要求されると、更新部７７は、ループ情報６４を制御装置１０から取得しているかを判定する（ステップＳ３４）。ループ情報６４を制御装置１０から取得していない場合、更新部７７は処理を終了する（ステップＳ３４でＮｏ）。
【０１１３】
ループ情報６４を制御装置１０から取得している場合、更新部７７は、情報転送テーブル６１を用いて、共通プレフィックスを選択する（ステップＳ３５）。共通プレフィックスの選択処理については、後述する。さらに、更新部７７は、変数ｉを１に設定する（ステップＳ３６）。更新部７７は、ｉ番目のエントリ中のコンテンツが自装置に直接接続しているサーバに格納されているかを判定する（ステップＳ３７）。
【０１１４】
ｉ番目のエントリ中のコンテンツが自装置に直接接続しているサーバに格納されていない場合、更新部７７は、ｉ番目のエントリのコンテンツ名は共通プレフィックスを含むかを判定する（ステップＳ３７でＮｏ、ステップＳ３８）。ｉ番目のエントリのコンテンツ名が共通プレフィックスを含む場合、更新部７７は、ｉ番目のエントリを情報転送テーブル６１から削除する（ステップＳ３８でＹｅｓ、ステップＳ３９）。次に、更新部７７は、共通プレフィックスについてのエントリが情報転送テーブル６１に含まれているかを判定する（ステップＳ４０）。共通プレフィックスについてのエントリが情報転送テーブル６１に含まれていない場合、更新部７７は、共通プレフィックスについてのエントリを情報転送テーブル６１に追加する（ステップＳ４０でＮｏ、ステップＳ４１）。ここで、共通プレフィックスについてのエントリは、共通プレフィックスとループ情報６４として通知されたポート番号の組み合わせである。一方、共通プレフィックスについてのエントリが既に情報転送テーブル６１に含まれている場合、更新部７７は、共通プレフィックスについてのエントリを情報転送テーブル６１に追加しない（ステップＳ４０でＹｅｓ）。
【０１１５】
ステップＳ４１の処理後か、ステップＳ４０で共通プレフィックスについてのエントリが情報転送テーブル６１に含まれていると判定すると、更新部７７は、変数ｉと定数Ｉを比較する（ステップＳ４２）。変数ｉが定数Ｉ未満の場合、更新部７７は、変数ｉを１つインクリメントして、ステップＳ３７に戻る（ステップＳ４２でＹｅｓ、ステップＳ４３）。一方、変数ｉが定数Ｉ以上の場合、情報転送テーブル６１中の全てのエントリについての処理が終わっているので処理を終了する（ステップＳ４２でＮｏ）。
【０１１６】
ｉ番目のエントリ中のコンテンツが自装置に直接接続しているサーバに格納されている場合、経路情報の統合後でもｉ番目のエントリの情報を用いてコンテンツの取得が行われる（ステップＳ３７でＹｅｓ）。このため、更新部７７は、ｉ番目のエントリを情報転送テーブル６１から削除しない。ステップＳ３７でＹｅｓと判定された場合も、ステップＳ４２以降の処理が行われる。
【０１１７】
さらに、ｉ番目のエントリ中のコンテンツが自装置に直接接続しているサーバに格納されていなくても、ｉ番目のエントリのコンテンツ名に共通プレフィックスが含まれていない場合もある（ステップＳ３８でＮｏ）。この場合、ｉ番目のエントリは共通プレフィックスを用いて統合される経路ではないので、ステップＳ４２以降の処理が行われる。
【０１１８】
このように、第３の実施形態では、転送装置７０は、情報転送テーブル６１中のエントリが閾値を越え、さらに、ループ情報６４を取得した場合、自装置に接続しているサーバ５に格納されていないコンテンツへの経路を、共通プレフィックスを用いて統合する。このとき、情報転送テーブル６１中のエントリのうち、コンテンツ名が共通プレフィックスを含むエントリが統合処理により、共通プレフィックスとループ情報６４として記録されているポートの組み合わせで置き換えられる。
【０１１９】
図２３は、情報転送テーブル６１の例を説明する図である。以下、図２３を参照しながら、共通プレフィックスの選択方法について説明する。コンテンツ名では、パスの区切りがスラッシュ（／）で示されている。以後、スラッシュにより区切られた部分の数を、プレフィックスの「段数」と記載する。例えば、／ａは段数１、／ａ／ａは段数２である。更新部７７は、予め、共通プレフィックスを求める際に使用する段数を記憶しているとする。更新部７７は、共通プレフィックスを選択する際に、予め決められた段数Ｎのプレフィックスのうち、そのプレフィックスをもつエントリ数が情報転送テーブル６１中に最も多いものを共通プレフィックスとして選択する。情報転送テーブル６１が図２３に示すとおりであって、共通プレフィックスに含まれる段数＝２である場合、プレフィックス／ａ／ａを含むエントリは３個、プレフィックス／ａ／ｂを含むエントリは２個、プレフィックス／ｂ／ａを含むエントリは２個である。さらに、プレフィックス／ｂ／ｂを含むエントリは１個である。そこで、更新部７７は、プレフィックス／ａ／ａを共通プレフィックスとして選択する。この場合、コンテンツ名＝／ａ／ａ／ａ、／ａ／ａ／ｂ、／ａ／ａ／ｃで識別されるコンテンツの取得に使用される経路が統合処理の対象となる。
【０１２０】
第３の実施形態で説明したように、転送装置７０が共通プレフィックスの選択や、自律的に情報転送テーブル６１の更新を行う場合、第１および第２の実施形態に比べて、制御装置１０の処理負荷が低減される。
【０１２１】
＜第４の実施形態＞
第４の実施形態では、検索部２２において、ネットワーク中の転送装置４０のうちの一部を用いたループ経路が複数発見された場合の処理の例を説明する。なお、取得処理部２１の処理は第４の実施形態でも上記実施形態と同様であり、検索部２２は取得処理部２１からの要求に応じて、ループ経路を検出するものとする。以下の説明では、上記実施の形態と同様、ネットワーク中の転送装置４０は、統合処理の前にいずれも、コンテンツ名＝／ａ／ａ、／ａ／ｃ、／ａ／ｄ、／ａ／ｅを取得するための経路を保持しているものとする。
【０１２２】
図２４は、第４の実施形態でのループの検索例と情報転送テーブル情報３２の更新例を説明する図である。図２４の例では、矢印Ａ７０、Ａ７１、Ａ７２で示すように、転送装置ＡとＢとＥを含むループ経路が検出されたとする。さらに、コンテンツ名＝／ａ／ａ、／ａ／ｃ、／ａ／ｄ、／ａ／ｅのコンテンツについての共通識別情報として、／ａが選択されているものとする。
【０１２３】
検索部２２は、情報転送テーブル情報３２において、ループ経路に含まれている転送装置４０については、共通識別情報を含むコンテンツについてのエントリを、一旦、共通識別情報とループ経路への出力ポートの組み合わせに置き換える。例えば、検索部２２は、情報転送テーブル情報３２において、転送装置Ａ、Ｂ、Ｅがコンテンツ名＝／ａ／ａ、／ａ／ｃ、／ａ／ｄ、／ａ／ｅを取得するための経路を、共通識別情報（／ａ）と、各転送装置４０でのループ経路への出力ポートの組み合わせに置き換える。このため、転送装置Ａ、Ｂ、Ｅの経路の情報は、以下のように変更され、情報転送テーブル情報３２−６が得られる。
転送装置Ａ：コンテンツ名＝／ａ、出力ポート＝ポート＃３
転送装置Ｂ：コンテンツ名＝／ａ、出力ポート＝ポート＃３
転送装置Ｅ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
【０１２４】
次に、検索部２２は、ループ経路に含まれていない転送装置４０について、ループ経路に含まれている転送装置４０のいずれかと通信するための経路を検索する。
【０１２５】
図２５は、情報転送テーブル情報３２の更新例を説明する図である。図２５を参照しながら、転送装置Ｃ、Ｄ、Ｆについて、ループ経路に含まれている転送装置４０と通信するための経路を検索したときの処理について説明する。
【０１２６】
検索部２２は、転送装置Ｃについて、矢印Ａ８０に示す経路により、ループ経路に含まれる転送装置Ｂと通信可能であることを特定する。すると、検索部２２は、情報転送テーブル情報３２−６（図２４）において、転送装置Ｃに関する共通識別情報を含むコンテンツへの経路を、共通識別情報と転送装置Ｂとの通信を行う際の出力ポートの組み合わせに置換する。このため、転送装置Ｃに関するエントリは以下に示すように更新される。なお、ここでは、転送装置Ｃから転送装置Ｂへの経路生成を説明したが、転送装置Ｃから転送装置Ｅの経路を生成してもよい。
転送装置Ｃ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
【０１２７】
同様に、検索部２２は、転送装置Ｄについて、矢印Ａ８１に示す経路により、ループ経路に含まれる転送装置Ｅと通信可能であることを特定する。すると、検索部２２は、情報転送テーブル情報３２−６（図２４）において、転送装置Ｄに関する共通識別情報を含むコンテンツへの経路を、共通識別情報と転送装置Ｅとの通信を行う際の出力ポートの組み合わせに置換する。このため、転送装置Ｄに関するエントリは以下に示すように更新される。なお、ここでは、転送装置Ｄから転送装置Ｃを経由する経路も考えられるが、一例として、ステップ数の少ない経路が優先的に選択されるものとする。
転送装置Ｄ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
【０１２８】
さらに、検索部２２は、転送装置Ｆについて、矢印Ａ８２に示す経路により、ループ経路への経路が確立されたる転送装置Ｄを経由することにより、ループ経路と通信可能であることを特定する。すると、検索部２２は、情報転送テーブル情報３２−６（図２４）において、転送装置Ｆに関する共通識別情報を含むコンテンツへの経路を、共通識別情報と転送装置Ｄとの通信を行う際の出力ポートの組み合わせに置換する。このため、転送装置Ｆに関するエントリは以下に示すように更新される。
転送装置Ｆ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
【０１２９】
続いて、検索部２２は、ループ経路中の転送装置４０からネットワーク中の各コンテナを保持するサーバ５に至る経路を検索する。
【０１３０】
具体的には、検索部２２は、コンテンツ名＝／ａ／ａのコンテンツを保持しているサーバ５ａについて、矢印Ａ８３に示す経路により、ループ経路に含まれている転送装置Ａから通信可能であることを特定する。すると、検索部２２は、情報転送テーブル情報３２−６に、コンテンツ名＝／ａ／ａのコンテンツの取得の際に転送装置Ａが使用する経路として、矢印Ａ８３に示す経路を追加する。このため、転送装置Ａに関するエントリは、以下に示すように更新される。
転送装置Ａ：コンテンツ名＝／ａ、出力ポート＝ポート＃３
転送装置Ａ：コンテンツ名＝／ａ／ａ、出力ポート＝ポート＃１
【０１３１】
次に、検索部２２は、コンテンツ名＝／ａ／ｃのコンテンツを保持しているサーバ５ｃについて、矢印Ａ８４とＡ８５に示す経路により、ループ経路に含まれている転送装置Ｂから通信可能であることを特定する。すると、検索部２２は、情報転送テーブル情報３２−６に、コンテンツ名＝／ａ／ｃのコンテンツの取得の際に転送装置Ｂが使用する経路として、矢印Ａ８４に示す経路を追加する。さらに、検索部２２は、コンテンツ名＝／ａ／ｃのコンテンツの取得の際に転送装置Ｃが使用する経路として、矢印Ａ８５に示す経路を追加する。このため、転送装置Ｂと転送装置Ｃに関するエントリは、以下に示すように更新される。
転送装置Ｂ：コンテンツ名＝／ａ、出力ポート＝ポート＃３
転送装置Ｂ：コンテンツ名＝／ａ／ｃ、出力ポート＝ポート＃２
転送装置Ｃ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
転送装置Ｃ：コンテンツ名＝／ａ／ｃ、出力ポート＝ポート＃２
【０１３２】
同様に、検索部２２は、コンテンツ名＝／ａ／ｄのコンテンツを保持しているサーバ５ｄについて、矢印Ａ８６とＡ８７とＡ８８に示す経路により、ループ経路に含まれている転送装置Ｅから通信可能であることを特定する。すると、検索部２２は、情報転送テーブル情報３２−６に、コンテンツ名＝／ａ／ｄのコンテンツの取得の際に転送装置Ｅが使用する経路として矢印Ａ８６に示す経路を追加し、転送装置Ｄが使用する経路として矢印Ａ８７に示す経路を追加する。さらに、検索部２２は、コンテンツ名＝／ａ／ｄのコンテンツの取得の際に転送装置Ｆが使用する経路として、矢印Ａ８８に示す経路を追加する。このため、転送装置Ｅと転送装置Ｄと転送装置Ｆに関するエントリは、以下に示すように更新される。
転送装置Ｅ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
転送装置Ｅ：コンテンツ名＝／ａ／ｄ、出力ポート＝ポート＃２
転送装置Ｄ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
転送装置Ｄ：コンテンツ名＝／ａ／ｄ、出力ポート＝ポート＃２
転送装置Ｆ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
転送装置Ｆ：コンテンツ名＝／ａ／ｄ、出力ポート＝ポート＃２
【０１３３】
また、検索部２２は、コンテンツ名＝／ａ／ｅのコンテンツを保持しているサーバ５ｅについて、矢印Ａ８９に示す経路により、ループ経路に含まれている転送装置Ｅから通信可能であることを特定する。すると、検索部２２は、情報転送テーブル情報３２−６に、コンテンツ名＝／ａ／ｅのコンテンツの取得の際に転送装置Ｅが使用する経路として、矢印Ａ８９に示す経路を追加する。このため、転送装置Ｅに関するエントリは、以下に示すように更新される。
転送装置Ｅ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
転送装置Ｅ：コンテンツ名＝／ａ／ｄ、出力ポート＝ポート＃２
転送装置Ｅ：コンテンツ名＝／ａ／ｅ、出力ポート＝ポート＃５
【０１３４】
そして、情報転送テーブル情報３２−７は、各コンテンツについて、ループ経路に含まれている転送装置４０からアクセスするための経路（矢印８０から矢印８９）を追加したときに得られる情報転送テーブル情報３２の例である。
【０１３５】
図２６は、第４の実施形態でのループの検索例と情報転送テーブル６１の更新例を説明する図である。図２４と図２５に示す処理により、経路の統合のための情報転送テーブル情報３２の更新が終了する。
【０１３６】
すると、生成部２３は、情報転送テーブル情報３２−７（図２５）に従って、各転送装置４０にその転送装置４０に適用する経路情報を通知するための制御パケットを生成するとともに、制御パケットの送信処理を行う。各転送装置４０は、制御パケットに従って、情報転送テーブル６１を更新する。このため、転送装置Ａは更新処理により、情報転送テーブル６１ａ−４に示すように、コンテンツ名＝／ａと／ａ／ａに関するエントリを記憶する。転送装置Ｂは更新処理により、情報転送テーブル６１ｂ−４に示すように、コンテンツ名＝／ａと／ａ／ｃに関するエントリを記憶する。転送装置Ｃは更新処理により、情報転送テーブル６１ｃ−４に示すように、コンテンツ名＝／ａと／ａ／ｃに関するエントリを記憶する。転送装置Ｄは更新処理により、情報転送テーブル６１ｄ−４に示すように、コンテンツ名＝／ａと／ａ／ｄに関するエントリを記憶する。転送装置Ｅは更新処理により、情報転送テーブル６１ｅ−４に示すように、コンテンツ名＝／ａ、／ａ／ｅ、／ａ／ｄに関するエントリを記憶する。さらに、転送装置Ｆは更新処理により、情報転送テーブル６１ｆ−４に示すように、コンテンツ名＝／ａと／ａ／ｄに関するエントリを記憶する。
【０１３７】
この状態で、第４の実施形態では、任意のループを追加する。具体的には、検索部２２は、任意のループを追加して、共通のプレフィックス（共通識別情報）で転送できるよう経路を計算し、エントリ総数Ｔ´を求める。そして、検索部２２は、Ｔ´がＴより大きければ別のループを選択する。ここで、検索部２２は、閾値であるＫ回実行してもＴ´がＴより大きければ終了し、ＴにＴ´の値を代入して別のループを追加する。また、検索部２２は、新たにループが追加できなくなったら終了する。
【０１３８】
例えば、検索部２２は、転送装置Ａ→転送装置Ｂ→転送装置Ｅ→転送装置Ａのループに加え、転送装置Ｃ→転送装置Ｄ→転送装置Ｅ→転送装置Ｃのループを追加する。そして、検索部２２は、それぞれのループに共通識別情報（／ａ）でループを１方向に回るようなエントリを追加する。ここで、検索部２２は、２つのループの接続点である転送装置Ｅにおいては、２つのループへ転送できるように出力ポートを＃１と＃４に設定する。例えば転送装置Ｅにおいてポート＃３からコンテンツ要求メッセージを受信した場合には、ポート＃１とポート＃４にコピーして出力する。
【０１３９】
次に、検索部２２は、１つめのループの場合と同様に、ループに属していないノードに対して、ループを構成する任意のノードへの経路を発見し、選択した共通識別情報（／ａ）でループを構成する転送装置へ転送するためのエントリを情報転送テーブル情報に加える。そして、検索部２２は、共通識別情報を持つ各コンテンツからループを構成する任意の転送装置への経路を発見し、ループを構成する転送装置からそのコンテンツへ転送するためのエントリを情報転送テーブル情報に追加する。その後、これ以上ループを追加してもエントリ数が減らないときのエントリが最終的な解となり、制御装置１０は、各転送装置に対してエントリを更新する。
【０１４０】
図２７を用いて具体例で説明する。図２７は、ループ経路の追加制御を説明する図である。図２７に示すように、矢印Ａ９０、Ａ９１、Ａ９２で示す転送装置ＥとＣとＤを含むループ経路が検出されたとする。そして、制御装置１０は、共通識別情報とループ経路への出力ポートの組み合わせを特定し、この組み合わせによって、該当する転送装置４０の経路を更新する。
【０１４１】
例えば、検索部２２は、共通識別情報（／ａ）でループするように、転送装置Ｅと転送装置Ｃと転送装置Ｄの情報転送テーブル６１を書き換える。詳細には、検索部２２は、情報転送テーブル情報３２のエントリに、以下の経路を追加する。
転送装置Ｅ：コンテンツ名＝／ａ、出力ポート＝ポート＃４
転送装置Ｃ：コンテンツ名＝／ａ、出力ポート＝ポート＃４
転送装置Ｄ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
【０１４２】
これに伴い、転送装置Ａ−Ｂ−Ｅの第１のループと、転送装置Ｅ−Ｃ−Ｄの第２のループとが、同じ共通識別情報（／ａ）でループするとともに、転送装置Ｅを介して相互に接続される。このため、検索部２２は、すでに生成済みの経路情報（図２６の各情報転送テーブル６１）から重複する以下の経路を削除する。すなわち、転送装置Ｂから転送装置Ｃへは、直接の経路ではなく、共通識別情報（／ａ）のループ経路によって転送装置Ｅを経由することができるので、以下の経路が不要となる。同様に、転送装置Ｃから転送装置Ｂへは、直接の経路ではなく、共通識別情報（／ａ）のループ経路によって転送装置Ｅを経由することができるので、以下の経路が不要となる。また、転送装置Ｅから転送装置Ｄへは、共通識別情報（／ａ）の新たなループ経路によって接続されるので、以下の経路が不要となる。同様に、転送装置Ｄから転送装置Ｅへは、共通識別情報（／ａ）の新たなループ経路によって接続されるので、図２５−２６で生成される既存の以下の経路が不要となる。
転送装置Ｂ：コンテンツ名＝／ａ／ｃ、出力ポート＝ポート＃２
転送装置Ｃ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
転送装置Ｅ：コンテンツ名＝／ａ／ｄ、出力ポート＝ポート＃２
転送装置Ｄ：コンテンツ名＝／ａ、出力ポート＝ポート＃１
【０１４３】
その後、制御装置１０は、上記新たな経路の追加および上記既存の経路の削除を行う制御パケットを生成して各転送装置４０に送信し、各転送装置４０は、制御パケットにしたがって情報転送テーブル６１を更新する。
【０１４４】
例えば、転送装置Ａは更新処理により、情報転送テーブル６１ａ−５に示すように、情報転送テーブル６１ａ−４からの更新はなく、コンテンツ名＝／ａと／ａ／ａに関するエントリを記憶する。転送装置Ｂは更新処理により、情報転送テーブル６１ｂ−５に示すように、コンテンツ名＝／ａ／ｃに関するエントリを削除し、コンテンツ名＝／ａに関するエントリを記憶する。
【０１４５】
転送装置Ｃは更新処理により、情報転送テーブル６１ｃ−５に示すように、コンテンツ名＝／ａ（出力ポート＃１）のエントリを削除して、コンテンツ名＝／ａ（出力ポート＃４）のエントリを追加し、結果として、コンテンツ名＝／ａと／ａ／ｃに関するエントリを記憶する。転送装置Ｄは更新処理により、情報転送テーブル６１ｄ−５に示すように、コンテンツ名＝／ａに関するエントリの追加と削除が発生し、結果として、コンテンツ名＝／ａと／ａ／ｄに関するエントリを記憶する。
【０１４６】
転送装置Ｅは更新処理により、情報転送テーブル６１ｅ−５に示すように、コンテンツ名＝／ａ／ｄに関するエントリの削除と、コンテンツ名＝／ａ（出力ポート＃４）のエントリの追加が発生し、結果として、コンテンツ名＝／ａと／ａ／ｅに関するエントリを記憶する。さらに、転送装置Ｆは更新処理により、情報転送テーブル６１ｆ−５に示すように、コンテンツ名＝／ａと／ａ／ｄに関するエントリを記憶する。
【０１４７】
上述したように、図２６に示すループ経路が１つの場合では、各転送装置４０が保持する経路の総計は１３であるのに対して、ループ経路を追加した図２７の場合では、各転送装置４０が保持する経路の総計は１１となり、通信断を発生させることなく、エントリ（経路）を保持するための領域を削減することができる。
【０１４８】
図２８は、第４の実施形態にかかる制御装置１０の処理の例を説明するフローチャートである。図２８の例でも、制御装置１０が共通識別情報として、共通プレフィックスを求めるものとする。また、ｎは、ループ数であり、Ｎは、ループ数の上限値であり、ｔは、試行回数であり、Ｔは、試行回数の上限値である。各上限値は、任意に設定変更することができる。なお、ループの生成手法は、上記実施形態と同様なので、詳細な説明は省略する。
【０１４９】
図２８に示すように、制御装置１０は、ループ経路を１つ設定し、ループ経路にしたがって各転送装置４０に必要なエントリを設定し、エントリの総数（Ｅ）を算出する（ステップＳ４１）。
【０１５０】
続いて、制御装置１０は、ループ数（ｎ）を１つ増加させ（ステップＳ４２）、ループ数（ｎ）が上限値（Ｎ）よりも小さい、または、新たなループが追加できないかを判定する（ステップＳ４３）。ここで、制御装置１０は、ループ数（ｎ）が上限値（Ｎ）よりも大きい、または、新たなループが追加できない場合（ステップＳ４３：Ｙｅｓ）、処理を終了する。
【０１５１】
一方、制御装置１０は、ループ数（ｎ）が上限値（Ｎ）よりも小さい、または、新たなループが追加できる場合（ステップＳ４３：Ｎｏ）、試行回数（ｔ）を１つ増加させる（ステップＳ４４）。
【０１５２】
続いて、制御装置１０は、新たなループ経路を１つ設定し、ループ経路にしたがって各転送装置４０に必要なエントリを設定し、エントリの総数（Ｅ´）を算出する（ステップＳ４５）。そして、制御装置１０は、エントリの総数（Ｅ´）がエントリの総数（Ｅ）よりも少ないか否かを判定する（ステップＳ４６）。つまり、制御装置１０は、ループの追加によって、エントリ数が削減されるか否かを判定する。
【０１５３】
ここで、制御装置１０は、エントリの総数（Ｅ´）がエントリの総数（Ｅ）よりも少ない場合（ステップＳ４６：Ｙｅｓ）、新たなエントリ総数（Ｅ´）を比較する対象のエントリの総数（Ｅ）の値に設定し（ステップＳ４７）、ループ数（ｎ）を１つ加算して（ステップＳ４８）、ステップＳ４３以降を繰り返す。
【０１５４】
一方、制御装置１０は、エントリの総数（Ｅ´）がエントリの総数（Ｅ）よりも多い場合（ステップＳ４６：Ｎｏ）、追加したループ経路およびそのエントリを削除し（ステップＳ４９）、試行回数（ｔ）を１つ加算する（ステップＳ５０）。
【０１５５】
そして、制御装置１０は、試行回数（ｔ）が上限値（Ｔ）未満である場合（ステップＳ５１：Ｎｏ）、ステップＳ４５以降を繰り返し、試行回数（ｔ）が上限値（Ｔ）以上である場合（ステップＳ５１：Ｙｅｓ）、処理を終了する。
【０１５６】
ところで、図２７では、転送装置Ｅが２つのループ経路に属する例を説明したが、これに限定されるものではない。例えば、図２９に示すように、各ループ経路に共通する転送装置が含まれていない場合であっても、同様に処理することができる。
【０１５７】
図２９は、ループ経路の追加制御の別例を説明する図である。図２９では、共通識別情報（／ａ）でループするように設定された、転送装置Ａ−Ｂ−Ｅのループ経路と、転送装置Ｆ−Ｃ−Ｄのループ経路とが生成されているとする。なお、ループ経路の生成手法は、図２７等と同様なので、詳細な説明は省略する。
【０１５８】
図２９では、図２７とは異なり、互いのループ経路の共通の転送装置が存在しない。そこで、制御装置１０は、第１のループ経路に属する各転送装置と第２のループ経路に属する各転送装置との間で、隣接する転送装置に対して、互いのループ経路を接続する経路（エントリ）を追加する。図２９の例では、制御装置１０は、転送装置Ｅから転送装置Ｆへの経路として、「コンテンツ名（／ａ）、出力ポート（＃２）」を追加するとともに、転送装置Ｆから転送装置Ｅへの経路として、「コンテンツ名（／ａ）、出力ポート（＃１）」を追加する。ここで、追加経路のコンテンツ名として／ａを選択するのは、互いのループ経路が共通識別情報（／ａ）のループ経路であるからである。
【０１５９】
なお、第４の実施形態では、２つのループ経路が同じ共通識別情報を選択した例で説明したが、これに限定されるものではない。例えば、複数のループ経路が別々の共通識別情報を選択していてもよい。その場合、制御装置１０は、一方のループ経路から他方のループ経路への経路を生成する場合、接続対象の共通識別情報を含むコンテンツ名と出力ポートとの組をエントリとして生成する。
【０１６０】
上述したように、制御装置１０は、ネットワーク中に共通プレフィックスでルーチングする複数のループを構成することにより、情報転送テーブル量を削減することができる。なお、各実施形態は、矛盾のない範囲内で適宜組み合わせることができる。また、転送装置は、ノードの一例である。また、上記例では、２つのループ経路を生成する例を説明したが、３つ以上であっても同様に処理することができる。なお、各実施形態は、矛盾のない範囲内で適宜組み合わせることができる。
【０１６１】
＜その他＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【０１６２】
例えば、制御装置１０、転送装置４０、転送装置７０が保持するテーブル中の情報要素は、実装に応じて変更され得る。
【０１６３】
第３の実施形態では、情報転送テーブル６１中のエントリ数が閾値を超えると統合処理が行われる場合を例として説明したが、転送装置７０は、ループ情報６４が通知されると、情報転送テーブル６１中の経路の統合処理を行うように設計されても良い。
【０１６４】
第１および第２の実施形態において、制御装置１０は、図２３を参照しながら説明した処理と同様の処理により、共通プレフィックスを決定しても良い。さらに、制御装置１０は、オペレータから通知された共通プレフィックスを用いて、経路の統合処理を行っても良い。
【０１６５】
第１の実施形態と第２の実施形態は、組み合わせて用いられても良い。例えば、ネットワーク中の全ての転送装置４０を介したループが発見された場合には、第１の実施形態に沿って統合処理が行われ、ネットワーク中の全ての転送装置４０を介したループが発見されない場合に、第２の実施形態による処理が行われても良い。
【０１６６】
上述の第１〜第３の実施形態、第４の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
コンテンツ名と前記コンテンツ名で識別されるコンテンツの取得要求の出力先となるポートとの組み合わせを記憶する複数の転送装置を制御する制御装置であって、
前記複数の転送装置の少なくとも一部を通るループ経路を検索する検索部と、
前記ループ経路を介して取得可能なコンテンツに対する前記組み合わせを、前記ループ経路を介して取得可能なコンテンツを識別するコンテンツ名に共通する共通識別情報と、前記ループ経路を使用する際の出力ポートを対応付けた情報に置き換えることを、前記ループ経路に含まれる転送装置の各々に要求する制御パケットを生成する生成部と、
前記ループ経路に含まれる転送装置の各々に、前記制御パケットを送信する通信部
を備えることを特徴とする制御装置。
（付記２）
前記生成部は、前記ループ経路に含まれている転送装置の各々について、前記共通識別情報を含むコンテンツ名で識別されるコンテンツのうち、当該転送装置に直接接続されているサーバに格納されているコンテンツ以外のコンテンツを、当該転送装置が前記ループ経路を介して取得可能なコンテンツとして特定する
ことを特徴とする付記１に記載の制御装置。
（付記３）
前記生成部は、前記ループ経路に含まれていない転送装置の各々について、
当該転送装置から前記ループ経路に含まれる転送装置の何れかに至る通信経路を特定し、
当該転送装置に対して、前記共通識別情報を含むコンテンツ名で識別されるコンテンツのうち、当該転送装置に直接接続されているサーバに格納されているコンテンツ以外のコンテンツに関する前記組み合わせを、前記通信経路を用いた通信を行う際に用いる出力ポートに前記共通識別情報を対応付けた情報に置き換えることを要求する他の制御パケットを生成し、
前記通信部は、前記他の制御パケットを送信する
ことを特徴とする付記１または２に記載の制御装置。
（付記４）
前記検索部は、前記複数の転送装置の一部を通る第１のループ経路に対する前記制御パケットに含まれる前記共通識別情報を有するコンテンツへの経路として、前記複数の転送装置の一部を通る第２のループ経路を検索し、
前記生成部は、前記第２のループ経路を介して取得可能なコンテンツに対する前記組み合わせを、前記第２のループ経路を介して取得可能なコンテンツを識別するコンテンツ名に共通する共通識別情報と、前記第２のループ経路を使用する際の出力ポートを対応付けた情報に置き換えることを、前記第２のループ経路に含まれる転送装置の各々に要求する制御パケットを生成することを特徴とする付記１に記載の制御装置。
（付記５）
前記生成部は、前記第２のループ経路に含まれず、かつ、前記第１のループ経路に含まれる転送装置に対して、当該転送装置から前記第２のループ経路のみに含まれる転送装置への経路であって各ループ経路を介さない経路を削除することを要求する制御パケットを生成することを特徴とする付記４に記載の制御装置。
（付記６）
前記生成部は、前記第１のループ経路と前記第２のループ経路の両方に含まれる転送装置が存在しない場合、前記第１のループ経路に属する各転送装置と前記第２のループ経路に属する各転送装置との間で、隣接する転送装置に対して、互いのループ経路を接続する通信経路を特定する前記組み合わせを追加することを要求する制御パケットを生成することを特徴とする付記４に記載の制御装置。
（付記７）
パケットを転送可能な転送装置であって、
コンテンツ名と前記コンテンツ名で識別されるコンテンツの取得要求の出力先となるポートとの組み合わせを記憶する記憶部と、
前記転送装置を含むループ経路を介して取得可能なコンテンツに対する前記組み合わせについて、前記ループ経路を介して取得可能なコンテンツを識別するコンテンツ名に共通する共通識別情報と前記ループ経路を使用する際の出力ポートを対応付けた情報に置き換えることを要求する制御パケットを受信すると、前記記憶部の情報を更新する更新部と、
コンテンツの取得を要求するメッセージを受信すると、前記記憶部に記憶された情報を用いて特定される出力先に、前記メッセージを転送する通信部
を備えることを特徴とする転送装置。
（付記８）
前記通信部は、前記転送装置を含まない他のループ経路を介して取得可能なコンテンツに対する前記組み合わせを、前記転送装置から前記他のループ経路に含まれる転送装置の何れかに至る通信経路を用いた通信を行う際の出力ポートと前記共通識別情報を対応付けた情報に置き換えることを要求する他の制御パケットを受信し、
前記更新部は、前記共通識別情報を含むコンテンツ名で識別されるコンテンツのうち、前記転送装置に接続されたサーバに格納されているコンテンツ以外のコンテンツに関する前記組み合わせを、前記他の制御パケットを用いて更新する
ことを特徴とする付記７に記載の転送装置。
（付記９）
パケットを転送可能な転送装置であって、
コンテンツ名と前記コンテンツ名で識別されるコンテンツの取得要求の出力先となるポートとの組み合わせを記憶する記憶部と、
前記転送装置を含むループ経路に接続している接続ポートが通知されると、前記記憶部に記憶されている前記組み合わせのうち、前記転送装置に接続されたサーバに記憶されていないコンテンツに対する前記組み合わせを、前記サーバに記憶されていないコンテンツを識別する識別情報に共通する共通識別情報と前記接続ポートを対応付けた情報で更新する更新部と、
コンテンツの取得を要求するメッセージを受信すると、前記記憶部に記憶された情報を用いて特定される出力先に、前記メッセージを転送する通信部
を備えることを特徴とする転送装置。
（付記１０）
前記記憶部に格納されている前記組み合わせの数が閾値以上であることを検出する検出部をさらに備え、
前記更新部は、前記接続ポートが通知され、かつ、前記記憶部に格納されている前記組み合わせの数が閾値以上であることを前記検出部が検出すると、前記更新処理を実行する
ことを特徴とする付記９に記載の転送装置。
（付記１１）
コンテンツ名と前記コンテンツ名で識別されるコンテンツの取得要求の出力先となるポートとの組み合わせを記憶する複数の転送装置を制御する制御装置が、
前記複数の転送装置の少なくとも一部を通るループ経路を検索し、
前記ループ経路を介して取得可能なコンテンツに対する前記組み合わせを、前記ループ経路を介して取得可能なコンテンツを識別するコンテンツ名に共通する共通識別情報と、前記ループ経路を使用する際の出力ポートを対応付けた情報に置き換えることを、前記ループ経路に含まれる転送装置の各々に要求する制御パケットを生成し、
前記ループ経路に含まれる転送装置の各々に、前記制御パケットを送信する
処理を行うことを特徴とする通信方法。
（付記１２）
前記ループ経路に含まれている転送装置の各々は、
前記制御パケットを受信すると、前記ループ経路を介して取得可能なコンテンツに対する前記組み合わせを、前記共通識別情報と当該転送装置が前記ループ経路を使用する際の出力ポートを対応付けた情報に置換し、
コンテンツの取得を要求するメッセージを受信すると、前記制御パケットを用いて置換処理を行った後に記憶部に記憶している情報から特定される出力先に、前記メッセージを転送する
ことを特徴とする付記１１に記載の通信方法。
（付記１３）
前記制御装置は、前記ループ経路に含まれていない転送装置の各々について、
当該転送装置から前記ループ経路に含まれる転送装置の何れかに至る通信経路を特定し、
当該転送装置に対して、前記共通識別情報を含むコンテンツ名で識別されるコンテンツのうち、当該転送装置に直接接続されているサーバに格納されているコンテンツ以外のコンテンツに関する前記組み合わせを、前記通信経路を用いた通信を行う際に用いる出力ポートに前記共通識別情報を対応付けた情報に置き換えることを要求する他の制御パケットを送信する、
ことを特徴とする付記１１または１２に記載の通信方法。
【符号の説明】
【０１６７】
５  サーバ
１０  制御装置
１１、４１  通信部
２０、５０、７５  制御部
２１  取得処理部
２２  検索部
２３  生成部
３０、６０  記憶部
３１  トポロジ情報
３２  情報転送テーブル情報
３３、６３  コンテンツ情報
４０、７０  転送装置
４２  送信部
４３  受信部
５１  転送処理部
５２  テーブル更新部
６１  情報転送テーブル
６２  ペンディングインタレストテーブル
６４  ループ情報
７６  判定部
７７  更新部
８０  通信装置
１０１  プロセッサ
１０２  メモリ
１０３  バス
１０４  ネットワーク接続装置
【図１】
2018098765.tif 000003
【図２】
2018098765.tif 000004
【図３】
2018098765.tif 000005
【図４】
2018098765.tif 000006
【図５】
2018098765.tif 000007
【図６】
2018098765.tif 000008
【図７】
2018098765.tif 000009
【図８】
2018098765.tif 000010
【図９】
2018098765.tif 000011
【図１０】
2018098765.tif 000012
【図１１】
2018098765.tif 000013
【図１２】
2018098765.tif 000014
【図１３】
2018098765.tif 000015
【図１４】
2018098765.tif 000016
【図１５】
2018098765.tif 000017
【図１６】
2018098765.tif 000018
【図１７】
2018098765.tif 000019
【図１８】
2018098765.tif 000020
【図１９】
2018098765.tif 000021
【図２０】
2018098765.tif 000022
【図２１】
2018098765.tif 000023
【図２２】
2018098765.tif 000024
【図２３】
2018098765.tif 000025
【図２４】
2018098765.tif 000026
【図２５】
2018098765.tif 000027
【図２６】
2018098765.tif 000028
【図２７】
2018098765.tif 000029
【図２８】
2018098765.tif 000030
【図２９】
2018098765.tif 000031