(57)【特許請求の範囲】
【請求項１】
複数の受信者にデータを同報送信するステップと、
前記受信者からの前記送信されたデータに対する返信メッセージの最大メッセージ長およびバックオフタイムを計算するステップと、
前記最大メッセージ長およびバックオフタイムを前記受信者に送信するステップと、
前記バックオフタイム内の任意の時間に発せられ、前記最大メッセージ長以下のメッセージ長を有する前記各受信者からの返信メッセージを受取るステップと、
を含むデータ通信方法。
【請求項２】
前記最大メッセージ長およびバックオフタイムの計算ステップにおいて、前記各受信者からの返信メッセージの総量を予定し、前記総量を前記受信者の数で除した値により前記最大メッセージ長を、前記総量を通信径路の帯域巾で除した値により前記バックオフタイムを計算する請求項１記載のデータ通信方法。
【請求項３】
前記返信メッセージからヘッダ長を除いたデータの総量は、前記データの送信ブロック数から計算される請求項２記載のデータ通信方法。
【請求項４】
前記返信メッセージは、受信確認メッセージまたは再送要求メッセージであり、
前記最大メッセージ長Ｌｒｍは、Ｌｒｍ＝Ｌｈ＋Ｆ（Ｎｓｂ）×ＭＬｎａｃ／Ｎｒ、の計算式、
前記バックオフタイムＴｂｏは、Ｔｂｏ＝Ｌｒｍ×Ｎｒ／ＢＷ、の計算式、
（ただし、Ｌｈは返信メッセージのヘッダ長、ＦはＮｓｂを変数とする任意の関数、Ｎｓｂは送信ブロック数、ＭＬｎａｃはブロックあたりの平均再送要求メッセージ長、Ｎｒは受信者数、ＢＷは通信径路の帯域巾である）、
に基づいて計算される請求項３記載のデータ通信方法。
【請求項５】
Ｆ（Ｎｓｂ）＝Ｃ×Ｎｓｂ、（ただしＣは定数）、
である請求項４記載のデータ通信方法。
【請求項６】
前記返信メッセージに対しその最大値がＬｐｍａｘおよびその最小値がＬｐｍｉｎである許容メッセージ長が定められ、
前記最大メッセージ長ＬｒｍがＬｐｍａｘを超える場合にはＬｒｍ＝Ｌｐｍａｘに補正し、
前記最大メッセージ長ＬｒｍがＬｐｍｉｎ未満である場合にはＬｒｍ＝Ｌｐｍｉｎに補正し、
前記最大メッセージ長Ｌｒｍが、前記データの消失ブロックの組合せにより前記返信メッセージのメッセージ長が最も長くなる場合のメッセージ長Ｌｗｏｒｓｔを超える場合には、Ｌｒｍ＝Ｌｗｏｒｓｔ、に補正する請求項４記載のデータ通信方法。
【請求項７】
前記返信メッセージには再送要求メッセージを含み、
前記再送要求メッセージには、受信されなかった前記データの一部についての再送要求のみを含む請求項１記載のデータ通信方法。
【請求項８】
前記再送要求は、受信されなかった前記データからランダムに抽出されたブロックについて行われる請求項７記載のデータ通信方法。
【請求項９】
データを受信するステップと、
前記データの受信に対する返信メッセージの最大メッセージ長およびバックオフタイムを受信するステップと、
前記データのうち受信できなかったブロックについて、前記最大メッセージ長の範囲内で前記返信メッセージを生成するステップと、
前記バックオフタイムの範囲内でランダムに前記返信メッセージの発信タイミングを生成するステップと、
前記発信タイミングで前記返信メッセージを発信するステップと、
を有するデータ通信方法。
【請求項１０】
前記受信できなかったブロックのうち、前記返信メッセージに含める再送要求ブロックは、ランダムに抽出される請求項９記載のデータ通信方法。
【請求項１１】
送信または受信される前記データのブロックは、複数分割されたオリジナルブロックと前記オリジナルブロックから生成される複数のパリティブロックとを含むクラスタであり、
前記返信メッセージに含められる再送要求は、前記クラスタごとの必要パリティブロック数である請求項１または９記載のデータ通信方法。
【請求項１２】
複数の受信者にデータを同報送信する手段と、
前記受信者からの前記送信されたデータに対する返信メッセージの最大メッセージ長およびバックオフタイムを計算する手段と、
前記最大メッセージ長およびバックオフタイムを前記受信者に送信する手段と、
前記バックオフタイム内の任意の時間に発せられ、前記最大メッセージ長以下のメッセージ長を有する前記各受信者からの返信メッセージを受取る手段と、
を含むデータ通信システム。
【請求項１３】
前記最大メッセージ長およびバックオフタイムの計算手段において、前記各受信者からの返信メッセージの総量を予定し、前記総量を前記受信者の数で除した値により前記最大メッセージ長を、前記総量を通信径路の帯域巾で除した値により前記バックオフタイムを計算する請求項１２記載のデータ通信システム。
【請求項１４】
前記返信メッセージからヘッダ長を除いたデータの総量は、前記データの送信ブロック数から計算される請求項１３記載のデータ通信システム。
【請求項１５】
前記返信メッセージは、受信確認メッセージまたは再送要求メッセージであり、
前記最大メッセージ長Ｌｒｍは、Ｌｒｍ＝Ｌｈ＋Ｆ（Ｎｓｂ）×ＭＬｎａｃ／Ｎｒ、の計算式、
前記バックオフタイムＴｂｏは、Ｔｂｏ＝Ｌｒｍ×Ｎｒ／ＢＷ、の計算式、
（ただし、Ｌｈは返信メッセージのヘッダ長、ＦはＮｓｂを変数とする任意の関数、Ｎｓｂは送信ブロック数、ＭＬｎａｃはブロックあたりの平均再送要求メッセージ長、Ｎｒは受信者数、ＢＷは通信径路の帯域巾である）、
に基づいて計算される請求項１４記載のデータ通信システム。
【請求項１６】
Ｆ（Ｎｓｂ）＝Ｃ×Ｎｓｂ、（ただしＣは定数）、
である請求項１５記載のデータ通信システム。
【請求項１７】
前記返信メッセージに対しその最大値がＬｐｍａｘおよびその最小値がＬｐｍｉｎである許容メッセージ長が定められ、
前記最大メッセージ長ＬｒｍがＬｐｍａｘを超える場合にはＬｒｍ＝Ｌｐｍａｘに補正し、
前記最大メッセージ長ＬｒｍがＬｐｍｉｎ未満である場合にはＬｒｍ＝Ｌｐｍｉｎに補正し、
前記最大メッセージ長Ｌｒｍが、前記データの消失ブロックの組合せにより前記返信メッセージのメッセージ長が最も長くなる場合のメッセージ長Ｌｗｏｒｓｔを超える場合には、Ｌｒｍ＝Ｌｗｏｒｓｔ、に補正する請求項１５記載のデータ通信システム。
【請求項１８】
前記返信メッセージには再送要求メッセージを含み、
前記再送要求メッセージには、受信されなかった前記データの一部についての再送要求のみを含む請求項１２記載のデータ通信システム。
【請求項１９】
前記再送要求は、受信されなかった前記データからランダムに抽出されたブロックについて行われる請求項１８記載のデータ通信システム。
【請求項２０】
データを受信する手段と、
前記データの受信に対する返信メッセージの最大メッセージ長およびバックオフタイムを受信する手段と、
前記データのうち受信できなかったブロックについて、前記最大メッセージ長の範囲内で前記返信メッセージを生成する手段と、
前記バックオフタイムの範囲内でランダムに前記返信メッセージの発信タイミングを生成する手段と、
前記発信タイミングで前記返信メッセージを発信する手段と、
を有するデータ通信システム。
【請求項２１】
前記受信できなかったブロックのうち、前記返信メッセージに含める再送要求ブロックは、ランダムに抽出される請求項２０記載のデータ通信システム。
【請求項２２】
送信または受信される前記データのブロックは、複数分割されたオリジナルブロックと前記オリジナルブロックから生成される複数のパリティブロックとを含むクラスタであり、
前記返信メッセージに含められる再送要求は、前記クラスタごとの必要パリティブロック数である請求項１２または２０記載のデータ通信システム。
【請求項２３】
複数の受信者にデータを同報送信する機能と、
前記受信者からの前記送信されたデータに対する返信メッセージの最大メッセージ長およびバックオフタイムを計算する機能と、
前記最大メッセージ長およびバックオフタイムを前記受信者に送信する機能と、
前記バックオフタイム内の任意の時間に発せられ、前記最大メッセージ長以下のメッセージ長を有する前記各受信者からの返信メッセージを受取る機能と、
をコンピュータに実現させるためのプログラム。
【請求項２４】
データを受信する機能と、
前記データの受信に対する返信メッセージの最大メッセージ長およびバックオフタイムを受信する機能と、
前記データのうち受信できなかったブロックについて、前記最大メッセージ長の範囲内で返信メッセージを生成する機能と、
前記バックオフタイムの範囲内でランダムに返信メッセージの発信タイミングを生成する機能と、
前記発信タイミングで前記返信メッセージを発信する機能と、
をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
技術分野
本発明は、データ通信方法、データ通信システムおよびプログラムに関し、特に多数の受信者に同一内容のディジタルコンテンツを送付する同報通信において高い信頼性と高い処理速度および通信径路の有効利用を同時に実現できる通信方式に適用して有効な技術に関する。
背景技術
インターネット等ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）あるいはＵＤＰ／ＩＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を利用した同報データ通信では、送出パケット（データブロック）の消失に対処するため、受信者に受信確認要求を発し、受信者は受信確認（全パケットを受信した場合）あるいは再送要求（全パケットを受信できなかった場合）を返信する手法が用いられる。そして、返信メッセージを受取った送信者は再送要求を発した受信者に対して指定されたデータブロックを再送し、前記同様の受信確認要求を発する。このようにデータ送信および再送要求を繰り返すことにより最終的に全データが全ての受信者に受信されるようにし、データ通信の高い信頼性を担保することができる。
ところが、同報データ通信の場合、一人の送信者に対して複数の受信者が存在する。このため、送信者が受信確認要求を発した後に受信者からの返信メッセージが一時に集中する場合がある。返信メッセージの集中は他のアプリケーションの実行を阻害したり、通信径路のオーバーフローを引き起こし、場合によっては返信データの消失を生じたりする。
このような返信メッセージの集中を避けるためにバックオフタイムを設定する手法がとられる。つまり受信者の返信メッセージの送信タイミングをバックオフタイムを上限とするランダムな時間とすることによって返信のタイミングをずらす。返信の受信タイミングがバックオフタイムの範囲内でランダムになることによってトラフィックを分散し通信径路への負荷を低減して前記のような問題を回避する。
ところが、大規模な同報配信においては返信メッセージの総量が大きく、前記した返信タイミングの分散化手法だけでは十分に問題解決を図ることが困難である。すなわち、前記手法では受信者数に比例する返信総量の増加の問題と戻り回線の帯域が有効に利用できない問題が存在する。
送信ブロックの消失率（エラー率）は通信システムあるいはその時の環境等に依存するものであり、受信者数には関係しない。このためエラー率が一定であれば受信者数の増加に比例して消失ブロックの総数も増加する。消失ブロックの再送要求は返信メッセージに含めて送信者に返信されるので、消失ブロック総数が増加すればそれに従って返信メッセージの総量も増加する。従来の返信タイミングの分散化手法は単にタイミングをずらすだけであり、返信メッセージの総量を削減することはできない。
一方、従来のバックオフタイムは返信メッセージの総量を帯域巾で除した値で与えられる。返信メッセージの総量は平均返信メッセージ長と受信者数（返信メッセージを送付する者）の積であるから、バックオフタイムの計算のためには平均返信メッセージ長を仮定する必要がある。返信メッセージには再送要求が含まれ、再送要求には再送を要求するブロック番号が含まれることから、多くのブロックについて再送を要求する場合（つまりエラー率が高い場合）には返信メッセージ長が長くなる。逆にエラー率が低い場合には返信メッセージ長は短くなる。つまり返信メッセージ長はエラー率によって変化する。仮に、想定したエラー率よりも実際のエラー率が高かった場合には、平均返信メッセージ長が想定よりも長くなり、通信径路のトラフィックが混みあい場合によってはオーバーフローを引き起こす。逆に想定したエラー率よりも実際のエラー率が低い場合には平均返信メッセージ長が想定よりも短くなり通信径路帯域の有効な利用を図れない事態を生じる。つまり実際にはより早く処理を完了できるにも関わらず必要以上のバックオフタイムを設定しているがために通信完了が遅れてしまう。なお、エラー率はたとえば衛星放送の場合、天候によって１０％から０．０１％の範囲で変化し得るものであり、予め最適なエラー率を仮定することは現実的には困難である。
本発明の目的は、同報通信における返信メッセージの総量を削減する技術を提供することにある。また、本発明の目的は、予めエラー率を仮定することなく、通信径路の帯域を有効に活用する技術を提供することにある。さらに本発明の目的は、同報通信の高信頼性、高効率化を図る技術を提供することにある。
なお、返信メッセージの集中を分散化する手法に、再送要求の収集をより短い送信ブロックごとに行う手法がある。しかしこの手法ではヘッダを含めた再送要求の総量が逆に増加する問題がある。また、返信メッセージの総量を削減する手法に、返信メッセージを同報配信し、この返信メッセージを受けた受信者が自己の返信メッセージに含まれる要素を削減する方法がある。しかしこの方法では各受信者が同報配信可能なシステムを有する必要がありまた衛星システムなどの場合には遅延による配信時間の増大の問題がある。あるいは他の総量削減手法に、たとえば木構造のネットワークトポロジを用いて中間ノードに位置する受信者が返信メッセージをまとめることにより重複要素を削減する方法がある。しかしこの方法ではトポロジに制限を受ける問題がある。本発明は、これら制限を受けることなしに前記目的を達成するものである。
発明の開示
本願の発明の概略を説明すれば、以下の通りである。すなわち、本発明のデータ通信方法は、複数の受信者にデータを同報送信するステップと、受信者からの送信されたデータに対する返信メッセージの最大メッセージ長およびバックオフタイムを計算するステップと、最大メッセージ長およびバックオフタイムを受信者に送信するステップと、バックオフタイム内の任意の時間に発せられ、最大メッセージ長以下のメッセージ長を有する各受信者からの返信メッセージを受取るステップと、を含む。本発明のデータ通信方法によれば、送信者が送信あるいは返信ごとに最適な返信メッセージの最大メッセージ長およびバックオフタイムをダイナミックに計算する。そしてこれを受信者に通知し、受信者はこの最大メッセージ長の範囲内で返信メッセージを生成し、指定されたバックオフタイム内でランダムに返信メッセージを送信する。これにより通信径路の帯域使用の無駄を省き、最適な状態で通信径路を使用することによりデータ通信を効率化することができる。
最大メッセージ長およびバックオフタイムの計算は、各受信者からの返信メッセージの総量を予定し、総量を受信者の数で除した値により最大メッセージ長を、総量を通信径路の帯域巾で除した値によりバックオフタイムを計算する。また、返信メッセージからヘッダ長を除いたデータの総量は、データの送信ブロック数に比例させる。つまり、返信メッセージに含まれる再送要求は、重複を除けば送信ブロック数を超えることはない。したがって、返信メッセージに含まれる再送要求の重複を抑えることにより、再送要求の総量を高々送信ブロック数程度に制限することができる。一方、各受信者に割り当てられる返信メッセージ長は必要な長さに達しない場合がある。この場合、各受信者は本来返信すべきメッセージの一部を返信する。この返信メッセージから漏れた再送要求は、他の受信者の返信メッセージに含まれる場合もあるので、この他の受信者からの返信メッセージによる再送に期待することができる。これにより全受信者からの全再送要求を受け付ける必要はなくなり返信メッセージの総量を削減することができる。
また、返信メッセージが、受信確認メッセージまたは再送要求メッセージである場合、最大メッセージ長Ｌｒｍは、Ｌｒｍ＝Ｌｈ＋Ｆ（Ｎｓｂ）×ＭＬｎａｃ／Ｎｒ、バックオフタイムＴｂｏは、Ｔｂｏ＝Ｌｒｍ×Ｎｒ／ＢＷ、の計算式（ただし、Ｌｈは返信メッセージのヘッダ長、ＦはＮｓｂを変数とする任意の関数、Ｎｓｂは送信ブロック数、ＭＬｎａｃはブロックあたりの平均再送要求メッセージ長、Ｎｒは受信者数、ＢＷは通信径路の帯域巾である）に基づいて計算される。Ｆ（Ｎｓｂ）には、Ｆ（Ｎｓｂ）＝Ｃ×Ｎｓｂを例示できる。
なお、返信メッセージに対して別途定義された許容メッセージ長がある場合には、その最大値および最小値を各々Ｌｐｍａｘ、Ｌｐｍｉｎとし、最大メッセージ長ＬｒｍがＬｐｍａｘを超える場合にはＬｒｍ＝Ｌｐｍａｘと補正し、最大メッセージ長ＬｒｍがＬｐｍｉｎを未満である場合にはＬｒｍ＝Ｌｐｍｉｎに補正することができる。たとえば、ヘッダ長に比して内容メッセージの長さが短い場合にはメッセージ伝送の効率が低くなる。逆にメッセージ長がプロトコルの許容する範囲を超える場合には分割する必要が生じ、同様に伝送効率が低下する。このため適正な許容メッセージ長が定められる場合があり、このような場合に上記補正を適用できる。また、最大メッセージ長Ｌｒｍが、ブロック消失の組合せの中で返信メッセージが一番長くなる時のメッセージ長Ｌｗｏｒｓｔを越える場合には、Ｌｒｍ＝Ｌｗｏｒｓｔと補正することができる。ＬｗｏｒｓｔはＮｓｂ×ＭＬｎａｃで代用することができる。これにより、不要な長さの返信メッセージの生成を避けることができる。
また、返信メッセージに含む再送要求メッセージには、受信されなかったデータの一部についての再送要求のみを含むことができる。つまり返信メッセージには再送要求の一部を含む場合がある。この場合、再送要求は、受信されなかったデータからランダムに抽出されたブロックについて行うことができる。これによりある受信者からの再送要求に漏れた未受信ブロックが他の受信者の再送要求に含まれる確率が増し、短い繰り返しで全ブロックを受信できる確率が増す。
また、本発明のデータ通信方法は、データを受信するステップと、データの受信に対する返信メッセージの最大メッセージ長およびバックオフタイムを受信するステップと、データのうち受信できなかったブロックについて、最大メッセージ長の範囲内で返信メッセージを生成するステップと、バックオフタイムの範囲内でランダムに返信メッセージの発信タイミングを生成するステップと、発信タイミングで返信メッセージを発信するステップと、を有する。本データ通信方法によれば、前記した送信者の期待に適合した返信メッセージを送信できる。
なお、受信できなかったブロックのうち、返信メッセージに含める再送要求ブロックは、ランダムに抽出される。
前記データ通信方法において、送信または受信されるデータのブロックは複数分割されたオリジナルブロックとオリジナルブロックから生成される複数のパリティブロックを含むクラスタであり、返信メッセージに含められる再送要求は、クラスタごとの必要パリティブロック数とすることができる。すなわちＦＥＣ（Ｆｏｒｗａｒｄ  Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ）を使用する場合も本発明を利用できる。
なお、本発明の方法は、システムあるいはプログラムとして把握することも可能である。
発明を実施するための最良の態様
以下、本発明の実施の形態を図面に基づいて詳細に説明する。ただし、本発明は多くの異なる態様で実施することが可能であり、本実施の形態の記載内容に限定して解釈すべきではない。なお、実施の形態の全体を通して同じ要素には同じ番号を付するものとする。
以下の実施の形態では、主に方法またはシステムについて説明するが、当業者であれば明らかなとおり、本発明はコンピュータで使用可能なプログラムとしても実施できる。したがって、本発明は、ハードウェアとしての実施形態、ソフトウェアとしての実施形態またはソフトウェアとハードウェアとの組合せの実施形態をとることができる。プログラムは、ハードディスク、ＣＤ−ＲＯＭ、光記憶装置または磁気記憶装置等の任意のコンピュータ可読媒体に記録できる。
また以下の実施の形態では、発信者および受信者のシステムとして、一般的なコンピュータシステムを用いることができる。実施の形態で用いることができるコンピュータシステムは、中央演算処理装置（ＣＰＵ）、主記憶装置（メインメモリ：ＲＡＭ）、不揮発性記憶装置（ＲＯＭ）、コプロセッサ、画像アクセラレータ、キャッシュメモリ、入出力制御装置（Ｉ／Ｏ）等、一般的にコンピュータシステムに備えられるハードウェア資源を備える。また、ハードディスク装置等の外部記憶装置、インターネット等のネットワークに接続可能な通信手段を備えることができる。コンピュータシステムには、パーソナルコンピュータ、ワークステーション、メインフレームコンピュータ等各種のコンピュータが含まれる。さらにインターネット等の通信網に接続するための適当な通信手段を有している。
図１は、本発明の一実施の形態であるデータ通信システムの一例を示した図である。本データ通信システムでは、送信者１のシステムから受信者２のシステムに同報データが送信される。同報データはインターネット、イントラネット等のＷＡＮ／ＬＡＮ３を介し、またルータ４で送信先がルーティングされて送信者１から受信者２にデータが送信される。図示するようにＷＡＮ／ＬＡＮ３は任意に接続され、また、ルータ４も任意にネットワーク内に配置できる。つまり本実施の形態のシステムはネットワークトポロジに特に制限を受けない。なお、ここではネットワークとしてインターネットあるいはイントラネットを例示したがこれに限られない。専用線等を介して送信者１と受信者２が相互に接続されても良い。
図２は、本実施の形態のデータ通信の概要を示した概念図である。送信者１から受信者２に送信される同報データは、送信回線５を介して送信される。受信者２が複数存在する場合でも送信者１は１回の送信行為で複数受信者に同報送信が可能である。本実施の形態では、送信の信頼性を高めるため、各受信者２からの返信メッセージを受取る。返信メッセージは戻り回線６を介して送信者１に返信される。なお、図示する送信回線５および戻り回線６は概念的なものであり、物理的な回線を示すものではない。たとえば図１の場合、ＷＡＮ／ＬＡＮ３およびルータ４とそれらを接続する物理的な回線が送信回線５および戻り回線６となる。
送信回線５を介して送信される同報データは、送信者１から同報送信されるコンテンツデータあるいは制御データである。また、受信確認要求、再送データも送信回線５を介して送信される。戻り回線６を介して返信される返信メッセージはたとえば受信確認あるいは再送要求である。返信メッセージは各受信者２から発送され、送信者１はその受信者の数だけ返信メッセージを受取ることになる。送信者１から受信者２への同報通信は以下のように行われる。まず、送信者１からブロック分割したコンテンツデータをパケットとして複数の受信者２に送信する。受信者２はこれを受信する。一般に通信回線ではエラーを生じるため、全パケットが受信者２に受信されるとは限らない。このため送信者１は受信確認要求をデータを送信した受信者２に発する。受信確認を受信した受信者２は、全パケットを受信している場合には受信確認（ＡＣＫ）メッセージを送信者１に返信する。消失パケットがある場合には受信者２は消失パケットの再送要求（ＮＡＣＫ）を送信者１に返送する。返信メッセージを受けた送信者１は受信確認を発した受信者２を除き、その他の受信者２に消失パケットの再送を行う。このような手順を全ての受信者２から受信確認を受取るまで繰り返す。これにより高い信頼性の同報通信を実現する。
なお、同報通信には、送信先（受信者２）が特定されているマルチキャスト通信と送信先が特定されないブロードバンドキャスト通信の双方の概念を含む。
図３は、本実施の形態のデータ通信方法の一例を示したフローチャートである。本実施の形態のデータ通信方法は、送信者１から各受信者２に割り当てる返信メッセージのメッセージ長とバックオフタイムを通知し、このメッセージ長およびバックオフタイムの条件に従った返信メッセージを各受信者２が生成しこれを送信することによって高信頼かつ高効率の通信を実現する点に特徴がある。
まず、送信者１は、送信データを生成する（ステップ１０）。送信データはコンテンツデータをブロックに分割し、各ブロックにヘッダを付加することによってパケットを生成する。なお、ここでブロックは再送要求されるデータの単位である。
次に、送信者１は生成したデータ（パケット）を複数の受信者２宛に送信する（ステップ１１）。データ送信の手法は公知である。送信されたデータは受信者２が受信する（ステップ１２）。なお、図示するフローチャートには一人の受信者のみを示しているが、受信者２が複数存在することは勿論である。また、各受信者によって受信されるパケットの数や何れのパケットが受信されるかが異なる場合があることも勿論である。
データを送信した送信者１は、その後返信メッセージ長の計算（ステップ１３）とバックオフタイムの計算（ステップ１４）を行う。返信メッセージ長およびバックオフタイムの計算では、返信が予想される受信者の数、送信したデータブロックの数、使用できる帯域巾、許容されかつ意味のある返信メッセージのサイズ等を考慮する。
すなわち、返信メッセージ長の計算においては、全受信者から返信される可能性のある再送要求の総量を考慮する。つまり、再送要求される可能性のあるブロック数は送信ブロック数を超えることはない。従来、受信者２が受信できなかった消失ブロックが存在すると、この消失ブロックの全てを再送要求に含め、他の受信者の要求とは独立に再送要求を発していた。このため、送信者１が受取る再送要求には重複するブロックの再送要求が結果的に多く含まれていたことになる。たとえば送信ブロック数を１万ブロック、エラー率を１％、受信者数を５０００と仮定すると、合計５０万ブロックについての再送要求を受けることになる。しかし実際に送信したブロック数は１万ブロックであるため、有効な再送要求は２％以下であると言える。つまり４９万ブロックについての再送要求は極論すればなくてもよいことになる。
そこで、本実施の形態では、全ての再送要求を受け付ける必要がなく、妥当な再送要求の総量が送信ブロック数程度であることを考慮して以下のように受信者あたりの再送要求（割り当て）を定める。
つまり、送信者の受取るべき再送要求ブロック数は、
（再送要求ブロック数）＝Ｃ×（送信ブロック数）
とする。Ｃは再送要求の有効率と再送の収集もれの確率をコントロールするパラメータである。たとえばＣが０．５の時には送信ブロックの半分の再送要求ブロックを集める。この場合、収集もれは５０％以上となるが再送要求の有効率は高くなる。一方Ｃが２の場合、送信ブロックの２倍の再送ブロックを集める。この場合収集もれの確率は下がるが、有効率は５０％以下になる。収集もれは後にも説明する様に次回の再送に含まれることを期待するが再送回数はできるだけ少ないことが好ましい。Ｃはネットワークの特性に合わせてできるだけ再送回数を少なくするように最適な値を選択する。
なお、再送要求ブロック数として、ここでは送信ブロック数に定数Ｃを掛ける例を示しているが、送信ブロック数に関連する任意の上限規制手段を採用できる。一般的には送信ブロック数を変数とする関数Ｆで表すことができる。つまり、
（再送要求ブロック数）＝Ｆ｛（送信ブロック数）｝
と表現できる。なおＦ｛ｘ｝は関数Ｆがｘの変数であることを示す。
前記のように送信者１が集めるべき再送要求ブロックの数を定めると、その総量（データ量）は、
（再送要求ブロックの総量）＝（再送要求ブロック数）×（ブロックあたりの平均再送要求長）
となる。これを受信者数で割れば受信者あたりに許容される再送要求のデータ量となる。
（受信者あたりの再送要求量）＝（再送要求ブロックの総量）／（受信者数）
通常返信メッセージにはヘッダが付されるので、前記受信者あたりの再送要求量にヘッダ長を加えた値が返信メッセージ長となる。
（返信メッセージ長）＝（ヘッダ長）＋（受信者あたりの再送要求量）
以上のようにして返信メッセージ長の計算が行える。
一方、送信者１に返信される返信メッセージの総量は、
（返信メッセージの総量）＝（返信メッセージ長）×（受信者数）
となる。よって、利用するネットワークの帯域巾を最適に利用できるバックオフタイムは、
（バックオフタイム）＝（返信メッセージの総量）／（帯域巾）
となる。以上のようにしてバックオフタイムの計算ができる。
上記を式で表すと、
Ｌｒｍ＝Ｌｈ＋Ｃ×Ｎｓｂ×ＭＬｎａｃ／Ｎｒ、
Ｔｂｏ＝Ｌｒｍ×Ｎｒ／ＢＷ、
ただし、Ｌｒｍは許容される返信メッセージ長、Ｌｈは返信メッセージのヘッダ長、Ｃは定数、Ｎｓｂは送信ブロック数、ＭＬｎａｃはブロックあたりの平均再送要求メッセージ長、Ｎｒは受信者数、Ｔｂｏはバックオフタイム、ＢＷは通信径路の帯域巾である。
なお、上記計算において、返信メッセージに再送要求以外のメッセージを含める場合にはこのメッセージの長さを返信メッセージに加えることは勿論である。また、受信確認は再送要求ブロック数が０の再送要求とみなせる。
以上のようにして計算した返信メッセージ長およびバックオフタイムを含めて、送信者１は受信確認要求（ＰＯＬＬ）を送信する（ステップ１５）。
受信者２は受信確認要求、返信メッセージ長およびバックオフタイムを受取り（ステップ１６）、受取った返信メッセージ長およびバックオフタイムの範囲内で返信メッセージを生成する（ステップ１７）。図４は、返信メッセージ生成の一例を示したフローチャートである。受信者２は、ステップ１２で受信したデータについて全ブロック（全パケット）を受信したかを判断し（ステップ３０）、全ブロックを受信していない場合（ステップ３０の判断がｎｏの場合）には、開始ブロック番号をランダムに生成する（ステップ３１）。次に返信メッセージにヘッダを付加し（ステップ３２）、再送要求ブロックの抽出を行う（ステップ３３）。再送要求ブロックは受信できなかったブロック（消失ブロック）である。また、抽出はステップ３１で生成した開始ブロック番号から開始する。すなわち、開始ブロック番号のブロックから消失ブロックであるか否かを判断し、消失ブロックの場合にはこれを抽出し（ステップ３３）、返信メッセージに返信要求ブロックとしてその番号を追加する（ステップ３４）。消失ブロックでない場合には次のブロックに抽出作業を移行する。
ステップ３５で次ブロックの番号を追加することにより指定された返信メッセージを超えるかを判断し（ステップ３５）、ｎｏの場合にはステップ３３に戻って再送要求ブロックの抽出を続行する。ステップ３５の判断がｙｅｓの場合（返信メッセージ長を超えると判断した場合）には処理を終了する（ステップ３７）。
一方、ステップ３０の判断がｙｅｓの場合（全ブロックの受信が完了している場合）は返信メッセージをヘッダ＋受信確認とし（ステップ３６）、処理を終了する（ステップ３７）。
以上のようにして返信メッセージを作成することにより指定された返信メッセージ長の範囲内で返信メッセージが生成できる。また、ステップ３１で開始ブロックをランダム生成することにより、各受信者が生成する再送要求ブロックの番号を適度に分散させることができる。これにより各受信者で返信メッセージに含めることができなかった消失ブロックが他の受信者に返信メッセージに含められる確率が高くなり、送信者１に返信される再送要求の有効率を高めることができる。なお、ここで有効率は、送信者１に返信される全再送要求ブロックのうち、重複を除いたものの割合である。
なお、ここでは各受信者の返信メッセージに含める再送要求ブロックを本来必要とする消失ブロックの中からランダムに抽出する手法として、前記のような開始ブロックをランダム生成しシーケンシャルに抽出する手法を説明したが、これに限られない。たとえば消失ブロックのリストを生成し、このリストからランダムに必要数のブロックを抽出しても良い。また、本実施の形態では返信メッセージに含める再送要求ブロックをランダム抽出する構成を説明しているが、本構成は本願の発明においては必須の事項ではない。ランダムに抽出しない場合、有効率が若干低下することもありえるが、消失ブロックは本来ランダムに生成されるので、前記抽出過程でランダマイズしなくともある程度の無作為化は期待できる。
次に、受信者２は指定されたバックオフタイムを上限としてランダムに返信タイミングを生成する（ステップ１８）。その後、前記返信タイミングで生成した返信メッセージを送信する（ステップ１９）。
このように受信者２から返信される返信メッセージはその長さが予め制限され、想定される受信者数から受信メッセージの総量が予定されている。そしてこの予定された全受信メッセージが最も効率良く受信できるようにバックオフタイムが設定されているので、通信回線のパフォーマンスを最大限に引き出し、過不足なく回線を利用して通信効率を高めることができる。すなわち、従来技術で問題となるような通信回線のオーバーフローや無用に長いバックオフタイム（通信回線の無利用）がない。しかも本実施の形態では通信のエラー率を仮定することなく有効に回線を利用できる。さらに各受信者からの返信メッセージには重複した再送要求ブロックができるだけ含まれないように構成されているので、返信メッセージの総量自体を削減している。よって本実施の形態のデータ通信方法は同報通信の受信者数が膨大なほどその効果が大きい。
返信メッセージは送信者１によって受信され（ステップ２０）、受信者は全受信者から受信確認（ＡＣＫ）を受取ったかを判断する（ステップ２１）。全受信者から受信確認を受領していない場合には再送要求ブロックを再送するべく、再送データを生成する（ステップ２２）。そしてステップ１１に戻って前記ステップを繰り返す。なお、再送データは受信確認を受領した受信者には再度送信しない。よって、再送対象の受信者は少なくなり、次にステップ１３で計算される返信メッセージ長が長くなり、また、次のステップ１４で計算されるバックオフタイムは短くなる。これにより再送回数が増すにしたがってタクトタイムがより短くなり、また再送要求ブロックの収集もれが少なくなる。すなわち本実施の形態における返信メッセージ長およびバックオフタイムは送信または返信ごとに動的に計算され、その都度最適な条件で制御される。
ステップ２１で全受信者からの受信確認が受領されたと判断されると、本実施の形態のデータ通信（同報通信）が終了する（ステップ２３）。
本実施の形態によれば、データ送信あるいは再送ごとに最適な返信メッセージ長およびバックオフタイムが計算され、この条件にしたがって各受信者が返信メッセージを生成する。すなわちデータ送信（返信）の都度最適な条件に制御される。このため通信回線を最適かつ有効に利用することができる。回線のオーバーフローや無利用の状態を生じず、高信頼かつ高効率な同報通信が実現できる。また、本実施の形態では受信者からの返信メッセージが制限されるので送信者が受取る返信メッセージの総量が削減される。これにより、戻り回線の負荷を低減することが可能になる。さらに、本実施の形態によれば、エラー率を仮定する必要がない。１回の再送要求収集量を制限することにより高いエラー率には再送回数の増加によって対応し、逆に低いエラー率での未使用帯域を最小限に抑制できるためである。
図５および６は、本実施の形態の場合と従来技術の場合のバックオフタイムをシミュレーションにより計算した結果を示すグラフである。縦軸を時間（単位は秒）、横軸は受信者数である。シミュレーションの条件は、送信データサイズが６０Ｍバイト、ブロックサイズを１ｋバイト、帯域巾を１Ｍｂｐｓ、実際のエラー率を１％、ヘッダ長を４２バイト、Ｃ＝１とした。なお、従来技術における想定エラー率は１０％とした。黒丸で示したプロットがデータ配信の累計時間である。データ配信にかかる時間は受信者数に関わらずほぼ一定である。一方、バックオフタイムの累計時間は受信者数の増加にしたがって増加するが、従来技術の場合（黒四角のプロットで示す）は受信者数１００００で約４５００秒もかかり、データ配信にかかる累計時間の４倍以上に達する。一方本実施の形態の場合（黒三角のプロットで示す）、バックオフタイムの累計時間はデータ配信時間に対して無視できる程度に小さい。図６は図５の縦軸を拡大して示したグラフである。受信者数１００００人において２０数秒の累計時間でしかない。このように本実施の形態のデータ通信方法では極めて顕著なバックオフタイムの削減が可能になっている。すなわち、本実施の形態によればトータルの通信時間がほとんどデータ配信時間のみで完了できる。特に受信者数が膨大になる大規模同報通信の場合にその効果が顕著に得られる。
また、図７は、本実施の形態の場合と従来技術の場合の再送要求（ＮＡＣＫ）累計をシミュレーションにより計算した結果を示すグラフである。シミュレーションの条件は前記と同様である。受信者の増加に従いＮＡＣＫ累計が増加するのは本実施の形態の場合と従来技術の場合で同じであるが、受信者１００００人の時従来技術（黒菱形のプロットで示す）が１３０００ｋバイトに達するのに対し、本実施の形態（黒四角のプロットで示す）では２０００ｋバイトでしかない。すなわち本実施の形態においては従来技術と比較して１／６程度にＮＡＣＫ量が削減される。
以上、本発明者によってなされた発明を発明の実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更することが可能である。
たとえば、図８に示すように、送信回線５を衛星放送によって実現しても良い。この場合、衛星４０、衛星送信設備４１、衛星受信設備４２がシステムに含まれる。また、戻り回線６はＬＡＮ／ＷＡＮ３を利用した地上線を用いることができる。あるいは、図９に示すように、衛星回線と地上線を組み合わせた送信回線を用いても良い。この場合戻り回線６は図８の場合と同様に地上線を用いることができる。
また、前記実施の形態では、再送要求の単位としてデータを分割したブロックを例示したが、これに限られない。たとえばＦＥＣを利用する場合、データをブロック分割したいくつかのオリジナルブロック（ｋ個）から複数のパリティブロックを生成し、これを併せてクラスタ（ｋ’個のブロックを含む（ｋ’＞ｋ））とし、クラスタを送信単位とする。この場合クラスタが再送要求単位であり、また再送要求にはブロック番号を含むのではなく、消失ブロック数に相当する数のパリティブロックの送信要求となる。
また、前記実施の形態では、送信者１から受信確認要求を発し、これを受信者２が受取った後に返信メッセージを生成する例を説明したが、受信確認要求はなくても良い。たとえばタイムアウト等所定の約束にしたがって、受信者が確認要求のための制御パケットを受取ることなく返信メッセージを送信（あるいはバックオフタイムのためのタイマーをスタートさせる）しても良い。また、バックオフタイム等のデータはデータパケットに組み込まれても良い。
また、前記実施の形態では、再送要求内でのブロックの特定方法としてブロック番号を例示しているがこれには限られない。たとえばビットマップ、ランレングス等その他再送ブロックを特定できる任意の表現方法が採用できることは勿論である。
本願で開示される発明のうち、代表的なものによって得られる効果は、以下の通りである。すなわち、同報通信における返信メッセージの総量を削減することができる。また、予めエラー率を仮定することなく、通信径路の帯域を有効に活用することができる。さらに、同報通信の高信頼性、高効率化を図る技術を提供できる。
【図面の簡単な説明】
図１は本発明の一実施の形態であるデータ通信システムの一例を示した図である。
図２は本発明の一実施の形態であるデータ通信の概要を示した概念図である。
図３は本発明の一実施の形態であるデータ通信方法の一例を示したフローチャートである。
図４は返信メッセージ生成の一例を示したフローチャートである。
図５は本実施の形態の場合と従来技術の場合のバックオフタイムをシミュレーションにより計算した結果を示すグラフである。
図６は図５の縦軸を拡大して示したグラフである。
図７は本実施の形態の場合と従来技術の場合の再送要求（ＮＡＣＫ）累計をシミュレーションにより計算した結果を示すグラフである。
図８はデータ通信システムの他の例を示した図である。
図９はデータ通信システムのさらに他の例を示した図である。
【図１】
0003808036.tif 000002
【図２】
0003808036.tif 000003
【図３】
0003808036.tif 000004
【図４】
0003808036.tif 000005
【図５】
0003808036.tif 000006
【図６】
0003808036.tif 000007
【図７】
0003808036.tif 000008
【図８】
0003808036.tif 000009
【図９】
0003808036.tif 000010