(57)【要約】 【課題】  現在の通信の状態に適した通信手法を用いる通信システム等を提供する。【解決手段】  所定の範囲内の値をとる通信パラメータ値に基づいて通信を行う通信システム１１の送信装置２１は、現在の通信パラメータ値と当該通信パラメータを更新するための差分値を記憶し、受信装置３１へ、伝送すべき情報を、通信パラメータ値に基づいて送信し、受信装置３１は、送信装置２１から送信された情報を受信し、当該情報が受信された際の受信品質を送信装置２１に報告し、送信装置２１において、受信装置３１から報告される受信品質を受け付け、通信パラメータ値と差分値について、受け付けられた受信品質が劣化した場合、当該差分値の符号を反転させ、当該通信パラメータ値と当該差分値の和が当該所定の範囲を超える場合、当該差分値の符号を反転させ、当該通信パラメータ値に、当該差分値を加算するように更新する。【選択図】  図１
2006279541.tif 000002
【特許請求の範囲】
【請求項１】
所定の範囲内の値をとる通信パラメータ値に基づいて通信する送信装置と受信装置を有する通信システムであって、
（ａ）前記送信装置は、
現在の通信パラメータ値と、当該通信パラメータを更新するための差分値と、が記憶される記憶部、
前記受信装置へ、伝送すべき情報を、前記記憶された通信パラメータ値に基づいて送信する送信部を備え、
（ｂ）前記受信装置は、
前記送信装置から送信された情報を受信する受信部、
前記受信部により当該情報が受信された際の受信品質を前記送信装置に報告する報告部を備え、
（ｃ）前記送信装置は、
前記受信装置から報告される受信品質を受け付ける受付部、
前記記憶部に記憶される通信パラメータ値と差分値について、
（１）前記受け付けられた受信品質が劣化した場合、当該差分値の符号を反転させ、
（２）当該通信パラメータ値と当該差分値の和が当該所定の範囲を超える場合、当該差分値の符号を反転させ、
（３）当該通信パラメータ値に、当該差分値を加算する
ように前記記憶部を更新する更新部、をさらに備える
ことを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムであって、
前記更新部は、差分値の符号を反転させる場合、反転させた後の差分値の絶対値として所定の初期値を用いる
ことを特徴とする通信システム。
【請求項３】
請求項１または２に記載の通信システムであって、
前記更新部は、前記受け付けられた受信品質が劣化しなかった場合、当該差分値の符号はそのままに、絶対値を増加させる
ことを特徴とする通信システム。
【請求項４】
所定の範囲内の値をとる通信パラメータ値に基づいて通信する送信装置と受信装置を有する通信システムにて実行される通信方法であって、前記送信装置は、記憶部、送信部、受付部、更新部を有し、前記受信装置は、受信部、報告部を有し、前記送信装置において、前記記憶部には、現在の通信パラメータ値と、当該通信パラメータを更新するための差分値と、が記憶され、
前記送信部が、前記受信装置へ、伝送すべき情報を、前記記憶された通信パラメータ値に基づいて送信する送信工程、
前記受信部が、前記送信装置から送信された情報を受信する受信工程、
前記報告部が、前記受信部により当該情報が受信された際の受信品質を前記送信装置に報告する報告工程、
前記受付部が、前記受信装置から報告される受信品質を受け付ける受付工程、
前記更新部が、前記記憶部に記憶される通信パラメータ値と差分値について、
（１）前記受け付けられた受信品質が劣化した場合、当該差分値の符号を反転させ、
（２）当該通信パラメータ値と当該差分値の和が当該所定の範囲を超える場合、当該差分値の符号を反転させ、
（３）当該通信パラメータ値に、当該差分値を加算する
ように前記記憶部を更新する更新工程
を備えることを特徴とする通信方法。
【請求項５】
２台のコンピュータの一方と他方を所定の範囲内の値をとる通信パラメータ値に基づいて通信させるプログラムであって、当該プログラムは、
（ａ）当該一方を、
現在の通信パラメータ値と、当該通信パラメータを更新するための差分値と、が記憶される記憶部、
当該他方へ、伝送すべき情報を、前記記憶された通信パラメータ値に基づいて送信する送信部として機能させ、
（ｂ）当該他方を、
当該一方から送信された情報を受信する受信部、
前記受信部により当該情報が受信された際の受信品質を当該一方へ報告する報告部として機能させ、
（ｃ）当該一方を、
当該他方から報告される受信品質を受け付ける受付部、
前記記憶部に記憶される通信パラメータ値と差分値について、
（１）前記受け付けられた受信品質が劣化した場合、当該差分値の符号を反転させ、
（２）当該通信パラメータ値と当該差分値の和が当該所定の範囲を超える場合、当該差分値の符号を反転させ、
（３）当該通信パラメータ値に、当該差分値を加算する
ように前記記憶部を更新する更新部、としてさらに機能させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現在の通信の状態に応じてこれに適した通信手法を用いることにより、通信を効率良く行う通信システム、送信装置、受信装置、通信方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【０００２】
従来から、送信装置と受信装置との間で通信を行う技術が種々提案されている。このような通信技術の応用例については、以下の文献に開示がある。
【特許文献１】特許第３４９６１４８号公報
【０００３】
一方で、ゲーム装置や携帯端末など、種々の能力を有する通信機器が普及するとともに、インターネットへの接続では、アナログモデムを使用する回線やＩＳＤＮ（Integrated Services Digital Network）回線、ＡＤＳＬ（Asymmetric Digital Subscriber Line）回線、ＣＡＴＶ（CAble TeleVision）回線ＦＴＴＨ（Fiber To The Home）回線など、各種の性能が異なる通信回線が利用されるとともに、各回線の通信環境は刻一刻と急激に変化するのが常である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このように、種々の通信媒体を利用する通信環境においては、通信手法を適応的に変化させ、できるだけ最適に近い通信環境で通信を行うような技術が望まれている。
【０００５】
本発明は、上記のような課題を解決するためになされたもので、現在の通信の状態に応じてこれに適した通信手法を用いることにより、通信を効率良く行う通信システム、送信装置、受信装置、通信方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００７】
本発明の第１の観点に係る通信システムは、所定の範囲内の値をとる通信パラメータ値に基づいて通信する送信装置と受信装置を有し、送信装置は、記憶部、送信部、受付部、更新部を有し、受信装置は、受信部、報告部を有し、以下のように構成する。
【０００８】
まず、送信装置において、記憶部には、現在の通信パラメータ値と、当該通信パラメータを更新するための差分値と、が記憶され、送信部は、受信装置へ、伝送すべき情報を、記憶された通信パラメータ値に基づいて送信する。
【０００９】
通信パラメータとしては、たとえば、ＵＤＰ等の到達確認がされないプロトコルにおける再送回数（あらかじめ複製を何個も送信する態様を含む）、チェックサムや誤り訂正符号の長さ、パケットサイズやウィンドウサイズなどが考えられる。また、差分値は、これらを改善するための値である。
【００１０】
一方、受信装置において、受信部は、送信装置から送信された情報を受信し、報告部は、受信部により当該情報が受信された際の受信品質を送信装置に報告する。
【００１１】
受信品質としては、全再送回数のうちどれだけの個数パケットが到着したか、チェックサムや誤り訂正符号を用いてパケット内の情報誤りがどれだけ存在し、どれだけ訂正されたか、パケットの到着にどれだけの時間がかかったか、などが考えられる。
【００１２】
さらに、送信装置において、受付部は、受信装置から報告される受信品質を受け付け、更新部は、記憶部に記憶される通信パラメータ値と差分値について、
（１）受け付けられた受信品質が劣化した場合、当該差分値の符号を反転させ、
（２）当該通信パラメータ値と当該差分値の和が当該所定の範囲を超える場合、当該差分値の符号を反転させ、
（３）当該通信パラメータ値に、当該差分値を加算する
ように記憶部を更新する。
【００１３】
すなわち、通信パラメータが所定の範囲に納まるように更新するのであるが、受信品質が向上している場合には、そのまま差分値を加算し、劣化したときは、差分値の符号を反転させてから加算する。これにより、通信環境が変化する場合であっても、できるだけその通信環境に合った値に収束するように、通信パラメータ値が更新されることとなる。
【００１４】
本発明によれば、適切な更新手法を採用することによって、通信状況に応じて通信パラメータを適応的に定めることができ、効率の良い通信を行うことができる。
【００１５】
また、本発明の通信システムにおいて、更新部は、差分値の符号を反転させる場合、反転させた後の差分値の絶対値として所定の初期値を用いるように構成することができる。
【００１６】
すなわち、更新の際に単に符号のみを反転させるのではなく、その絶対値がある初期値に等しくなるように符号を反転させて値も更新するのである。これにより、収束点付近で差分値が振動する場合にも、振動の幅を小さくおさえることができると期待される。
【００１７】
本発明によれば、通信状況に応じて通信パラメータを適応的に定める際に、収束点付近での通信パラメータの振動の幅をできるだけ抑制して、効率の良い通信を行うことができる。
【００１８】
また、本発明の通信システムにおいて、更新部は、受け付けられた受信品質が劣化しなかった場合、当該差分値の符号はそのままに、絶対値を増加させるように構成することができる。
【００１９】
絶対値の増加方法としては、たとえば、１より大きい定数（必ずしも整数でなくとも良い。）を乗じる、などの手法が考えられる。差分値に整数以外の乗数を用いる場合は、実際に使用する通信パラメータ値が整数である必要があれば、記憶部に記憶する場合には浮動小数点表現等の実数表現を用い、送信部で参照する際に切捨てや四捨五入すれば良い。
【００２０】
本発明によれば、通信状況に応じて通信パラメータを適応的に定める際に、性能が向上する間は通信パラメータの変化の幅を次第に大きくすることにより、できるだけ速く収束点付近に通信パラメータの値を近付けることが期待され、効率の良い通信を行うことができる。
【００２１】
本発明のその他の観点に係る送信装置は、上記通信システムにおける送信装置である。
【００２２】
本発明のその他の観点に係る受信装置は、上記通信システムにおける受信装置である。
【００２３】
本発明のその他の観点に係る通信方法は、所定の範囲内の値をとる通信パラメータ値に基づいて通信する送信装置と受信装置を有する通信システムにおいて実行され、送信装置は、記憶部、送信部、受付部、更新部を有し、受信装置は、受信部、報告部を有し、送信装置において、記憶部には、現在の通信パラメータ値と、当該通信パラメータを更新するための差分値と、が記憶され、送信工程、受信工程、報告工程、受付工程、更新工程を備え、以下のように構成する。
【００２４】
すなわち、送信工程では、送信部が、受信装置へ、伝送すべき情報を、記憶された通信パラメータ値に基づいて送信する。
【００２５】
一方、受信工程では、受信部が、送信装置から送信された情報を受信する。
【００２６】
さらに、報告工程では、報告部が、受信部により当該情報が受信された際の受信品質を送信装置に報告する。
【００２７】
そして、受付工程では、受付部が、受信装置から報告される受信品質を受け付ける。
【００２８】
一方、更新工程では、更新部が、記憶部に記憶される通信パラメータ値と差分値について、
（１）受け付けられた受信品質が劣化した場合、当該差分値の符号を反転させ、
（２）当該通信パラメータ値と当該差分値の和が当該所定の範囲を超える場合、当該差分値の符号を反転させ、
（３）当該通信パラメータ値に、当該差分値を加算する
ように記憶部を更新する。
【００２９】
本発明のその他の観点に係るプログラムは、コンピュータを上記の送信装置もしくは受信装置として機能させるように構成する。
【００３０】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【００３１】
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００３２】
本発明によれば、現在の通信の状態に応じてこれに適した通信手法を用いることにより、通信を効率良く行う通信システム、通信方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【００３３】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００３４】
図１は、本発明の実施形態に係る通信システムの概要構成を示す模式図である。以下、本図を参照して説明する。
【００３５】
本図に示すように、通信システム１１は、送信装置２１と受信装置３１とが、インターネットなどの通信環境４１を介して相互に通信可能に接続されている。
【００３６】
なお、以下の説明では、通信パラメータとして、同じパケットを何個（ほぼ同時に）送付するかを意味する「再送回数」を採用して説明する。
【００３７】
また、受信品質としては、送られた「再送回数」個のパケットのうち、何個が所定時間内に到達したか、を意味する「到達率」を採用して説明する。
【００３８】
図２は、本実施形態に係る通信システムにおける送信装置と受信装置の通信の様子を示すセッション図である。以下、本図を参照して説明する。
【００３９】
音声や動画などのマルチメディア情報等、伝送すべき情報は、パケットにまとめられて、「再送回数」個だけ送信装置２１から受信装置３１へ送信される（２０１）。
【００４０】
この送信は、ＵＤＰ等の到着確認を行わないプロトコルであっても良いし、ＴＣＰ等の到着確認を行うプロトコルを採用しても良い。
【００４１】
受信装置３１から送信装置２１へは、受信品質を報告するパケットが送信される（２０２）。この送信では、ＵＤＰ等の到着確認を行わないプロトコルを使用することもできるが、ＴＣＰ等の到着確認を行うプロトコルを採用しても良い。
【００４２】
これは、初めてのパケットのやりとりであるから、受信品質が劣化したか否かは不明であるので、「劣化していない」と判断する。
【００４３】
「再送回数」に「差分値」を加算して（「差分値」の初期値は負の値とする。）更新することにより、「再送回数」を減らして、次のパケットを送信装置２１から受信装置３１へ送信する（２０３）。
【００４４】
これに対しても受信品質を報告するパケットが送信されるが（２０４）、ここでは、受信品質が劣化したと判断されたとする。
【００４５】
すると、「差分値」の符号を反転させる。そして、「再送回数」に「差分値」を加算して更新すると、「再送回数」は増えることになる。
【００４６】
さらに次のパケットは、この増えた「再送回数」で送信装置２１から受信装置３１へ送信する（２０５）。以下同様に続く。
【００４７】
このように、「通信パラメータ値」と「差分値」との関係をどのように更新していくか、が、本発明の重要な特徴の一つとなっている。
【００４８】
（情報処理装置）
図３は、プログラムを実行することにより、本発明の実施形態に係る通信システム１１の送信装置２１および受信装置３１として機能するゲーム用の情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００４９】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、を備える。
【００５０】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態の送信装置２１および受信装置３１が実現される。
【００５１】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００５２】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００５３】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００５４】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがレーシングゲームなどのゲーム実行の際に行う操作入力を受け付ける。
【００５５】
射撃ゲームなどの場合には、拳銃型コントローラ（図示せず）がインターフェース１０４に接続され、ユーザの操作入力を受け付けるとともに、モニタに対する拳銃型コントローラの位置および向きを情報処理装置１００において推定する。拳銃型コントローラの詳細については、後述する。
【００５６】
インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、レーシングゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、チャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００５７】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００５８】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００５９】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００６０】
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００６１】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００６２】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００６３】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００６４】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００６５】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００６６】
一般的なコンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣを備え、情報処理装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラではなく、キーボードやマウスなどを入力装置として利用する。
【００６７】
上記のように、ネットワークゲームでは、ゲーム専用機ではなく一般的なコンピュータを利用することも多々あることも考慮し、以下では、注記しない限り、送信装置２１および受信装置３１については、図２に示した情報処理装置１００上に実現するものとして説明を加える。これらは必要に応じて、適宜、一般的なコンピュータの要素に置換することができ、これらの実施形態も本発明の範囲に含まれる。
【００６８】
図４は、本実施形態に係る送信装置と受信装置の概要構成を示す説明図である。
【００６９】
送信装置２１は、記憶部４０１、送信部４０２、受付部４０３、更新部４０４を有し、受信装置３１は、受信部４０５、報告部４０６を有する。
【００７０】
まず、送信装置２１において、記憶部４０１には、現在の通信パラメータ値と、当該通信パラメータを更新するための差分値と、が記憶されるほか、受信装置３１から送られた受信品質の情報の履歴も適宜記憶される。
【００７１】
したがって、ＲＡＭ  １０３やハードディスクなどが、記憶部４０１として機能する。
【００７２】
なお、これらの初期値は、適宜ハードディスクやＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭなどから典型的な値を読み出すこととしたり、前回の値を外部メモリ１０６から取得するなどとして、設定される。
【００７３】
一方、送信部４０２は、受信装置３１へ、伝送すべき情報を、記憶された通信パラメータ値に基づいて送信する。
【００７４】
通信パラメータとしては、たとえば、ＵＤＰ等の到達確認がされないプロトコルにおける再送回数（あらかじめ複製を何個も送信する態様を含む）、チェックサムや誤り訂正符号の長さ、パケットサイズやウィンドウサイズなどが考えられる。また、差分値は、これらを改善するための値である。
【００７５】
ＣＰＵ  １０１の制御の下、伝送すべき情報のパケットがＲＡＭ  １０３に生成され、ＮＩＣ  １０９を介して送信されるので、これらが送信部として機能する。
【００７６】
一方、受信装置３１において、受信部４０５は、送信装置２１から送信された情報を受信する。
【００７７】
ＮＩＣ  １０９を介して受信された情報は、ＣＰＵ  １０１の制御の下、ＲＡＭ  １０３に一時的のバッファリング等された後、直ちにモニタで再生されたり音声出力される等適宜ユーザに提供される場合もあるし、ハードディスク等に記録される場合もある。
【００７８】
したがって、これら各部がこれら各部が共働して受信部４０５として機能する。
【００７９】
一方、報告部４０６は、受信部４０５により当該情報が受信された際の受信品質を送信装置２１に報告する。
【００８０】
受信品質としては、所定の時間内のうちに、全再送回数のうちどれだけの個数パケットが到着したか、チェックサムや誤り訂正符号を用いてパケット内の情報誤りがどれだけ存在し、どれだけ訂正されたか、パケットの到着にどれだけの時間がかかったか、などが考えられる。再送回数を通信パラメータとして使用する場合には、パケット内に今回の「再送回数」そのものを示す情報を入れておくことが望ましい。
【００８１】
したがって、ＣＰＵ  １０１の制御の下、ＲＡＭ  １０３に報告用のパケットが生成され、ＮＩＣ  １０９を介して送信がされるので、これら各部が共働して報告部４０６として機能する。
【００８２】
さらに、送信装置２１において、受付部４０３は、受信装置３１から報告される受信品質を受け付ける。
【００８３】
ＮＩＣ  １０９を介して受信された情報は、ＣＰＵ  １０１の制御の下、ＲＡＭ  １０３に一時的に記憶され、更新部に吟味されるので、これら各部が共働して受付部４０３として機能する。
【００８４】
そして、更新部４０４は、記憶部４０１に記憶される通信パラメータ値と差分値について、
（１）受け付けられた受信品質が劣化した場合、当該差分値の符号を反転させ、
（２０）当該通信パラメータ値と当該差分値の和が当該所定の範囲を超える場合、当該差分値の符号を反転させ、
（３）当該通信パラメータ値に、当該差分値を加算する
ように記憶部４０１を更新する。
【００８５】
すなわち、通信パラメータが所定の範囲に納まるように更新するのであるが、受信品質が向上している場合には、そのまま差分値を加算し、劣化したときは、差分値の符号を反転させてから加算する。これにより、通信環境が変化する場合であっても、できるだけその通信環境に合った値に収束するように、通信パラメータ値が更新されることとなる。
【００８６】
受信品質が劣化したか否かは、ＲＡＭ  １０３に記憶される受信品質の過去の履歴と現在の値とを比較すればわかる。一方、差分値は、品質劣化の場合に符号を反転させることとしており、品質向上・維持の場合は符号はそのままとして、その値を通信パラメータ値に加算するのである。
【００８７】
したがって、ＣＰＵ  １０１が、ＲＡＭ  １０３と共働して、更新部４０４として機能することとなる。
【００８８】
（送信処理）
図５は、送信装置にて実行される送信処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【００８９】
まず、送信装置２１のＣＰＵ  １０１は、ＲＡＭ  １０３内に用意された通信パラメータ値と、差分値とを記憶する領域を初期化する（ステップＳ５０１）。
【００９０】
通信パラメータとして再送回数を選んだ場合は、その下限は１である。その上限は原理的には∞となるが、ネットワークに負担をかけないような適当な上限を選択することが望ましい。
【００９１】
次に、送信すべきパケットがまだあるか否かを判定する（ステップＳ５０２）。まだある場合（ステップＳ５０２；Ｙｅｓ）、ＲＡＭ  １０３から通信パラメータ値を読み出して（ステップＳ５０３）、その通信パラメータ値で、そのパケットを受信装置３１に送信する（ステップＳ５０４）。
【００９２】
上記のように、再送回数を通信パラメータとした場合には、同じパケットを「再送回数」個受信装置３１に送信するのである。
【００９３】
この場合、通信パラメータ値が整数でない場合には、適宜切捨て、切上げ、四捨五入等を行えば良い。
【００９４】
ついで、受信装置３１から送信される受信品質の報告パケットを受信する（ステップＳ５０５）。
【００９５】
そして、報告パケットに指定されている受信品質と、ＲＡＭ  １０３に記録された過去の受信品質の履歴とを比較して、受信品質が劣化したか否かを調べる（ステップＳ５０６）。
【００９６】
劣化している場合（ステップＳ５０６；Ｙｅｓ）、現在ＲＡＭ  １０３に記憶されている差分値の符号を反転させるとともに、その絶対値を所定の初期値にして（ステップＳ５０７）、ステップＳ５０９に進む。再送回数を通信パラメータとする場合は、たとえば、所定の初期値として「０.５」や「１」を選ぶ。そして、以前の差分値の符号に応じて、新たな差分値を「＋０.５」「＋１」または「−０.５」「−１」とする。
【００９７】
一方、劣化していない場合（ステップＳ５０６；Ｎｏ）、現在の差分値の絶対値を増やすようにＲＡＭ  １０３を更新して（ステップＳ５０８）、ステップＳ５０９に進む。たとえば、差分値の絶対値を定数（０.１、０.２、０.３等。）だけ増やす演算や、差分値に１以上の定数（１.１、１.２、１.３等。）を乗ずる演算を用いれば良い。なお、ステップＳ５０８の処理は省略しても良い。
【００９８】
そして、更新された差分値と現在の通信パラメータ値の和が、上限と下限の間にあるか否かを調べ（ステップＳ５０９）、ない場合（ステップＳ５０９；Ｎｏ）、ステップＳ５０７に戻る。
【００９９】
一方、上限と下限の間にある場合（ステップＳ５０９；Ｙｅｓ）、現在ＲＡＭ  １０３に記憶されている通信パラメータ値に、現在ＲＡＭ  １０３に記憶されている差分値を加算し（ステップＳ５１０）、先程の受信品質をＲＡＭ  １０３内の受信品質の履歴に追加して（ステップＳ５１１）、ステップＳ５０２に戻る。
【０１００】
一方、送信すべきパケットがなければ（ステップＳ５０２；Ｎｏ）、本処理を終了する。
【０１０１】
このように制御を行えば、受信回数と再送回数との比が減少する場合は、再送回数が増加するように、受信回数と再送回数との比が増加する場合は、再送回数が減少するように、更新がされるのである。したがって、ＵＤＰ等の到達確認がされず、再送が前提となるようなプロトコルを利用する場合に好適である。
【０１０２】
なお、単純に最新の受信品質と前回の受信品質を比較するだけではなくて、再送回数の履歴と、受信回数の履歴とから、受信品質の変化を決定することとしても良い。これが劣化傾向にある場合は再送回数を増やし、向上傾向にある場合は再送回数を減少させるように、差分値を更新することとしても良い。
【０１０３】
このように制御を行うことで、通信状況に応じて通信パラメータを適応的に定める際に、収束点付近での通信パラメータの振動の幅をできるだけ抑制する一方で、性能が向上する間は通信パラメータの変化の幅を次第に大きくすることにより、できるだけ速く収束点付近に通信パラメータの値を近付けることが期待され、効率の良い通信を行うことができる。
【０１０４】
（受信処理）
図６は、受信装置にて実行される受信処理の制御の流れを示すフローチャートである。
【０１０５】
まず、受信装置３１の受信部４０５は、送信装置２１から送信されるパケットが到着したかを判断し（ステップＳ６０１）、到着しなければ（ステップＳ６０１；Ｎｏ）、ステップＳ６０１に戻る。なお、この繰り返しループは、適宜受信割り込みに置き換えることができるほか、ループの途中で他の処理を行うこととしても良い。以下でも、受信の際の繰り返しループを行うが、これと同様である。
【０１０６】
そして、パケットが到着したら（ステップＳ６０１；Ｙｅｓ）、そのパケットを受信してＲＡＭ  １０３に記憶し（ステップＳ６０２）、ＲＡＭ  １０３に用意されたパケットの受信回数を記憶する領域に値「１」を記憶させて（ステップＳ６０３）、ユーザへの提供を開始する（ステップＳ６０４）。ユーザへの提供処理は、以下の処理とは並行して行うことが望ましい。
【０１０７】
本実施形態では再送回数を通信パラメータとしているので、最初にこのパケットを受信してから一定時間（いわゆるタイムアウト時間に相当する。）が経過したか否かを判断し（ステップＳ６０５）、経過していなければ（ステップＳ６０５；Ｎｏ）、さらに同じパケットが到着したかを判断し（ステップＳ６０６）、到着しなければ（ステップＳ６０６；Ｎｏ）、ステップＳ６０５に戻る。一方、同じパケットが到着したら（ステップＳ６０６；Ｙｅｓ）、ＲＡＭ  １０３に用意されたパケットの受信回数を記憶する領域の値を「１」だけ増やす（ステップＳ６０７）。
【０１０８】
一定時間が経過したら（ステップＳ６０５；Ｙｅｓ）、ＲＡＭ  １０３に記憶されたパケットの受信回数と、今回の再送回数と、の比を受信品質として送信装置２１に送信し（ステップＳ６０８）、まだ残りのパケットに来るはずか否かを判断して（ステップＳ６０９）、残りがあれば（ステップＳ６０９；Ｙｅｓ）、ステップＳ６０１に戻る。残りがなければ（ステップＳ６０９；Ｎｏ）、本処理を終了する。
【０１０９】
なお、再送回数と受信回数の組合せ以外を使用する場合には、パケットが何回到達したかを計数する必要はないので、一旦パケットを受信した後、当該パケットを吟味することによって、誤り訂正の度合を調べたり、送信装置２１と時刻同期している受信装置３１の場合には、パケット内に埋め込まれた送信時刻と実際の受信時刻との差から到達時間を調べたり等すれば良い。
【０１１０】
このように、本実施形態によれば、適切な更新手法を採用することによって、通信状況に応じて通信パラメータを適応的に定めることができ、効率の良い通信を行うことができる。
【産業上の利用可能性】
【０１１１】
以上説明したように、本発明によれば、現在の通信の状態に応じてこれに適した通信手法を用いることにより、通信を効率良く行う通信システム、通信方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができ、各種の通信分野に適用することができる。
【図面の簡単な説明】
【０１１２】
【図１】本発明の実施形態に係る通信システムの概要構成を示す模式図である。
【図２】本発明の実施形態に係る通信システムにおける通信の様子を示すセッション図である。
【図３】本発明の実施形態に係る通信システムの送信装置および受信装置が実現されるゲーム用の情報処理装置の概要構成を示す模式図である。
【図４】本実施形態に係る送信装置と受信装置の概要構成を示す説明図である。
【図５】送信装置にて実行される送信処理の制御の流れを示すフローチャートである。
【図６】受信装置にて実行される受信処理の制御の流れを示すフローチャートである。
【符号の説明】
【０１１３】
１１    通信システム
２１    送信装置
３１    受信装置
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
４０１  記憶部
４０２  送信部
４０３  受付部
４０４  更新部
４０５  受信部
４０６  報告部
【図１】
2006279541.tif 000003
【図２】
2006279541.tif 000004
【図３】
2006279541.tif 000005
【図４】
2006279541.tif 000006
【図５】
2006279541.tif 000007
【図６】
2006279541.tif 000008