(57)【要約】  送信端末２０は、過去に実行された送信処理におけるパケットロス率とパケットロス率の信頼度と送信処理の性能を示す性能データとを含む送信情報を送信処理ごとに記憶する記憶部２１と、記憶されている送信情報のうち計測された送信処理の性能を示すデータと性能データとの差異に対する信頼度の比率が最大である送信情報を選択する選択部２２と、選択された送信情報に含まれるパケットロス率を用いて性能が計測された送信処理で送信されるデータに付与される冗長度を決定する決定部２３とを備える。
2018042885.tif 000002
【特許請求の範囲】
【請求項１】
過去に実行された送信処理におけるパケットロス率と前記パケットロス率の信頼度と前記送信処理の性能を示す性能データとを含む送信情報を送信処理ごとに記憶する記憶部と、
記憶されている送信情報のうち計測された送信処理の性能を示すデータと性能データとの差異に対する信頼度の比率が最大である送信情報を選択する選択部と、
選択された送信情報に含まれるパケットロス率を用いて性能が計測された送信処理で送信されるデータに付与される冗長度を決定する決定部とを備える
ことを特徴とする送信端末。
【請求項２】
選択部は、選択された送信情報に含まれるパケットロス率を性能が計測された送信処理におけるパケットロス率に推定する
請求項１記載の送信端末。
【請求項３】
決定された冗長度を送信されるデータに付与する付与部を備える
請求項１または請求項２記載の送信端末。
【請求項４】
冗長度が付与されたデータを送信する送信部と、
前記送信部による送信処理の性能を計測する計測部とを備え、
前記計測部は、計測された前記送信処理の性能を示すデータである性能データと推定されたパケットロス率と所定の値である信頼度とを含む送信情報を記憶部に追加する
請求項２記載の送信端末。
【請求項５】
送信部による送信処理におけるパケットロス率を算出するロス率算出部と、
算出されたパケットロス率を用いて信頼度を算出する信頼度算出部とを備え、
前記ロス率算出部は、前記送信処理に関する送信情報に含まれる推定されたパケットロス率を算出されたパケットロス率に更新し、
前記信頼度算出部は、選択された送信情報に含まれる信頼度を算出された信頼度に更新する
請求項４記載の送信端末。
【請求項６】
計測部は、送信部がデータを送信するスループットを計測する
請求項４または請求項５記載の送信端末。
【請求項７】
過去に実行された送信処理におけるパケットロス率と前記パケットロス率の信頼度と前記送信処理の性能を示す性能データとを含む送信情報を送信処理ごとに記憶し、
記憶されている送信情報のうち計測された送信処理の性能を示すデータと性能データとの差異に対する信頼度の比率が最大である送信情報を選択し、
選択された送信情報に含まれるパケットロス率を用いて性能が計測された送信処理で送信されるデータに付与される冗長度を決定する
ことを特徴とする送信方法。
【請求項８】
選択された送信情報に含まれるパケットロス率を性能が計測された送信処理におけるパケットロス率に推定する
請求項７記載の送信方法。
【請求項９】
コンピュータに、
過去に実行された送信処理におけるパケットロス率と前記パケットロス率の信頼度と前記送信処理の性能を示す性能データとを含む送信情報を送信処理ごとに記憶する記憶処理、
記憶されている送信情報のうち計測された送信処理の性能を示すデータと性能データとの差異に対する信頼度の比率が最大である送信情報を選択する選択処理、および
選択された送信情報に含まれるパケットロス率を用いて性能が計測された送信処理で送信されるデータに付与される冗長度を決定する決定処理
を実行させるための送信プログラム。
【請求項１０】
コンピュータに、
選択された送信情報に含まれるパケットロス率を性能が計測された送信処理におけるパケットロス率に推定する推定処理を実行させる
請求項９記載の送信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信端末、送信方法および送信プログラムに関し、特にデータ送信で使用される通信ネットワークの状態の変動に応じて送信されるデータに付与される冗長度を変更できる送信端末、送信方法および送信プログラムに関する。
【背景技術】
【０００２】
状態が頻繁に変動する通信ネットワークが使用されるデータ送信では、パケットロスが頻発する。頻発するパケットロスへの対処法として、再送方式(ARQ;Automatic Repeat reQuest) と、消失訂正方式(FEC;Forward Error Correction)がそれぞれ研究されている。【０００３】
再送方式では、送信されたパケットに対する到達確認応答(ACK) が返信されるまでパケットが送信され続ける。または、タイムアウトが発生するまでパケットが送信され続ける。すなわち、再送方式では送信データの到達性が保証される。【０００４】
しかし、再送方式ではパケットロスが発生した送信データが再度送信されるため、再送信分の遅延が発生する。すなわち、データ送信の方式に再送方式が使用されると、データ送信から即時性が損なわれる。【０００５】
また、消失訂正方式では、送信データに冗長データ（例えば、パリティデータ）が付加される。冗長データが付加されていると、パケットロスが発生しても受信側が送信データを復号できる。すなわち、データ送信の方式に消失訂正方式が使用されると、データ送信から即時性が損なわれないままパケットロスの問題が解決される。【０００６】
特許文献１〜特許文献３には、消失訂正方式の例が記載されている。特許文献１には、入力データレートと送信可能帯域が変化した場合に帯域効率を得ながら伝送遅延の増大を防ぐように冗長送信を行う方式が記載されている。入力データレートの単位、および送信可能帯域の単位は、例えばbps である。【０００７】
特許文献２には、受信器における誤り訂正後に配信されていないパケットが再送信されることを防止するように受信されたネットワーク状態情報に基づいて冗長度の量を動的に決定する冗長度決定部を含むパケット送信装置が記載されている。また、特許文献３には、通信ネットワークの状態に応じて冗長分の適切なパケット量を特定する動画送信システムが記載されている。【０００８】
また、特許文献４には、送信間隔と受信間隔を比較し、受信間隔と送信間隔が等しい計測パケットのうちパケットサイズが最大の計測パケットを用いて利用可能帯域を計算するネットワーク帯域計測方法が記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１４−２２５７５１号公報
【特許文献２】特表２０１６−５０２７９４号公報
【特許文献３】国際公開第２０１１／０６５２９４号
【特許文献４】特許第５９２８５７４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献１に記載されている方式は、通信ネットワークの状態変化に伴うパケットロス率の変動を考慮せずに冗長符号化を実行している。すなわち、通信ネットワークの状態変化に伴うパケットロス率の変動を考慮して冗長符号化を実行する方式が求められている。【００１１】
特許文献２〜特許文献３に記載されているように、パケットロス率の変動を考慮する方法として、過去に取得されたパケットロス率の情報を用いて将来のパケットロス率を推定する方法も考えられる。しかし、通信サービスの品質が保証されないベストエフォートな通信ネットワークが使用されるデータ送信では、瞬間的に大量のパケットが損失するバーストロスが発生する可能性がある。【００１２】
ベストエフォートな通信ネットワークが使用されるデータ送信に関して過去に取得されたパケットロス率の情報には、バーストロスが発生した時の情報も含まれる。すなわち、過去に取得されたパケットロス率の情報を用いたパケットロス率の推定方法は、バーストロスが発生した時に取得された異常値の影響を受けやすいため、正確なパケットロス率を推定できない可能性が高い。上記の問題を解決する方法として、過去に取得されたパケットロス率の情報の信頼度も併せて取得する方法がある。【００１３】
また、特許文献４に記載されている過去に取得されたデータを使用せずにパケットロス率に影響する通信ネットワークに関するスループットを計測する方法を用いて将来のパケットロス率を推定する方法も考えられる。しかし、頻繁に変動する送信可能帯域幅の正確な計測および推定は困難である。正確な計測および推定が困難な帯域幅には、例えばUDP(User Datagram Protocol) でデータが送信される時のスループットであるUDP スループットがある。【００１４】
よって、正確な計測および推定が困難な帯域幅が使用される場合の冗長符号化は、帯域幅の計測誤差が予め考慮された上で実行されることが求められる。送信可能帯域幅の計測誤差が考慮されずに冗長符号化が実行された場合、無駄なデータが送信されたり、データの復号が失敗したりすることが考えられる。【００１５】
帯域幅の計測誤差は、例えば過去に計測された帯域幅のデータに基づいて考慮される。現在計測された帯域幅に最も近い過去に計測された信頼性の高いデータが使用されることによって、計測誤差が考慮される。【００１６】
従って、通信ネットワークの現在の状態が考慮された上で過去に計測された信頼度を含むデータに基づいてパケットロス率を推定し、推定されたパケットロス率を用いて冗長符号化を実行する方式が求められている。【００１７】
［発明の目的］
そこで、本発明は、上述した課題を解決する、送信端末と受信端末との間の通信ネットワークの状態の変動を考慮した上でパケットロスに対処しつつ送信可能帯域の利用効率を向上させることができる送信端末、送信方法および送信プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明による送信端末は、過去に実行された送信処理におけるパケットロス率とパケットロス率の信頼度と送信処理の性能を示す性能データとを含む送信情報を送信処理ごとに記憶する記憶部と、記憶されている送信情報のうち計測された送信処理の性能を示すデータと性能データとの差異に対する信頼度の比率が最大である送信情報を選択する選択部と、選択された送信情報に含まれるパケットロス率を用いて性能が計測された送信処理で送信されるデータに付与される冗長度を決定する決定部とを備えることを特徴とする。【００１９】
本発明による送信方法は、過去に実行された送信処理におけるパケットロス率とパケットロス率の信頼度と送信処理の性能を示す性能データとを含む送信情報を送信処理ごとに記憶し、記憶されている送信情報のうち計測された送信処理の性能を示すデータと性能データとの差異に対する信頼度の比率が最大である送信情報を選択し、選択された送信情報に含まれるパケットロス率を用いて性能が計測された送信処理で送信されるデータに付与される冗長度を決定することを特徴とする。【００２０】
本発明による送信プログラムは、コンピュータに、過去に実行された送信処理におけるパケットロス率とパケットロス率の信頼度と送信処理の性能を示す性能データとを含む送信情報を送信処理ごとに記憶する記憶処理、記憶されている送信情報のうち計測された送信処理の性能を示すデータと性能データとの差異に対する信頼度の比率が最大である送信情報を選択する選択処理、および選択された送信情報に含まれるパケットロス率を用いて性能が計測された送信処理で送信されるデータに付与される冗長度を決定する決定処理を実行させることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、送信端末と受信端末との間の通信ネットワークの状態の変動を考慮した上でパケットロスに対処しつつ送信可能帯域の利用効率を向上させることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明による通信システム１０の第１の実施形態の構成例を示すブロック図である。
【図２】データベース部１０３に保持されるデータセットの例を示す説明図である。
【図３】ロス率推定部１０６によるパケットロス率の推定処理の動作を示すフローチャートである。
【図４】信頼度更新部１０５による信頼度更新処理の動作を示すフローチャートである。
【図５】冗長度決定部１０７による冗長度決定処理の動作を示すフローチャートである。
【図６】データベース部１０３に保持されるデータセットの他の例を示す説明図である。
【図７】データベース部１０３に保持されるデータセットの他の例を示す説明図である。
【図８】データベース部１０３に保持されるデータセットの他の例を示す説明図である。
【図９】データベース部１０３に保持されるデータセットの他の例を示す説明図である。
【図１０】データベース部１０３に保持されるデータセットの他の例を示す説明図である。
【図１１】データベース部１０３に保持されるデータセットの他の例を示す説明図である。
【図１２】データベース部１０３に保持されるデータセットの他の例を示す説明図である。
【図１３】データベース部１０３に保持されるデータセットの他の例を示す説明図である。
【図１４】本発明による送信端末の概要を示すブロック図である。
【発明を実施するための形態】
【００２３】
＜第１の実施形態＞
［構成の説明］
以下、本発明の実施形態を、図面を参照して説明する。図１は、本発明による通信システム１０の第１の実施形態の構成例を示すブロック図である。
【００２４】
本実施形態の通信システム１０は、通信ネットワークを介したデータ送信において、通信ネットワークの状態の変動に応じて冗長度を変更しながらデータを冗長符号化することによって、パケットロスを軽減させるシステムである。通信システム１０は、特にパケットロス率の変動に応じて冗長度を変更する。
【００２５】
図１に示すように、本実施形態の通信システム１０は、送信端末１００と、受信端末２００とを含む。また、送信端末１００は、通信ネットワーク３００を介して受信端末２００と通信可能に接続されている。
【００２６】
本実施形態の送信端末１００および受信端末２００は、例えば通信装置を備えたパーソナルコンピュータである。なお、送信端末１００および受信端末２００は、パーソナルコンピュータ以外の端末装置でもよい。
【００２７】
また、本実施形態の通信ネットワーク３００は、異質なネットワークで構成されていてもよい。例えば、通信ネットワーク３００は、インターネットとモバイルネットワークとで構成されていてもよい。
【００２８】
図１に示すように、送信端末１００は、送信部１０１と、UDP スループット計測部１０２と、データベース部１０３と、ロス率算出部１０４と、信頼度更新部１０５と、ロス率推定部１０６と、冗長度決定部１０７と、冗長符号部１０８とを含む。送信端末１００は、データ送信制御装置の役割を担う。
【００２９】
送信部１０１は、データをUDP で送信する機能を有する。送信部１０１は、通信ネットワーク３００を介して受信端末２００にデータを送信する。なお、送信部１０１は、UDP 以外の通信規約でデータを送信してもよい。
【００３０】
UDP スループット計測部１０２は、上述した送信可能帯域幅であるUDP スループットを計測する機能を有する。UDP スループット計測部１０２は、送信部１０１のUDP スループットを計測する。なお、UDP スループット計測部１０２は、UDP スループット以外の送信可能帯域幅を計測してもよい。
【００３１】
データベース部１０３は、実行されたデータ送信に関する各種の情報が含まれたデータセットを保持する機能を有する。データベース部１０３は、実行されたデータ送信ごとにデータセットを保持する。
【００３２】
本実施形態のデータセットは、送信データレートと、UDP スループットと、パケットロス率と、信頼度とを含む。なお、送信データレートの単位、およびUDP スループットの単位は、例えばbps である。
【００３３】
ロス率算出部１０４は、受信端末２００から送信された情報を基に実行されたデータ送信におけるパケットロス率を算出する機能を有する。ロス率算出部１０４は、後述のようにパケットロス率の算出処理を行う。
【００３４】
信頼度更新部１０５は、ロス率算出部１０４が算出したパケットロス率の値に基づいてデータベース部１０３に保持されているデータセットに含まれる信頼度を更新する機能を有する。
【００３５】
ロス率算出部１０４が算出したパケットロス率の値に基づいて信頼度更新部１０５が更新する信頼度は、後述するパケットロス率の推定に使用されたデータセットに含まれる信頼度である。データベース部１０３は、UDP スループット計測部１０２、ロス率算出部１０４、および信頼度更新部１０５それぞれから出力される情報をデータセットとして保持する。信頼度更新部１０５は、後述のように信頼度更新処理を行う。
【００３６】
ロス率推定部１０６は、データベース部１０３が保持する過去に実行されたデータ送信に関するデータセットに基づいて、次に実行されるデータ送信におけるパケットロス率を推定する機能を有する。ロス率推定部１０６は、後述のようにパケットロス率の推定処理を行う。
【００３７】
冗長度決定部１０７は、ロス率推定部１０６が推定したパケットロス率の値を用いて次に送信されるデータの冗長度を決定する機能を有する。冗長度決定部１０７は、後述のように冗長度決定処理を行う。
【００３８】
冗長符号部１０８は、冗長度決定部１０７の決定結果を用いて送信データを冗長化する機能を有する。冗長符号部１０８は、例えば、冗長度決定部１０７により決定された冗長度を用いて送信データを冗長符号化する。
【００３９】
以下、送信端末１００がi 番目のデータを送信する時にデータベース部１０３に登録されるデータセットを説明する。i 番目のデータが送信される前に、ロス率推定部１０６は、i 番目のデータの送信におけるパケットロス率を推定する。以下、ロス率推定部１０６により推定されたパケットロス率l’_iを推定パケットロス率と呼ぶ。
【００４０】
また、UDP スループット計測部１０２は、i 番目のデータが送信される前にUDP スループットu_i を計測する。また、送信部１０１は、i 番目のデータが送信される前に送信データレートs_i を取得する。なお、送信データレートs_i は、送信部１０１以外の構成要素によって取得されてもよい。
【００４１】
i 番目のデータが送信された直後、データベース部１０３には、図２に示すようにi 番目のデータの送信時の情報であるデータセットが登録される。図２は、データベース部１０３に保持されるデータセットの例を示す説明図である。
【００４２】
図２に示すように、データセットは、データ番号と、送信データレートと、UDP スループットと、パケットロス率と、信頼度とで構成されている。送信データレートの単位、およびUDP スループットの単位は、bps である。また、パケットロス率の単位は、% である。図２に示すデータセットのデータ番号は、i 番目のデータの送信時の情報であるため、「i 」である。
【００４３】
また、上記のようにi 番目のデータが送信される前に取得された各情報が登録されるため、図２に示すデータセットの送信データレートは「s_i 」、UDP スループットは「u_i 」、パケットロス率は「l’_i」である。また、図２に示すデータセットの信頼度は「c_i 」である。なお、c_i の初期値、すなわち最初にデータセットが登録された段階での信頼度は、「1.0 」である。
【００４４】
なお、i 番目のデータが送信された後でロス率算出部１０４が算出するパケットロス率、すなわち実測されたパケットロス率をl_i とする。以下、l_i を実測パケットロス率という。また、i 番目のデータに対して冗長符号化で付与される冗長度をr_i とする。
【００４５】
また、図１に示すように、受信端末２００は、受信部２０１と、ロス率情報送信部２０２とを含む。
【００４６】
受信部２０１は、送信端末１００の送信部１０１から送信されたデータを受信する機能を有する。送信部１０１がUDP でデータを送信した場合、受信部２０１は、UDP でデータを受信する。
【００４７】
ロス率情報送信部２０２は、送信端末１００のロス率算出部１０４がパケットロス率の算出に要する情報を送信する機能を有する。ロス率情報送信部２０２は、通信ネットワーク３００を介して送信端末１００に情報を送信する。
【００４８】
例えば、送信端末１００の送信部１０１がi 番目のデータをt 個のパケットに分割して受信端末２００に送信した時のロス率算出部１０４の動作を説明する。受信端末２００のロス率情報送信部２０２は、受信部２０１が受信したパケットの数だけACK をロス率算出部１０４に返す。
【００４９】
ロス率算出部１０４が受け取ったACK の数がr である場合、ロス率算出部１０４は、i 番目のデータの送信時のパケットロス率l_i を、以下のように算出する。
【００５０】
l_i = 1 - r/t  ・・・式（１）
【００５１】
式（１）等でロス率算出部１０４が算出したパケットロス率l_i が、実測パケットロス率である。
【００５２】
［動作の説明］
以下、本実施形態の送信端末１００の送信データの冗長度を決定する動作を図３〜図５を参照して説明する。
【００５３】
最初に、送信端末１００のロス率推定部１０６によるパケットロス率の推定処理を図３を参照して説明する。図３は、ロス率推定部１０６によるパケットロス率の推定処理の動作を示すフローチャートである。
【００５４】
ロス率推定部１０６は、パケットロス率を推定する対象のデータ送信で送信されるデータが最初に送信されるデータであるか否かを確認する。すなわち、ロス率推定部１０６は、i=1 であるか否かを確認する（ステップS101）。
【００５５】
i=1 である場合（ステップS101におけるTrue）、ロス率推定部１０６は、推定パケットロス率l’_iを0 とする（ステップS104）。パケットロス率を推定した後、ロス率推定部１０６は、パケットロス率の推定処理を終了する。
【００５６】
i=1 でない場合（ステップS101におけるFalse ）、ロス率推定部１０６は、現在の送信処理の性能を示すデータとデータセットに含まれているデータとの乖離度e_j を、データベース部１０３に保持されている各データセットに対して求める。乖離度e_j は、以下の式で算出される。
【００５７】
e_j = (s_j - s_i)2 + a*(u_j - u_i)2 (0 < j < i)  ・・・式（２）
【００５８】
なお、式（２）における係数a は、送信データレートとUDP スループットを揃えるための定数である。また、j は、データベース部１０３に保持されているデータセットのデータ番号に相当する。
【００５９】
e_j は、データベース部１０３に保持されているデータセットj と、次に送信されるi 番目のデータに関するデータセットi との乖離度を表す。本実施形態の乖離度は、送信時の送信データレート、およびUDP スループットの誤差を意味する。
【００６０】
e_j が大きい場合、j 番目のデータの送信時の状態は、i 番目のデータの送信時の状態と異なると考えられる。すなわち、i 番目のデータの送信時のパケットロス特性は、j 番目のデータの送信時のパケットロス特性と異なることが推測される。よって、データセットj に含まれるパケットロス率は、i 番目のデータの送信時のパケットロス率の推定値にならない。
【００６１】
e_j が小さい場合、j 番目のデータの送信時の状態は、i 番目のデータの送信時の状態と類似すると考えられる。すなわち、i 番目のデータの送信時のパケットロス特性は、j 番目のデータの送信時のパケットロス特性と同様であることが推測される。
【００６２】
同様に、(i+1) 番目のデータが送信される際の推定パケットロス率l’_(i+1)を算出する場合、ロス率推定部１０６は、以下の式で乖離度e_j を算出する。
【００６３】
e_j = (s_j - s_(i+1))2 + a*(u_j - u_(i+1))2 (0 < j < (i+1))
【００６４】
各データセットに関して乖離度e_j を算出した後、ロス率推定部１０６は、以下の式を満たすデータセットm を求める（ステップS102）。
【００６５】
m = argmax(c_j/e_j) (m <= j) ・・・式（３）
【００６６】
すなわち、ロス率推定部１０６は、算出された各e_j を用いて(c_j/e_j) が最大であるデータセットj を求める。ロス率推定部１０６は、求められたデータセットj をデータセットm とする。データセットm は、送信が試みられるi 番目のデータの送信時のs_i 、およびu_i に含まれるデータが最も近く、かつ信頼度が最も高いデータセットである。
【００６７】
式（３）でデータセットm が決定される理由を以下に説明する。パケットロスは、無線LAN(Local Area Network) ルータやLTE(Long Term Evolution)基地局等の中継器におけるビット誤り、またはキュー溢れが原因で発生する。特に、外乱がない環境ではUDP スループット等の帯域幅より送信データレートが高い場合、パケットロスの殆どの原因はキュー溢れである。
【００６８】
すなわち、外乱がない環境では、正確に計測された帯域幅と送信データレートがそれぞれ過去に計測された値と同一であれば、パケットロス率も過去に算出された値と同一になると考えられる。
【００６９】
しかし、外乱が全くない環境は存在しないと考えられる。また、上述したようにUDP スループット等の帯域幅を正確に計測することは困難である。よって、本実施形態では乖離度が小さいだけでなく、信頼度も大きいデータセットに含まれるパケットロス率を推定値として用いる手法が使用されている。
【００７０】
次いで、ロス率推定部１０６は、i 番目のデータの送信時のパケットロス率l’_iを、以下のように推定する（ステップS103）。
【００７１】
l’_i = l_m  ・・・式（４）
【００７２】
すなわち、パケットロス率l’_iは、データセットm に含まれる実測パケットロス率l_m であると推定される。ただし、データセットm が存在しない場合、またはデータベース部１０３に何のデータセットも登録されていない場合、ロス率推定部１０６は、推定パケットロス率l’_iを0 とする。
【００７３】
同様に、ロス率推定部１０６は、(i+1) 番目のデータの送信時のパケットロス率l’_(i+1)を、以下のように推定する。
【００７４】
l’_(i+1) = l_m
【００７５】
データセットm は、送信が試みられる(i+1) 番目のデータの送信時のs_(i+1) 、およびu_(i+1) に含まれるデータが最も近く、かつ信頼度が最も高いデータセットである。パケットロス率を推定した後、ロス率推定部１０６は、パケットロス率の推定処理を終了する。
【００７６】
次に、送信端末１００の信頼度更新部１０５による信頼度更新処理を図４を参照して説明する。図４は、信頼度更新部１０５による信頼度更新処理の動作を示すフローチャートである。
【００７７】
本例では、送信端末１００がk 個のデータを送信する場合を考える。信頼度更新部１０５は、最初のデータが送信された後から信頼度更新処理を開始する。最初のデータが送信された後、信頼度更新部１０５は、インデックスi を1 に設定する（ステップS201）。
【００７８】
送信部１０１は、i 番目のデータを送信する（ステップS202）。i 番目のデータが送信された直後、i 番目のデータの送信に関するデータセットがデータベース部１０３に登録される（ステップS203）。ステップS203で登録されるデータセットは、例えば図２に示すデータセットi である。
【００７９】
次いで、受信部２０１がi 番目のデータを受信することによって、i 番目のデータの送信が完了する（ステップS204）。i 番目のデータの受信が完了した後、ロス率情報送信部２０２は、i 番目のデータの送信におけるパケットロス率の算出に要する情報を送信する。
【００８０】
次いで、ロス率算出部１０４は、ロス率情報送信部２０２が送信したパケットロス率の算出に要する情報を受信する。情報を受信した後、ロス率算出部１０４は、i 番目のデータの送信時の実測パケットロス率l_i を算出する（ステップS205）。信頼度更新部１０５は、ロス率算出部１０４から算出された実測パケットロス率l_i を受け取る。
【００８１】
次いで、信頼度更新部１０５は、データベース部１０３に登録されているi 番目のデータの送信に関するデータセットi に含まれる推定パケットロス率l’_iと、受け取った実測パケットロス率l_i とを比較する。
【００８２】
比較の結果、信頼度更新部１０５は、推定パケットロス率l’_iの推定処理で用いられたデータセットm に含まれる信頼度c_m を、以下のように更新する（ステップS206）。
【００８３】
c_m = 1.0 - |l’_i - l_i|  ・・・式（５）
【００８４】
なお、式（５）でl’_iとl_i の差の絶対値が取得されている理由は、信頼度c_m が1.0 より大きくならないようにするためである。ただし計算の結果、信頼度c_m の値が負となった場合、信頼度更新部１０５は、信頼度c_m を0 に更新する。
【００８５】
次いで、信頼度更新部１０５は、データベース部１０３に登録されているデータセットi に含まれる推定パケットロス率l’_iを、実測パケットロス率l_i に更新する（ステップS207）。
【００８６】
次いで、信頼度更新部１０５は、インデックスi に1 を加算する（ステップS208）。加算した後、信頼度更新部１０５は、インデックスi がk より大きいか否かを確認する（ステップS209）。
【００８７】
インデックスi がk 以下である場合（ステップS209におけるFalse ）、送信部１０１は、再度ステップS202の処理を行う。すなわち、信頼度更新部１０５は、推定パケットロス率l’_(i+1)に関する信頼度の更新処理に移行する。
【００８８】
インデックスi がk より大きい場合（ステップS209におけるTrue）、k 個のデータ、すなわち全てのデータの送信時の推定パケットロス率に関する信頼度が更新されている。信頼度更新部１０５は、信頼度更新処理を終了する。
【００８９】
次に、送信端末１００の冗長度決定部１０７による冗長度決定処理を図５を参照して説明する。図５は、冗長度決定部１０７による冗長度決定処理の動作を示すフローチャートである。
【００９０】
本例では、ユーザから予め冗長度決定部１０７に、第１の閾値t1、第２の閾値t2、・・・、第ｎの閾値tn、基準冗長度r 、および定数係数b が与えられている。すなわち、n は与えられた閾値の数に相当する。なお、各閾値は、以下の関係式を満たす。
【００９１】
t1 < t2 < ・・・ < tn  ・・・式（６）
【００９２】
i 番目のデータが送信された直後、冗長度決定部１０７は、ロス率推定部１０６から推定パケットロス率l’_iを得る（ステップS301）。次いで、冗長度決定部１０７は、ステップS301で取得された推定パケットロス率l’_iがt1より小さいか否かを確認する（ステップS302）。
【００９３】
推定パケットロス率l’_iがt1より小さい場合（ステップS302におけるTrue）、冗長度決定部１０７は、冗長度r_i を以下のように決定する（ステップS303）。冗長度r_i を決定した後、送信端末１００は、ステップS311の処理を行う。
【００９４】
r_i = r/n  ・・・式（７）
【００９５】
推定パケットロス率l’_iがt1以上である場合（ステップS302におけるFalse ）、冗長度決定部１０７は、推定パケットロス率l’_iがt2より小さいか否かを確認する（ステップS304）。推定パケットロス率l’_iがt2より小さい場合（ステップS304におけるTrue）、冗長度決定部１０７は、冗長度r_i を以下のように決定する（ステップS305）。冗長度r_i を決定した後、送信端末１００は、ステップS311の処理を行う。
【００９６】
r_i = 2r/n  ・・・式（８）
【００９７】
推定パケットロス率l’_iがt2以上である場合（ステップS304におけるFalse ）、冗長度決定部１０７は、推定パケットロス率l’_iがt3より小さいか否かを確認する（ステップS306）。推定パケットロス率l’_iがt3より小さい場合（ステップS306におけるTrue）、冗長度決定部１０７は、冗長度r_i を以下のように決定する（ステップS307）。冗長度r_i を決定した後、送信端末１００は、ステップS311の処理を行う。
【００９８】
r_i = 3r/n  ・・・式（９）
【００９９】
以下、冗長度決定部１０７は、各閾値に対してステップS302〜ステップS303の処理と同様の処理を実行する。推定パケットロス率l’_iがt(n-1)以上である場合、冗長度決定部１０７は、推定パケットロス率l’_iがtnより小さいか否かを確認する（ステップS308）。推定パケットロス率l’_iがtnより小さい場合（ステップS308におけるTrue）、冗長度決定部１０７は、冗長度r_i を以下のように決定する（ステップS309）。冗長度r_i を決定した後、送信端末１００は、ステップS311の処理を行う。
【０１００】
r_i = r  ・・・式（１０）
【０１０１】
推定パケットロス率l’_iがtn以上である場合（ステップS308におけるFalse ）、冗長度決定部１０７は、冗長度r_i を以下のように決定する（ステップS310）。冗長度r_i を決定した後、送信端末１００は、ステップS311の処理を行う。
【０１０２】
r_i = b*r  ・・・式（１１）
【０１０３】
なお、式（１１）における係数b は、定数である。冗長度決定部１０７が冗長度r_i を決定すると、冗長符号部１０８は、i 番目のデータに対して冗長符号化を行う。冗長符号化が行われると、送信部１０１による送信処理の送信データレートs_i が増加する。本例では、送信データレートs_i が以下のように増加する。
【０１０４】
s’_i = s_i + d*r_i  ・・・式（１２）
【０１０５】
なお、式（１２）における係数d は、スケールを合わせるための定数である。式（１２）で係数d が使用されている理由は、送信データレートの単位と冗長度の単位が異なるためである。
【０１０６】
送信データレートが増加した場合、ロス率推定部１０６には、s’_iを用いて再度パケットロス率を推定することが求められる。ロス率推定部１０６は、増加した送信データレートs’_iを用いて、パケットロス率l’’_i を推定する（ステップS311）。なお、ロス率推定部１０６によるパケットロス率の推定処理は、図３に示す処理と同様である。
【０１０７】
次いで、冗長度決定部１０７は、ステップS311で推定されたパケットロス率l’’_i と、ステップS301で取得されたパケットロス率l’_iの差の度合いを確認する（ステップS312）。具体的には、冗長度決定部１０７は、l’’_i とl’_iが以下の関係式を満たすか否かを確認する。
【０１０８】
|l’’_i - l’_i| <= α  ・・・式（１３）
【０１０９】
式（１３）が満たされる場合、l’’_i とl’_iの差はα以下である。式（１３）が満たされる場合（ステップS312におけるTrue）、冗長度決定部１０７は、冗長度をr_i として出力する（ステップS314）。出力した後、冗長度決定部１０７は、冗長度決定処理を終了する。なお、αは、予めユーザによって入力される値であるが、一例として、0.01（１％）である。
【０１１０】
式（１３）が満たされない場合（ステップS312におけるFalse ）、冗長度決定部１０７は、ステップS311で推定されたl’’_i を推定パケットロス率l’_iとする（ステップS313）。次いで、冗長度決定部１０７は、再度ステップS302の処理を行う。
【０１１１】
なお、図５に示す冗長度決定部１０７による冗長度決定処理のアルゴリズムでは、推定パケットロス率l’_iが変数である冗長度r_i は、矩形関数の性質を有する。すなわち、本実施形態の冗長度決定処理は、無限ループに陥らないことが保証されている。その理由は、推定パケットロス率l’_iが変化しても冗長度r_i には値が変化しない定義域が存在するので、解が必ず導出されるためである。
【０１１２】
以上のように、本実施形態の送信端末１００は、アプリケーション層から得られる情報のみを用いてパケットロス率を高精度に推定し、即時性を損なわずにパケットロスに対処できる。その理由は、信頼度更新部１０５が推定されたパケットロス率と計測されたパケットロス率を比較し、推定値の信頼度を更新することによって、パケットロス率の推定精度が改善されるためである。冗長度決定部１０７は、高精度に推定されたパケットロス率に応じて冗長度を変化させることができる。
【０１１３】
＜具体例１＞
次に、送信端末１００の動作、および受信端末２００の動作を具体的な数値を用いて説明する。本例では、ユーザから第１の閾値t1として0.1%が、第２の閾値t2として1.0%が、基準冗長度r として4Kbyteがそれぞれ与えられている。また、各データの送信間隔は100msec である。また、定数係数b は2 である。
【０１１４】
送信端末１００は、最初に１番目のデータを送信する。１番目のデータのデータサイズは18Kbyte である。送信データレートs_1 は、初期値を用いて計算されるため0.144Mbps になる。また、１番目のデータが送信される際のUDP スループット計測部１０２のUDP スループットu_1 の計測結果は、2.1Mbps である。
【０１１５】
ロス率推定部１０６は、図３に示すパケットロス率の推定処理を開始する。１番目のデータが送信される前にデータベース部１０３には何も登録されていない。すなわち、i=1 であるため（ステップS101におけるTrue）、ロス率推定部１０６は、推定パケットロス率l’_1を0.0%とする。また、信頼度の初期値は、上述したように常に1.0 である。
【０１１６】
送信部１０１が１番目のデータを送信する（ステップS202）と、データベース部１０３には、データセット１が登録される（ステップS203）。図６は、データベース部１０３に保持されるデータセットの他の例を示す説明図である。図６は、１番目のデータが送信された直後にデータベース部１０３に登録されているデータセットを示す。
【０１１７】
１番目のデータの送信が完了した後（ステップS204）、ロス率算出部１０４は、ロス率情報送信部２０２からACK を受信する。次いで、ロス率算出部１０４は、実測パケットロス率l_1 を算出する（ステップS205）。本例で算出される実測パケットロス率l_1 は、0.0%である。
【０１１８】
次いで、信頼度更新部１０５は、ロス率算出部１０４から算出された実測パケットロス率l_1(=0.0[%])を受け取る。信頼度更新部１０５は、データベース部１０３に登録されているデータセット１に含まれる推定パケットロス率l’_1(=0.0[%]) と実測パケットロス率l_1 とを比較する。
【０１１９】
次いで、信頼度更新部１０５は、データセット１に含まれる信頼度c_1 を更新する（ステップS206）。１番目のデータの送信に関して推定パケットロス率l’_1と実測パケットロス率l_1 の差が0 であるため、信頼度c_1 は更新されない。すなわち、信頼度c_1 は、1.0 のままである。
【０１２０】
次に、送信端末１００は、２番目のデータを送信する。２番目のデータのデータサイズは60Kbyte である。送信データレートs_2 は、6.2Mbps と計算される。
【０１２１】
ロス率推定部１０６は、図３に示すパケットロス率の推定処理を開始する。ロス率推定部１０６は、データベース部１０３に登録されているデータセットの中から、含まれているデータが送信データレートs_2(=6.2[Mbps]) 、UDP スループットu_2(=2.1[Mbps]) に最も近く、かつ信頼度の最も高いデータセットを取り出す（ステップS102）。
【０１２２】
図６を参照すると、データベース部１０３に登録されているデータセットの中で、上記の条件を満たすデータセットは、データセット１である。よって、ロス率推定部１０６は、以下のように推定パケットロス率l’_2を算出する（ステップS103）。
【０１２３】
l’_2 = l_1 = 0.0 [%]
【０１２４】
次いで、冗長度決定部１０７は、ロス率推定部１０６から推定パケットロス率l’_2を受け取る（ステップS301）。冗長度決定部１０７は、推定パケットロス率l’_2がt1より小さいか否かを確認する（ステップS302）。l’_2がt1より小さいため（ステップS302におけるTrue）、冗長度決定部１０７は、２番目のデータの冗長度r_2 を以下のように決定する（ステップS303）。
【０１２５】
r_2 = r/2 = 2 [Kbyte]
【０１２６】
冗長度r_2 が2Kbyteに決定された場合、送信データレートs_2 は、以下のように増加する。
【０１２７】
s’_2 = s_2 + r_2 = 6.4 [Mbps]
【０１２８】
次いで、ロス率推定部１０６は、増加した送信データレートs’_2を用いて、パケットロス率l’’_2 を推定する（ステップS311）。本例では、推定パケットロス率l’’_2 は、l’_2から変化しない（ステップS312におけるTrue）。よって、冗長度決定部１０７は、r_2(=2[Kbyte])を冗長度として出力する（ステップS314）。
【０１２９】
次いで、冗長符号部１０８は、冗長度決定部１０７から冗長度r_2 を受け取る。冗長符号部１０８は、冗長度r_2 を用いて２番目のデータを冗長符号化する。次いで、送信部１０１は、冗長符号化された２番目のデータを送信する（ステップS202）。
【０１３０】
送信部１０１が２番目のデータを送信すると、データベース部１０３には、データセット２が登録される（ステップS203）。図７は、データベース部１０３に保持されるデータセットの他の例を示す説明図である。図７は、２番目のデータが送信された直後にデータベース部１０３に登録されているデータセットを示す。
【０１３１】
２番目のデータの送信が完了した後（ステップS204）、ロス率算出部１０４は、ロス率情報送信部２０２からACK を受信する。次いで、ロス率算出部１０４は、実測パケットロス率l_2 を算出する（ステップS205）。本例で算出される実測パケットロス率l_2 は、0.9%である。
【０１３２】
次いで、信頼度更新部１０５は、ロス率算出部１０４から算出された実測パケットロス率l_2(=0.9[%])を受け取る。信頼度更新部１０５は、データベース部１０３に登録されているデータセット２に含まれる推定パケットロス率l’_2(=0.0[%]) と実測パケットロス率l_2 とを比較する。
【０１３３】
比較の結果、信頼度更新部１０５は、データセット１に含まれる信頼度c_1 を以下のように更新する（ステップS206）。
【０１３４】
c_1 = 1.0 - | 0.0 - 0.9 | = 0.1
【０１３５】
また、信頼度更新部１０５は、データセット２に含まれる推定パケットロス率l’_2を、実測パケットロス率l_2 に更新する（ステップS207）。図８は、データベース部１０３に保持されるデータセットの他の例を示す説明図である。図８は、２番目のデータの送信が完了し各データが更新された後にデータベース部１０３に登録されているデータセットを示す。
【０１３６】
次に、送信端末１００は、３番目のデータを送信する。３番目のデータのデータサイズは13Kbyte である。送信データレートs_3 は、3.6Mbps と計算される。
【０１３７】
ロス率推定部１０６は、図３に示すパケットロス率の推定処理を開始する。ロス率推定部１０６は、データベース部１０３に登録されているデータセットの中から、含まれているデータが送信データレートs_3(=3.6[Mbps]) 、UDP スループットu_3(=2.1[Mbps]) に最も近く、かつ信頼度の最も高いデータセットを取り出す（ステップS102）。
【０１３８】
図８を参照すると、データベース部１０３に登録されているデータセットの中で、上記の条件を満たすデータセットは、データセット２である。よって、ロス率推定部１０６は、以下のように推定パケットロス率l’_3を算出する（ステップS103）。
【０１３９】
l’_3 = l_2 = 0.9 [%]
【０１４０】
次いで、冗長度決定部１０７は、ロス率推定部１０６から推定パケットロス率l’_3を受け取る（ステップS301）。冗長度決定部１０７は、推定パケットロス率l’_3がt1より小さいか否かを確認する（ステップS302）。l’_3がt1より大きいため（ステップS302におけるFalse ）、冗長度決定部１０７は、l’_3がt2より小さいか否かを確認する（ステップS308）。
【０１４１】
l’_3がt2より小さいため（ステップS308におけるTrue）、冗長度決定部１０７は、３番目のデータの冗長度r_3 を以下のように決定する（ステップS309）。
【０１４２】
r_3 = r = 4 [Kbyte]
【０１４３】
冗長度r_3 が4Kbyteに決定された場合、送信データレートs_3 は、以下のように増加する。
【０１４４】
s’_3 = s_3 + r_3 = 3.8 [Mbps]
【０１４５】
次いで、ロス率推定部１０６は、増加した送信データレートs’_3を用いて、パケットロス率l’’_3 を推定する（ステップS311）。本例では、推定パケットロス率l’’_3 は、l’_3から変化しない（ステップS312におけるTrue）。よって、冗長度決定部１０７は、r_3(=4[Kbyte])を冗長度として出力する（ステップS314）。
【０１４６】
次いで、冗長符号部１０８は、冗長度決定部１０７から冗長度r_3 を受け取る。冗長符号部１０８は、冗長度r_3 を用いて３番目のデータを冗長符号化する。次いで、送信部１０１は、冗長符号化された３番目のデータを送信する（ステップS202）。
【０１４７】
送信部１０１が３番目のデータを送信すると、データベース部１０３には、データセット３が登録される（ステップS203）。図９は、データベース部１０３に保持されるデータセットの他の例を示す説明図である。図９は、３番目のデータが送信された直後にデータベース部１０３に登録されているデータセットを示す。
【０１４８】
３番目のデータの送信が完了した後（ステップS204）、ロス率算出部１０４は、ロス率情報送信部２０２からACK を受信する。次いで、ロス率算出部１０４は、実測パケットロス率l_3 を算出する（ステップS205）。本例で算出される実測パケットロス率l_3 は、0.5%である。
【０１４９】
次いで、信頼度更新部１０５は、ロス率算出部１０４から算出された実測パケットロス率l_3(=0.5[%])を受け取る。信頼度更新部１０５は、データベース部１０３に登録されているデータセット３に含まれる推定パケットロス率l’_3(=0.9[%]) と実測パケットロス率l_3 とを比較する。
【０１５０】
比較の結果、信頼度更新部１０５は、データセット２に含まれる信頼度c_2 を以下のように更新する（ステップS206）。
【０１５１】
c_2 = 1.0 - | 0.9 - 0.5 | = 0.6
【０１５２】
また、信頼度更新部１０５は、データセット３に含まれる推定パケットロス率l’_3を、実測パケットロス率l_3 に更新する（ステップS207）。図１０は、データベース部１０３に保持されるデータセットの他の例を示す説明図である。図１０は、３番目のデータの送信が完了し各データが更新された後にデータベース部１０３に登録されているデータセットを示す。
【０１５３】
次に、送信端末１００は、データサイズが14Kbyte である４番目のデータを送信する。４番目のデータの送信が完了した後（ステップS204）、ロス率算出部１０４は、実測パケットロス率l_4 を0.4%と算出する（ステップS205）。
【０１５４】
次に、送信端末１００は、データサイズが16Kbyte である５番目のデータを送信する。５番目のデータの送信が完了した後（ステップS204）、ロス率算出部１０４は、実測パケットロス率l_5 を5.0%と算出する（ステップS205）。
【０１５５】
図１１は、データベース部１０３に保持されるデータセットの他の例を示す説明図である。図１１は、５番目のデータの送信が完了し各データが更新された後にデータベース部１０３に登録されているデータセットを示す。
【０１５６】
以下、図１１に示すデータセットがデータベース部１０３に登録され、５番目のデータの送信時にバーストロスが偶発したという状況を想定する。
【０１５７】
次に、送信端末１００は、６番目のデータを送信する。６番目のデータのデータサイズは19Kbyte である。送信データレートs_6 は、2.3Mbps と計算される。
【０１５８】
ロス率推定部１０６は、図３に示すパケットロス率の推定処理を開始する。ロス率推定部１０６は、データベース部１０３に登録されているデータセットの中から、含まれているデータが送信データレートs_6(=2.3[Mbps]) 、UDP スループットu_6(=2.1[Mbps]) に最も近く、かつ信頼度の最も高いデータセットを取り出す（ステップS102）。
【０１５９】
図１１を参照すると、データベース部１０３に登録されているデータセットの中で、上記の条件を満たすデータセットは、データセット５である。よって、ロス率推定部１０６は、以下のように推定パケットロス率l’_6を算出する（ステップS103）。
【０１６０】
l’_6 = l_5 = 5.0 [%]
【０１６１】
次いで、冗長度決定部１０７は、ロス率推定部１０６から推定パケットロス率l’_6を受け取る（ステップS301）。冗長度決定部１０７は、推定パケットロス率l’_6がt2より大きいため（ステップS308におけるFalse ）、６番目のデータの冗長度r_6 を以下のように決定する（ステップS310）。
【０１６２】
r_6 = 2*r = 8 [Kbyte]
【０１６３】
冗長度r_6 が8Kbyteに決定された場合、送信データレートs_6 は、以下のように増加する。
【０１６４】
s’_6 = s_6 + r_6 = 2.5 [Mbps]
【０１６５】
次いで、ロス率推定部１０６は、増加した送信データレートs’_6を用いて、パケットロス率l’’_6 を推定する（ステップS311）。本例では、推定パケットロス率l’’_6 は、l’_6から変化しない（ステップS312におけるTrue）。よって、冗長度決定部１０７は、r_6(=8[Kbyte])を冗長度として出力する（ステップS314）。
【０１６６】
次いで、冗長符号部１０８は、冗長度決定部１０７から冗長度r_6 を受け取る。冗長符号部１０８は、冗長度r_6 を用いて６番目のデータを冗長符号化する。次いで、送信部１０１は、冗長符号化された６番目のデータを送信する（ステップS202）。
【０１６７】
送信部１０１が６番目のデータを送信すると、データベース部１０３には、データセット６が登録される（ステップS203）。図１２は、データベース部１０３に保持されるデータセットの他の例を示す説明図である。図１２は、６番目のデータが送信された直後にデータベース部１０３に登録されているデータセットを示す。
【０１６８】
６番目のデータの送信が完了した後（ステップS204）、ロス率算出部１０４は、ロス率情報送信部２０２からACK を受信する。次いで、ロス率算出部１０４は、実測パケットロス率l_6 を算出する（ステップS205）。本例で算出される実測パケットロス率l_6 は、0.2%である。
【０１６９】
次いで、信頼度更新部１０５は、実測パケットロス率l_6(=0.2[%])と推定パケットロス率l’_6(=5.0[%]) とを比較する。比較の結果、信頼度更新部１０５は、データセット５に含まれる信頼度c_5 を以下のように計算する（ステップS206）。
【０１７０】
c_5 = 1.0 - | 5.0 - 0.2 | = -3.8
【０１７１】
上記の通り、信頼度c_5 は、0 未満になる。よって、信頼度更新部１０５は、信頼度c_5 を0.0 に更新する。また、信頼度更新部１０５は、データセット６に含まれる推定パケットロス率l’_6を、実測パケットロス率l_6 に更新する（ステップS207）。
【０１７２】
図１３は、データベース部１０３に保持されるデータセットの他の例を示す説明図である。図１３は、６番目のデータの送信が完了し各データが更新された後にデータベース部１０３に登録されているデータセットを示す。
【０１７３】
次に、送信端末１００は、７番目のデータを送信する。７番目のデータのデータサイズは50Kbyte である。送信データレートs_7 は、2.8Mbps と計算される。
【０１７４】
ロス率推定部１０６は、図３に示すパケットロス率の推定処理を開始する。ロス率推定部１０６は、データベース部１０３に登録されているデータセットの中から、含まれているデータが送信データレートs_7(=2.8[Mbps]) 、UDP スループットu_7(=2.1[Mbps]) に最も近く、かつ信頼度の最も高いデータセットを取り出す（ステップS102）。
【０１７５】
図１３を参照すると、データベース部１０３に登録されているデータセットの中で、含まれているデータが送信データレートs_7 、およびUDP スループットu_7 に最も近いデータセットは、データセット５である。しかし、信頼度も考慮されるため、ロス率推定部１０６は、データセット６を選択する。よって、ロス率推定部１０６は、以下のように推定パケットロス率l’_7を算出する（ステップS103）。
【０１７６】
l’_7 = l_6 = 0.2 [%]
【０１７７】
上記のように、ロス率推定部１０６は、送信データレートとUDP スループットだけでなく、信頼度にも基づいてパケットロス率を推定することによって、５番目のデータの送信時に偶発したバーストロスの影響を最小限に抑えることができる。すなわち、信頼度更新部１０５は、パケットロス率の推定精度を改善できる。
【０１７８】
［効果の説明］
本実施形態の通信システム１０は、パケットロスに対処しつつ、送信可能帯域の利用効率を最大化することを目的とする。上記の目的を達成するために、通信システム１０は、アプリケーション層から得られる情報のみを用いて送信端末１００と受信端末２００の間の通信ネットワークの状態を推定し、推定された状態に応じて冗長度を変更する。特に、通信システム１０は、パケットロス率を推定することによって冗長度を決定する。
【０１７９】
本実施形態の送信端末１００は、データを送信する送信部１０１と、送信部１０１のUDP スループットを計測するUDP スループット計測部１０２と、パケットロス率を算出するロス率算出部１０４とを備える。また、送信端末１００は、ロス率算出部１０４から出力された情報に基づいてパケットロス率の推定値の信頼度を更新する信頼度更新部１０５を備える。
【０１８０】
また、本実施形態の送信端末１００は、UDP スループット計測部１０２、ロス率算出部１０４、および信頼度更新部１０５から出力された各情報をデータセットとして保持するデータベース部１０３を備える。また、送信端末１００は、データベース部１０３が保持する過去の時系列データを基にパケットロス率を推定するロス率推定部１０６と、ロス率推定部１０６が出力したパケットロス率を基に冗長度を決定する冗長度決定部１０７とを備える。
【０１８１】
また、本実施形態の送信端末１００は、冗長度決定部１０７が決定した冗長度を用いて冗長符号化を行う冗長符号部１０８を備える。ロス率推定部１０６が推定したパケットロス率に応じて冗長度決定部１０７が冗長度を変化させることによって、送信端末１００は、損失したデータを回復させつつ、送信可能帯域の利用効率を最大にできる。また、バーストロス等が偶発した場合であっても信頼度更新部１０５が信頼度を更新するため、送信端末１００は、パケットロス率の推定精度に対する影響を最小限に抑えることができる。
【０１８２】
パケットロス率の変動に合わせて冗長度が変更される場合、バーストロスが考慮されると、パケットロス率の高精度な推定、および予測が困難になる。また、不適切な冗長度で冗長符号化されるため、無駄なデータが送信されたり、データの復号が失敗したりすることが考えられる。
【０１８３】
本実施形態の送信端末１００は、推定したパケットロス率に応じて冗長度を変化させることによって損失したデータを回復させつつ、送信可能帯域の利用効率を最大化できる。バーストロスが偶発した場合であっても信頼度更新部１０５が信頼度を更新することによって、送信端末１００は、パケットロス率の推定精度に対するバーストロスの影響を最小限に抑えることができる。
【０１８４】
なお、本実施形態の送信端末１００および受信端末２００は、例えば、記憶媒体に格納されているプログラムに従って処理を実行するCPU(Central Processing Unit)によって実現される。すなわち送信部１０１、UDP スループット計測部１０２、ロス率算出部１０４、信頼度更新部１０５、ロス率推定部１０６、冗長度決定部１０７、冗長符号部１０８、受信部２０１、およびロス率情報送信部２０２は、例えば、プログラム制御に従って処理を実行するCPU によって実現される。
【０１８５】
また、データベース部１０３は、例えばRAM(Random Access Memory) で実現される。
【０１８６】
また、本実施形態の送信端末１００および受信端末２００における各部は、ハードウェア回路によって実現されてもよい。一例として、送信部１０１、UDP スループット計測部１０２、データベース部１０３、ロス率算出部１０４、信頼度更新部１０５、ロス率推定部１０６、冗長度決定部１０７、冗長符号部１０８、受信部２０１、およびロス率情報送信部２０２が、それぞれLSI(Large Scale Integration)で実現される。また、それらが１つのLSI で実現されていてもよい。
【０１８７】
次に、本発明の概要を説明する。図１４は、本発明による送信端末の概要を示すブロック図である。本発明による送信端末２０は、過去に実行された送信処理におけるパケットロス率とパケットロス率の信頼度と送信処理の性能を示す性能データとを含む送信情報を送信処理ごとに記憶する記憶部２１（例えば、データベース部１０３）と、記憶されている送信情報のうち計測された送信処理の性能を示すデータと性能データとの差異に対する信頼度の比率が最大である送信情報を選択する選択部２２（例えば、ロス率推定部１０６）と、選択された送信情報に含まれるパケットロス率を用いて性能が計測された送信処理で送信されるデータに付与される冗長度を決定する決定部２３（例えば、冗長度決定部１０７）とを備える。
【０１８８】
そのような構成により、送信端末は、送信端末と受信端末との間の通信ネットワークの状態の変動を考慮した上でパケットロスに対処しつつ送信可能帯域の利用効率を向上させることができる。
【０１８９】
また、選択部２２は、選択された送信情報に含まれるパケットロス率を性能が計測された送信処理におけるパケットロス率に推定してもよい。
【０１９０】
そのような構成により、送信端末は、計測されたデータに最も近く、かつ信頼度の最も高いデータセットに含まれるパケットロス率を送信処理におけるパケットロス率に推定できる。
【０１９１】
また、送信端末２０は、決定された冗長度を送信されるデータに付与する付与部（例えば、冗長符号部１０８）を備えてもよい。
【０１９２】
そのような構成により、送信端末は、推定されたパケットロス率に応じた冗長度が付与されたデータを送信できる。
【０１９３】
また、送信端末２０は、冗長度が付与されたデータを送信する送信部（例えば、送信部１０１）と、送信部による送信処理の性能を計測する計測部（例えば、UDP スループット計測部１０２）とを備え、計測部は、計測された送信処理の性能を示すデータである性能データと推定されたパケットロス率と所定の値である信頼度とを含む送信情報を記憶部２１に追加してもよい。
【０１９４】
そのような構成により、送信端末は、新たに実行された送信処理に関するデータセットを記憶部に追加できる。
【０１９５】
また、送信端末２０は、送信部による送信処理におけるパケットロス率を算出するロス率算出部（例えば、ロス率算出部１０４）と、算出されたパケットロス率を用いて信頼度を算出する信頼度算出部（例えば、信頼度更新部１０５）とを備え、ロス率算出部は、送信処理に関する送信情報に含まれる推定されたパケットロス率を算出されたパケットロス率に更新し、信頼度算出部は、選択された送信情報に含まれる信頼度を算出された信頼度に更新してもよい。
【０１９６】
そのような構成により、送信端末は、記憶部に記憶されているデータセットに含まれる情報をより正確な情報に更新できる。
【０１９７】
また、計測部は、送信部がデータを送信するスループットを計測してもよい。
【０１９８】
そのような構成により、送信端末は、送信処理のスループットを用いてパケットロス率を推定できる。
【０１９９】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０２００】
この出願は、２０１６年８月３０日に出願された日本特許出願２０１６−１６７９４８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０２０１】
１０  通信システム
２０、１００  送信端末
２１  記憶部
２２  選択部
２３  決定部
１０１  送信部
１０２  UDP スループット計測部
１０３  データベース部
１０４  ロス率算出部
１０５  信頼度更新部
１０６  ロス率推定部
１０７  冗長度決定部
１０８  冗長符号部
２００  受信端末
２０１  受信部
２０２  ロス率情報送信部
３００  通信ネットワーク
【図１】
2018042885.tif 000003
【図２】
2018042885.tif 000004
【図３】
2018042885.tif 000005
【図４】
2018042885.tif 000006
【図５】
2018042885.tif 000007
【図６】
2018042885.tif 000008
【図７】
2018042885.tif 000009
【図８】
2018042885.tif 000010
【図９】
2018042885.tif 000011
【図１０】
2018042885.tif 000012
【図１１】
2018042885.tif 000013
【図１２】
2018042885.tif 000014
【図１３】
2018042885.tif 000015
【図１４】
2018042885.tif 000016
【国際調査報告】
2018042885.tif 000017
2018042885.tif 000018