(57)【特許請求の範囲】
【請求項１】
ネットワーク符号化に基づくデータ伝送方法であって、
各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、ピアノードグループ（ＰＧ）を確立し、ここで、確立されたＰＧ内の全てのノードのダウンロード済みのセグメントの合併集合が、ダウンロード対象ファイルに含まれる全てのセグメントの集合に等しく、
ＰＧ内の各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定し、
送信ノードは、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行って、符号化セグメントを生成し、生成された符号化セグメントをＰＧ内のほかのノードに送信する、
ことを含むことを特徴とする方法。
【請求項２】
ＰＧ内のノードは、１つのセグメントのダウンロードを完了するたびに、自局のダウンロード済みのセグメントを、ネットワークにおける制御機器に報告する、ことをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
ＰＧが確立された後に、ＰＧ内の各ノードに通知し、ＰＧ内の各ノードは、１つのセグメントのダウンロードを完了するたびに、自局のダウンロード済みのセグメントを、ＰＧ内のほかのノードにブロードキャストする、ことをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、ＰＧを確立することは、ネットワークにおける制御機器が、ノードから報告された、ノード識別子（ＩＤ）およびダウンロード済みセグメント番号が含まれる通知を受信し、ノードＩＤおよびダウンロード済みセグメント番号を記録し、記録された各ノードのダウンロード済みセグメント番号に基づいて、適切なノードを選択してＰＧを構成させる、ことを含むことを特徴とする請求項１、２、または３に記載の方法。
【請求項５】
各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、ＰＧを確立することは、
ダウンロード対象ファイルに含まれるセグメント数Ｎを決定し、
セグメント数Ｎおよびノード数Ｍの場合における、前記Ｍ個のノードのダウンロード済みのセグメントの合併集合がダウンロード対象ファイルの全てのセグメントに等しい確率Ｐｃと、１つのノードによるダウンロード割合Ｐｉｎｉとの関係に基づいて、Ｐｉｎｉ＞ダウンロード割合閾値ｐｔｈのとき、Ｐｃが１に接近するように、適切なｐｔｈを設定し、
各ノードから報告された各ノードのダウンロード済みセグメント数を受信した後に、ダウンロード対象ファイルに含まれるセグメント数Ｎに基づいて、各ノードによるダウンロード割合を算出し、
ファイルダウンロードに参加する全てのＭ個のノードによるダウンロード割合がダウンロード割合閾値ｐｔｈ以上である場合、これらのノードでＰＧを構成させる、
ことを含むことを特徴とする請求項１、２、または３に記載の方法。
【請求項６】
ＰＧ内の各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定することは、各ノードの全ての符号化方式を走査し、その中から、符号化セグメントの１回伝送で最も多くのノードにオリジナルセグメントの情報を取得させることができる符号化方式を検索し、当該符号化方式に対応する送信ノードおよび送信対象セグメント集合を決定する、ことを含むことを特徴とする請求項１、２、または３に記載の方法。
【請求項７】
ＰＧ内の各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定することは、
ＰＧ内のＭ個のノードの中から１つのノードｉを選択して、当該ＰＧ内のノードｉ以外のほかのＭ−１個のノードをノードｉの隣接ノードとして設定し、全てのノードの選択が完了した場合、ステップ２２０に進むステップ２１１と、
ノードｉの出力キュー先頭からセグメントｐを取り出すステップ２１２と、
ノードｉの隣接ノードの中に、セグメントｐを必要とするノードがある場合、送信対象セグメント集合Ｎａｔｉｖｅｓをｐにして、ステップ２１４に進み、ノードｉの隣接ノードの中に、セグメントｐを必要とするノードがない場合、ノードｉの出力キューからセグメントｐを削除して、ステップ２１２に戻るステップ２１３と、
ノードｉの出力キューからセグメントｐの次のセグメントｐｊを取り出すステップ２１４と、
ノードｉの隣接ノードのうち、
0005814710.tif 000028
を復号できるノード数ｃｏｕｎｔを統計して、
0005814710.tif 000029
を算出するステップ２１５と、
0005814710.tif 000030
の復号確率ｐｒｏｂが所定の復号確率閾値Ｇより大きい場合、ステップ２１７に進み、
0005814710.tif 000031
の復号確率ｐｒｏｂが所定の復号確率閾値Ｇ以下である場合、ステップ２１８に進むステップ２１６と、
ノードｉの送信対象セグメント集合を
0005814710.tif 000032
にし、ｐｊが出力キューの最後のパケットである場合、現在のＮａｔｉｖｅｓにおけるパケット数Ｎｕｍ＿ｃｏｄｅｄ＿ｐａｃｋｅｔ＿ｉを記録して、ステップ２１１に戻り、ｐｊが出力キューの最後のパケットではない場合、ステップ２１９に進むステップ２１７と、
セグメントｐｊの次のセグメントが存在する場合、ステップ２１９に進み、セグメントｐｊの次のセグメントが存在しない場合、ステップ２１１に戻り、復号確率が所定の復号確率閾値Ｇより大きい符号化セグメントが検索されるまで、ＰＧ内のＭ個のノードの中からほかのノードを選択するステップ２１８と、
ノードｉの出力キューからセグメントｐｊの次のセグメントを取り出して、やはりｐｊと記し、ステップ２１５に戻るステップ２１９と、
Ｎｕｍ＿ｃｏｄｅｄ＿ｐａｃｋｅｔ＿ｉにおける最大値を選出して、その対応するノードｉを送信ノードとし、ノードｉに記録されたＮａｔｉｖｅｓを符号化方式とし、終了するステップ２２０と、
を含むことを特徴とする請求項１、２、または３に記載の方法。
【請求項８】
ＰＧ内の各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定することは、
ＰＧ内のＭ個のノードの中から１つのノードｉを選択して、当該ＰＧ内のノードｉ以外のほかのＭ−１個のノードをノードｉの隣接ノードとして設定し、全てのノードの選択が完了した場合、ステップ２３６に進むステップ２２１と、
ノードｉの出力キュー先頭からセグメントｐを取り出すステップ２２２と、
ノードｉの隣接ノードの中に、セグメントｐを必要とするノードがある場合、送信対象セグメント集合Ｎａｔｉｖｅｓをｐにして、ステップ２２４に進み、ノードｉの隣接ノードの中に、セグメントｐを必要とするノードがない場合、ノードｉの出力キューからセグメントｐを削除して、ステップ２２２に戻るステップ２２３と、
ノードｉの出力キューからセグメントｐの次のセグメントｐｊを取り出すステップ２２４と、
ノードｉの隣接ノードのうち、
0005814710.tif 000033
を復号できるノード数ｃｏｕｎｔを統計して、
0005814710.tif 000034
を算出するステップ２２５と、
0005814710.tif 000035
の復号確率ｐｒｏｂが所定の復号確率閾値Ｇより大きい場合、ステップ２２７に進み、
0005814710.tif 000036
の復号確率ｐｒｏｂが所定の復号確率閾値Ｇ以下である場合、ステップ２２８に進むステップ２２６と、
ノードｉを現在の送信ノードにして、現在の送信対象セグメント集合を
0005814710.tif 000037
にし、ｐｊが出力キューの最後のパケットである場合、現在のＮａｔｉｖｅｓにおけるパケット数Ｎｕｍ＿ｃｏｄｅｄ＿ｐａｃｋｅｔ＿ｉを記録して、ステップ２２１に戻り、ｐｊが出力キューの最後のパケットではない場合、ステップ２３５に進むステップ２２７と、
ノードｉの出力キューからセグメントｐｊの次のセグメントｐｋを取り出すステップ２２８と、
ノードｉの隣接ノードのうち、
0005814710.tif 000038
を復号できるノード数ｃｏｕｎｔを統計して、
0005814710.tif 000039
を算出するステップ２２９と、
0005814710.tif 000040
の復号確率ｐｒｏｂが所定の復号確率閾値Ｇより大きい場合、ステップ２３１に進み、
0005814710.tif 000041
の復号確率ｐｒｏｂが所定の復号確率閾値Ｇ以下である場合、ステップ２３２に進むステップ２３０と、
ノードｉを現在の送信ノードにして、送信対象セグメント集合を
0005814710.tif 000042
にし、ｐｋが出力キューの最後のパケットである場合、現在のＮａｔｉｖｅｓにおけるパケット数Ｎｕｍ＿ｃｏｄｅｄ＿ｐａｃｋｅｔ＿ｉを記録して、ステップ２２１に戻り、ｐｋが出力キューの最後のパケットではない場合、ステップ２３４に進むステップ２３１と、
セグメントｐｋの次のセグメントが存在する場合、ステップ２３３に進み、セグメントｐｋの次のセグメントが存在しない場合、現在のＮａｔｉｖｅｓにおけるパケット数Ｎｕｍ＿ｃｏｄｅｄ＿ｐａｃｋｅｔ＿ｉを記録して、ステップ２２１に戻るステップ２３２と、
ノードｉの出力キューからセグメントｐｋの次のセグメントを取り出して、やはりｐｋと記し、ステップ２２９に戻るステップ２３３と、
ノードｉの出力キューからｐｋの次のセグメントを取り出して、ｐｊと記し、ステップ２２５に戻るステップ２３４と、
ノードｉの出力キューからｐｊの次のセグメントを取り出して、やはりｐｊと記し、ステップ２２５に戻るステップ２３５と、
Ｎｕｍ＿ｃｏｄｅｄ＿ｐａｃｋｅｔ＿ｉにおける最大値を選出して、その対応するノードｉを送信ノードとし、ノードｉに記録されたＮａｔｉｖｅｓを符号化方式とし、終了するステップ２３６と、
を含むことを特徴とする請求項１、２、または３に記載の方法。
【請求項９】
送信ノードが、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行って、符号化セグメントを生成することは、送信ノードが、送信対象セグメント集合における各セグメントそれぞれと、当該セグメントに対応する符号化係数とを乗算してから、モジュロ加算を行って、符号化セグメントを得る、ことを含み、ここで、各セグメントに対応する符号化係数は、ガロア体でランダムに生成されるものである、ことを特徴とする請求項１、２、または３に記載の方法。
【請求項１０】
ＰＧが確立された後に、新しいノードが前記ＰＧに加入したいと、前記新しいノードのダウンロード割合ＰｉｎｉがＰｉｎｉ＞ｐｔｈを満たすかどうかを判断し、ＰｉｎｉがＰｉｎｉ＞ｐｔｈを満たす場合、前記新しいノードが前記ＰＧに加入することを許可し、ＰｉｎｉがＰｉｎｉ＞ｐｔｈを満たさない場合、前記新しいノードが前記ＰＧに加入することを許可しない、ことを特徴とする請求項５に記載の方法。
【請求項１１】
ノード間の相互位置に基づいて、ダウンロード割合閾値ｐｔｈを動的に調整する、ことを特徴とする請求項５に記載の方法。
【請求項１２】
ネットワーク符号化に基づくデータ伝送装置であって、
ネットワーク側の制御機器に位置し、各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、ピアノードグループ（ＰＧ）を確立し、ここで、確立されたＰＧ内の全てのノードのダウンロード済みのダウンロード対象ファイルのセグメントの合併集合が、ダウンロード対象ファイルに含まれる全てのセグメントの集合に等しいＰＧ確立手段と、
ネットワーク側の制御機器に位置し、ＰＧ内の各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定し、送信対象セグメント集合を決定された送信ノードに通知する送信ノード決定手段と、
各ノードに位置し、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行って、符号化セグメントを生成し、生成された符号化セグメントをＰＧ内のほかのノードに送信するネットワーク符号化手段と、
を備えることを特徴とする装置。
【請求項１３】
ネットワーク符号化に基づくデータ伝送装置であって、
ネットワーク側の制御機器に位置し、各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、ピアノードグループ（ＰＧ）を確立し、ここで、確立されたＰＧ内の全てのノードのダウンロード済みのダウンロード対象ファイルのセグメントの合併集合が、ダウンロード対象ファイルに含まれる全てのセグメントの集合に等しいＰＧ確立手段と、
各ノードに位置し、ＰＧ内の各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定して、自局が現在の送信ノードであるかどうかを判断する送信ノード決定手段と、
各ノードに位置し、自局が現在の送信ノードである場合、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行って、符号化セグメントを生成し、生成された符号化セグメントをＰＧ内のほかのノードに送信するネットワーク符号化手段と、
を備えることを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク符号化技術に関し、特にネットワーク符号化に基づくデータ伝送方法および装置に関する。
【背景技術】
【０００２】
ネットワーク符号化技術は、ネットワーク層でデータパケットを符号化する技術である。当該技術では、ネットワークにおけるノードが、受信されたパケットを符号化して、新しいパケットを生成して転送することが許可される。現在、ネットワーク符号化技術の応用は、主に大規模のファイル配信、即ち、ソースノードまたはサーバからネットワークにおけるほかのノードへ大量の情報を配信するサービス（例えば、ポイントツーポイント（Ｐ２Ｐ）ファイル伝送サービスまたはＰ２Ｐストリームサービスなど）に集中している。
【０００３】
図１は、Ｐ２Ｐダウンロードサービスについての従来のネットワーク符号化方式を示す。図１に示すように、１つのファイルが若干のセグメント（ｓｅｇｍｅｎｔ）S1,S2,S3,...Snに分けられ、サーバは、セグメントを送信する前に、まず、ランダムなネットワーク符号化を行い、オリジナルセグメントS1,S2,S3,...Snを処理し、符号化セグメント（E1,E2,Ei,...）を生成する
0005814710.tif 000002
ここで、符号化係数{C1i,C2i,...Cni}は、ガロア体でランダムに生成されるものである。符号化セグメントを受信した後に、クライアント側は復号せずに、符号化セグメントを再符号化してから転送する。このような方式により、各オリジナルセグメントは同じ人気度（Ｐｏｐｕｌａｒｉｔｙ）を有することになる。そうすると、ノードはこのときどのセグメントを先にダウンロードするかを判断する必要がなくなる。もし、サーバがネットワーク符号化を使用しなければ、あるオリジナルセグメント（例えば、ファイルの先頭部分）は、ネットワーク上で、既に多くのノードに持たれた（高人気度を有すると呼ぶ）一方、あるオリジナルセグメント（例えば、ファイルの末尾部分）は、ネットワーク上で、非常に希少である（低人気度を有すると呼ぶ）可能性がある。希少資源を持つノードがＰ２Ｐ応用から退出すると、ダウンロードが完了できないことを避けるために、通常、ノードは、低人気度を有するセグメントを先にダウンロードする。一方、ネットワーク符号化があってから、全てのセグメントが同じ人気度を有するため、ノードはどのセグメントを先にダウンロードするかを判断する必要がない。それとともに、希少資源という問題も存在しないため、ノードの動的加入や退出によるほかのノードへの影響も低減する。しかし、上記のネットワーク符号化方式では、クライアント側は、十分に多くの符号化セグメントを受信してはじめて、復号を開始する（即ち、条件ｒ＞ｎを満たすべきであり、ここで、ｒは受信された符号化セグメントの数であり、ｎはファイルに含まれるオリジナルセグメント数である）。従って、当該方式は、ダウンロードしながら視聴するＰ２Ｐストリームサービスに適用しない。
【０００４】
図２は、Ｐ２Ｐストリームサービスについての従来のネットワーク符号化方式を示す。図２に示すように、ファイルの各セグメントそれぞれは、さらにＬ個のブロック（ｂｌｏｃｋ）に分けられる。Ｐ２Ｐストリームサービスに参加するシードノードは、データを転送する前に、まず、１つのセグメント内のＬ個のブロックの間でネットワーク符号化を行って、若干の符号化ブロックＥ１、Ｅ２、…、Ｅｉ、…を得る。ネットワーク符号化の符号化係数もランダムに生成されるものである。受信ノードが復号できるように、符号化係数は、データパケットと共に送信しなければならない。セグメント内のブロックの間でネットワーク符号化を行うことにより、複数のシードノードから１つのノードへあるセグメントを同時に送信することをサポートすることができる。このように、あるセグメントを送信する伝送時間を短縮することができ、ユーザの視聴待ち時間を減少することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の従来のネットワーク符号化方式では、Ｐ２Ｐサービスの品質をある程度向上させるが、Ｐ２Ｐサービスの重要な特徴、つまりノードの間で情報交換を行うという特徴を利用していない。Ｐ２Ｐサービスでは、ノード同士は通常互いにピアノードであり、つまり、１つのノードがほかのノードにデータを提供すると同時に、当該ほかのノードもこのノードにデータを提供する。研究により、ノードの間の情報交換という特徴を利用できれば、Ｐ２Ｐサービスにおけるネットワーク符号化の利得をさらに発掘することができ、アップロード帯域幅をさらに削減することができる、ということがわかる。
【課題を解決するための手段】
【０００６】
本発明の実施例は、ノードの間の情報交換を十分に利用できるネットワーク符号化に基づくデータ伝送方法および装置を提供している。
【０００７】
本発明の実施例で提供されたネットワーク符号化に基づくデータ伝送方法は、各ノードのダウンロード済みのセグメントに基づいて、ピアノードグループ（ＰＧ）を確立し、ここで、確立されたＰＧ内の全てのノードのダウンロード済みのセグメントの合併集合が、ダウンロード対象ファイルに含まれる全てのセグメントの集合に等しく、ＰＧ内の各ノードのダウンロード済みのセグメントに基づいて、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定し、送信ノードは、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行って、符号化セグメントを生成し、生成された符号化セグメントをＰＧ内のほかのノードに送信する、ことを含む。
【０００８】
本発明の実施例で提供されたネットワーク符号化に基づくデータ伝送装置は、ネットワーク側の制御機器に位置し、各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、ピアノードグループ（ＰＧ）を確立し、ここで、確立されたＰＧ内の全てのノードのダウンロード済みのダウンロード対象ファイルのセグメントの合併集合が、ダウンロード対象ファイルに含まれる全てのセグメントの集合に等しいＰＧ確立手段と、ネットワーク側の制御機器に位置し、ＰＧ内の各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定し、送信対象セグメント集合を決定された送信ノードに通知する送信ノード決定手段と、各ノードに位置し、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行って、符号化セグメントを生成し、生成された符号化セグメントをＰＧ内のほかのノードに送信するネットワーク符号化手段と、を備える。
【０００９】
本発明の実施例で提供された別のネットワーク符号化に基づくデータ伝送装置は、ネットワーク側の制御機器に位置し、各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、ピアノードグループ（ＰＧ）を確立し、ここで、確立されたＰＧ内の全てのノードのダウンロード済みのダウンロード対象ファイルのセグメントの合併集合が、ダウンロード対象ファイルに含まれる全てのセグメントの集合に等しいＰＧ確立手段と、各ノードに位置し、ＰＧ内の各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定し、自局が現在の送信ノードであるかどうかを判断する送信ノード決定手段と、各ノードに位置し、自局が現在の送信ノードである場合、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行って、符号化セグメントを生成し、生成された符号化セグメントをＰＧ内のほかのノードに送信するネットワーク符号化手段と、を備える。
【発明の効果】
【００１０】
本発明に係るネットワーク符号化に基づくデータ伝送方法および装置からわかるように、確立されたＰＧ内の全てのノードのダウンロード済みのダウンロード対象ファイルのセグメントの合併集合が、ダウンロード対象ファイルに含まれる全てのセグメントの集合に等しいため、ＰＧを確立するステップによれば、ＰＧにおけるノードの間の情報交換だけで、ファイルのダウンロードを完了することができ、サーバからダウンロードする必要がない。従って、本発明に係る方法は、ノードの間の情報交換を十分に利用することができる。また、ＰＧ内の各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定するステップによれば、符号化セグメントの１回伝送で、できるだけ多くのノードにセグメントの情報を取得させることを確保することができる。従って、Ｐ２Ｐサービスにおけるネットワーク符号化の利得を十分に発掘し、アップロード帯域幅を削減することができる。これにより、データ伝送の性能を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】Ｐ２Ｐダウンロードサービスについての従来のネットワーク符号化方式を示す図である。
【図２】Ｐ２Ｐストリームサービスについての従来のネットワーク符号化方式を示す図である。
【図３】本発明の実施例に係るネットワーク符号化に基づくデータ伝送方法のフローチャートである。
【図４】異なるセグメント数Ｎおよび異なるノード数Ｍの場合におけるＰｃとｐとの関係曲線を示す図である。
【図５】本発明の実施例における各ノードのダウンロード済みのセグメントに基づいてＰＧを確立する方法のフローチャートである。
【図６】１つのＰＧを示す図である。
【図７】本発明の実施例におけるＣＯＰＥ−Ｅネットワーク符号化方法のフローチャートである。
【図８】本発明の実施例におけるＤＣＫネットワーク符号化方法のフローチャートである。
【図９】本発明の実施例に係るネットワーク符号化に基づくデータ伝送装置の内部構成を示す図である。
【図１０】異なるネットワーク符号化方法を採用するとき、ノード数と各ノードのダウンロード時間との関係曲線を示す図である。
【図１１】異なるネットワーク符号化方法を採用するとき、ノード数と平均ダウンロード時間との関係曲線を示す図である。
【図１２】異なるネットワーク符号化方法を採用するとき、ノード数と所要のアップロード帯域幅との関係曲線を示す図である。
【発明を実施するための形態】
【００１２】
本発明の実施例は、ネットワーク符号化に基づくデータ伝送方法を提供している。図３は、本実施例に係るネットワーク符号化に基づくデータ伝送方法のフローを示す。図３に示すように、当該方法は主に、各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、ピアノードグループ（ＰＧ：ｐｅｅｒ  ｇｒｏｕｐ）を確立し、ここで、確立されたＰＧ内の全てのノードのダウンロード済みのセグメントの合併集合が、ダウンロード対象ファイルに含まれる全てのセグメントの集合に等しいステップ１と、ＰＧ内の各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定するステップ２と、送信ノードは、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行って、符号化セグメントを生成し、生成された符号化セグメントをＰＧ内のほかのノードに送信するステップ３と、を含む。
【００１３】
以下、具体的な例示により、上記のステップ１におけるＰＧの確立過程を詳しく説明する。ネットワークに複数のノードがあって、これらのノードがいずれもあるファイルＦの取得を必要とすることを仮定すると、一定時間のダウンロードを経た後に、これらのノードはそれぞれ、ファイルＦにおける一部のセグメントを持つことになる。一旦、これらのノードのダウンロード済みのセグメントの合併集合が、ファイルＦに含まれる全てのセグメントの集合に等しいと、これらのノードは１つのＰＧを構成することができる。これは、このＰＧにおいて、ノード間の情報交換だけで、当該ＰＧ内の全てのノードがファイルＦ全体をダウンロードできることを意味する。
【００１４】
従来のＰ２Ｐサービスでは、ネットワークに制御機器（通常、ｔｒａｃｋｅｒと呼ばれる）があり、当該制御機器が内容制御機器またはネットワークサーバに位置することができる。当該制御機器は、各ノードのダウンロード済みのセグメントの状況を知ることができる。このように、制御機器は、ネットワークにおける各ノードのダウンロード済みのセグメントに基づいて、どれらのノードが１つのＰＧを構成できるかを決定することができる。しかし、この場合で、各ノードは、１つのセグメントのダウンロードを完了するたびに、制御機器に通知を送信する必要がある。当該通知には、少なくとも、当該ノードの識別子（ＩＤ）、および当該ノードがダウンロードしたばかりのセグメントの番号が含まれるべきである。制御機器は、各ノードからの通知を受信した後に、ノードのＩＤ、および当該ノードのダウンロード済みのセグメントの番号を記録し、記録された各ノードのダウンロード済みのセグメントの番号に基づいて、適切なノードを選択してＰＧを構成することができる。当業者であれば、上記の方式により、ＰＧを精確に確立できるが、システム全体のシグナリングオーバーヘッドを増加させる、ということが理解できる。
【００１５】
現在のＰ２Ｐプロトコルによると、各ノードは、一定時間ごとに要求（ｒｅｑｕｅｓｔ）メッセージをネットワークにおける制御機器に送信し、この要求メッセージには、当該ノードが現在ダウンロードしたセグメント数を表すパラメータｄｏｗｎｌｏａｄｅｄが含まれる。Ｄｏｗｎｌｏａｄｅｄというパラメータがあって、かつファイル全体に含まれるセグメント総数があれば、当該ノードによるダウンロード割合を知ることができる。以下、各ノードによるダウンロード割合がどのぐらいであるとき、これらのノードが１つのＰＧを構成できるかを具体的に導出する。導出過程で使用されるパラメータの定義は表１に示す。
【００１６】
【表１】
0005814710.tif 000003
【００１７】
0005814710.tif 000004
Ｍ個のノードそれぞれが一部のセグメントを既にダウンロードして、かつこれらのセグメントの合併集合が、ファイルＦに含まれる全てのセグメントの集合に等しい場合、これらのノードが１つのＰＧを構成できることを考えられる。つまり、カバー確率（Ｃｏｖｅｒ  Ｐｒｏｂａｂｉｌｉｔｙ）Ｐｃが１に接近するとき、このＭ個のノードがＰＧを構成することができる。下記の数式１に示すように、導出によって、Ｐｃと各ノードのダウンロード割合（Ｉｎｉｔｉａｌ  Ｐｅｒｃｅｎｔａｇｅ）Ｐｉｎｉとの関係を得ることができる。
［数式１］
0005814710.tif 000005
ここで、Pai,jは、全てのノードにも欠けるセグメントにおいて、Sj(i)を含む確率を表すものであり、以下のように算出する。
［数式２］
0005814710.tif 000006
【００１８】
上記の数式に基づいて、異なるセグメント数Ｎおよび異なるノード数Ｍの場合におけるＰｃとＰｉｎｉとの関係をシミュレーションした。図４は、異なるセグメント数Ｎおよび異なるノード数Ｍの場合におけるＰｃとＰｉｎｉとの関係曲線を示す。ここで、丸印の曲線は、ノード数Ｎｏｄｅｓが１８であり、セグメント数Ｓｅｇｍｅｎｔｓが３０である場合のＰｃとＰｉｎｉとの関係曲線を表し、四角印の曲線は、ノード数Ｎｏｄｅｓが１５であり、セグメント数Ｓｅｇｍｅｎｔｓが３０である場合のＰｃとＰｉｎｉとの関係曲線を表し、菱形印の曲線は、ノード数Ｎｏｄｅｓが１２であり、セグメント数Ｓｅｇｍｅｎｔｓが２０である場合のＰｃとＰｉｎｉとの関係曲線を表し、星印の曲線は、ノード数Ｎｏｄｅｓが１０であり、セグメント数Ｓｅｇｍｅｎｔｓが２０である場合のＰｃとＰｉｎｉとの関係曲線を表す。図４からわかるように、ノード数およびセグメント数が大きくなるほど、Ｐｃは、Ｐｉｎｉの増大につれて１に接近することが早くなる。また、異なるセグメント数および異なるノード数の場合においても、Ｐｉｎｉ＞０．５のとき、Ｐｃが１に接近すると考えられる。
【００１９】
上記の研究成果に基づき、上記のステップ１における各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいてＰＧを確立することは、ネットワークにおける制御機器により実行されることができ、具体的に図５に示すように、以下のステップを含む。
【００２０】
ステップ１１で、ダウンロード対象ファイルに含まれるセグメント数Ｎ、および当該ダウンロード対象ファイルに興味があるノード数Ｍを決定する。
【００２１】
ステップ１２で、セグメント数Ｎおよびノード数Ｍの場合におけるＰｃとＰｉｎｉとの関係に基づいて、Ｐｉｎｉ＞ダウンロード割合閾値ｐｔｈのとき、Ｐｃが１に接近するように、適切なｐｔｈを設定する。例えば、ｐｔｈを０．５以上に設定する。
【００２２】
ステップ１３で、各ノードから報告された各ノードのダウンロード済みのセグメント数を受信した後に、ダウンロード対象ファイルに含まれるセグメント数Ｎに基づいて、各ノードによるダウンロード割合を算出する。
【００２３】
ステップ１４で、ファイルダウンロードに参加する全てのＭ個のノードによるダウンロード割合がダウンロード割合閾値ｐｔｈ以上である場合、これらのノードでＰＧを構成させる。
【００２４】
ＰＧが確立された後に、新しいノードもこのダウンロード対象ファイルをダウンロードしたいと、即ち、新しいノードが当該ＰＧに加入したいと、当該新しいノードによるダウンロード割合ＰｉｎｉがＰｉｎｉ＞ｐｔｈを満たすかどうかを判断すべきである。ＰｉｎｉがＰｉｎｉ＞ｐｔｈを満たす場合、当該新しいノードが当該ＰＧに加入することを許可し、ＰｉｎｉがＰｉｎｉ＞ｐｔｈを満たさない場合、当該新しいノードが当該ＰＧに加入することを許可すべきではなく、当該新しいノードのダウンロード割合がＰｉｎｉ＞ｐｔｈになってはじめて、当該ユーザが当該ＰＧに加入することを許可すべきである。
【００２５】
また、ＰＧを形成するとき、ノード間の相互位置に基づいて、ダウンロード割合閾値ｐｔｈを動的に調整することができ、例えば、同一の基地局下のノードまたは同一のエッジルータ（Ｅｄｇｅ  Ｒｏｕｔｅｒ）下のノードについて、ダウンロード割合閾値ｐｔｈを適当に低減することができ、即ち、ＰＧに加入する条件を緩和することにより、コアネットワークの帯域幅の消費を削減する。
【００２６】
以下、具体的な例示により、ステップ２におけるＰＧ内の各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、符号化セグメントを送信するノードおよび送信対象セグメント集合を決定する方法を詳しく説明する。
【００２７】
Ｍ個のノードが１つのＰＧを構成したとすると、これらのノードのダウンロード済みのセグメントの合併集合は、ダウンロード対象ファウル全体に含まれる全てのセグメントの集合に等しい。このとき、これらのノードの間で情報交換を行うだけで、このＭ個のノードにファイル全体を取得させることができる。しかし、いったいどのノードから先に符号化セグメントを送信すべきか、また、符号化セグメントを如何に生成すべきかについて、当業者であれば、最適な方式として、符号化セグメントの１回伝送で、できるだけ多くのノードにオリジナルセグメントの情報を取得させるべきであることが理解できる。
【００２８】
図６は１つのＰＧを示す図である。図６に示すように、当該ＰＧにＮ０、Ｎ１、Ｎ２、Ｎ３およびＮ４の５つのノードが含まれ、かつこの５つのノードのダウンロード済みのセグメントの合併集合は、ダウンロード対象ファイルに含まれる１０個のセグメントの集合に等しい。このような場合で、各ノードそれぞれは、様々なネットワーク符号化方式を採用して符号化セグメントを生成することができる。以下、いくつかの可能な符号化方式の間の比較を提供する。
【００２９】
方式１では、ノードＮ０が
0005814710.tif 000007
を送信し、このとき、ノードＮ１は復号によりセグメント８の情報を取得することができ、ノードＮ２は復号によりセグメント３の情報を取得することができ、ノードＮ４は復号によりセグメント２の情報を取得することができるが、ノードＮ３は当該符号化セグメントを復号することができない。
【００３０】
方式２では、ノードＮ１が
0005814710.tif 000008
を送信し、このとき、ノードＮ０は復号によりセグメント４の情報を取得することができ、ノードＮ２は復号によりセグメント３の情報を取得することができ、ノードＮ３は復号によりセグメント２の情報を取得することができ、かつノードＮ４は復号によりセグメント２の情報を取得することができる。
【００３１】
方式３では、ノードＮ２が
0005814710.tif 000009
を送信し、このとき、ノードＮ０は復号によりセグメント４の情報を取得することができ、ノードＮ１は復号によりセグメント８の情報を取得することができ、ノードＮ４は復号によりセグメント２の情報を取得することができるが、ノードＮ３は当該符号化セグメントを復号することができない。
【００３２】
方式４では、ノードＮ３が
0005814710.tif 000010
を送信し、このとき、ノードＮ０は復号によりセグメント１の情報を取得することができ、ノードＮ１は復号によりセグメント６の情報を取得することができ、ノードＮ４は復号によりセグメント１の情報を取得することができるが、ノードＮ２は当該符号化セグメントを復号することができない。
【００３３】
方式５では、ノードＮ４が
0005814710.tif 000011
を送信し、このとき、ノードＮ０は復号によりセグメント４の情報を取得することができ、ノードＮ１は復号によりセグメント８の情報を取得することができ、ノードＮ２は復号によりセグメント３の情報を取得することができ、かつノードＮ３は復号によりセグメント８の情報を取得することができる。
【００３４】
上記５つの可能な符号化方式から見ると、方式２または方式５を採用するとき、ほかの４つのノードのいずれにもオリジナルセグメントの情報を取得させることができる。従って、この２つの方式が最適なネットワーク符号化方式であると考えられる。最適なネットワーク符号化方式を探し出すことができれば、最大限にデータ伝送効率を向上させ、データのアップロード帯域幅を削減することができる。
【００３５】
以下、本発明の具体的な例示により、最適なネットワーク符号化方式を得るいくつかの方法を詳しく説明する。
【００３６】
方法１では、符号化セグメントの１回伝送で最も多くのノードにオリジナルセグメントを復号して取得させる符号化方式を、フルサーチで検索する。簡単に言えば、即ち、各ノードの全ての符号化方式を走査し、その中から、符号化セグメントの１回伝送で最も多くのノードにオリジナルセグメントの情報を取得させることができる符号化方式を検索することにより、現在、当該符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定する。説明すべきところとして、当該方法は、ファイルのセグメント数、およびダウンロードに参加するノード数が比較的に多いとき、計算複雑度も比較的に高い。計算複雑度を低減するために、本発明の実施例は、以下のような方法も提供している。
【００３７】
方法２は、拡張されたＣＯＰＥ（ＣＯＰＥ−Ｅ）ネットワーク符号化方法である。ＣＯＰＥアルゴリズムは、有名なネットワーク符号化方式である。本発明の実施例に示す応用環境と異なるものとして、ＣＯＰＥアルゴリズムは、無線環境のユニキャストサービスに用いられることが多い。このとき、ネットワークにおけるノードそれぞれは、若干のデータパケットをほかのノードに送信する必要がある。無線環境のブロードキャストの特性によると、ノードは、自局を送信先としないデータパケットを監視することができる。しかし、各データパケットは、当該パケットを必要とするノードが１つしかない。また、ＣＯＰＥアルゴリズムの検索は、単一の送信ノードのみに関し、複数のノードの中から適切なノードを選択する必要がない。従って、ＣＯＰＥアルゴリズムをＰ２Ｐサービスに応用する場合、ＣＯＰＥアルゴリズムを改善する必要がある。本発明の実施例で提供されたＣＯＰＥ−Ｅ方法は、具体的に図７に示すように、主に、ＰＧ内のＭ個のノードの中から１つのノードｉを選択して、当該ＰＧ内のノードｉ以外のほかのＭ−１個のノードをノードｉの隣接ノードとして設定し、全てのノードの選択が完了した場合、ステップ２２０に進むステップ２１１と、ノードｉの出力キュー先頭からセグメントｐを取り出すステップ２１２と、ノードｉの隣接ノードの中に、セグメントｐを必要とするノードがある場合、送信対象セグメント集合Ｎａｔｉｖｅｓをｐにして、ステップ２１４に進み、ノードｉの隣接ノードの中に、セグメントｐを必要とするノードがない場合、ノードｉの出力キューからセグメントｐを削除して、ステップ２１２に戻るステップ２１３と、ノードｉの出力キューからセグメントｐの次のセグメントｐｊを取り出すステップ２１４と、ノードｉの隣接ノードのうち、
0005814710.tif 000012
を復号できるノード数ｃｏｕｎｔを統計して、
0005814710.tif 000013
を算出するステップ２１５と、
0005814710.tif 000014
の復号確率ｐｒｏｂが所定の復号確率閾値Ｇより大きい場合、ステップ２１７に進み、
0005814710.tif 000015
の復号確率ｐｒｏｂが所定の復号確率閾値Ｇ以下である場合、ステップ２１８に進むステップ２１６と、ノードｉの送信対象セグメント集合を
0005814710.tif 000016
にし、ｐｊが出力キューの最後のパケットである場合、現在のＮａｔｉｖｅｓにおけるパケット数Ｎｕｍ＿ｃｏｄｅｄ＿ｐａｃｋｅｔ＿ｉを記録して、ステップ２１１に戻り、ｐｊが出力キューの最後のパケットではない場合、ステップ２１９に進むステップ２１７と、セグメントｐｊの次のセグメントが存在する場合、ステップ２１９に進み、セグメントｐｊの次のセグメントが存在しない場合、ステップ２１１に戻り、復号確率が所定の復号確率閾値Ｇより大きい符号化セグメントが検索されるまで、ＰＧ内のＭ個のノードの中からほかのノードを選択するステップ２１８と、ノードｉの出力キューからセグメントｐｊの次のセグメントを取り出して、やはりｐｊと記し、ステップ２１５に戻るステップ２１９と、Ｎｕｍ＿ｃｏｄｅｄ＿ｐａｃｋｅｔ＿ｉにおける最大値を選出して、その対応するノードｉを送信ノードとし、ノードｉに記録されたＮａｔｉｖｅｓを符号化方式とし、終了するステップ２２０と、を含む。
【００３８】
上記の方法により現在の送信ノードおよび送信対象セグメント集合を決定した後に、現在の送信ノードは、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行ってから、ＰＧ内の隣接ノードに送信する。方法１に示すフルサーチ方法に比べて、上記のＣＯＰＥ−Ｅ方法の複雑度は大幅に低減する。また、上記の方法では、現在、出力キューから取り出したセグメントに対して、出力キュー先頭のセグメントとのモジュロ加算を行った後に、所定の復号確率閾値を満たせない場合、このセグメントを送信対象セグメント集合に入れてさらなるネットワーク符号化に参加させることができない。しかし、実に、複数の受信ノードが存在する場合、出力キューから取り出したこのセグメントと出力キュー先頭のセグメントとのモジュロ加算が復号確率の閾値を満たせなくても、現在のセグメントｐｊに対して、その次のセグメントと共に、出力キュー先頭のセグメントｐとのモジュロ加算を行うことにより、復号確率閾値を満たす可能性がある。このような問題を解決して、データ伝送の性能をさらに向上させるために、方法３のダブルチェック（ＤＣＫ：ｄｏｕｂｌｅ  ｃｈｅｃｋ）方法を提案している。
【００３９】
方法３は、ＤＣＫネットワーク符号化方法である。本発明の実施例で提供されたＤＣＫ方法は、具体的に図８に示すように、主に、ＰＧ内のＭ個のノードの中から１つのノードｉを選択して、当該ＰＧ内のノードｉ以外のほかのＭ−１個のノードをノードｉの隣接ノードとして設定し、全てのノードの選択が完了した場合、ステップ２３６に進むステップ２２１と、ノードｉの出力キュー先頭からセグメントｐを取り出すステップ２２２と、ノードｉの隣接ノードの中に、セグメントｐを必要とするノードがある場合、送信対象セグメント集合Ｎａｔｉｖｅｓをｐにして、ステップ２２４に進み、ノードｉの隣接ノードの中に、セグメントｐを必要とするノードがない場合、ノードｉの出力キューからセグメントｐを削除して、ステップ２２２に戻るステップ２２３と、ノードｉの出力キューからセグメントｐの次のセグメントｐｊを取り出すステップ２２４と、ノードｉの隣接ノードのうち、
0005814710.tif 000017
を復号できるノード数ｃｏｕｎｔを統計して、
0005814710.tif 000018
を算出するステップ２２５と、
0005814710.tif 000019
の復号確率ｐｒｏｂが所定の復号確率閾値Ｇより大きい場合、ステップ２２７に進み、
0005814710.tif 000020
の復号確率ｐｒｏｂが所定の復号確率閾値Ｇ以下である場合、ステップ２２８に進むステップ２２６と、ノードｉを現在の送信ノードにして、現在の送信対象セグメント集合を
0005814710.tif 000021
にし、ｐｊが出力キューの最後のパケットである場合、現在のＮａｔｉｖｅｓにおけるパケット数Ｎｕｍ＿ｃｏｄｅｄ＿ｐａｃｋｅｔ＿ｉを記録して、ステップ２２１に戻り、ｐｊが出力キューの最後のパケットではない場合、ステップ２３５に進むステップ２２７と、ノードｉの出力キューからセグメントｐｊの次のセグメントｐｋを取り出すステップ２２８と、ノードｉの隣接ノードのうち、
0005814710.tif 000022
を復号できるノード数ｃｏｕｎｔを統計して、
0005814710.tif 000023
を算出するステップ２２９と、
0005814710.tif 000024
の復号確率ｐｒｏｂが所定の復号確率閾値Ｇより大きい場合、ステップ２３１に進み、
0005814710.tif 000025
の復号確率ｐｒｏｂが所定の復号確率閾値Ｇ以下である場合、ステップ２３２に進むステップ２３０と、ノードｉを現在の送信ノードにして、送信対象セグメント集合を
0005814710.tif 000026
にし、ｐｋが出力キューの最後のパケットである場合、現在のＮａｔｉｖｅｓにおけるパケット数Ｎｕｍ＿ｃｏｄｅｄ＿ｐａｃｋｅｔ＿ｉを記録して、ステップ２２１に戻り、ｐｋが出力キューの最後のパケットではない場合、ステップ２３４に進むステップ２３１と、セグメントｐｋの次のセグメントが存在する場合、ステップ２３３に進み、セグメントｐｋの次のセグメントが存在しない場合、現在のＮａｔｉｖｅｓにおけるパケット数Ｎｕｍ＿ｃｏｄｅｄ＿ｐａｃｋｅｔ＿ｉを記録して、ステップ２２１に戻るステップ２３２と、ノードｉの出力キューからセグメントｐｋの次のセグメントを取り出して、やはりｐｋと記し、ステップ２２９に戻るステップ２３３と、ノードｉの出力キューからｐｋの次のセグメントを取り出して、ｐｊと記し、ステップ２２５に戻るステップ２３４と、ノードｉの出力キューからｐｊの次のセグメントを取り出して、やはりｐｊと記し、ステップ２２５に戻るステップ２３５と、Ｎｕｍ＿ｃｏｄｅｄ＿ｐａｃｋｅｔ＿ｉにおける最大値を選出して、その対応するノードｉを送信ノードとし、ノードｉに記録されたＮａｔｉｖｅｓを符号化方式とし、終了するステップ２３６と、を含む。
【００４０】
上記の方法により現在の送信ノードおよび送信対象セグメント集合を決定した後に、現在の送信ノードは、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行ってから、ＰＧ内の隣接ノードに送信する。
【００４１】
以下、具体的な例示により、ＤＣＫ方法とＣＯＰＥ−Ｅネットワーク符号化方法との性能を比較する。ノードＮ０は、既にセグメント番号１、５および６のセグメントをダウンロードし、かつ出力キューがセグメント５、１、６であり、ノードＮ１は、既にセグメント番号１、２および５のセグメントをダウンロードし、かつ出力キューがセグメント５、１、２であり、ノードＮ２は、既にセグメント番号１、４および５のセグメントをダウンロードし、かつ出力キューがセグメント５、１、４であり、ノードＮ３は、既にセグメント番号１、３および５のセグメントをダウンロードし、かつ出力キューがセグメント５、１、３であり、ノードＮ４は、既にセグメント番号１、４および６のセグメントをダウンロードし、かつ出力キューがセグメント４、１、６であり、ノードＮ５は、既にセグメント番号３、５および６のセグメントをダウンロードし、かつ出力キューがセグメント５、３、６であるとする。同時に、復号確率閾値が０．６であるとする。方法２におけるＣＯＰＥ−Ｅ方法に基づいて、ノードＮ０から検索し、得られた結果、現在の送信ノードはＮ０であり、送信対象セグメント集合はセグメント５および６であり、このときの復号確率は０．８である。方法３におけるＤＣＫ方法に基づいて、同様にノードＮ０から検索し、得られた結果、現在の送信ノードはＮ０であり、送信対象セグメント集合はセグメント５、１および６であり、このときの復号確率は１である。ここからわかるように、ＤＣＫネットワーク符号化方法は、ＣＯＰＥ−Ｅネットワーク符号化方法より優れた性能を持つ。
【００４２】
送信ノードおよび送信対象セグメント集合を決定した後に、ステップ３で、送信ノードは、送信対象セグメント集合におけるセグメントに対して、従来の符号化方法で重み付けモジュロ加算を行って、即ち、送信対象セグメント集合における各セグメントそれぞれと、当該セグメントに対応する符号化係数とを乗算してから、モジュロ加算を行って、符号化セグメントを得、その後、符号化セグメントおよび符号化係数をＰＧ内のほかのノードに送信する。ここで、各セグメントの符号化係数は、ガロア体でランダムに生成されるものである。
【００４３】
説明すべきところとして、上記の送信ノードおよび送信対象セグメント集合を決定する方法は、集中制御型の方式を採用して、ネットワークにおける制御機器によって実現してもよい。この場合で、制御機器がＰＧを決定した後に、ＰＧにおけるノードは、１つのセグメントのダウンロードを完了するたびに、制御機器へ自局のダウンロード済みのセグメントを報告する必要がある。制御機器は、ＰＧにおける各ノードのダウンロード済みのセグメントを知った後に、上記の方法１、方法２または方法３を採用して、現在の送信ノードおよび送信対象セグメント集合を決定することができ、当該送信ノードに、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行うよう通知し、符号化セグメントを得てからＰＧ内のほかのノードに送信する。
【００４４】
上記の集中制御型の方式以外に、分散型の方式を採用して、ＰＧにおける各ノードによって、上記のネットワーク符号化方法を実現してもよい。この場合で、ネットワークにおける制御機器は、ＰＧを確立した後に、決定されたＰＧを当該ＰＧにおける各ノードに通知し、各ノードは、１つのセグメントのダウンロードを完了するたびに、ＰＧ内のほかのノードへ自局のダウンロード済みのセグメントをブロードキャストする必要がある。各ノードは、ＰＧにおける各ノードのダウンロード済みのセグメントを知った後に、上記の方法１、方法２又は方法３を採用して、現在の送信ノードおよび送信対象セグメント集合を決定することができ、自局が現在の送信ノードであるかどうかを判断し、自局が現在の送信ノードである場合、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行って、符号化セグメントを得てからＰＧ内のほかのノードに送信する。
【００４５】
上記のネットワーク符号化に基づくデータ伝送方法に対応して、本発明の実施例は、ネットワーク符号化に基づくデータ伝送装置も提供している。図９に示すように、当該装置は主に、各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいてＰＧを確立し、ここで、確立されたＰＧ内の全てのノードのダウンロード済みのダウンロード対象ファイルのセグメントの合併集合が、ダウンロード対象ファイルに含まれる全てのセグメントの集合に等しいＰＧ確立手段と、ＰＧ内の各ノードのダウンロード済みのダウンロード対象ファイルのセグメントに基づいて、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定する送信ノード決定手段と、各ノードに位置し、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行って、符号化セグメントを生成し、生成された符号化セグメントをＰＧ内のほかのノードに送信するネットワーク符号化手段と、を備える。
【００４６】
ここで、各ノードが１つのセグメントのダウンロードを完了するたびに、自局のノードＩＤおよびダウンロード済みセグメント番号を、ネットワークにおける制御機器に報告する場合、上記のＰＧ確立手段は、各ノードのダウンロード済みセグメント番号に基づいて、ＰＧを確立するようにしてよく、そうでない場合、ＰＧ確立手段は、図５に示す方法に基づいて、ＰＧを確立するようにしてもよい。
【００４７】
また、送信ノード決定手段は、上記の方法１、２または３に示すネットワーク符号化方法を採用して、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定するようにしてよい。
【００４８】
上記のように、各ノードに位置するネットワーク符号化手段は、送信対象セグメント集合における各セグメントそれぞれと、当該セグメントに対応する符号化係数とを乗算してから、モジュロ加算を行って、符号化セグメントを得、その後、符号化セグメントおよび符号化係数をＰＧ内のほかのノードに送信する。ここで、各セグメントの符号化係数は、ガロア体でランダムに生成されるものである。
【００４９】
集中制御型の方式に対応して、上記のＰＧ確立手段および送信ノード決定手段はいずれもネットワーク側の制御機器に位置する。このとき、送信ノード決定手段は、符号化セグメントを送信する送信ノードおよび送信対象セグメント集合を決定した後に、送信対象セグメント集合を決定された送信ノードに通知する。送信ノードのネットワーク符号化手段は、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行って、符号化セグメントを生成し、生成された符号化セグメントをＰＧ内のほかのノードに送信する。
【００５０】
分散型の方式に対応して、上記のＰＧ確立手段はネットワーク側の制御機器に位置するが、送信ノード決定手段は各ノードに位置する。このとき、ＰＧ確立手段は、ＰＧを確立した後に、決定されたＰＧを当該ＰＧにおける各ノードに通知する。各ノードは、１つのセグメントのダウンロードを完了するたびに、ＰＧ内のほかのノードへ自局のダウンロード済みのセグメントをブロードキャストする必要がある。各ノードにおける送信ノード決定手段は、各ノードからブロードキャストされた各ノードのダウンロード済みのセグメントを受信し、ＰＧにおける各ノードのダウンロード済みのセグメントを知った後に、上記の方法１、方法２又は方法３を採用して、現在の送信ノードおよび送信対象セグメント集合を決定することができ、自局が現在の送信ノードであるかどうかを判断する。自局が現在の送信ノードである場合、ネットワーク符号化手段は、送信対象セグメント集合におけるセグメントに対してネットワーク符号化を行ってから、ＰＧ内のほかのノードに送信する。
【００５１】
本発明の実施例の技術的効果を詳しく説明するために、以下、本発明の実施例に係るデータ伝送方法をシミュレーションした。シミュレーション時に使用される各パラメータは、下記の表２に示す。
【００５２】
【表２】
0005814710.tif 000027
【００５３】
図１０は、異なるネットワーク符号化方法を採用するとき、ノード数と各ノードのダウンロード時間との関係曲線を示す。図１１は、異なるネットワーク符号化方法を採用するとき、ノード数と平均ダウンロード時間との関係曲線を示す。図１２は、異なるネットワーク符号化方法を採用するとき、ノード数と所要のアップロード帯域幅との関係曲線を示す。図１０、図１１および図１２において、丸印の曲線は、従来のマルチキャスト（Ｍｕｌｔｉｃａｓｔ）の方式でのノード数（Ｎｏｄｅ  Ｎｕｍｂｅｒ）と各ノードのダウンロード時間との関係曲線を表し、四角印の曲線は、ＣＯＰＥ−Ｅネットワーク符号化方法を採用するとき、ノード数と各ノードのダウンロード時間との関係曲線を表し、菱形印の曲線は、ＤＣＫネットワーク符号化方法を採用するとき、ノード数と各ノードのダウンロード時間との関係曲線を表す。図１０、図１１および図１２からわかるように、従来のマルチキャスト方式に比べて、ＣＯＰＥ−Ｅネットワーク符号化方法やＤＣＫネットワーク符号化方法を採用するとき、各ノードのダウンロード時間、平均ダウンロード時間および所要のアップロード帯域幅はいずれも減少し、かつ、ＤＣＫネットワーク符号化方法は、ＣＯＰＥ−Ｅネットワーク符号化方法より優れた性能を持つ。
【００５４】
上記は、本発明の好ましい実施例にすぎず、本発明の保護範囲を限定するものではない。本発明の精神と原則内で行われる種々の修正、均等置換え、改善などは全て本発明の保護範囲内に含まれるべきである。
【図１】
0005814710.tif 000043
【図２】
0005814710.tif 000044
【図３】
0005814710.tif 000045
【図４】
0005814710.tif 000046
【図５】
0005814710.tif 000047
【図６】
0005814710.tif 000048
【図７】
0005814710.tif 000049
【図８】
0005814710.tif 000050
【図９】
0005814710.tif 000051
【図１０】
0005814710.tif 000052
【図１１】
0005814710.tif 000053
【図１２】
0005814710.tif 000054