(57)【要約】【課題】本発明によれば、データブロックのブロードキャスト・マルチキャストする過程で、より重要なデータブロックに、より高いスケジューリング優先度を割当てることができる。これにより、ネットワーク符号化を採用する無線ネットワークにおける情報伝送の効率を高め、情報伝送の所要時間を低減する。【解決手段】データブロックのスケジューリング方法を開示しており、新たな情報のつけられているデータブロックを受信した後、当該データブロックと、前に受信して記憶したデータブロックとに基づいて１つの新たなデータブロックを生成し、当該新たなデータブロックの人気度を算出するステップと、算出した人気度に基づいて当該新たなデータブロックのスケジューリング優先度を得るステップと、スケジューリング優先度に基づいて前記新たなデータブロックをブロードキャスト・マルチキャストするステップとを含む。また、ネットワークノードを開示している。【選択図】図８
2008154245.tif 000002
【特許請求の範囲】
【請求項１】
データブロックのスケジューリング方法であって、
新たな情報のつけられているデータブロックを受信した後、当該データブロックと、前に受信して記憶したデータブロックとに基づいて、１つの新たなデータブロックを生成し、当該新たなデータブロックの人気度を算出するステップＡと、
算出した人気度に基づいて前記新たなデータブロックのスケジューリング優先度を得るステップＢと、
前記新たなデータブロックのスケジューリング優先度に基づいて前記新たなデータブロックをブロードキャスト・マルチキャストするステップＣと、
を含むことを特徴とするデータブロックのスケジューリング方法。
【請求項２】
ステップＡの前に、
受信したデータブロックに新たな情報がつけられているかどうかを判断し、新たな情報がつけられていない場合、受信したデータブロックを廃棄し、新たな情報がつけられている場合、ステップＡを実行する、
ことをさらに含むことを特徴とする請求項１に記載のデータブロックのスケジューリング方法。
【請求項３】
前記受信したデータブロックに新たな情報がつけられているかどうかを判断することは、
新たに受信したデータブロックの係数ベクトルと、前に受信して記憶した全てのデータブロックの係数ベクトルとで構成される行列を算出し、
算出した行列がフルランクであるかどうかを判断し、フルランクである場合、受信したデータブロックに新たな情報がつけられていると判断し、フルランクではない場合、受信したデータブロックに新たな情報がつけられていないと判断する、
ことを含むことを特徴とする請求項２に記載のデータブロックのスケジューリング方法。
【請求項４】
受信したデータブロックに新たな情報がつけられている場合、前記データブロックおよびその係数ベクトルを記憶する、
ことをさらに含むことを特徴とする請求項２に記載のデータブロックのスケジューリング方法。
【請求項５】
前記受信したデータブロックおよびその係数ベクトルを、現在ノードによってメンテナンスされる本ノードコンテンツテーブルに記憶することを特徴とする請求項３または４に記載のデータブロックのスケジューリング方法。
【請求項６】
ステップＡにおいて、前記１つの新たなデータブロックを生成することは、
現在記憶されているデータブロックの個数に基づいて、ガロア体から同じ個数の係数をランダムに選定し、
ランダムに選定した係数をそれぞれ前記記憶されているデータブロックと乗算し、得られる積を加算して前記新たなデータブロックを得る、
ことを含むことを特徴とする請求項１に記載のデータブロックのスケジューリング方法。
【請求項７】
ステップＡにおいて、前記新たなデータブロックの人気度を算出することは、
新たなデータブロックの人気度を、現在記憶されているデータブロックの個数に等しくする、
ことを含むことを特徴とする請求項１に記載のデータブロックのスケジューリング方法。
【請求項８】
ステップＡにおいて、前記新たなデータブロックの人気度を算出することは、
前記新たなデータブロックを必要とする隣接ノードの数を算出し、
新たなデータブロックの人気度を、前記算出した、前記新たなデータブロックを必要とする隣接ノードの数に等しくする、
ことを含むことを特徴とする請求項１に記載のデータブロックのスケジューリング方法。
【請求項９】
前記新たなデータブロックを必要とする隣接ノードの数を算出することは
前記新たなデータブロックを必要とする隣接ノードの数を０に設定するステップと、
現在ノードの全ての隣接ノードに対して、それぞれ、当該隣接ノードにとって前記新たなデータブロックに新たな情報がつけられているかどうかを判断し、新たな情報がつけられている場合、前記新たなデータブロックを必要とする隣接ノードの数を１加算するステップと、
を含むことを特徴とする請求項８に記載のデータブロックのスケジューリング方法。
【請求項１０】
前記当該隣接ノードにとって前記新たなデータブロックに新たな情報がつけられているかどうかを判断することは、
前記新たなデータブロックの係数ベクトルと、現在ノードに記憶されている、当該隣接ノードによって既に受信された全てのデータブロックの係数ベクトルとで構成される行列を算出し、
算出した行列がフルランクであるかどうかを判断し、フルランクである場合、当該隣接ノードにとって前記新たなデータブロックに新たな情報がつけられていると判断し、フルランクではない場合、当該隣接ノードにとって前記新たなデータブロックに新たな情報がつけられていないと判断する、
ことを含むことを特徴とする請求項９に記載のデータブロックのスケジューリング方法。
【請求項１１】
データブロックを受信した後、
受信したデータブロックから、当該データブロックを送信した隣接ノードによって既に受信して記憶されているデータブロックの係数ベクトルを得、前記係数ベクトルを記憶する、
ことをさらに含むことを特徴とする請求項１０に記載のデータブロックのスケジューリング方法。
【請求項１２】
前記隣接ノードによって既に受信して記憶されているデータブロックの係数ベクトルを、現在ノードによってメンテナンスされる隣接ノードコンテンツテーブルに記憶することを特徴とする請求項１０または１１に記載のデータブロックのスケジューリング方法。
【請求項１３】
ステップＢにおいて、前記算出した人気度に基づいて前記新たなデータブロックのスケジューリング優先度を得ることは、
データブロックの人気度とそのスケジューリング優先度との対応関係を確立し、
確立した対応関係および算出した人気度に基づいて前記新たなデータブロックのスケジューリング優先度を得る、
ことを含むことを特徴とする請求項１に記載のデータブロックのスケジューリング方法。
【請求項１４】
前記新たなデータブロックのコンテンション・ウィンドウの大きさが前記スケジューリング優先度によって決められ、当該新たなデータブロックのスケジューリング優先度が高いほど、そのコンテンション・ウィンドウを小さくし、当該新たなデータブロックのスケジューリング優先度が低いほど、そのコンテンション・ウィンドウを大きくし、
ステップＣにおいて、前記新たなデータブロックのコンテンション・ウィンドウの大きさに基づいて前記新たなデータブロックをブロードキャスト・マルチキャストする、
ことを特徴とする請求項１または１３に記載のデータブロックのスケジューリング方法。
【請求項１５】
ネットワークノードであって、
隣接ノードによって送信されたデータブロックを受信するデータブロック受信手段と、
データブロック受信手段からのデータブロックと、本ノードによって既に受信されたデータブロックとの係数ベクトルに基づいて、受信したデータブロックに新たな情報がつけられているかどうかを判断する算出判断手段と、
新たな情報のつけられているデータブロックと、本ノードによって既に受信されたデータブロックとに基づいて、新たなデータブロックを生成するデータブロック生成手段と、
新たなデータブロックの人気度を算出する人気度算出手段と、
人気度算出手段によって算出された、新たなデータブロックの人気度に基づいて、当該新たなデータブロックのスケジューリング優先度を決定する優先度制御手段と、
前記新たなデータブロックのスケジューリング優先度に基づいて、前記新たなデータブロックをブロードキャスト・マルチキャストするデータブロック送信手段と、
を含むことを特徴とするネットワークノード。
【請求項１６】
本ノードによって既に受信されたデータブロックと、前記受信されたデータブロックに対応する係数ベクトルとを記憶する、算出判断手段およびデータブロック生成手段に接続されている本ノードコンテンツ記憶手段をさらに含むことを特徴とする請求項１５に記載のネットワークノード。
【請求項１７】
前記人気度算出手段において、新たなデータブロックの人気度を、記憶されているデータブロックの個数に等しくすることを特徴とする請求項１６に記載のネットワークノード。
【請求項１８】
隣接ノードによって既に受信して記憶されているデータブロックの係数ベクトルを記憶する、前記データブロック受信手段および人気度算出手段に接続されている隣接ノードコンテンツ記憶手段をさらに含むことを特徴とする請求項１６に記載のネットワークノード。
【請求項１９】
前記人気度算出手段において、前記新たなデータブロックを必要とする隣接ノードの数を算出し、新たなデータブロックの人気度を、前記算出した、前記新たなデータブロックを必要とする隣接ノードの数に等しくすることを特徴とする請求項１８に記載のネットワークノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はスケジューリング技術に関し、特にネットワーク符号化技術ベースの無線ネットワークにおけるデータブロックのスケジューリング方法およびネットワークノードに関する。
【背景技術】
【０００２】
ネットワーク符号化（ｎｅｔｗｏｒｋ  ｃｏｄｉｎｇ）はネットワーク層でデータパケットに対して符号化を行う技術である。当該技術において、ネットワーク内のノードが、受信したパケットを符号化して、新たなパケットを生成してから転送することが認められている。情報理論（Ｉｎｆｏｒｍａｔｉｏｎ  ｔｈｅｏｒｙ）の原理に基づいて、最大フロー最小カット定理にはネットワークマルチキャストの理論容量（ｔｈｅｏｒｅｔｉｃａｌ  ｃａｐａｃｉｔｙ）の上限が与えられている。ところが、伝統的なルーティング方法ではこの理論上限値に達することができない。ネットワーク符号化はこの問題を解決するために提出されたものである。したがって、近年、ネットワーク符号化技術はますます注目されている。図１と図２はそれぞれ伝統的な蓄積転送（ｓｔｏｒｅ  ａｎｄ  ｆｏｒｗａｒｄ）ルーティングとネットワーク符号化ルーティングを示す図である。
【０００３】
図１に示すように、伝統的な蓄積転送型のルーティングモードにおいて、ソースノードと宛先ノードとを除いたネットワーク内のノードは、パケットを受信した後、何の処理もせず、ただそれを自分のメモリに記憶してから転送する。ネットワーク符号化技術を採用することにより、ネットワーク内のノードは受信したパケットを処理できるようになり、即ち、最も新しく受信したパケットと、キャッシュにおける既存のパケットとを符号化して、新たなパケットを生成してから転送することができるようになる。例えば、図２のノードＷは、まず受信したパケットｂ１とｂ２に対して排他的論理和演算（ｅｘｃｌｕｓｉｖｅ  ＯＲ  ｏｐｅｒａｔｉｏｎ）を行い、次に新たに生成した
【数１】
2008154245.tif 000003
【０００４】
をブロードキャスト・マルチキャストする。したがって、ネットワーク符号化のルーティング方法では、ネットワークにおいて伝送されるパケットに、実質上は複数の元のパケットの情報がつけられている。例えば、
【数２】
2008154245.tif 000004
【０００５】
にｂ１とｂ２の２つのパケットの情報がつけられている。さらに、図１と図２からわかるように、ソースノードＳからｂ１とｂ２の２つのパケットを宛先ノードＹとＺに送信するという目標を実現するために、伝統的な蓄積転送ルーティングを採用する場合、合わせて１０回の伝送で完成できる。一方、ネットワーク符号化技術を採用する場合、ノードＷが１回の伝送でｂ１とｂ２の２つのパケットの情報をノードＸに同時に送信できるので、ソースノードＳからｂ１とｂ２の２つのパケットを宛先ノードＹとＺに送信する伝送プロセスは合わせて９回の伝送で完成できる。したがって、ネットワーク符号化技術により、伝送回数を節約し、情報の伝送効率を高めることが可能となる。
【０００６】
現在、ネットワーク符号化技術の応用は、主に大規模なファイル配信、即ちソースノードから大量な情報をネットワーク内の他のノードに配信することに集中している。図３はネットワーク符号化の簡単な実例を示している。大規模なファイル配信の応用において、ソースノードによって配信されるファイルが大きすぎる一方、伝送帯域幅が有限であるため、ファイルの伝送前、ソースノードはまず元のファイルをｋ個の元の情報サブブロックＢ１，Ｂ２，…，Ｂｋに分割し、次にこのｋ個の元のサブブロックに対して線形符号化を行って、新たなファイルブロックＥ１，Ｅ２，…を生成して、その対応する係数もつけてネットワークで転送する。したがって、Ｅｉは全て元のサブブロックＢ１，Ｂ２，…，Ｂｋの線形結合（ｌｉｎｅａｒ  ｃｏｍｂｉｎａｔｉｏｎ）であり、その長さが元のサブブロックと同じであり、区別としては、Ｅｉの各々に一部または全部の元のデータサブブロックの情報がつけられていることである。
【０００７】
図３の
【数３】
2008154245.tif 000005
【０００８】
はガロア体（Ｇａｌｏｉｓ  ｆｉｅｌｄ）からランダムに選定した係数であり、それらをそれぞれ元のサブブロックＢ１，Ｂ２，…，Ｂｋと乗算して得られる積を加算した後、Ｅ１を得る。Ｅ２の生成方式は類似している。ガロア体が十分に大きければ、同じ係数または相関のある係数が選択される確率が十分に低いと思われる。研究では、大部分の実際のシステムにとって、２１６のガロア体が十分に大きいものであることが証明された。
【０００９】
ノードＡはファイル配信のソースノードから新たなブロックＥ１を受信した後、ネットワーク内の他のノードに新たなブロックをブロードキャスト・マルチキャストする。ノードＡのキャッシュにブロックＥ２が既に記憶されているため、ノードＡはブロックＥ１とブロックＥ２に対して線形符号化を行い、新たなブロックＥ３を得た後、ブロードキャスト・マルチキャストする。ここで、ノードＡがブロックＥ３を生成する手順は以下の通りである。ノードＡはガロア体から係数ｃ１およびｃ２をランダムに選択し、次にそれらをそれぞれＥ１およびＥ２と乗算し、得られる積を加算して、Ｅ３を得る。Ｅ１、Ｅ２が両方とも元のサブブロックＢ１，Ｂ２，…，Ｂｋの線形符号であるため、Ｅ３もこのｋ個の元のサブブロックの線形符号となる。説明すべきものとして、ノードＡは新たなデータブロックＥ３をブロードキャスト・マルチキャストすると共に、Ｅ３に対応する係数ベクトル
【数４】
2008154245.tif 000006
【００１０】
をブロードキャスト・マルチキャストする。
【００１１】
ネットワーク内の各ノードは新たなファイルブロックを受信した後、類似の処理を行う。このようにして、各ノードはｋ個の相関のないデータブロックおよびその係数ベクトルを受信さえすれば、元のファイルを復元することができる。ここで、元のファイルの再構築プロセスは連立一次方程式を解くことに類似している。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
無線ネットワークにおいて情報伝送がブロードキャスト・マルチキャスト方式で行われるため、２つのネットワークノードが同じメディアチャネルで自分のデータブロックを同時にブロードキャスト・マルチキャストする場合が不可避的に生じる。このような場合はネットワーク内の深刻な衝突問題につながる。特に、比較的重要な、多数の隣接ノードが必要とするデータブロックが衝突で失われた際、ネットワークの性能に大きな影響を生じる。いままで、伝統的なネットワーク符号化方法において、衝突問題をどのように有効に解決するかに関する内容はまだ触れられていない。
【００１３】
本発明は上記に鑑みてなされたものであり、ネットワーク符号化技術を採用する無線ネットワークに適用し、ネットワーク内の重要データの紛失を低減し、情報伝送の効率を高めることができる、データブロックのスケジューリング方法およびネットワークノードを提供する。
【課題を解決するための手段】
【００１４】
本発明に係るデータブロックのスケジューリング方法は、
新たな情報のつけられているデータブロックを受信した後、当該データブロックと、前に受信して記憶したデータブロックとに基づいて、１つの新たなデータブロックを生成し、当該新たなデータブロックの人気度を算出するステップＡと、
算出した人気度に基づいて前記新たなデータブロックのスケジューリング優先度を得るステップＢと、
前記新たなデータブロックのスケジューリング優先度に基づいて前記新たなデータブロックをブロードキャスト・マルチキャストするステップＣと、を含む。
【００１５】
ステップＡの前に、受信したデータブロックに新たな情報がつけられているかどうかを判断し、新たな情報がつけられていない場合、受信したデータブロックを廃棄し、新たな情報がつけられている場合、ステップＡを実行することをさらに含む。
【００１６】
前記受信したデータブロックに新たな情報がつけられているかどうかを判断することは、新たに受信したデータブロックの係数ベクトルと、前に受信して記憶した全てのデータブロックの係数ベクトルとで構成される行列を算出し、算出した行列がフルランク（ｆｕｌｌ  ｒａｎｋ）であるかどうかを判断し、フルランクである場合、受信したデータブロックに新たな情報がつけられていると判断し、フルランクではない場合、受信したデータブロックに新たな情報がつけられていないと判断することを含む。
【００１７】
前記方法は、受信したデータブロックに新たな情報がつけられている場合、当該データブロックおよびその係数ベクトルを記憶することをさらに含む。
【００１８】
前記受信したデータブロックおよびその係数ベクトルを、現在ノートによってメンテナンスされる本ノードコンテンツテーブルに記憶する。
【００１９】
ステップＡにおいて、前記１つの新たなデータブロックを生成することは、
現在記憶されているデータブロックの個数に基づいて、ガロア体から同じ個数の係数をランダムに選定し、
ランダムに選定した係数をそれぞれ前記記憶されているデータブロックと乗算し、得られる積を加算して前記新たなデータブロックを得る、ことをさらに含む。
【００２０】
ステップＡにおいて、前記新たなデータブロックの人気度を算出することは、新たなデータブロックの人気度を、現在記憶されているデータブロックの個数に等しくする、ことを含む。
【００２１】
ステップＡにおいて、前記新たなデータブロックの人気度を算出することは、前記新たなデータブロックを必要とする隣接ノードの数を算出し、新たなデータブロックの人気度を、前記算出した、前記新たなデータブロックを必要とする隣接ノードの数に等しくする、ことを含む。
【００２２】
前記新たなデータブロックを必要とする隣接ノードの数を算出することは、前記新たなデータブロックを必要とする隣接ノードの数を０に設定するステップと、現在ノードの全ての隣接ノードに対して、それぞれ、当該隣接ノードにとって前記新たなデータブロックに新たな情報がつけられているかどうかを判断し、新たな情報がつけられている場合、前記新たなデータブロックを必要とする隣接ノードの数を１加算するステップと、を含む。
【００２３】
前記当該隣接ノードにとって前記新たなデータブロックに新たな情報がつけられているかどうかを判断することは、
前記新たなデータブロックの係数ベクトルと、現在ノートに記憶されている、当該隣接ノードによって既に受信された全てのデータブロックの係数ベクトルとで構成される行列を算出し、
算出した行列がフルランクであるかどうかを判断し、フルランクである場合、当該隣接ノードにとって前記新たなデータブロックに新たな情報がつけられていると判断し、フルランクではない場合、当該隣接ノードにとって前記新たなデータブロックに新たな情報がつけられていないと判断する、ことを含む。
【００２４】
データブロックを受信した後、
受信したデータブロックから、当該データブロックを送信した隣接ノードによって既に受信して記憶されているデータブロックの係数ベクトルを得、前記係数ベクトルを記憶する、ことをさらに含む。
【００２５】
前記隣接ノードによって既に受信して記憶されているデータブロックの係数ベクトルを、現在ノートによってメンテナンスされる隣接ノードコンテンツテーブルに記憶する。
【００２６】
ステップＢにおいて、前記算出した人気度に基づいて前記新たなデータブロックのスケジューリング優先度を得ることは、
データブロックの人気度とそのスケジューリング優先度との対応関係を確立し、
確立した対応関係および算出した人気度に基づいて前記新たなデータブロックのスケジューリング優先度を得る、ことを含む。
【００２７】
前記新たなデータブロックのコンテンション・ウィンドウ（ｃｏｎｔｅｎｔｉｏｎ  ｗｉｎｄｏｗ）の大きさが前記スケジューリング優先度によって決められ、当該新たなデータブロックのスケジューリング優先度が高いほど、そのコンテンション・ウィンドウを小さくし、当該新たなデータブロックのスケジューリング優先度が低いほど、そのコンテンション・ウィンドウを大きくする。ステップＣにおいて、前記新たなデータブロックのコンテンション・ウィンドウの大きさに基づいて前記新たなデータブロックをブロードキャスト・マルチキャストする。
【００２８】
本発明に係るネットワークノードは、
隣接ノードによって送信されたデータブロックを受信するデータブロック受信手段と、
データブロック受信手段からのデータブロックと、本ノードによって既に受信されたデータブロックとの係数ベクトルに基づいて、受信したデータブロックに新たな情報がつけられているかどうかを判断する算出判断手段と、
新たな情報のつけられているデータブロックと、本ノードによって既に受信されたデータブロックとに基づいて、新たなデータブロックを生成するデータブロック生成手段と、
新たなデータブロックの人気度を算出する人気度算出手段と、
人気度算出手段によって算出された、新たなデータブロックの人気度に基づいて、当該新たなデータブロックのスケジューリング優先度を決定する優先度制御手段と、
前記新たなデータブロックのスケジューリング優先度に基づいて、前記新たなデータブロックをブロードキャスト・マルチキャストするデータブロック送信手段と、を含む。
【００２９】
本発明に係るネットワークノードは、
本ノードによって既に受信されたデータブロックと、前記受信されたデータブロックに対応する係数ベクトルとを記憶する、算出判断手段およびデータブロック生成手段に接続されている本ノードコンテンツ記憶手段をさらに含む。
【００３０】
前記人気度算出手段において、新たなデータブロックの人気度を、記憶されているデータブロックの個数に等しくする。
【００３１】
本発明に係るネットワークノードは、
隣接ノードによって既に受信して記憶されているデータブロックの係数ベクトルを記憶する、前記データブロック受信手段および人気度算出手段に接続されている隣接ノードコンテンツ記憶手段をさらに含む。
【００３２】
前記人気度算出手段において、前記新たなデータブロックを必要とする隣接ノードの数を算出し、新たなデータブロックの人気度を、前記算出した、前記新たなデータブロックを必要とする隣接ノードの数に等しくする。
【発明の効果】
【００３３】
ここからわかるように、本発明に係るスケジューリング方法およびネットワークノードは、新たなデータブロックの人気度に基づいてデータブロックにスケジューリング優先度を割当てることができる。また、１つのデータブロックの人気度は基本的に、他のノードによる当該データブロックへの需要度を反映でき、つまり、基本的に当該データブロックの重要度を反映しているため、より高いスケジューリング優先度をより重要なデータブロックに割当てることで、ネットワークにおけるデータブロック伝送の速度と有効性が高められる。これにより、ネットワークノードが元のファイルを復元する時間を最終的に低減し、ネットワーク符号化を採用する無線ネットワークにおける情報伝送の効率を高め、情報伝送の所要時間を低減する。
【発明を実施するための最良の形態】
【００３４】
本発明の目的と解決手段を更に明確にするように、以下、図面を参照して実施例を挙げながら本発明についてさらに詳しく説明する。
【００３５】
従来のネットワーク符号化ルーティング技術におけるデータブロックの衝突問題を解決するために、本発明の好適な実施例では、ネットワーク符号化技術を採用する無線ネットワークにおける、人気度に基づくスケジューリング方法を提供している。その基本思想として、メディアチャネルを競合する際、データブロックの人気度が高いほど、そのスケジューリング優先度を高く設定することによって、データブロックは人気度が高いほど、メディアチャネルを競合する過程において優位を得ることができる。
【００３６】
本実施例に係る方法において、現在ノードによって生成される新たなデータブロックの人気度がその隣接ノードのデータ記憶状況によって決められるため、ネットワーク内の各ノードが下記２つのテーブルを同時にメンテナンスする必要がある。１つは本ノードによって受信されたデータ情報を記憶する本ノードコンテンツテーブルであり、前記データ情報は受信されたデータブロック自身と当該データブロックに対応する係数ベクトルとを含む。もう１つは、隣接ノードのデータ情報、即ち隣接ノードによって既に受信されたデータブロックの係数ベクトルを記憶する隣接ノードコンテンツテーブルである。
【００３７】
一方、その隣接ノードが現在ノードの既存のデータ情報を分かるように、現在ノードは、新たなデータブロックをブロードキャスト・マルチキャストするときに、当該新たなデータブロックの係数ベクトルをつける必要があるばかりでなく、さらに、自分に既に記憶されているデータブロックの係数ベクトルもつけてよい。好ましくは、余分なオーバヘッドをなるべく減少するために、既に記憶されているデータブロックの係数ベクトルを、毎回送信することなく、比較的大きなサイクルで送信するようにしてよい。
【００３８】
図４は本実施例に係る、ネットワークノードが新たなデータブロックを受信した後の処理の一例を示すフローチャートである。図４を参照して、当該処理は下記のステップを含む。
【００３９】
ステップ４０１において、受信したデータブロックに基づいて、現在ノートの隣接ノードコンテンツテーブルにおける、当該隣接ノードに対応するデータブロックのベクトル情報を更新する。
【００４０】
本ステップにおいて、受信したデータブロックに当該新たなデータブロックの係数ベクトルのみがつけられている場合、受信したデータブロックの係数ベクトルに基づいて、現在ノートの隣接ノードコンテンツテーブルにおける、当該隣接ノードに対応するデータブロックのベクトル情報を更新する。受信したデータブロックに、当該新たなデータブロックの係数ベクトルに加えて、当該データブロックを送信した隣接ノードによって既に記憶されているデータブロックの係数ベクトルもつけられている場合、受信したデータブロックの係数ベクトルと、当該データブロックを送信した隣接ノードによって既に記憶されているデータブロックの係数ベクトルとに基づいて、現在ノートの隣接ノードコンテンツテーブルにおける、当該隣接ノードに対応するデータブロックのベクトル情報を更新する。
【００４１】
ステップ４０２において、新たに受信したデータブロックに新たな情報がつけられているかどうかを判断し、つけられていない場合、ステップ４０３に進み、つけられている場合、ステップ４０４に進む。
【００４２】
当該ステップにおいて、前記判断ステップは行列
【数５】
2008154245.tif 000007
【００４３】
のランクがフルランクであるかどうかを判断することによって実現される。ここで、
【数６】
2008154245.tif 000008
【００４４】
は新たに受信したデータブロックの係数ベクトルを表し、
【数７】
2008154245.tif 000009
【００４５】
は現在ノードによって既に受信して記憶されているデータブロックの係数ベクトルで構成される行列を指し、当該行列は現在ノードにメンテナンスされる本ノードコンテンツテーブルから得られることができる。当該結合後の新たな行列がフルランクではない場合、新たに受信したデータブロックと、当該ノードによって前に受信されたデータブロックとの間に線形相関があり、即ち当該新たに受信したデータブロックがそれらの古いデータブロックで線形表現されることができる。したがって、新たに受信したデータブロックは現在ノードが元のファイルを復元することに寄与しなく、即ち当該データブロックに新たな情報がつけられていないと判断する。逆に、当該結合後の新たな行列がフルランクである場合、当該新たに受信したデータブロックは、現在ノードが既に受信したデータブロックで線形表現されることができない。したがって、当該新たなデータブロックは現在ノードが元のファイルを復元することに寄与し、即ち、当該データブロックに新たな情報がつけられていると判断する。
【００４６】
ステップ４０３において、受信した、新たな情報がつけられていないデータブロックを廃棄する。
【００４７】
ステップ４０４において、現在ノードにメンテナンスされる本ノードコンテンツテーブルを更新し、新たに受信したデータブロックと当該データブロックに対応する係数ベクトルとを当該本ノードコンテンツテーブルに追加する。
【００４８】
ステップ４０５において、新たに受信したデータブロックと記憶した既存の古いデータブロックとに基づいて線形結合を行い、もう１つの新たなデータブロックを生成し、当該新たなデータブロックの人気度を算出する。
【００４９】
当該新たなデータブロックは次式のように算出して生成されるようにしてよい。
【数８】
2008154245.tif 000010
【００５０】
上式からわかるように、当該新たなデータブロックも元のサブブロックＢ１，Ｂ２，…，Ｂｋの線形結合である。
【００５１】
次に、ステップ４０５において当該新たなデータブロックに対応する人気度をどのように算出するかについて詳しく説明する。
【００５２】
本実施例において、新たなデータブロックの人気度は、当該新たなデータブロックを必要とする隣接ノードの数に等しい。ここで、当該新たなデータブロックを必要とする隣接ノードの数の算出方法は、当該新たなデータブロックの人気度の初期値を０に設定するステップと、現在ノードのあらゆる隣接ノードｘに対して、それぞれ、新たなデータブロックが隣接ノードの必要とするデータブロックであるかどうかを判断し、即ち、隣接ノードｘにとって新たな情報がつけられているかどうかを判断するステップとを含む。
【００５３】
前記判断の具体的な方法は、行列
【数９】
2008154245.tif 000011
【００５４】
のランクを算出し、当該行列がフルランクであるかどうかを判断することである。ここで、
【数１０】
2008154245.tif 000012
【００５５】
は新たなデータブロックの係数ベクトルであり、
【数１１】
2008154245.tif 000013
【００５６】
は隣接ノードｘに記憶されている全てのデータブロックの係数ベクトルで構成される行列であり、当該行列は現在ノードにメンテナンスされる隣接ノードコンテンツテーブルに基づいて得られることができる。
【００５７】
当該結合後の行列がフルランクである場合、隣接ノードｘにとって、当該新たなデータブロックに新たな情報がつけられており、即ち、隣接ノードｘが当該新たなデータブロックを必要とすると判断し、この場合、新たなデータブロックに対応する人気度を１加算し、逆に、当該結合後の行列がフルランクではない場合、新たなデータブロックと、隣接ノードｘに記憶されているデータブロックとの間に線形相関があり、隣接ノードｘは元のファイルを復元する際に当該新たなデータブロックを必要としないと判断し、当該新たなデータブロックの人気度をそのまま維持する。
【００５８】
上記の算出プロセスからわかるように、現在ノードのあらゆる隣接ノードに対して上記判断をした後、新たなデータブロックを必要とする隣接ノードの数が、当該新たなデータブロックに対応する人気度である。
【００５９】
ステップ４０６において、新たなデータブロックをブロードキャスト・マルチキャストする。
【００６０】
ブロードキャスト・マルチキャストする過程において、メディアアクセス制御層でメディアチャネルを競合するためのデータブロックのスケジューリング優先度は算出した人気度によって決められる。即ち、当該データブロックは、人気度が高いほど、メディアチャネルを競合するためのスケジューリング優先度が高い。本実施例において、メディアチャネルを競合するためのスケジューリング優先度の高さは、異なる人気度を有するデータブロックのコンテンション・ウィンドウの大きさを制御することによって実現される。ここで、データブロックの人気度が低いほど、当該データブロックのコンテンション・ウィンドウを大きくし、逆に、データブロックの人気度が高いほど、当該データブロックのコンテンション・ウィンドウを小さくする。
【００６１】
図５はコンテンション・ウィンドウの大きさと人気度とのマッピング図である。図５で、元のファイルが１００個のデータブロックに分割され、１個のデータブロックの人気度、データブロックのスケジューリング優先度およびコンテンション・ウィンドウが全て８クラスに分けられることを想定する。例えば、データブロックの人気度が０〜１２の範囲にある場合、当該データブロックのスケジューリング優先度が０、対応するコンテンション・ウィンドウが２９〜３１となり、データブロックの人気度が１３〜２５の範囲にある場合、当該データブロックのスケジューリング優先度が１、対応するコンテンション・ウィンドウが２７〜２９となり、…、データブロックの人気度が８８〜１００の範囲にある場合、当該データブロックのスケジューリング優先度が７以上、対応するコンテンション・ウィンドウが１５〜１７となる。データブロックのコンテンション・ウィンドウを決定した後、メディアアクセス制御層は現在データブロックの人気度とマッピング図とに基づいてそのコンテンション・ウィンドウの大きさを判断する。
【００６２】
ここまで、本実施例においてノードが新たなデータブロックを受信した後の処理フローが全部終了した。
【００６３】
図６および図７はそれぞれ上記実施例に係る方法によりネットワーク符号化処理を行う場合に、ネットワークオペレーションのスタートから若干時間を経過した後の２つの時刻での動作中の各ネットワークノードの動作状況を示す図である。
【００６４】
図６に示すように、ｔ＝ｔ１のとき、ノードＢとノードＤはそれぞれ自分が新たに受信したデータブロックＥ１とＥ２を隣接ノードにブロードキャスト・マルチキャストする。ノードＢの隣接ノードＡとＣがデータブロックＥ１を既に受信して記憶し、ノードＢの隣接ノードコンテンツテーブルにノードＡのデータブロックの状況が既に記憶されていることを想定する。すると、ノードＢが続いてＥ１を転送するとき、当該データブロックの人気度は０であり、ノードＡとノードＣは、Ｅ１を受信した後、本ノードコンテンツテーブルを更新することなく、ノードＢに対応する隣接ノードコンテンツテーブルのみを更新する。同時に、ノードＤは新たに受信したデータブロックＥ２と、対応の係数ベクトルＶ２とを転送する。現在ノードＤの隣接ノードコンテンツテーブルが空いているので、公平のために、Ｅ２の人気度を４に予め設定する。ノードＣとノードＥはデータブロックＥ２を受信したとき、両方とも本ノードコンテンツテーブルと隣接ノードコンテンツテーブルとを更新する。原因として、データブロックＥ２はノードＣとノードＥにとって新たな情報がつけられているデータブロックである。
【００６５】
図７に示すように、ｔ＝ｔ２のとき、ノードＣは受信したデータブロックＥ１とＥ２に基づいて新たなデータブロックＥ３を生成し、その対応する人気度を算出する。ノードＣは３つの隣接ノードＡ、ＢおよびＤを有し、現在、この３つの隣接ノードの各々に既に記憶されているデータブロックとＥ３との間に線形相関がないため、Ｅ３の人気度は３となる。同様に、ノードＥもその１つ前の時刻に受信したデータブロックＥ２を転送する。ノードＥに現在記録されている唯一の隣接ノードＤはデータブロックＥ２を送信したノードとしてデータブロックＥ２を必要としないため、このとき、ノードＥによって転送されたデータブロックＥ２の人気度は０となる。したがって、ノードＣおよびＥはチャネルを競合するとき、ノードＣによって送信されたデータブロックＥ３の人気度がより高いため、ノードＣがメディアチャネルリソースの取得に成功する。
【００６６】
上記方法からわかるように、データブロックの人気度は基本的に他のノードによる当該データブロックへの需要度を反映しており、つまり基本的に当該データブロックの重要度を反映しているため、より高いスケジューリング優先度をより重要なデータブロックに割当てることで、ネットワークにおけるデータブロック伝送の速度と有効性が高められる。これにより、最終的にネットワークノードが元のファイルを復元する時間がさらに短くなる。
【００６７】
また、上記方法のほかに、本発明の他の好適な実施例では、簡略化された方法を提供している。その基本思想は前の実施例と同じであり、つまりメディアチャネルを競合するとき、データブロックは人気度が高いほど、そのスケジューリング優先度を高く設定することによって、データブロックは人気度が高いほど、メディアチャネルを競合する過程において優位性を確保することができる。しかしながら、前の実施例との区別として、本実施例に係る方法では、新たなデータブロックの人気度は現在ノードが既に受信したデータブロックの記憶状況によって決められるため、ネットワーク内の各ノードは、隣接ノードコンテンツテーブルをメンテナンスすることなく、自分が受信したデータ情報を記憶するための本ノードコンテンツテーブルをメンテナンスするだけでよい。
【００６８】
本実施例に係る方法は図８に示すように、主に以下のステップを含む。
【００６９】
ステップ８０１において、データブロックを新たに受信した後、新たに受信したデータブロックに新たな情報がつけられているかどうかを判断し、つけられていない場合、ステップ８０２に進み、つけられている場合、ステップ８０３に進む。
【００７０】
当該ステップにおいて、新たに受信したデータブロックに新たな情報がつけられているかどうかを判断する方法は、上記ステップ４０２と同じである。即ち、まず、行列
【数１２】
2008154245.tif 000014
【００７１】
のランクを算出し、当該結合後の新たな行列がフルランクではない場合、新たに受信したデータブロックに新たな情報がつけられていないと判断する。逆に、当該結合後の新たな行列がフルランクである場合、当該新たに受信したデータブロックに新たな情報がつけられていると判断する。
【００７２】
ステップ８０２において、受信した、新たな情報がつけられていないデータブロックを廃棄する。
【００７３】
ステップ８０３において、現在ノードにメンテナンスされる本ノードコンテンツテーブルを更新し、新たに受信したデータブロックと当該データブロックに対応する係数ベクトルとを当該本ノードコンテンツテーブルに追加する。
【００７４】
ステップ８０４において、新たに受信したデータブロックと記憶した既存の古いデータブロックとに基づいて線形結合を行って、もう１つの新たなデータブロックを生成し、当該新たなデータブロックの人気度を算出する。
【００７５】
ここで、新たなデータブロックの生成プロセスが上記ステップ４０５と同じであるため、得られる新たなデータブロックも元のサブブロックＢ１，Ｂ２，…，Ｂｋの線形結合である。
【００７６】
しかしながら、前の実施例との区別として、当該ステップでは、新たなデータブロックの人気度が、現在ノードのキャッシュに現在記憶されているデータブロックの数に等しい。即ち、当該ノードに既に受信して記憶されているデータブロックの数が、その新たなデータブロックの人気度である。
【００７７】
ステップ８０５において、新たなデータブロックをブロードキャスト・マルチキャストする。
【００７８】
上記ステップ４０６と同様に、ブロードキャスト・マルチキャストする過程において、メディアアクセス制御層でメディアチャネルを競合するためのデータブロックのスケジューリング優先度は、算出した人気度によって決められる。即ち、当該データブロックの人気度が高いほど、そのメディアチャネルを競合するためのスケジューリング優先度が高い。当該ステップの具体的な実現方法も上記ステップ４０６に係る方法と同じである。優先度と、当該ノードに既に受信して記憶されているデータブロックの数である人気度とのマッピング関係を決定するために、ネットワーク内のあらゆるノードは、元のファイルから分割されたサブブロックの数を知る必要がある。これを実現するには、ソースノードがビーコン（ｂｅａｃｏｎ）など制御情報をブロードキャスト・マルチキャストするときに、前記元のファイルから分割されたサブブロックの数をついでにつけるようにしてよい。
【００７９】
本実施例において、各データブロックの人気度は他のノードによる当該データブロックへの需要度と直接的な関係を持っていないが、上記方法によって、比較的多くのデータブロックが記憶されているノードは、先にメディアチャネルリソースを得て、先に自分が生成した新たなデータを送信することが可能になる。各ノードは自分に記憶されているデータブロックに基づいて新たなデータブロックを生成するものであるため、通常の場合、比較的多くのデータブロックを記憶したノードによって生成された新たなデータブロックにつけられている新たな情報も比較的多く、それに相応して前記新たなデータブロックが比較的重要である。したがって、上記方法によってより高いスケジューリング優先度をより重要なデータブロックに割当てることもでき、ネットワークにおけるデータブロック伝送の速度と有効性が高められる。これにより、最終的に、ネットワークノードが元のファイルを復元する時間がさらに短くなる。
【００８０】
図９は本発明を実現するノードの内部構成を示す図である。図９からわかるように、本発明に係るノードは、主に、データブロック受信手段と、本ノードコンテンツ記憶手段と、算出判断手段と、データブロック生成手段と、人気度算出手段と、優先度制御手段と、データブロック送信手段とを含む。
【００８１】
ここで、前記データブロック受信手段は、データブロックを受信し、受信したデータブロックを算出判断手段に送信する。
【００８２】
前記本ノードコンテンツ記憶手段は、本ノードが既に受信したデータ情報を記憶する。前記データ情報は、本ノードが既に受信したデータブロックと、これらのデータブロックに対応する係数ベクトルとを含む。
【００８３】
前記算出判断手段は、新たに受信したデータブロックと、本ノードコンテンツ記憶手段に記憶されている受信済みデータブロックに対応する係数ベクトルとに基づいて、新たに受信したデータブロックと、既存のデータブロックとの間に線形相関があるかどうかを算出して判断し、線形相関がある場合、受信したデータブロックに新たな情報がつけられていなく、当該データブロックを廃棄すべきであり、線形相関がない場合、受信したデータブロックに新たな情報がつけられており、自分に記憶されている受信済みデータ情報を更新するよう本ノードコンテンツ記憶手段に知らせ、受信したデータブロックをデータブロック生成手段に送信する。
【００８４】
前記データブロック生成手段は、前記本ノードコンテンツ記憶手段に記憶されている受信済みデータブロックと、新たに受信したデータブロックとに基づいて、もう１つの新たなデータブロックを生成し、生成した新たなデータブロックを人気度算出手段とデータブロック送信手段とに送信する。
【００８５】
前記人気度算出手段は、新たなデータブロックの人気度を算出する。
【００８６】
ここで、人気度算出手段は、図８に示す好適な実施例の方法で、新たなデータブロックの人気度を算出するようにしてよい。
【００８７】
前記優先度制御手段は、人気度算出手段によって算出された人気度に基づいて、当該新たなデータブロックのスケジューリング優先度を決定し、好ましくは、当該新たなデータブロックの人気度に基づいて、当該新たなデータブロックがメディアチャネルにアクセスするためのコンテンション・ウィンドウの大きさを算出するようにしてよい。
【００８８】
前記データブロック送信手段は、優先度制御手段によって決定された当該新たなデータブロックのスケジューリング優先度に基づいて、好ましくは、大きさが決定されたコンテンション・ウィンドウに基づいて、前記新たなデータブロックをブロードキャスト・マルチキャストするようにしてよい。
【００８９】
図４に示す方法を採用すれば、前記ネットワークノードは、前記データブロック受信手段と人気度算出手段とに接続される隣接ノードコンテンツ記憶手段をさらに含むべきである。前記隣接ノードコンテンツ記憶手段は、隣接ノードのデータ情報、即ち隣接ノードによって既に受信されたデータブロックの係数ベクトルを記憶する。当該ネットワークノードの内部構成は図１０に示す通りである。データブロック受信手段が新たなデータブロックを受信した後、前記隣接ノードコンテンツ記憶手段は、まず自分に記憶されている隣接ノードのデータ情報を更新し、次に、新たなデータブロックの人気度を人気度算出手段によって算出できるように、自分に記憶されている隣接ノードのデータ情報を人気度算出手段にフィードバックする。
【００９０】
上記は、本発明の好ましい実施例にすぎず、本発明の保護範囲を限定するものではない。本発明の精神と原則内で行われる種々の修正、均等切替、改善などは全て本発明の保護範囲に含まれるべきである。
【図面の簡単な説明】
【００９１】
【図１】伝統的な蓄積転送型のルーティングを示す図である。
【図２】ネットワーク符号化技術を採用するルーティングを示す図である。
【図３】ネットワーク符号化の簡単な実例を示す図である。
【図４】本発明の好適な実施例に係る、ネットワークノードがデータブロックを受信した後の処理の一例を示すフローチャートである。
【図５】図４に示す好適な実施例に係る、メディアアクセス制御層のコンテンション・ウィンドウと人気度とのマッピング図である。
【図６】図４に示す方法による時刻ｔ１でのネットワークノードの情報処理を示す図である。
【図７】図４に示す方法による時刻ｔ２でのネットワークノードの情報処理を示す図である。
【図８】本発明の他の好適な実施例に係る、ネットワークノードがデータブロックを受信した後の処理の一例を示すフローチャートである。
【図９】図８に示す実施例を実現するためのネットワークノードの内部構成を示す図である。
【図１０】図４に示す実施例を実現するためのネットワークノードの内部構成を示す図である。
【符号の説明】
【００９２】
Ａ〜Ｚ…ノード、Ｓ…ソースノード、Ｖ…係数ベクトル、ｃ…係数、ｔ…時刻、４０１〜４０６…ステップ、８０１〜８０５…ステップ
【図１】
2008154245.tif 000015
【図２】
2008154245.tif 000016
【図３】
2008154245.tif 000017
【図４】
2008154245.tif 000018
【図５】
2008154245.tif 000019
【図６】
2008154245.tif 000020
【図７】
2008154245.tif 000021
【図８】
2008154245.tif 000022
【図９】
2008154245.tif 000023
【図１０】
2008154245.tif 000024