(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025004815
(43)【公開日】2025-01-16
(54)【発明の名称】マルチキャストコンテンツ配信システム、マルチキャストコンテンツ配信方法および中継サーバ
(51)【国際特許分類】
H04L 65/611 20220101AFI20250108BHJP
H04L 9/12 20060101ALI20250108BHJP
H04L 12/22 20060101ALI20250108BHJP
【FI】
H04L65/611
H04L9/12
H04L12/22
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023104656
(22)【出願日】2023-06-27
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和4年度 総務省、情報通信技術の研究開発「グローバル量子暗号通信網構築のための研究開発」に係る委託研究、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】佐々木 雅英
(72)【発明者】
【氏名】藤原 幹生
(72)【発明者】
【氏名】松園 和久
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA15
5K030HA08
5K030HD03
5K030JA11
5K030LA18
5K030LC13
(57)【要約】
【課題】ネットワーク符号化に基づくマルチキャストコンテンツ配信において、パケットの通信量を低減させることが可能なマルチキャストコンテンツ配信システムを提供する。
【解決手段】マルチキャストコンテンツ配信システムの中継サーバ2は、要求元ノードから、リクエストパケット数と、要求元ノードとの間の伝送容量と、要求元ノードが符号化パケットを収集可能なノードとの間の伝送容量合計と、を通知され、伝送容量合計に対する要求元ノードとの間の伝送容量の割合を予め定めた割増率で割り増した値と通知されたリクエストパケット数とを乗算した要求元ノードごとの最少リクエストパケット数の中での最大値を新たなリクエストパケット数として算出するリクエストパケット数算出部22を備える。
【選択図】
図5
【特許請求の範囲】
【請求項1】
配信サーバ、複数の中継サーバおよび複数のクライアント端末をノードとして伝送リンクで接続され、コンテンツをランダム線形ネットワーク符号化方式により符号化した符号化パケットとして、前記配信サーバから前記中継サーバを中継して前記クライアント端末に配信するマルチキャストコンテンツ配信システムであって、
予め定めたリクエストパケット数と、要求先ノードとの間の伝送容量と、前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を要求先ノードに通知し、前記符号化パケットを収集して復元する前記クライアント端末と、
要求元ノードから、リクエストパケット数と、要求元ノードとの間の伝送容量と、要求元ノードが前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を通知され、
前記伝送容量合計に対する要求元ノードとの間の伝送容量の割合を予め定めた割増率で割り増した値と通知されたリクエストパケット数とを乗算した要求元ノードごとの最少リクエストパケット数の中での最大値を新たなリクエストパケット数として算出し、
前記新たなリクエストパケット数と、要求先ノードとの間の伝送容量と、前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を要求先ノードに通知し、
前記符号化パケットを収集してランダム線形ネットワーク符号化方式により符号化して要求元ノードに中継する前記中継サーバと、
前記コンテンツをランダム線形ネットワーク符号化方式により符号化した符号化パケットを、要求元ノードから通知されたリクエストパケット数に応じて配信する前記配信サーバと、
を備えることを特徴とするマルチキャストコンテンツ配信システム。
【請求項2】
前記中継サーバは、前記符号化パケットを外部ドメインのノード群に中継する際に、前記のノード群に配信する符号化パケットの合計が、自身が保持する前記符号化パケットの個数を超えないように、重複なく振り分けて中継することを特徴とする請求項1に記載のマルチキャストコンテンツ配信システム。
【請求項3】
前記符号化パケットを中継するノード間では、各ノードがワンタイムパッド暗号鍵を用いたバーナム暗号により前記符号化パケットを暗号化することを特徴とする請求項1または請求項2に記載のマルチキャストコンテンツ配信システム。
【請求項4】
配信サーバ、複数の中継サーバおよび複数のクライアント端末をノードとして伝送リンクで接続され、コンテンツをランダム線形ネットワーク符号化方式により符号化した符号化パケットとして、前記配信サーバから前記中継サーバを中継して前記クライアント端末に配信するマルチキャストコンテンツ配信方法であって、
前記クライアント端末は、
予め定めたリクエストパケット数と、要求先ノードとの間の伝送容量と、前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を要求先ノードに通知し、
前記中継サーバは、
要求元ノードから、リクエストパケット数と、要求元ノードとの間の伝送容量と、要求元ノードが前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を通知され、
前記伝送容量合計に対する要求元ノードとの間の伝送容量の割合を予め定めた割増率で割り増した値と通知されたリクエストパケット数とを乗算した要求元ノードごとの最少リクエストパケット数の中での最大値を新たなリクエストパケット数として算出し、
前記新たなリクエストパケット数と、要求先ノードとの間の伝送容量と、前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を要求先ノードに通知し、
前記配信サーバは、
前記コンテンツをランダム線形ネットワーク符号化方式により符号化した符号化パケットを、要求元ノードから通知されたリクエストパケット数に応じて配信する
ことを特徴とするマルチキャストコンテンツ配信方法。
【請求項5】
配信サーバ、複数の中継サーバおよび複数のクライアント端末をノードとして伝送リンクで接続され、コンテンツをランダム線形ネットワーク符号化方式により符号化した符号化パケットとして、前記配信サーバから前記中継サーバを中継して前記クライアント端末に配信するマルチキャストコンテンツ配信システムにおける前記中継サーバであって、
要求元ノードから、リクエストパケット数と、要求元ノードとの間の伝送容量と、要求元ノードが前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を通知され、前記伝送容量合計に対する要求元ノードとの間の伝送容量の割合を予め定めた割増率で割り増した値と通知されたリクエストパケット数とを乗算した要求元ノードごとの最少リクエストパケット数の中での最大値を新たなリクエストパケット数として算出するリクエストパケット数算出部と、
前記新たなリクエストパケット数と、要求先ノードとの間の伝送容量と、前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を要求先ノードに通知し、前記符号化パケットを収集するパケット収集部と、
収集した前記符号化パケットをランダム線形ネットワーク符号化方式により符号化する符号化部と、
前記符号化部で符号化された符号化パケットを要求元ノードに配信するパケット配信部と、
を備えることを特徴とする中継サーバ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチキャストコンテンツ配信システム、マルチキャストコンテンツ配信方法および中継サーバに関する。
【背景技術】
【0002】
従来、複数のクライアント端末に同一のコンテンツを一斉に配信するマルチキャストコンテンツ配信は、インターネット上において、パケットの蓄積・転送方式、すなわち、パケットを受け取り、届いた順に1つずつ宛先への経路を決め、次の中継サーバへ転送(ルーティング)する方式に基づいて行われている。
しかし、この蓄積・転送方式ではマルチキャスト通信における最大容量は実現できないことが知られている。これに対して、中継サーバに集まった複数のパケットを合成して別のパケットに変換(符号化)してから転送する方式、いわゆるネットワーク符号化を用いることで、ネットワーク上のスループットを向上できることが知られている(非特許文献1)。
特に、複数のパケットの変換を線形結合の演算で行う線形ネットワーク符号化により、マルチキャスト通信の最大容量を実現できることが、非特許文献2で示されている。また、線形ネットワーク符号化の線形結合の係数をランダムに設定することにより、ネットワークの構成変化や障害への耐性が向上することが非特許文献3,4で示されている。
特許文献1,非特許文献5では、線形ネットワーク符号化を用いることによりネットワーク資源を効率的に利用するマルチキャストコンテンツ配信システムが提案されている。
【0003】
一方、これらの文献では、コンテンツ情報の漏洩を防ぐためのデータ通信の暗号化については触れられていない。現在、インターネット上では、トランスポートレイヤにおいて標準的な暗号化ツールを用いてデータ通信を暗号化できるようになっており、トランスポートレイヤセキュリティ(TLS:Transport Layer Security)と呼ばれる。
マルチキャストコンテンツ配信システムにおいても、TLSを用いてパケットを暗号化すれば機密性を高めることができる。しかし、現在のTLSは、量子コンピュータなどの高度な計算機により解読されてしまう可能性を否定できない。
【0004】
そこで、近年では、量子鍵配送(QKD:Quantum Key Distribution)ネットワークから供給される暗号鍵を用いて、ワンタイムパッド(OTP:One Time Pad)と呼ばれる方式でパケットを暗号化することで、どんな計算機でも解読できない安全性(情報理論的安全性)を保証することが可能になっている(非特許文献6)。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【非特許文献1】R. Ahlswede, N. Cai, S. R. Li, and R. W. Yeung, “Network information flow,” IEEE Trans. Inf. Theory, vol. 46, no. 5, pp. 1204-1216, Jul. 2000.
【非特許文献2】S.-Y. R. Li, R. W. Yeung, and N. Cai, “Linear network coding,” IEEE Trans. Inf. Theory, vol. 49, no. 2, pp. 371-381, Feb. 2003.
【非特許文献3】P. A. Chou, Y. Wu, K. Jain, “Practical Network Coding” in Allerton Conference on Communication, Control, and Computing, Monticello, II, 2003.
【非特許文献4】T. Ho, M. Me´dard, R. Koetter, D. Karger, M. Effros, J. Shi, and B. Leong, “A random linear network coding approach to multicast,” IEEE Trans. Inf. Theory, vol. 52, pp. 4413-4430, Oct. 2006.
【非特許文献5】C. Gkantsidis, P. R. Rodoriguez, “Network Coding for Large Scale Content Distribution,” IEEE Infocom 2005.
【非特許文献6】藤原幹生,佐々木雅英、“3 量子光ネットワーク技術 3-1 量子鍵配送ネットワーク研究開発の現状”、情報通信研究機構研究報告、2017年63巻1号、p.9-18
【発明の概要】
【発明が解決しようとする課題】
【0007】
従来のOTP方式では、一度使った暗号鍵は二度と使うことができないため、やり取りされるパケットの量が増加すると暗号鍵の消費量も増えることになる。一方で、マルチキャストコンテンツ配信にQKDネットワークを用いた場合、鍵生成速度に性能限界があるため、パケットの通信量が増加すると、暗号鍵が枯渇してしまうという問題があった。
そこで、本発明は、マルチキャストコンテンツ配信において、パケットの通信量を低減させることが可能なマルチキャストコンテンツ配信システム、マルチキャストコンテンツ配信方法および中継サーバを提供することを課題とする。
【課題を解決するための手段】
【0008】
前記課題を解決するため、本発明に係るマルチキャストコンテンツ配信システムは、配信サーバ、複数の中継サーバおよび複数のクライアント端末をノードとして伝送リンクで接続され、コンテンツをランダム線形ネットワーク符号化方式により符号化した符号化パケットとして、前記配信サーバから前記中継サーバを中継して前記クライアント端末に配信するマルチキャストコンテンツ配信システムであって、予め定めたリクエストパケット数と、要求先ノードとの間の伝送容量と、前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を要求先ノードに通知し、前記符号化パケットを収集して復元する前記クライアント端末と、要求元ノードから、リクエストパケット数と、要求元ノードとの間の伝送容量と、要求元ノードが前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を通知され、前記伝送容量合計に対する要求元ノードとの間の伝送容量の割合を予め定めた割増率で割り増した値と通知されたリクエストパケット数とを乗算した要求元ノードごとの最少リクエストパケット数の中での最大値を新たなリクエストパケット数として算出し、前記新たなリクエストパケット数と、要求先ノードとの間の伝送容量と、前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を要求先ノードに通知し、前記符号化パケットを収集してランダム線形ネットワーク符号化方式により符号化して要求元ノードに中継する前記中継サーバと、前記コンテンツをランダム線形ネットワーク符号化方式により符号化した符号化パケットを、要求元ノードから通知されたリクエストパケット数に応じて配信する前記配信サーバと、を備える構成とした。
【0009】
かかる構成によれば、マルチキャストコンテンツ配信システムは、中継サーバにおいて、コンテンツの要求元からのリクエストパケット数をそのまま要求先のノードに要求するのではなく、他のノードの伝送容量に応じて自ノードが担当するリクエストパケット数を算出する。
これによって、中継サーバからのリクエストパケット数が減少し、パケット通信量を減少させることができる。
【0010】
また、前記課題を解決するために、本発明に係るマルチキャストコンテンツ配信方法は、配信サーバ、複数の中継サーバおよび複数のクライアント端末をノードとして伝送リンクで接続され、コンテンツをランダム線形ネットワーク符号化方式により符号化した符号化パケットとして、前記配信サーバから前記中継サーバを中継して前記クライアント端末に配信するマルチキャストコンテンツ配信方法であって、前記クライアント端末は、予め定めたリクエストパケット数と、要求先ノードとの間の伝送容量と、前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を要求先ノードに通知し、前記中継サーバは、要求元ノードから、リクエストパケット数と、要求元ノードとの間の伝送容量と、要求元ノードが前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を通知され、前記伝送容量合計に対する要求元ノードとの間の伝送容量の割合を予め定めた割増率で割り増した値と通知されたリクエストパケット数とを乗算した要求元ノードごとの最少リクエストパケット数の中での最大値を新たなリクエストパケット数として算出し、前記新たなリクエストパケット数と、要求先ノードとの間の伝送容量と、前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を要求先ノードに通知し、前記配信サーバは、前記コンテンツをランダム線形ネットワーク符号化方式により符号化した符号化パケットを、要求元ノードから通知されたリクエストパケット数に応じて配信する手順とした。
【0011】
かかる手順によれば、マルチキャストコンテンツ配信方法は、中継サーバにおいて、コンテンツの要求元からのリクエストパケット数をそのまま要求先のノードに要求するのではなく、他のノードの伝送容量に応じて自ノードが担当するリクエストパケット数を算出する。
これによって、中継サーバからのリクエストパケット数が減少し、パケット通信量を減少させることができる。
【0012】
また、前記課題を解決するために、本発明に係る中継サーバは、配信サーバ、複数の中継サーバおよび複数のクライアント端末をノードとして伝送リンクで接続され、コンテンツをランダム線形ネットワーク符号化方式により符号化した符号化パケットとして、前記配信サーバから前記中継サーバを中継して前記クライアント端末に配信するマルチキャストコンテンツ配信システムにおける前記中継サーバであって、要求元ノードから、リクエストパケット数と、要求元ノードとの間の伝送容量と、要求元ノードが前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を通知され、前記伝送容量合計に対する要求元ノードとの間の伝送容量の割合を予め定めた割増率で割り増した値と通知されたリクエストパケット数とを乗算した要求元ノードごとの最少リクエストパケット数の中での最大値を新たなリクエストパケット数として算出するリクエストパケット数算出部と、前記新たなリクエストパケット数と、要求先ノードとの間の伝送容量と、前記符号化パケットを収集可能なノードとの間の伝送容量合計と、を要求先ノードに通知し、前記符号化パケットを収集するパケット収集部と、収集した前記符号化パケットをランダム線形ネットワーク符号化方式により符号化する符号化部と、前記符号化部で符号化された符号化パケットを要求元ノードに配信するパケット配信部と、を備える構成とした。
【0013】
かかる構成によれば、中継サーバは、コンテンツの要求元からのリクエストパケット数をそのまま要求先のノードに要求するのではなく、他のノードの伝送容量に応じて自ノードが担当するリクエストパケット数を算出する。
これによって、中継サーバからのリクエストパケット数が減少し、パケット通信量を減少させることができる。
【発明の効果】
【0014】
本発明によれば、マルチキャストコンテンツ配信システムにおいて、転送するパケットの通信量を減少させることができる。
これによって、本発明は、例えば、ノード間で量子鍵配送により提供されるワンタイムパッドの暗号鍵でパケットの暗号化を行う場合でも、暗号鍵の消費を抑制することができる。
【図面の簡単な説明】
【0015】
【
図1】本発明の実施形態に係るマルチキャストコンテンツ配信システムの例を示すネットワーク構成図である。
【
図2】
図1の配信サーバの構成例を示すブロック構成図である。
【
図3A】
図2の分割部におけるコンテンツの分割を説明するための説明図である。
【
図3B】分割後のメッセージ列のデータ構成を示す図である。
【
図4】
図2の符号化部におけるメッセージ列の符号化を説明するための説明図である。
【
図5】
図1の中継サーバの構成例を示すブロック構成図である。
【
図6A】
図5の符号化部における線形ネットワーク符号化を説明するための説明図(その1)である。
【
図6B】
図5の符号化部における線形ネットワーク符号化を説明するための説明図(その2)である。
【
図7】
図1のクライアント端末の構成例を示すブロック構成図である。
【
図8】
図7のパケット復元部における符号化パケットの復元を説明するための説明図である。
【
図9A】マルチキャストコンテンツ配信システムの配信待機の動作を説明するための説明図である。
【
図9B】マルチキャストコンテンツ配信システムの配信準備の動作を説明するための説明図である。
【
図9C】マルチキャストコンテンツ配信システムの配信実行の動作を説明するための説明図である。
【
図9D】マルチキャストコンテンツ配信システムの配信完了の動作を説明するための説明図である。
【
図10A】
図9Cの配信実行におけるステップ1の動作を説明するための説明図である。
【
図10B】
図9Cの配信実行におけるステップ2およびステップ3の動作を説明するための説明図である。
【
図11】リクエストパケット数の算出法を説明するためのマルチキャストコンテンツ配信システムのネットワーク構成図である。
【
図12】リクエストパケット数を算出する動作の流れを示すフローチャートである。
【
図13】ドメイン間に跨るコンテンツ配信の適用例を説明するためのマルチキャストコンテンツ配信システムのネットワーク構成図である。
【
図14】外部ドメインに線形従属な符号化パケットが転送されないように制御する方法を説明するための説明図である。
【
図15】実施例に係るマルチキャストコンテンツ配信システムの例を示すネットワーク構成図である。
【
図16】割増率を変化させたときの各ノード(配信サーバ、中継サーバ、クライアント端末)におけるリクエストパケット数の値を示す図表である。
【
図17】割増率を変化させたときのクライアント端末の復元成功確率を示す図表である。
【
図18】割増率を変化させたときの各ノードにおけるリクエストパケット数およびOTP暗号鍵の削減率を示す図表を示す。
【
図19】本発明と従来手法とで、クライアント端末がコンテンツをダウンロードする時間の削減率を示す図表である。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明の実施形態に係るマルチキャストコンテンツ配信システムについて説明する。
【0017】
[マルチキャストコンテンツ配信システムの構成]
図1を参照して、マルチキャストコンテンツ配信システム100の構成について説明する。
図1は、マルチキャストコンテンツ配信システムの構成例である。
マルチキャストコンテンツ配信システム100は、複数のクライアント端末に同一のコンテンツを一斉に配信するものである。
マルチキャストコンテンツ配信システム100は、蓄積・転送方式に基づくシステムであって、ノードとして、配信ノードs(配信サーバ1)と、複数の中継ノードv(中継サーバ2)と、複数のクライアントノードc(クライアント端末3)と、が伝送リンクで接続されて構成されている。
そして、マルチキャストコンテンツ配信システム100は、各ノードにおいて、ランダム線形ネットワーク符号化方式により符号化パケットを生成し、ノード間で送受信を行うことで、配信ノードsから中継ノードvを中継してクライアントノードcにコンテンツを配信する。
【0018】
ここでは、マルチキャストコンテンツ配信システム100は、一例として、ドメインAおよびドメインBのサブネットワークで構成されているものとする。
ドメインAのサブネットワークは、中継サーバ2(中継ノードv1,v2,v3)とクライアント端末3(クライアントノードc1,c2,c3)とで構成される。
ドメインBのサブネットワークは、中継サーバ2(中継ノードv4,v5)とクライアント端末3(クライアントノードc4,c5,c6)とで構成される。なお、ドメインAのクライアント端末3(クライアントノードc1,c2,c3)は、ドメインBへの中継サーバとしても機能する。
【0019】
配信サーバ1は、コンテンツを配信するソースノードである。
配信サーバ1は、コンテンツを分割し、ランダム線形ネットワーク符号化方式により符号化した符号化パケットを、要求元ノードから通知されたリクエストパケット数に応じて配信する。
【0020】
中継サーバ2は、コンテンツを中継するものである。
中継サーバ2は、要求されたリクエストパケット数と、接続されているノードとの伝送リンクの容量の情報(接続情報)と、に基づいて、新たに自身のリクエストパケット数を算出して符号化パケットを収集し、要求された他の中継サーバ2またはクライアント端末3に中継する。なお、接続情報には、要求元ノードとの間の伝送容量と、要求元ノードが符号化パケットを収集可能なノードとの間の伝送容量合計と、が含まれる。
【0021】
クライアント端末3は、符号化パケットを収集し、コンテンツを復元するものである。
クライアント端末3は、予め定めたリクエストパケット数と、要求先ノードとの間の伝送容量と、符号化パケットを収集可能なノードとの間の伝送容量合計と、を要求先ノードに通知し、符号化パケットを収集して復元する。
クライアント端末3は、中継サーバの機能を有するものもある。例えば、クライアントノードc1,c2,c3は、ドメイン間でコンテンツを中継する。
なお、順次中継される符号化パケットは、ノード間において、ワンタイムパッド暗号鍵(以下、OTP暗号鍵)によってバーナム暗号により暗号化されるものとする。
【0022】
以下、マルチキャストコンテンツ配信システム100の構成について具体的に説明する。
【0023】
[配信サーバ]
図2を参照(適宜
図1参照)して、配信サーバ1(配信ノードs)の構成について説明する。
配信サーバ1は、配信要求処理部10と、コンテンツ準備部11と、記憶部12と、転送要求受付部13と、パケット配信部14と、暗号化部15と、を備える。
【0024】
配信要求処理部10は、中継サーバ2から、コンテンツの配信要求を受け付け、コンテンツの配信準備を行うものである。
配信要求の送信元はクライアント端末3であるが、配信要求処理部10は、要求された中継サーバ2に対して応答を行う。この応答は、1以上の中継サーバ2を介して配信要求の送信元のクライアント端末3に通知される。
配信要求処理部10は、配信要求を通知された段階で、コンテンツ準備部11に対して、コンテンツの配信準備を指示する。
配信要求処理部10は、コンテンツ準備部11からコンテンツの準備が完了した旨を通知された段階で、配信要求を通知してきた中継サーバ2に準備完了を通知する。
【0025】
コンテンツ準備部11は、要求されたコンテンツをパケットとして配信するためのデータを準備するものである。
コンテンツ準備部11は、分割部110と、符号化部111と、を備える。
分割部110は、配信要求処理部10から要求されたコンテンツをパケットとして配信するためのデータ(メッセージ列)ごとに分割するものである。
分割部110は、分割したメッセージ列を符号化部111に出力する。
【0026】
ここで、
図3A,
図3Bを参照して、分割部110におけるコンテンツの分割例について説明する。
分割部110は、コンテンツを、クライアント端末3でまとめて処理を行う予め定めた情報単位(メッセージ列)に分割する。
ここで、メッセージ列は、一般に有限体の要素をシンボルとする系列で表現される。よく用いられる有限体GF(q)の例では、位数q=2
8=256の体で、その要素は1byteの長さを持つデジタル信号である。
情報単位であるメッセージ列を世代と呼び、ここでは、1つ世代のデータは、
図3Aに示すように、典型的な例として1400byteのデータをω個で構成したものとする。ここで、メッセージ列を構成するデータの個数ωを世代サイズと呼ぶ。
【0027】
図3Aでは、コンテンツが、世代サイズω=6で3つの世代(世代1,世代2,世代3)に分割された例を示している。
図3Bは、ある長さz(ここでは、1400byte)、世代サイズをω、iを世代番号(i=1~3)、jを世代内のインデックス(j=1~ω)としたときのメッセージ列を、ベクトル表記したものである。(si)
j,kは、GF(2
8)上のシンボルである1byteのデータであある。
このように、個々のメッセージ列は、属性情報(i,j)によって識別される。
なお、本実施例の説明では、一世代分のデータを対象とし、メッセージ列を、世代番号iを省略した以下の式(1)に示すベクトルs
jで表現されるものとする。
【0028】
【0029】
図2に戻って、配信サーバ1の構成について説明する。
符号化部111は、分割部110で分割されたメッセージ列を符号化するものである。
符号化部111は、メッセージ列に対してランダム線形ネットワーク符号化方式による符号化を行う。
ランダム線形ネットワーク符号化方式は、メッセージ列を乱数係数により線形結合し、別の系列に変換する符号化方式である。入出力系列は符号語と呼ばれる。以下、符号化前の系列(メッセージ列)を入力符号語、符号化後の系列を出力符号語と呼ぶ。
【0030】
符号化部111は、メッセージ列を乱数係数により線形結合した出力符号語と、出力符号語を生成した乱数係数と、を対として符号化パケットを生成する。
ここで、
図4を参照して、符号化部111における符号化について説明する。ここでは、符号化部111は、入力符号語として、式(1)における世代サイズω(=6)個の互いに線形独立はメッセージ列(ベクトルs
j)が入力されるものとする。
符号化部111は、入力符号語(ベクトルs
j)に対応して、ω個の乱数係数r
j(j=1~ω)を生成する。
【0031】
符号化部111は、ベクトルsjである入力符号語xinに対して、乱数係数rjを用いて、以下の式(2)の線形結合を行うことで、式(3)の新しいベクトルx′j′
(s)を出力符号語xoutとして生成する。
【0032】
【0033】
式(2),式(3)のj′は出力符号語のインデックスを示す。ただし、配信ノードsにおいて、インデックスjとインデックスj′とは同じである。また、(s)は、単に出力符号語が配信ノードsで生成されたものであることを示しているだけである。
【0034】
さらに、符号化部111は、式(2)で用いたω個の乱数係数rj(j=1~ω)を以下の式(4)のベクトルg′j′
(s)(グローバル符号化ベクトルgout)とする。なお、g′j′,z=rj(j′=j=1~ω)である。
【0035】
【0036】
符号化部111は、式(3)で生成したベクトルx′j′
(s)(出力符号語xout)と、式(4)で生成したベクトルg′j′
(s)(グローバル符号化ベクトルgout)と、を組とする符号化パケットp′を生成する。
すなわち、符号化部111は、出力符号語とそれに対応するグローバル符号化ベクトルとを組とする符号化パケットp′を、以下の式(5)に示す符号化パケットX′j′
(s)として生成する。
【0037】
【0038】
符号化部111は、生成した符号化パケットX′
j′
(s)を、属性情報と対応付けて記憶部12に記憶する。
図2に戻って、配信サーバ1の構成について説明を続ける。
【0039】
コンテンツ準備部11は、要求のあったコンテンツに対して符号化が完了した時点で、配信要求処理部10にコンテンツの準備が完了した旨を通知する。
記憶部12は、コンテンツ準備部11で符号化されたコンテンツを記憶するもので、半導体メモリ等の一般的な記憶媒体である。
【0040】
転送要求受付部13は、接続された中継サーバ2から、コンテンツのメッセージ列の転送要求を受け付けるものである。
転送要求には、少なくとも、メッセージ列の数であるリクエストパケット数と、すでに中継サーバ2が保持するメッセージ列に関する属性情報(i,j)とが含まれる。
転送要求受付部13は、要求元の中継サーバ2が未保持のメッセージ列の中からランダムに、リクエストパケット数分のメッセージ列を選択して、パケット配信部14に配信を指示する。
【0041】
パケット配信部14は、転送要求受付部13で指示されたメッセージ列を符号化パケットとして要求のあった中継サーバ2に配信するものである。
パケット配信部14は、転送要求受付部13で指示されたメッセージ列として、属性情報に対応して記憶部12に記憶されている符号化パケットを読み出して、暗号化部15による暗号化を行った後、暗号化済みの符号化パケットを要求のあった中継サーバ2に送信する。
なお、送信する符号化パケットには、データ長等のヘッダ情報が付加されていることはいうまでもない。
【0042】
暗号化部15は、パケット配信部14が配信する符号化パケットを暗号化するものである。ここでは、暗号化部15は、量子鍵配送により、符号化パケットを要求した中継サーバ2との間で暗号鍵(OTP暗号鍵)を共有し、バーナム暗号により暗号化を行う。なお、量子鍵配送は既存の技術であり、量子鍵配送を行う装置については図示を省略する。
以上説明した構成により、配信サーバ1は、中継サーバ2から要求のあったコンテンツを、ランダム線形ネットワーク符号化方式により符号化して配信することができる。
【0043】
[中継サーバ]
次に、
図5を参照(適宜
図1参照)して、中継サーバ2(中継ノードv)の構成について説明する。
中継サーバ2は、配信要求処理部20と、転送要求受付部21と、リクエストパケット数算出部22と、パケット収集部23と、暗号解除部24と、符号化部25と、記憶部26と、パケット配信部27と、暗号化部28と、を備える。
【0044】
配信要求処理部20は、クライアント端末3または他の中継サーバ2から、コンテンツの配信要求を受け付け、コンテンツの配信準備を行うものである。
配信要求処理部20は、コンテンツの配信要求を受信した場合、配信要求を要求したクライアント端末3または他の中継サーバ2に応答を送信するとともに、配信要求をさらにコンテンツの配信元なる接続された配信サーバ1または他の中継サーバ2に送信する。
また、配信要求処理部20は、コンテンツの配信準備が完了した旨の準備完了を受信した段階で、配信要求を要求したクライアント端末3または中継サーバ2に準備完了を送信する。
これによって、当該中継サーバ2が、コンテンツの配信準備が完了したことになる。
【0045】
転送要求受付部21は、接続された他の中継サーバ2またはクライアント端末3(以下、他のノードという)から、コンテンツのメッセージ列(符号化パケット)の転送要求を受け付けるものである。
この転送要求には、少なくとも、要求するメッセージ列(符号化パケット)の数であるリクエストパケット数と、すでに要求元である他のノードが保持するメッセージ列に関する属性情報と、要求元の他のノードと隣接するノードとの接続状況(利用可能の有無、伝送容量)に関する情報(接続情報)と、が含まれる。
転送要求受付部21は、受信した転送要求をリクエストパケット数算出部22と、パケット配信部27とに出力する。
【0046】
リクエストパケット数算出部22は、転送要求に含まれるリクエストパット数と、要求元の他のノードの接続状況と、により、当該中継サーバ2がコンテンツの配信元に要求するリクエストパケット数を算出するものである。
ここでは、リクエストパケット数算出部22は、要求元の他のノードとそのノードに隣接するノードとの伝送容量合計に対する当該中継サーバ2と要求元の他のノードとの伝送容量の割合(比率)をリクエストパケット数に乗算し、さらに、予め定めた割増率を乗算することで、当該中継サーバ2が分担する最少リクエストパケット数を算出する。
リクエストパケット数算出部22は、複数のノードからの転送要求時に、ノードごとの最少リクエストパケット数を算出する。
【0047】
そして、リクエストパケット数算出部22は、算出した複数の最少リクエストパケット数の最大値を、中継サーバ2が転送要求に含むリクエストパケット数とする。
符号化パケットは複数のノードから収集するため、伝送容量に応じて自身のリクエストパケット数を算出することで、転送するパケット数を削減することができる。また、割増率により、伝送容量に応じて算出するリクエストパケット数を割り増すことで、クライアント端末3におけるコンテンツの復元成功確率を高めることができる。なお、伝送容量に応じてパケット数を削減することと、割増率により復元成功確率を高めることとは、トレードオフの関係になるため、ネットワーク構成におりシミュレーションにより適切な割増率を設定することが好ましい。
このリクエストパケット数の算出法については、後で詳細に説明する。
リクエストパケット数算出部22は、算出したリクエストパケット数をパケット収集部23に出力する。
【0048】
パケット収集部23は、リクエストパケット数算出部22で算出されたリクエストパケット数の符号化パケット(メッセージ列)を、接続された配信サーバ1または他の中継サーバ2に要求し、符号化パケットを収集するものである。
パケット収集部23は、リクエストパケット数と、すでに保持するメッセージ列に関する属性情報と、当該中継サーバ2と当該中継サーバ2と隣接するノードとの接続状況(利用可能の有無、伝送容量)に関する情報(接続情報)と、を含んだ転送要求を、接続された配信サーバ1またはコンテンツを中継する他の中継サーバ2に送信する。
パケット収集部23は、収集した符号化パケットを暗号解除部24に出力する。
【0049】
暗号解除部24は、パケット収集部23で収集した暗号化された符号化パケットの暗号を解除するものである。
ここでは、暗号解除部24は、量子鍵配送により、符号化パケットの転送元のノードとの間で暗号鍵(OTP暗号鍵)を共有し、バーナム暗号の解除を行う。なお、量子鍵配送は既存の技術であり、量子鍵配送を行う装置については図示を省略する。
暗号解除部24は、暗号解除後の符号化パケットを符号化部25に出力する。
【0050】
符号化部25は、パケット収集部23で収集し、暗号解除部24で暗号が解除された符号化パケット(メッセージ列)を、ランダム線形ネットワーク符号化方式による符号化により、新たな系列に符号化するものである。
符号化部25は、収集した入力符号語である符号化パケットを、乱数係数により線形結合し、別の系列の出力符号語に変換する。
また、符号化部25は、出力符号語と、出力符号語を生成した乱数係数と、を対として符号化パケットを生成する。
【0051】
ここで、
図6A,
図6Bを参照して、符号化部25における符号化について説明する。ここでは、
図6Aに示すように、中継サーバ2をノードvとし、ノードvは、ノードv'、v''、v'''から、ω(=6)個の互いに線形独立な出力符号語x′
outとグローバル符号化ベクトルg′
outとを含んだ符号化パケットp′を収集するものとする。
そして、符号化部25は、
図6Bに示すように、出力符号語x′
outに対してインデックスjを振り直して、以下の式(6)に示す新しい入力符号語x
in(ベクトルx
j
(v))として再定義する。
【0052】
【0053】
符号化部25は、入力符号語xin(ベクトルxj
(v))に対応して、ω個の乱数係数rj(j=1~ω)を生成する。
符号化部25は、入力符号語xinに対して、乱数係数rjを用いて、以下の式(7)の線形結合を行うことで、式(8)の新しいベクトルx′j
(v)を出力符号語xoutとして生成する。
【0054】
【0055】
式(7),式(8)のjは出力符号語のインデックスを示す。
また、符号化部25は、
図6Bに示すように、グローバル符号化ベクトルg′
outに対してインデックスjを振り直して、以下の式(9)に示す新しいグローバル符号化ベクトルg
in(ベクトルg
j
(v))として再定義する。
【0056】
【0057】
符号化部25は、グローバル符号化ベクトルginに対して、式(7)で用いた同じ乱数係数rjを用いて、以下の式(10)の線形結合を行うことで、式(11)の新しいベクトルg′j
(v)をグローバル符号化ベクトルgoutとして生成する。
【0058】
【0059】
符号化部25は、式(8)で生成したベクトルx′j
(v)(出力符号語xout)と、式(11)で生成したベクトルg′j
(v)(グローバル符号化ベクトルgout)と、を組とする符号化パケットpを生成する。
すなわち、符号化部25は、出力符号語とそれに対応するグローバル符号化ベクトルとを組とする符号化パケットpを、以下の式(12)に示す符号化パケットX′j
(v)として生成する。
【0060】
【0061】
符号化部25は、生成した符号化パケットX′
j
(v)を、属性情報と対応付けて記憶部26に記憶する。
図5に戻って、中継サーバ2の構成について説明を続ける。
記憶部26は、暗号解除部24で暗号が解除され符号化部25で符号化された符号化パケットを記憶するもので、半導体メモリ等の一般的な記憶媒体である。
【0062】
パケット配信部27は、転送要求受付部21で指示されたメッセージ列を符号化パケットとして要求のあった他のノードに配信するものである。
パケット配信部27は、属性情報により他のノードが未保持のメッセージ列のうちで、リクエストパケット数を最大数として、記憶部26に記憶されている符号化パケットを読み出して、暗号化部28による暗号化を行った後、暗号化済みの符号化パケットを要求のあった他のノードに送信する。
なお、送信する符号化パケットには、データ長等のヘッダ情報が付加されていることはいうまでもない。
【0063】
暗号化部28は、パケット配信部27が配信する符号化パケットを暗号化するものである。ここでは、暗号化部28は、量子鍵配送により、符号化パケットを要求した他のノードとの間で暗号鍵(OTP暗号鍵)を共有し、バーナム暗号により暗号化を行う。
【0064】
以上説明した構成により、中継サーバ2は、他のノードから要求のあったコンテンツを、ランダム線形ネットワーク符号化により符号化して配信することができる。
また、中継サーバ2は、コンテンツの要求元に対して要求するリクエストパケット数を、ノード間の伝送容量に応じて調整するため、ノード間を転送するパケットの通信量を低減させることができる。これによって、中継サーバ2は、暗号化に用いるOTP暗号鍵の消費を抑制することができる。
【0065】
[クライアント端末]
次に、
図7を参照(適宜
図1参照)して、クライアント端末3(クライアントノードc)の構成について説明する。
クライアント端末3は、配信要求部30と、パケット収集部31と、暗号解除部32と、記憶部33と、パケット復元部34と、を備える。
【0066】
配信要求部30は、外部からコンテンツ要求を指示されることで、接続された中継サーバ2に対して配信要求を送信するものである。
配信要求部30は、配信要求を送信後、予め定めた時間で応答が返信されない場合、他の中継サーバ2に対して配信要求を送信する。
配信要求部30は、応答を受信することで、コンテンツの配信元である配信サーバ1が動作していることを認識する。
さらに、配信要求部30は、応答受信後、準備完了の通知を受信することで、配信サーバ1の準備が完了したことを認識し、パケット収集部31にコンテンツの転送要求の開始を指示する。
【0067】
パケット収集部31は、予め定めたリクエストパケット数の符号化パケット(メッセージ列)を、接続された中継サーバ2に、予め定めた転送要求間隔で、転送要求により要求し、符号化パケットを収集するものである。この転送要求には、リクエストパケット数と、すでに保持する符号化パケット(メッセージ列)に関する属性情報と、接続状況(利用可能の有無、伝送容量)に関する情報(接続情報)と、を含んでいる。
ここでは、パケット収集部31は、一世代分ごとに符号化パケットを要求し、符号化パケットを受信する。
なお、パケット収集部31は、パケット復元部34から、未保持の符号化パケットを指示された場合、接続された中継サーバ2に転送要求を送信する。
パケット収集部31は、収集した符号化パケットを暗号解除部32に出力する。
【0068】
暗号解除部32は、パケット収集部31で収集した暗号化された符号化パケットの暗号を解除するものである。
ここでは、暗号解除部32は、量子鍵配送により、符号化パケットの転送元のノードとの間で暗号鍵(OTP暗号鍵)を共有し、バーナム暗号の解除を行う。
暗号解除部32は、暗号解除後の符号化パケットを記憶部33に記憶する。
記憶部33は、暗号解除部32で暗号が解除された符号化パケットを記憶するもので、半導体メモリ等の一般的な記憶媒体である。
【0069】
パケット復元部34は、記憶部33に記憶される符号化パケットをコンテンツのデータに復元するものである。
パケット復元部34は、記憶部33に記憶された一世代分のコンテンツのデータを、ランダム線形ネットワーク符号化方式の復元処理によって、データを復元する。
なお、パケット復元部34は、データの復元に失敗した場合、パケット収集部31は、記憶部33の符号化パケットを削除し、パケット収集部31に対してパケットの収集を指示する。
【0070】
ここで、
図8を参照して、パケット復元部34の復元手法について説明する。
ここでは、パケット復元部34は、互いに線形独立なω(=6)個の入力符号語と、グローバル符号化ベクトルと、で構成された符号化パケットpから、復元を行うものとする。
パケット復元部34は、グローバル符号化ベクトル(ベクトルg
j
(v))と、入力符号語(ベクトルx
j
(v))と、の組(j=1~ω)から、メッセージ列(ベクトルs
j)を、以下の式(13)に示す連立方程式により解くことできる。
【0071】
【0072】
以上説明した構成により、クライアント端末3は、配信サーバ1から中継サーバ2を中継して転送されるランダム線形ネットワーク符号化されたコンテンツを復元することができる。
なお、クライアント端末3を中継サーバ2の機能を有する構成とする場合、クライアント端末3に、
図5で説明した転送要求受付部21、リクエストパケット数算出部22、符号化部25、パケット配信部27および暗号化部28を付加して構成すればよい。
【0073】
[マルチキャストコンテンツ配信システムの動作]
次に、
図9A~
図9Dを参照(適宜
図1,
図2,
図5,
図7参照)して、マルチキャストコンテンツ配信システム100の動作について説明する。
マルチキャストコンテンツ配信システム100の動作のフローは、(1)配信待機、(2)配信準備、(3)配信実行、(4)配信完了の4つの段階で構成される。
【0074】
(1)配信待機
図9Aに示すように、配信待機の段階では、コンテンツを取得したいクライアントノードc(ここでは、c4)が、配信要求部30によって、接続された中継ノードv(ここでは、v4)に配信要求を送信する。
そして、中継ノードv4は、配信要求処理部20によって、配信要求を受信し、接続された周辺のノード(ここでは、中継サーバの機能を有するクライアントノードc1)に配信要求を送信するとともに、要求元のクライアントノードc4に応答を行う。なお、所定時間内に応答がない場合、要求元のノードは、接続された他のノード(ここでは、中継ノードv5)に配信要求を送信する。
【0075】
このように、配信要求と応答とが繰り返されることで、配信要求が確実にコンテンツの配信元となる配信ノードsに到達する。
配信ノードsは、配信要求処理部10によって、配信要求を受信し、要求元のノードに応答を行う。このとき、配信ノードsは、最初の配信要求の要求元を知る必要はない。
【0076】
(2)配信準備
図9Bに示すように、配信準備の段階では、コンテンツの配信元となる配信ノードsが、配信要求に対する応答を行った後、コンテンツ準備部11の分割部110によって、コンテンツを予め定めた情報単位(メッセージ列)に分割し、メッセージ列を予め定めた個数ごとに集約した集合(世代)のデータを生成する(
図3A参照)。
配信ノードsは、コンテンツ準備部11の符号化部111によって、分割したメッセージ列をランダム線形ネットワーク符号化方式による符号化を行い、メッセージ列を識別するインデックスiと、世代を識別するインデックスjとからなる属性情報(i,j)に対応付けて記憶部12に登録(記憶)する。
配信ノードsは、コンテンツ準備部11によって、コンテンツを世代データとして登録後、配信要求を行ったコンテンツの転送先となる中継ノードv(ここでは、v1)に要求受入準備が完了した旨の通知(準備完了)を送信する。
中継ノードvおよび中継サーバの機能を有するクライアントノードcは、配信要求処理部20によって、準備完了の通知を受信し、順次、配信要求を行ったコンテンツの転送先となるノードに送信する。
【0077】
このように、準部完了通知の受信と、送信とが繰り返されることで、コンテンツの要求元であるクライアントノードc(ここでは、c4)は、配信要求部30によって、準部完了の通知を受信する、。
これによって、クライアントノードcは、コンテンツの配信準備が完了したことを確認することができる。
【0078】
(3)配信実行
図9Cに示すように、配信実行の段階では、各ノード(クライアントノードc、中継ノードv)において、隣接ノードにメッセージ列を符号化した符号化パケットの転送要求を送信する。
転送要求を受信したノードは、以下の3つのステップ(ステップ1、ステップ2、ステップ3)を実行することで、配信ノードsから転送要求を送信したクライアントノードcに符号化パケットが配信される。
【0079】
[ステップ1]
ステップ1では、自身のノードが収集する符号化パケットの個数(リクエストパケット数)を算出する。なお、クライアントノードcのリクエストパケット数は世代サイズ分の数であるため、クライアントノードcでは、ステップ1のリクエストパケット数の算出は行わない。
中継ノードvでは、リクエストパケット数算出部22によって、リクエストパケット数と、要求元のノードにおける接続情報とに基づいてリクエストパケット数を算出する。
転送要求を受信したノードは、自身のリクエストパケット数と、隣接するノードとの接続状況(利用可能の有無、伝送容量)に関する情報(接続情報)と、を含む転送要求を、符号化パケットの転送元のノードに通知する。
【0080】
ここで、
図10Aを参照して、ステップ1の動作をより一般化して説明する。
図10Aでは、中継ノードおよびクライアントノードを区別することなく、ネットワーク上のノードu,u',v,v',v'',w,w',w''として表している。
ノードvは、転送要求元のノードuから通知される転送要求(リクエストパケット数R
(u))と接続情報とから、自ノードvが周辺のノードw,w',w''から収集すべき符号化パケットの個数であるリクエストパケット数R
(v)を算出する。なお、リクエストパケット数の算出手法については後記する。
ノードvは、複数の隣接するノードw,w',w''に転送要求(リクエストパケット数R
(v))と自身の接続情報とを通知し、符号化パケットの転送を依頼する(
図10A中、S1)。
依頼を受けたノード、例えば、ノードwは、自ノードwが収集すべき符号化パケットの個数であるリクエストパケット数R
(w)を算出する。依頼を受けたノードw',w''についても同様である。
すなわち、ノードvは、ノードuに対して転送要求を受けるノードとして機能するとともに、ノードw,w',w''に対して転送要求元のノードとして機能する。このように、各ノードは、自律分散的にリクエストパケット数を算出する。
【0081】
[ステップ2]
ステップ2では、転送要求を受信したノードは、符号化部25によって、自身が収集した符号化パケットで未転送の符号化パケットをランダム線形ネットワーク符号化方式により符号化し、OTP暗号鍵により暗号化して、転送要求の要求元に送信する。
【0082】
[ステップ3]
ステップ3では、暗号化された符号化パケットを受信したノードは、暗号解除部24によって、暗号化を解除して符号化パケットを保持する。
ここで、
図10Bを参照して、ステップ2,ステップ3の動作をより一般化して説明する。
図10Bでは、
図10Aと同様、中継ノードおよびクライアントノードを区別することなく、ネットワーク上のノードu,u',v,v',v'',w,w',w''として表している。
【0083】
図10AのS1でノードvから転送要求を受信したノードwは、収集済みのパケット数P
(w)と転送済みのパケット数P
(w→v)とを比較する。
そして、P
(w)>P
(w→v)の場合、ノードwは、転送要求元のノードvに、ノードwが収集済のパケットの個数を上限とする未転送のパケットを、ランダム線形ネットワーク符号化し生成した符号語(ベクトルx′
j
(w))と付随するグローバル符号化ベクトル(ベクトルg′
j
(w))とを含む以下の式(14)に示す符号化パケットX
j
(w)をノードvに転送する(
図10B中、S2)。
なお、P
(w)≦P
(w→v)の場合、ノードwは、転送すべきパケットを保持していない旨をノードvに通知する。
【0084】
【0085】
転送に際し、ノードwは、符号化パケットX
j
(w)をOTP暗号鍵により暗号化する。
ノードvは、OTP暗号化を解除して、ノードwから転送された符号化パケットと、すでに保持している符号化パケット、を合わせた集合に対して、互いに線形独立か否かを確認する。線形独立でなかった場合、ノードvは、転送された符号化パケットを破棄する。
一方、線形独立であった場合、ノードvは、転送された符号化パケットを保持する(
図10B中、S3)。この保持された符号化パケットは、次のノードへの転送待ちとなる。
ここで、ノードvは、収集済みの符号化パケット数P
(w)がリクエストパケット数R
(w)以上であることを確認する。
P
(w)がR
(w)未満の場合、ノードvは、周辺のノードw,w',w''に転送要求を繰り返す。
ノードw,vと同様に、ノードv,uにおいてもステップ2(S2)、ステップ3(S3)と同じ処理(S2′,S3′)を繰り返す。
【0086】
このように、ステップ1で算出されたリクエストパケット数の値に従って、符号化パケットの転送が逐次的に繰り返されることで、クライアントノードcには、コンテンツを復元するために必要な一世代分の符号化パケットが収集されることになる。
【0087】
(4)配信完了
図9Dに示すように、クライアントノードcは、パケット復元部34によって、収集した符号化パケットから一世代分のコンテンツのデータを復元する。クライアントノードcは、すべての世代に対して復元を行うことで、コンテンツ全体を復元する。
すなわち、クライアントノードcは、中継ノードvから転送された符号化パケットX
j
(v)に対してOTP暗号化を解除した後、収集した世代サイズω(=6)個の互いに線形独立な入力符号語(ベクトルx
j
(v))と付随するグローバル符号化ベクトル(ベクトルg
j
(v))とを、出力符号語(ベクトルx′
j
(c))と付随するグローバル符号化ベクトル(ベクトルg′
j
(c))(j=1~6)とに再定義し、復元する。これによって、クライアントノードcは、一世代分のコンテンツのデータに相当するw(=6)個のメッセージ列(ベクトルs
j)(j=1~6)を復元する。
なお、復元に失敗した場合、(3)配信実行の段階をやり直す。
以上の動作によって、クライアントノードcは、すべての世代についてコンテンツのデータを復元し、コンテンツを取得することができる。
【0088】
[リクエストパケット数の算出法]
次に、
図11,
図12を参照して、中継ノードv(中継サーバ2)または中継サーバの機能を有するクライアントノードc(クライアント端末3)が、リクエストパケット数算出部22おいて、リクエストパケット数を算出する手法について説明する。
【0089】
図11は、マルチキャストコンテンツ配信システム100の構成例において、ノード間の太線で示す伝送リンクの伝送容量を40(無単位)、ノード間の細線で示す伝送リンクの伝送容量を1(無単位)としたネットワークを示している。
図12は、リクエストパケット数を算出する動作の流れを示す。
リクエストパケット数算出部22は、以下で説明する3つの手順(手順1、手順2、手順3)を実行することでリクエストパケット数を算出する。
【0090】
(手順1)
クライアントノードまたは中継ノードは、接続された周辺の中継ノードに宛てて、転送要求によりリクエストパケット数と接続情報とを通知する(S100,S101)。
ここでは、中継ノードv1が、予め定めた時間区間において、クライアントノードci(i=1,2,3)から、転送要求としてリクエストパケット数および接続情報を通知された例で説明する。
なお、クライアントノードciは、接続された周辺の中継ノードv1,v2,v3,v4およびv5に宛てて、転送要求を通知する。
【0091】
転送要求は、要求元ノードであるクライアントノードc1のリクエストパケット数R(c1)以外に、クライアントノードc1がすでに保持するパケットに関する情報と接続情報とを含む。
リクエストパケット数R(c1)は、収集する符号化パケットの総数の目標個数である。
以下では、クライアントノードc1には収集済みのパケットがなく、復号のために世代サイズω(=6)個の符号化パケットを必要とするR(c1)=ω(=6)とする場合を例とする。
なお、すでに収集済みの世代が存在する場合、転送要求により、その世代についても通知することとする。これによって、収集済みの世代の符号化パケットが再度転送されないようにする。
【0092】
接続情報は、要求元ノードと要求先ノードとの間の伝送リンクの容量(伝送容量)と、要求元ノードと周辺ノードと間の間の伝送リンクの容量の合計(伝送容量合計)とを含む。
図11の例では、要求元ノードであるクライアントノードc1は、中継ノードv1,v2およびv3と伝送容量40の伝送リンクによってそれぞれ個別に接続されている。また、クライアントノードc1は、中継ノードv4およびv5と伝送容量1の伝送リンクによってそれぞれ個別に接続されている。これらの伝送リンクは、現時点で利用可能であるとする。
この場合、要求元ノード(クライアントノードc1)と周辺ノード(v1,v2,v3,v4,v5)との伝送リンクの伝送容量合計は122(=40×3+1×2)となる。
【0093】
(手順2)
転送要求および接続情報を通知された中継ノードは、個々の要求元のノードに対する収集すべきリクエストパケット数を算出する。
ここでは、中継ノードv1を例に説明する。なお、中継ノードv1は、予め定めた時間区間において、クライアントノードci(i=1,2,3)から、リクエストパケット数および接続情報を通知されたものとする。
【0094】
中継ノードv1は、以下の式(15)により、クライアントノードci(i=1,2,3)ごとに、中継ノードv1とクライアントノードciとの間の伝送リンクの伝送容量に対するクライアントノードciが有する伝送リンクの伝送容量合計(総インバウンド容量)の割合(伝送容量比率)を算出するとともに(S102)、中継ノードv1が分担する最少リクエストパケット数Rmin(v1←ci)を算出する(S103)。なお、式(15)で小数点以下の値が発生する場合は、切り上げ計算を行うものとする。
【0095】
【0096】
さらに、中継ノードv1は、式(15)で算出される最少リクエストパケット数Rmin(v1←ci)に対して、以下の式(16)に示すように予め設定された割増率を乗算することで、最少リクエストパケット数を割増したリクエストパケット数R(v1←ci)を算出する。式(16)で小数点以下の値が発生する場合は、切り上げ計算を行うものとする。
【0097】
【0098】
なお、式(15)および式(16)は個別に計算する必要はなく、以下の式(17)のように、一度に計算してもよい。
【0099】
【0100】
これによって、中継ノードv1は、要求元であるクライアントノードci(i=1,2,3)に対して収集すべきリクエストパケット数R
(v1←c1),R
(v1←c2),R
(v1←c3)を算出する。
図11の例では、例えば、割増率を1.3とした場合、式(15)にょり、R
min(v1←ci)=6×(40/122)=1.98(切り上げて2個)、式(16)により、R
(v1←ci)=2×1.3=2.6(切り上げて3個)と計算される。
中継ノードv2,v3もそれぞれ中継ノードv1と同様、クライアントノードci(i=1,2,3)に対して収集すべきリクエストパケット数R
(v2←c1),R
(v2←c2),R
(v2←c3)、R
(v3←c1),R
(v3←c2),R
(v3←c3)を算出する。
【0101】
(手順3)
リクエストパケット数および接続情報を通知された中継ノードは、要求元ノードとして、要求先ノードに通知するリクエストパケット数を求める。
中継ノードは、手順2で要求元ごとに算出したリクエストパケット数の最大値を、自身が要求先ノードに通知するリクエストパケット数とする。
ここでは、中継ノードv1は、手順2で算出した、クライアントノードc1に対して収集するリクエストパケット数R
(v1←ci)、クライアントノードc2に対して収集するR
(v2←ci)、クライアントノードc3に対して収集するR
(v3←ci)の最大値(Max(R
(v1←ci),R
(v2←ci),R
(v3←ci)))を、中継ノードv1が配信ノードsに通知するリクエストパケット数R
(v1)として選択する。
図11の例では、クライアントノードc1,c2,c3は同等であるため、R
(v1)=3となる。
【0102】
ここで、手順2において、式(16)で割増率を導入する理由は以下のとおりである。
クライアントノードc1は、収集する符号化パケットの総数の目標個数をR(c1)個としている。しかし、クライアントノードc1がコンテンツの復元に成功するためには、R(c1)個の符号化パケットに含まれる符号語(ベクトルxj)が互いに線形独立であることが必要である。
一方、中継ノードv1,v2,v3は、リクエストパケット数R(v1),R(v2),R(v3)を上限個数とした符号化パケットを、それぞれ独立にクライアントノードc1に転送することになる。そのため、クライアントノードc1では、目標個数R(c1)個を収集したとしても、符号語(ベクトルxj)が互いに線形独立であるとは限らない。
そこで、1より大きい割増率を設定することで、クライアントノードc1において互いに線形独立なR(c1)個の符号語(ベクトルxj)を収集する確率を高めることができる。
【0103】
なお、割増率の値は、復元成功確率の向上(線形独立性の向上)の観点から大きいほどよいが、OTP暗号鍵の消費抑制(符号化パケットの転送回数の総数抑制)のためには小さい方が望ましい。また、復元成功確率は、世代サイズ(ω)や伝送容量にも依存する。
そこで、割増率の値は、復元成功確率をシミュレーション等によって見積もり、予め設定した目標値に達する値とすればよい。
このように、中継ノードv1は、リクエストパケット数を固定の値ではなく、要求元のノードからのリクエストパケット数と接続情報とより再設定された値を用いている。
そのため、マルチキャストコンテンツ配信システム100は、状態が時間的に変化する場合、例えば、障害が発生した場合でも、柔軟に自立分散的に対処することができる。
【0104】
[ドメイン間に跨るコンテンツ配信の適用例]
次に、
図13を参照して、マルチキャストコンテンツ配信システム100において、ドメイン間に跨るコンテンツ配信の適用例について説明する。
具体的には、マルチキャストコンテンツ配信システム100において、ドメインBに属するクライアントノードc4,c5,c6が、中継ノードv4,v5を介してコンテンツデータの配信を要求する際に、
図10Aで説明した(3)配信実行のステップ1(S1)がどのように進行するのかを説明する。
【0105】
まず、クライアントノードc1は、
図12で説明した手順1に従って、リクエストパケット数R
(c1)が6個であること、および、接続情報として、中継ノードv1,v2,v3からの入力をそれぞれ伝送容量40の伝送リンクで受け入れ可能であり、中継ノードv4,v5からの入力をそれぞれ伝送容量1の伝送リンクで受け入れ可能であることを周辺の中継ノードに通知する(S11)。
【0106】
中継ノードv1は、
図12で説明した手順2に従って、収集すべきリクエストパケット数R
(v1←c1)を、前記式(17)の切り上げ計算により、3個と算出する(S12)。同様に、リクエストパケット数R
(v1←c2),R
(v1←c3)も3個となる。
【0107】
クライアントノードc4は、
図12で説明した手順1に従って、リクエストパケット数R
(c4)が6個であること、および、接続情報として、中継ノードv4,v5からの入力をそれぞれ伝送容量40の伝送リンクで受け入れ可能であることを周辺の中継ノードに通知する(S13)。
【0108】
中継ノードv4は、
図12で説明した手順2に従って、収集すべきリクエストパケット数R
(v4←c4)を、前記式(17)の切り上げ計算により、4個と算出する(S14)。同様に、リクエストパケット数R
(v4←c5),R
(v4←c6)も4個となる。
中継ノードv4は、
図12で説明した手順3に従って、リクエストパケット数R
(v4←c4),R
(v4←c5),R
(v4←c6)の最大値(Max(R
(v4←c4),R
(v4←c5),R
(v4←c6)))である4個を、中継ノードv4のリクエストパケット数R
(v4)として選択する(S15)。
中継ノードv4は、
図12で説明した手順1に従って、リクエストパケット数R
(v4)が4個であること)、および、接続情報として、クライアントノードc1,c2,c3および中継ノードv1からの入力をそれぞれ伝送容量1の伝送リンクで受け入れ可能であることを周辺のクライアントノードおよび中継ノードに通知する(S16)。
【0109】
中継ノードv1は、
図12で説明した手順2に従って、収集すべきリクエストパケット数R
(v1←v4)を、前記式(17)の切り上げ計算により、2個と算出する(S17)。
中継ノードv1は、
図12で説明した手順3に従って、リクエストパケット数R
(v1←c1),R
(v1←c2),R
(v1←c3),R
(v1←v4)の最大値(Max(R
(v1←c1),R
(v1←c2),R
(v1←c3),R
(v1←v4)))である3個を、中継ノードv1のリクエストパケット数R
(v1)として選択する(S18)。
【0110】
そして、中継ノードv1(v2,v3も同様)は、配信ノードsに対して、3個の線形独立な符号化パケットの収集が完了するまで、転送要求を繰り返す。
配信ノードsは、
図10Bで説明した(3)配信実行のステップ2(S2)により、中継ノードv1,v2,v3のそれぞれに対して、保持する符号化パケットをランダム線形ネットワーク符号化して転送する(S19)。
このように、ドメインを跨って転送要求が通知され、符号化パケットが転送されることになる。
【0111】
[外部ドメインに線形従属な符号化パケットが転送されることを制御する方法]
次に、
図14を参照して、マルチキャストコンテンツ配信システム100において、外部ドメインに線形従属な符号化パケットが転送されないように制御する方法について説明する。
ドメインAのクライアントノードc1,c2,c3は、ドメインBのクライアントノードc4,c5,c6よりも、配信ノードsに近いため、より早くコンテンツデータを復元することができる。
一旦、コンテンツデータを復号できれば、その後、ドメインAのクライアントノードc1,c2,c3は、ドメインAに対して、配信ノードとして機能し得る。
そこで、ドメインAのクライアントは、ドメインBの中継ノードのそれぞれに対して転送する符号化パケットの個数の合計が、保有する線形独立な符号化パケットの合計数以下となるように制御する。
【0112】
例えば、
図14では、世代サイズω=10個の世代からなるコンテンツデータの配信例を示す。ここで、ドメインAのクライアントノードc1が、線形独立な符号化パケットを10個保持しているものとする。
この場合、クライアントノードc1は、保有する10個の符号化パケットを中継ノードv4,v5に重複なく振り分けて転送する。例えば、クライアントノードc1は、中継ノードv4に6個、中継ノードv5に4個転送する。
その結果、ドメインBのクライアントノードc4,c5,c6は、中継ノードv4,v5から確実に10個の線形独立な符号化パケットを収集することができる。
【0113】
より一般的には、転送元のノードは、外部のドメインに符号化パケットを転送する際に、自ノードが保有する線形独立な符号化パケットの個数を超えた合計数のパケットを外部のドメインに属するノード群に転送しないように制御する。
これによって、マルチキャストコンテンツ配信システム100は、符号化パケットの転送回数を低減させることができる。
【0114】
[実施例の評価]
図15~
図19を参照して、本発明の実施例についての評価結果について説明する。
図15に示すマルチキャストコンテンツ配信システム100は、伝送容量800Mbits/secの伝送リンク(太線)と、伝送容量10kbits/secの伝送リンク(細線)からなるネットワークである。
【0115】
マルチキャストコンテンツ配信システム100は、配信ノード(配信サーバ)sから、ドメインA内の3つの中継ノード(中継サーバ)v1,v2,v3に伝送リンクが張られている。これらの中継ノードから3つのクライアントノード(クライアント端末)c1,c2,c3に向けてメッシュ状に伝送リンクが張られている。さらに、ドメインAに属するクライアントノードから、ドメインBの中継ノードv4,v5に向けてメッシュ状に伝送リンクが張られている。また、ドメインBの中継ノードv4,v5からドメインB内のクライアントノードc4,c5,c6に向けてメッシュ状に伝送リンクが張られている。このほかにドメインAの中継ノードv1,v3から、それぞれドメインBの中継ノードv4,v5に向けても太い伝送リンクが張られている。クライアントノードc3には細い伝送リンクのみが接続されている。一方、中継ノードv2はドメインBに属する中継ノードには接続されていない。なお、これらの伝送リンクを用いてデータを転送する場合には、同量のOTP暗号鍵を用いることによって、パケット(符号化パケット)を暗号化する。矢印の方向はパケットが転送される方向を示す。両側に矢印がある場合には双方向の転送が可能であることとする。ここで、各ノードは、複数のノードから同時にパケットの転送を受けることはできないこととする。
【0116】
この実施例において、世代サイズωを100とし、多数回のコンテンツ配信の試行に基づく統計的評価により本発明の効果を例証する。なお、総転送回数や配信時間の評価は、各ノードにおけるランダム線形結合の係数を、試行回毎にランダムに変化させて行っている。
【0117】
図16は、本発明に係る基本的な手順に従って算定した、各ノード(配信ノード、中継ノード、クライアントノード)におけるリクエストパケット数の値を示す図表である。
各クライアントノードは世代サイズω=100個の符号化パケットをリクエストするが、実際に中継ノードから受け取ることになる符号化パケットの個数はリクエストした個数を上回ることが一般的である。これは、クライアントノードが互いに線形独立な符号語を世代サイズ(ω=100)の分だけ確実に収集できる確率を100%に近づけるために、中継ノードが多めに符号化パケットを転送するためである。
そのために、中継ノードは、自らが収集する必要がある最小限の符号化パケットの個数(収集倍率1)に、さらに1以上の割増率を掛けた個数を自らが収集すべき符号化パケットの個数つまりリクエストパケット数として算出する。
図16では、異なる4つの割増率の値に対して、それぞれリクエストパケット数の算定値を示している。
【0118】
以下、割増率がドメインA:2.1、ドメインB:1.4の場合のリクエストパケット数の算出例を示す。
中継ノードv4では、R(v4←c1)は、クライアントノードc1のリクエストパケット数×伝送容量/伝送容量合計×割増率=100×800/4000×1.4の切り上げ計算により、R(v4←c1)=28となる。
R(v4←c2)は、クライアントノードc2のリクエストパケット数×伝送容量/伝送容量合計×割増率=100×800/4000×1.4の切り上げ計算により、R(v4←c2)=28となる。
R(v4←c3)は、クライアントノードc3のリクエストパケット数×伝送容量/伝送容量合計×割増率=100×0.01/0.05×1.4の切り上げ計算により、R(v4←c3)=28となる。
R(v4←c4)は、クライアントノードc4のリクエストパケット数×伝送容量/伝送容量合計×割増率=100×800/1600×1.4の切り上げ計算により、R(v4←c4)=70となる。
R(v4←c5)は、クライアントノードc5のリクエストパケット数×伝送容量/伝送容量合計×割増率=100×800/1600×1.4の切り上げ計算により、R(v4←c5)=70となる。
R(v4←c6)は、クライアントノードc6のリクエストパケット数×伝送容量/伝送容量合計×割増率=100×800/1600×1.4の切り上げ計算により、R(v4←c6)=70となる。
【0119】
なお、中継ノードv4では、自ドメインB内のクライアントノードc4,c5,c6には転送要求を行わないため、リクエストパケット数R(v4)の算出には、クライアントノードc4,c5,c6のリクエストパケット数は使用しない。
以上の最大値により、中継ノードv4のリクエストパケット数R(v4)=70となる。なお、中継ノードv5も同様に、リクエストパケット数R(v5)=70となる。
【0120】
中継ノードv1では、R(v1←c1)は、クライアントノードc1のリクエストパケット数×伝送容量/伝送容量合計×割増率=100×800/4000×2.1の切り上げ計算により、R(v1←c1)=42となる。
R(v1←c2)は、クライアントノードc2のリクエストパケット数×伝送容量/伝送容量合計×割増率=100×800/4000×2.1の切り上げ計算により、R(v1←c2)=42となる。
R(v1←c3)は、クライアントノードc3のリクエストパケット数×伝送容量/伝送容量合計×割増率=100×0.01/0.05×2.1の切り上げ計算により、R(v1←c3)=42となる。
R(v1←v4)は、中継ノードv4のリクエストパケット数×伝送容量/伝送容量合計×割増率=70×800/2400.01×2.1の切り上げ計算により、R(v1←v4)=49となる。
以上の最大値により、中継ノードv1のリクエストパケット数R(v1)=49となる。なお、中継ノードv3も同様に、リクエストパケット数R(v3)=49となる。
【0121】
中継ノードv2では、R(v2←c1)は、クライアントノードc1のリクエストパケット数×伝送容量/伝送容量合計×割増率=100×800/4000×2.1の切り上げ計算により、R(v2←c1)=42となる。
R(v2←c2)は、クライアントノードc2のリクエストパケット数×伝送容量/伝送容量合計×割増率=100×800/4000×2.1の切り上げ計算により、R(v2←c2)=42となる。
R(v2←c3)は、クライアントノードc3のリクエストパケット数×伝送容量/伝送容量合計×割増率=100×0.01/0.05×2.1の切り上げ計算により、R(v2←c3)=42となる。
以上の最大値により、中継ノードv2のリクエストパケット数R(v2)=42となる。
【0122】
最適な割増率は、クライアントノードにおける復元成功確率と、符号化パケットの転送回数の低減効果、すなわち、OTP暗号鍵の消費量の削減効果とのトレードオフによって決めればよい。
そこで、
図17に、割増率と各クライアントノードc1,c2,c3,c4,c5、c6における復元成功確率との関係を評価した結果を示す。
この評価結果は、50回の試行に基づいたもので、それぞれの試行において、ランダム線形結合の係数をランダムに変えている。
【0123】
図17に示すように、割増率がドメインAで1.66、ドメインBで1.0の場合、ドメインBに属するクライアントノードにおいて、復元成功確率が82.7%と大きくはない。しかし、、割増率をドメインAで1.81、ドメインBで1.1に増やすだけで、クライアントノード全体の平均で98.7%と99%に近い復元成功確率を達成することができる。
さらに、割増率をドメインAで2.0、ドメインBで1.2まで増やせば、ドメインBにおける復元成功確率を100.0%まで向上させることができる。
【0124】
図18に、異なる割増率の場合において、各ノードにおけるリクエストパケット数およびOTP暗号鍵の削減率を示す。
ここでは、世代サイズω=100、コンテンツデータ量を1.4MByte(世代数10)とした。
【0125】
削減率とは、本発明のマルチキャストコンテンツ配信システムで消費されるOTP暗号鍵の量に対して、従来手法のマルチキャストコンテンツ配信システムで消費されるOTP暗号鍵の量の比率を表したものである。なお、従来手法は、本発明におけるランダム線形ネットワーク符号化とリクエストパケット数の最適化とを行っていない手法である。また、従来手法は、符号化パケットが偏りなく行き渡るように、各中継ノードはクライアントノードと同様に世代サイズ(ω=100)個の符号化パケットを収集することとした。したがって、符号化パケットの総転送回数(OTP暗号鍵の総消費量)は、100×11ノード=1100となる。
表中のノードごとの数値は、リクエストパケット数を示す。
【0126】
例えば、割増率がドメインAで1.66、ドメインBで1.0の場合、リクエストパケット数の合計は802となり、削減率は27.1%と大きな値となる。その場合、
図17で示したように、復元成功確率が低下してしまうクライアントノードが生じてしまう。
一方で、割増率をドメインAで2.1、ドメインBで1.4とした場合、復号成功確率は99.3%(
図17)となるが、削減率は20.0%まで低下する。
最適値と見なされる割増率はドメインAで2.0、ドメインBで1.2とした場合であり、削減率は23.6%となり、全体での復元成功確率も100%(
図17)となる。
このように、最適な割増率は、ネットワークの構成に大きく依存するため、シミュレーションによって、予め最適な割増率を設定することが望ましい。
【0127】
図19に、本発明と従来手法とで、クライアントノードがコンテンツをダウンロードする時間の削減率を示す。
図19中、要求間隔は、ノード間で転送要求を行う時間の間隔である。なお、世代サイズω=100、コンテンツデータ量を140kByteとし、割増率をドメインAで2.1、ドメインBで1.4とした。
図19に示すように、本発明では、符号化パケットの転送回数が低減された結果、配信完了までの所要時間は削減される。想定されたネットワーク構成で、転送要求の要求間隔が200msecの場合に4.8%の削減率が達成されている。適用による削減効果はドメインBのクライアントノードc4,c5,c6において顕著である。
【符号の説明】
【0128】
100 マルチキャストコンテンツ配信システム
1 配信サーバ(配信ノード)
10 配信要求処理部
11 コンテンツ準備部
110 分割部
111 符号化部
12 記憶部
13 転送要求受付部
14 パケット配信部
15 暗号化部
2 中継サーバ(中継ノード)
20 配信要求処理部
21 転送要求受付部
22 リクエストパケット数算出部
23 パケット収集部
24 暗号解除部
25 符号化部
26 記憶部
27 パケット配信部
28 暗号化部
3 クライアント端末(クライアントノード)
30 配信要求部
31 パケット収集部
32 暗号解除部
33 記憶部
34 パケット復元部