(58)【調査した分野】(Int.Cl.,DB名)
前記フィールド設定部は、前記送信されたブロッククエリに対応する複数のセグメントの状態フィールドをそれぞれ設定することを特徴とする請求項1に記載のコンテンツ名ベースの端末装置。
前記クエリ生成部は、前記ブロッククエリに対応する複数のセグメントのうち少なくとも1つが予め設定された満了時間内に受信された場合、前記送信範囲を調整し、前記調整された送信範囲および前記コンテンツ名を含むブロッククエリを生成することを特徴とする請求項1に記載のコンテンツ名ベースの端末装置。
前記ブロッククエリに対応する複数のセグメントを、前記ブロッククエリの送信方向を示す送信ポートと同じポートを用いて受信するコンテンツ受信部をさらに含むことを特徴とする請求項1に記載のコンテンツ名ベースの端末装置。
前記コンテンツ受信部は、互いに異なるルーティング経路を有する前記ブロッククエリに対応する複数のセグメントを受信することを特徴とする請求項4に記載のコンテンツ名ベースの端末装置。
前記送信されたブロッククエリに対応する複数のセグメントの状態フィールドをそれぞれ設定するステップをさらに含むことを特徴とする請求項6に記載のコンテンツ名ベースのルーティング方法。
前記ブロッククエリを生成するステップは、前記ブロッククエリに対応する複数のセグメントのうち少なくとも1つが予め設定された満了時間内に受信された場合、前記送信範囲を調整するステップと、
前記調整された送信範囲および前記コンテンツ名を含むブロッククエリを生成するステップと、
を含むことを特徴とする請求項6に記載のコンテンツ名ベースのルーティング方法。
前記ブロッククエリに対応する複数のセグメントを、前記ブロッククエリの送信方向を示す送信ポートと同じポートを用いて受信するステップをさらに含むことを特徴とする請求項6に記載のコンテンツ名ベースのルーティング方法。
前記受信されたブロッククエリに対応する複数のセグメントは、互いに異なるルーティング経路を有することを特徴とする請求項9に記載のコンテンツ名ベースのルーティング方法。
前記要請されたコンテンツが格納されているか否かに応じて、前記検索されたコンテンツ名に対応する送信方向を示す送信ポートに前記ブロッククエリを送信するクエリ送信部をさらに含むことを特徴とする請求項11に記載のコンテンツ名ベースの端末装置。
前記フィールド設定部は、前記ルーティングテーブルで前記要請されたコンテンツの状態フィールドを設定し、前記ブロッククエリに対応する複数のセグメントを対象に、前記ブロッククエリの受信方向を示す受信ポートを設定することを特徴とする請求項11に記載のコンテンツ名ベースの端末装置。
前記ブロッククエリに対応する複数のセグメントを前記設定された受信方向を示す受信ポートと同じポートを用いて、それぞれ送信するコンテンツ送信部をさらに含むことを特徴とする請求項13に記載のコンテンツ名ベースの端末装置。
前記要請されたコンテンツが格納されていない場合、前記送信されたブロッククエリに対応する複数のセグメントのうちの少なくとも1つのセグメントを、前記ブロッククエリの送信方向を示す送信ポートと同じポートを用いて受信するコンテンツ受信部をさらに含むことを特徴とする請求項13に記載のコンテンツ名ベースの端末装置。
前記要請されたコンテンツが格納されているか否かに応じて、前記検索されたコンテンツ名に対応する送信方向を示す送信ポートに前記ブロッククエリを送信するステップをさらに含むことを特徴とする請求項16に記載のコンテンツ名ベースのルーティング方法。
前記ブロッククエリに対応する複数のセグメントを前記ブロッククエリの受信方向を示す受信ポートと同じポートを用いて、それぞれ送信するステップをさらに含むことを特徴とする請求項18に記載のコンテンツ名ベースのルーティング方法。
前記要請されたコンテンツが格納されていない場合、前記送信されたブロッククエリに対応する複数のセグメントのうちの少なくとも1つのセグメントを、前記ブロッククエリの送信方向を示す送信ポートと同じポートを用いて受信するステップをさらに含むことを特徴とする請求項18に記載のコンテンツ名ベースのルーティング方法。
前記送信方向を示す送信ポートフィールドに設定されたポートを用いて前記クエリが送信され、前記クエリに対応するコンテンツは前記クエリの送信方向を示す送信ポートと同じポートを用いて受信され、
前記受信方向を示す受信ポートフィールドは前記クエリの受信方向を示す受信ポートを含み、前記クエリに対応するコンテンツは前記クエリの受信方向を示す受信ポートと同じポートを用いて送信されることを特徴とする請求項21に記載のルーティングテーブルを用いるネットワーク装置。
前記ブロッククエリはコンテンツ名および送信範囲を含み、前記送信範囲は前記ブロッククエリに対応する2つ以上のセグメントのうち、開始セグメントおよび最後のセグメントを含むことを特徴とする請求項21に記載のルーティングテーブルを用いるネットワーク装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ブロック単位でコンテンツクエリ(block contents query)を処理するコンテンツ名ベースの端末装置、ルーティング方法、及びルーティングテーブルを用いるネットワーク装置を提供する。
【課題を解決するための手段】
【0005】
本発明によるコンテンツ名ベースの端末装置は、複数のセグメントを含むコンテンツを対象に、コンテンツの送信範囲およびコンテンツ名を含むブロッククエリを生成するクエリ生成部と、生成されたブロッククエリに対応するコンテンツ名をルーティングテーブルから検索するテーブル検索部と、検索されたコンテンツ名に対応するフラグを設定し、生成されたブロッククエリに対応する複数のセグメントナンバを各ナンバフィールドに設定するフィールド設定部と、検索されたコンテンツ名に対応する送信方向を示す送信ポートにブロッククエリを送信するクエリ送信部と、を含み、ブロッククエリに対応する複数のセグメント
ナンバに対応するセグメントの送信方向を示す送信ポートが全て同じである。
【0006】
このとき、フィールド設定部は、送信されたブロッククエリに対応する複数のセグメントの状態フィールドをそれぞれ設定してもよい。
【0007】
また、クエリ生成部は、ブロッククエリに対応する複数のセグメントのうち少なくとも1つが予め設定された満了時間内に受信された場合、送信範囲を調整する。また、クエリ生成部は調整された送信範囲およびコンテンツ名を含むブロッククエリを生成してもよい。
【0008】
また、前記ブロッククエリに対応する複数のセグメントを、前記ブロッククエリの送信方向を示す送信ポートと同じポートを用いて受信するコンテンツ受信部をさらに含んでもよい。
【0009】
また、コンテンツ受信部は、互いに異なるルーティング経路を有するブロッククエリに対応する複数のセグメントを受信してもよい。
【0010】
本発明によるコンテンツ名ベースのルーティング方法は、複数のセグメントを含むコンテンツを対象に、コンテンツの送信範囲およびコンテンツ名を含むブロッククエリ(query)を生成するステップと、生成されたブロッククエリに対応するコンテンツ名をルーティングテーブルから検索するステップと、検索されたコンテンツ名に対応するフラグを設定するステップと、生成されたブロッククエリに対応する複数のセグメントナンバを各ナンバフィールドに設定するステップと、検索されたコンテンツ名に対応する送信方向を示す送信ポートにブロッククエリを送信するステップと、を含み、ブロッククエリに対応する複数のセグメント
ナンバに対応するセグメントの送信方向を示す送信ポートが全て同じである。
【0011】
また、前記送信されたブロッククエリに対応する複数のセグメントの状態フィールドをそれぞれ設定するステップをさらに含んでもよい。
【0012】
また、前記ブロッククエリを生成するステップは、前記ブロッククエリに対応する複数のセグメントのうち少なくとも1つが予め設定された満了時間内に受信された場合、前記送信範囲を調整するステップと、前記調整された送信範囲および前記コンテンツ名を含むブロッククエリを生成するステップと、を含んでもよい。
【0013】
また、前記ブロッククエリに対応する複数のセグメントを、前記ブロッククエリの送信方向を示す送信ポートと同じポートを用いて受信するステップをさらに含んでもよい。
【0014】
また、前記受信されたブロッククエリに対応する複数のセグメントは、互いに異なるルーティング経路を有してもよい。
【0015】
また、本発明によるコンテンツ名ベースの端末装置は、コンテンツを要請するブロッククエリを受信するクエリ受信部と、コンテンツは複数のセグメントを含み、ブロッククエリは複数のセグメントのうちの2つ以上を要請し、要請されたコンテンツに対応するコンテンツ名をルーティングテーブルから検索するテーブル検索部と、検索されたコンテンツ名に対応するフラグを設定するフィールド設定部とを含む。
【0016】
このとき、前記ブロッククエリに対応する複数のセグメント
ナンバに対応するセグメントの送信方向を示す送信ポートが全て同じである。
【0017】
また、前記要請されたコンテンツが格納されているか否かに応じて、検索されたコンテンツ名に対応する送信方向を示す送信ポートにブロッククエリを送信するクエリ送信部をさらに含んでもよい。
【0018】
また、フィールド設定部は、ルーティングテーブル前記要請されたコンテンツの状態フィールドを設定し、ブロッククエリに対応する複数のセグメントを対象に、ブロッククエリの受信方向を示す受信ポートを設定してもよい。
【0019】
また、ブロッククエリに対応する複数のセグメントを設定された受信方向を示す受信ポートと同じポートを用いて、それぞれ送信するコンテンツ送信部をさらに含んでもよい。
【0020】
このとき、要請されたコンテンツが格納されていない場合、送信されたブロッククエリに対応する複数のセグメントのうちの少なくとも1つのセグメントを、ブロッククエリの送信方向を示す送信ポートと同じポートを用いて受信するコンテンツ受信部をさらに含んでもよい。
【0021】
また、本発明によるコンテンツ名ベースのルーティング方法は、コンテンツを要請するブロッククエリを受信するステップと、コンテンツは複数のセグメントを含み、ブロッククエリは複数のセグメントのうちの2つ以上を要請し、要請されたコンテンツに対応するコンテンツ名をルーティングテーブルから検索するステップと、検索されたコンテンツ名に対応するフラグを設定するステップと、を含む。
【0022】
このとき、ブロッククエリに対応する複数のセグメント
ナンバに対応するセグメントの送信方向を示す送信ポートが全て同じである。
【0023】
また、要請されたコンテンツが格納されているか否かに応じて、検索されたコンテンツ名に対応する送信方向を示す送信ポートに前記ブロッククエリを送信するステップをさらに含んでもよい。
【0024】
さらに、本発明によるルーティングテーブルを用いるネットワーク装置は、複数のセグメントを含むコンテンツを対象に、コンテンツを検索するために用いられるコンテンツ名フィールドと、コンテンツを要請するクエリを送信するために用いられる送信方向を示す送信ポートフィールドと、クエリが受信された方向を示す受信方向を示す受信ポートフィールドと、クエリは、複数のセグメントのうちの2つ以上のセグメントを要請するブロッククエリを含み、クエリがブロッククエリであるか否かを示すフラグフィールドと、要請されたクエリに対応するセグメントのナンバを示すナンバフィールドとを含む。
【0025】
また、ルーティングテーブルは、送信されたクエリに対応するコンテンツが受信されたか否かを示す状態フィールドと、コンテンツの受信満了時間を示す時間フィールドとをさらに含んでもよい。
【0026】
このとき、送信方向を示す送信ポートフィールドに設定されたポートを用いてクエリが送信され、クエリに対応するコンテンツはクエリの送信方向を示す送信ポートと同じポートを用いて受信されてもよい。
【0027】
また、受信方向を示す受信ポートフィールドはクエリの受信方向を示す受信ポートを含み、クエリに対応するコンテンツはクエリの受信方向を示す受信ポートと同じポートを用いて送信されてもよい。
【0028】
また、ブロッククエリはコンテンツ名および送信範囲を含んでもよい。ここで、送信範囲は、ブロッククエリに対応する2つ以上のセグメントのうち、開始セグメントおよび最後のセグメントを含んでもよい。
【発明の効果】
【0029】
ブロック単位にコンテンツクエリを処理することによって、制御パケットの発生回数を減少させ、ネットワーク性能を向上できる。
【発明を実施するための形態】
【0031】
以下、本発明に係る好適な実施形態を添付の図面を参照して詳細に説明する。
【0032】
図1は、コンテンツ名ベースのネットワークシステムを示す図である。
【0033】
図1に示すように、ネットワークシステムは、コンテンツを要請する送信端末装置100、送信端末装置100とコンテンツを共有する受信端末装置200、少なくとも1つのネットワーク装置300を含んでもよい。ここで、ネットワーク装置300は、送、受信端末装置100、200間でコンテンツをルーティングする。
【0034】
一例として、送、受信端末装置100、200は、モバイルフォン、デスクトップ、PC、ノートブック、PDA、DMBフォン、プロキシノード(proxy node)などであり、ネットワーク装置300としてはスイッチ、ルータなどがある。他の例として、ネットワーク装置300が、送信端末装置100、受信端末装置200のような送、受信端末装置である。
【0035】
送信端末装置100は、コンテンツを要請するコンテンツクエリ(contents query)を送信する。すると、コンテンツクエリは、少なくとも1つのネットワーク装置300を介して受信端末装置200に送信される。
【0036】
このとき、受信端末装置200は、コンテンツクエリを分析して送信端末装置100が要請したコンテンツを送信端末装置100に送信する。コンテンツは、コンテンツクエリがルーティングされた経路を逆順に用いて送信端末装置100へ送信される。
【0037】
一例として、コンテンツクエリが第1ルータ301、第2ルータ302、第5ルータ305の順に送信されて受信端末装置200に受信された場合、受信端末装置200から送信されたコンテンツは、逆順に第5ルータ305、第2ルータ302、および第1ルータ301を介して送信端末装置100に送信する。
【0038】
このとき、コンテンツを送信する各ルータ305、302、301は、ルーティングテーブルを用いてコンテンツクエリが送信されたポートを用いて、対応するルータまたは送信端末装置100にコンテンツを送信する。ここで、ルーティングテーブルを用いてコンテンツを送信する過程は後述することにする。
【0039】
図2は、送信端末装置の構成を示す図である。
【0040】
図2に示すように、送信端末装置100は、クエリ生成部110、テーブル検索部120、フィールド設定部130、クエリ送信部140、およびコンテンツ受信部150を含む。
【0041】
クエリ生成部110は、コンテンツを構成する複数のセグメントを要請するクエリ、および複数のセグメントを2つ以上にグループ化して要請するブロッククエリを生成する。ここで、ブロッククエリは、コンテンツの送信範囲(block range)およびコンテンツ名(contents name)を含む。
【0042】
一例として、xyz.aviコンテンツを要請する場合、クエリ生成部110で生成されたブロッククエリは下記の表1の通りである。
【0044】
表1によれば、送信範囲は、要請するセグメントの開始セグメントナンバSnおよび最後のセグメントナンバSmで決まる。
【0045】
より詳しくは、
図3に示すように、送信範囲の大きさが5と予め設定され、セグメント3から要請する場合、クエリ生成部110は、セグメント3から7までを要請するブロッククエリを生成する。このとき、ブロッククエリに対応するセグメント3乃至7の送信方向を示す送信ポートは同一である。
図3の例は、コンテンツ名ベースのルーティングテーブルの例である。
【0046】
一例として、送信方向にポートが用いられる。すると、ブロッククエリに対応するセグメント3から7までの送信ポート(output port)は、
図3に示すように同一の「ポート0」である。
場合によっては、複数のセグメントが異なるポートから送受信される。
【0047】
また、クエリ生成部110は、要請したコンテンツの受信有無に基づいて送信範囲の大きさを調整する。例えば、クエリ生成部110は、範囲の大きさが1つづつ増加するよう調整する。このように、送信範囲の大きさが調整されると、要請するセグメントの送信範囲も調整される。
【0048】
一例として、セグメント3から7まで要請するブロッククエリが送信され、各セグメントに対応する満了時間(lifetime)内にいずれか1つのセグメントが受信された場合、クエリ生成部110は送信範囲の大きさを5から6に増加する。また、クエリ生成部110は、満了時間内にセグメントが1つづつ受信されるたびに送信範囲の大きさを1つづつ増加する。
【0049】
このとき、要請したセグメントのうち満了時間内に受信されていないセグメントが存在して再送信回数が基準回数を超過する場合、クエリ生成部110は送信範囲の大きさをデフォルトに再調整する。すなわち、クエリ生成部110は、6に増加した送信範囲の大きさをデフォルトの5に再調整する。
【0050】
テーブル検索部120は、ブロッククエリに対応するコンテンツ名をルーティングテーブルで検索する。
【0051】
一例として、
図3に示すように、テーブル検索部120は、コンテンツ名(abc.com/branch1/Comm_Lab/NWG/xvz.avi)を、ルーティングテーブルのコンテンツ名フィールド(名(name))の中で検索する。
その際、コンテンツ一致スキームは要請されたコンテンツに対する完全な一致を必ずしも要しない。
【0052】
例えば、テーブル検索部120は、最長一致(longest matching)を用いてルーティングテーブルに対応するコンテンツ名を検索する。すなわち、テーブル検索部120は、ブロッククエリに対応するコンテンツ名と最も多く一致するコンテンツ名をコンテンツ名フィールドで検索する。
【0053】
また、テーブル検索部120は、検索されたコンテンツ名に対応する送信方向を示す送信ポートを決める。
【0054】
一例として、テーブル検索部120は、
図3に示すように、ルーティングテーブルから検索されたコンテツ名に対応するセグメント3から7までの送信ポートを「0」と決定する。ここで、検索されたコンテンツ名に対応するセグメント3乃至7は、クエリ生成部110で生成されたブロッククエリの送信範囲に含まれるセグメントである。
【0055】
フィールド設定部130は、検索されたコンテンツ名に対応するフラグ(flag)フィールド、ナンバ(num.)フィールド、および状態(state)フィールドを設定する。
【0056】
一例として、フィールド設定部130は、検索されたコンテンツ名に対応するセグメントがブロッククエリであるか否かを示すためにフラグフィールドを設定する。このとき、ブロッククエリの場合、フィールド設定部130は、
図3に示すように、フラグフィールドを1と設定する。
【0057】
また、フィールド設定部130は、ブロッククエリの送信範囲に基づいて検索されたコンテンツ名に対応するナンバフィールドを設定する。一例として、フィールド設定部130は、
図3に示すように、ナンバフィールドをセグメント3から7まで設定する。
【0058】
また、ブロッククエリがクエリ送信部140から送信された場合、フィールド設定部130は、検索されたコンテンツ名に対応する状態フィールドを設定する。一例として、ブロッククエリに対応するセグメント3から7までの状態を「tentative」のように設定する。
【0059】
また、フィールド設定部130は、ブロッククエリに対応するセグメントがコンテンツ受信部150を介して受信された場合、受信されたセグメントの状態を「Active」のように設定する。すなわち、「tentative」は送信されたクエリに対応するセグメントが受信されていない状態であり、「active」は送信されたクエリに対応するセグメントが受信された状態を示す。
【0060】
クエリ送信部140は、クエリ生成部110で生成されたクエリを、ルーティングテーブルを検索して決められた送信方向を示す送信ポートを用いて送信する。
【0061】
一例として、ブロッククエリが生成され、送信方向を示す送信ポートが「0」と決められた場合、クエリ送信部140は、ポート0を介してブロッククエリを送信する。
【0062】
このとき、クエリ送信部140は、送信されたブロッククエリに対応するセグメントが予め設定された満了時間内に受信されていない場合、受信されていないセグメントを要請するクエリを再送信する。
【0063】
一例として、クエリ送信部140は、満了時間が経過した場合にセグメントの状態が「tentative」に対応するセグメントを要請するクエリを再送信する。
【0064】
また、クエリ送信部140は再送信回数をカウントする。ここで、再送信されたクエリに対応するセグメントが満了時間内に受信されない場合、クエリ送信部140は、再送信回数が予め設定された基準回数されるまで受信されていないセグメントを要請するクエリを継続して再送信する。
【0065】
このとき、基準回数を超過するまでセグメントが受信されていない場合、テーブル検索部120は、受信されていないセグメントに対応するフィールドをルーティングテーブルから削除する。
【0066】
一例として、基準回数が3、満了時間が4秒と予め設定され、セグメント3、4、6、7は受信され、セグメント5が3回の満了時間が経過しても受信されない場合、テーブル検索部120は、セグメント5に対応する送信方向を示す送信ポートフィールド、ナンバフィールド、状態フィールド、および満了時間フィールドをルーティングテーブルから削除する。
【0067】
すると、クエリ生成部110は、送信範囲の大きさをデフォルトである5に調整して、受信されていないセグメント5を含むブロッククエリを生成する。
【0068】
一例として、クエリ生成部110は、セグメント5、8、9、10、11を要請するブロッククエリを生成する。このとき、クエリ生成部110は、セグメント5のみを要請するクエリを生成する。すると、クエリ送信部140は、生成されたブロッククエリまたはクエリに対応する送信方向を示す送信ポートを用いてブロッククエリまたはクエリを送信する。
【0069】
コンテンツ受信部150は、ブロッククエリを送信した方向と同じ方向を用いてコンテンツを受信する。すると、テーブル検索部120は、ルーティングテーブルを検索して受信されたコンテンツの状態フィールドを設定する。場合によっては、ブロッククエリに対応する複数のセグメントは、互いに異なるルーティング経路を有する。
【0070】
一例として、セグメント3から7まで対応するブロッククエリがポート0を介して送信された場合、コンテンツ受信部150はセグメント3から7それぞれをポート0を介して受信する。このとき、受信された3から7までの各セグメントは互いに異なるルータを経由して送信端末装置100のポート0を介して受信されてもよい。すると、テーブル検索部120は、セグメント3から7それぞれの状態フィールドを「tentative」から「active」に変更して設定する。
【0071】
ここで、複数のネットワーク装置を介してコンテンツが受信される場合、コンテンツは、ブロッククエリが送信された複数のネットワーク装置のポートを逆順に用いて送信端末装置100により受信される。
【0072】
図4は、送信端末装置の動作を説明するためのフローチャートである。
【0073】
図4に示すように、クエリ生成部110は、複数のセグメントを含むコンテンツを対象にブロッククエリを生成する(S410)。ここで、ブロッククエリは送信範囲およびコンテンツ名を含む。
【0074】
一例として、セグメント3から7までを要請する場合、ブロッククエリの送信範囲は、開始セグメント3と最後のセグメント7を含む。
【0075】
このとき、クエリ生成部110は、1つのセグメントを要請するクエリ、または、2つ以上のセグメントを要請するブロッククエリを生成する。
【0076】
次に、テーブル検索部120は、生成されたブロッククエリの送信方向を示す送信ポートをを決める(S415)。
【0077】
一例として、テーブル検索部120は、
図3に示すように、ルーティングテーブルでコンテンツ名を検索し、検索されたコンテンツ名に対応する送信ポートを決める。ここで、検索されるコンテンツ名は、ブロッククエリを介して要請されるセグメントに対応するコンテンツ名である。
【0078】
すると、フィールド設定部130は、ブロッククエリに対応するコンテンツの状態フィールド、およびフラグフィールドを設定する(S420)。
【0079】
一例として、フィールド設定部130は、ブロッククエリに対応するセグメントの状態フィールドを「tentative」と設定し、フラグフィールドを「1」と設定する。
【0080】
また、クエリ送信部140は、決められた送信方向を示す送信ポートに生成されたブロッククエリを送信する(S430)。
【0081】
一例として、ルーティングテーブルを検索してセグメント3から7までの送信ポートが「0」と同一の場合、クエリ送信部140はポート0を介してブロッククエリを送信する。すると、コンテンツ受信部150は、ブロッククエリを送信したポート0を介してブロッククエリに対応するセグメント3乃至7を受信する。このとき、ブロッククエリに対応する複数のセグメントは、互いに異なるルーティング経路を有する。
【0082】
次に、要請したコンテンツが満了時間内に受信された場合(S440で「はい」)、クエリ生成部110は、送信範囲の大きさを調整する(S450)。すなわち、送信されたブロッククエリに対応するセグメントが満了時間内に受信された場合、クエリ生成部110は送信範囲の大きさを調整する。
【0083】
一例として、送信範囲の大きさがデフォルトの5に予め設定され、要請したセグメントのうちのいずれか1つを受信した場合、クエリ生成部110は、送信範囲の大きさが5から6に増加するよう調整する。このように、送信範囲の大きさを調整することによって、要請するセグメントの送信範囲を調整できる。
【0084】
逆に、満了時間内に要請したコンテンツが受信されていない場合(S440で「いいえ」)、クエリ送信部140は受信されていないコンテンツを要請するクエリを再送信する。
【0085】
より詳しくは、クエリ送信部140は、再送信したクエリの再送信回数をカウントし、満了時間内に要請したコンテンツが受信されていない場合、カウントされた再送信回数が予め設定された基準回数になるまでクエリを再送信する。
【0086】
一例として、再送信回数が基準回数以下である場合(S460で、「はい」)、クエリ送信部140は、セグメントの状態が「tentative」に対応するセグメントを要請するクエリを再送信する(S470)。
【0087】
このとき、再送信回数が基準回数を超過する場合(S460で、「いいえ」)、クエリ生成部110は、送信範囲の大きさをデフォルトに調整する(S480)。また、クエリ生成部110は、調整された送信範囲の大きさに基づいてデフォルト数のセグメントに対応するブロッククエリを生成する。
【0088】
すると、クエリ送信部140は、生成されたブロッククエリに対応する送信方向を示す送信ポートを用いてブロッククエリを送信する。このとき、送信されるブロッククエリには、調整された送信範囲および調整された送信範囲に対応するセグメントを含むコンテンツ名を含む。
【0089】
図5は、コンテンツ名ベースのネットワーク装置の構成を示す図である。
【0090】
図5に示すように、ネットワーク装置300は、クエリ受信部310、テーブル検索部320、フィールド設定部330、クエリ送信部340、コンテンツ受信部350、コンテンツ送信部360、および格納部370を含む。このとき、受信されたクエリに対応するコンテンツが格納された場合、ネットワーク装置300は受信端末装置200となる。受信端末装置200の場合、
図5に示すクエリ送信部340およびコンテンツ受信部350を省略する。
【0091】
また、
図5に示すテーブル検索部320、フィールド設定部330、クエリ送信部340、およびコンテンツ受信部350は、
図1に示すものと実質的に同一であるため、重複する説明は省略することにする。
【0092】
クエリ受信部310は、送信端末装置100からクエリまたはブロッククエリを受信する。ここで、ブロッククエリは、コンテンツ名および送信範囲を含む。このとき、送信範囲は開始セグメントナンバおよび最後のセグメントナンバを含む。すなわち、ブロッククエリは、コンテンツに含まれた複数のセグメントのうち2つ以上のセグメントを要請するために用いられる。
【0093】
一例として、20個のセグメントで構成されたコンテンツでセグメント3乃至7を要請するブロッククエリを受信した場合、送信範囲は開始セグメント3と最後のセグメント7を含む。
【0094】
すると、テーブル検索部320は、ブロッククエリに対応するコンテンツが格納部370に格納されているか否かを検索する。このとき、格納部370としてキャッシュ(cache)を用いてもよい。
【0095】
ここでコンテンツが格納されている場合、テーブル検索部320は、
図6に示すようなルーティングテーブルでコンテンツ名を検索する。
【0096】
また、フィールド設定部330は、検索されたコンテンツ名に対応する状態フィールド、フラグフィールド、および受信方向を示す受信ポートフィールドを設定する。ここで、受信方向を示す受信ポートフィールドはブロッククエリが受信されたポートを示す。
【0097】
一例として、ブロッククエリが受信された場合、フィールド設定部330は、ブロッククエリに対応するセグメントのフラグフィールドを「1」と設定する。
【0098】
また、状態フィールドを設定する場合、テーブル検索部320で格納部370にコンテンツが格納されたか否かを確認する間は、フィールド設定部330はブロッククエリに対応するセグメントの状態を「tentative」と設定する。
【0099】
また、コンテンツ送信部360によってブロッククエリに対応するコンテンツが送信された場合、フィールド設定部330はブロッククエリに対応するセグメントの状態を「tentative」から「active」に変更して設定する。
【0100】
コンテンツ送信部360は、受信方向を示す受信ポートフィールドを参照してブロッククエリに対応するコンテンツを、受信方向を示す受信ポートに送信する。すなわち、ブロッククエリがルータなどのネットワーク装置または送信端末装置から受信されたポートとコンテンツが送信されるポートとが同一であってもよい。
【0101】
一例として、ブロッククエリ620がポート2を介して受信された場合、フィールド設定部330は、
図6に示すようにブロッククエリ620に対応するセグメント3乃至7の受信方向を示す受信ポートフィールドを「2」に設定する。すると、テーブル検索部320はポート2をコンテンツの送信方向を示す送信ポートに決定し、コンテンツ送信部360はポート2を介してセグメント3乃至7を送信する。
【0102】
一方、コンテンツが格納されていない場合、テーブル検索部320はルーティングテーブルからコンテンツ名を検索し、検索されたコンテンツ名に対応する送信方向を示す送信ポートを決める。このとき、テーブル検索部320は、最長一致を用いてルーティングテーブルからコンテンツ名を検索する。
【0103】
一例として、
図6に示すように、テーブル検索部320はルーティングテーブルを検索してセグメント3乃至7の送信方向を示す送信ポートをポート「0」に決定する。すると、クエリ送信部340は、決められたポート0を介してセグメント3乃至7に対応するブロッククエリ610を送信する。
【0104】
このとき、送信されたブロッククエリに対応するセグメントが満了時間内に受信されない場合、テーブル検索部320は受信されていないセグメントに対応するフィールドをルーティングテーブルから削除する。ここで、ブロッククエリに対応するセグメントはコンテンツ受信部350を介して受信され得る。上述のように送信端末装置100は受信されていないセグメントを要請するクエリを再送信するが、ネットワーク装置300は受信されていないセグメントに対応するフィールドを、当該セグメントを再送信することなく削除してネットワークの送信負担を減少させる。
【0105】
また、コンテンツが格納されていない場合、フィールド設定部330はブロッククエリに対応するセグメント3乃至7の状態フィールド、フラグフィールド、ナンバフィールド、および受信方向を示す受信ポートフィールドを設定する。
【0106】
一例として、
図6に示すように、フィールド設定部330は、状態フィールドを「tentative」、フラグフィールドを「1」、ナンバフィールドに各セグメントナンバ、受信方向を示す受信ポートフィールドをポート「2」にそれぞれ設定する。
【0107】
図7は、コンテンツ名ベースのネットワーク装置の動作を説明するためのフローチャートである。
【0108】
図7に示すように、クエリ受信部310は送信端末装置100からブロッククエリを受信する(S710)。ここで、ブロッククエリはコンテンツ名および送信範囲を含み、コンテンツに含まれた複数のセグメントのうち2つ以上のセグメントを要請するために用いられる。
【0109】
このとき、フィールド設定部330は、ブロッククエリが受信されたポートをルーティングテーブルの受信方向を示す受信ポートフィールドに設定する。
【0110】
一例として
図6に示すように、ブロッククエリ620がポート「2」で受信された場合、フィールド設定部330は、ブロッククエリ620に対応する各セグメントの受信方向を示す受信ポートフィールドをポート「2」に設定する。
【0111】
次に、テーブル検索部320は要請されたコンテンツが格納されたか否かを検索する(S720)。
【0112】
一例として、テーブル検索部320は、格納部370にブロッククエリに対応するセグメントが格納されているか否かを検索する。ここで、格納部370としてキャッシュを用いてもよい。このとき、格納部370でコンテンツが検索されている間は、フィールド設定部330はブロッククエリに対応するセグメントの状態フィールドを「tentative」に設定する。
【0113】
また、コンテンツが格納されていない場合(S720、「いいえ」)、テーブル検索部320は、ルーティングテーブルからブロッククエリに含まれたコンテンツ名を検索する(S730)。このとき、テーブル検索部320は、最長一致を用いてルーティングテーブルでコンテンツ名を検索する。
【0114】
次に、テーブル検索部320は、検索されたコンテンツ名に基づいてルーティングテーブルでブロッククエリの送信方向を示す送信ポートを決定する(S740)。
【0115】
一例として、
図6に示すように、テーブル検索部は、検索されたコンテンツ名に対応するポート「0」をブロッククエリの送信方向を示す送信ポートに決定する。
【0116】
すると、クエリ送信部340は、決められた送信方向を示す送信ポートにブロッククエリを送信する(S750)。
【0117】
このとき、ブロッククエリが送信された後、満了時間内に要請されたコンテンツが受信された場合(S760、「はい」)、テーブル検索部320は、ルーティングテーブルを検索して受信されたコンテンツの送信方向を示す送信ポートを決定する(S770)。ここで、受信されたコンテンツの送信方向を示す送信ポートは、ステップS710で受信されたブロッククエリの受信ポートと同一であってもよい。一例として、コンテンツの送信方向を示す送信ポートはポート「2」に決定する。
【0118】
次に、コンテンツ送信部360は、決められたコンテンツの送信方向を示す送信ポートにコンテンツを送信する(S780)。
【0119】
一例として、ブロッククエリ620が送信端末装置100から受信された場合、コンテンツは、ポート「2」を介して送信端末装置100に送信されてもよい。また、ブロッククエリ620が他のネットワーク装置から受信された場合も、コンテンツはポート「2」を介してステップS710でブロッククエリ620を送信した当該ネットワーク装置に送信されてもよい。
【0120】
また、ステップS720において、要請されたコンテンツが格納されている場合であっても(S720、「はい」)、テーブル検索部320は格納されたコンテンツの送信方向を示す送信ポートを決定する。すると、コンテンツ送信部360は、格納されたコンテンツを決められた送信方向を示す送信ポートに送信する。
【0121】
また、フィールド設定部330は、送信されたコンテンツに対応する状態フィールドを「active」に変更して設定する。
【0122】
一方、ステップS760において、満了時間内に要請されたコンテンツが受信されていない場合(S760、「いいえ」)、テーブル検索部310は、ルーティングテーブルで受信されていないコンテンツに対応するフィールドを削除する(S790)。
【0123】
一例として、セグメント5が満了時間内に受信されていない場合、セグメント5に対応するフィールドをルーティングテーブルから削除する。
【0124】
今まで、ブロッククエリはコンテンツ名および送信範囲を含むものとして説明したが、上述の表1に示すように、ブロッククエリはドメインの名前をさらに含んでもよい。
【0125】
また、以上で
図3および
図6を参照して説明した通り、ブロッククエリに対応するセグメントはブロッククエリを送信したポートを用いて受信する。このとき、物理的には1つのポートが用いられるが、1つのポートは2つの論理インタフェースを含む。一例として、
図3および
図6において、ポート0は1つの物理的なポートにより構成されるが、ポート0は、ブロッククエリを送信する論理インタフェースとブロッククエリに対応するセグメントを受信する論理インタフェースを含む。従って物理的には1つのポートを用いているけれども、論理的にはブロッククエリの送信とセグメントの受信は区分される。同様に、ポート1〜ポート3それぞれは1つの物理ポートにより実現されるが、2つの論理インタフェースを含んでもよい。
【0126】
また他の実施例では、
図3および
図6に示す各ポートは二重化のために2つの物理ポートにより構成される。一例として、ポート0〜ポート3それぞれは2つの物理的なプライマリ(primary)ポートとセカンダリ(secondary)ポートを含む。すると、クエリ送信部140およびコンテンツ受信部150は、プライマリポートを用いてブロッククエリを送信し、送信されたブロッククエリに対応するセグメントを受信する。このとき、プライマリポートに異常が発生した場合、クエリ送信部140およびコンテンツ受信部150は、セカンダリポートを用いてブロッククエリを送信し、送信されたブロッククエリに対応するセグメントを受信する。
【0127】
また、本発明の実施形態に係る送信端末装置、受信端末装置、ネットワーク装置およびそのルーティング方法は、多様なコンピュータ手段を介して実行するプログラム命令形態に具現され、コンピュータ読取可能な記録媒体に記録される。前記コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともできる。前記媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスクおよび磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードを含む。上述のハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェア階層で作動するように構成され、その逆も同様である。
【0128】
以上、限定された、網羅的でない実施形態と図面によって本発明を説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような基材から多様な修正および変形が可能である。
【0129】
したがって、本発明の範囲は説明された実施形態に限定されて決められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものによって定められなければならない。