(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-16
(45)【発行日】2024-04-24
(54)【発明の名称】配信サーバ及びプログラム
(51)【国際特許分類】
H04L 47/25 20220101AFI20240417BHJP
H04L 49/201 20220101ALI20240417BHJP
【FI】
H04L47/25
H04L49/201
(21)【出願番号】P 2020040821
(22)【出願日】2020-03-10
【審査請求日】2023-02-10
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100161148
【氏名又は名称】福尾 誠
(72)【発明者】
【氏名】福留 大貴
(72)【発明者】
【氏名】西村 敏
(72)【発明者】
【氏名】黒住 正顕
(72)【発明者】
【氏名】西出 彩花
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特開2010-028812(JP,A)
【文献】特開2017-092581(JP,A)
【文献】特開平08-186570(JP,A)
【文献】特開2003-037625(JP,A)
【文献】特開2004-080070(JP,A)
【文献】国際公開第2019/239541(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-69/40
(57)【特許請求の範囲】
【請求項1】
複数の受信装置から、ロスパケットの再送要求を受信すると、該再送要求に対応する応答パケットを各受信装置に送信する配信サーバであって、
前記再送要求は、マルチキャストグループを識別するためのマルチキャストID、パケットを識別するためのシーケンシャル番号、及びパケットの配信レートを識別するためのレート制御識別IDを含んでおり、
前記マルチキャストID及び前記シーケンシャル番号に対応するパケットを応答パケットとして生成する応答パケット生成部と、
前記マルチキャストIDごとに定められた許容配信レートに対する再送レートの割合を、前記応答パケットの送信に係る
負荷率として算出し、前記負荷率に基づいて、前記マルチキャストID及び前記レート制御識別IDごとに、マルチキャストストリームの配信レートを決定する配信レート決定部と、
を備える配信サーバ。
【請求項2】
前記配信レート決定部は、前記配信レートを、前記負荷率が大きいほど小さな値に決定する、請求項1に記載の配信サーバ。
【請求項3】
前記応答パケットを一時的に蓄積する送信バッファと、
前記送信バッファの空き容量を監視する送信バッファ管理部と、
あらかじめ設定したタイマーがタイムアウトになるまでの第1時間、及び送信バッファの空き容量が閾値以下となるまでの第2時間のうちの早いほうの時間において、前記複数の受信装置から再送要求された再送要求パケット数を、前記レート制御識別ID及び前記マルチキャストIDごとにカウントする要求情報管理部と、を備え、
前記配信レート決定部は、前記再送要求パケット数を用いて、前記レート制御識別ID及び前記マルチキャストIDごとに、前記再送レートを算出する、請求項
1又は2に記載の配信サーバ。
【請求項4】
コンピュータを、請求項1から
3のいずれか一項に記載の配信サーバとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、配信サーバ及びプログラムに関する。
【背景技術】
【0002】
IP(Internet Protocol)マルチキャストを利用した配信(IPマルチキャスト配信)では、送信側はデータを一度送信するだけで、経路途上の通信機器が受信者のいる経路にだけデータを複製し送信するため、一対多の大規模配信において効率的であることが一般的に知られている。例えば、特許文献1には、マルチキャストを用いた効率的なコンテンツ配信手法が開示されている。
【0003】
マルチキャスト配信では、 上位のプロトコルとしてUDP(User Datagram Protocol)が利用されるため、パケット到達や到達順序については保証されない。信頼性のある配信を行うためには、誤り訂正や再送制御などをアプリケーションレイヤにて独自に実装する必要がある。そこで、汎用性のある高信頼性マルチキャストの研究が行われている(例えば、非特許文献1参照)。再送制御を用いた高信頼性マルチキャストではフロー制御を工夫することにより、高効率な配信を目的としているが、再送サーバの負荷については考慮されていないものが多い。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【文献】柴田、外2名、「プロトコル選択方式による高信頼性マルチキャスト通信の評価」、情報処理学会論文誌、Vol.42 No.12、pp 3102-3111
【発明の概要】
【発明が解決しようとする課題】
【0006】
マルチキャストを利用した配信では、一般的にFEC(Forward Error Correction)が利用されるが、パケットを回復するためのFECパケットを追加で配信する必要があるため配信効率が低下してしまう。一方、ARQ(Automatic repeat-request)を利用したリライアブルなマルチキャストではロスパケットのみを再送するため、無駄な配信はない。しかし、端末数や伝送路のパケットロス率に応じて配信サーバの負荷が増大するという課題がある。
【0007】
かかる事情に鑑みてなされた本発明の目的は、負荷を軽減させることが可能な配信サーバ及びプログラムを提供することにある。
【課題を解決するための手段】
【0008】
一実施形態に係る配信サーバは、複数の受信装置から、ロスパケットの再送要求を受信すると、該再送要求に対応する応答パケットを各受信装置に送信する配信サーバであって、前記再送要求は、マルチキャストグループを識別するためのマルチキャストID、パケットを識別するためのシーケンシャル番号、及びパケットの配信レートを識別するためのレート制御識別IDを含んでおり、前記マルチキャストID及び前記シーケンシャル番号に対応するパケットを応答パケットとして生成する応答パケット生成部と、前記マルチキャストIDごとに定められた許容配信レートに対する再送レートの割合を、前記応答パケットの送信に係る負荷率として算出し、前記負荷率に基づいて、前記マルチキャストID及び前記レート制御識別IDごとに、マルチキャストストリームの配信レートを決定する配信レート決定部と、を備える。
【0009】
さらに、一実施形態において、前記配信レート決定部は、前記配信レートを、前記負荷率が大きいほど小さな値に決定してもよい。
【0011】
さらに、一実施形態において、前記応答パケットを一時的に蓄積する送信バッファと、前記送信バッファの空き容量を監視する送信バッファ管理部と、あらかじめ設定したタイマーがタイムアウトになるまでの第1時間、及び送信バッファの空き容量が閾値以下となるまでの第2時間のうちの早いほうの時間において、前記複数の受信装置から再送要求された再送要求パケット数を、前記レート制御識別ID及び前記マルチキャストIDごとにカウントする要求情報管理部と、を備え、前記配信レート決定部は、前記再送要求パケット数を用いて、前記レート制御識別ID及び前記マルチキャストIDごとに、前記再送レートを算出してもよい。
【0012】
また、一実施形態に係るプログラムは、コンピュータを、上記配信サーバとして機能させる。
【発明の効果】
【0013】
本発明によれば、負荷を軽減させることが可能な配信サーバ及びプログラムを提供することができる。
【図面の簡単な説明】
【0014】
【
図1】一実施形態に係る配信システムの概略を示す図である。
【
図2】一実施形態に係る配信サーバの構成例を示すブロック図である。
【
図3】一実施形態に係る配信サーバの再送要求受信時の処理例を示すフローチャートである。
【
図4】一実施形態に係る配信サーバの配信レート決定の処理例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本発明の一実施形態について、図面を参照して詳細に説明する。
【0016】
図1は、一実施形態に係る配信システム1の概略を示す図である。
図1に示す配信システム1は、配信サーバ30と、複数の受信装置40と、を備え、それぞれマルチキャストルーティングに対応したネットワーク(マルチキャスト対応網)に接続される。配信サーバ30は、再送サーバ10と、コンテンツ配信サーバ20と、を備える。説明の便宜上、図面では再送サーバ10とコンテンツ配信サーバ20とを区別して示しているが、これらの一部又は全ては、一体のサーバとして構成されてもよい。
【0017】
配信システム1は、受信装置40から再送サーバ10へのユニキャストによる再送制御を用いた、高信頼なマルチキャスト配信(例えば、IPマルチキャスト配信)を行うシステムである。
【0018】
コンテンツ配信サーバ20は、コンテンツのマルチキャスト配信を行うサーバであり、複数のマルチキャストストリーム(例えば、IPマルチキャストストリーム)をそれぞれマルチキャストパケット(以下、単に「パケット」と称する。)に分割して配信する。コンテンツ配信サーバ20は、各パケットに対して、マルチキャストグループを識別するためのマルチキャストID(MCID)、パケットを識別するためのシーケンシャル番号(s)、及びパケットの配信レートを識別するためのレート制御識別ID(d)を付加し、受信装置40に配信する。
【0019】
受信装置40は、マルチキャスト受信が可能な端末であり、コンテンツ配信サーバ20からパケットを受信する。受信装置40は、シーケンシャル番号を元に、パケット順及びパケットロスを判定する。受信装置40は、パケットロスを検知すると、検出したロスパケットのマルチキャストID、シーケンシャル番号、及びレート制御識別IDを含む再送要求を再送サーバ10に通知する。
【0020】
再送サーバ10は、受信装置40から再送要求を受信すると、該再送要求に対応する応答パケットを生成して受信装置40に送信する。
【0021】
また、再送サーバ10は、受信装置40からの再送要求によって変動する再送レート(RSBR)から、マルチキャストグループごとに再送サーバ10の負荷率(LR)を計算する。そして、再送サーバ10は、マルチキャストグループごとのコンテンツ配信サーバ20の配信レート(BR)を負荷率に基づいて計算し、配信レート、マルチキャストID、及びレート制御識別IDを含む配信レート情報をコンテンツ配信サーバ20に通知する。再送サーバ10は、レート制御識別IDにより、どの配信レートに対して発生したパケットロスかを知ることができ、配信レートごとに負荷率を正確に計算することが可能となる。また、再送サーバ10は、送信バッファの空き容量を監視することで、送信バッファの破綻を防止する。再送サーバ10の処理の詳細については後述する。
【0022】
コンテンツ配信サーバ20は、再送サーバ10から配信レート情報を受け取ると、レート制御識別IDをインクリメントする。そして、コンテンツ配信サーバ20は、配信レート情報に基づいて、指定のマルチキャストグループの配信レートを、指定の配信レートに動的に切り替える。
【0023】
(再送サーバの構成)
次に、再送サーバ10の構成について説明する。
図2は、再送サーバ10の構成例を示すブロック図である。
図2に示す再送サーバ10は、再送要求受信部11と、要求情報管理部12と、応答パケット生成部13と、タイマー管理部14と、送信バッファ15と、送信バッファ管理部16と、配信レート決定部17と、応答パケット送信部18と、配信レート送信部19と、を備える。
【0024】
再送要求受信部11は、受信装置40から再送要求を受信し、要求情報管理部12に出力する。
【0025】
要求情報管理部12は、再送要求からマルチキャストID、シーケンシャル番号、及びレート制御識別IDを取得してこれらを応答パケット生成部13に出力するとともに、レート制御識別IDをタイマー管理部14に出力する。
【0026】
要求情報管理部12は、レート制御識別IDが更新されるとカウンタをリセットし、レート制御識別IDが次に更新されるまでの間、全ての受信装置40から要求された再送要求パケット数(Rnum)をカウントする。要求情報管理部12は、カウントした再送要求パケット数を配信レート決定部17に出力する。後述するように、タイマーがタイムアウトになるまでの時間T1、及び送信バッファ15のバッファ量が閾値を超えるまでの時間T2のうち、早いほうの計測時間tが経過すると、コンテンツ配信サーバ20の配信レートが決定され、コンテンツ配信サーバ20はレート制御識別IDを更新する。
【0027】
応答パケット生成部13は、マルチキャストID及びシーケンシャル番号に対応するデータを示す対応表をあらかじめ保持しており、受信装置40からの再送要求に含まれるマルチキャストID及び前記シーケンシャル番号に対応するデータを該対応表に基づいて特定する。そして、応答パケット生成部13は、図示しない記憶部から該当するデータを取得してヘッダーとしてシーケンシャル番号を付加して応答パケットを生成し、送信バッファ15に出力する。
【0028】
送信バッファ15は、応答パケット生成部13により生成された応答パケットを一時的に蓄積する。
【0029】
応答パケット送信部18は、送信バッファ15から応答パケットを取得し、該パケットの再送要求を行った受信装置40に送信する。
【0030】
送信バッファ管理部16は、送信バッファ15の空き容量を監視し、空き容量が閾値以下(利用率が閾値以上)となった場合に、送信バッファ15の利用率が高いことを示すバッファ飽和イベントを配信レート決定部17に通知する。
【0031】
タイマー管理部14は、レート制御識別IDに変更があった場合、タイマー時間T1(例えば30秒)を設定する。タイマー管理部14は、タイマー時間T1が経過すると、タイマー時間T1が経過したことを示すタイマー発火イベントを配信レート決定部17に出力する。また、タイマー管理部14は、タイマーを設定した時刻(レート制御識別IDに変更があった時刻)からの経過時間を示す情報を配信レート決定部17に通知する。
【0032】
配信レート決定部17は、応答パケットの送信に係る負荷率(応答パケットの送信に必要な再送レートから算出される負荷率)に基づいて、マルチキャストID及びレート制御識別IDごとに、マルチキャストストリームの配信レートを決定する。例えば、配信レート決定部17は、応答パケットの送信に必要な再送レート(RSBR)から、マルチキャストグループごとに再送サーバ10の負荷率(LR)を計算する。そして、配信レート決定部17は、該負荷率に基づいて、コンテンツ配信サーバ20が送信するマルチキャストIDごとのパケットの配信レート(BR)を計算し、配信レート送信部19に出力する。以下に、負荷率及び配信レートの計算の具体例について説明する。ここで用いられる変数を、下記の表に示す。
【0033】
【0034】
要求情報管理部12は、レート制御識別IDが更新されるまでの計測時間t(つまり、設定したタイマーがタイムアウトになるまでの時間T1、及びタイマーを設定時刻から送信バッファ15の空き容量が閾値以下となるまでの時間T2のうちの早いほうの時間)において、全ての受信装置40から再送要求された再送要求パケット数Rnumを、レート制御識別ID及びマルチキャストIDごとにカウントする。そして、配信レート決定部17は、再送要求パケット数Rnumを用いて、レート制御識別ID及びマルチキャストIDごとに、応答パケットの送信に必要な再送レートRSBRを、次式(1)により算出する。
【0035】
【0036】
次に、配信レート決定部17は、次式(2)に示すように、マルチキャストIDごとに定められた許容配信レートMAX_RSBRに対する再送レートRSBRの割合を、再送サーバ10の負荷率LRとして算出する。
【0037】
【0038】
次に、配信レート決定部17は、配信レートBRを、負荷率LRに基づいて設定する。例えば、次式(3)のように、配信レートBRを、負荷率LRが大きいほど小さな値とする。式(3)は負荷率LRに応じて配信レートBRを線形的に下げる式の一例であるが、負荷率LRに応じて配信レートBRを非線形的に下げてもよいし、表1に示す他の変数を用いて配信レートBRを決定してもよい。なお、配信レートBRは、マルチキャストストリームの配信レートの最大値MAX_BRを超えないものとする。このように、再送サーバ10の負荷率LRが大きい場合には、コンテンツ配信サーバ20の配信レートBRを下げることにより、受信装置40の単位時間あたりの損失パケット数を低下させることが可能となる。
【0039】
【0040】
配信レート送信部19は、配信レート決定部17により決定された配信レート、及びマルチキャストIDを含む配信レート情報を、コンテンツ配信サーバ20に通知する。
【0041】
コンテンツ配信サーバ20は、再送サーバ10から配信レート情報を受け取ると、レート制御識別IDをインクリメントする。そして、コンテンツ配信サーバ20は、配信レート情報に基づいて、指定のマルチキャストグループの配信レートを、指定の配信レートに動的に切り替える。これにより、再送サーバ10の負荷をマルチキャストグループごとに調整することが可能となる。
【0042】
再送サーバ10の許容配信レートMAX_RSBR(MCID)は、マルチキャストグループごとに設定することが可能である。例えば、MCID=A,Bの2つのマルチキャストグループが存在する場合に、MAX_RSBR(A)>MAX_RSBR(B)と設定することで、再送サーバ10のリソースをMCID=Aのマルチキャストグループに優先的に振り分けることが可能となる。ただし、MAX_RSBR(A)+MAX_RSBR(B)が、再送サーバ10の配信性能を超えないように設定する必要がある。
【0043】
(再送要求受信時の処理)
次に、再送サーバ10による再送要求受信時の処理を、
図3を参照して説明する。
図3は、再送サーバ10による要求情報の受信ごとに発生する処理例を示すフローチャートである。
【0044】
ステップS101では、再送要求受信部11により、受信装置40から再送要求を受信する。
【0045】
ステップS102では、要求情報管理部12により、再送要求を解析し、マルチキャストID(MCID)、シーケンシャル番号(s)、及びレート制御識別ID(d)を検出する。
【0046】
ステップS103では、応答パケット送信部18により、受信装置40から再送要求されたパケットに対応する応答パケットを、該受信装置40に送信する。
【0047】
ステップS104では、タイマー管理部14により、現在計測中のレート制御識別IDであるLastdと、ステップS102で検出されたレート制御識別IDとを比較する。Lastdの初期値は-1とする。レート制御識別IDがインクリメントされてd>Lastdとなった場合には処理をステップS107に進め、それ以外の場合には処理をステップS105に進める。
【0048】
ステップS105では、要求情報管理部12により、現在計測中のレート制御識別IDであるLastdと、ステップS102で検出されたレート制御識別IDとが一致するか否かを判定する。d<Lastdである場合には何も行わず、d=Lastdである場合には処理をステップS106に進める。
【0049】
ステップS106では、要求情報管理部12により、再送要求パケット数Rnumをインクリメントする。
【0050】
ステップS107では、タイマー管理部14により、タイマー時間T1を設定するとともに、タイマーを設定した時刻から現在の時刻までの経過時間の計測を開始する。
【0051】
ステップS108では、要求情報管理部12により、Lastdに、これから再送要求パケット数の計測を開始する最新のレート制御識別IDを代入してLastdを更新する。
【0052】
(配信レートの決定処理)
次に、再送サーバ10による配信レートの決定処理を、
図4を参照して説明する。
図4は、再送サーバ10による配信レート決定の処理例を示すフローチャートである。
【0053】
ステップS201では、配信レート決定部17により、
図3のステップS107で設定されたタイマー時間が経過したことを示すタイマー発火イベント、又は送信バッファ15の利用率が高いことを示すバッファ飽和イベントを検出する。すなわち、配信レート決定部17は、タイマー時間T1が経過するか、又はタイマーを設定した時刻から送信バッファ15の空き容量が閾値以下となるまでの時間T2が経過すると、処理をステップS202に進める。
【0054】
ステップS202では、配信レート決定部17により、上記式(1)(2)を用いて負荷率を計算する。
【0055】
ステップS203では、配信レート決定部17により、上記式(3)を用いて配信レートを計算する。
【0056】
ステップS204では、配信レート送信部19により、配信レート及びマルチキャストIDを含む配信レート情報をコンテンツ配信サーバ20に通知する。
【0057】
以上説明したように、受信装置40はコンテンツ配信サーバ20からパケットを受信し、ロスパケットを検出すると、マルチキャストID、シーケンシャル番号、及びレート制御識別IDを含む再送要求を再送サーバ10に送信する。再送サーバ10は、受信装置40から再送要求を受信すると、応答パケットを生成して送信するとともに、応答パケットの送信に係る負荷率(応答パケットの送信に必要な再送レートから算出される負荷率)に基づいて、マルチキャストID及びレート制御識別IDごとに、マルチキャストストリームの配信レートを決定する。かかる構成により、本発明によれば、オペレーティングシステムのアップデートなど、リアルタイム性の求められないコンテンツについて、限られたリソースの中でデータ到達を保証しながらマルチキャスト配信を実現することが可能となる。そして、ネットワーク状況だけでなく、コンテンツ配信サーバ20の性能によってフロー制御を行うので、受信装置40の増加による再送サーバ10へのアクセス集中による破綻を防止することができる。
【0058】
また、受信装置40のパケットロスのフィードバックにより、再送サーバ10が破綻しない範囲内でマルチキャストの配信レートを最大化することが可能となる。また、再送サーバ10により決定された配信レートを最大値として、その他の高信頼性マルチキャストのフロー制御を組み合わせることで、再送サーバ10の破綻を防止しながら配信効率を高めることが可能となる。
【0059】
また本発明では、マルチキャストグループを識別するためのマルチキャストIDを導入することにより、マルチキャストストリームごとに許容配信レートを設定することができ、再送サーバ10は、マルチキャストIDごとに定められた許容配信レートに対する再送レートの割合を、負荷率として算出する。そのため、本発明によれば、マルチキャストグループごとに再送サーバ10のリソースを割り当てることができ、例えば優先的に送信したいコンテンツの配信レートを上昇させることが可能となる。
【0060】
(プログラム)
配信サーバ30(再送サーバ10及びコンテンツ配信サーバ20)は、各機能を実現する処理内容を記述したプログラムを記憶部に格納しておき、CPU(Central Processing Unit)、DSP(Digital Signal Processor)などのプロセッサによってこのプログラムを読み出して実行させるコンピュータであってもよい。また、これらの処理内容の少なくとも一部は、ハードウェアで実現されてもよい。例えば、配信サーバ30として機能させるためのプログラムは、上述した
図3及び
図4に記載のステップを含む。
【0061】
また、このプログラムは、コンピュータが読み取り可能な記録媒体に記録されていてもよい。このような記録媒体を用いれば、プログラムをコンピュータにインストールすることが可能である。ここで、プログラムが記録された記録媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD-ROM、DVD-ROMなどの記録媒体であってもよい。また、このプログラムは、ネットワークを介したダウンロードによって提供することもできる。
【0062】
上述の実施形態は代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、実施形態に記載の構成ブロック又は処理ステップについて、複数を1つに組み合わせたり、1つを複数に分割したりすることが可能である。
【符号の説明】
【0063】
1 配信システム
10 再送サーバ
11 再送要求受信部
12 要求情報管理部
13 応答パケット生成部
14 タイマー管理部
15 送信バッファ
16 送信バッファ管理部
17 配信レート決定部
18 応答パケット送信部
19 配信レート送信部
20 コンテンツ配信サーバ
30 配信サーバ
40 受信装置