(57)【特許請求の範囲】
【請求項１】
ネットワークを介して受信端末と通信を行う送信端末であって、
所定の個数のパケットをエンコードしてネットワークを介して前記受信端末に送出するエンコードパケット生成部と、
前記ネットワークの状態を計測するネットワーク環境計測部と、
前記送信端末から前記受信端末にパケットが到達するのに要する遅延時間に関して保証すべき特性と、前記ネットワークの状態とを用いて、前記所定の個数を決定するパラメータ計算部と、を備え、
前記保証すべき特性は、前記遅延時間について許容し得る最大値である最大許容遅延値と、当該最大許容遅延値の保証確率を含み、
前記パラメータ計算部は、前記最大許容遅延値と前記保証確率を満たすように、前記所定の個数を決定する、送信端末。
【請求項２】
前記ネットワーク環境計測部は、前記送信端末と前記受信端末の間のパケットの往復伝送遅延、パケットロス率、送信帯域およびパケットサイズを計測し、
前記パラメータ計算部は、計測された往復伝送遅延、パケットロス率、送信帯域およびパケットサイズに基づいて前記所定の個数を決定する、請求項１に記載の送信端末。
【請求項３】
前記受信端末は、前記送信端末から受信した、エンコードされた前記所定の個数のパケットのデコードに成功すると、前記送信端末に対して応答パケットを送信し、
前記ネットワーク環境計測部は、前記応答パケットに含まれる情報を用いて、前記ネットワークの状態を計測する、請求項１又は２に記載の送信端末。
【請求項４】
前記エンコードパケット生成部は、前記所定の個数のパケットをレートレス符号化によりエンコードする、請求項１ないし３のいずれか１項に記載の送信端末。
【請求項５】
ネットワークを介して通信を行う送信端末および受信端末を備え、
前記送信端末は、所定の個数のパケットをエンコードしてネットワークを介して前記受信端末に送出するエンコードパケット生成部と、
前記ネットワークの状態を計測するネットワーク環境計測部と、
前記送信端末から前記受信端末にパケットが到達するのに要する遅延時間に関して保証すべき特性と、前記ネットワークの状態とを用いて、前記所定の個数を決定するパラメータ計算部と、を備え、
前記保証すべき特性は、前記遅延時間について許容し得る最大値である最大許容遅延値と、当該最大許容遅延値の保証確率を含み、
前記パラメータ計算部は、前記最大許容遅延値と前記保証確率を満たすように、前記所定の個数を決定する、通信システム。
【請求項６】
ネットワークを介して受信端末と通信を行う送信端末が、
所定の個数のパケットをエンコードしてネットワークを介して前記受信端末に送出する送出工程と、
前記ネットワークの状態を計測する計測工程と、
前記送信端末から前記受信端末にパケットが到達するのに要する遅延時間に関して保証すべき特性と、前記ネットワークの状態とを用いて、前記所定の個数を決定する決定工程と、を含み、
前記保証すべき特性は、前記遅延時間について許容し得る最大値である最大許容遅延値と、当該最大許容遅延値の保証確率を含み、
前記決定工程において、前記最大許容遅延値と前記保証確率を満たすように、前記所定の個数を決定する、通信方法。
【請求項７】
ネットワークを介して受信端末と通信を行う送信端末に設けられたコンピュータに対して、
所定の個数のパケットをエンコードしてネットワークを介して前記受信端末に送出する送出処理と、
前記ネットワークの状態を計測する計測処理と、
前記送信端末から前記受信端末にパケットが到達するのに要する遅延時間に関して保証すべき特性と、前記ネットワークの状態とを用いて、前記所定の個数を決定する決定処理と、を実行させる、プログラムであって、
前記保証すべき特性は、前記遅延時間について許容し得る最大値である最大許容遅延値と、当該最大許容遅延値の保証確率を含み、
前記決定処理は、前記最大許容遅延値と前記保証確率を満たすように、前記所定の個数を決定する処理を含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願についての記載］
本発明は、日本国特許出願：特願２０１３−２１９５０３号（２０１３年１０月２２日出願）に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、送信端末、通信システム、通信方法、および、プログラムに関し、特に、パケットロスが発生し得るネットワークを介して受信端末と通信を行う送信端末、通信システム、通信方法、および、プログラムに関する。
【背景技術】
【０００２】
パケットロスの発生する伝送路において、送信端末が受信端末に送信するパケットの到達を保証する方式として、「ＡＲＱ（Automatic Repeat reQuest）方式」や「ＦＥＣ（Forward Error Correction）方式」が知られている。【０００３】
ＡＲＱ方式では、パケットに順序を示すシーケンスナンバを付加して送信することにより、受信端末において未受信のパケットを検知し、送信端末に再送要求を発行する。【０００４】
一方、ＦＥＣ方式では、送信パケットに対して冗長パケットを付随させ、受信端末において未受信のパケットがある場合、冗長パケットによりロスパケットを復元する。また、ＦＥＣ方式には、冗長パケットの元となるソースパケットから冗長パケットを無限に作成し、受信端末において冗長パケットからソースパケットを復号する「レートレス符号」と呼ばれるものが存在する。【０００５】
図９は、レートレス符号を用いてパケット到達保証を行なう、関連技術に係る通信システムの構成を一例として示すブロック図である。図９を参照すると、通信システムは、ネットワーク１３０を介して通信する送信端末１１０と受信端末１２０を備えている。【０００６】
送信端末１１０は、ソースパケット送信部１１１とレートレス符号エンコーダ１１４を備えている。また、レートレス符号エンコーダ１１４は、送信バッファ１１５、エンコードパケット生成部１１６、および、ＡＣＫ受信部１１７を備えている。一方、受信端末１２０は、レートレス符号デコーダ１２１とソースパケット受信部１２５を備えている。また、レートレス符号デコーダ１２１は、受信バッファ１２２、エンコードパケット再生部１２３、および、ＡＣＫ生成部１２４を備えている。【０００７】
レートレス符号を用いたパケット到達保証を行う、図９の通信システムは、次のように動作する。【０００８】
まず、送信端末１１０の動作を説明する。【０００９】
ソースパケット送信部１１１は、受信端末１２０に送信したデータパケットを生成し、レートレス符号エンコーダ１１４内の送信バッファ１１５へ生成したパケットを送信する。また、送信バッファ１１５は、パケットを受け取ると、自身のバッファにパケットを挿入する。さらに、送信バッファ１１５は、自身のバッファの最大量のパケットが溜まると、パケットの送信を止める通知をソースパケット送信部１１１に送信する。【００１０】
エンコードパケット生成部１１６は、送信バッファ１１５から所定数のソースパケットを取り出す。さらに、エンコードパケット生成部１１６は、ソースパケットをレートレス符号により符号化し、ネットワーク１３０へ送信する。【００１１】
以下では、このレートレス符号により符号化されたパケットを「エンコードパケット」と呼ぶ。なお、レートレス符号化の例として、Random Linear Fountain符号やRaptor符号等が知られている（非特許文献１）。【００１２】
エンコードパケット生成部１１６は、ＡＣＫ受信部１１７から確認応答パケットを受信するまで、同じ種類のソースパケットによりエンコードパケットを生成して送信を続ける。また、エンコードパケット生成部１１６は、ＡＣＫ受信部１１７から確認応答パケットを受信すると、現在使用しているソースパケットを破棄し、送信バッファ１１５から次のソースパケットを所定数だけ取り出す。【００１３】
レートレス符号エンコーダ１１４が一度にエンコードを行うソースパケット数は、任意のパラメータとして決定することができる。【００１４】
次に、受信端末１２０の動作を説明する。【００１５】
レートレス符号デコーダ１２１は、ネットワーク１３０から到来したパケットを所定数受信すると、レートレス符号により復号化を試みる。【００１６】
復号化が完了した場合、レートレス符号デコーダ１２１は、そのパケットをソースパケット受信部１２５へ送信する。また、ＡＣＫ生成部１２４は、送信端末１１０へ到達確認パケットを送信する。一方、復号化が完了しなかった場合、レートレス符号デコーダ１２１は、ネットワーク１３０からの新たなパケットを待つ。【００１７】
図９に示した通信システムにおいて、レートレス符号エンコーダ１１４でエンコードする「パケット数」は、ネットワーク帯域を有効に利用することを目的に設定されるパラメータとして使用されている。一例として、復号化完了時のＡＣＫにネットワーク情報を付加することで、次のパケットを送信する際にレートレス符号エンコーダ１１４がエンコードに用いるソースパケット数やその他のパラメータを変化させることができる。このように、現在のネットワーク状態に適したパラメータに設定することで、ネットワーク帯域を有効に活用することができる。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００９−１５２８６４号公報
【特許文献２】特開２０１０−１１９１３３号公報
【非特許文献】
【００１９】
【非特許文献１】MacKay, D.J.C. "Fountain codes," Published in Communications, IEEE Proceedings, Volume 152, Issue 6.
【発明の概要】
【発明が解決しようとする課題】
【００２０】
上記特許文献および非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。【００２１】
図９に示した関連技術に係る通信システムによると、ソースパケット送信部１１１からソースパケットが送信されてからソースパケット受信部１２５でパケットを受信するまでの遅延を最大許容遅延以内に抑えることができないという問題がある。その理由は、レートレス符号エンコーダ１１４で使用されるパラメータは、ソースパケット送信部１１１からソースパケット受信部１２５までのソースパケット到達遅延を加味したものとはなっていないからである。【００２２】
また、関連技術に係る通信システムによると、ソースパケット送信部１１１からソースパケットが送信されてからソースパケット受信部１２５でパケットを受信するまでの遅延がシステムの許容遅延を満たせない場合に、システムが正常に動作しないという問題もある。その理由は、ネットワーク状態の変化に応じてシステムが実現することのできるパケット到達遅延を考慮していないからである。【００２３】
そこで、パケットロスが発生し得るネットワークを介して送信端末と受信端末が通信を行うシステムにおいて、ユーザが指定したパケットの遅延時間に関する特性を保証できるようにすることが要望される。本発明の目的は、かかる要望に寄与する送信端末、通信システム、通信方法、および、プログラムを提供することにある。
【課題を解決するための手段】
【００２４】
本発明の第１の視点に係る送信端末は、
ネットワークを介して受信端末と通信を行う送信端末であって、
所定の個数のパケットをエンコードしてネットワークを介して前記受信端末に送出するエンコードパケット生成部と、
前記ネットワークの状態を計測するネットワーク環境計測部と、
前記送信端末から前記受信端末にパケットが到達するのに要する遅延時間に関して保証すべき特性と、前記ネットワークの状態とを用いて、前記所定の個数を決定するパラメータ計算部と、を備える。【００２５】
本発明の第２の視点に係る通信システムは、
ネットワークを介して通信を行う送信端末および受信端末を備え、
前記送信端末は、所定の個数のパケットをエンコードしてネットワークを介して前記受信端末に送出するエンコードパケット生成部と、
前記ネットワークの状態を計測するネットワーク環境計測部と、
前記送信端末から前記受信端末にパケットが到達するのに要する遅延時間に関して保証すべき特性と、前記ネットワークの状態とを用いて、前記所定の個数を決定するパラメータ計算部と、を備える。【００２６】
本発明の第３の視点に係る通信方法は、
ネットワークを介して受信端末と通信を行う送信端末が、
所定の個数のパケットをエンコードしてネットワークを介して前記受信端末に送出する送出工程と、
前記ネットワークの状態を計測する計測工程と、
前記送信端末から前記受信端末にパケットが到達するのに要する遅延時間に関して保証すべき特性と、前記ネットワークの状態とを用いて、前記所定の個数を決定する決定工程と、を含む。【００２７】
本発明の第４の視点に係るプログラムは、
ネットワークを介して受信端末と通信を行う送信端末に設けられたコンピュータに対して、
所定の個数のパケットをエンコードしてネットワークを介して前記受信端末に送出する送出処理と、
前記ネットワークの状態を計測する計測処理と、
前記送信端末から前記受信端末にパケットが到達するのに要する遅延時間に関して保証すべき特性と、前記ネットワークの状態とを用いて、前記所定の個数を決定する決定処理と、を実行させる。
なお、プログラムは、非一時的なコンピュータ可読記録媒体（non-transitory computer-readable storage medium）に記録されたプログラム製品として提供することができる。
【発明の効果】
【００２８】
本発明に係る送信端末、通信システム、通信方法、および、プログラムによると、パケットロスが発生し得るネットワークを介して送信端末と受信端末が通信を行う通信システムにおいて、ユーザが指定したパケットの遅延時間に関する特性を保証することが可能となる。
【図面の簡単な説明】
【００２９】
【図１】一実施形態に係る通信システムの構成を一例として示すブロック図である。
【図２】第１の実施形態に係る通信システムの構成を一例として示すブロック図である。
【図３】保証値入力部が保持するユーザ指定保証値テーブルを一例として示す表である。
【図４】ネットワーク環境計測部が保持するネットワーク状態テーブルを一例として示す表である。
【図５】送信バッファからエンコードパケット生成部へのパケットの流れを一例として示すブロック図である。
【図６】レートレス符号エンコーダの動作を一例として示すフロー図である。
【図７】レートレス符号デコーダの動作を一例として示すフロー図である。
【図８】保証値入力部とネットワーク環境計測部とパラメータ計算部の動作を一例として示すフロー図である。
【図９】関連技術の通信システムの構成を一例として示すブロック図である。
【発明を実施するための形態】
【００３０】
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００３１】
図１は、一実施形態に係る通信システムの構成を一例として示すブロック図である。図１を参照すると、通信システムは、ネットワーク３０を介して通信を行う送信端末１０と受信端末２０を備えている。
【００３２】
送信端末１０は、所定の個数のパケットをエンコードしてネットワーク３０を介して受信端末２０に送出するエンコードパケット生成部１６と、ネットワーク３０の状態を計測するネットワーク環境計測部１８と、送信端末１０から受信端末２０にパケットが到達するのに要する遅延時間に関して保証すべき特性とネットワーク３０の状態とを用いて上記所定の個数を決定するパラメータ計算部１３と、を備えている。
【００３３】
エンコードパケット生成部１６は、上記所定の個数のパケットをレートレス符号化によりエンコードしてもよい。ただし、本発明におけるエンコード方法は、これに限定されない。
【００３４】
上記の保証すべき特性は、上記遅延時間について許容し得る最大値である最大許容遅延値と、当該最大許容遅延値の保証確率を含むことが好ましい。このとき、パラメータ計算部１３は、最大許容遅延値と保証確率を満たすように、上記所定の個数を決定する。
【００３５】
また、ネットワーク環境計測部１８は、送信端末１０と受信端末２０の間のパケットの往復伝送遅延、パケットロス率、送信帯域およびパケットサイズを計測し、パラメータ計算部１３は、計測された往復伝送遅延、パケットロス率、送信帯域およびパケットサイズに基づいて上記所定の個数を決定してもよい。
【００３６】
さらに、受信端末２０は、送信端末１０から受信したエンコードされた上記所定の個数のパケットのデコードに成功すると、送信端末１０に対して応答パケットを送信し、ネットワーク環境計測部１８は、応答パケットに含まれる情報を用いてネットワークの状態を計測してもよい。
【００３７】
かかる通信システムによると、パケットが送信端末１０から送出されてから受信端末２０で受信されるまでに要する遅延をユーザ任意の値に保証することが可能となる。その理由は、ネットワーク環境計測部１８によりネットワーク環境を測定し、その情報を用いてユーザ任意の遅延値を保証する符号化のパラメータを決定し、決定したパラメータを用いて送信端末１０がパケットを符号化して送信するからである。
【００３８】
＜実施形態１＞
次に、第１の実施形態に係る通信システムについて、図面を参照して詳細に説明する。
【００３９】
[構成]
図２は、本実施形態に係る通信システムの構成を一例として示すブロック図である。図２を参照すると、通信システムは、パケットを送信する送信端末１０と、パケットを受信する受信端末２０を備えている。送信端末１０と受信端末２０は、パケットを転送する伝送路であるネットワーク３０を介して接続される。
【００４０】
送信端末１０は、ソースパケット送信部１１、レートレス符号エンコーダ１４、保証値入力部１２、および、パラメータ計算部１３を備えている。ソースパケット送信部１１は、送信端末１０内でパケットを生成する。レートレス符号エンコーダ１４は、ソースパケットをエンコードしてネットワーク３０へ送信する。保証値入力部１２は、ユーザにより指定された遅延時間を受け付ける。パラメータ計算部１３は、レートレス符号エンコーダ１４のパラメータを、ユーザにより指定された遅延時間を保証する値となるように決定する。
【００４１】
ここで、保証値入力部１２とパラメータ計算部１３は、送信端末１０の外部から送信端末１０と情報をやり取りできれば、送信端末１０の外部に設けられていてもよい。
【００４２】
レートレス符号エンコーダ１４は、送信バッファ１５、エンコードパケット生成部１６、ＡＣＫ受信部１７、および、ネットワーク環境計測部１８を備えている。送信バッファ１５は、ソースパケット送信部１１から受信したパケットを保持する。エンコードパケット生成部１６は、パラメータ計算部１３で決定されたパケット数のパケットを送信バッファ１５から取り出し、取り出したパケットをエンコードしてネットワーク３０へ送信する。ＡＣＫ受信部１７は、受信端末２０からの確認応答パケットを受信する。ネットワーク環境計測部１８は、ネットワーク状態を計測し、現在のネットワーク状態をパラメータ計算部１３に反映する。
【００４３】
受信端末２０は、レートレス符号デコーダ２１およびソースパケット受信部２５を備えている。レートレス符号デコーダ２１は、エンコードパケットをソースパケットにデコードする。ソースパケット受信部２５は、デコードしたソースパケットを受信する。
【００４４】
レートレス符号デコーダ２１は、受信バッファ２２、エンコードパケット再生部２３、および、ＡＣＫ生成部２４を備えている。受信バッファ２２は、ネットワーク３０から到着したエンコードパケットを保持する。エンコードパケット再生部２３は、受信バッファ２２内のパケットのデコードを試みデコードしたソースパケットをソースパケット受信部２５へ送信する。ＡＣＫ生成部２４は、受け取ったエンコードパケットがデコードできたことを送信端末１０に知らせる確認応答パケットを送信する。
【００４５】
図３は、保証値入力部１２が保持するユーザ指定保証値テーブルＴ１を一例として示す。図３を参照すると、保証値入力部１２は、ユーザ指定保証値テーブルＴ１の項目として、「最大許容遅延」および「保証確率」を含む。ユーザ指定保証値テーブルＴ１が保持する情報は、ユーザからの任意の要求に基づいて外部から入力されるパラメータである。
【００４６】
図４は、ネットワーク環境計測部１８が保持するネットワーク状態テーブルＴ２を一例として示す。図４を参照すると、ネットワーク環境計測部１８は、ネットワーク状態テーブルＴ２の項目として、「往復伝送遅延（ＲＴＴ：Round Trip Time）」、「パケットロス率」、「送信帯域（送信レート）」および「パケットサイズ」を含む。ネットワーク環境計測部１８が保持する情報は、確認応答パケットと自身の送信情報を用いて生成される。
【００４７】
次に、送信端末１０の各部の動作について、詳細に説明する。
【００４８】
ソースパケット送信部１１は、送信端末１０が送信したいデータをパケット化し、レートレス符号エンコーダ１４に送信する。このとき、ソースパケット送信部１１は、送信するパケットのヘッダにタイムスタンプを付加し、パケットのタイムアウトタイマーを起動する。
【００４９】
保証値入力部１２は、ユーザから「最大許容遅延」と「保証確率」が入力されると、ユーザ指定保証値テーブルＴ１内の値を更新する。また、ユーザ指定保証値テーブルＴ１は、テーブル値が更新されると、更新されたテーブル値をパラメータ計算部１３へ送信する。
【００５０】
パラメータ計算部１３は、後述する遅延保証式に、保証値入力部１２から受信したユーザ指定保証値テーブルＴ１と、レートレス符号エンコーダ１４から受信したネットワーク状態テーブルＴ２のパラメータを入力し、レートレス符号エンコーダ１４で「一度にエンコードを行うソースパケット数」を決定する。さらに、パラメータ計算部１３は、決定した「一度にエンコードを行うソースパケット数」をレートレス符号エンコーダ１４に送信する。
【００５１】
遅延保証パラメータの計算方法の具体例については、各部の動作の説明後に説明する。
【００５２】
レートレス符号エンコーダ１４は、ソースパケット送信部１１から送信されるパケットをレートレス符号によりエンコードし、エンコードパケットをネットワーク３０へ送信する。このとき、レートレス符号エンコーダ１４は、パラメータ計算部１３により計算された「一度にエンコードを行うソースパケット数（Ｋ個）」を一度にレートレス符号に基づいてエンコードする。
【００５３】
次に、レートレス符号エンコーダ１４内の各部の動作について詳細に説明する。図５は、本実施形態の送信端末１０における送信バッファ１５からエンコードパケット生成部１６へのパケットの流れの詳細を一例として示すブロック図である。
【００５４】
送信バッファ１５は、ソースパケット送信部１１から送信されるパケットを受信すると、自身のバッファにパケットを挿入する。また、送信バッファ１５は、挿入されたパケットが自身のバッファ量の最大値（最大値：Ｂｕｆｆ）に達すると、パケットの送信を止めるメッセージをソースパケット送信部１１に送信する。
【００５５】
エンコードパケット生成部１６は、パラメータ計算部１３により計算された「一度にエンコードを行うソースパケット数（Ｋ個）」のパケットＰ１〜ＰＫを送信バッファ１５から取り出し、レートレス符号によりエンコードを行う。また、エンコードパケット生成部１６は、エンコードパケットのヘッダに対して「使用したソースパケット数」、「使用したソースパケットの最大シーケンスナンバ」、「エンコードパケットシーケンスナンバ」および「タイムスタンプ」を付加し、エンコードパケットＥ１、Ｅ２、…をネットワーク３０へ送信する。
【００５６】
エンコードパケット生成部１６は、ＡＣＫ受信部１７から確認応答パケットが到着した旨の情報を受信すると、現在エンコードに使用しているソースパケットの送信が完了したものとみなし、現在エンコードに使用しているソースパケットを破棄し、「エンコードパケットシーケンスナンバ」をリセットする。次に、エンコードパケット生成部１６は、再度、パラメータ計算部１３により計算された「一度にエンコードを行うソースパケット数（Ｋ個）」のパケットを送信バッファ１５から取り出し、エンコードを行う。
【００５７】
また、エンコードパケット生成部１６は、レートレス符号により「一度にエンコードを行うソースパケット数（Ｋ個）」のパケットをエンコードしたパケットを生成する。レートレス符号とは、ある一定数のソースパケットに対してエンコードパケットを無限に生成する方式であり、受信端末２０においてある一定数のエンコードパケットを受信するとデコードが可能となり、ソースパケットが再生可能となる方式をいう。レートレス符号の具体例として、Random Linear Fountain符号やRaptor符号などが知られている（非特許文献１）。
【００５８】
ＡＣＫ受信部１７は、受信端末２０からの確認応答パケットを受け取ると、エンコードパケット生成部１６に確認応答パケットを受信した旨の情報を送信する。ここで、確認応答パケットは、「受信したエンコードパケット数」、「受信したエンコードパケットの最大シーケンスナンバ」、「使用したソースパケットの最大シーケンスナンバ」、「タイムスタンプ」および「パケットロス数」を含む。また、ＡＣＫ受信部１７は、確認応答パケットを受け取ると、確認応答パケットに含まれる情報をネットワーク環境計測部１８へ送信する。
【００５９】
ネットワーク環境計測部１８は、ＡＣＫ受信部１７より確認応答パケットを受け取ると、「パケットロス率」と「往復伝送遅延（ＲＴＴ：Round Trip Time）」を計算する。「パケットロス率」は、「パケットロス数」÷「受信したエンコードパケットの最大シーケンスナンバ」で計算される。「往復伝送遅延」は、「ＡＣＫ受信時刻」−「受信したエンコードパケットの最大シーケンスナンバの送信時刻」で計算される。
【００６０】
また、ネットワーク環境計測部１８は、エンコードパケット生成部１６より送信されるパケット間隔を取得し、「送信帯域」を計測する。
【００６１】
ネットワーク環境計測部１８は、「パケットロス率」、「往復伝送遅延」および「送信帯域」の計算をある一定周期で行い、パラメータ計算部１３へ送信する。ここで、一定周期として、例えば、ＡＣＫをＮ個受信する毎としてもよい。
【００６２】
次に、受信端末２０内の各部について詳細に説明する。
【００６３】
ソースパケット受信部２５は、レートレス符号デコーダ２１から受信した再生後のソースパケットを受信する。また、ソースパケット受信部２５は、パケットからデータを取得する。
【００６４】
レートレス符号デコーダ２１は、ネットワーク３０からエンコードパケットを受信する。また、レートレス符号デコーダ２１は、受信したエンコードパケットを使用して、パケットヘッダに記載されている「使用したソースパケット数」分のソースパケットをデコードする。さらに、レートレス符号デコーダ２１は、デコードが完了した際、送信端末１０へ確認応答パケットを送信し、デコードしたソースパケットをソースパケット受信部２５へ送信する。
【００６５】
次に、レートレス符号デコーダ２１内の各部について詳細に説明する。
【００６６】
受信バッファ２２は、ネットワーク３０からエンコードパケットを受信した際、自身のバッファにパケットを挿入する。また、受信バッファ２２は、パケットを受信したことをエンコードパケット再生部２３へ通知する。
【００６７】
エンコードパケット再生部２３は、受信バッファ２２からエンコードパケットを受信した旨の情報を受信すると、受信バッファ２２内のエンコードパケットのデコードを試みる。エンコードパケット再生部２３は、デコードできない場合、動作を停止する。一方、デコードできた場合、エンコードパケット再生部２３は、受信バッファ２２内のエンコードパケットを破棄し、デコード後のソースパケットをソースパケット受信部２５へ送信する。さらに、エンコードパケット再生部２３は、エンコードパケットがデコードできた旨の情報をＡＣＫ生成部２４に通知する。
【００６８】
ＡＣＫ生成部２４は、エンコードパケット再生部２３からエンコードパケットがデコードできたという情報を受信すると、確認応答パケットを生成して送信端末１０へ送信する。ＡＣＫ生成部２４は、確認応答パケットのヘッダに対して、「デコード完了直前に受信したエンコードパケットのシーケンスナンバ」、「実際に受信したエンコードパケット数」および「デコード完了直前に受信したエンコードパケットのヘッダに付加されたタイムスタンプ値」を付加する。
【００６９】
次に、パラメータ計算部１３で行う遅延保証パラメータの計算方法について、図３、図４および図５を参照して、詳細に説明する。
【００７０】
今回考慮したい遅延時間は、送信端末１０のソースパケット送信部１１からパケットを送信した時刻と、受信端末２０のソースパケット受信部２５がパケットを受信した時刻との差である。パラメータ計算部１３は、この遅延時間の確率分布関数を求め、ユーザから入力される「最大許容遅延」と「保証確率」を代入することで、レートレス符号のパラメータである「一度にエンコードを行うソースパケット数（Ｋ個）」を求める。
【００７１】
送信バッファ１５に最大量のパケット（Ｂｕｆｆ個）が挿入されているときの送信バッファ１５の最後尾のパケットがソースパケット受信部２５へ到達するために必要な時間が、ソースパケットの受ける最大の遅延となる。したがって、遅延時間の確率分布関数として、送信バッファ１５の最後尾のパケット（ＰＢｕｆｆ）が送信バッファ１５に到着してから、ＰＢｕｆｆがソースパケット受信部２５に到着するまでの時間の確率分布関数を求めればよい。
【００７２】
また、レートレス符号エンコーダ１４は、送信バッファ１５から「一度にエンコードを行うソースパケット数（Ｋ個）」を取り出し、エンコードパケットを生成して受信端末２０へ送信し、受信端末２０からＫ個のパケット（Ｐ１〜ＰＫ）を受信できたことを示す確認応答パケットを受信する。その後、レートレス符号エンコーダ１４は、送信バッファ１５から次のＫ個のパケット（ＰＫ＋１〜ＰＫ＋Ｋ）を取り出す。したがって、Ｋ個のパケットを送信する動作を[Ｂｕｆｆ÷Ｋ]回行った際の遅延が、パケットＰＢｕｆｆの受ける遅延となる。ここで、[]は床関数を表す。
【００７３】
レートレス符号エンコーダ１４とレートレス符号デコーダ２１により「一度にエンコードを行うソースパケット数（Ｋ個）」を送受信する動作を[Ｂｕｆｆ÷Ｋ]回行った際の遅延保証式を以下に示す。
【００７４】
0006477485.tif 000002
【００７５】
0006477485.tif 000003
【００７６】
0006477485.tif 000004
【００７７】
式（１）において、Ｔは「最大許容遅延」、Ｓは「送信バッファ１５の最後尾のパケットの送信が完了するまでに必要なエンコードパケット送信数」、Bandwidthは「送信帯域」、ＲＴＴは「往復伝送遅延」、Ｂｕｆｆは「送信バッファ最大量」、Ｋは「レートレス符号エンコーダ１４で使用するパケット数」を示す。
【００７８】
式（２）は式（１）のＳの範囲で定義される式である。式（２）において、ｐ（ｘ）は「パケットロス率とレートレス符号に必要な冗長パケット数が与えられたとき、送信端末１０でｘ個のエンコードパケットを送信した際に、受信端末２０でＫ個のソースパケットがデコードされる確率密度関数」を示す。また、［ｐ（ｘ）］[Ｂｕｆｆ÷Ｋ]は「ｐ（ｘ）の[Ｂｕｆｆ÷Ｋ]重畳み込み積分」を示す。さらに、Ｐ（Ｓ）は「送信端末１０でＳ個のエンコードパケットを送信した際に、最後尾のパケットを含むすべてのパケットがデコードされる累積分布関数」を示す。
【００７９】
式（３）は、式（２）のｐ（ｘ）を与える。式（３）において、ｐは「パケットロス率と符号化パケット冗長数を加味した復号パケットロス率」を示す。また、ｐｃｏｄｅは「本システムで使用される符号化方式の符号化パケット冗長数（符号化方式による固定値）」を示す。さらに、ｐＬｉｎｋは「パケットロス率」を示す。また、ｘは「Ｋ個のソースパケットをデコードするのに必要なエンコードパケット数」を示す。
【００８０】
パラメータ計算部１３は、式（１）ないし（３）に、保証値入力部１２から送信された「最大許容遅延（Ｔ）」と「保証確率（Ｐ（Ｓ））」を入力し、ネットワーク環境計測部１８から送信された「往復伝送遅延（ＲＴＴ：Round Trip Time）」、「パケットロス率（ｐ（ｘ）で使用されるパラメータ）」および「送信帯域（Bandwidth）」を入力する。これにより、パラメータ計算部１３は、レートレス符号エンコーダ１４内のエンコードパケット生成部１６が送信バッファ１５から取り出す「一度にエンコードを行うソースパケット数（Ｋ個）」を決定し、レートレス符号エンコーダ１４に送信する。
【００８１】
なお、上述の値を式（１）ないし（３）に代入した際、ユーザ任意の「最大許容遅延」と「保証確率」が満たせない可能性もある。具体的には、式（１）のＳを満たすための式（２）で与えるＫが求まらない場合がある。この場合、パラメータ計算部１３は、保証値入力部１２に対して、遅延保証式を満たす値に変更するか、送信端末１０の動作を停止する。
【００８２】
[動作]
次に、図２および図６を参照して、本実施形態の送信端末１０内のソースパケット送信部１１からパケットが送信され、レートレス符号エンコーダ１４においてエンコードパケットが送信される動作について詳細に説明する。
【００８３】
まず、ステップＡ１は、送信端末１０がパケットの送信を始める最初の機会であり、送信バッファ１５はソースパケット送信部１１から送信されるソースパケットを受信する。
【００８４】
次に、ステップＡ２において、エンコードパケット生成部１６は、送信バッファ１５に溜まっているソースパケットのうちの先頭からＫ個のソースパケットを送信バッファ１５から抜き出す。なお、エンコードパケット生成部１６は、送信バッファ１５にＫ個未満のソースパケットしかない場合、すべてのソースパケットを送信バッファから抜き出す。このとき、Ｋ個として、前述したパラメータ計算部１３により計算された「一度にエンコードを行うソースパケット数（Ｋ個）」を用いる。
【００８５】
次に、ステップＡ３では、ステップＡ２において抜き出したソースパケットをエンコードパケット生成部１６に格納する。
【００８６】
次に、ステップＡ４では、エンコードパケット生成部１６はステップＡ３において抜き出したソースパケットを用いてエンコードパケットを生成し、ネットワーク３０へ送信する。エンコードパケット生成部１６は、エンコードパケットのヘッダに情報として「パケット送信時間」、「エンコードパケットシーケンスナンバ」、「使用したソースパケット数」および「使用したソースパケットの最大シーケンスナンバ」を付加する。
【００８７】
次に、ステップＡ５では、ＡＣＫ受信部１７が受信端末２０から確認応答パケットを受信したかどうかを確認する。確認応答パケットを受信していない場合（ステップＡ５のＮｏ）、ステップＡ４に遷移し、エンコードパケット生成部１６は、再度同一のソースパケットを用いてエンコードパケットを生成してネットワーク３０へ送信する。一方、確認応答パケットを受信している場合（ステップＡ５のＹｅｓ）、エンコードパケット生成部１６は現在格納しているソースパケットを破棄し、ステップＡ２へ遷移する。
【００８８】
次に、図２および図７を参照して、本実施形態の受信端末２０内のレートレス符号デコーダ２１がエンコードパケットを受信し、ソースパケットをソースパケット受信部２５へ送信する動作について詳細に説明する。
【００８９】
まず、ステップＢ１において、受信バッファ２２がネットワーク３０からエンコードパケットを受信し、自身のバッファにエンコードパケットを挿入する。エンコードパケットのヘッダに記載されている「使用したソースパケット数」以上のパケットがバッファに挿入されると、ステップＢ２へ遷移する。
【００９０】
次に、ステップＢ２において、エンコードパケット再生部２３は、受信バッファ２２に存在するパケットのすべてを用いてデコード処理を行う。エンコードパケット再生部２３は、デコード方式として、本実施形態で使用されるレートレス符号に基づくデコード方法を使用する。
【００９１】
次に、ステップＢ３では、エンコードパケット再生部２３は、ステップＢ２においてデコードを行った結果、正常にソースパケットがデコードできたかどうかを判定する。正常にデコードできている場合（ステップＢ３のＹｅｓ）、エンコードパケット再生部２３は、デコードしたソースパケットをソースパケット受信部２５へ送信し、ステップＢ４に遷移する。一方、正常にデコードできていない場合（ステップＢ３のＮｏ）、エンコードパケット再生部２３の動作を終了する。なお、受信バッファ２２が次のエンコードパケットを受信すると、ステップＢ１から再度判定を行う。
【００９２】
ステップＢ４において、ＡＣＫ生成部２４は、送信端末１０に対して現在送信端末１０が送信しているソースパケットの受信が完了したことを知らせる確認応答パケットを送信する。ＡＣＫ生成部２４は、確認応答パケットのヘッダに対して、「デコード完了直前に受信したエンコードパケットのシーケンスナンバ」、「実際に受信したエンコードパケット数」および「デコード完了直前に受信したエンコードパケットのヘッダに付加されたタイムスタンプ値」を付加する。
【００９３】
次に、図２および図８を参照して、本実施形態の送信端末１０内の保証値入力部１２およびネットワーク環境計測部１８の値が更新されたときのパラメータ計算部１３の動作を詳細に説明する。
【００９４】
まず、ステップＣ１において、保証値入力部１２がユーザ指定保証値テーブルＴ１を更新するとステップＣ４に遷移する。具体的には、保証値入力部１２は、ユーザからの入力情報として、図３に示す「最大許容遅延」および「保証確率」を受け付ける。
【００９５】
さらに、ステップＣ２において、ネットワーク環境計測部１８がネットワーク状態テーブルＴ２を更新すると、ステップＣ３に遷移する。具体的には、ネットワーク環境計測部１８は、図４に示す「ＲＴＴ」、「パケットロス率」、「送信帯域」および「パケットサイズ」をネットワーク状態テーブルＴ２に入力する。
【００９６】
次に、ステップＣ３において、ネットワーク状態テーブルＴ２の更新回数をカウントし、Ｎ回目の更新の場合（ステップＣ３のＹｅｓ）、ステップＣ４へ遷移し、それ以外の場合（ステップＣ３のＮｏ）、何も操作を行わず処理を終了する。ここで、更新回数「Ｎ」は、システム運用者が任意のパラメータとして変更可能なものとしてもよい。
【００９７】
次に、ステップＣ４において、パラメータ計算部１３は入力されたテーブル値に基づいて遅延保証式を計算し、レートレス符号エンコーダ１４が使用する「エンコードに使用するパケット数（Ｋ個）」を更新する。更新された「パケット数（Ｋ）」は、更新後に、図６のステップＡ２に遷移した際に使用されるパラメータとなる。
【００９８】
本実施形態に係る通信システムによると、送信端末１０内のソースパケット送信部１１でパケットが送出されてから受信端末２０内のソースパケット受信部２５へパケットが受信されるまでにかかる遅延をユーザ任意の値に保証できる。その理由は、レートレス符号エンコーダ１４によりネットワーク環境を測定し、その情報を用いてユーザ任意の遅延値を保証するレートレス符号化のパラメータを決定し、そのパラメータを用いて送信端末１０がパケットを送信するからである。
【００９９】
また、本実施形態に係る通信システムによると、送信端末１０内のソースパケット送信部１１から受信端末２０内のソースパケット受信部２５へパケットが受信されるまでにかかる遅延がシステムの最大遅延を満たせない場合に、システムが正常動作できないことを未然に把握できる。その理由は、ネットワーク状態の変化に応じて、システムが保証できる遅延値を計算しているからである。
【０１００】
なお、本発明において、下記の形態が可能である。
［形態１］
上記第１の視点に係る送信端末のとおりである。
［形態２］
前記保証すべき特性は、前記遅延時間について許容し得る最大値である最大許容遅延値と、当該最大許容遅延値の保証確率を含み、
前記パラメータ計算部は、前記最大許容遅延値と前記保証確率を満たすように、前記所定の個数を決定する、形態１に記載の送信端末。
［形態３］
前記ネットワーク環境計測部は、前記送信端末と前記受信端末の間のパケットの往復伝送遅延、パケットロス率、送信帯域およびパケットサイズを計測し、
前記パラメータ計算部は、計測された往復伝送遅延、パケットロス率、送信帯域およびパケットサイズに基づいて前記所定の個数を決定する、形態１または２に記載の送信端末。
［形態４］
前記受信端末は、前記送信端末から受信した、エンコードされた前記所定の個数のパケットのデコードに成功すると、前記送信端末に対して応答パケットを送信し、
前記ネットワーク環境計測部は、前記応答パケットに含まれる情報を用いて、前記ネットワークの状態を計測する、形態１ないし３のいずれか一に記載の送信端末。
［形態５］
前記エンコードパケット生成部は、前記所定の個数のパケットをレートレス符号化によりエンコードする、形態１ないし４のいずれか一に記載の送信端末。
［形態６］
上記第２の視点に係る通信システムのとおりである。
［形態７］
前記保証すべき特性は、前記遅延時間について許容し得る最大値である最大許容遅延値と、当該最大許容遅延値の保証確率を含み、
前記パラメータ計算部は、前記最大許容遅延値と前記保証確率を満たすように、前記所定の個数を決定する、形態６に記載の通信システム。
［形態８］
前記ネットワーク環境計測部は、前記送信端末と前記受信端末の間のパケットの往復伝送遅延、パケットロス率、送信帯域およびパケットサイズを計測し、
前記パラメータ計算部は、計測された往復伝送遅延、パケットロス率、送信帯域およびパケットサイズに基づいて前記所定の個数を決定する、形態６または７に記載の通信システム。
［形態９］
前記受信端末は、前記送信端末から受信した、エンコードされた前記所定の個数のパケットのデコードに成功すると、前記送信端末に対して応答パケットを送信し、
前記ネットワーク環境計測部は、前記応答パケットに含まれる情報を用いて、前記ネットワークの状態を計測する、形態６ないし８のいずれか一に記載の通信システム。
［形態１０］
上記第３の視点に係る通信方法のとおりである。
［形態１１］
前記保証すべき特性は、前記遅延時間について許容し得る最大値である最大許容遅延値と、当該最大許容遅延値の保証確率を含み、
前記決定工程において、前記最大許容遅延値と前記保証確率を満たすように、前記所定の個数を決定する、形態１０に記載の通信方法。
［形態１２］
前記計測工程において、前記送信端末と前記受信端末の間のパケットの往復伝送遅延、パケットロス率、送信帯域およびパケットサイズを計測し、
前記決定工程において、計測された往復伝送遅延、パケットロス率、送信帯域およびパケットサイズに基づいて前記所定の個数を決定する、形態１０または１１に記載の通信方法。
［形態１３］
前記受信端末が、前記送信端末から受信した、エンコードされた前記所定の個数のパケットのデコードに成功すると、前記送信端末に対して応答パケットを送信する工程を含み、
前記計測工程において、前記応答パケットに含まれる情報を用いて、前記ネットワークの状態を計測する、形態１０ないし１２のいずれか一に記載の通信方法。
［形態１４］
前記送出工程において、前記所定の個数のパケットをレートレス符号化によりエンコードする、形態１０ないし１３のいずれか一に記載の通信方法。
［形態１５］
上記第４の視点に係るプログラムのとおりである。
［形態１６］
前記保証すべき特性は、前記遅延時間について許容し得る最大値である最大許容遅延値と、当該最大許容遅延値の保証確率を含み、
前記決定処理において、前記最大許容遅延値と前記保証確率を満たすように、前記所定の個数を決定する、形態１５に記載のプログラム。
［形態１７］
前記計測処理において、前記送信端末と前記受信端末の間のパケットの往復伝送遅延、パケットロス率、送信帯域およびパケットサイズを計測し、
前記決定処理において、計測された往復伝送遅延、パケットロス率、送信帯域およびパケットサイズに基づいて前記所定の個数を決定する、形態１５または１６に記載のプログラム。
［形態１８］
前記受信端末は、前記送信端末から受信した、エンコードされた前記所定の個数のパケットのデコードに成功すると、前記送信端末に対して応答パケットを送信し、
前記計測処理において、前記応答パケットに含まれる情報を用いて、前記ネットワークの状態を計測する、形態１５ないし１７のいずれか一に記載のプログラム。
［形態１９］
前記送出処理において、前記所定の個数のパケットをレートレス符号化によりエンコードする、形態１５ないし１８のいずれか一に記載のプログラム。
【０１０１】
なお、上記特許文献および非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１０２】
１０、１１０    送信端末
１１、１１１    ソースパケット送信部
１２    保証値入力部
１３    パラメータ計算部
１４、１１４    レートレス符号エンコーダ
１５、１１５    送信バッファ
１６、１１６    エンコードパケット生成部
１７、１１７    ＡＣＫ受信部
１８    ネットワーク環境計測部
２０、１２０    受信端末
２１、１２１    レートレス符号デコーダ
２２、１２２    受信バッファ
２３、１２３    エンコードパケット再生部
２４、１２４    ＡＣＫ生成部
２５、１２５    ソースパケット受信部
３０、１３０    ネットワーク
Ｅ１、Ｅ２    エンコードパケット
Ｐ１〜ＰＢｕｆｆ    ソースパケット
Ｔ１    ユーザ指定保証値テーブル
Ｔ２    ネットワーク状態テーブル
【図１】
0006477485.tif 000005
【図２】
0006477485.tif 000006
【図３】
0006477485.tif 000007
【図４】
0006477485.tif 000008
【図５】
0006477485.tif 000009
【図６】
0006477485.tif 000010
【図７】
0006477485.tif 000011
【図８】
0006477485.tif 000012
【図９】
0006477485.tif 000013