(57)【要約】  転送するデータを各々が複数の符号化ユニットを含むデータブロックに編成しデータを送信機から受信機まで確実に転送する転送システムにおいて、送信機から受信機に第１データブロックの符号化ユニットを送信し、送信機において受信機による符号化ユニット受信の肯定応答を検出する。送信機において、受信機が第１データブロックを回復するための第１データブロックの充分な符号化ユニットを受信したという確率を検出し、その確率が予め定められたテストを満たすかどうか判定するため閾値確率に対してテストする。テストのステップに続いて、予め定められたテストが満たされるとき、送信機が受信機で第１データブロックの回復の受信確認に先立って、送信機から第２データブロックの符号化ユニットを送信する。送信機において第１データブロックの回復失敗の指示が受信された場合、送信機から受信機へ第１データブロックの更なる符号化ユニットを送信する。いくつかの実施形態では、予め定められたテストは閾値確率に対する確率の比較であり、確率が閾値確率より大きいときに予め定められたテストは満たされる。
2007508750.tif 000002
【特許請求の範囲】
【請求項１】
送信機から受信機へ高信頼にデータを転送する方法であって、
送信されるデータを各々が複数の符号化ユニットを含むデータブロックに編成するステップと、
第１データブロックの符号化ユニットを前記送信機から前記受信機へ送信するステップと、
前記送信機において、前記受信機で前記第１データブロックを回復するため該受信機で該第１データブロックの十分な符号化ユニットを受信した確率を決定するステップと、
所定のテストを満足するどうか決定するため前記確率を閾値確率に対してテストするステップと、
前記テストのステップの後かつ前記送信機が前記受信機での前記第１データブロックの回復の確認を受信する前において、前記所定のテストを満足するとき前記送信機から第２データブロックの符号化ユニットを送信するステップと、
前記送信機が前記第１データブロックの回復の失敗の指示を受信したとき、送信機から受信機へ前記第１データブロックの更なる符号化ユニットを送信するステップと、
を含む方法。
【請求項２】
各々の前記符号化ユニットは、ＩＰパケットである請求項１に記載の方法。
【請求項３】
前記失敗指示は、前記受信機により送信され前記送信機により受信される明示的な失敗通知である請求項１に記載の方法。
【請求項４】
前記失敗指示は、前記受信機からの前記第１データブロックの回復成功の肯定応答の前記送信機で決定される期間内での受信失敗に対応して前記送信機のために生成される請求項１に記載の方法。
【請求項５】
前記第１データブロックの前記更なる符号化ユニットは、テストのステップの前に送信される前記符号化ユニット以外の付加的な符号化ユニットである請求項１に記載の方法。
【請求項６】
前記第１データブロックの前記更なる符号化ユニットは、テストのステップの前に送信される前記符号化ユニットの再送コピーである請求項１に記載の方法。
【請求項７】
前記符号化ユニットは、連鎖反応符号化処理を使用して符号化されることを特徴とする請求項１に記載の方法。
【請求項８】
前記符号化ユニットは、トルネード符号化処理を使用して符号化されることを特徴とする請求項１に記載の方法。
【請求項９】
前記符号化ユニットは、予め指定された符号化率を有する前方誤り訂正符号化処理を使用して符号化されることを特徴とする請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムのデータの符号化および復号化に関する。より具体的には、本発明は、通信データの誤りおよびギャップを考慮しデータを符号化および復号化する通信システムに関する。実施例において、データは、ブロードキャストおよび／またはマルチキャスト無線ネットワークを介して受信機に転送される。
【背景技術】
【０００２】
本発明は、データ通信ネットワークを介したエンドシステム間での高速なデータ伝送の問題に関連する。
【０００３】
多くのデータ通信方式および高水準データ通信プロトコルは、高信頼のデータ転送の便利な通信抽象化を提供し、また、速度制御を提供する。すなわち、ネットワークの状態に基づいて自動的にそれらのパケット伝送速度を調整する。以下の状況のうちの少なくとも１つが生じる際、例えば、遍在するＴｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ  （ＴＣＰ）のような下位レベルパケット化データ転送に関する従来の実施態様は影響を受ける。（ａ）送信機および受信機の接続が大きなラウンドトリップ時間（ＲＴＴ）を有する。（ｂ）データ量が大きく、ネットワークにバースト的・一時的なロスが発生している。
【０００４】
今日最も広く使われている高信頼の転送プロトコルのうちの１つは、Ｔｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ  （ＴＣＰ）である。ＴＣＰは、肯定応答メカニズムを有する汎用のポイントツーポイントパケット制御方式である。ＴＣＰは、送信機および受信機の間にほとんどロスがなく、送信機および受信機の間のＲＴＴが小さい１対１の高信頼通信のために適切に動作する。しかしながら、少しでもロスがあるか、あるいは、送信機および受信機が遠く離れている場合には、ＴＣＰのスループットは大幅に減少する。
【０００５】
ＴＣＰを使用して、送信機は順序付けたパケットを送信し、受信機は各々のパケットの受信を肯定応答する。パケットが消失する場合肯定応答は送信機に送信されず、送信機はパケットを再送する。ＴＣＰなどのプロトコル使用すると、肯定応答パラダイムにより、肯定応答の欠落に応答して、または受信者からの明示的要求に応答して損失パケットが単に再送され得るので、パケット送信は完全には失敗しない。
【０００６】
ＴＣＰは信頼度管理および速度制御を提供する。すなわち、オリジナルデータの全てが受信機に配信されることを確保し、輻輳およびパケット損失などのネットワークの状態に基づいて自動的にパケット伝送速度を調整する。ＴＣＰでは、信頼性制御プロトコルおよび速度制御プロトコルは関連しあっており分離可能でない。ＲＴＴの増加およびパケット損失の関数としてのＴＣＰのスループットパフォーマンスは決して最適ではない。
【０００７】
多くの研究者による研究は、ＴＣＰを使用するときデータ転送のスループットは、エンドツーエンド接続においてＲＴＴおよび損失率の逆二乗根の積に反比例することを示した。たとえば、米国およびヨーロッパの間の典型的エンドツーエンド型地上接続は、２００ミリ秒のＲＴＴおよび２％の平均パケット損失を有する。これらの条件下では、ＴＣＰ接続のスループットは、エンドツーエンドでどれだけ多くの帯域幅があったとしても１秒につき多くても約３００−４００キロバイト（ｋｂｐｓ）である。大きなＲＴＴ、および、大気によるさまざまな影響のために情報が消失する衛星リンクにおいて状況はより厳しい。この種の状況下においてＴＣＰのパフォーマンスが低下する主要な理由は、ＴＣＰによって使用される速度制御プロトコルがこれらの状況で適切に動作しないことにある。ＴＣＰでは信頼性制御プロトコルおよび速度制御プロトコルが分離できないため、これはＴＣＰプロトコル全体がこれらの状況下で適切に動作しないことを意味する。さらにまた、転送のアプリケーションが異なると必要条件は変化するが、ＴＣＰが全てのネットワーク状態の種々のアプリケーションに対し普遍的に使用されている。そのため、結果として多くの状況においてパフォーマンスが低下することになる。
【０００８】
転送プロトコル全体において、使用する信頼度管理および速度制御プロトコルが独立していることが望ましく、そうすることにより、アプリケーションの要求条件およびアプリケーションの動作するネットワークの状態に基づいて、実際に速度制御プロトコルを選択し、同じ信頼性制御プロトコルを種々の異なる速度制御プロトコルと共に使用することが可能となる。
【０００９】
Ｍｉｃａｈ  Ａｄｌｅｒ，  Ｙａｉｒ  Ｂａｒｔａｌ，  Ｊｏｈｎ  Ｂｙｅｒｓ，  Ｍｉｃｈａｅｌ  Ｌｕｂｙ，  Ｄａｎｎｙ  Ｒａｚによる、１９９７年６月のFifth Israeli Symposium on Theory of Computing and Systemsのプロシーディングの論文”A Modular Analysis of Network Transmission Protocols”（以降”アドラー”と呼び本願明細書において引用したものとする）において、モジュール化による転送プロトコルの構築方法を紹介し、高信頼転送プロトコルを独立した信頼度管理と速度制御に分離することを主唱する。
【００１０】
いかなる信頼性制御プロトコルにおいても、そのパフォーマンスの２つの主要な指標は、バッファの必要量およびその”グッドプット”である。バッファリングは、送信機および受信機の信頼性制御プロトコルにおいて導入される。たとえば、送信機のバッファリングは、データが最初に送信されたあと受信機で受信された肯定応答を送信機が受信するまでデータはバッファするときに生じる。受信機のバッファリングは、類似した理由のために生じる。バッファリングは、２つの理由のために重要である。（１）送信機および受信機の信頼性制御プロトコルがどれくらいのメモリーを使用するかに直接影響を与える。（２）送信機および受信機の信頼性制御プロトコルがどれくらいの時間遅延をもたらすかに直接影響を与える。グッドプットは、転送中に受信エンドシステムで受信される送信データの量に分割された転送データのサイズとして定義される。たとえば、オリジナルデータを転送するためパケットとして送信されたデータ量がオリジナルデータのサイズである場合グッドプット＝１．０であり、グッドプット＝１．０は冗長データが全く転送されないときに達成される。
【００１１】
アドラーは使用する速度制御プロトコルから大きく独立している信頼性制御プロトコルを概説し、以降”非コード信頼度制御プロトコル”と呼ぶ。非コード信頼度制御プロトコルは、オリジナルデータがブロックに仕切られ各々のブロックがパケットペイロードにより送信されるという意味で、ＴＣＰに埋め込まれた信頼度制御プロトコルにいくらか類似しており、高信頼の転送を確保するために各々のブロックの正確なコピーが受信されることを要する。非コード信頼度制御プロトコルの問題は、グッドプットは最適（基本的に１に等しい）であるが、パケット損失があるときに非コード信頼度制御プロトコルは相当のバッファを必要とすることである。アドラーは、送信機および受信機で必要とされるバッファの量を最小化する観点から最適なグッドプットおよび確かさから最適となる定数因子となるように、非コード信頼度制御プロトコルがデータ転送に符号化を用いない信頼度管理プロトコルの中で最適となる定数因子であるということを証明している。
【００１２】
信頼性制御プロトコルに使用される１つのソリューションは、リード−ソロモン符号またはトルネード符号のような前方誤り訂正（ＦＥＣ）符号、または、情報付加符号である連鎖反応符号である。ＦＥＣ符号を使用するときには、パケットのペイロードより大きいオリジナルデータはブロックに区切られ、符号化ユニットはこれらのブロックから生成され、パケットとして符号化ユニットは送信される。符号化を使用しない信頼性制御プロトコルに対するこのアプローチの基本的な利点は、応答がよりシンプルとなりより少ない頻度でありえるということである。すなわち、受信機は、各々のブロックについて、送信機に、正確にどの符号化ユニットが受信されたかを示すリストの代わりに受信された符号化ユニットの量を指示すればよいだけである。さらにまた、全体としてオリジナルデータブロックの長さより多くの符号化ユニットを生成し送信する能力は、信頼性制御プロトコルの設計の強力なツールとなる。
【００１３】
リード−ソロモン符号またはトルネード符号のような消去修正符号は、固定長ブロックの符号化ユニットを固定数だけ生成する。たとえば、Ｂ個の入力ユニットを含むブロックに対し、Ｎ個の符号化ユニットが生成される。これらＮ個の符号化ユニットは、Ｂ個のオリジナル入力ユニットおよびＮ−Ｂ個の冗長ユニットを含み得る。記憶装置が許す場合、送信機は一度だけ各々のブロックの符号化ユニット群を計算しカルーセルプロトコルを用い符号化ユニットを送信することができる。
【００１４】
いくつかのＦＥＣ符号に関する１つの問題は、過大な演算能力または動作メモリを必要とするということである。他の問題は、必要とされる符号化ユニットの数が符号化処理に先立って決定されなければならないということである。これは、パケット損失率が過大評価される場合結果として非効率性を生じ、パケット損失率が過小評価される場合結果として失敗を生じる。
【００１５】
従来のＦＥＣ符号では、生成可能な符号化ユニットの数は、ブロックに区切られる入力ユニットの数と同程度である。排他的にでないが、一般的に、これらの符号化ユニットのほとんどまたは全ては、送信ステップ前の前処理ステップで生成される。これらの符号化ユニットは、オリジナルブロックと等しいかわずかに長さの符号化ユニットのいかなるサブセットからも全入力ユニットが再生できるという特性を有する。
【００１６】
米国特許第６，３０７，４８７号（以降、”ルビーＩ”と呼び本願明細書において引用したものとする）に記載されている連鎖反応復号化は、上記の問題に対処する前方誤り訂正の形式を提供できる。連鎖反応符号において、生成可能な符号化ユニットのプールは、入力ユニットに比較し数桁大きい程度あり、プールからランダムまたは疑似ランダムに選択された符号化ユニットは、非常にすばやく生成されうる。連鎖反応符号では、符号化ユニットは、送信ステップと同時に”必要に応じて”を原則に即座に生成される。連鎖反応符号では、オリジナルコンテンツよりわずかに長いランダムまたは疑似ランダムに生成された符号化ユニット群のサブセットからコンテンツの全入力ユニットを再生可能である。
【００１７】
米国特許第６，３２０，５２０号，第６，３７３，４０６号，第６，６１４，３６６号，第６，４１１，２２３号，第６，４８６，８０３号および米国特許公開番号２００３００５８９５８（以降、”ショクロラヒＩ”と呼び本願明細書において引用したものとする）のような他の文書はさまざまな連鎖反応符号体系を述べており、本願明細書に引用したものとする。
【００１８】
連鎖反応符号を使用している送信機は、送信される各々のブロックの符号化ユニットを連続的に生成できる。符号化ユニットは、Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ（ＵＤＰ）のユニキャストまたは適用可能であればＵＤＰマルチキャストを介して、受信機に送信される。各々の受信機は復号化装置を備えていると仮定され、オリジナルブロックを得るため、パケットとして受信される符号化ユニットを適切な数だけ復号化する。
【００１９】
デジタルファウンテン（Digital Fountain）から入手可能なトランスポーターファウンテン（Transporter Fountain）ネットワーク装置において利用可能な転送装置の１つは、シンプルなＦＥＣベースの信頼度制御プロトコルを使用する高信頼転送プロトコルであり、種々の速度制御プロトコルと合わせて利用可能である。シンプルなＦＥＣベースの信頼性制御プロトコルを以降では”ＴＦ信頼度制御プロトコル”と呼ぶ。ＴＦ信頼度制御プロトコルは、ブロックを回復するための十分な符号化ユニットが受信されたことを示す受信機からの肯定応答を受信するまで、所与のデータブロックの符号化ユニットを送信し、肯定応答を受信すると次ブロックへ移動する。
【００２０】
ＲＴＴを送信機がパケットを送信してから送信機がパケットが到着した受信機から肯定応答を受信するまでの秒数、Ｒをパケット／秒を単位とした送信機における現在の送信速度、Ｂをパケットを単位としたブロックサイズとする。ＴＦ信頼度制御プロトコルを使用すると、ブロックを回復するために必要な最後のパケットの後に送信されるブロックの符号化ユニットを含む役立たないパケットの数は、Ｎ＝Ｒ＊ＲＴＴである。そのため、送信されたパケットの割合ｆ＝Ｎ／（Ｂ＋Ｎ）は無駄となり、グッドプットは大きくとも１−ｆである。たとえば、Ｒ＝１，０００パケット／秒、ＲＴＴ＝１秒、そして、Ｂ＝３，０００パケットのとき、Ｆ＝０．２５である。すなわち、受信されたパケットの２５％が無駄となる。そのため、この例でグッドプットは最大グッドプット１．０に比較し低い０．７５となる。
【００２１】
また、この速度ＲとブロックサイズＢによる例では、シンプルなＦＥＣベースの信頼度制御プロトコルにより生じる時間遅延は少なくとも４秒であり（各々のブロックは計４秒で送信される）、少なくとも１個のブロック（すなわち、データの３，０００パケット）をバッファリングすることを必要とすることを意味する点に注意する。さらにまた、グッドプットを増加させると必要バッファも増加する、逆にいえば、バッファを減少させるためにはグッドプットを減少させることは必要である。
【発明の開示】
【発明が解決しようとする課題】
【００２２】
上述にかんがみ信頼度管理の改善が望ましく、グッドプットおよびバッファサイズの間により良好なトレードオフを有する信頼度管理プロトコルを提供する。
【課題を解決するための手段】
【００２３】
本発明の実施例に従う転送システムにおいて、転送されるデータを各々が複数の符号化ユニットを含むデータブロックに編成し、第１データブロックの符号化ユニットを前記送信機から前記受信機へ送信し、前記送信機において、前記受信機による符号化ユニット受信の肯定応答を検出することによりデータを送信機から受信機へ高信頼に転送する。送信機において、前記第１データブロックを回復するため前記受信機で該第１データブロックの十分な符号化ユニットを受信した確率が検出され、所定のテストを満足するどうか決定するため前記確率は閾値確率に対してテストされる。前記テストのステップの後かつ前記送信機が前記受信機での前記第１データブロックの回復の確認を受信する前において、前記所定のテストを満足するとき前記送信機から第２データブロックの符号化ユニットを送信する。前記送信機が前記第１データブロックの回復の失敗の指示を受信したとき、送信機から受信機へ前記第１データブロックの更なる符号化ユニットを送信する。いくつかの実施例では、所定のテストは閾値確率に対する確率の比較であり、確率が閾値確率より大きいときに所定のテストは満たされる。
【発明の効果】
【００２４】
グッドプットおよびバッファサイズの間の非常により良好なトレードオフを有する信頼度管理プロトコルを提供することができる。
【発明を実施するための最良の形態】
【００２５】
（関連出願の相互参照）
本出願は、２００３年１０月８日に出願された”FEC-BASED RELIABILITY CONTROL PROTOCOLS”の名称の米国特許出願番号６０／５０９，９７６号に基づく優先権を主張し、全ての目的のために、この文書に記載される全てを本願明細書に引用する。
【００２６】
本発明の実施例において、ＴＣＰ、ＴＦ信頼度制御プロトコルおよび非コード信頼度制御プロトコルを改善するためインタリーブ信頼度制御プロトコルを利用する。信頼度制御プロトコルについては、データのブロックは送信機から受信機へ一連の符号化ユニットとして送信され、受信機は符号化ユニットあるいはブロックの回復を肯定応答する。このため、送信機は受信機がデータを受信したかどうかを判定可能となり、受信されない場合は、データを再送信するは、あるいは、受信データを回復可能に有用な他のデータを送信する。いくつかのインタリーブ信頼度制御プロトコルの特性の１つは、異なるブロックの符号化ユニットがインターリーブされて送信されるということである。インタリーブ信頼度制御プロトコルは、実質的に速度制御プロトコルを組み合わされる場合、エンドシステムでバッファリング（および、それに伴う時間遅延）を最小化する効率的な高信頼データ転送を提供し、転送のグッドプットを最大にする。
【００２７】
インタリーブ信頼度制御プロトコルは、高い損失および／または大きいＲＴＴがあるときでも、高スループットを維持し高信頼のデータ転送を確保するため適当な速度制御プロトコルと共に利用することが出来る。例えば、速度制御プロトコルは固定速度（レート）で送信するだけの単純なものでも良く、インターリーブ信頼性制御プロトコルは、転送時にバッファリングおよび時間遅延が最小化されている間は、固定速度と到着パケットの割合との積で示される速度でデータが転送されることを保証する。
【００２８】
ここで紹介するインタリーブ信頼度制御プロトコルにより提供される定量的な改善例では、速度制御プロトコルは１秒につきＲパケットの固定レートでパケットを送信し、送信機および受信機の間の往復時間はＲＴＴ秒であり、従って、Ｎ＝Ｒ＊ＲＴＴは転送中の肯定応答のされていないパケット数であることを仮定する。非コード信頼度制御プロトコルにおいて、送信機の総バッファサイズは少なくともＮ＊ｌｎ（Ｎ）であり、グッドプットはおよそ１．０である。そして、バッファ必要量およびグッドプットの間には他のトレードオフ位置がない。ここで、ｌｎ（ｘ）は、ｘの自然対数として定義される。ＴＦ信頼度制御プロトコルにおいて、送信機の総バッファサイズは少なくともＢであり、グッドプットはおよそＢ／（Ｂ＋Ｎ）である。ここで、Ｂはパケットを単位として選択されたブロックサイズであって、グッドプットに対するバッファ必要量のトレードオフを選択可能である。対照的に、インタリーブ信頼度制御プロトコルにおいて、送信機の総バッファサイズは最大でもＢであり、グッドプットはおよそＮ／（Ｎ＋Ｘ）である。ここで、Ｘはグッドプットに対するバッファ必要量のトレードオフにより選択される自然数のパラメータであり、Ｂ＝Ｎ＊（１＋ｌｎ（（Ｎ／Ｘ）＋１））はパケットを単位とするバッファサイズである。
【００２９】
例えば、速度Ｒが１０００パケット／秒でありＲＴＴが１秒である場合、Ｎ＝１０００パケットである。そして、非コード信頼度制御プロトコルでは、送信機のバッファサイズは少なくとも７，０００パケットである。ＴＦ信頼度制御プロトコルでは、Ｂが４，０００パケットとして選択される場合、グッドプットはおよそ０．８０となる。Ｘが５０と選択され、Ｂ＝４０００パケット（ＴＦ信頼度制御プロトコルの場合と同じ値）であるインタリーブ信頼度制御プロトコルでは、グッドプットは０．９５を上回る。すなわち、無駄になる受信パケットは多くても５％である。そのため、この例においては、インタリーブ信頼度制御プロトコルは、ほぼ同じ最適グッドプットの非コード信頼度制御プロトコルに対しはるかにバッファを必要とせず、同一バッファ量のＴＦ信頼度制御プロトコルのグッドプットをはるかに上回る。すなわち、インターリーブ信頼性制御プロトコルでは多くても５％が無駄になるだけなのに対しＴＦ信頼性制御プロトコルでは２５％となる。
【００３０】
実質的に全ての速度制御プロトコルは、高信頼の転送プロトコルを提供するため、インターリーブ信頼性制御プロトコルによって利用可能である。例えば、固定速度で送信するか、ＴＣＰに類似したウインドウベースの輻輳制御を使用するか、均衡化ベースの輻輳制御プロトコル（例えばＴＣＰフレンドリ速度制御（ＴＦＲＣ））を使用するか、その他のほぼ任意の速度制御プロトコルを使用可能である。
【００３１】
＜３．高信頼転送プロトコル＞
本明細書において、高信頼転送プロトコルは、送信されたパケットのいくつかは受信されない可能性があるときでも全てのデータが転送されるというような方法で、パケットベースのネットワークを介して送信エンドシステムから受信エンドシステムまで確実にデータを転送するプロトコルである。図１は、高信頼転送プロトコルが動作しうる、ネットワーク１３０、および、送信エンドシステム１００（１），．．．，１００（Ｊ）と受信エンドシステム１６０（１），．．．，１６０（Ｋ）の一群を例示する図である。一般的に、この種のプロトコルもパケット送信速度を調整するためのいくつかのメカニズムを含んでいる。この送信速度は、プロトコルが構築されるアプリケーションを含む種々の要因、ユーザー入力パラメータ、および、送信および受信エンドシステム間のネットワークの状態に依存し得る。
【００３２】
高信頼転送プロトコル（例えばＴＣＰ）は、一般的にいくつかのステップを含む。これらのステップは、エンドシステムにおいて、データが利用可能であることを通知し、他のエンドシステムにデータ転送を始め、どのデータを転送するかを通信し、高信頼のデータ転送を実行する方法を含む。エンドシステムにおいて、利用可能性の通知、転送の開始、および、転送されるものの通信のための種々の標準的な方法があり、例えば、セッション通知プロトコル（session announcement protocols）、セション開始プロトコル（session initiation protocols）などがある。これらのステップは周知であるため、ここでは詳細には記載しない。
【００３３】
高信頼のパケットデータの転送は、転送の各々の時点でパケットのどのデータを送信しどのレートでパケットを送信するかの決定を含む。各時点でなされる決定は、受信エンドシステムから送信される応答あるいは他の要素に依存し得る。一般的に、データは、送信エンドシステムにおいてデータのストリームとして提供され、高信頼転送プロトコルはこのストリームが送信された順序で受信エンドシステムに確実に配信する。しばしば、転送が開始される前にストリームの全長が未知の場合がある。
【００３４】
＜４．高信頼転送プロトコルのモジュール化アーキテクチャ＞
アドラーは、信頼度制御プロトコルおよび速度制御プロトコルを組合せることにより、高信頼転送プロトコルがどのように案出可能かについて記述している。信頼度制御プロトコルは、転送プロトコル全体のうち、転送中に各々のパケットにどのデータを配置するかを決定する部分である。速度制御プロトコルは、各々のデータパケットをいつ送信するかについて決定する。多くの転送プロトコルにおいて、信頼度管理および速度制御プロトコルは動作中には不可分に関連しあっている。すなわち、ＴＣＰはこの場合に当てはまる。しかしながら、この種の関連しあうプロトコルであっても概念的には信頼度制御プロトコルおよび速度制御プロトコルに区分可能である場合もある。
【００３５】
アドラーは、信頼度制御プロトコルおよび速度制御プロトコルをそれぞれ独立に設計する高信頼転送プロトコルの設計を提唱する。この種の方法を採用することにより同一の信頼度制御プロトコルが種々の速度制御プロトコルと共に使用可能となり、そのため同一の信頼度制御プロトコルを、アプリケーションおよび全体の高信頼転送プロトコルが使用されるネットワークの状態に応じた適切な速度制御プロトコルと共に使用可能となる。異なるアプリケーションおよびネットワーク環境において同一の信頼度制御プロトコルを多様な速度制御プロトコル群と共に使用可能であため、設計におけるこのモジュール化による方法は非常に有利であり、そのため、各々のアプリケーションおよびネットワーク環境に対し高信頼転送プロトコル全体の完全な再設計を回避することが出来る。たとえば、ＴＣＰは異なるネットワーク環境で種々のアプリケーションにより使用されているが、いくつかのアプリケーションおよびネットワーク環境においては、速度制御プロトコルによって決定される低いスループットにより十分な性能を発揮しない。残念なことに、ＴＣＰアーキテクチャにおいては、信頼度制御プロトコルおよび速度制御プロトコルが非常に絡み合っているので、十分な性能を発揮しない状況でのスループットパフォーマンスを高めるためにＴＣＰの中で異なる速度制御プロトコルを使用することは出来ない。
【００３６】
図２は、アドラーにより提唱されるモジュール化された高信頼転送プロトコルの構造の具体例である。送信転送プロトコル２１０は、送信信頼度制御プロトコル２２０および送信速度制御プロトコル２３０に区分される。送信信頼度制御プロトコル２２０は各々のデータパケットにおいて何が送信するかを決定し、送信速度制御プロトコル２３０は各々のデータパケットをいつ送信するかを決定する。送信信頼度制御プロトコル２２０は、受信転送プロトコル２９０の受信信頼度制御プロトコル２８０により使用可能な付加的な信頼度制御情報を各々のデータパケットに入れることができる。送信信頼度制御プロトコル２２０は、また、受信転送プロトコル２９０の対応する受信信頼度制御プロトコル２８０から、各々のデータパケットにおいて何が送信されたかを決定するのに役立つ信頼度制御情報２５０を受信できる。同様に、送信速度制御プロトコル２３０は、受信転送プロトコル２９０の受信速度制御プロトコル２７０により使用可能な速度制御情報を各々のデータパケットに入れることができる。送信速度制御プロトコル２３０は、また、受信転送プロトコル２９０の対応する受信速度プロトコル２７０から、各々のデータパケットがいつ送信されたかを決定するのに役立つ速度制御情報２５０を受信できる。
【００３７】
送信信頼度プロトコル２２０および受信信頼度プロトコル２８０の間で転送される信頼度制御情報は、パケット損失のような種々の要因に依存し、後述するいくつかの各種詳細情報を含むことができる。同様に、送信速度制御プロトコル２３０および受信速度制御プロトコル２７０の間で転送される速度制御情報は、パケット損失および測定された往復時間（ＲＴＴ）などの種々の要因に依存する。さらにまた、データパケット２４０または応答パケット２５０において送信される情報が信頼度制御および速度制御のために使用されるように、信頼度制御情報および速度制御情報をオーバーラップさせることができる。通常、送信転送プロトコル２１０から受信転送プロトコル２９０まで送信される信頼度管理および速度制御情報は、データパケット２４０のデータ、分離された制御パケット２４０、あるいは、その両方によって送信される。これらのプロトコルは、送信機から受信機、あるいは、受信機から送信機に送信が必要な制御情報量を最小化するように設計されていなければならない。
【００３８】
多くのアプリケーションでは、データはストリームとして転送される。すなわち、データは送信エンドシステムに到着すると、送信エンドシステムに到着するのと同じ順序で可及的速やかに受信エンドシステムに高信頼に転送される。例えば、ストリーミングアプリケーションや小さなバーストデータが可及的速やかに２つのエンドシステム間で双方向に送信される対話型アプリケーションなどのアプリケーションによっては、転送プロトコル全体により生じる時間遅延は最小化されなければならない。
【００３９】
送信信頼度制御プロトコル２２０および受信信頼度制御プロトコル２８０は、一般的に両方ともデータを一時的に格納するバッファを必要とする。通常、送信信頼度制御プロトコル２２０でバッファされるデータは、少なくとも、送信信頼度制御プロトコル２２０が受信信頼度制御プロトコル２８０から回復の肯定応答をまだ受信していないストリームの最も初期のデータから送信信頼度制御プロトコル２２０がデータパケットを送信開始したストリームの最新のデータまでを含む。受信信頼度制御プロトコル２８０でのバッファサイズは、一般に少なくとも、受信されたデータパケットのうちがまだ回復されない最も初期のデータから最新のデータまでストリームのデータ量である。
【００４０】
送信信頼度制御プロトコル２２０のバッファ必要条件は、送信信頼度制御プロトコル２２０によりどれだけの一時記憶領域が必要とされるか、また、送信信頼度制御プロトコル２２０が信頼性のあるデータ転送全体にどれだけの時間遅延を与えるかに直接影響する。受信信頼度制御プロトコル２８０のバッファ必要条件も類似した影響を与える。このように、送信信頼度制御プロトコル２２０および受信信頼度制御プロトコル２８０のバッファ必要条件を最小化することは重要である。
【００４１】
信頼度制御プロトコルは、各々のデータパケットにおいて何が送信されるかを決定する。効率的にエンドシステム間の接続を利用するため、受信信頼性制御プロトコル２８０で受信されるどんなデータパケットでもオリジナルデータストリームの一部分を回復することに役立つが、送信信頼度制御プロトコル２２０がパケットの冗長データを可能な限り少なくすることは重要である。信頼度制御プロトコルのグッドプットは、データのオリジナルストリームの回復の間受信信頼度制御プロトコル２８０により受信されるデータのオリジナルストリームの長さをデータパケット全長で除することにより定義される。グッドプットの目標は、信頼度制御プロトコルにおいてグッドプット１．０あるいはその程度の結果となることである。そのとき、データのオリジナルストリームを回復するために受信されるデータ量は最小となる。いくつかの信頼度制御プロトコルにおいてグッドプットは１．０未満であり、そのとき、いくつかの送信データパケットは無駄となっている。このように、グッドプットを可能な限り１．０に近づけるように信頼度制御プロトコルを設計することは、送信エンドシステムから受信エンドシステムまで転送されるデータパケットにより消費される帯域幅を効率的に使用するため重要である。
【００４２】
＜５．ＦＥＣベースの信頼度制御プロトコル＞
信頼度制御プロトコルとして用いられている１つの解は、例えばリード−ソロモン符号、トルネード符号、あるいは、情報付加コードである連鎖反応コードのような前方誤り訂正（ＦＥＣ）符号である。パケットのペイロードより大きいオリジナルデータはブロックに区切られ、符号化ユニットはこれらのブロックから生成され、パケットとして符号化ユニットを送信する。リード−ソロモン符号やトルネード符号のような消去修正符号は、固定長ブロックの固定数の符号化ユニットを生成する。たとえば、入力ユニットを含んでいるブロックでは、Ｎ個の符号化ユニットが生成される得る。これらのＮ個の符号化ユニットは、Ｂ個のオリジナルの入力ユニットおよびＮ−Ｂ個の冗長ユニットを含み得る。
【００４３】
ＦＥＣベースの信頼度制御プロトコルは、ＦＥＣ符号を使用する信頼度制御プロトコルである。図３は送信ＦＥＣベース信頼度制御プロトコル２２０の例示図であり、図４は受信ＦＥＣベース信頼度制御プロトコル２８０の例示図である。送信信頼度制御ロジック３１０は、データのオリジナルストリームをデータブロック３３０に区切って、ＦＥＣ符号器３２０に各々のブロックに対し符号化ユニットを生成するよう指示する。送信信頼度制御ロジック３１０は、符号化ユニットおよび信頼度制御情報３４０を送信速度制御プロトコル２３０を処理しているデバイスにどのように通知するかを決定し、また、図４に示されるＦＥＣベース信頼度制御ロジック４１０により送信される信頼度制御情報３５０を処理する。
【００４４】
送信信頼度制御ロジック３１０は、各々のブロックの回復を確保するため、図４に示される受信ＦＥＣベース信頼度制御プロトコル２８０により十分な符号化ユニットが受信されることを確保する。全てのブロックは基本的に同じ長さであってもよいし、ブロック長は転送中に種々のパラメータ（送信機で利用可能なデータのストリームの速度、データパケットの送信速度、ネットワークの状態、アプリケーションによる要求およびユーザーの要求）の関数として動的に変化させてもよい。
【００４５】
予め指定されるデータブロックをＢ個の符号化ユニットの長さであると仮定する。あるＦＥＣコードではオリジナルデータブロックを回復するのに必要な符号化ユニットの数は正確にＢ個であるが、他のＦＥＣコードではオリジナルデータブロックを回復するのに必要な符号化ユニットの数はＢ個よりわずかに大きい。ＦＥＣベース信頼度制御プロトコルの説明を単純化するために、データブロックを回復するのにＢ個の符号化ユニットで充分であると仮定する。ここで、ＦＥＣコードはブロックを復号するためＢ個より多くの符号化ユニットを必要とするためグッドプットはわずかに減少し、また、わずかに多くのバッファを要求することが理解されよう。
【００４６】
図４の受信信頼度制御ロジック４１０はデータブロックを復号化するためＢ個の符号化ユニットの受信を確保する役割を果たし、ＦＥＣ復号器４２０はデータブロック４３０を回復するために用いられる。受信信頼度制御ロジック４１０は符号化ユニットおよび送信ＦＥＣベース信頼度制御プロトコル２２０から送られる信頼度制御情報３４０を受信する役割を果たし、偶発的に送信され送信信頼度制御ロジック３１０によって処理される信頼度制御情報３５０を生成し送信する。
【００４７】
＜６．ＴＦ信頼度制御プロトコル＞
ＴＦ信頼度制御プロトコルは、データのストリームを一般に等しいサイズのブロックに区切る。全体アーキテクチャは、いかなる時点においてもアクティブなデータブロックは１つであり、送信機はブロックの復元に十分な符号化ユニットを受信したという指示のメッセージを受信し次のブロックへ移動するまでデータブロックの符号化ユニットを生成し送信する。このように、所与のブロックの全ての符号化ユニットが生成され送信されて、次のブロックのいかなる符号化ユニットが生成され送信される前にブロックは回復される。
【００４８】
図５は、ＴＦ信頼度制御プロトコルによって使用可能なフォーマットの１セットである。送信データフォーマットは、送信ＴＦ信頼度制御プロトコルが符号化ユニットおよび対応する信頼度制御情報を受信ＴＦ信頼度制御プロトコルに送信するフォーマットを示している。これは、符号化ユニットがどのブロックから生成されたを指示するブロック番号５１０、符号化ユニットがどのようにブロックから生成されたかを指示する符号化ユニットＩＤ５２０、および、ブロックを回復するために受信ＴＦ信頼性制御プロトコルのＦＥＣ復号器によって使用可能な符号化ユニット５３０を含む。受信応答フォーマットは、受信ＴＦ信頼度制御プロトコルが信頼度制御情報を送信ＴＦ信頼度制御プロトコルに送信するフォーマットを示している。これは、ブロックを回復するために受信ＴＦ信頼度制御プロトコルが受信している符号化ユニットの現在のブロックのブロック番号であるブロック番号５４０、および、受信ＴＦ信頼度制御プロトコルがブロックを回復するのに必要とされるさらなる符号化ユニットの数である必要符号化ユニット５５０を含む。
【００４９】
図６は、送信ＴＦ信頼度制御プロトコルを実装するための処理を例示する図である。処理は送信データを送信する時間であるかどうかを絶えずチェックする（ステップ６１０）。送信する時間である場合、符号化ユニットからアクティブブロックを生成し、送信データを送信する（６２０）。送信データのフォーマットの例は、図５に示されるフォーマットである。処理は、また、受信応答があったどうかを絶えずチェックする（６３０）。受信応答データのフォーマットの例は、図５に示されるフォーマットである。受信応答がある場合、受信機がアクティブブロックを回復するために何個の更なる符号化ユニットを必要とするかという情報を更新する。そして、必要とされる符号化ユニットの数がゼロであるかどうかをチェックし（６４０）、ゼロの場合データのストリームの次のブロックが利用可能になる（６５０）。利用可能でない場合、それが利用可能となるまで次のブロックを準備し（６６０）、現在のアクティブブロックを停止させ、次のブロックをアクティブ化する（６７０）。通常は、現在のアクティブブロックが送信される間に次ブロックは準備され得る。
【００５０】
本願明細書において記載されている各々のプロトコルは、デバイス、または、適切なプロセッサによって実行されるソフトウェアまたはファームウェアにより実現され得ることが理解される。たとえば、ルーターおよびホストコンピュータのようなネットワーク装置を使用して実現することも出来るし、同様に、ワイヤレス送信機、再送信機およびその他の無線デバイスにより実現することも出来る。記載されているプロトコルは、この種のプロトコルを実装するように構成される方法および／または装置を有するソフトウェアとして実現することも出来る。
【００５１】
図７は、受信ＴＦ信頼度制御プロトコルを実装するための処理を例示する図である。受信ＴＦ信頼度制御プロトコルは、図５に示される送信データフォーマットを用いて送信データを受信したかを絶えずチェックする（７１０）。受信した場合、送信データ内の符号化ユニットがアクティブブロックのものかどうかがチェックされる（７２０）。符号化ユニットがアクティブブロックのものでない場合破棄され（７６０）、そのためいかなるブロックも回復するのに役立たないためこれは無駄な送信データである。符号化ユニットがアクティブブロックのものである場合、アクティブブロックのためにすでに受信された符号化ユニットの一群に追加し、ブロックの符号化ユニットの必要数を１だけデクリメントする（７３０）。そして、符号化ユニットの必要数がゼロであるかどうかチェックし（７４０）、ゼロである場合ＦＥＣ復号器を用いアクティブブロックを回復して、次のアクティブブロック７５０の符号化ユニットの受信に備える（７５０）。受信ＴＦ信頼度制御プロトコルも、対応する受信速度制御プロトコルで決定される受信応答を送信する時間であるかどうか絶えずチェックする（７７０）。送信する時間である場合、図５に示される受信応答フォーマットの受信応答を準備し送信する（７８０）。
【００５２】
これはＴＦ信頼度制御プロトコル全体の一部の説明である点に注意する。たとえば、受信応答が受信ＴＦ信頼度制御プロトコルによって送信される状況に限定されない。受信された送信データの受信、時折発するタイマー、これらのイベントのいかなる組合せまたは受信速度制御プロトコルによって決定される他のいかなるイベントが送信のトリガとなり得る。通常、受信応答は、受信ＴＦ信頼度制御プロトコルが送信ＴＦ信頼度制御プロトコルに定期的に符号化ユニットの受信の進捗を知らせるように十分な頻度で送信され、送信ＴＦ信頼度制御プロトコルから受信ＴＦ信頼度制御プロトコルまで送信される符号化ユニットを含んでいる送信データとほぼ同程度の帯域幅を消費することのない頻度で送信する。
【００５３】
ＴＦ信頼度制御プロトコルが以下の意味において”無駄”とみなされ得る点に注意する。Ｂを符号化ユニットを単位にする各々のデータブロックのサイズ、Ｒを速度制御プロトコルによってパケットが送信される速度、ＲＴＴを送信および受信エンドシステム間の往復時間、そして、Ｎ＝Ｒ＊ＲＴＴとする。そして、パケット損失が送信機および受信機の間にないと仮定する。その場合、送信ＴＦ信頼度制御プロトコルがアクティブブロックのＢ個の符号化ユニット（ブロックの回復に十分である）を送信した後、受信ＴＦ信頼度制御プロトコルからブロックを回復するのに十分な符号化ユニットを受信したことを指示する受信応答を受信するまでＮ個の付加的な符号化ユニットを送信し続けるため、Ｎ個の符号化ユニットの全てが無駄となる。長さＢのブロックを回復するにはＢ＋Ｎ個の符号化ユニットを送信することが必要であるため、グッドプットはＢ／（Ｂ＋Ｎ）である。ＢがＮと比較して比較的小さい場合グッドプットは望ましい値から程遠くなり、送信機および受信機間の多くの使用帯域幅は無駄になる。一方、ＢがＮと比較して大きい場合送信および受信ＴＦ信頼度制御プロトコルのバッファサイズが大きくなり得るため、受信機におけるデータストリーム配信の時間遅延が大きくなる。例えば、符号化ユニットのサイズを１キロバイト、速度Ｒを１秒につき１，０００個の符号化ユニット（＝１メガバイト／秒＝８メガビット／秒）そして、ＲＴＴが１秒であると仮定する。そのとき、Ｎ＝Ｒ＊ＲＴＴ＝１メガバイトである。ブロックのサイズをＢ＝３メガバイトに設定する場合、グッドプットはおよそ（Ｂ／（Ｂ＋Ｎ））＝０．７５しかない。すなわち、送信された符号化ユニットの約２５％は無駄になる。たとえば、送信される符号化ユニットの無駄が約２％になるようにグッドプットを０．９８に増やすためには、Ｂ＝４９メガバイトとなる非常に大きなバッファサイズが必要となる。このサイズバッファは、結果として信頼度制御プロトコルによる少なくとも５０秒の時間遅延をもたらす。
【００５４】
上述したＴＦ信頼度制御プロトコルには多くの変形がある。たとえば、送信ＴＦ信頼度制御プロトコルはブロックからのＢ個の符号化ユニットを送信した後符号化ユニットの送信を止め、ブロックを回復するための十分な符号化ユニットが受信されたかどうかを指示する受信応答の受信待機をすることができる。損失がない場合、この変形は無駄になるいかなる符号化ユニットも送信しない。しかし、この場合においてもＲＴＴ時間のギャップが各々のブロック間にあるため、帯域幅が他のために使われていない場合このプロトコルはまだ結果としてＲ＊ＲＴＴの帯域幅の無駄を生じる。さらにまた、総配送時間は理想的な場合に比較しＢ／（Ｂ＋Ｎ）倍遅くなる。損失がある場合、結局、ブロックを回復するために消失した符号化ユニットの代わりの付加的な符号化ユニットを送信しなければならないため、この変形は配信の更なる時間遅延および低速化を生じる。
【００５５】
＜７．インタリーブ信頼度制御プロトコル＞
受信応答なしに同一のブロックから生成されるその後受信されたいかなる符号化ユニットからいかなる消失する符号化ユニットも補うことができるため、ＴＦ信頼度制御プロトコルは非コード信頼度制御プロトコルに比較し有利である。ＴＦ信頼度制御プロトコルが無駄となる主要な理由は、次のブロックの転送が始まる前に各々のブロックの転送が完了するのと同様、プロトコルの経時的な性質による。本願明細書に記載されている改良された信頼度制御プロトコルは、インテリジェントな方法によるブロック処理をインタリーブするのに利用することができる。
【００５６】
インタリーブの実施例の図を図８に示す。この例では、第１のアクティブブロックＡＢ１（８１０）および第２のアクティブブロックＡＢ２（８２０）の２つのアクティブブロックがある。図８の下部に、時間に対応するデータパケットの送信パターンの実施例を示す。ここで、各々のパケットには、対応するパケットがＡＢ１かＡＢ２の符号化ユニットを含むかどうかに依存してＡＢ１かＡＢ２の表示を付している。この例では、ＡＢ１の符号化ユニットを含んでいる４つのパケット（（８３０（１）、８３０（２）、８３０（３）および８３０（４））が最初に送信され、そしてＡＢ２の符号化ユニットを含んでいる２つのパケット（８３０（５）および８３０（６））、ＡＢ１の符号化ユニットを含んでいる１つのパケット（８３０（７））、ＡＢ２の符号化ユニットを含んでいる１つのパケット（８３０（８））、そして、ＡＢ１の符号化ユニットを含んでいる１つのパケット（８３０（９））が引き続いて送信される。一般に、異なるブロックに対する符号化ユニット間のインターリーブは、グッドプットが最大化されるよう、総バッファの必要条件（および、それに伴う時間遅延）が最小化されるよう設計される。
【００５７】
図９は、インタリーブ信頼度制御プロトコルによって使用可能なフォーマットの一群である。送信データフォーマットは、送信インタリーブ信頼度制御プロトコルが符号化ユニットおよび対応する信頼度制御情報を受信インタリーブ信頼度制御プロトコルに送信するフォーマットを示す。この例では、符号化ユニットが生成されたブロックを指示するブロック番号９１０、ブロックから何個の符号化ユニットが送信されたかを指示するシーケンス番号９２０、ブロックから符号化ユニットが生成された方法を指示する符号化ユニットＩＤ９３０、および、ブロックを回復するために受信インタリーブ信頼度制御プロトコルの中のＦＥＣ復号器によって使用され得る符号化ユニット９４０を含む。受信応答フォーマットは、受信インタリーブ信頼度制御プロトコルが信頼度制御情報を送信インタリーブ信頼度制御プロトコルに送信するフォーマットを示す。各々のアクティブブロックについて、ブロック番号（９５０（１）、９５０（２））、ブロックを回復するために必要な符号化ユニットの数（９６０（１）、９６０（２））、および、そのブロックにおいて現在までに受信された最も高いシーケンス番号（９７０（１）、９７０（２））を含む。
【００５８】
図１０は、基本送信インターリーブ信頼度制御プロトコルの論理を例示する図である。このバージョンのプロトコルにおいて、基本送信インターリーブ信頼度制御プロトコルは、対応する送信速度制御プロトコルで決定される送信データ１００５を送信する時であるかどうかを絶えずチェックする。送信データを送信する時間になったら、基本送信インターリーブ信頼度制御プロトコルは、どのアクティブブロックから符号化ユニットを生成し送信するべきかについて決定するため以下の一群のルールを使用する。
【００５９】
基本送信インターリーブ信頼度制御プロトコルは、各々のアクティブブロックｉ（１０１０）の以下の変数の情報を取得し続ける。Ｂ＿ｉはブロックを回復するために必要な符号化ユニットの数、Ｒ＿ｉは受信された受信応答に基づき基本送信インターリーブ信頼度制御プロトコルが知っている基本受信インターリーブ信頼度制御プロトコルがブロックから受信した符号化ユニットの数、Ｌ＿ｉ＝Ｂ＿ｉ−Ｒ＿ｉは基本送信インターリーブ信頼度制御プロトコルが知っているブロックを回復するために基本受信インターリーブ信頼度制御プロトコルが必要とする未確認の符号化ユニットの残りの数、Ｕ＿ｉはブロックのために送信されたが基本送信インターリーブ信頼度制御プロトコルにより肯定応答がまだ受信されていない符号化ユニットの数、Ｘ＿ｉは基本送信インターリーブ信頼度制御プロトコルがどれくらいアグレッシブにブロックのための符号化ユニットを送信するかを決定するパラメータである。
【００６０】
これらの変数は以下のように決定することができる。Ｂ＿ｉの値はブロックのサイズおよび各々の符号化ユニットのサイズにより決定される。通常、各々の符号化ユニットは同一サイズであり、サイズはデータパケットのペイロードに適合するよう選択される。例えば、符号化ユニットの長さは１０２４バイトである。通常、各々のブロックのサイズは同一であるが可変でもよく、送信機でのデータストリームの到着速度に依存してもよいし、データパケットの送信速度に依存してもよいし、これらおよび他の要素の組合せに依存してもよい。Ｒ＿ｉの値はステップ１０３０において受信される受信応答に基づいて決定される。Ｕ＿ｉの値はブロックの符号化ユニットを含む最後の送信データのシーケンス番号とブロックの受信応答により受信される最大シーケンス番号との差である。
【００６１】
Ｘ＿ｉの値は信頼度制御プロトコル全体の関数であり、後で説明されているようにＸ＿ｉの選択にはトレードオフがある。Ｘ＿ｉの値はブロックの全ての符号化ユニットについて送信の間一定のままでもよいし、種々の異なる方法による可変値でもよい。その幾つかは後述する。基本的に、各時点でのＸ＿ｉは、基本受信インターリーブ信頼度プロトコルからのいかなる付加的な受信応答無しに、ブロックを復元するたに最低限必要となるものを超え基本送信インターリーブ信頼度制御プロトコルが送信しようとしている符号化ユニットの数の基準である。Ｌ＿ｉはすでに肯定応答された受信符号化ユニットを超えブロックｉを回復するために必要な符号化ユニットの数であり、Ｕ＿ｉはブロックｉの転送中でまだ肯定応答のされていない符号化ユニットの数であるため、Ｌ＿ｉ＋Ｘ＿ｉ−Ｕ＿ｉは基本送信インターリーブ信頼度制御プロトコルがこの時点で送信しようとしているブロックｉの付加的な符号化ユニットの数である。Ｘ＿ｉの値のトレードオフは以下の通りである。アクティブブロックｉを回復するのに最小限必要となるものを超える最大Ｘ＿ｉ個の符号化ユニットが基本受信インターリーブ信頼度制御プロトコルにより受信され得るため、Ｘ＿ｉが増加するとグッドプットは減少する。一方では、Ｘ＿ｉが増加するとアクティブブロックｉの高信頼の受信を完了するためのパケットタイムスロットの数は減少するため、Ｘ＿ｉが増加するとアクティブブロックの総サイズは減少する。これはブロックｉのＸ＿ｉ個の符号化ユニットが消失し得、付加的な符号化ユニットの送信のトリガとなる受信応答を待つことなく基本受信機はブロックを回復することが可能となる理由である。総バッファサイズおよびグッドプットの間のトレードオフがＸ＿ｉの関数として表され、例えばＴＦ信頼度制御プロトコルまたは非コード信頼度制御プロトコルのような他の信頼度制御プロトコルの対応するトレードオフに比較し非常に有利であることがわかる。
【００６２】
ステップ１０１５において、不等式Ｌ＿ｉ＋Ｘ＿ｉ−Ｕ＿ｉ＞０を満たすアクティブブロックｉがあるかどうか判定するためにテストが実行される。Ｌ＿ｉの値は、受信応答の肯定応答がなされた符号化ユニットに基づいたブロックを回復するのに受信機が必要とする符号化ユニットの何個である。Ｕ＿ｉは、ブロックの転送中の肯定応答のされていない符号化ユニットの数であり、Ｌ＿ｉ−Ｕ＿ｉは、転送中の全ての符号化ユニットが消失しない場合送信されなければならない付加的な符号化ユニットの数である。そのため、この数がゼロ以下の場合、転送中のブロックの全ての符号化ユニットが受信されると受信機はブロックを回復することが可能である。一方、いくつかの符号化ユニットが消失するかもしれず、Ｘ＿ｉは、次の受信応答によりトリガされるブロックの付加的な符号化ユニットを送信しなければならなくなることを回避し消失から保護するため、送信機が前もって送信しようとしている付加的な符号化ユニットの数である。そのため、Ｌ＿ｉ＋Ｘ＿ｉ−Ｕ＿ｉ＞０の場合、送信機はブロックｉのより多くの符号化ユニットを送信しようとし、それがゼロであるか負の場合、送信機はブロックｉのより多くの符号化ユニットを送信しようとしない。このように、ステップ１０１５において、Ｌ＿ｉ＋Ｘ＿ｉ−Ｕ＿ｉ＞０を満たすアクティブブロックｉがある場合、ステップ１０２０において最早のこの種のアクティブブロックから符号化ユニットを生成し対応する送信データを送信する。この種のアクティブブロックがない場合、ステップ１０２５において全てのアクティブブロックの中で最初期のアクティブブロックから符号化ユニットを生成し対応する送信データを送信する。そして、望ましくは、ステップ１０２５の実行を強制するステップ１０１５の状態をどのブロックも満たさないことを可能な限り回避するような方法でパラメータがセットされる。なぜなら、本質的にステップ１０２５は、基本送信インターリーブ信頼度制御プロトコルのバッファをクリアする最後の手段として実行されなければならないからである。
【００６３】
プロトコルの１つの変形は、以下の通りである。アクティブ化されたブロックの数は１から始まる、すなわち、データストリームの第１のブロックをアクティブ化する。ステップ１０１５の状態を満足するアクティブブロックがない場合にだけ、データストリームの新規のブロックをアクティブ化するということである。このシンプルな方法を使用して、ブロックは必要なときにアクティブブロックになるだけであり、アクティブブロックの数およびバッファサイズを、ブロックｉのグッドプットＢｉ／（Ｂｉ＋Ｘ＿ｉ）を保証するために必要な数に自動調節する。
【００６４】
プロトコルの他の変形は、以下の通りである。この変形において、グッドプットは変化するが総バッファサイズは常に同一サイズ（全てのブロックが同一サイズである場合、常に一定数のアクティブブロックが存在することを意味する）である。ステップ１０１５の状態を満たすアクティブブロックがない場合は、ステップ１０１５の状態を満たすアクティブブロックが存在するまでアクティブブロックのＸ＿ｉの値は増加する。ステップ１０１５の状態を満たすアクティブブロックが常に存在するという制約条件によって、適切な場合はいつでもブロックｉのＸ＿ｉの値は減少する。Ｘ＿ｉの値を増加あるいは減少させる多くの方法がある。例えば、全ての値を等しく増加、全ての値を正比例して増加、最後のアクティブブロックの値より最初のアクティブブロックの値をより増加、最初のアクティブブロックの値より最後のアクティブブロックの値をより増加などがある。類似の方法がＸ＿ｉの値を減少させるために用いることができる。当業者は、同様に多くの他のバリエーションについて考えることができる。
【００６５】
記載するにはあまりに多いが、これらの変形プロトコルの多くの他の組合せおよび拡張があり、当業者にとって明らかである。
【００６６】
ステップ１０３０において、受信応答が受信されたかどうかについてチェックされる。受信されていた場合、全てのパラメータはステップ１０３５において、これに基づいて更新される。すなわち、全てのアクティブブロックｉのパラメータＲｉ、Ｕ＿ｉおよびＸ＿ｉである。ステップ１０４０において、最も初期のアクティブブロックが完全に回復され肯定応答されたかがチェックされる。そして、肯定応答されていた場合、ステップ１０４５および１０５０で次のブロックが準備され、ステップ１０５５において最も初期のアクティブブロックは非アクティブ化され次のブロックがアクティブ化される。一般に、現在のアクティブブロックが送信されアクティブ化の準備がされまたは最も初期のアクティブブロックが非アクティブ化される前の場合、次のブロックまたはいくつかの次のブロックは準備中でもよい。
【００６７】
図１１は、基本受信インターリーブ信頼度制御プロトコルの論理の例示する図である。プロトコルのこのバージョンにおいて、基本受信インターリーブ信頼度制御プロトコルは、たとえば、図９に示される送信データフォーマットにおいて送信データが受信されたかどうかを絶えずチェックする（１１０５）。受信された場合、ステップ１１１０で全てのアクティブブロックに関する情報を更新し、受信された符号化ユニットがアクティブブロックの送信データのものかをチェックする（１１１５）。符号化ユニットが、すでに回復されたブロックまたは現在のアクティブブロックからデータストリームのずっと先の遠いブロックである場合、ステップ１１３５において廃棄される。つまり、これはいかなるブロックの回復にも役立たない無駄な送信データである。そうでない場合、符号化ユニットは生成されたアクティブブロックの符号化ユニットのプールに追加され、ステップ１１２０において、アクティブブロックを回復するために必要な符号化ユニットの数を更新する。
【００６８】
ブロックｉの必要な符号化ユニットの数は、Ｂ＿ｉから受信された符号化ユニットの数を減算することにより算出される。例えば、基本受信インターリーブ信頼度制御プロトコルに対するＢ＿ｉの値を通信する種々の方法がある。例えば、Ｂ＿ｉの値を各々の送信データの中に含むようにしてもよいし、Ｂ＿ｉの値を別の制御メッセージで送信してもよいし、Ｂ＿ｉの値は全てのブロックで同一にしセッション開始などの間に通信してもよい。
【００６９】
ステップ１１２５では、最も初期のアクティブブロックの符号化ユニットの必要数がゼロであるかどうかについてチェックされる。ゼロである場合、ＦＥＣ復号器を用いアクティブブロックを回復し、ステップ１１３０で新規な次のアクティブブロックの符号化ユニットの受信に備える。基本受信インターリーブ信頼度制御プロトコルは、対応する受信速度制御プロトコルで決定される受信応答送信する時であるかどうかを絶えずチェックする（１１４０）。送信するときである場合、ステップ１１４５において、たとえば、図９に示される送信データフォーマットにおいて受信応答は準備され送信される。
【００７０】
上記は、基本インターリーブ信頼度制御プロトコル全体の一部分の説明である点に注意する。たとえば、受信応答が基本受信インターリーブ信頼度制御プロトコルによって送信される状況に限定しない。受信された送信データの受信、時折発するタイマー、これらのイベントのいかなる組合せまたは受信速度制御プロトコルによって決定される他のいかなるイベントが送信のトリガとなり得る。通常、受信応答は、基本受信インターリーブ信頼度制御プロトコルが基本送信インターリーブ信頼度制御プロトコルに定期的に符号化ユニットの受信の進捗を知らせるように十分な頻度で送信され、基本送信インターリーブ信頼度制御プロトコルから基本受信インターリーブ信頼度制御プロトコルまで送信される符号化ユニットを含んでいる送信データとほぼ同程度の帯域幅を消費することのない頻度で送信する。
【００７１】
ＴＦ信頼度制御プロトコルまたは非コード信頼度制御プロトコルに比較し、基本インターリーブ信頼度制御プロトコルは、グッドプットおよびバッファサイズの間の非常により良好なトレードオフを有することができる。たとえば、基本インターリーブ信頼度制御プロトコルの多くても２つのアクティブブロックがあると仮定する。Ｂを符号化ユニットを単位にする各々のデータブロックのサイズ、Ｒを速度制御プロトコルによってパケットが送信される速度、ＲＴＴを送信および受信エンドシステム間の往復時間、そして、Ｎ＝Ｒ＊ＲＴＴとする。そして、Ｘを全てのアクティブブロックで等しい定数とする。一般には、これらのパラメータは、データ転送の間動的に変化することができるが、この例では、全てが固定であり、Ｂ≧Ｎであるとみなす。
【００７２】
パケット損失が送信機および受信機の間にないと仮定する。その場合、基本送信インターリーブ信頼度制御プロトコルが最も初期のアクティブブロックのＢ＋Ｘ個の符号化ユニットを送信した後、基本受信インターリーブ信頼度制御プロトコルから最も初期のブロックを回復完了したことを指示する受信応答を受信するまで次のブロックの符号化ユニットを送信する。この時点で、基本送信インターリーブ信頼度制御プロトコルは最も初期のアクティブブロックを非アクティブ化する。そして、いくつかの符号化ユニットがすでに送られた次のアクティブブロックが最も初期のアクティブブロックになり、次のブロックがアクティブ化される。そのため、Ｂ＋Ｘ個の符号化ユニットが長さＢのブロックの回復に使用され、送信されたＸ個の符号化ブロックは無駄となる。一方、Ｂ≧Ｎの場合、図９のステップ１０１５に示される不等式を満たすアクティブブロックが常に存在することになる。そのため、グッドプットはＢ／（Ｂ＋Ｘ）であるのに、２つのアクティブブロックがある場合、バッファの総サイズは２＊Ｂである。例えば、符号化ユニットのサイズが１キロバイト、レートＲが１秒につき１，０００個の符号化ユニット（＝１メガバイトの／秒＝８メガビット／秒）そして、ＲＴＴが１秒であると仮定する。そのとき、Ｎ＝Ｒ＊ＲＴＴ＝１メガバイトである。ブロックのサイズをＢ＝１メガバイトＸを１０に設定する場合、グッドプットはおよそ（Ｂ／（Ｂ＋Ｘ））＝０．９９。すなわち、多くとも送信された符号化ユニットの１％が無駄になるだけであり、このときの総バッファサイズは２ＭＢに過ぎない。これは、この例において基本送信インターリーブ信頼度制御プロトコルにより２秒の時間遅延を生じることを意味する。このバッファサイズが同じ状況の送信ＴＦ信頼度制御プロトコルに比較し２５倍小さい点に注意する。
【００７３】
パケット損失がない上述の実施例においては、Ｘの値をゼロにセットされることもでき、グッドプットを１．０まで増加可能である。しかしながら、なんらかのパケット損失があるときには、Ｘ＞０と設定することにより重要な利点がある。たとえば、上記例において、１，０００個の符号化ユニットのうち多くても１０個が損失する場合、分析によりＸ＝１０により同じグッドプットおよびバッファサイズが達成されるが、Ｘ＝０の場合は必ずしもそうならないことが分かる。パケット損失がより可変的で未知であるとき、特にＢ個のパケットにつき消失するパケットの数がＸ個を超えることがありえるとき、基本インターリーブ信頼度制御プロトコルにより達成されるグッドプットおよびバッファサイズが、ＴＦ信頼度制御プロトコルまたは非コード信頼度プロトコルを使用して達成されることができるそれらに比較し定量的に非常に良好であることがわかる。
【００７４】
別の例として、送信レートを１秒当たりのＲ個のパケット、往復時間ＲＴＴは定数およびＮ＝Ｒ＊ＲＴＴを仮定する。各々のパケットが確率ｐで損失するように、パケット損失がランダムであると仮定する。さらに、各々のブロックｉのサイズＢ＿ｉはパケットを単位として同一のＣであり、それぞれのＸ＿ｉが同一の値Ｙであるとする。さらに、上述のプロトコルの変形において、必要なときに新規なブロックをアクティブ化する起動させるだけであるとする。最初のアクティブ化の時間から回復の肯定応答が受信機から受信されることにより非アクティブ化される時間までのブロックを考慮する。ブロックのＣ−Ｎ個のパケットが肯定応答される時間ｔに、Ｆ＝Ｎ＋Ｙ個のパケットが転送中で応答されていない。そして、送信機は受信機がブロックを完了するためにＮ＝Ｆ−Ｙ個のパケットを必要とすることを知っている。時間ｔ＋ＲＴＴで、時間ｔでブロックのために転送中であったＦ個のパケットの中で、（１−ｐ）＊Ｆ個のパケットが受信機により受信され、送信機は肯定応答を受信する。このように、時間ｔ＋ＲＴＴで送信機は、受信機が必要とする残りのパケットの数が現在Ｎ−（１−ｐ）＊Ｆ＝ｐ＊Ｆ−Ｙ個であり、転送中のパケットはｐ＊Ｆ個であるということを知っている。続いて、時間ｔ＋ｉ＊ＲＴＴで送信機は、受信機が必要とする残りのパケットの数がｐ＾ｉ＊Ｆ−Ｙであり、転送中のパケットの数がｐ＾ｉ＊Ｆ個であることを知っている。送信機が知っている受信機が必要とするということをパケットの数がゼロより小さくなるとブロックは完了する。そして、時間ｔ＋ｉ＊ＲＴＴで真となり、このときｉがｐ＾ｉ＊Ｆ−Ｙ＜＝０を満たす。この不等式が真であるｉの最小値は、ｉがおよそｌｎ（（Ｎ／Ｙ）＋１）／ｌｎ（１／ｐ）である時である。各ＲＴＴにおいて、（１−ｐ）＊Ｎ個のパケットが受信機により受信されるので、考慮するブロックを超えたデータストリームで送信プロトコルが有することができる最遠のもので、受信され肯定応答されるブロックは最高でも（ｌｎ（（Ｎ／Ｙ）＋１）／ｌｎ（１／ｐ））＊（１−ｐ）＊Ｎパケットであることを意味する。ｐの全ての値に対して（１−ｐ）／ｌｎ（１／ｐ）＜＝１であることを考慮すると、バッファサイズが最高でもＣ＋ｌｎ（（Ｎ／Ｙ）＋１）＊Ｎパケットの長さであることを意味する。もちろん、これは全て確率過程がその期待される挙動として正確にふるまうと仮定している、しかし、Ｙがあまり小さく無い場合これはプロトコルのふるまいについての大まかな考えを与える。この場合、グッドプットは、Ｃ／（Ｃ＋Ｙ）である。たとえば、ＲＴＴ＝１，Ｒ＝１，０００，Ｃ＝１，０００，Ｙ＝５０である場合、バッファサイズは多くても約４，０００であり、グッドプットは０．９５である。
【００７５】
上述した基本インターリーブ信頼度制御プロトコルの多くの変形は、本明細書を読んだ後に明らかでなければならない。例えば、上述したように、送信信頼度制御プロトコルが一度に２個以上のアクティブブロックを使用することもできる。そして、より複雑でより多くのアクティブブロックを扱う代価として、送信および受信信頼度制御プロトコルで使用するバッファサイズの全体量を低減可能とする可能性を持っている。
【００７６】
変形の他の実施例として、符号化ユニットがどのアクティブブロックから送信されることになっているかについて決定するために確率過程を使用することが有益でありえる。これは、パケット損失パターンが必ずしもランダムであるというわけではなくシステマチックでもよく、いくつかのブロックが決して回復されないが受信機にパケットを配送し続けているパケット損失パターンなどで、次に送信する符号化ユニットを選択するためいかなる決定論的な手順も使用される。たとえば、決定論的な手順が特定のアクティブブロックから符号化ユニットを送信するときは常にその符号化ユニットが失われ、他のいかなるアクティブブロックの符号化ユニットを送信するときは常に受信機に到達するような損失パターンを考慮する。そのため、この例では、受信機がまだ符号化ユニットを受信する場合であっても、受信機はアクティブブロックを決して回復しない。この種のシステマチックな損失を克服するために、どのアクティブブロックから次の符号化ユニットを送信するかをランダム化する送信信頼度制御プロトコルは有利である。これを達成する１つのシンプルな方法は、送信信頼度制御プロトコルのために送信されるＱ個の符号化ユニットの束を一緒にバッファリングして、ランダムな順に各々の束のＱ個の符号化ユニットを送信する。また、より高度な方法も使用され、例えば、送信される各々の符号化ユニットについて、次の時点で送信される符号化ユニットに、例えば、回数が多いほど選択されなくなるような動的に変化している確率を割り当てる。他の変形は基本送信インターリーブ信頼度制御プロトコルの図１０に示すステップ１０２０への変更であり、送信される符号化ユニットがステップ１０１５の状態を満たすアクティブブロックの中からランダムに生成される（以前のアクティブブロックに適切であり、時間とともに動的に変化できる適切に選ばれた確率分布を使用する）。
【００７７】
いつアクティブブロックｉのための符号化ユニットを送信するかについて決定するためにパラメータＸ＿ｉを用いる場合、転送の間、Ｘ＿ｉを調整する多くの変形方法がある。１つの実施例は、Ｘ＿ｉを固定値にして、転送全体にわたってその値を維持することである。たとえば、Ｘ＿ｉは、ゼロまたは１０のようないくつかの他の固定値にセットしてもよい。他の実施例は、アクティブブロックｉの符号化ユニットの転送の開始時はＸ＿ｉを固定値として、符号化ユニットが送信されるたびにＸ＿ｉを増加させ、アクティブブロックｉから符号化ユニットを送信する条件は満たされない。Ｘ＿ｉが増加させる多くの変形方法がある。例えば、Ｘ＿ｉは、最初のＮ回はゼロ増加するが、次ではＮ／Ｂだけ増加する。いくつかのステップで、Ｘ＿ｉの増加を負とすることもまた可能である。
【００７８】
他の変形として、基本インターリーブ信頼度制御プロトコルにて説明したように、各々のアクティブブロックｉのパラメータＸ＿ｉを使用するだけでなく、１つは符号化ユニットが特定のアクティブブロックから送られなければならないか否か、決定する他の方法を使用することである。たとえば、パケット損失率の平均は維持される場合、アクティブブロックから送られることが可能である符号化ユニットの数は最近のパケット損失率が現在のパケット損失率のための良好な予測手段であるという仮定に基づいて決定することが出来る。たとえば、平均損失率が現在ｐである場合、状態がＬ＿ｉ＋Ｘ＿ｉ／（１−ｐ）−Ｕ＿ｉ＊（１−ｐ）＞０であるために、１つの方法は基本送信インターリーブ信頼度制御プロトコルの図１０に示すステップ１０１５を変更を加えることである。この特定の選択の正当性はアクティブブロックｉのＵ＿ｉ符号化ユニットが転送中の場合、割合１−ｐだけが基本受信インターリーブ信頼度制御プロトコルに到着するということにある。そして、Ｘ＿ｉ／（１−ｐ）個の付加的なパケットが送信される場合、Ｘ＿ｉ個が基本受信インターリーブ信頼度制御プロトコルに到着する。このように、全体平均として、基本受信インターリーブ信頼度制御プロトコルはアクティブブロックｉのＢ＿ｉ＋Ｘ＿ｉ個の符号化ユニットを受信する。そして、Ｘ＿ｉ付加的な符号化ユニットの値は、ブロックを回復するために符号化ユニットの充分な数の伝送のための受信応答に従い回避するパケット損失率の変わりやすさを考慮して十分な値がセットされる。
【００７９】
インターリーブ信頼度制御プロトコルの他の変形は、受信機においてパケットが送信された順番を同じ順番で到着していない可能性を考慮する。そのため、ブロックから受信される最も高いシーケンス番号が同一であっても、受信機からの次の受信応答は前の受信応答より所与のアクティブブロックのための符号化ユニットの数より大きい数として報告されてしまう。このように、基本インターリーブ信頼度制御プロトコルの論理は、追加注文されたパケットを考慮するため、送信機および受信機において、変更を加えられることが可能である。
【００８０】
前述のように、図１０で示す基本送信インターリーブ信頼度制御プロトコルのステップ１０２５は、通常、各時点で少なくとも一つのアクティブブロックが状態１０１５を満たすように適切にパラメータをセットすることにより回避される。ステップ１０２５の変形はどのアクティブブロックが符号化ユニットを生成して送信するように選択されるかにより変化する。たとえば、アクティブブロックはステップ１０２５において、ランダムに選択することが出来、または、アクティブブロックの一群で循環して選択することが出来る。
【００８１】
図１０のステップ１０４５は、最も初期のアクティブブロックが非アクティブ化されるとすぐに次のブロックがアクティブ化されることを示している。最新の現在のアクティブブロックを超えてあるブロックから符号化ユニットを送る時であるときに、総バッファサイズおよびそれに伴う時間遅延を低減できる変形は次のブロックをアクティブ化させるだけである。
【００８２】
上記の通り、基本インターリーブ信頼度制御プロトコルは、暗にいかなる時もアクティブブロックの数は固定されている仮定する。変形はアクティブブロックの数がデータが、送信時に利用可能な速度、どのくらいパケットロスが発生しているか、パケット送信レートの変化しやすさなどを含む種々の要因に従い変化できることである、そして、例えば、パケット損失が少なく送信レートが低いとき、アクティブブロックの数は少ない状態に保持される。しかし、パケット損失が増加するか送信レートが増加するとき、アクティブブロックの数は一時的に多くなりうる。そのため、バッファおよび時間遅延は、プロトコルが動作している状況に従い動的に変化する。
【００８３】
アクティブブロックの数が固定であっても、アクティブブロックの集約した大きさは可変でありうる。この場合、各々の次のアクティブブロックのサイズは前のブロックと異なる。たとえば、データ有効レートが増大するとき次のアクティブブロックのサイズは増加する。そして、送信速度が増加するとき、次のアクティブブロックのサイズは増加する。各々のアクティブブロックの長さは時間の関数であってもよい。例えば、新規なブロックが形成される前に多くの時間が経過可能となるよう、長さの関数であってもよい。すなわち、すなわち、各々のブロックが非常に長くてもよいし、これらおよび他の要素の組合せであってもよい。
【００８４】
１つのブロックの終了および次のブロックの始まりはインターリーブ信頼度制御プロトコルによって、自動的に決定することができ、それは、アプリケーションまたはこれらおよび他の要素のいくつかの組合せにより決定することができる。たとえば、データストリームのブロックはＭＰＥＧストリームにおける、ピクチャ群（ＧＯＰ）ブロックまたはＩフレームなどのアプリケーションの論理的意味を有してもよい。そして、このように、インターリーブ信頼度制御プロトコルがデータのストリームをブロックに区切る方法は論理的アプリケーションブロックの境界を反映してもよい。また、アプリケーションがインターリーブ信頼度制御プロトコルにブロック境界を指示してもよい。インターリーブ信頼度制御プロトコルは可能な限りのこれらの境界を反映しようとするが、アプリケーションにより指示されるそれら位置以外でブロック境界を作ることも可能である。
【００８５】
インターリーブ信頼度制御プロトコルの他の変形は、全てのブロックを確実に順番に受信機に対して配信するのではなく、その代わりに他の制約条件を前提としてこの目的を達成するために同じく可能な限りトライすることを許すプロトコルである。たとえば、ストリーミングアプリケーションにおいて、データのストリームをできる限り確実に配信することが重要であるが、例えばデータストリーム上のタイミング制約条件などの他の制約条件がある。たとえば、それは、特定の時間以後データの一定部分がもはや関係ない条件であり、あるいは、インターリーブ信頼度制御プロトコルにより生じる時間遅延をどの程度許容できるかという強い限度がある。例えば、インタラクティブな映像会議アプリケーションがそうである。これらの場合、送信インターリーブ信頼度制御プロトコルと受信インターリーブ信頼度制御プロトコルはそれらが完全に回復される前にいくつかのブロックがスキップされうるよう変更を加えられうる。たとえば、送信インターリーブ信頼度プロトコルは、アクティブブロックが所与の時間だけアクティブ化可能なよう制限されうる。または、それがもはやブロックの符号化ユニットを送ることは許されないアプリケーションにより出力される各々のブロックのための時間制約条件を有することができる。または、それは各々のブロックの符号化ユニットの提供された最大数だけ送信可能である。または、これらの制約条件のいかなる組合せもありうる。類似した制約条件を、受信インターリーブ信頼度制御プロトコルに適用してもよい。これらのアプリケーションのために、インタリーブされた信頼度制御プロトコルは、これらの制約条件を反映するために変更を加えられることが可能である。
【００８６】
インタリーブ信頼度制御プロトコルのいくつかの変形において、１台の送信機および１つの受信機がある。１台の送信機および多数の受信機、１つの受信機および多数の送信機、多数の送信機および多数の受信機などの他の変形を含むが、これに限定されるものではない。送信チャネルがブロードキャストまたはマルチキャストチャネルである１つの送信機／多数の受信機の変形において、送信機が各々のアクティブブロックｉの計算のために、たとえばＲｉを図１０のステップ１０１０の任意の受信機から受信された肯定応答された符号化ユニットの最小数とするよう送信信頼度制御プロトコルに変更を加えることができる。１つの送信機／多数の受信機の他の実施例として、送信機が別々のパケットストリームを各々の受信機に送信する場合、以下のように送信信頼度制御プロトコルに変更を加えることが出来る。送信機が各々のアクティブブロックｉ各々の受信機ｊに対応するＲ＿ｉｊの値をアクティブブロックｉの受信機ｊから受信された肯定応答された符号化ユニットの数とし、図１０のステップ１０１０でＬｊｊ＝Ｂｉ−Ｒｉｊを計算し、Ｕ＿ｉｊを受信機ｊに送信したアクティブブロックｉのうちまだ応答されていない符号化ユニットの数とし、ステップ１０１５の状態を、Ｌ＿ｉｊ＋Ｘ＿ｉ−Ｕ＿ｉｊ＞０を満たすいくつかの受信機ｊについてアクティブブロックｉがあるかどうかを決定することに変更する。別の例として、多数の送信機／１つの受信機の変形があり、受信機が、多数の送信機から並行して同一あるいは異なるアクティブブロックの符号化ユニットを受信し、ブロードキャストかマルチキャストチャネルによって全ての送信機に受信応答を送信し、あるいは、各々の送信機に対する潜在的に別々の受信応答を別々のパケットストリームを使用して送信するよう、受信信頼度制御プロトコルは変更を加えられる。別の例として、多数の送信機／多数の受信機の変形があり、変更を加えられたステップは、上述した１つの送信機／多数の受信機の場合と多数の送信機／１つの受信機を混合したものである。
【００８７】
他の変形は、送信機が並行して複数の送信データストリームを送信する場合であり、各々が別々の送信インターリーブ信頼度制御プロトコル、あるいは、異なるデータストリームを考慮可能なバージョンの送信インターリーブ信頼度制御プロトコルを使用している。例えば、全てのストリームの全てのパケットの合計の送信速度は制限されうるため、送信機は他に対していくつかのデータストリームにたいし優先させる。同様に、受信機は、複数のデータストリームを並行して受信していることができ、各々は別々の受信インターリーブ信頼度制御プロトコル、あるいは、異なるデータストリームを考慮可能なバージョンの受信インターリーブ信頼度制御プロトコルを使用している。すなわち、全てのストリームの全てのパケットの合計の受信速度は制限されうるため、送信者は他に対していくつかのデータストリームの受信パケットおよび処理で送信する受信応答の受信を優先させる。
【００８８】
上記の変形のいずれかは、お互いに結合することができる。たとえば、タイミングおよび／または帯域幅制限のためいくつかのブロックを受信機に確実に配信されることができないプロトコルは、多数の送信機／多数の受信機の変形と組み合わせて使用することが出来る。
【図面の簡単な説明】
【００８９】
【図１】本発明の教示を使用する送信エンドシステムおよび受信エンドシステムのネットワークの実施例のブロック図である。
【図２】モジュラ高信頼転送プロトコルアーキテクチャおよびこの種のプロトコルを使用して動作する関連システムの図である。
【図３】送信ＦＥＣベース信頼度制御プロトコルアーキテクチャおよびこの種のプロトコルを使用して動作する関連システムの例示図である。
【図４】受信ＦＥＣベース信頼度制御プロトコルアーキテクチャおよびこの種のプロトコルを使用して動作する関連システムの例示図である。
【図５】ＴＦ信頼度制御プロトコルを実装しているシステムによって使用可能なフォーマットセットの１つである。
【図６】送信ＴＦ信頼度制御プロトコルを実装しているシステムの論理ブロック図である。
【図７】受信ＴＦ信頼度制御プロトコルを実装しているシステムの論理ブロック図である。
【図８】アクティブブロックの図である。
【図９】インターリーブ信頼度制御プロトコルによって使用可能なフォーマットセットの図である。
【図１０】基本送信インターリーブ信頼度制御プロトコルを実装しているシステムの論理実施例の例示図である。
【図１１】基本受信インターリーブ信頼度制御プロトコルを実装しているシステムの論理実施例の例示図である。
【図１】
2007508750.tif 000003
【図２】
2007508750.tif 000004
【図３】
2007508750.tif 000005
【図４】
2007508750.tif 000006
【図５】
2007508750.tif 000007
【図６】
2007508750.tif 000008
【図７】
2007508750.tif 000009
【図８】
2007508750.tif 000010
【図９】
2007508750.tif 000011
【図１０】
2007508750.tif 000012
【図１１】
2007508750.tif 000013
【国際調査報告】
2007508750.tif 000014
2007508750.tif 000015