本発明は、通信装置に関し、特に、省電力を目的とした通信装置および通信システム、ならびに省電力方法に関する。
近年、インターネットを中心としたIP(Internet Protocol)ネットワークが急速に拡大している。つまり、PC(Personal Computer)だけでなく、テレビやDVD(Digital Versatile Disk)プレーヤーなどの据え置き型の家電機器におけるIPネットワークの利用が普及し始めるとともに、携帯電話やPDA(Personal Digital Assistants)、デジタルカメラなどの携帯型端末におけるIPネットワークの利用も普及し始めている。このようにインターネットなどのネットワークに接続可能な機器を通信装置と呼ぶ。
IPネットワークを利用したサービスでは、音楽データや動画データのダウンロードやアップロード、さらには音声などのストリーミングデータの送受信などが行われ、長時間の通信を行うことがある。そのため、IPネットワークを利用するための消費電力を軽視することができない状況となっている。通信装置を構成するデバイスの中でも、IPネットワークを利用するためのネットワーク接続デバイスが特に多くの電力を必要としている。
ネットワーク接続デバイスには、有線によりIPネットワークを利用するデバイスと、無線によりIPネットワークを利用するデバイスとが存在する。消費電力を低減させるための省電力技術は、上述のような無線や有線を問わず、さまざまな機器に対して検討されている。その中でも携帯型端末では、内蔵のバッテリーのみで長時間使用するような使い方が想定されるため、省電力技術を特に必要としている。したがって、以下では、携帯型端末における省電力技術の例を説明する。
携帯型端末のネットワーク接続デバイスとしては、無線LAN(Local Area Network)デバイスの利用が注目されている。無線LANデバイスは比較的大きな電力を消費するので、その省電力化は重要な検討課題であり、多くの省電力化の手法が提案されている。
無線LANの標準規格であるIEEE802.11では、無線端末の省電力化の方法として、パワーマネージメントのモード(パワーセーブモード)が規定されている。この方法では、無線端末は、パワーセーブモードで動作している場合、無線基地局(アクセスポイント)からビーコンが送信されるタイミングに合わせて受信動作を行ない、それ以外の間は受信動作を行なわない状態(ドーズモード)に入る。無線端末は、ドーズモードにおいて、その無線端末に備えられた無線LANデバイスの電力供給を停止することにより、無線端末の消費電力を低減することができる。
図1は、パワーセーブモードでの無線端末の動作を説明するための説明図である。
無線端末は、送信側装置から送信されたデータを、アクセスポイント(AP)を介して受信する。このとき、無線端末は、アクセスポイントからビーコン(図1中の「B」のタイミングで送信される信号)が送信されるたびに、または複数のビーコンの送信に1回のタイミングで、受信状態(電源が投入された状態)に入り、そのビーコンを受信する。ここでは、この無線端末がビーコンを受信する一定の間隔を、「スリープ間隔」と呼ぶ。スリープ間隔は、無線端末とアクセスポイントの間の接続シーケンスなどによって、無線端末から設定または変更される。
また、図1に示すように、ドーズモードの期間中に無線端末宛に送信されたパケットは、一旦アクセスポイントでバッファリングされる。無線端末が次にビーコンを受信したときには、無線端末は、自分宛のパケットが届いていることが通知されるので、アクセスポイントに対してPS−Poll(Power Save Poll)パケットを送信する。PS−Pollパケットを受信したアクセスポイントは、その無線端末宛のパケットをまとめて送信するので、ドーズモードの期間に送信されたパケットは正しく無線端末に受信される。
しかしながら、この方法では、省電力効果と通信品質(遅延時間や帯域)を両立させるのが難しいという問題がある。例えば、図1に示すように、送信側装置のデータ送信間隔に対して、スリープ間隔が長く設定されていると、大きな通信遅延が発生してしまう。この場合には、最大、スリープ間隔に相当する時間分だけの通信遅延が発生する可能性がある。一方、必要以上にスリープ間隔を短く設定すると、無駄なポーリングが発生し、省電力効果が小さくなってしまう。また、本来、ネットワークの通信状況や通信アプリケーションプログラムの要件(例えば、遅延時間や帯域の制限など)によって、適切なスリープ間隔は異なる。しかしながら、この方法ではスリープ間隔が固定のため、状況に応じた適切な省電力効果と通信品質が得られない。
上記の問題を解決するため、従来、通信アプリケーションプログラムが使用する通信データ帯域に応じてスリープ間隔を設定および変化させることで、通信品質と省電力効果とを両立させる方法が提案されている(例えば、特許文献1参照)。
図2は、上記特許文献1の無線端末の動作を説明するための説明図である。
特許文献1における無線端末は、図2に示す省電力設定リストを記憶しており、その省電力設定リストにはスリープ間隔(省電力設定)が設定されている。
具体的には、省電力設定リストには、無線端末で実行される各通信アプリケーションプログラムと、その通信アプリケーションプログラムが要求するデータ速度に対応する0〜10までの省電力レベルと、その省電力レベルに対応するスリープ間隔(省電力設定)とが登録されている。
例えば、比較的速いデータ速度が要求される音声ストリーミングの通信アプリケーションプログラムには、省電力設定「ビーコンを毎回受信」および省電力レベル「1」が登録され、それよりもやや遅いデータ速度が要求されるウェブブラウザの通信アプリケーションプログラムには、省電力設定「ビーコンを2回に1回受信」および省電力レベル「2」が登録されている。また速いデータ速度が要求されない電子メールの通信アプリケーションプログラム(メールソフト)には、省電力設定「ビーコンを10回に1回受信」および省電力レベル「10」が登録され、極めて速いデータ速度が要求される動画ストリーミングの通信アプリケーションプログラムには、省電力設定「省電力制御を行なわない(ドーズモードに入らない)」および省電力レベル「0」が登録されている。
無線端末は、通信アプリケーションプログラムの起動または終了時に、省電力設定リストを元に、実行中の通信アプリケーションプログラムの中で最も省電力レベルが低いものを検索する。そして、無線端末は、その検索結果の省電力レベルに応じて省電力設定(スリープ間隔)を変更し、アクセスポイントにも省電力設定変更通知を送信する。
このように、特許文献1の無線端末(通信装置)は、通信アプリケーションプログラムの性質に応じて、ビーコンを受信する間隔(スリープ間隔)を変化させることで、適切な遅延時間や帯域で通信を行ないながら、消費電力を削減することもできる。
特開2004−187002号公報
しかしながら、上記特許文献1の通信装置であっても、通信品質と省電力効果とを十分に両立させることができないという問題がある。
つまり、従来の特許文献1に示す方式は、無線LANの省電力方式の上で動作する方式であるため、無線LAN特有の課題が発生する。具体的には、適用可能なネットワークが制限されるという第1の課題と、省電力制御とリアルタイム通信が両立できないという第2の課題と、アクセスポイントでデータの取りこぼしが発生してしまうという第3の課題とが発生する。
まず、第1の課題について説明する。特許文献1に記載の通信装置は、IEEE802.11規定の省電力機能を有するアクセスポイントと連動して動作する。しかしながら、アクセスポイントによっては、IEEE802.11規定の省電力機能をサポートしていないものや、機能を持っていてもデフォルトでOFFになっているものがある。そのような環境では、たとえ携帯型端末側(通信装置側)で特許文献1に記載の省電力機能を搭載していたとしても、携帯型端末の省電力化が行なえない。また、同様の理由のため、携帯型端末(通信装置)がIEEE802.11以外のネットワークデバイスを使って通信(例えば、有線通信やIEEE802.11以外の無線通信)する際には、特許文献1記載の省電力方法を適用できない。このように、従来の特許文献1に示す方式は、適用可能なネットワークの条件が制限されており、ネットワークデバイスの種類や他の通信機器の実装状況によって、省電力化が行なえない場合が発生する。
次に、第2の課題について説明する。特許文献1の通信装置は、スリープ間隔を変化させるが、単にスリープ間隔のビーコン送信間隔に対する倍率を変化させるだけであるため、ビーコン送信間隔自体を自由に変更させることはできない。そのため、特許文献1の通信装置によるデータ受信は、IEEE802.11の省電力方式と同じくビーコンの送信に連動したタイミングで行なわれる。その結果、特許文献1の通信装置では、リアルタイム通信に必要な遅延時間や帯域の要件を十分に満たすことができない。
以下、第2の課題を、遅延時間が長くなってしまうという問題と、通信帯域が低く抑えられるという問題とに分けて説明する。
まず、第2の課題における遅延時間が長くなってしまうという問題について説明する。特許文献1におけるスリープ間隔は、ビーコン送信間隔より短く設定できない。従って、VoIP(Voice over Internet Protocol)などの短時間おきにデータを送受信する通信アプリケーションプログラムでは、省電力制御を行なうと、遅延時間が長くなってしまう場合がある。特に、アクセスポイントのビーコン送信間隔が長く設定されていた場合には、遅延時間の増大により、音声品質が低下してしまう。
また、ビーコン送信間隔が短くても、1つのアクセスポイントに複数の無線端末(通信装置)が接続されている場合には、遅延時間が増大してしまうことがある。具体的には、リアルタイム性の要求される通信アプリケーションプログラムが複数の無線端末(通信装置)で動作している場合、ビーコン送信毎に同時に複数の無線端末からPS−Poll(無線端末へのデータ送信を要求するパケット)が送信される。その場合、IEEE802.11で規定されている、送信時のバックオフアルゴリズム(無線端末が送信可能状態になった後に実際にデータを送信できるまでに、あるランダム時間だけ待ってからデータを送信するアルゴリズム)に基づくと、特定の無線端末以外の1つ以上の無線端末が先に送信してしまう場合がある。このとき、先に送信を開始した無線端末からのデータ送信が完了するまで、その特定の無線端末はデータ送信を待たされてしまうため、待ち時間が増加する可能性が高くなってしまう。その結果、VoIPなどの遅延時間に制限のある通信アプリケーションプログラムでは、遅延時間の増大が問題になる。さらに、無線端末側では、ビーコンを受信して実際にデータを受信し終わるまでドーズ状態に戻れないため、実際にデータの送受信を行なわない待ち時間も、無駄に電源を投入し続けることになり、省電力効果が小さくなる。
次に、第2の課題における通信帯域が低く抑えられるという問題について説明する。ビーコン送信間隔が長い条件で特許文献1の省電力化を行なうと、TCP(Transmission Control Protocol)での通信帯域が低く抑えられてしまう。これは、後述するTCPのフロー制御の仕組みにより、一度に受信できるデータサイズが、受信(無線端末)側のTCPの受信バッファのサイズに制限されてしまうためである。高帯域でデータ受信を行なうには、大きな受信バッファを用意して一度に受信するデータを大きくするか、データ受信の間隔(=スリープ間隔)を短く設定するか、のどちらかが必要となる。
ビーコン送信間隔が長い場合、スリープ間隔もビーコン送信間隔より短く設定できないので、高帯域の通信を行なうには膨大な受信バッファを搭載する必要がある。例えば、無線端末がTCPの受信バッファを64[KByte]搭載していたとしても、ビーコン送信間隔が200[msec]の場合、最大のスループットは、2.6[Mbps]程度に抑えられてしまう。
このように、特許文献1の省電力制御および通信装置では、データ受信をビーコン送信のタイミングに連動させる必要があるため、遅延時間増大や帯域低下の課題が発生する場合がある。従って、遅延時間や帯域を確保するためには、ドーズモードに入らない(省電力制御を行なわない)という省電力設定を選択するしかなく、リアルタイム通信と省電力制御を両立することが十分にできない。
最後に、第3の課題について説明する。
特許文献1に記載の方式では、IEEE802.11の省電力方式と同じく、アクセスポイントがドーズモード中の無線端末(通信装置)宛のパケットをバッファリングしている。しかしながら、送信側装置と携帯型端末(通信装置)間のデータ送受信は、常に一定レートではなく、通信装置内での処理の遅れやネットワーク内でのジッタなどにより、アクセスポイントにバッファリングされるデータ量は変化する。従って、想定以上のデータ量がバースト的に到着すると、アクセスポイントがバッファリングしきれずにデータを取りこぼしてしまう可能性がある。
そこで、本発明は、かかる問題に鑑みてなされたものであって、通信品質と省電力効果のさらなる向上を両立して図った通信装置を提供することを目的とする。
上記目的を達成するために、本発明に係る通信装置は、通信相手側装置と通信する通信装置であって、前記通信相手側装置に対してデータの送受信を行う通信手段と、前記通信手段に対して供給される電力の状態を、前記送受信に必要な電力が供給されている給電状態と、前記送受信に必要な電力が供給されていない非給電状態とに切り換える電源切換手段と、前記通信相手側装置に対してデータ(例えばACKパケットやTCPのデータパケットなど)の送信を抑制させる抑制手段と、前記抑制手段によってデータの送信が抑制されていないときには、前記電源切換手段に対して、前記電力の状態を前記給電状態に切り換えさせ、前記抑制手段によってデータの送信が抑制されているときには、前記電源切換手段に対して、前記電力の状態を前記非給電状態に切り換えさせる切換制御手段とを備えることを特徴とする。例えば、前記通信装置は、さらに、データサイズである受信ウィンドウを含む送信要求データを前記通信手段から送信させることにより、前記通信相手側装置から前記受信ウィンドウ以下のデータを送信させて前記通信手段に受信させることを繰り返す通信制御手段を備え、前記抑制手段は、0より大きな値を示す受信ウィンドウを含む前記送信要求データを正送信要求データとし、当該正送信要求データの前記通信手段からの送信を停止することにより、前記通信相手側装置に対してデータの送信を抑制させる。また、前記抑制手段は、さらに、前記正送信要求データの送信の停止を解除することで、前記通信相手側装置からのデータの送信を再開させる。
これにより、抑制手段による任意のタイミングで、通信相手側装置からのデータの送信が抑制されて、そのときに通信手段に供給される電力が削減されるため、通信装置は、通信相手側装置に関わらず、つまり適用可能なネットワークの条件に制限されず、通信品質に支障が生じない適切なタイミングで、積極的にデータの送信を抑制させて省電力化を図ることができる。その結果、通信品質と省電力効果のさらなる向上を両立して図ることができる。
即ち、本発明の通信装置は、IEEE802.11規定の無線LANに依存しない方法で省電力化の制御を行うため、アクセスポイントとの連携を必要とせず、無線LANのネットワーク環境に依存しない。また、このため、有線通信やIEEE802.11以外の無線通信時にも省電力制御が行なえる。
また、IEEE802.11規定の無線LAN環境を想定した場合にも、本発明は従来の特許文献1の技術と比べて以下の2つの利点がある。
まず第1に、本発明では、データ受信がアクセスポイントのビーコン送信のタイミングに連動せず、通信アプリケーションプログラムの要求する遅延時間や帯域に合わせたタイミングでデータ受信を行なうことができる。そのため、リアルタイム通信を行ないながら、つまり、リアルタイム通信に必要な遅延時間や帯域の要件を満たしながら、同時に省電力制御も両立することができる。
また第2に、本発明によれば、従来方法のようにドーズモードで受信したデータをアクセスポイントでバッファリングするのではなく、通信装置の電源を切断している間には、そもそも送信側装置(通信相手側装置)からのデータ送信がない状態にされている。そのため、送信側装置の処理またはネットワーク上でなんらかのジッタが発生したとしても、アクセスポイントでデータ溢れがおきるような課題も発生しなくなる。
また、前記通信制御手段は、前記通信手段でデータが受信されると、前記データを受信したことを通知する肯定応答パケットを前記送信要求データとして前記通信手段から送信させ、前記抑制手段は、前記通信手段でデータが受信されたときに前記正送信要求データとして送信されるべき、0より大きな値を示す受信ウィンドウを含む前記肯定応答パケットの、前記通信手段からの送信を停止することにより、前記通信相手側装置に対してデータの送信を抑制させ、0より大きな値を示す受信ウィンドウを含む前記肯定応答パケットを前記通信制御手段に生成させて送信させることにより、前記通信相手側装置からのデータの送信を再開させることを特徴としてもよい。例えば、前記通信制御手段は、TCP(Transmission Control Protocol)に従って、前記肯定応答パケットを前記通信手段から送信させるとともに、前記肯定応答パケットに対して前記通信相手側装置から送信されたデータを前記通信手段に受信させる。
これにより、フロー制御の仕組みを使うTCPに従った通信において、通信品質と省電力効果のさらなる向上を両立して図ることができる。
また、前記抑制手段は、さらに、前記通信相手側装置のデータの送信が抑制されているときに、受信ウィンドウとして0を示す送信要求データを前記通信手段から送信させることを特徴としてもよい。
例えば、通信相手側装置は、一定期間のうちに、受信ウィンドウとして0を示す送信要求データを受信できないときには、先に送信したデータが通信装置に受信されていないと判断して、そのデータを再送し、その後、送信要求データに対して送信可能なデータのサイズを減少させてしまうことがある。このような場合でも、本発明では、受信ウィンドウとして0を示す送信要求データが通信相手側装置に送信されるため、通信相手側装置からデータが送信されるのを抑えた状態で、通信相手側装置において送信可能なデータのサイズの減少を防ぐことができる。
また、前記通信装置は、さらに、サイクル時間およびサイクルデータサイズを決定する決定手段を備え、前記通信制御手段は、前記決定手段で決定されたサイクルデータサイズを前記受信ウィンドウとし、前記サイクルデータサイズを示す送信要求データを前記通信手段から送信させ、前記送信要求データを送信したタイミングをサイクル開始時点とし、前記抑制手段は、前記通信手段から前記送信要求データが送信されてから、前記決定手段で決定された前記サイクル時間が経過する時点をサイクル終了時点とし、前記サイクルデータサイズのデータが前記通信手段に受信されてから前記サイクル終了時点まで、前記正送信要求データの前記通信手段からの送信を停止し、前記サイクル終了時点を次のサイクルの前記サイクル開始時点として、前記サイクル開始時点から前記サイクル終了時点までの処理を前記サイクル時間ごとに繰り返させることを特徴としてもよい。例えば、前記決定手段は、前記通信装置と前記通信相手側装置との間で要求される通信の性能に基づいて、前記サイクル時間およびサイクルデータサイズを決定する。
これにより、サイクル時間(サイクル間隔)内において、送信要求データの送信と、その送信要求データに対するサイクルデータサイズ分のデータの受信と、送信要求データの送信の停止処理とを含む1つのサイクルを行い、さらに、そのサイクルを繰り返すことで、間欠的なデータの送受信を行うことができる。また、例えば、通信装置で実行される通信アプリケーションプログラムによって要求される通信帯域や遅延時間などの条件(性能)が満たされた状態で、その間欠的なデータの送受信を行うことができる。その結果、サイクル終了時点まで次の送信要求データの送信を停止していても、上述の通信帯域や遅延時間の要求を満足することができる。
また、前記切換制御手段は、前記通信相手側装置から前記サイクルデータサイズのデータが送信されて前記通信手段に受信された後、前記電源切換手段に対して、前記電力の状態を前記給電状態から前記非給電状態に切り換えさせ、前記サイクル終了時点までに、前記電源切換手段に対して、前記電力の状態を前記非給電状態から前記給電状態に切り換えさせることを特徴としてもよい。
これにより、間欠的なデータ送受信の1サイクルにおいて、通信手段での消費電力を確実に減少させることができる。
また、前記通信相手側装置は、当該通信相手側装置から送信されたデータが消失して前記通信手段に受信されなかったことを検知すると、前記送信要求データに対して送信可能なデータのサイズである送信ウィンドウを減少させ、前記抑制手段は、前記通信手段から送信された前記送信要求データに対して、前記通信相手側装置から送信されて前記通信手段に受信されたデータのサイズが、前記送信要求データの示すサイクルデータサイズよりも小さいか否かを判別し、小さいと判別したときには、前記受信ウィンドウが前記送信ウィンドウ以下となるようなウィンドウ制御を行うことを特徴としてもよい。例えば、前記抑制手段は、前記通信手段から送信された前記送信要求データに対して、前記通信相手側装置から送信されて前記通信手段に順次受信された各データの識別番号が連続であるか不連続であるかを判別し、不連続であると判別したときに、前記通信手段に受信されたデータのサイズが、前記送信要求データの示すサイクルデータサイズよりも小さいと判別する。または、前記抑制手段は、前記通信手段から送信された前記送信要求データに対して、前記通信相手側装置から送信されて前記通信手段に順次受信された各データの合計サイズが、予め定められた期間内で、前記送信要求データの示すサイクルデータサイズに達するか否かを判別し、達しないと判別したときに、前記通信手段に受信されたデータのサイズが、前記送信要求データの示すサイクルデータサイズよりも小さいと判別する。
通信相手側装置が、データが消失して通信手段に受信されなかったことを検知すると、即ちパケットロスを検知すると、送信ウィンドウ(輻輳ウィンドウ)が減少するため、受信された送信要求データの示す受信ウィンドウ(サイクルデータサイズ)が送信ウィンドウよりも大きくなる場合がある。このような場合には、通信装置の通信手段は、送信要求データを送信しても、その送信要求データの示す受信ウィンドウ(サイクルデータサイズ)のデータを受信することができず、送信ウィンドウだけのデータを受信する。仮にこのような状態が継続されれば、通信装置の切換制御手段は、通信手段に供給される電力の状態を非給電状態に切り換えることができず、省電力化を行うことができない。
そこで、本発明では、通信手段に受信されたデータのサイズがサイクルデータサイズよりも小さい場合には、例えば、受信ウィンドウを低下させたり、送信ウィンドウをサイクルサイズ以上に回復させたりするように、前記受信ウィンドウが前記送信ウィンドウ以下となるようなウィンドウ制御を行うため、パケットロスが発生しても受信ウィンドウ≦送信ウィンドウの関係を維持して、上述のような間欠的なデータの送受信を行うとともに省電力化を図ることができる。
また、前記抑制手段は、前記通信手段に受信されたデータのサイズが前記サイクルデータサイズよりも小さいと判別したときには、前記ウィンドウ制御として、後に前記通信手段から送信される送信要求データの示す受信ウィンドウを前記サイクルデータサイズよりも小さくさせることを特徴としてもよい。
これにより、パケットロスが発生しても受信ウィンドウ≦送信ウィンドウの関係を確実に維持して、間欠的なデータの送受信を行うとともに省電力化を図ることができる。
また、前記通信相手側装置は、前記通信手段から送信要求データを受信して、前記送信要求データに対するデータを前記通信手段に送信することを繰り返すことによって、減少された前記送信ウィンドウを増加させ、前記抑制手段は、前記送信ウィンドウの増加に伴って、前記通信手段から送信される送信要求データの示す受信ウィンドウを増加させることを特徴としてもよい。
これにより、パケットロスなどによって、送信ウィンドウおよび受信ウィンドウが減少されても、それぞれ増加されるため、それぞれを元の値にして、通信状態を、パケットロスが発生する前の状態に回復させることができる。
また、前記抑制手段は、前記サイクルデータサイズよりも小さい受信ウィンドウを示す送信要求データが前記通信手段から繰り返し送信されている間、前記決定手段で決定されたサイクル時間を短くし、前記通信手段から前記送信要求データが送信されてから、短くされた前記サイクル時間が経過する時点をサイクル終了時点とし、前記受信ウィンドウのデータが前記通信手段に受信されてから前記サイクル終了時点まで、前記正送信要求データの前記通信手段からの送信を停止することを特徴としてもよい。
これにより、受信ウィンドウがサイクルデータサイズよりも小さくなっても、サイクル時間が短くされるため、単位時間当りに通信相手側装置から送信されて通信手段で受信されるデータの量を一定に、つまりスループットを一定に保つことができる。
また、前記通信相手側装置は、前記通信手段から送信要求データを受信して、前記送信要求データに対するデータを前記通信手段に送信することを繰り返すことによって、減少された前記送信ウィンドウを増加させ、前記抑制手段は、前記送信ウィンドウが前記サイクルデータサイズよりも小さくなってから前記サイクルデータサイズ以上になるまでのウィンドウ回復期間、前記ウィンドウ制御として、前記正送信要求データの送信の停止を解除することを特徴としてもよい。
これにより、パケットロスなどによって減少された送信ウィンドウを元の値に回復させることができる。
また、前記通信制御手段は、前記通信手段でデータが受信されると、次に受信すべきデータの識別番号を通知することで、前記通信手段でデータが受信されたことを、前記通信相手側装置に通知する肯定応答パケットを、前記送信要求データとして前記通信手段から送信させ、前記ウィンドウ回復期間では、前記肯定応答パケットを、互いに異なる前記識別番号を有する複数の肯定応答パケットに分けて前記通信手段から送信させることを特徴としてもよい。
これにより、通信装置が肯定応答パケットを通信相手側装置に送信し、その肯定応答パケットに対して通信相手側装置が通信装置にデータを送信するという、データ送受信の回数を、分割された肯定応答パケットの数だけ増加させることができる。その結果、通信相手側装置の減少された送信ウィンドウを早急に元の値に回復させることができる。
また、前記切換制御手段は、前記通信手段から前記送信要求データが送信された後に、前記電源切換手段に対して、前記電力の状態を前記給電状態から前記非給電状態に切り換えさせ、前記送信要求データに対するデータが前記通信手段に受信される前に、前記電源切換手段に対して、前記電力の状態を前記非給電状態から前記給電状態に切り換えさせることを特徴としてもよい。例えば、前記切換制御手段は、前記通信手段から前記送信要求データが送信されてから所定時間が経過した後に、前記電源切換手段に対して、前記電力の状態を前記非給電状態から前記給電状態に切り換えさせる。または、前記通信装置は、さらに、前記通信手段から前記送信要求データが送信されてから、前記送信要求データに対するデータが前記通信相手側装置から送信されて前記通信手段に受信されるまでの応答時間を推定する推定手段を備え、前記切換制御手段は、前記通信装置から前記送信要求データが送信されてから前記応答時間が経過する前に、前記電源切換手段に対して、前記電力の状態を前記非給電状態から前記給電状態に切り換えさせる。
これにより、通信装置は、送信要求データを送信してデータを受信するまでの間にも、通信手段の消費電力を削減することができ、通信品質を損なうことなく省電力化のさらなる向上を図ることができる。
また、前記通信手段は、前記通信相手側装置と通信端末との間における通信を中継することを特徴としてもよい。
これにより、例えば、従来の通信端末と通信相手側装置との間で行われるTCPに従ったデータ通信を中継する場合にも、通信手段の消費電力を抑えることができ、通信品質と省電力効果のさらなる向上を両立して図ることができる。
また、前記通信装置は、さらに、送信データを前記通信手段から送信させることにより、前記通信相手側装置から肯定応答パケットを送信させて前記通信手段に受信させることを繰り返す通信制御手段を備え、前記抑制手段は、前記送信データの前記通信手段からの送信を停止することにより、前記通信相手側装置に対して肯定応答パケットの送信を抑制させることを特徴としてもよい。ここで、前記抑制手段は、さらに、前記送信データの送信の停止を解除することで、前記通信相手側装置からの肯定応答パケットの送信を再開させる。
これにより、本発明の通信装置が通信相手側装置に対して送信データを送る場合でも、抑制手段による任意のタイミングで、通信相手側装置からの肯定応答パケットの送信が抑制されて、そのときに通信手段に供給される電力が削減されるため、通信装置は、通信相手側装置に関わらず、つまり適用可能なネットワークの条件に制限されず、通信品質に支障が生じない適切なタイミングで、積極的にデータの送信を抑制させて省電力化を図ることができる。その結果、通信品質と省電力効果のさらなる向上を両立して図ることができる。
また、前記通信装置は、さらに、サイクル時間およびサイクルデータサイズを決定する決定手段を備え、前記通信制御手段は、前記決定手段で決定されたサイクルデータサイズ分の送信データを前記通信手段から送信させ、前記送信データを送信したタイミングをサイクル開始時点とし、前記抑制手段は、前記通信手段から前記送信データが送信されてから、前記決定手段で決定された前記サイクル時間が経過する時点をサイクル終了時点とし、前記送信データに対する肯定応答パケットが前記通信手段に受信されてから前記サイクル終了時点まで、前記送信データの前記通信手段からの送信を停止し、前記サイクル終了時点を次のサイクルの前記サイクル開始時点として、前記サイクル開始時点から前記サイクル終了時点までの処理を前記サイクル時間ごとに繰り返させることを特徴としてもよい。
これにより、サイクル時間(サイクル間隔)内において、送信データの送信と、その送信データに対する肯定応答パケットの受信と、送信データの送信の停止処理とを含む1つのサイクルを行い、さらに、そのサイクルを繰り返すことで、間欠的なデータの送受信を行うことができる。また、例えば、通信装置で実行される通信アプリケーションプログラムによって要求される通信帯域や遅延時間などの条件(性能)が満たされた状態で、その間欠的なデータの送受信を行うことができる。その結果、サイクル終了時点まで次の送信データの送信を停止していても、上述の通信帯域や遅延時間の要求を満足することができる。
また、前記通信手段は、前記通信相手側装置および他の通信相手側装置との間でデータの送受信を並列に行い、前記決定手段は、前記通信手段が前記他の通信相手側装置との間で一定時間ごとに送受信を繰り返す場合、前記他の通信相手側装置との間の送受信と、前記通信相手側装置からのデータの受信とが同期するように、前記一定時間に基づいて前記サイクル時間を決定することを特徴としてもよい。例えば、前記決定装置は、前記通信手段が前記他の通信相手側装置から一定時間ごとに固定レートでデータを受信することを繰り返す場合に、前記一定時間を基準とし、前記一定時間に基づいて前記サイクル時間を決定することを特徴としてもよい。
これにより、例えばサイクル時間を上述の一定時間に等しくすれば、抑制手段が通信相手側装置に対してデータの送信を抑制させている期間を、他の通信相手側装置からデータが受信されていない期間に合わせることができる。つまり、通信装置は通信相手側装置および他の通信相手側装置との間の通信を同期させることができ、上述の期間において通信手段に供給される電力を切断することで、通信装置は通信相手側装置および他の通信相手側装置との間で通信を行いながら省電力効果を向上することができる。
また、前記通信手段は、前記通信相手側装置および他の通信相手側装置との間でデータの送受信を並列に行い、前記抑制手段は、前記通信手段が前記他の通信相手側装置から一定時間ごとに固定レートでデータを受信することを繰り返す場合、前記他の通信相手側装置からのデータが前記通信手段に受信されるタイミングと、前記通信相手側装置からのデータが前記通信手段に受信されるタイミングとが一致するように、前記通信手段からの前記正送信要求データの送信の停止および解除を行うことを特徴としてもよい。
これにより、上述のようにサイクル時間を上記一定時間に等しくしなくても、他の通信相手側装置からのデータが通信手段に受信されるタイミングと、通信相手側装置からのデータが通信手段に受信されるタイミングとが一致するため、抑制手段が通信相手側装置に対してデータの送信を抑制させている期間を、他の通信相手側装置からデータが受信されていない期間に合わせることができる。その結果、その期間において通信手段に供給される電力を切断することで、通信装置は通信相手側装置および他の通信相手側装置との間で通信を行いながら省電力効果を向上することができる。
また、前記抑制手段は、上述のようなデータの送信を抑制させる制御を行うことを、前記通信制御手段に通知する間欠受信実施通知手段を備え、前記通信制御手段は、前記間欠受信実施通知手段からの通知を受け付けたときには、前記通信手段から送信されるパケットに、前記通知の内容を示す情報を設定することを特徴としてもよい。
また、前記通信制御手段は、TCP(Transmission Control Protocol)に従って、前記送信データを前記通信手段から送信させるとともに、前記送信データに対して前記通信相手側装置から送信された前記肯定応答パケットを前記通信手段に受信させることを特徴としてもよい。
また、前記切換制御手段は、前記通信相手側装置から前記肯定応答パケットが送信されて前記通信手段に受信された後、前記電源切換手段に対して、前記電力の状態を前記給電状態から前記非給電状態に切り換えさせ、前記サイクル終了時点までに、前記電源切換手段に対して、前記電力の状態を前記非給電状態から前記給電状態に切り換えさせることを特徴としてもよい。
また、前記切換制御手段は、前記通信手段から前記送信データが送信された後に、前記電源切換手段に対して、前記電力の状態を前記給電状態から前記非給電状態に切り換えさせ、前記送信データに対する少なくとも一つの肯定応答パケットが前記通信手段に受信される前に、前記電源切換手段に対して、前記電力の状態を前記非給電状態から前記給電状態に切り換えさせることを特徴としてもよい。
また、前記通信制御手段は、送信データを一時的に保持するデータ保持手段を備え、送信データが送信されてから一定時間内に前記肯定応答パケットが前記通信手段に受信されなかった場合、前記データ保持手段に保持されている送信済みの送信データを、次のサイクルの最初の送信データとして前記通信手段に再送させることを特徴としてもよい。
また、前記抑制手段が、前記サイクルデータサイズの送信データが送信された後、前記肯定応答パケットが前記通信手段に到達しないと判断した場合、前記通信制御手段は、前記肯定応答パケットが到達するまで、前記通信手段に送信済みの前記送信データを再送させることを特徴としてもよい。
また、前記抑制手段は、前記肯定応答パケットを受信するのに必要となる前記送信データのパケット数である遅延応答回避パケット数に基づき、前記サイクルデータサイズ分の送信データを前記遅延応答回避パケット数の整数倍に分割することを前記通信制御手段に対して要求し、前記通信制御手段は、前記要求に従い、前記サイクルデータサイズ分のデータを前記遅延応答回避パケット数の整数倍に分割して前記通信手段から送信させることを特徴としてもよい。
また、前記通信装置は、さらに、一定時間ごとに処理の開始および停止を繰り返す間欠処理手段を備え、前記間欠処理手段は、前記間欠処理手段による処理の開始および停止の時間間隔を、前記サイクル時間に合わせることを特徴としてもよい。
また、前記通信装置は、さらに、一定時間ごとに処理の開始および停止を繰り返す間欠処理手段を備え、前記間欠処理手段は、前記間欠処理手段による処理の開始時点を、前記サイクル開始時点に合わせることを特徴としてもよい。
また、前記抑制手段は、前記通信手段に受信されたデータのサイズが前記期待値よりも小さいと判別したときには、前記正送信要求データの送信の停止を解除することを特徴としてもよい。
また、前記抑制手段は、前記通信手段に受信されたデータのサイズが前記期待値よりも小さいと判別したときには、後に前記通信手段から送信される送信要求データの前記受信ウィンドウを前記サイクルデータサイズよりも小さい値にして、さらに後に前記通信手段から送信される送信要求データの前記受信ウィンドウを前記値よりも大きくすることを特徴としてもよい。
また、前記抑制手段は、前記通信手段に受信されたデータのサイズが前記期待値よりも小さいと判別したときには、前記決定手段で決定されたサイクル時間を短くし、前記通信手段から前記送信要求データが送信されてから、短くされた前記サイクル時間が経過する時点をサイクル終了時点とし、前記受信ウィンドウのデータが前記通信手段に受信されてから前記サイクル終了時点まで、前記正送信要求データの前記通信手段からの送信を停止することを特徴としてもよい。
なお、本発明は、このような通信装置として実現することができるだけでなく、その通信装置を含んで構成される通信システムや、その通信装置が通信する通信方法や、その通信装置の消費電力を削減する省電力方法や、その通信装置を動かすためのプログラムや、そのプログラムを格納する記憶媒体や、集積回路としても実現することができる。
本発明の通信装置は、通信品質と省電力効果のさらなる向上を両立して図ることができるという作用効果を奏する。また、本発明の通信装置は、フロー制御の仕組みを利用した省電力制御を有し、持ち運び可能な通信装置(一般的には、無線端末)が、リアルタイム通信をしながら電力消費も抑えたいような使い方(例えば、他の通信装置からネットワーク経由で長時間にわたってデータを受信するような場合)に有用である。さらに、無線LANに限らず、有線通信や他の無線デバイスを使った通信など、様々なネットワーク環境の通信装置にも適用可能である。また、従来の無線LANの省電力方法にあった、アクセスポイントのバッファ容量溢れによるデータロスの課題も防ぐことができる。
図1は、従来の通信装置の動作を説明するための説明図である。
図2は、従来の他の通信装置の動作を説明するための説明図である。
図3は、本発明の実施の形態1における通信装置を有する通信システムの一例を示す構成図である。
図4は、同上の受信側装置である携帯型端末と送信側装置との基本的な処理の一例を示すシーケンス図である。
図5は、同上の携帯型端末の具体的な構成を示す構成図である。
図6Aは、同上のアプリ要求取得部が管理する性能パラメータ管理テーブルを示す図である。
図6Bは、同上のアプリ要求取得部が管理する他の性能パラメータ管理テーブルを示す図である。
図6Cは、同上のアプリ要求取得部が管理するさらに他の性能パラメータ管理テーブルを示す図である。
図7は、同上の間欠受信パラメータの決定ルールを示す図である。
図8は、同上のパラメータ決定部によって生成された間欠受信パラメータ管理テーブルの一例を示す図である。
図9は、同上の携帯型端末と送信側装置の定常状態での動作を示すシーケンス図である。
図10は、同上の携帯型端末の動作を示すフローチャートである。
図11は、同上の受信ウィンドウ(RWIN)=0のACKパケットが送信される動作を示すシーケンス図である。
図12は、本発明の実施の形態2における携帯型端末の具体的な構成を示す構成図である。
図13は、同上の携帯型端末と送信側装置の省電力方法を示すシーケンス図である。
図14は、本発明の実施の形態3における携帯型端末の具体的な構成を示す構成図である。
図15は、同上の携帯型端末の動作を示すフローチャートである。
図16は、同上のパケットロス検知処理の詳細を説明するための説明図である。
図17は、同上の再送誘発処理の詳細を説明するための説明図である。
図18は、同上のCWIN推定処理の詳細を説明するための説明図である。
図19は、同上のCWIN低下期間中の処理の詳細を示すフローチャートである。
図20は、同上のCWIN低下期間中において行われる間欠受信の1サイクルを示す図である。
図21は、本発明の実施の形態4における通信装置を有する通信システムの一例を示す構成図である。
図22は、同上の携帯型端末の具体的な構成を示す構成図である。
図23は、同上の受信側装置と携帯型端末と送信側装置の定常状態での動さを示すシーケンス図である。
図24は、本発明の実施の形態5における通信装置を有する通信システムの一例を示す構成図である。
図25は、同上の送信側装置である携帯型端末の具体的な構成を示す構成図である。
図26は、同上の携帯型端末と受信側装置の定常状態での動作を示すシーケンス図である。
図27は、同上の携帯型端末の動作を示すフローチャートである。
図28は、同上の携帯型端末と受信側装置の定常状態で、RTT間も電源切断を行う場合の動作を示すシーケンス図である。
図29は、本発明の実施の形態6における通信装置を有する通信システムの一例を示す構成図である。
図30は、同上の携帯型端末の具体的な構成を示す構成図である。
図31Aは、同上のアプリ要求取得部が管理するUDPに関する性能パラメータ管理テーブルを示す図である。
図31Bは、同上のアプリ要求取得部が管理するUDPに関する他の性能パラメータ管理テーブルを示す図である。
図32Aは、同上のアプリ要求取得部が管理するTCPに関する性能パラメータ管理テーブルを示す図である。
図32Bは、同上のアプリ要求取得部が管理するTCPに関する他の性能パラメータ管理テーブルを示す図である。
図33は、同上の携帯型端末と、UDPを用いた通信を行う送信側装置と、TCPを用いた通信を行う送信側装置との通信において、送信間隔とサイクル間隔が同期する場合における、定常状態での動作を示すシーケンス図である。
図34は、サイクル間隔と送信間隔とが異なる場合に抑制再開制御部がデータの送受信のタイミングの同期を取るための動作を示すフローチャートである。
図35は、同上の携帯型端末と、UDPを用いた通信を行う送信側装置と、TCPを用いた通信を行う送信側装置との通信において、送信間隔とサイクル間隔が同期しない場合における、定常状態での動作を示すシーケンス図である。
図36は、同上の携帯型端末と、TCPを用いた通信を行う受信側装置と、TCPを用いた通信を行う送信側装置との通信において、定常状態での動作を示すシーケンス図である。
図37は、本発明の実施の形態7における通信装置を有する通信システムの一例を示す構成図である。
図38は、同上の携帯型無線装置の具体的な構成を示す構成図である。
図39は、同上の携帯型無線装置と携帯型端末の定常状態での動作を示すシーケンス図である。
符号の説明
101 通信アプリケーション部
102 アプリ要求取得部
103 パラメータ決定部
104 抑制再開制御部
106 電源制御部
107 通信制御部
108 通信I/F部
202 無線基地局
203 送信側装置
204 インターネット(WAN)
211、212 携帯型端末(通信装置)
(実施の形態1)
以下、本発明の第1の実施の形態における通信装置について図面を参照しながら説明する。
図3は、本実施の形態における通信装置を有する通信システムの一例を示す構成図である。
本実施の形態に係る通信システムは、通信装置たる携帯型端末211,212と、無線基地局202と、インターネット204と、送信側装置203とを備えている。
携帯型端末211,212は、通信品質と省電力効果のさらなる向上を両立して図った通信装置であって、無線通信デバイスを搭載した無線端末として構成されている。携帯型端末211,212は、無線基地局202を介してインターネット204に接続する。
送信側装置203は、インターネット204上に接続されている通信装置である。送信側装置203は、他の機器からの接続を受け付けて、相手にコンテンツデータなどを送信する機能を持つ。
このような通信システムでは、携帯型端末211,212は、インターネット204を介して送信側装置203と接続し、送信側装置203からのデータを受信する。携帯型端末211と送信側装置203の間のデータ送受信には、TCP(Transmission Control Protocol)のようなフロー制御付きプロトコルが使われる。
なお、図3に示す携帯型端末211,212は、それぞれ同等の構成を備え、同等の動作を行なう装置であるため、以下の説明では、簡略化のため、携帯型端末211について詳細に説明する。また、携帯型端末211を受信側装置として以下説明する。
本実施の形態における携帯型端末211は、フロー制御を利用する。フロー制御とは、受信側装置のデータ受信処理が追いつかなくなる事態を防ぐために、受信側装置が送信側装置にデータ送信の停止および再開を指示する制御である。この制御は、受信側装置でのデータあふれを防ぐための制御として、各種の通信プロトコルで行なわれている。
以下、TCPにおけるフロー制御の仕組みを説明する。TCPレベルのフロー制御は、受信ウィンドウ(一般的に、受信側装置のTCP受信バッファの空き容量に相当)を送信側装置に伝えることで、それ以上のデータが受信側装置に送られないように調整している。具体的には、受信ウィンドウは、TCPヘッダの「ウィンドウサイズ」のフィールドに格納され、受信側装置から送信側装置へのACKパケット(肯定応答パケット)を使って通知される。送信側装置では、ACKパケットを監視し、送信済みのデータサイズとACKパケットで通知された受信ウィンドウとの関係から、送信可能なデータサイズの上限を知り、その上限を超えて送信しないようにする。なお、TCPヘッダには、さらにシーケンス番号(送信するデータのストリーム全体の位置を示す番号)とACK番号(次に受信するデータのシーケンス番号)のフィールドがあり、受信側装置はACKパケットのACK番号を使って、どこまでのデータを受信したのかを送信側装置に通知する。
一方、受信側装置の処理が滞った場合のように、受信側装置が受信ウィンドウを更新しない(ACKパケットを返せない)状況が続くと、送信側装置の送信可能なデータサイズが減少する。最終的に送信可能なデータサイズが0になると、送信側装置からそれ以上のデータの送信ができなくなる。すなわち、この状態では、新たなデータ受信を示すACKパケットを受け取るか、より大きな受信ウィンドウを通知されるまでは、送信側装置は送信を行えなくなる。その後、受信側装置がデータ受信可能な状態になったら、改めてACKパケットを送信側装置に送って、新たな受信ウィンドウを通知すれば、送信側装置からのデータ送信が再開する。
本発明では、このようなフロー制御の仕組みを、(受信側装置の停滞などによる)データあふれ回避の目的ではなく、受信側装置が送信側装置からの間欠的なデータ送信を能動的に実行させる目的で利用する。
図4は、受信側装置である携帯型端末211と送信側装置203との基本的な処理の一例を示すシーケンス図である。
携帯型端末211(上述の受信側装置に相当する)と送信側装置203とは、TCPを使ったデータ送受信を行なう。
まず、携帯型端末211は、送信側装置203がバースト的に送信するデータサイズの上限を決め、それを受信ウィンドウとして送信側装置203へ通知する(ステップS701)。例えば、送信側装置203が1パケットで送信するデータサイズがDseg[バイト]である場合、携帯型端末211は、送信側装置203の送信するデータのサイズの上限を、4パケット分(=4×Dseg[バイト])に決定する。そして、携帯型端末211は、受信ウィンドウ(以後、RWINと呼ぶ)を「4×Dseg」に設定したACKパケットを、送信側装置203に送信する。
送信側装置203は、RWIN=4×Dseg[バイト]のACKパケットを受信することにより、送信可能なデータサイズ(以下、uwndという)が4×Dseg[バイト]であることを把握し、データ送信を再開できるようになる。なお、送信側装置203は、そのACKパケットの受信前には、送信可能なデータサイズをuwnd=0として把握しており、データ送信を停止している。
次に、送信側装置203は、Dseg[バイト]のパケットを4回だけ送信し、1回送信するごとにuwndをDseg[バイト]分だけデクリメントする(ステップS702〜S705)。
一方、携帯型端末211は、ステップS702〜S705で送信側装置203から送信されたデータ(パケット)を受信するが、ACKパケットを返さない制御を行なう。その結果、送信側装置203は、4回目のパケットを送信した時点(ステップS705)でuwndが0になるため、データ送信を停止する。このようにして、携帯型端末211は「送信側装置がデータを送信できない期間」を作ることができる。以後、送信側装置がデータを送信できない期間のことを、送信抑制期間と呼ぶ。その後、携帯型端末211は、所望のタイミングで「RWIN=4×Dseg」のACKパケットを送信することで、送信側装置203にデータ送信の再開を指示する(ステップS706)。
携帯型端末211は、フロー制御の仕組みを使って上記のようなデータ送信の抑制と再開の指示を繰り返すことで、携帯型端末211の所望する間隔での間欠的なデータ受信(間欠受信)を行う。そして、携帯型端末211は、受信の合間の送信抑制期間に、携帯型端末211の備える通信I/F部の電源を切断し、実際にデータやACKパケットの送受信を行なう期間だけ通信I/F部の電源を投入することで、携帯型端末211の省電力化を行なう。
なお、本実施の形態では、間欠的に通信I/F部の電源を切断または投入することにより省電力制御を行うが、必ずしも完全に電源を切断する必要はなく、通信I/F部に電力を供給した状態でその電力を調整してもよい。つまり、携帯型端末211は、通信I/F部によるデータの送受信の必要がない期間には、通信I/F部に供給される電力を、通信I/F部の送受信機能を正常に動作させるために必要な電力(以下、通常電力という)よりも抑え、データの送受信の必要がある期間には、通信I/F部に供給される電力を通常電力に戻す。即ち、本発明における省電力制御では、通信I/F部の消費電力を、通常電力よりも低い状態に変化させる制御であればよい。例えば、携帯型端末211に低消費電力モードが定義されている場合は、携帯型端末211は、通信I/F部の電源を切断する代わりに低消費電力モードに移行する。または、携帯型端末211は、通信I/F部への電源(電流)の供給を停止したり、クロックの供給を停止したりする。そして、携帯型端末211は、消費電力を通常電力に復帰させるときには、電源を投入したり、供給電力を増加させたり、クロックの提供を開始したりするなど、上記それぞれと逆の操作を行う。
このように、本発明では、フロー制御の仕組みを使って、携帯型端末(受信側装置)211がデータ受信の無い期間を能動的に作り、その期間に電源をOFFにすることで省電力化を図る。従って、省電力化の制御は、受信側装置のみで行なわれ、無線LANの省電力方式のように、アクセスポイントとの連携を必要としない。そのため、ネットワーク環境に依存せずに省電力制御が行なえる。
また、本発明では、データ受信のタイミングは、アクセスポイントのビーコン送信のタイミングに連動せず、受信側装置で自由に制御できる。従って、通信アプリケーションプログラムの必要とする遅延時間と帯域を確保できるように、データ受信の間隔およびデータサイズを調整すれば、所望の通信を継続しながら、同時に省電力化も両立して行うことができる。
さらに、本発明では、アクセスポイントでデータをバッファリングせず、受信側装置の受信可能なタイミングおよびデータサイズで送信側装置がデータを送信するので、アクセスポイントでのデータ溢れの発生を防ぐこともできる。
ここで、本実施の形態における携帯型端末211について詳細に説明する。
図5は、携帯型端末211の具体的な構成を示す構成図である。
携帯型端末211は、通信アプリケーション部101と、アプリ要求取得部102と、パラメータ決定部103と、抑制再開制御部104と、電源制御部106と、通信制御部107と、上述の通信I/F部108とを備える。
なお、本実施の形態では、通信I/F部108が通信手段として構成され、電源制御部106が電源切換手段として構成され、抑制再開制御部104が抑制手段および切換制御手段として構成されている。
通信アプリケーション部101は、通信アプリケーションプログラムを実行する。通信アプリケーション部101は、通信アプリケーションプログラムの起動時に、アプリ要求取得部102に起動通知を発行し、送信側装置203との間でデータ送受信を行なう。また、通信アプリケーション部101は、通信アプリケーションプログラムの終了時に、アプリ要求取得部102に終了通知を発行する。なお、本実施の形態では、説明の単純化のため、携帯型端末211上で同時に動作する通信アプリケーションプログラムが1つに限定されているものとする。
アプリ要求取得部102は、通信アプリケーション部101と送信側装置203との間でのデータ通信の「性能パラメータ」を入手する。ここで、「性能パラメータ」とは、通信アプリケーションプログラムによって独自に決められた帯域や遅延時間、一度に送信するパケットのサイズなどの条件(性能要件)を示すパラメータである。アプリ要求取得部102は、通信アプリケーション部101から起動通知または終了通知を受けると、同時に性能パラメータを通信アプリケーション部101から入手し、パラメータ決定部103に対して、性能パラメータ登録通知または性能パラメータ削除通知を発行する。
パラメータ決定部103は、間欠的にデータを受信するためのパラメータを決定する。間欠的にデータを受信するためのパラメータは、間欠受信の1サイクル分の時間間隔、および1サイクルの間に受信するデータサイズの2つから成る。以後、前者のパラメータを「サイクル間隔」と呼び、後者のパラメータを「サイクルデータサイズ」と呼ぶ。また、これらの2つのパラメータを総称して「間欠受信パラメータ」と呼ぶ。パラメータ決定部103は、アプリ要求取得部102から性能パラメータ登録通知または性能パラメータ削除通知を受けつけたとき、アプリ要求取得部102からの性能パラメータを元に間欠受信パラメータを決定し、抑制再開制御部104に間欠受信パラメータ登録通知または間欠受信パラメータ削除通知を送信する。
抑制再開制御部104は、送信側装置203からのデータ送信が間欠的に行なわれるように、TCPのフロー制御の仕組みを使って通信制御部107を制御する。さらに、抑制再開制御部104は、このTCPのフロー制御によって得られた送信抑制期間(送信側装置203からのデータ送信が無い期間)に通信I/F部108の電源が切断されるように、電源制御部106へ指示を出す。
具体的には、抑制再開制御部104は、間欠受信パラメータ登録通知によって受け取った間欠受信パラメータに応じて、送信側装置203からのデータ送信を抑制または再開させるタイミングを決定する。また、抑制再開制御部104は、決定したタイミングに、送信側装置203からのデータ送信を抑制または再開させるため、通信制御部107に対してACKパケットに関係する3つの要求(後述)を発行する。また、抑制再開制御部104は、送信抑制期間に連動して、電源制御部106に対して投入または切断の要求を送信する。さらに、抑制再開制御部104は、通信制御部107で送受信するTCPパケットをモニタリングし、そのモニタリングの結果を上述のタイミングの決定に利用する。
電源制御部106は、抑制再開制御部104からの投入または切断の要求に従って、通信I/F部108の電源を投入または切断する。
通信制御部107は、通信アプリケーション部101からのデータを、通信I/F部108より送信するための制御を行なうとともに、通信I/F部108で受信したデータを通信アプリケーション部101に渡すための制御を行なう。この制御には、TCP/IP(Transmission Control Protocol/Internet Protocol)などのプロトコル処理や、無線基地局202との間のネゴシエーション処理などが含まれる。通信制御部107で送受信するTCPパケットは、抑制再開制御部104からモニタリングされる。さらに、通信制御部107は、通常のTCP処理に加えて、抑制再開制御部104からの要求を受けて、ACKパケットの送信タイミングやパケット内容を変更する。具体的には、通信制御部107は、抑制再開制御部104から、ACK通常送信抑制要求、ACK通常送信再開要求、およびACK単発送信要求を受けて、それらの要求に対応する。
ACK通常送信抑制要求は、通常のACKパケット送信を抑制させる要求である。通信制御部107は、この要求を受けると、以後、TCPのデータ受信に連動してACKパケットを送信しなくなる。
ACK通常送信再開要求は、ACK通常送信抑制要求を解除させる要求である。通信制御部107は、この要求を受けると、通常のTCP処理(TCPのデータ受信に連動したACKパケットの送信)を再開する。
ACK単発送信要求は、抑制再開制御部104から指定されたタイミングで、抑制再開制御部104から指定された内容のACKパケットを送信させる要求である。通信制御部107は、この要求を受けると、TCPのデータ受信タイミングに関係なく、指定された内容のACKパケットを指定されたタイミングで送信する。なお、この要求は、ACK通常送信抑制要求を受けている状態でも有効である(送信可能である)。
通信I/F部108は、通信制御部107より受け取ったデータを無線で送信する処理を行なう。また、無線基地局202から受信したデータを通信制御部107へ渡す処理を行なう。通信I/F部108は、電源制御部106により電源の投入および切断が行なわれる。
このような携帯型端末211が初期状態から通信を開始して終了するまでの各構成要素の動作について、以下、説明する。
初期状態では、携帯型端末211の通信I/F部108の電源は切断されており、通信アプリケーション部101は、通信アプリケーションプログラムを実行していない。
通信アプリケーション部101は、通信アプリケーションプログラムを起動すると、アプリ要求取得部102に対して起動通知を発行する。この起動通知の発行によって、通信アプリケーション部101は、通信アプリケーションプログラムの複数の性能パラメータをアプリ要求取得部102に引き渡す。アプリ要求取得部102は、それらの複数の性能パラメータを受け取ると、それらを性能パラメータ管理テーブルに纏めて保存する。
図6A、図6Bおよび図6Cは、アプリ要求取得部102が管理する性能パラメータ管理テーブルを示す図である。
例えば、アプリ要求取得部102は、図6A、図6Bおよび図6Cに示す3つの性能パラメータ管理テーブル102a,102b,102cのうち何れか1つを管理する。
性能パラメータ管理テーブル102a,102b,102cはそれぞれ、起動済みの通信アプリケーションプログラムに対する複数の性能パラメータを有する。その複数の性能パラメータとしては、ストリームタイプ、帯域、および遅延時間のパラメータがある。ここで、ストリームタイプには、帯域重視型、遅延時間重視型、およびベストエフォート型の3つのタイプがある。
大容量のファイルを長時間に一定レートでダウンロードしようとする通信アプリケーションプログラムを実行する通信アプリケーション部101は、ストリームタイプ「帯域重視型」を含む複数の性能パラメータをアプリ要求取得部102に引き渡す。その結果、アプリ要求取得部102は、図6Aに示すストリームタイプ「帯域重視型」の性能パラメータ管理テーブル102aを保持して管理する。
例えば、この性能パラメータ管理テーブル102aは、図6Aに示すように、ストリームタイプ「帯域重視型」と、帯域「BW=BWs[Byte/sec]」とを含む。
また、VoIPなどデータの遅延時間の要求の厳しい通信アプリケーションプログラムを実行する通信アプリケーション部101は、ストリームタイプ「遅延時間重視型」を含む複数の性能パラメータをアプリ要求取得部102に引き渡す。その結果、アプリ要求取得部102は、図6Bに示すストリームタイプ「遅延時間重視型」の性能パラメータ管理テーブル102bを保持して管理する。
例えば、この性能パラメータ管理テーブル102bは、図6Bに示すように、ストリームタイプ「遅延時間重視型」と、帯域「BW=BWb[Byte/sec]」と、遅延時間「DT=DTb[sec]」とを含む。
また、遅延時間や帯域に対する明確な要求をせずに大容量のファイルをできるだけ早くダウンロードしようとする通信アプリケーションプログラムを実行する通信アプリケーション部101は、ストリームタイプ「ベストエフォート型」を示す性能パラメータをアプリ要求取得部102に引き渡す。その結果、アプリ要求取得部102は、図6Cに示すストリームタイプ「ベストエフォート型」の性能パラメータ管理テーブル102cを保持して管理する。
例えば、この性能パラメータ管理テーブル102cは、図6Cに示すように、ストリームタイプ「ベストエフォート型」のみを性能パラメータとして含む。
アプリ要求取得部102は、通信アプリケーション部101から起動通知を受けたときには、その起動通知に含まれる性能パラメータの情報をもとに、性能パラメータ管理テーブル102a,102b,102cの何れか1つを作成する。さらに、アプリ要求取得部102は、パラメータ決定部103に対して、その性能パラメータ管理テーブルを含む性能パラメータ登録通知を発行する。なお、アプリ要求取得部102は、通信アプリケーション部101から終了通知を受けたときには、作成された性能パラメータ管理テーブルを削除する。
パラメータ決定部103は、性能パラメータ登録通知を受けると、性能パラメータ管理テーブルの内容を読み出し、その内容を元に、間欠受信パラメータを決定する。
パラメータ決定部103は、間欠受信パラメータであるサイクル間隔TcとサイクルデータサイズDcとを、基本的に、Dc/Tc=BW(性能パラメータの帯域)を満たすような条件で決定する。なお、サイクルデータサイズDcの適切なサイズは、携帯型端末211のTCPの条件(TCP受信バッファサイズやMSS(Maximum Segment Size))や通信アプリケーションプログラムの条件(データ送信の単位)などによって変わる。したがって、パラメータ決定部103は、これらの条件も加味して間欠受信パラメータを決定する。なお、本実施の形態では、説明を簡単にするため、これらの条件が常に変化しない環境を想定し、パラメータ決定部103はこれらの条件に影響されることなく間欠受信パラメータを決定する。
具体的に、パラメータ決定部103は、間欠パラメータを決定するためのルールを予め記憶している。
図7は、間欠受信パラメータの決定ルールを示す図である。
パラメータ決定部103は、ストリームタイプ「帯域重視型」の性能パラメータ管理テーブルを読み出すと、その性能パラメータ管理テーブルに示される性能パラメータである帯域「BW=BWs[Byte/sec]」を、間欠受信パラメータを決定するための条件として用いる。つまり、パラメータ決定部103は、間欠受信パラメータの決定ルール、即ち、サイクルデータサイズDc=C1(C1は定数)に従い、サイクルデータサイズDcとしてC1[Byte/sec]を決定する。そして、パラメータ決定部103は、間欠受信パラメータの決定ルール、即ち、サイクル間隔Tc=Dc/BWに従い、サイクル間隔TcとしてC1/BWs[sec]を決定する。そして、パラメータ決定部103は、その決定されたサイクル間隔TcおよびサイクルデータサイズDcを示す間欠受信パラメータ管理テーブルを生成する。
つまり、パラメータ決定部103は、ストリームタイプ「帯域重視型」の性能パラメータ管理テーブルを読み出すと、最初にサイクルデータサイズDcを決定した後、それに合わせてサイクル間隔Tcを決定する。
一方、パラメータ決定部103は、ストリームタイプ「遅延時間重視型」の性能パラメータ管理テーブルを読み出すと、その性能パラメータ管理テーブルに示される性能パラメータである帯域「BW=BWb[Byte/sec]」と遅延時間「DT=DTb[sec]」とを、間欠受信パラメータを決定するための条件として用いる。つまり、パラメータ決定部103は、間欠受信パラメータの決定ルール、即ち、サイクル間隔Tc=DT/C2(C2は1より大きい定数)に従い、サイクル間隔TcとしてDTb/C2[sec]を決定する。なお、C2が小さいほど、サイクル間隔Tcが長くなり、省電力効果が高まる。そして、パラメータ決定部103は、間欠受信パラメータの決定ルール、即ち、サイクルデータサイズDc=BW×Tcに従い、サイクルデータサイズDcとしてBWb×DTb/C2[Byte]を決定する。そして、パラメータ決定部103は、その決定されたサイクル間隔TcおよびサイクルデータサイズDcを示す間欠受信パラメータ管理テーブルを生成する。
つまり、パラメータ決定部103は、ストリームタイプ「遅延時間重視型」の性能パラメータ管理テーブルを読み出すと、ストリームタイプ「帯域重視型」の場合とは逆に、遅延時間の要件が厳しいので、サイクル間隔Tcを先に決めて、サイクルデータサイズDcをそれに合わせて決める。このように、VoIPなどの遅延時間重視型の通信アプリケーションプログラムに基づく性能パラメータ管理テーブルの場合には、パラメータ決定部103は、性能パラメータの遅延時間DTを使って、「Tc<DT」という条件、即ち、サイクル間隔Tc=DT/C2を、サイクル間隔Tcの決定ルールとして追加している。
また、パラメータ決定部103は、ストリームタイプ「ベストエフォート型」の性能パラメータ管理テーブルを読み出すと、間欠受信パラメータの決定ルールに従い、サイクル間隔TcおよびサイクルデータサイズDcを決定しない。つまり、ベストエフォート型については、帯域重視型や遅延時間重視型のような明確な性能要件がないため、パラメータ決定部103は、基本的には複雑な間欠受信制御を行わずに通信I/F部108の電源をONにしたまま一気にデータ転送を完了させるような制御を行う。ただし、ベストエフォート型に対しても間欠受信を行うことは可能である。
図8は、パラメータ決定部103によって生成された間欠受信パラメータ管理テーブルの一例を示す図である。
パラメータ決定部103は、ストリームタイプ「帯域重視型」の性能パラメータ管理テーブルを読み出すと、例えば、間欠受信パラメータであるサイクル間隔TcとしてC1/BWs[sec]と、間欠受信パラメータであるサイクルデータサイズとしてC1[Byte]とを示す間欠受信パラメータ管理テーブルを生成する。
パラメータ決定部103は、性能パラメータ登録通知を受けるごとに、上記の手順で間欠受信パラメータ管理テーブルを生成する。そして、パラメータ決定部103は、生成後、抑制再開制御部104に対して間欠受信パラメータ登録通知を発行する。
抑制再開制御部104は、間欠受信パラメータ登録通知を受けると、間欠受信パラメータ管理テーブルの内容を読み出して、その内容に基づき、電源制御部106への投入要求の発行と、通信制御部107で送受信されるTCPパケットのモニタリングの開始と、通信制御部107に対するACK通常送信再開要求の発行とを行ない、間欠受信の準備状態に入る。この処理に連動して、電源制御部106は通信I/F部108に電源の投入を指示する。その結果、通信I/F部108の電源が投入される。
以下、本実施の形態における間欠受信の準備状態の処理について説明する。
通信アプリケーション部101は、通信アプリケーションプログラム起動時の処理を行なった後、送信側装置203との接続を確立し、送信側装置203からのデータ受信を開始する。
通信制御部107では、通信アプリケーション部101からの接続要求を受けて、無線基地局202との間のネゴシエーション処理、および、送信側装置203とのTCPコネクションの確立などの処理を行なう。TCPコネクションの確立後、携帯型端末211と送信側装置203の間のデータは、無線基地局202および通信I/F部108を介して送受信され、TCPパケットの送受信処理は、通信制御部107で行なわれる。
抑制再開制御部104は、通信制御部107で受信されるTCPパケットをモニタリングし、受信データの帯域(受信帯域)が、間欠受信パラメータ管理テーブルに設定されている帯域(設定帯域BW=Dc/Tc)に到達するのを待つ。例えば、抑制再開制御部104は、サイクル間隔Tcの経過ごとに、そのサイクル間隔Tcの間に受信したTCPパケットのデータサイズを合計することで、合計データサイズTlDを算出する。そして、抑制再開制御部104は、「TlD/Tc≧BW」の条件を満たす回数が所定回数以上だけ続いたときに、受信帯域が設定帯域BWに到達したと見なす。
抑制再開制御部104は、受信帯域が設定帯域BWに到達すると、送信側装置203からの送信を抑制するために、通信制御部107に対してACK通常送信抑制要求を発行する。なお、この発行は、間欠受信の1回目の処理に相当する。このとき、抑制再開制御部104は、通信制御部107からそれまでに送信した最後のACKパケットの情報、すなわち、ACK番号(LAST_ACKNO)と受信ウィンドウ(LAST_RWIN)とを保持しておく。通信制御部107は、抑制再開制御部104からACK通常送信抑制要求を受けると、以後、TCPのデータ受信は続けるものの、受信時にACKパケットを送信しないようにする。
一方、送信側装置203は、携帯型端末211からACKパケットが送られてこなくなっても、自身の管理する送信可能なデータサイズ(uwnd)が0になるまで、データ送信を続け、uwndが0になった時点で、データ送信を終了する。その結果、送信側装置203は送信抑制期間に入る。
抑制再開制御部104は、ACK通常送信抑制要求の発行後もTCPパケットをモニタリングし、送信側装置203での送信可能なデータサイズ(uwnd)が0になるのを待つ。具体的には、抑制再開制御部104は、受信したTCPパケットのシーケンス番号とデータサイズを参照し、(シーケンス番号+データサイズ)が(LAST_ACKNO+LAST_RWIN)に達するのを待つ。
抑制再開制御部104は、uwndが0になったと判断したら、電源制御部106へ切断要求を発行する。電源制御部106は切断要求を受けると、通信I/F部108の電源を切断する。
抑制再開制御部104は、電源制御部106へ切断要求を発行した後、所定時間の満了を待つ。この所定時間は、サイクル間隔Tcと一致していてもよいし、異なる時間であっても良い。送信側装置203は、既に送信抑制期間に入っているので、通信I/F部108の電源が切断されている間、データ送信を行なわない。
所定時間が満了したとき、抑制再開制御部104は、電源制御部106へ投入要求を発行する。さらに、抑制再開制御部104は、間欠受信の準備状態が満了したと見なし、定常状態に遷移する。電源制御部106は投入要求を受けると、通信I/F部108の電源を投入する。
以下、本実施の形態における定常状態の処理について説明する。
図9は、本実施の形態における携帯型端末211と送信側装置203の定常状態での動作を示すシーケンス図である。
定常状態での1サイクル分の動作は、送信再開処理と、送信抑制期間の開始処理と、送信抑制期間の終了処理との3つのステップに分けられる。
送信再開処理(ステップ1)では、抑制再開制御部104は、送信側装置203からのデータ送信を再開させるため、通信制御部107に対してACK単発送信要求を発行する。このとき、抑制再開制御部104は、ACKパケットの受信ウィンドウ(RWIN)として、間欠受信パラメータ管理テーブルに格納されたサイクルデータサイズDcを指定する。通信制御部107は、時刻T1に、ACK単発送信要求を受け取ると、RWIN=DcのACKパケットP1を通信I/F部108を介して送信する。また、抑制再開制御部104は、送信したACKパケットP1のACK番号を保持しておく。
一方、送信側装置203は、携帯型端末211からのACKパケットP1(RWIN=Dc)を受信すると、間欠受信の準備状態、または、送信抑制期間が終了し、データ送信が可能な状態になる。その結果、送信側装置203は、携帯型端末211あてのTCPパケット(データP2)の送信を再開する。
携帯型端末211の抑制再開制御部104は、間欠受信の準備状態でACK通常送信抑制要求を発行しているので、通常のACKパケットの送信、つまりデータ受信に連動したACKパケットの送信は既に抑制されている。すなわち、通信制御部107は、送信側装置203からのデータP2を受信して、そのデータを通信アプリケーション部101に引渡しても、送信側装置203に対してACKパケットを送信しない。そのため、間欠受信の1サイクル(サイクル間隔Tc)において、送信側装置203から受信されるデータP2のサイズは、サイクルデータサイズDcに制限される。
送信抑制期間の開始処理(ステップ2)では、抑制再開制御部104は、時刻T1以降、通信制御部107で受信されるTCPパケットをモニタリングする。そして、抑制再開制御部104は、時刻T1以降で受信されたデータサイズがサイクルデータサイズDcに到達したかどうか、すなわち、送信側装置203の送信可能なデータサイズ(uwnd)が0になったかどうかを確認し続ける。このとき抑制再開制御部104は、間欠受信の準備状態での確認処理と同じく、最後に送信したACKパケットのACK番号と受信ウィンドウ(RWIN=Dc)を使って上述の確認を行う。時刻T1以降で受信したデータサイズがサイクルデータサイズDcに到達したとき、即ち時刻T2で、抑制再開制御部104は、送信抑制期間が開始したとみなし、電源制御部106に対して切断要求を発行する。電源制御部106は切断要求を受けると、通信I/F部108の電源を切断する。
送信抑制期間の終了処理(ステップ3)では、本発明の実施の形態における携帯型端末211は、時刻T1を起点として、サイクル間隔Tcの時間経過後の時刻T3を、送信抑制期間の終了点と見なす。つまり、抑制再開制御部104は、タイマにより時刻T3を検出し、電源制御部106に投入要求を発行する。その投入要求により、電源制御部106は時刻T3に通信I/F部108の電源を投入する。
携帯型端末211は、定常状態では、上記3つのステップを1サイクルとして、繰り返し実行する。
通信アプリケーション部101は、通信アプリケーションプログラムを終了するときには、通信制御部107に対して送信側装置203とのコネクションの切断を要求し、アプリ要求取得部102に対して終了通知を発行する。
通信制御部107は、通信アプリケーション部101によるコネクション切断の要求により、TCPのコネクションを切断する。
アプリ要求取得部102は、終了通知を受け付けると、性能パラメータ管理テーブルの内容をクリアし、パラメータ決定部103に対して性能パラメータ削除通知を発行する。
パラメータ決定部103では、性能パラメータ削除通知を受けると、間欠パラメータ管理テーブルの内容をクリアし、抑制再開制御部104に対して間欠受信パラメータ削除通知を発行する。
抑制再開制御部104は、間欠受信パラメータ削除通知を受けると、通信制御部107で送受信されるTCPパケットのモニタリングを停止し、さらに、電源制御部106への切断要求の発行を行なう。
電源制御部106は、抑制再開制御部104の処理(切断要求の発行)に連動して、通信I/F部108の電源を切断する。
以上の処理により、携帯型端末211の状態は初期状態に戻る。
図10は、本実施の形態おける携帯型端末211の動作を示すフローチャートである。
まず、本実施の形態の携帯型端末211は、送信側装置203に対してRWIN=DcのACKパケットを送信する(ステップS10)。このとき、携帯型端末211の抑制再開制御部104は、通信I/F部108への電源投入のタイミングを特定するために、タイマによる計時を開始する。
そして、携帯型端末211は、そのACKパケットに対して送信側装置203から送信されたサイクルデータサイズDc分のデータ(TCPパケット)を受信する(ステップS12)。このとき、本実施の形態の携帯型端末211は、受信したデータに対して通常行われるACKパケットの送信を停止することで、送信側装置203からのデータの送信を抑制している。
そして、携帯型端末211は、ステップS12でサイクルデータサイズDc分の全てのデータを受信すると、通信I/F部108の電源を切断する(ステップS14)。
携帯型端末211は、通信I/F部108の電源を切断すると、上述のタイマに基づいて、ステップS10でのACKパケットの送信時からサイクル間隔Tcが経過したか否かを判別する(ステップS16)。
ここで、携帯型端末211は、サイクル間隔Tcが経過していないと判別したときには(ステップS16のNo)、ステップS14からの処理を繰り返し、サイクル間隔Tcが経過したと判別したときには(ステップS16のYes)、通信I/F部108の電源を投入する(ステップS18)。
そして、携帯型端末211は、送信側装置203との通信を終了すべきか否かを判別し(ステップS20)、終了すべきと判別したときには(ステップS20のYes)、全ての処理を終了する。また、携帯型端末211は、終了すべきでないと判別したときには(ステップS20のNo)、ステップS10からの処理を繰り返し実行する。このようなステップS10〜S20の処理によって、間欠受信の1サイクルが実行さる。
以上のように、本実施の形態に係る携帯型端末211は、無線LANの省電力方法に依存せず、例えばTCPなどのフロー制御機構を持つプロトコルを使って、送信側装置203との間で通信を行いながら省電力化を行なう。そのため、本実施の形態では、アクセスポイントでの省電力機能のサポート状況やネットワークデバイスの種類にも関係なく、携帯型端末211の省電力化を図ることができる。
また、本実施の形態では、無線LANの省電力方法に依存しないので、携帯型端末211のデータの受信タイミングをビーコン送信タイミングに連動させる必要がない。そのため、遅延時間と帯域を確保した通信を続けながら、同時に省電力能力を向上することができる。
さらに、本実施の形態では、送信側装置203からのデータ到着が無い期間を積極的に作ったうえで、携帯型端末211の電源を切断するので、ジッタが発生しても送信側装置203と携帯型端末211との間のデータ溢れの発生を防ぐことができる。
なお、本実施の形態では、携帯型端末211はTCPのプロトコルに従って動作したが、そのプロトコルはTCP以外のプロトコルであっても、フロー制御機構を持つプロトコルであればよく、既存のフロー制御付きプロトコルであってもよい。すなわち、本実施の形態を実現するために、送信側装置と携帯型端末の両方で新たなプロトコルを追加する必要はなく、携帯型端末に本発明の省電力方法に対応する処理部を追加するだけで実現できる。
ここで、本発明について実施の形態1を用いて説明したが、実施の形態1を変形しても本発明を実施することができる。
例えば、実施の形態1では、送信側装置203からのデータ送信の抑制方法として、「携帯型端末211からACKパケットを送信しない」という方法を説明したが、データ送信の抑制方法はこれに限定されるものではない。例えば、携帯型端末211は、受信ウィンドウ(RWIN)=0のACKパケットを送信側装置203に送ることで、明示的に送信側装置203からのデータ送信を抑制してもよい。
図11は、受信ウィンドウ(RWIN)=0のACKパケットが送信される動作を示すシーケンス図である。
例えば、携帯型端末211の通信制御部107は、図11に示すように、送信側装置203からのデータP2を受信して、そのデータを通信アプリケーション部101に引渡すと、時刻T2に、送信側装置203に対して受信ウィンドウ(RWIN)=0のACKパケットP3を送信する。このようなACKパケットP3を送信した場合にも、送信側装置203から受信するデータP2のサイズをサイクルデータサイズDcに制限して、送信側装置203からのデータ送信を抑制することができる。
このように受信ウィンドウ(RWIN)=0のACKパケットを送信するような抑制方法の場合には、TCPの制御方法に従って動作する送信側装置203での再送処理を予防することができる。つまり、図9に示す、ACKパケットを送信しないような抑制方法の場合には、送信側装置203にはACKパケットが全く届かないので、送信側装置203は、TCPの制御方法に従って、タイムアウトによりパケットロスが発生したと判断してデータを再送してしまうケースがある。このとき、送信側装置203の送信可能データ(輻輳ウィンドウと呼ばれる)が1パケット分(上述のMSS)低下するという弊害もある。ところが、図11に示すように、RWIN=0のACKパケットを送信するような抑制方法では、送信側装置203は、ACKパケットを受け取るため、タイムアウトを止めることができる。なお、携帯型端末211は、RWIN=0のACKパケットを、uwnd=0となる時刻T2に送っても良いし、時刻T2以降で且つ送信側装置203でタイムアウトが発生する前であれば任意のタイミングで送っても良い。また、携帯型端末211は、RWIN=0のACKパケットを、定常状態だけでなく、間欠受信の準備状態に送っても良い。
また、携帯型端末211は、送信側装置203からのデータ送信を抑制するため、RWIN=0以外のACKパケットを送ってもよい。つまり、送信側装置203から送信されるデータのサイズがサイクルデータサイズDc(送信再開を指示するACKパケットのRWINで指定されたサイズ)以下になるのであれば、携帯型端末211はどのようなACKパケットを送信してもよい。したがって、携帯型端末211は、「Dc−(時刻T1以降で受信したデータのサイズ)」を越えない値をRWINに設定して、ACKパケットを送信してもよい。
また、本発明における携帯型端末211が搭載する無線通信デバイスは、無線LAN(IEEE802.11a/b/g)のデバイスの他、任意の無線通信デバイスであってもよい。
さらに、実施の形態1では、携帯型端末211が通信I/F部108として無線通信デバイスを搭載したネットワーク構成を想定していたが、本発明の携帯型端末は通信I/Fの種類に限定されるものではない。例えば、無線LAN以外の無線I/Fや有線の通信I/Fを使ってもよい。なお、有線の通信I/Fを使う場合は、ネットワーク構成として無線基地局202が不要になり、代わりに有線のルータなどの装置が必要となる。また、実施の形態1では、アクセスポイント(無線基地局202)の存在する無線LANのネットワーク構成を想定していたが、アクセスポイントの無いアドホックモードでの環境を想定してもよい。その場合、送信側装置203と携帯型端末211はインターネット204を経由せず、無線LANで直接接続される。
また、フロー制御付きのプロトコルとしてTCPを中心に説明したが、本発明に使用されるプロトコルはTCPに限定されるわけではない。本発明に使用されるプロトコルは、フロー制御の機能を持っていれば他のプロトコルでもよく、例えば、アプリケーション層でフロー制御を実現して、そのフロー制御でTCPと同様の送信抑制および送信再開の制御を行なうことで省電力制御を行なってもよい。また、携帯型端末が送信側装置と直接接続される場合は、送信側装置と携帯型端末との間のデータリンク層でのフロー制御を使って省電力制御を行なってもよい。また、フロー制御は、携帯型端末211と送信側装置203の間に限定されるわけではない。例えば、中継装置と携帯型端末の間でフロー制御を行なうプロトコルがあれば、そのフロー制御を同様に利用して省電力制御を行なってもよい。
また、本発明では、送信抑制期間に通信I/F部108の電源を切断または投入する方法は、どのような方法であってもよい。例えば、本発明を無線LANのパワーセーブモードの処理と連動させて、本発明での電源切断のタイミングでパワーセーブモードたるドーズモードへの移行を行なっても良い。また、電源切断のタイミングは、送信抑制期間の間であれば任意のタイミングでよい。
また、実施の形態1では、単純化のため、通信アプリケーション部101で同時動作する通信アプリケーションプログラムを1つに限定したが、本発明の省電力方法は通信アプリケーションプログラムの数に依存しない。複数の通信アプリケーションプログラムが同時に動作する環境でも、例えば、複数の通信アプリケーションプログラムの間欠受信のタイミングを統合して、同様のフロー制御に基づく電力制御を行なっても良い。
また、アプリ要求取得部102における性能パラメータの取得方法は、本発明の本質ではない。したがって、アプリ要求取得部102は、なんらかの方法で性能パラメータを取得できればよく、その取得方法は実施の形態1の手順に限定されるものではない。例えば、実施の形態1では、アプリ要求取得部102は、通信アプリケーション部101から性能パラメータを直接取得したが、自立的に性能パラメータを取得してもよい。つまり、アプリ要求取得部102は、データ送受信のパケットを解析したり、OS(Operating System)上で通信アプリケーションプログラムの起動および終了のタイミングを監視したりすることで、性能パラメータを取得する。
例えば、省電力の制御を行なっていないとき、つまり通信I/F部108の電源が常に投入されているときにおける、携帯型端末211と送信側装置203とのデータ送受信の帯域および遅延時間の少なくとも一方が、通信アプリケーションプログラムとしての性能要件に一致している。このような場合には、アプリ要求取得部102は、省電力制御が行われていない状態で、通信制御部107のデータ送受信のパケットをモニタリングして帯域および遅延時間の少なくとも一方を推定し、その推定値を性能パラメータとして使う。これにより、アプリ要求取得部102はパケット解析により自立的に性能パラメータを取得する。
また、実施の形態1では、通信アプリケーションプログラムの起動および終了のタイミングを取得して、通信アプリケーションの起動中は性能パラメータを常に固定値として扱ったが、性能パラメータを動的に変化させてもよい。
また、実施の形態1では、図7に示す決定ルールに基づいて間欠受信パラメータを決定したが、他のルールに基づいて間欠受信パラメータ(サイクル間隔およびサイクルデータサイズ)を決めてもよい。また、間欠受信パラメータを固定させておく必要はなく、動的に変化させてもよい。即ち、サイクル間隔TcやサイクルデータサイズDcの値を一定期間ごとに変化させてもよいし、毎回異なる値に変化させてもよい。また、性能パラメータに関しても同様であって、実施の形態1では、図6A、図6Bおよび図6Cに示す性能パラメータを用いたが、これらの性能パラメータ以外のパラメータを用いてもよい。例えば、実施の形態1では、ストリームタイプを3種類に分類しているが、2種類や4種類以上に分類してもよく、他の種別のストリームタイプに分類してもよい。さらに、実施の形態1では、これらのストリームタイプに応じて、間欠受信パラメータの決定ルールを異ならせたが、これらのストリームタイプに関わらず、常に一定のルールに基づいて間欠受信パラメータを決定してもよい。
また、実施の形態1では、通信開始から測定した帯域が設定帯域BWに到達するまでの間は「間欠受信の準備状態」として電源を常にONにしていたが、この期間においても間欠受信による省電力制御を行ってもよい。ただし、この期間では送信側装置203においてはTCPのスロースタート制御が行われるため、ウィンドウサイズがRTT(Round Trip Time)の経過毎に1MSS,2MSS,4MSSというように増加していく。なお、RTTは、ACKパケットが送信されてからそれに対応するデータが受信されるまでの時間であり、MSSは、1パケットに含まれるTCPデータの最大サイズである。このため、抑制再開制御部104は、これに合わせて制御を行う必要がある。具体的には、抑制再開制御部104は、最初のデータパケットが受信されると、通信I/F部108の電源を切断させる。一定期間後、抑制再開制御部104は、通信I/F部108の電源を再投入させ、ACKパケット(RWIN=2×MSS)を送信させ、2つのデータパケットが受信された時点で通信I/F部108の電源を切断させる。さらに、抑制再開制御部104は、一定期間後、通信I/F部108の電源を再投入させ、ACKパケット(RWIN=4×MSS)を送信させ、4つのデータパケットが受信された時点で通信I/F部108の電源を切断させる。なお、上述のデータパケットは、送信側装置から受信側装置にTCPにより送信されるパケットであって、このデータパケットとACKパケットとを総称してTCPパケットという。
このように、抑制再開制御部104は、間欠受信サイクルごとに、通知する受信ウィンドウ(RWIN)のサイズを倍々にしていく。ただし、送信側装置203ではあるタイミングでスロースタート制御が終了し、それ以降はACKパケット受信によるウィンドウサイズの上昇が小さくなる。抑制再開制御部104はこれをタイムアウトなどにより検知し、それ以降はACKパケットにより通知する受信ウィンドウを少しずつ上昇させる制御に移行する。このような制御により、通知する受信ウィンドウがサイクルデータサイズDcに達した時点で、抑制再開制御部104は前述の定常状態の処理を開始する。
(実施の形態2)
本発明の実施の形態2に係る通信装置について説明する。実施の形態1では、送信側装置203からのデータ送信が無い送信抑制期間にのみ、通信I/F部108の電源を切断したが、本実施の形態では、別の期間にも通信I/F部108の電源を切断して、省電力効果をさらに向上する。具体的には、携帯型端末が送信再開の指示を出してから、実際に送信側装置203からのデータが到着するまでの期間も、通信I/F部108の電源が切断される。
なお、本実施の形態において、実施の形態1と同様の機器および構成については、同一の参照符号を付して説明を省略する。本実施の形態に係る通信システムのネットワーク構成は、実施の形態1の図3に示す通信システムのネットワーク構成と同じであるため、説明を省略する。
図12は、本実施の形態における携帯型端末の具体的な構成を示す構成図である。
本実施の形態における携帯型端末211aは、通信アプリケーション部101と、アプリ要求取得部102と、パラメータ決定部103と、抑制再開制御部804と、電源制御部106と、通信制御部107と、通信I/F部108と、RTT推定部809とを備える。つまり、本実施の形態における携帯型端末211aは、実施の形態1の携帯型端末211の抑制再開制御部104の代わりに、抑制再開制御部804を備えるとともに、実施の形態1の携帯型端末211にはないRTT推定部809を備えている。
RTT推定部809は、フロー制御付きプロトコル上でのRTTを推定する。なお、RTTは、携帯型端末211aと送信側装置203の間のパケットの往復時間に相当する。RTT推定部809は、通信制御部107における送受信パケットをモニタリングして、RTTの最短値を推定し、その結果を抑制再開制御部804に送る。例えば、RTT推定部809は、通信制御部107のモニタリングにより、携帯型端末211aと送信側装置203との間で往復するパケットの組の往復時間を、その組ごとに所定回数だけ測定し、その中で最短の往復時間をRTTの最短値とする。
ここで、携帯型端末211aと送信側装置203との間で往復するパケットの組とは、携帯型端末211aから送信されるパケットと、その送信に対して送信側装置203が応答して送信するパケットとの組であれば、どのようなパケットの組でも良い。例えば、図9に示すように、時刻T1で携帯型端末211aが送信するACKパケットP1(受信ウィンドウ>0)と、それに対して送信側装置203から送信される最初のデータパケットP2との組であってもよい。なお、RTTの最短値の推定方法は、本発明の省電力方法の本質に関わるものではないので、上述の方法に限定されるものではなく、他の方法であってもよい。
抑制再開制御部804は、実施の形態1の抑制再開制御部104の機能を有するとともに、RWIN>0のACKパケットが送信されてから、RTT推定部809で推定されたRTT(以下、RTT推定値という)が経過するまでの期間にも、通信I/F部108の電源を切断するように指示する。具体的には、抑制再開制御部804は、RTT推定部809からRTT推定値を取得する。さらに、抑制再開制御部804は、ACKパケット(RWIN>0)の送信後のタイミングに、電源制御部106に対して切断要求を発行し、ACKパケット(RWIN>0)の送信直後からRTT推定値が経過するタイミングに、電源制御部106に対して投入要求を発行する。
また、抑制再開制御部804は、抑制再開制御部104と同様の処理を行なうことで、送信抑制期間にも、通信I/F部108の電源のON/OFFを行なう。
図13は、本実施の形態に係る携帯型端末211aと送信側装置203の省電力方法を示すシーケンス図である。
図13において、携帯型端末211aが送信再開の指示を出してから、実際に送信側装置203からのデータが到着するまでの期間は、時刻T11から時刻T12の期間に対応する。この期間では、実施の形態1で説明した送信抑制期間と同様、送信側装置203からのデータ送信が無い期間なので、通信I/F部108の電源を切断しても問題ないはずである。
そこで、本実施の形態に係る省電力方法を適用する携帯型端末211aは、ACKパケットP1(RWIN=Dc)を送信する間、つまり時刻T10〜時刻T11の期間だけ通信I/F部108の電源を投入し、その後、時刻T12まで通信I/F部108の電源を切断する。時刻T11〜時刻T12の時間は、上述のようにRTT推定部809によって推定されたRTT推定値に相当する。携帯型端末211aは、送信側装置203からのデータを受信している期間、つまり時刻T12〜時刻T13の期間には、電源を再投入し、その後の時刻T13〜時刻T20の送信抑制期間には、実施の形態1と同様、電源を切断する。
なお、抑制再開制御部804は、ACKパケット(RWIN>0)の送信後に、電源制御部106に対して切断要求を発行するが、その送信の時刻T11以降のタイミングであれば任意のタイミングで発行してもよい。また、抑制再開制御部804は、ACKパケット(RWIN>0)の送信直後からRTT推定値が経過するタイミングに、電源制御部106に対して投入要求を発行するが、時刻T12以前であれば任意のタイミングで発行してもよい。特に、投入要求のタイミングに関してはRTT推定値が実際の最小RTT値より短い場合も考慮し、一定時間だけ早めに投入要求を発行すること、もしくは、測定したRTT値の平均や、分散、サンプル数などの統計値に基づいて計算された値分だけ早めに投入要求を発行することも有効である。
また、本実施の形態では、ベストエフォート型であっても、ACKパケット(RWIN>0)が送信されてからRTTが経過するまでの間に電源をOFFすることで省電力化を図ることができる。
ここで、ベストエフォート型の通信では間欠受信は行われない。これは、ベストエフォート型の通信アプリケーションプログラムでは、途切れなくデータ転送を行うことを前提としているからである。即ち、送信側装置203は、リアルタイムに送信データを生成しないため保持しているデータを連続的に送信でき、受信側装置は全てのデータを保存するメモリを保持するためデータを連続的に受信できる。したがって、ベストエフォート型の通信では、送信抑制期間がないため、途切れなくデータ転送が行われ、その分データ全体の受信完了までの期間が短くなる。ところが、実施の形態1では、送信抑制期間をなくすと、電源をOFFにすることができないため、消費電力を削減することができない。また、この場合、一定のサイズのデータを転送するのに必要な消費電力は総転送データ量で決まってしまう。
しかし、本実施の形態では、携帯型端末211aが送信再開の指示を出してから、実際に送信側装置203からのデータが到着するまでの期間に、携帯型端末211aは通信I/F部108の電源を切断するため、ベストエフォート型の通信においても、データ転送レートを落とさずに省電力化を図ることができる。なお、この場合、間欠受信パラメータであるサイクルデータサイズDcを、パケットロスの発生しないできるだけ大きな値とすることが望ましい。また、携帯型端末211aは、間欠受信パラメータであるサイクル間隔Tcを規定せずに、送信側装置203からサイクルデータサイズDc分のパケットを受け取ると、即座に次のサイクルでのACKパケット(RWIN=Dc)を送信すればよい。
このように、本実施の形態では、実施の形態1での省電力方法に対して、通信I/F部108の電源を切断する期間を追加することで、さらに省電力効果を向上させることができる。
(実施の形態3)
次に、本発明の実施の形態3に係る通信装置について説明する。本実施の形態に係る通信装置は、パケットロスが発生したときにも、通信品質と省電力効果の向上を両立して行うことができる。
実施の形態1では、抑制再開制御部104は、受信したTCPパケットのシーケンス番号とデータサイズを参照し、(シーケンス番号+データサイズ)が(LAST_ACKNO+LAST_RWIN)に到達したことによって、送信側装置203が送信抑制期間に入ったことを検知し、通信I/F部108の電源を切断させていた。
しかし、このような制御は、以下の2つの条件が成り立っている状況においてのみ正しく行われる。
第1の条件は、(シーケンス番号+データサイズ)が(LAST_ACKNO+LAST_RWIN)となるまでパケットを受信側装置が受信できることである。
第2の条件は、受信側装置が通知した受信ウィンドウ(RWIN)分だけ送信側装置203が送信可能であることである。
実際、第1の条件は、パケットロスが発生した場合には保証されない。パケットロスは様々な原因により発生する。例えば、電波状況が悪い無線区間にパケットロスが発生する。または、中継ルータや無線アクセスポイントなどの中継装置において他のフローと競合することによる中継装置内のバッファ溢れによってパケットロスが発生する。または、受信側装置で処理可能レートを越えるトラフィックを受信した場合の受信装置内のバッファ溢れによってパケットロスが発生する。
また、第2の条件も、パケットロスが発生した場合には保証されないことがある。パケットロスが発生すると、TCPに従って処理を行なう送信側装置203はパケットロスをネットワークの輻輳を示す情報と解釈し、輻輳制御を目的として管理している輻輳ウィンドウ(以下、CWINと呼ぶ)を小さくする。実際の送信側装置203からのデータの送信量は、通知されたRWINとCWINの小さい方を上限として制限される。したがって、受信側装置から通知されたRWINよりもCWINが小さくなる状況がパケットロスにより引き起こされると、送信側装置203はRWIN分のパケットを送信できなくなる。
なお、TCPに従って処理を行なう送信側装置203は、通常、以下の2つの方法によってパケットロスを検知する。
第1のロス検知方法では、送信側装置203は、送信したパケットに対するACKパケットが一定時間(再送タイムアウト時間と呼ばれる)経過後も受信されなかった場合に、パケットロスを検知する。この場合、送信側装置203は、CWINを1まで減少させ、その後、ロスされたパケットを再送パケットとして送信する。
第2のロス検知方法では、送信側装置203は、同一のACK番号を持つ複数(通常4つ)のACKパケットを受信した場合に、パケットロスを検知する。この場合、送信側装置203は、即座に再送パケットを送信し、再送パケットに対するACKパケットを受信した後は、CWINをパケットロス検知前のCWINの半分にする。
図14は、本実施の形態における携帯型端末の具体的な構成を示す構成図である。
本実施の形態の携帯型端末211bは、通信アプリケーション部101と、アプリ要求取得部102と、パラメータ決定部103と、抑制再開制御部904と、電源制御部106と、通信制御部107と、通信I/F部108とを備える。つまり、本実施の形態における携帯型端末211bは、実施の形態1の携帯型端末211の抑制再開制御部104の代わりに、抑制再開制御部904を備える。なお、本実施の形態において実施の形態1と同様の機器および構成については、同一の参照符号を付して説明を省略する。
抑制再開制御部904は、実施の形態1の抑制再開制御部104と同様の機能を有するとともに、パケットロスを検知して、そのロスしたパケットが再送パケットとして再送されるように通信制御部107を制御する。さらに、抑制再開制御部904は、パケットロスが発生した後の送信側装置203のCWINを推定して、その推定されたCWINにおいても実施の形態1と同様の間欠受信と省電力制御とを行なえるように通信制御部107を制御する。
以下、パケットロスが発生した時の本実施の形態の動作について詳細に説明する。なお、パケットロスが発生していない状況での動作については実施の形態1と同様となるため、ここでは説明を省略する。
図15は、本実施の形態における携帯型端末211bの動作を示すフローチャートである。
まず、携帯型端末211bは、実施の形態1の図9に示す処理動作と同様の定常状態の処理、即ち1サイクルごとにサイクルデータサイズDcのデータを転送しつつ電源のON/OFF制御(省電力制御)を行う(ステップS301)。さらに、携帯型端末211bは、パケットロスの検知処理を行う(ステップS302)。ここで、携帯型端末211bは、その検知処理の結果に基づいてパケットロスがあったか否かを判別する(ステップS303)。
携帯型端末211bは、パケットロスがなかったと判別したときには(ステップS303のNo)、例えば、定常状態処理を終了すべきか否かをさらに判別する(ステップS308)。そして、携帯型端末211bは、終了すべきと判別したときには(ステップS308のYes)、定常状態処理を終了し、終了すべきでないと判別したときには(ステップS308のNo)、ステップS301からの処理を繰り返す。
一方、携帯型端末211bは、パケットロスがあったと判別したときには(ステップS303のYes)、まず、送信側装置203にロスしたパケットを再送させるための再送誘発処理を実施する(ステップS304)。
このとき、携帯型端末211bは、この再送誘発処理によって再送されたパケットを受信し、そのパケットを受信したことをACKパケットにより送信側装置203に通知する。送信側装置203は、そのACKパケットによる通知を受けると、TCPにおける輻輳制御によりCWINを低下させる。その結果、上述の第2の条件であるCWIN≧RWINを前提とする、ステップS301の定常状態処理における間欠受信のサイクルを実行できなくなる可能性がある。
このため、携帯型端末211bは、まず送信側装置203のパラメータであるCWINを推定する(ステップS305)。そして、携帯型端末211bは、ステップS305で推定された推定値Dc’が、RWINとして設定されているサイクルデータサイズDcよりも小さいか否かを判定する(ステップS306)。携帯型端末211bは、推定値Dc’が小さい(Dc’<Dc)と判定したときには(ステップS306のYes)、CWINをサイクルデータサイズDcまで増加させるための処理(CWIN低下期間中の処理)を実行する(ステップS307)。一方、携帯型端末211bは、推定値Dc’がサイクルデータサイズDc以上である(Dc’≧Dc)であると判定したときには(ステップS306のNo)、ステップS301からの処理を繰り返す。
以下、ステップS302のパケットロス検知処理、ステップS304の再送誘発処理、ステップS305のCWIN推定処理、および、ステップS307のCWINの低下期間中の処理について、詳細に説明する。
図16は、図15のステップS302におけるパケットロス検知処理の詳細を説明するための説明図である。
例えば、時刻T31に送信されたACKパケット(RWIN=Dc)に対して送信側装置203から送信されたサイクルデータサイズDc分のデータのうち、例えば4個のデータ(DATA1〜4)のうち、DATA3がロスする。
抑制再開制御部904は、パケットロスをタイムアウトにより検出する。具体的には、抑制再開制御部904は、送信側装置203に送信再開を促すACKパケットP11を送信した時刻T31から一定時間To1経過後の時刻T32までに、通知したサイクルデータサイズDc分の全てのデータを受信し切れなかった場合に、タイムアウトを検出し、パケットロスが発生したものとみなす。したがって、上述のようにDATA3がロスすると、抑制再開制御部904は、一定時間To1内にサイクルデータサイズDc分の全てのデータを受信し切れないため、パケットロスの発生を検知する。なお、一定時間To1をタイムアウト値という。
例えば、抑制再開制御部904は、それまでのサイクルにおいて、送信側装置203に送信再開を促すACKパケットが送信された時刻から、通知したサイクルデータサイズDc分の全てのデータを受信し切るまでの時間を計測する。そして、抑制再開制御部904は、その計測した時間のうち最大の時間を、上述のタイムアウト値To1に用いる。
また、抑制再開制御部904は、タイムアウト値To1の決定においては、送信再開を促すACKパケットが送信されてから、それに対する最初のデータを受信するまでの間隔であるRTTや、連続したデータの受信間隔Rtなどの情報を取得しておき、その情報からタイムアウト値To1を決定してもよい。即ち、抑制再開制御部904は、「RTTの最大値+(Dc/MSS−1)×Rtの最大値=To1」のように計算してもよい。また、抑制再開制御部904は、最大値ではなく、平均値や分散値などの各種統計値を用いることにより、より適切なタイムアウト値To1を設定してもよい。
また、タイムアウト値の計測の開始時点を、送信再開を促すACKパケットを送信した時刻T31ではなく、通知したサイクルデータサイズDc分のデータのうち最初に到着したパケットの到着時刻としてもよい。
また、抑制再開制御部904は、タイムアウトを用いずに、受信済みのデータのシーケンス番号を監視して、そのシーケンス番号が不連続であれば、パケットロスが発生したと検知してもよい。即ち、抑制再開制御部904は、図16に示すように、DATA3を受信せずにDATA4を受信したことによりパケットロスの発生を検知する。ここで、パケットロスが発生していなくても、ネットワーク上でのパケットの順序入れ替えの発生により、シーケンス番号が不連続となる場合がある。このような場合には、上述のようにシーケンス番号が不連続であることによってパケットロスの発生を検知すると、パケットロスが発生していなくてもパケットロスとみなしてしまう可能性がある。そこで、抑制再開制御部904は、不連続なシーケンス番号を持つデータを含むパケットを複数個受信したときまでに、または、不連続なシーケンス番号を持つデータを受信してから一定時間経過したときまでに、抜けていたデータを受信しなかった場合に、パケットロスの発生を検知してもよい。
図17は、図15のステップS304の再送誘発処理の詳細を説明するための説明図である。
パケットロスが発生した場合に受信側装置(携帯型端末)から何も送信されなければ、送信側装置203は、前述の第1のロス検知方法によりタイムアウトを発生させCWINを1にしてから再送を行う。その結果、効率的に転送を行うことができなくなり、通信アプリケーションプログラムの性能要件を満たせなくなる可能性がある。
そこで、本実施の形態における受信側装置(携帯型端末)211bは、送信側装置203に対して、第2のロス検知方法による高速な再送を行わせ、CWINの減少を半分にとどめさせる。その結果、できるだけ効率的に送信側装置203にデータの転送を行わせる。
つまり、携帯型端末211bの抑制再開制御部904は、再送誘発処理では、送信側装置203に第2のロス検知方法を行わせるために、同一のACKパケットを4つ連続して送信するように通信制御部107に指示する。その結果、携帯型端末211bは、その4つのACKパケットP21を送信側装置203に送信する。なお、これらの全てのACKパケットP21に含まれる受信ウィンドウ(RWIN)は、サイクルデータサイズDcであって、全てのACKパケットP21に含まれるACK番号は、ロスしたパケットであるDATA3の送信を要求する値(例えば、3)となる。
このような4つのACKパケットP21を受け取った送信側装置203は、ロスしたパケットであるDATA3を再送する。なお、送信側装置203は、パケットロス検知処理時のサイクルで送信されたサイクルデータサイズDc分のデータ内でのロスしたパケットの位置や、送信側装置203のTCPのバージョンや実装によって、DATA4以降のパケットも送信することがある。例えば、送信側装置203は、DATA3を再送するとともにDATA5およびDATA6を送信する。携帯型端末211bの抑制再開制御部904は、これらの全てのデータを受信するために、4番目のACKパケットP21の送信時刻T41から一定時間To2経過後の時刻T42まで、データが届くのを待つ。なお、送信側装置203は、DATA3の再送時には、DATA4は既に送信されているため、そのDATA4を送信しない。しかし、DATA4もロスした可能性を考慮して、送信側装置203は、DATA4を再送してもよい。
また、抑制再開制御部904は、タイムアウト値To1の決定方法と同様に、RTTや連続したデータの受信間隔Rtの統計情報などをもとに、一定時間To2を決定してもよい。即ち、抑制再開制御部904は、「RTTの最大値+(Dc/MSS−1)×Rtの最大値=To2」のように一定時間To2を決定する。また、抑制再開制御部904は、最大値ではなく、平均値や分散値などの各種統計値を用いることにより、より適切な一定時間To2を設定してもよい。
また、一定時間To2の計測の開始時点を、再送を促すACKパケットP21を送信した時刻T41ではなく、再送パケットの到着時刻としてもよい。
また、抑制再開制御部904は、再送を促すために同一のACKパケットP21を4個だけ送信したが、このACKパケットP21がロスする可能性を考慮して、さらに余分に同一のACKパケットを送信してもよい。
なお、パケットロス検知処理のサイクルにおいて1つのパケットのみがロスしていた場合には、上述の再送誘発処理により、ロスしたパケットが再送される。しかし、2つ以上のパケットがロスしていた場合には、2番目以降にロスしているパケットも再送させることが望ましい。このために、携帯型端末211bの抑制再開制御部904は、1番目にロスしたパケットに対する再送パケットが受信されると、2番目にロスしたパケットを再送させるための同一のACKパケットを4つ送信するように通信制御部107に指示する。ただし、この送信に対して送信側装置203が2番目にロスしたパケットを再送するかどうかは、送信側装置203のTCPのバージョンや実装によって異なる。したがって、場合によっては、送信側装置203において第1のロス検知方法によるロス検知が行われ、CWINが1になる可能性もある。送信側装置203のTCPが、2番目にロスしたパケットを再送するように実装されている場合には、携帯型端末211bの抑制再開制御部904は、1番目にロスしたパケットに対する処理と同様の処理を、全てのロスしたパケットに対して繰り返すことで、再送誘発処理を完了する。
なお、送信側装置203の状態がどうなっているか、即ち、第1のロス検知方法によりCWINが1となっているのか、第2のロス検知方法の繰り返しの適用によりCWINが1より大きな値となっているかは、この再送誘発処理の完了時にロスした全てのパケットの再送パケットを携帯型端末211bが受信しているかどうかにより判別可能である。
図18は、図15のステップS305のCWIN推定処理の詳細を説明するための説明図である。
パケットロスが発生した場合、図17に示す再送誘発処理の完了後には送信側装置203において輻輳ウィンドウ(CWIN)が小さくなっている。しかしながら、定常状態での省電力制御を行うためには、上述の第2の条件であるCWIN≧RWIN(Dc)が満たされている必要がある。
そこで、抑制再開制御部904は、このCWINの値がサイクルデータサイズDc(期待値)を下回っていないかを知っておく必要があるため、CWIN推定処理では、送信側装置203のCWINの値を推定する。
まず、抑制再開制御部904は、送信側装置203からのデータ送信を促すため、ACKパケットを送信するように指示する。その結果、携帯型端末211bは、そのACKパケットP31を送信側装置203に送信する。このACKパケットP31は受信ウィンドウ(RWIN)をサイクルデータサイズDcとして通知する。また、そのACKパケットP31に設定されるACK番号は、通常のTCPどおり、ステップS304の再送誘発処理までに抜けなく受信できているデータのシーケンス番号の最大値+1(例えば、N)である。
送信側装置203は、このACKパケットP31を受信すると、Min(Dc,CWIN)分のパケット、つまり、サイクルデータサイズDcとCWINとのうち小さい方のサイズ分のパケットを送信する。
抑制再開制御部904は、この後、サイクルデータサイズDc分のデータを受信できた場合には、CWINがサイクルデータサイズDc以上であること、つまり上述の第2の条件が満たされていることを検知できる。また、抑制再開制御部904は、サイクルデータサイズDc分のデータを受信できない場合には、ACKパケットP31が送信された時刻T51から一定時間To3経過後の時刻T52までに受信されたデータの量(パケットの個数)を、CWINの推定値Dc’とする。
なお、抑制再開制御部904は、サイクルデータサイズDc分のデータを受信できたか否かの判断には、パケットロスの検知やタイムアウトを利用する。つまり、抑制再開制御部904は、通信I/F部108から送信されたACKパケットに対して、送信側装置203から送信されて通信I/F部108に順次受信された各データのシーケンス番号が連続であるか不連続であるかを判別する。そして、抑制再開制御部904は、不連続であると判別したとき、つまりパケットロスがあったと判別したときに、サイクルデータサイズDc分のデータを受信できなかったと判断する。また、抑制再開制御部904は、通信I/F部108から送信されたACKパケットに対して、送信側装置203から送信されて通信I/F部108に順次受信された各データの合計サイズが、予め定められた期間内で、そのACKパケットの示すサイクルデータサイズDcに達するか否かを判別する。そして、そして、抑制再開制御部904は、サイクルデータサイズDcに達しないと判別したとき、つまりタイムアウトがあったと判別したときに、サイクルデータサイズDc分のデータを受信できなかったと判断する。
図19は、ステップS307のCWIN低下期間中の処理の詳細を示すフローチャートである。
CWIN低下期間中はCWIN<Dcとなっている。したがって、携帯型端末が、受信ウィンドウをサイクルデータサイズDcとして送信側装置203に通知しても、送信側装置203はCWIN分しかデータを送らない。その結果、携帯型端末は、いつまでたっても通信I/F部108の電源を切断できなくなり、省電力制御を行えないという問題が発生する。
このため、携帯型端末211bの抑制再開制御部904は、CWIN低下期間の最初では、まず受信ウィンドウをCWINの推定値Dc’として通知するように通信制御部107に指示する。こうすれば、携帯型端末(受信側装置)211bは、通知した受信ウィンドウ分のデータ、つまり推定値Dc’分のデータを受信することができ、通信I/F部108の電源を切断することができる。また、送信側装置203は、TCPの輻輳制御手順により、「CWIN/MSS個のACKパケットを受信するとCWINをMSS分大きくする」という制御を行う。したがって、携帯型端末211bの抑制再開制御部904は、このCWINの増加に合わせて、通知する受信ウィンドウのサイズを大きくする。その結果、抑制再開制御部904は、最終的には受信ウィンドウのサイズを元のサイクルデータサイズDcとして通知することができ、定常状態で省電力制御を継続することが可能となる。
抑制再開制御部904は、実際の処理として、まず、CWIN低下期間中のサイクルデータサイズDcXの初期値を推定値Dc’とするとともに、CWIN低下期間中のサイクル間隔TcXの初期値をDc’/BWとする(ステップS401)。なお、TcX=DcX/BWとすることで、CWIN低下期間中もBW[Byte/sec]のレートを確保することができる。これは、サイクルデータサイズがDcからDc'に低下したのに比例してサイクル間隔Tcも短くすることに相当する。
次に、抑制再開制御部904は、上記サイクルデータサイズDcXおよびサイクル間隔TcXに基づく間欠受信サイクルをDcX/MSS回繰り返す(ステップS402)。つまり、携帯型端末211bは、RWIN=DcXのACKパケットを送信して、サイクルデータサイズDcX分のデータを受信し、そのACKパケットの送信からサイクル間隔TcXが経過するまで次のACKパケットの送信を停止しておくという間欠受信を(DcX/MSS)サイクルだけ繰り返す。このような間欠受信を繰り返すことによっても、携帯型端末211bは、サイクルデータサイズDcX分のデータを受信してから、次のACKパケットを送信するまで、通信I/F部108の電源をOFFにすることができ、省電力制御を行なうことができる。また、このような間欠受信の繰り返しによって、送信側装置203は、DcX/MSS個のACKを受信することになり、その結果、CWINをMSS分だけ増加させる。
したがって、間欠受信サイクルがDcX/MSS回繰り返されると、次のサイクルからは、それまでよりサイクルデータサイズDcXをMSS分大きくしても省電力制御を行うことができる。
このため、抑制再開制御部904は、サイクルデータサイズDcXをMSS大きくし、それに合わせてサイクル間隔TcXも更新する(ステップS403)。そして、抑制再開制御部904は、ステップS403でサイクルデータサイズDcXが大きくなることで、そのサイクルデータサイズDcXが、パケットロス発生前の元のサイクルデータサイズDc以上になったか否かを判別する(ステップS404)。
ここで、抑制再開制御部904は、サイクルデータサイズDc以上になったと判別したときには(ステップS404のYes)、CWIN低下期間中の処理を完了し、図15に示すステップS301の定常状態処理を実行する。一方、抑制再開制御部904は、サイクルデータサイズDcXがまだ元のサイクルデータサイズDcに満たないと判別したときには(ステップS404のNo)、更新されたサイクルデータサイズDcXおよびサイクル間隔TcXを用いて、ステップS402からの処理、つまり間欠受信をDcX/MSS回繰り返す処理を行う。
図20は、ステップS307のCWIN低下期間中において行われる間欠受信の1サイクルを示す図である。
CWIN低下期間中では、携帯型端末211bは、例えば時刻T61に、(RWIN=DcX)のACKパケットP41を送信する。その結果、携帯型端末211bは、時刻T62に、CWIN低下期間中のサイクルデータサイズDcX分のデータを送信側装置203から受信する。そして、携帯型端末211bは、そのACKパケットP41を送信してから、CWIN低下期間中のサイクル間隔TcXが経過するまで、つまり時刻T63まで次のACKパケットの送信を停止する。さらに、携帯型端末211bは、時刻T61〜T62までは通信I/F部108の電源をONにして、時刻T62〜T63まではその電源をOFFにするような省電力制御を行なう。携帯型端末211bは、このような時刻T61〜T63までの処理を間欠受信の1サイクルとして実行する。
なお、抑制再開制御部904は、ステップS307におけるCWIN低下期間中の処理中に、パケットロスを検知した場合も、図15に示すステップS301〜S308の処理を行なえばよい。
また、抑制再開制御部904は、図20に示すように、1サイクルにACKパケットを一つだけ送信するが、複数のACKパケットを送信してもよい。つまり、送信されるACKパケットが1つの場合には、CWINを増加させるために、間欠受信のサイクルをDcX/MSS回繰り返す必要がある。しかし、1サイクルにACK番号の異なる複数個(例えばN個)のACKパケットを送信すれば、間欠受信のサイクルの繰り返し回数をDcX/(MSS×N)回に抑えることができる。さらに、N=DcX/MSSとすれば、間欠受信のサイクルの繰り返し回数を1サイクルにすることができる。
また、上記処理を行っただけでは、通信アプリケーションプログラムの要求である帯域BWを十分確保したとはいえない場合がある。即ち、ステップS307のCWIN低下期間中の処理、およびステップS301の定常状態処理の期間においては、帯域BWは確保されている。しかし、ステップ302のパケットロス検知処理、ステップS304の再送誘発処理、ステップS305のCWIN推定処理を行っている期間においては、タイムアウト待ちを行っていることにより、帯域BWは確保されていない。
通信アプリケーションプログラムが帯域BWを要求しているということは、TCPコネクション開始時から帯域BWで通信し続けただけのデータを受信している必要があるが、上記処理ではこれが満たされてないことになる。この問題は、「TCPコネクション開始時から受信したデータの総量=通信開始時からの経過時間×BW」の条件が成り立つまで、例えば以下の3つの制御方法を実行することにより回避可能である。第1の制御方法では、ステップS307のCWIN低下期間中の処理において、サイクル間隔TcXの値を上記処理よりも短く設定することにより、一時的に帯域BW以上の帯域を確保する。また、第2の制御方法では、CWIN低下期間終了後のステップS301の定常状態処理において、サイクル間隔Tcを短くする、もしくはサイクルデータサイズDcを大きくすることにより、一時的にBW以上の帯域を確保する。上述の条件が成り立った後は、サイクル間隔TcおよびサイクルデータサイズDcをパケットロス発生前の元の値に戻せばよい。第3の制御方法では、送信抑制制御(間欠受信)を一時的に中断する。例えば、抑制再開制御部904は、CWINがサイクルデータサイズDcよりも小さくなってからサイクルデータサイズDc以上になるまでのウィンドウ回復期間、ACKパケットの通常の送信の抑制(停止)を解除し、通信I/F部108でデータが受信されるごとに、ACKパケットを通信I/F部108から送信させる。また、このとき、上述と同様に、1つのACKパケットを、ACK番号の異なる複数個(例えばN個)のACKパケットに分けて送信することによって、CWINをサイクルデータサイズDc以上に早急に回復させることができる。
また、上記処理では、定常状態では間欠受信サイクルが成功することを前提としている。しかし、上記処理では、送信側装置203はサイクルデータサイズDc分だけのデータをバースト的に送信することになるため、例えば中継装置が転送パケットを格納するために保持しているバッファのサイズがサイクルデータサイズDcよりも小さい場合などは、必ずパケットロスが発生し定常状態処理を行えない可能性がある。このため、定常状態での処理が成功しない状況においては、サイクルデータサイズをDcよりも小さな値D”とし、サイクル間隔もTcより小さい値D”/BWとした定常状態処理を行なうなどの必要がある。なお、ネットワークの状況などは動的に変化するため、パケットロスの発生に応じてサイクル間隔およびサイクルデータサイズを動的に変化させることにより、より最適な(通信アプリケーションプログラムの要求を満たしつつ、できるだけ省電力効果の高い)パラメータを探索するように動作してもよい。また、動的にパラメータを変更しつつ、最適なパラメータ値を探索するアルゴリズムは、一般に用いられている探索アルゴリズムなどを流用すればよく、本発明の本質ではないためここでは詳細なアルゴリズムについては説明を省略する。
また、上記では、図15に示すように、ステップS307でCWIN低下期間中の処理を行うかどうかを判定したり、CWIN低下期間中のサイクルデータサイズの初期値Dc’を決定したりするために、ステップS305のCWIN推定処理を行った。しかし、CWIN推定処理は、より効率的に、即ち必要以上に転送レートを低下させないために行う処理であり、必ずしも本発明に必須の処理ではない。例えば、パケットロスが1回しか発生していない場合などは、CWINは最低でもパケットロス発生前の1/2以上であると言えるため、サイクルデータサイズの初期値をサイクルデータサイズDcの1/2として、必ずCWINの低下期間中の処理を行ってもよい。
上記のような処理を行うことにより、パケットロスが発生した場合でも、通信帯域を維持しつつ間欠受信による省電力制御を継続することができる。
(実施の形態4)
次に、本発明の実施の形態4に係る通信装置について説明する。実施の形態1〜3の通信装置は、フロー制御を終端するが、本実施の形態における通信装置はフロー制御を行う通信を中継する。つまり、本実施の形態における通信装置は、中継通信装置として構成され、実施の形態1の携帯型端末211自体のTCP通信に対して行っていた制御を、中継しているTCP通信に対して行う。したがって、本実施の形態における間欠受信および省電力制御の本質は、実施の形態1と共通するため、以下では、本実施の形態における実施の形態1との差分を中心に説明する。
図21は、本実施の形態における通信装置を有する通信システムの一例を示す構成図である。なお、本実施の形態に含まれる構成要素中、実施の形態1と同一の機能および構成を有する構成要素に対しては、実施の形態1の構成要素と同一の符号を付して示し、詳細な説明は省略する。
本実施の形態に係る通信システムは、携帯型端末212と、携帯型端末501と、受信側装置502と、無線基地局202と、インターネット204と、送信側装置203とを備えている。
本実施の形態における携帯型端末501と受信側装置502は、それぞれが組み合わされた状態で、インターネット204および無線基地局202を介して送信側装置203に対して、実施の形態1の携帯型端末211と同様の処理動作を行う。
また、携帯型端末501は、送信側装置203と受信側装置502との間の通信を中継する。
つまり、本実施の形態の通信システムと、実施の形態1の図3に示す通信システムとの違いは、実施の形態1では本発明の通信装置たる携帯型端末212が受信側装置として動作していたのに対し、本実施の形態では本発明の通信装置たる携帯型端末501が中継装置として動作し、その携帯型端末501に別の受信側装置502が接続されている点である。
図22は、本実施の形態における携帯型端末501の具体的な構成を示す構成図である。
携帯型端末501は、アプリ要求取得部102と、パラメータ決定部103と、抑制再開制御部504と、電源制御部106と、通信制御部107と、通信I/F部108と、サブ通信I/F部109とを備える。
つまり、本実施の形態における携帯型端末501は、実施の形態1の携帯型端末211にないサブ通信I/F部109を備えるとともに、携帯型端末211にある通信アプリケーション部101を備えていない。また、本実施の形態における携帯型端末501は、実施の形態1の携帯型端末211における抑制再開制御部104の代わりに、抑制再開制御部504を備える。
サブ通信I/F部109は、例えば、Ethernet(登録商標)などの有線LANや、無線LAN、USB(Universal Sirial Bus)などで受信側装置502と通信する。なお、サブ通信I/F部109の通信方式は、これら以外の任意の通信方式であってもよい。
抑制再開制御部504は、実施の形態1の抑制再開制御部104と同様、間欠受信パラメータ登録通知によって受け取った間欠受信パラメータに応じて、送信側装置203からのデータ送信を抑制または再開させるタイミングを決定する。また、抑制再開制御部504は、決定したタイミングに、送信側装置203からのデータ送信を抑制または再開させるため、通信制御部107に対してACKパケットの転送に関係する3つの要求(後述)を発行する。
実施の形態1では、通信制御部107がTCPの処理を行っていたため、抑制再開制御部104は、その通信制御部107に対して、ACKパケットの送信の可否を要求したり、ACKパケットの内容を所定の内容にするように要求したり、ACKパケットの送信のタイミングを要求した。本実施の形態では、通信制御部107が送信側装置203および受信側装置502の送信するパケットの転送を行うため、抑制再開制御部504は、通信制御部107に対して、受信側装置502の送信したACKパケットの転送の可否を要求したり、受信側装置502のIPアドレスが送信元アドレスとなるように、ACKパケットの内容を所定の内容にするように要求したり、ACKパケットの転送のタイミングを要求する。
具体的に、通信制御部107は、抑制再開制御部504から、ACK通常転送抑制要求、ACK通常転送再開要求、およびACK単発送信要求を受けて、それらの要求に対応する。
ACK通常転送抑制要求は、通常のACKパケット転送を抑制させるための要求である。通信制御部107は、この要求を受けると、以後、受信側装置502から送信されたACKパケットの転送を行わなくなる。
ACK通常転送再開要求は、ACK通常転送抑制要求を解除させる要求である。通信制御部107は、この要求を受けると、通常の処理(受信側装置502から送信されたACKパケットの転送)を再開する。
ACK単発送信要求は、抑制再開制御部504から指定されたタイミングで、抑制再開制御部504から指定された内容のACKパケットを送信させる要求である。通信制御部107は、この要求を受けると、受信側装置502がACKパケットを送信するタイミングに関係なく、指定された内容のACKパケットを指定されたタイミングで送信する。なお、この要求は、ACK通常転送抑制要求を受けている状態でも有効である(送信可能である)。また、抑制再開制御部504は、このACKパケットの送信元IPアドレスには受信側装置502のIPアドレスを用いるように通信制御部107に指示する。
次に、本実施の形態における、間欠受信の準備状態に入るまでの処理について説明する。本実施の形態における上記処理では、実施の形態1の処理と比べて、間欠受信パラメータに関する処理のみが異なる。そこで、間欠受信パラメータに関する処理について説明する。
実施の形態1では、アプリ要求取得部102は、通信アプリケーションプログラムから性能に関する要求(性能パラメータ)を受信し、これを性能パラメータ管理テーブルで管理していた。しかし、本実施の形態においては、通信を行う通信アプリケーションプログラムは、受信側装置502にあるため、この要求性能に関する情報(性能パラメータ)も受信側装置502が保持している。このため、本実施の形態のアプリ要求取得部102は、以下の処理を行うことにより性能パラメータを取得する。
例えば、アプリ要求取得部102は、受信側装置502からサブ通信I/F部109を経由して通信アプリケーションプログラムに関する情報(性能パラメータ)を取得する。このとき、アプリ要求取得部102は、その後に開始されるTCP通信を識別するための情報を合わせて取得する。例えば、アプリ要求取得部102は、送信側装置203のIPアドレス情報や、通信アプリケーションプログラムが使用するポート番号の情報、もしくはTCP通信を識別するためのID情報を取得する。ID情報を取得する場合は、その後開始されるTCP通信において、例えばIPヘッダオプションフィールドやTCPヘッダオプションフィールドなどにこのID情報を含めることで携帯型端末501がTCPコネクションを認識できるようにすればよい。
また、アプリ要求取得部102は、受信側装置502から性能パラメータを取得できない場合は、既定のパラメータを性能パラメータに適用する。なお、既定のパラメータでは、通信アプリケーションプログラムの性能要件を満たせなかったり、必要以上に通信I/F部108の電力を消費したりする可能性があるため、携帯型端末501のUI(User Interface)などからこの既定のパラメータを変更できるようにしてもよい。
次に、本実施の形態における間欠受信の準備状態の処理について説明する。まず、受信側装置502と送信側装置203の間でTCPコネクションが確立される。携帯型端末501の通信制御部107は、コネクション開始時のTCPパケット(SYNパケット等)を転送する際に、制御対象であるTCPコネクションが開始されたことを検知する。TCPコネクションの確立後、受信側装置502と送信側装置203の間のTCPパケットは、携帯型端末501の通信I/F部108、通信制御部107、およびサブ通信I/F部109を介して送受信される。
その後、抑制再開制御部504は、通信制御部107で転送されるTCPパケットをモニタリングし、転送データの帯域(転送帯域)が、間欠受信パラメータ管理テーブルに設定されている帯域(設定帯域BW=Dc/Tc)に到達するのを待つ。例えば、抑制再開制御部504は、実施の形態1の抑制再開制御部104と同様、サイクル間隔Tcの経過ごとに、そのサイクル間隔Tcの間に受信したTCPパケットのデータサイズを合計することで、合計データサイズTlDを算出する。そして、抑制再開制御部504は、「TlD/Tc≧BW」の条件を満たす回数が所定回数以上だけ続いたときに、転送帯域が設定帯域BWに到達したと見なす。
抑制再開制御部504は、転送帯域が設定帯域BWに到達すると、送信側装置203からのデータ送信を抑制するために、通信制御部107に対してACK通常転送抑制要求を発行する。なお、この発行は、間欠受信の1回目の処理に相当する。このとき、抑制再開制御部504は、通信制御部107からそれまでに送信した最後のACKパケットの情報、すなわち、ACK番号(LAST_ACKNO)と受信ウィンドウ(LAST_RWIN)とを保持しておく。通信制御部107は、抑制再開制御部504からACK通常転送抑制要求を受けると、以後、受信側装置502から送信されたACKパケットを転送しないようにする。
一方、送信側装置203は、受信側装置502からACKパケットが送られてこなくなっても、自身の管理する送信可能なデータサイズ(uwnd)が0になるまで、データ送信を続け、uwndが0になった時点で、データ送信を終了する。その結果、送信側装置203は送信抑制期間に入る。
抑制再開制御部504は、ACK通常転送抑制要求の発行後もTCPパケットをモニタリングし、送信側装置203での送信可能なデータサイズ(uwnd)が0になるのを待つ。具体的には、抑制再開制御部504は、受信したTCPパケットのシーケンス番号とデータサイズを参照し、(シーケンス番号+データサイズ)が(LAST_ACKNO+LAST_RWIN)に到達するのを待つ。
抑制再開制御部504は、uwndが0になったと判断したら、電源制御部106へ切断要求を発行する。電源制御部106は切断要求を受けると、通信I/F部108の電源を切断する。
抑制再開制御部504は、電源制御部106へ切断要求を発行した後、所定時間の満了を待つ。この所定時間は、サイクル間隔Tcと一致していてもよいし、異なる時間であっても良い。送信側装置203は、既に送信抑制期間に入っているので、通信I/F部108の電源が切断されている間、データ送信を行なわない。
所定時間が満了したとき、抑制再開制御部504は、電源制御部106へ投入要求を発行する。さらに、抑制再開制御部504は、間欠受信の準備状態が満了したと見なし、定常状態に遷移する。電源制御部106は投入要求を受けると、通信I/F部108の電源を投入する。
以下、本実施の形態における定常状態の処理について説明する。
図23は、本実施の形態における受信側装置502と携帯型端末501と送信側装置203の定常状態での動さを示すシーケンス図である。
定常状態での1サイクル分の動作は、送信再開処理と、送信抑制期間の開始処理と、送信抑制期間の終了処理との3つのステップに分けられる。
送信再開処理(ステップ1)では、抑制再開制御部504は、送信側装置203からのデータ送信を再開させるため、通信制御部107に対してACK単発送信要求を発行する。このとき、抑制再開制御部504は、ACKパケットの受信ウィンドウ(RWIN)として、間欠受信パラメータ管理テーブルに格納されたサイクルデータサイズDcを指定する。通信制御部107は、時刻T71に、ACK単発送信要求を受け取ると、RWIN=DcのACKパケットP51を通信I/F部108を介して送信する。このとき、抑制再開制御部504は、受信側装置502から受信して転送していないACKパケットのACK番号のうち最大のものを記憶しているため、その記憶しているACK番号を、ACKパケットP51のACK番号にする。なお、送信側装置203がこのACKパケットP51を正当なパケットとして受信できるように、そのACKパケット51では、送信元IPアドレスは受信側装置502のIPアドレスとされ、ポート番号は当該TCPコネクションのポート番号とされる。
一方、送信側装置203は、携帯型端末501が送信したACKパケット(RWIN=Dc)を受信すると、間欠受信の準備状態、または、送信抑制期間が終了し、データ送信が可能な状態になる。その結果、送信側装置203は、受信側装置502あてのTCPパケット(データP52)の送信を再開する。
携帯型端末501の抑制再開制御部504は、間欠受信の準備状態でACK通常転送抑制要求を発行しているので、受信側装置502が送信したACKパケットの転送は既に抑制されている。すなわち、サブ通信I/F部109が受信側装置502からのACKパケットを受信して、そのACKパケットを通信制御部107に引渡しても、通信制御部107はそのACKパケットを通信I/F部108を通して送信側装置203に対して送信しない。そのため、送信側装置203が一度に送信できるデータP52のサイズは、サイクルデータサイズDcに制限される。
送信抑制期間の開始処理(ステップ2)では、抑制再開制御部504は、時刻T71以降、通信制御部107で転送されるTCPパケットをモニタリングする。そして、抑制再開制御部504は、時刻T71以降で転送したデータサイズがサイクルデータサイズDcに到達したかどうか、すなわち、送信側装置203の送信可能なデータサイズ(uwnd)が0になったかどうかを確認し続ける。このとき抑制再開制御部504は、間欠受信の準備状態での確認処理と同じく、最後に送信したACKパケットのACK番号と受信ウィンドウ(RWIN=Dc)を使って上述の確認を行う。T71以降で転送したデータサイズがDcに到達したとき、即ち時刻T72で、抑制再開制御部504は、送信抑制期間が開始したとみなし、電源制御部106に対して切断要求を発行する。電源制御部106は切断要求を受けると、通信I/F部108の電源を切断する。
送信抑制期間の終了処理(ステップ3)では、本発明の実施の形態における携帯型端末501では、T71時点を起点として、サイクル間隔Tcの時間経過後の時刻T73を、送信抑制期間の終了点と見なす。つまり、抑制再開制御部504は、タイマにより時刻T73のタイミングを検出し、電源制御部106に投入要求を発行する。その結果、投入要求により、電源制御部106は時刻T73に通信I/F部108の電源を投入する。
携帯型端末501は、定常状態では、上記3つのステップを1サイクルとして、繰り返し実行する。
このように、本実施の形態では、実施の形態1での省電力方法と同様の間欠受信制御を、TCP通信を中継する通信装置に対しても適用することができ、実施の形態1と同様の省電力効果を得ることができる。また、ここでは説明を省略するが、実施の形態2による省電力効果の向上や、実施の形態3によるパケットロス時の動作などもTCP通信を中継する通信装置に対して適用することも可能である。
(実施の形態5)
以下、本発明の第5の実施の形態における通信装置について図面を参照しながら説明する。実施の形態1から4では、本発明に係る通信装置を受信側装置に対して適用したが、本実施の形態では、本発明に係る通信装置を送信側装置に適用し、送信側装置の省電力効果を向上させる。また、本実施の形態における送信側装置は、受信側装置に対して、間欠送信処理を行うことを通知することで、より確実に省電力効果を高める。
図24は、本実施の形態における通信装置を有する通信システムの一例を示す構成図である。
本実施の形態に係る通信システムは、通信装置たる携帯型端末611,612と、無線基地局202と、インターネット204と、受信側装置603とを備えている。
携帯型端末611,612は、通信品質と省電力効果のさらなる向上を両立して図った送信側装置であって、無線基地局202およびインターネット204を介して、受信側装置603にデータを送信する。受信側装置603は、インターネット204および無線基地局202を介して、携帯型端末611,612から送信されたデータを受信する。
ここで、本実施の形態における携帯型端末611について詳細に説明する。
図25は、本実施の形態における携帯型端末611の一例を示す構成図である。
携帯型端末611は、通信アプリケーション部621と、アプリ要求取得部622と、パラメータ決定部623と、抑制再開制御部624と、電源制御部106と、通信制御部627と、通信I/F部108とを備える。この携帯型端末611は、受信側装置603からACKパケットを受信しても、直ちにそのACKパケットに応じたデータパケット(送信データ)を送信することなく、所定期間(上述の送信抑制期間)だけデータパケットの送信を停止して、その所定期間経過後にデータパケットを送信する。言い換えれば、携帯型端末611は、フロー制御の仕組みを使ってデータ送信の抑制と再開を繰り返すことで、携帯型端末611の所望する間隔での間欠的なデータ送信(間欠送信)を行う。これにより、携帯型端末611は、その所定期間だけ通信I/F部108に供給される電力を抑えることができ省電力効果の向上を図ることができる。
また、本実施の形態における携帯型端末611が備えている上記各構成要素は、基本的に、実施の形態1の携帯型端末211が備えている各構成要素のデータ受信用の機能に対応した、データ送信用の機能を有する。したがって、本実施の形態における携帯型端末611が備えている上記各構成要素の機能のうち、実施の形態1の携帯型端末211が備えている各構成要素の機能に対応しているものについては、以下、簡単に説明し、単純に対応していない機能についてのみ詳細に説明する。
なお、本実施の形態では、抑制再開制御部624が抑制手段および切換制御手段として構成されている。
通信アプリケーション部621は、通信アプリケーションプログラムを実行する。通信アプリケーション部621は、通信アプリケーションプログラムの起動時に、アプリ要求取得部622に起動通知を発行し、受信側装置603との間でデータ送受信を行なう。また、通信アプリケーション部621は、通信アプリケーションプログラムの終了時に、アプリ要求取得部622に終了通知を発行する。なお、本実施の形態では、説明の単純化のため、携帯型端末611上で同時に動作する通信アプリケーションプログラムが1つに限定されているものとする。
アプリ要求取得部622は、通信アプリケーション部621と受信側装置603との間でのデータ通信の「性能パラメータ」を入手する。アプリ要求取得部622は、通信アプリケーション部621から起動通知または終了通知を受けると、同時にその性能パラメータを通信アプリケーション部621から入手し、パラメータ決定部623に対して、性能パラメータ登録通知または性能パラメータ削除通知を発行する。
なお、アプリ要求取得部622は、送信されるデータのタイプ(アプリケーションタイプ)や、ファイルサイズ、バッファサイズなどに基づいて、性能パラメータである帯域BWおよび遅延時間DTなどを決定してもよい。たとえば、アプリケーションタイプがMPEGであれば、アプリ要求取得部622は、画像が乱れない程度の必要な帯域を性能パラメータとして決定する。
パラメータ決定部623は、間欠的にデータを送信するためのパラメータを決定する。間欠的にデータを送信するためのパラメータは、実施の形態1の間欠受信時と同様に、間欠送信のサイクル間隔およびサイクルデータサイズからなる。また、これらの2つのパラメータを総称して「間欠送信パラメータ」と呼ぶ。パラメータ決定部623は、アプリ要求取得部622から性能パラメータ登録通知または性能パラメータ削除通知を受けつけたとき、アプリ要求取得部622からの性能パラメータを元に間欠送信パラメータを決定し、抑制再開制御部624に間欠送信パラメータ登録通知または間欠送信パラメータ削除通知を送信する。
抑制再開制御部624は、受信側装置603へのデータ送信が間欠的に行なわれるように、通信制御部627を制御する。抑制再開制御部624は、送信したデータに対するACKパケットを受信した後、受信側装置603へのデータ送信を行わない期間を作る。この期間のことを送信抑制期間と呼ぶ。さらに、抑制再開制御部624は、この制御によって得られた送信抑制期間に通信I/F部108の電源が切断されるように、電源制御部106へ指示を出す。
具体的には、抑制再開制御部624は、間欠送信パラメータ登録通知によって受け取った間欠送信パラメータに応じて、受信側装置603へのデータ送信を抑制または再開するタイミングを決定する。また、抑制再開制御部624は、送信抑制期間に連動して、電源制御部106に対して投入または切断の要求を送信する。さらに、抑制再開制御部624は、通信制御部627で送受信するTCPパケットをモニタリングし、そのモニタリングの結果を上述のタイミングの決定に利用する。
電源制御部106は、抑制再開制御部624からの投入または切断の要求に従って、通信I/F部108の電源を投入または切断する。
通信制御部627は、通常のTCP処理に加えて、抑制再開制御部624からの要求を受けて、データパケットの送信タイミングやパケット内容を変更する。具体的には、通信制御部627は、抑制再開制御部624から、データパケット通常送信抑制要求、データパケット通常送信再開要求、指定サイズデータ送信要求を受けて、それらの要求に対応する。
データパケット通常送信抑制要求は、通常のデータパケット送信を抑制させる要求である。通信制御部627は、この要求を受けると、以後、指定サイズデータ送信要求、もしくは、データパケット通常送信再開要求を受けない限り、データパケットを送信しない。
データパケット通常送信再開要求は、データパケット通常送信抑制要求によって停止していたデータパケットの送信抑制を解除し、通常のTCPにしたがって、データパケットを送信させる要求である。
指定サイズデータ送信要求は、データパケット通常送信抑制要求を受けた状態において有効であり、指定されたサイズのデータをTCPにしたがって送信させる要求である。通信制御部627は、通信I/F部108を介して、指定されたサイズのデータパケットを送信し、送信したデータパケットに対応するACKパケットを受信したと判断した時点で、データパケットの送信を停止する。
このような携帯型端末611が初期状態から通信を開始して終了するまでの携帯型端末611の動作について、以下、説明する。
初期状態では、実施の形態1の間欠受信パラメータの登録と同様に、携帯型端末611は、性能パラメータに基づいて間欠送信パラメータ管理テーブルを登録し、通常のTCPにしたがった処理を開始する。
次に、携帯型端末611は、間欠送信の準備状態の処理を行う。この準備状態においては、携帯型端末611は、まず、間欠送信を行うことを受信側装置603に通知する。すなわち、携帯型端末611は、TCPの通信を開設する際に、間欠送信処理を行う旨を受信側装置603に通知するために、TCPヘッダのオプションフィールドにおいて間欠送受信有効フラグを有効にし、3WAYハンドシェイクを行う。これにより、受信側装置603の間欠受信処理を抑えることができ、より確実に省電力効果を高めることができる。つまり、受信側装置603が実施の形態1の携帯型端末211のように間欠受信を行うことが可能な通信装置である場合に、受信側装置603による間欠受信と、携帯型端末611による間欠送信とが同時に行われると、携帯型端末611と受信側装置603との間での通信(間欠送信および間欠受信)が正常に行われないことがある。しかしながら、上述のように、本実施の形態では、携帯型端末611が間欠送信を行うことを受信側装置603に通知して、受信側装置603による間欠受信を停止させることにより、携帯型端末611による受信側装置603に対する間欠送信を正常に行うことができる。このような間欠送信の通知の他、携帯型端末611は、実施の形態1と同様に、データパケット(送信データ)の帯域(送信帯域)が間欠送信パラメータ管理テーブルに設定されている帯域BWまで達し、その帯域でのデータパケットの送信が所定の回数以上継続されるように、データパケットの送信を繰り返し行う。その後、携帯型端末611の抑制再開制御部624は、データパケット通常送信抑制要求を通信制御部627に送信する。その結果、通信制御部627は、抑制再開制御部624からデータパケット通常送信抑制要求を受けると、以後、ACKパケットの受信を続けるものの、その受信時にデータパケットを送信しないようにする。
次に、本実施の形態における定常状態の処理について説明する。
図26は、本実施の形態における携帯型端末611と受信側装置603の定常状態での動作を示すシーケンス図である。
定常状態での1サイクル分の動作は、送信再開処理と、送信抑制期間の開始処理と、送信抑制期間の終了処理との3つのステップに分けられる。
送信再開処理(ステップ1)では、抑制再開制御部624は、受信側装置603への指定サイズのデータ送信を行うために、通信制御部627に対して指定サイズデータ送信要求を発行する。このとき、抑制再開制御部624は、間欠送信パラメータ管理テーブルに格納されたサイクルデータサイズDcを、サイクル間隔Tcの間に送信すべきデータサイズ(指定サイズ)とし、そのサイクルデータサイズDc分のデータを送信するように通信制御部627に要求する。通信制御部627は、時刻T81に、指定サイズデータ送信要求を受け取ると、サイクルデータサイズDc分のデータパケットP1を通信I/F部108を介して送信する。
送信抑制期間の開始処理(ステップ2)では、抑制再開制御部624は、時刻T81以降、通信制御部627で受信されるTCPパケットをモニタリングしながら、通信制御部627からそれまでに送信された最後のデータパケットの情報、すなわち、シーケンス番号(LAST_SEQ)と送信したデータサイズ(LAST_SIZE)とを保持しておく。
そして、抑制再開制御部624は、時刻T81以降で送信したデータサイズがサイクルデータサイズDcに到達し、最後のデータパケットに対するACKパケットを受信したかどうか、を確認し続ける。具体的には、抑制再開制御部624は、ACKパケットP2が受信されるごとに、その受信されたACKパケットP2のACK番号を参照し、そのACK番号が(LAST_SEQ+LAST_SIZE)であるか否かを確認する。
このとき、送信されたデータパケットに対するACKパケットが全て携帯型端末611に到達しない場合がある。具体的には、次の原因が考えられる。
(1)受信側装置603がDELAYED ACKアルゴリズムを実装している場合、受信側装置603はデータパケット1つに対して1つのACKパケットを送信するのではなく、複数個のデータパケットに対し、1つのACKパケットを送信する。
(2)伝送路上や、受信側端末603上、携帯型端末611上で、パケットロスが発生する。
そこで、携帯型端末611は、RTTを推定するRTT推定部を備え、送信したデータパケットに対する全てのACKパケットを受信しない場合、最後のデータパケットを送信した後からRTT間だけACKパケットを待ち受けてもよい。携帯型端末611は、このRTT間に全てのACKパケットを受信しなければ、ACKパケットの待ち受けを終了し、受信していないACKパケットに対応するデータパケットを、次のサイクルにおけるデータ送信の最初に再送する。
また、携帯型端末611は、RTT間だけACKパケットを待ち受け、全てのACKパケットを受信しない場合は、パケットロスが発生している可能性もあるため、受信していないACKパケットに対応するデータパケット、もしくは、最後に送信したデータパケットを再送信し、再度ACKパケットを待ってもよい。
また、受信側装置603のDELAYED ACK TIMERを解除するパケット数が既知であれば、携帯型端末611は、データパケットの数がDELAYED ACK TIMER解除のパケット数の整数倍となるように、データパケットの分割を行ってもよい。一方、DELAYED ACK TIMERを解除するパケット数が既知でなければ、携帯型端末611は、あらかじめ、通信中にDELAYED ACK TIMER解除のパケット数をACKパケットの受信タイミングから推定しておいてもよい。
時刻T81以降で送信したデータパケットに対する全てのACKパケットが到達したとき、もしくは、これ以上到達しないと判断したときである時刻T82で、抑制再開制御部624は、送信抑制期間が開始したとみなし、電源制御部106に対して切断要求を発行する。電源制御部106は切断要求を受けると、通信I/F部108の電源を切断する。
送信抑制期間の終了処理(ステップ3)では、本発明の実施形態における携帯型端末611は、時刻T81を起点として、サイクル間隔Tcの時間経過後の時刻T83を、送信抑制期間の終了点と見なす。つまり、抑制再開制御部624は、タイマにより時刻T83を検出し、電源制御部106に投入要求を発行する。その投入要求により、電源制御部106は時刻T83に通信I/F部108の電源を投入する。
携帯型端末611は、定常状態では、上記3つのステップを1サイクルとして、繰り返し実行する。
通信アプリケーションプログラムを終了する場合の処理では、携帯型端末611は、実施の形態1と同様に、受信側装置603とのTCPのコネクションを切断する。さらに、携帯型端末611のアプリ要求取得部622およびパラメータ決定部623はそれぞれ、性能パラメータ管理テーブルの内容と、間欠送信パラメータ管理テーブルの内容とをクリアする。さらに、抑制再開制御部624は、通信制御部627で送受信されるTCPパケットのモニタリングを停止し、電源制御部106に対して通信I/F部108の電源を切断させる。
以上の処理により、携帯型端末611の状態は初期状態に戻る。
次に、上記の間欠送信処理のための、携帯型端末611内の処理について、フローチャートを用いて説明する。
図27は、本実施の形態における携帯型端末611の定常状態の動作を示すフローチャートである。
まず、本実施の形態の携帯型端末611は、前のサイクルにおいて、受信していないACKパケットに対応するデータパケットが通信制御部627に保持されていたら、サイクルデータサイズDc分のデータパケットの送信に先立ち、その保持されているデータパケットを既存のTCPプロトコルに従って送信する(ステップS501)。このとき、携帯型端末611の抑制再開制御部624は、通信I/F部108への電源投入のタイミングを特定するため、タイマによる計時を開始する。
次に、携帯型端末611は、今回のサイクルで送信すべきサイクルデータサイズDc分のデータパケットを送信する(ステップS502)。このとき、上述の送信抑制期間の開始処理(ステップ2)で説明したように、携帯型端末611は、最後のデータパケットを送信後、送信したデータパケットに対応する全てのACKパケットをRTT間だけ待ち受ける。このRTT間に全てのACKパケットを受信しなければ、携帯型端末611は、その全てのACKパケットを受信しないまま、データパケットの送信を完了する。なお、TCPなので、最後のデータパケットは通信制御部107に保持されており、次回のサイクルの最初(ステップS501)で送信される。
携帯型端末611は、サイクルデータサイズDc分のデータパケットの送信が完了した後、通信I/F部108の電源を切断する(ステップS503)。携帯型端末611は、通信I/F部108の電源を切断すると、上述のタイマに基づいて、ステップS502でのデータパケットの送信開始時からサイクル間隔Tcが経過したか否かを判別する(ステップS504)。ここで、携帯型端末611は、サイクル間隔Tcが経過していないと判別したときには(ステップS504のNo)、ステップS503からの処理を繰り返し、サイクル間隔Tcが経過したと判別したときには(ステップS504のYes)、通信I/F部108の電源を投入する(ステップS505)。
なお、本実施の形態では、ステップS503およびS504において、定期的にサイクル間隔Tcの経過を確認しているが、定期的な確認を行わず、サイクル間隔Tcが経過したときに、割り込みを発生させて、サイクル間隔Tcの経過を検知してもよい。
最後に、携帯型端末611は、送信すべきアプリケーションデータ(データパケット)の送信を完了し、受信側装置603との通信を終了すべきか否かを判別し(ステップS506)、終了すべきと判別したときには(ステップS506のYes)、全ての処理を終了する。また、携帯型端末611は、終了すべきでなく、まだ送信すべきデータが存在すると判別したときには(ステップS506のNo)、ステップS501からの処理を繰り返し実行する。このようなステップS501〜S506の処理によって、間欠送信を行いながら通信が実行される。
以上のように、本実施の形態に係る携帯型端末611は、無線LANの省電力方法に依存せず、例えばTCPなどのフロー制御機構を持つプロトコルを使って、受信側装置603との間で通信を行いながら省電力化を行なう。そのため、本実施の形態では、アクセスポイントでの省電力機能のサポート状況やネットワークデバイスの種類にも関係なく、携帯型端末611の省電力化を図ることができる。また、携帯型端末611(送信側装置)から間欠送信を行うことが受信側装置603に通知されることにより、受信側装置603の間欠受信処理を抑えることができ、より確実に省電力化を図ることができる。
なお、本実施の形態では、送信抑制期間においてのみ、電源を切断したが、省電力効果をさらに向上するために、1サイクル内のデータパケットの送信後からACKパケットの受信までの期間も電源を切断してもよい。
図28は、本実施の形態に係る携帯型端末611と受信側装置603の他の省電力方法を示すシーケンス図である。
携帯型端末611は、実施の形態2の携帯型端末211aと同様に、サイクルの最初のデータパケット送信後、そのデータパケットに対応するACKパケットを受信するまでのRTT間のうち、一部の期間において通信I/F部108の電源を切断する。
具体的には、携帯型端末611は、サイクル間隔Tcの間にサイクルデータサイズ分のデータパケットを送信しなければならないので、1サイクルの全てのデータパケットを送信した直後(図28の時刻T92)から、最初のACKパケットが到達する直前(図28の時刻T93)までの期間において通信I/F部108の電源を切断する。ただし、受信側装置603から受信しているRWINがサイクルデータサイズDcよりも小さい場合は、携帯型端末611は、受信したRWINに応じたデータサイズ分のデータパケットを送信した後に電源を切断する。
また、本実施の形態では、サイクルデータサイズDcおよびサイクル間隔Tcを固定させたが、送信するデータサイズに応じて動的に変更してもよい。また、本実施の形態では、各サイクルの間隔をあけずに、各サイクルを連続させたが、各サイクルの間を空けてもよい。例えば、携帯型端末611は、サイクルデータサイズDc分のデータの送信準備がサイクル開始時点でできていない場合などでは、サイクルデータサイズDc分の送信すべきデータが準備されるまで、次のサイクルを開始せず、電源切断を行ってもよい。これにより、まとめてデータを送信することにより、TCPの往復回数を減らすことで、より省電力効果を得ることができる。
また、本実施の形態では、携帯型端末611(送信側装置)が、間欠送信を通知したが、必ずしも通知する必要はない。また、携帯型端末611(送信側装置)が、間欠送信を通知することなく、逆に、受信側装置603が、間欠受信を携帯型端末611に通知してもよい。また、携帯型端末611(送信側装置)と受信側装置603との間でネゴシエーションを実施することにより、間欠受信および間欠送信のうち何れを実行するかを決定してもよい。この場合、両装置が間欠送受信有効フラグに省電力効果に関する情報を含めることで、間欠受信および間欠送信のうち、省電力効果の高い方が実施される。また、本実施の形態では、間欠送信の実施を通知するタイミングを、3WAYハンドシェイクとしたが、そのタイミングは、間欠送信の準備状態などのように、間欠送信を実施する前であれば何れのタイミングであってもよい。
(実施の形態6)
本発明の実施の形態6に係る通信装置について説明する。実施の形態1から実施の形態5では、携帯型端末において動作する通信アプリケーションプログラムは1つだけであったが、本実施の形態では、複数の通信アプリケーションプログラムが同時に動作する。複数の通信アプリケーションプログラムが同時に動作した場合でも、複数の通信アプリケーションプログラムの送信処理および受信処理を同期することにより、送信抑制期間を発生させ、省電力効果を得ることができる。本実施の形態では、簡単のために2つの通信アプリケーションプログラムが同時に動作した場合について説明を行う。
図29は、本実施の形態における通信装置を有する通信システムの一例を示す構成図である。
本実施の形態に係る通信システムは、通信装置たる携帯型端末1001,1002と、UDP(User Datagram Protocol)などのようにフロー制御を行わない通信を行う送信側装置203aと、フロー制御付の通信を行う機能を持つ送信側装置203と、受信側装置603とを備える。
なお、本実施の形態において、実施の形態1〜5と同様の機器および構成については、同一の参照符号を付して説明を省略する。
本実施の形態における携帯型端末1001は、実施の形態2の携帯型端末211aの受信側装置としての機能と、実施の形態5の携帯型端末611の送信側装置としての機能とを兼ね備え、2つの通信アプリケーションプログラムを同時に実行する。つまり、本実施の形態における携帯型端末1001は、送信側装置203,203aから送信されるデータパケットを同時に受信したり、送信側装置203から送信されるデータパケットの受信と、受信側装置603へのデータパケットの送信とを同時に実行したりする。
また、本実施の形態における携帯型端末1001は、実施の形態1〜5と同様にTCPに従った通信を行うとともに、UDPに従った通信を行う。したがって、携帯型端末1001は、送信側装置203または受信側装置603と通信するときには、TCPに従ったデータの受信または送信を行い、送信側装置203aと通信するときには、UDPに従い、送信側装置203aから一定間隔ごとに送信されるデータを受信する。
なお、本実施の形態では、携帯型端末1001により実行される間欠受信および間欠送信を総称して、間欠送受信と呼び、携帯型端末1001により扱われる間欠受信パラメータおよび間欠送信パラメータを総称して、間欠送受信パラメータと呼ぶ。また、携帯型端末1001,1002はそれぞれ同一の機能と構成を有するため、携帯型端末1001のみについて以下に説明する。
図30は、本実施の形態における携帯型端末1001の具体的な構成を示す構成図である。
本実施の形態における携帯型端末1001は、通信アプリケーション部1011と、アプリ要求取得部1012と、パラメータ決定部1013と、抑制再開制御部1014と、電源制御部106と、通信制御部1027と、通信I/F部108と、RTT推定部1019とを備える。
通信アプリケーション部1011は、実施の形態2の通信アプリケーション部101の機能と、実施の形態5の通信アプリケーション部621の機能とを兼ね備え、データを送信するための通信アプリケーションプログラムと、データを受信するための通信アプリケーションプログラムとを同時に実行したり、データを送信または受信するための2つの通信アプリケーションプログラムを同時に実行したりする。つまり、通信アプリケーション部1011は、アプリ要求取得部1012に起動通知を発行して、送信側装置203a、送信側装置203および受信側装置603aのうち何れか2つの装置との間でデータの送受信を行う。
アプリ要求取得部1012は、実施の形態2のアプリ要求取得部102の機能と、実施の形態5のアプリ要求取得部622の機能とを兼ね備え、通信アプリケーション部1011から、性能パラメータを入手し、パラメータ決定部1013に対して、性能パラメータ登録通知または性能パラメータ削除通知を発行する。また、アプリ要求取得部1012によって入手される性能パラメータには、後述する「プロトコル」や「省電力優先度」が示されている。
抑制再開制御部1014は、実施の形態2の抑制再開制御部804の機能と、実施の形態5の抑制再開制御部624の機能とを兼ね備える。さらに、抑制再開制御部1014は、複数の通信アプリケーションプログラムの間欠送受信パラメータに従って、各通信アプリケーションプログラムによる間欠送受信の同期をとる。つまり、抑制再開制御部1014は、各通信アプリケーションプログラムにおける通信の抑制および再開を同時に行い、抑制時には、電源制御部106に対して通信I/F部108の電源を切断させる。通信の抑制および再開のタイミングについては後述する。さらに、本実施の形態の携帯型端末1001は、UDPを用いてデータの受信を行う場合は、UDPパケットの受信間隔を特定し、その受信間隔に基づいて、UDPパケットの受信予想時刻を推定する。
RTT推定部1019は、実施の形態2のRTT推定部809と同様に、各通信アプリケーションプログラムのRTTを推定し、推定したRTTをパラメータ決定部1013、抑制再開制御部1014および通信制御部1027に通知する。
パラメータ決定部1013は、実施の形態2のパラメータ決定部103の機能と、実施の形態5のパラメータ決定部623の機能とを兼ね備え、上述の間欠送受信パラメータを決定し、抑制再開制御部1014に間欠送受信パラメータ登録通知(間欠受信パラメータ登録通知または間欠送信パラメータ登録通知)または間欠送受信パラメータ削除通知(間欠受信パラメータ削除通知または間欠送信パラメータ削除通知)を送信する。
通信制御部1027は、実施の形態2の通信制御部107の機能と、実施の形態5の通信制御部627の機能とを兼ね備えるとともに、通信I/F部108を介して、送信側装置203aからUDPに従ったデータパケットの受信を行う。
図31Aおよび図31Bは、アプリ要求取得部1012が管理するUDPに関する性能パラメータ管理テーブルを示す図である。
性能パラメータ管理テーブル1012a,1012bはそれぞれ、UDPにより通信を行う起動済みの通信アプリケーションプログラムに対する性能パラメータを有する。その性能パラメータとしてはプロトコルや送信間隔がある。
プロトコルは、例えば「UDP固定レート受信」や「UDP可変レート送信」などのように、UDP固定レートまたはUDP可変レートと、送信または受信との組み合わせにより規定されるパラメータである。送信間隔DTは、UDPにより断続的に送信されるデータパケットの時間間隔を示すパラメータであり、プロトコルがUDP固定レートを示す場合に、性能パラメータ管理テーブルに設定され、プロトコルがUDP可変レートを示す場合には設定されない。
図32Aおよび図32Bは、アプリ要求取得部1012が管理するTCPに関する性能パラメータ管理テーブルを示す図である。
性能パラメータ管理テーブル1012c,1012dはそれぞれ、TCPにより通信を行う起動済みの通信アプリケーションプログラムに対する性能パラメータを有する。その性能パラメータとしては、プロトコルや、省電力優先度、ストリームタイプ、帯域、遅延時間がある。なお、ストリームタイプ、帯域および遅延時間のパラメータは、図6A、図6Bおよび図6Cに示すパラメータと同じである。
プロトコルは、例えば「TCP送信」や「TCP受信」などを示すパラメータである。省電力優先度は、間欠送受信のサイクルの基準となる通信アプリケーションプログラムを決定するためのパラメータである。
携帯型端末1001のパラメータ決定部1013は、起動済みの2つの通信アプリケーションプログラムのそれぞれの性能パラメータ管理テーブルにより示されるプロトコルや省電力優先度などに基づいて、その2つの通信アプリケーションプログラムのうち、何れか一方をサイクル基準アプリケーションに決定する。つまり、パラメータ決定部1013は、そのサイクル基準アプリケーションによる間欠送受信のサイクルを基準(基準サイクル)とし、他方の通信アプリケーションプログラムによる間欠送受信のサイクルがその基準サイクルに同期するように、その他方の間欠送受信パラメータを決定する。
例えば、TCPにより通信を行う起動済みの2つの通信アプリケーションプログラムが起動している場合には、パラメータ決定部1013は、その2つの通信アプリケーションプログラムの性能パラメータ管理テーブルに示される省電力優先度を比較する。そして、パラメータ決定部1013は、省電力優先度の高い通信アプリケーションプログラムをサイクル基準アプリケーションに決定する。
また、パラメータ決定部1013は、起動済みの2つの通信アプリケーションプログラムの性能パラメータ管理テーブルに示されるプロトコルを比較し、一方のプロトコルがTCPを示し他方のプロトコルがUDPを示す場合には、UDPの通信アプリケーションプログラムをサイクル基準アプリケーションに決定する。プロトコルがUDPの通信アプリケーションプログラムは再送制御を実施しないことから、間欠送受信の非給電状態でのパケットロスを極力避けなければならない。したがって、パラメータ決定部1013は、UDPの通信アプリケーションプログラムを優先的にサイクル基準アプリケーションに決定する。
なお、性能パラメータ管理テーブルに省電力優先度が設定されていない場合や、互いの性能パラメータ管理テーブルに示される省電力優先度が同じレベルである場合には、パラメータ決定部1013は、RTT推定部1019から通知されたRTTや、通信アプリケーションプログラムもしくはユーザによる指定に応じてサイクル基準アプリケーションを決定してもよい。
また、サイクル基準アプリケーションとならなかった通信アプリケーションプログラムは、サイクル基準アプリケーションと連動して動作することになる。そのため、パラメータ決定部1013は、サイクル基準アプリケーションとならなかった通信アプリケーションプログラムの間欠送受信パラメータを決定するときには、サイクルデータサイズDctを増やすなどして間欠送受信パラメータを調整し、通信アプリケーションプログラムからの要求が満たされるような間欠送受信パラメータを決定する。
パラメータ決定部1013は、TCPにより通信を行うサイクル基準アプリケーションの間欠受信パラメータを決定するときには、実施の形態1と同様に、間欠受信パラメータであるサイクル間隔TctとサイクルデータサイズDctを決定する。また、パラメータ決定部1013は、UDPにより通信を行うサイクル基準アプリケーションの性能パラメータ管理テーブルに示される送信間隔DTを、UDPにより送信されたパケットを受信する受信間隔や、UDPによりパケットを送信する送信間隔として用いる。
ここで、間欠送受信パラメータの決定方法について、以下詳細に説明する。
まず、通信アプリケーション部1011が2つの通信アプリケーションプログラムを起動し、一方の通信アプリケーションプログラムがUDPの送受信を行い、もう一方の通信アプリケーションプログラムがTCPの送受信を行う場合について説明する。
UDPの通信では、プロトコルによる再送制御が実施されないため、電源切断中にパケットを受信し、ロスすることは避けるべきである。また、VoIPなどの送信では、パケット送信遅延により音声が乱れるなどの現象が発生するため、パケット送信遅延に対する制約が厳しい。そこでまず、携帯型端末1001は、UDPとTCPの通信の両方を行う場合、UDPの送受信を実行しようとする通信アプリケーションプログラムをサイクル基準アプリケーションとし、UDPパケットの送信間隔を守ることにより、パケットの送受信遅延に関する制約を守る。
パラメータ決定部1013は、UDPにより通信を行う通信アプリケーションプログラムをサイクル基準アプリケーションに決定し、そのサイクル基準アプリケーションの性能パラメータ管理テーブルに示される送信間隔DT=DTuを特定する。そして、パラメータ決定部1013は、その送信間隔に基づいて、TCPにより通信を行う通信アプリケーションプログラムのサイクル間隔Tctを決定する。
次に、パラメータ決定部1013は、TCPにより通信を行う通信アプリケーションプログラムのサイクルデータサイズを、その通信アプリケーションプログラムの性能パラメータ管理テーブルに示される帯域BWに基づいて決定する。このとき、パラメータ決定部1013は、サイクル基準アプリケーションによるUDP通信の送信間隔DTuに、TCPの通信のサイクル間隔Tct(サイクル間隔Tctの整数倍)を合わせて両通信の同期が取られている状態において、必要とされるサイクルデータサイズを決定する。
具体的に、TCPの性能パラメータ管理テーブルに示されるストリームタイプが帯域重視型である場合は、両通信の同期を取るために、パラメータ決定部1013は、TCPの通信のサイクル間隔TctをTct=DTuに決定する。次に、実施の形態1と同様に、パラメータ決定部1013は、Dct=Tct×BWに従い、1回のサイクルにおいて送受信するデータサイズである、サイクルデータサイズDctを決定し、要求された帯域BWを確保する。
一方、TCPの性能パラメータ管理テーブルに示されるストリームタイプが遅延時間重視型である場合は、まず、パラメータ決定部1013は、UDPの送信間隔DTuとTCPの遅延時間DTtを比較する。UDPの送信間隔DTuよりも、TCPの遅延時間DTtのほうが長ければ、パラメータ決定部1013は、サイクル間隔TctをTct=DTuに決定し、サイクルデータサイズDctをDct=Tct×BWに決定する。逆に、TCPの遅延時間DTtの方が短ければ、DTu>C3×DTtとなるような整数C3を決定する。この場合、パラメータ決定部1013は、サイクル間隔TctをTct=DTu/C3に決定することで、UDPの送信間隔内に、TCPの送受信をC3回実行し、要求された遅延時間DTtを守る。そして、パラメータ決定部1013は、帯域重視型と同様に、Dct=Tct×BWにより、サイクルデータサイズDctを決定する。
なお、TCPの性能パラメータ管理テーブルに示されるストリームタイプがベストエフォート型の場合は、パラメータ決定部1013は、実施の形態1と同様に、間欠送受信パラメータを決定せず、携帯型端末1001は間欠送受信を行わない。
次に、通信アプリケーション部1011が2つの通信アプリケーションプログラムを起動し、両方の通信アプリケーションプログラムがTCPの送受信を行う場合について説明する。2つのTCPの通信を動作させる場合は、パラメータ決定部1013は、各通信のためのサイクル間隔TctとサイクルデータサイズDctを決定しなければならない。
ここでは、サイクル基準アプリケーションによる通信のサイクル間隔TctをTc1とし、その通信のサイクルデータサイズDctをDc1とする。また、もう一方の通信アプリケーションプログラムによる通信のサイクル間隔TctをTc2とし、その通信のサイクルデータサイズDctをDc2とする。
両方の通信がTCPの送受信の場合、まず、パラメータ決定部1013は、各通信アプリケーションプログラムの性能パラメータ管理テーブルに示される省電力優先度を確認し、優先度の高い通信アプリケーションプログラムをサイクル基準アプリケーションに決定する。そして、パラメータ決定部1013は、サイクル基準アプリケーションのサイクル間隔Tc1とサイクルデータサイズDc1とを、実施の形態1または実施の形態5と同様の方法で決定する。
次に、パラメータ決定部1013は、もう一方の通信アプリケーションプログラムについて、サイクルデータサイズDc2とサイクル間隔Tc2とを決定する。この決定方法では、パラメータ決定部1013は、上述のUDPの通信とTCPの通信を同時に行う場合における決定方法において、UDPの送信間隔DTuをサイクル基準アプリケーションのサイクル間隔Tc1に置き換えて計算することより、サイクル間隔Tc2とサイクルデータサイズDc2とを決定する。
図33は、本実施の形態に係る携帯型端末1001と送信側装置203aおよび送信側装置203との省電力方法を示すシーケンス図である。
例えば、携帯型端末1001は、図31Aに示す性能パラメータ管理テーブル1012aに対応する通信アプリケーションプログラムにより、UDPに従って送信側装置203aからデータを受信しながら、図32Bに示す性能パラメータ管理テーブル1012dに対応する通信アプリケーションプログラムにより、TCPに従って送信側装置203からデータを受信する。なお、送信側装置203aがUDPパケットを送信する送信間隔をDTuとし、送信側装置203bとの通信におけるサイクル間隔をTctとし、サイクルデータサイズをDctとし、RTTをRTTtとする。また、送信側装置203aとの通信は、UDPを用いて行うので、上述の通り、UDPを用いた通信アプリケーションプログラムをサイクル基準アプリケーションとし、UDPの送信間隔DTuはDTu=サイクル間隔Tctとなる。そして、携帯型端末1001は、送信間隔DTuの間隔でUDPパケットを受信すること、つまりUDPパケットを受信する時刻(受信予測時刻)を予測する。
本シーケンスでは、最初に、携帯型端末1001は、間欠受信の初期状態において、送信側装置203aおよび送信側装置203と通信するために、パラメータ決定部1013により、上記で説明した方法で間欠受信パラメータを決定する。
次に、携帯型端末1001は、間欠受信の準備状態の処理を行う。このとき、携帯型端末1001は、TCPを用いて送信側装置203と通信するために、実施の形態1と同様の方法により準備状態の処理を実施する。それに加えて、携帯型端末1001のRTT推定部1019は、TCPの通信のRTTであるRTTtを推定しておく。なお、携帯型端末1001は、UDPを用いて送信側装置203aと通信するときには、固定レートでパケット送受信を行うため、そのUDPの通信のための準備状態の処理を行わない。
また、携帯型端末1001の抑制再開制御部1014は、準備状態の処理が完了すると、サイクル基準アプリケーションによるUDPパケットの受信のタイミングに同期してTCPの通信アプリケーションプログラムによる通信が開始できるように、通信制御部1027によるACKパケットの送信を停止させて、送信側装置203aとの通信を抑制しておく。
その後の定常状態では、抑制再開制御部1014は、時刻T101にサイクル間隔Tctのタイマによる計時を開始し、送信側装置203からのデータ送信を再開させるため、通信制御部1027に対してACK単発送信要求を発行する。したがって、携帯型端末1001は、送信側装置203にACKパケットPa1を送信することで、間欠受信を開始する。ここで、開始するタイミング、つまりACKパケットPa1を送信するタイミング(時刻T101)は、送信側装置203aからのUDPパケットPu1の受信予測時刻と、送信側装置203からのTCPパケットPd1の受信予測時刻とがちょうど一致するように調整されている。なお、TCPパケットPd1は、送信側装置203から送信されるサイクルデータサイズDct分のパケット全てを含む。
つまり、抑制再開制御部1014は、送信側装置203aからのUDPパケットPu1の受信予測時刻を予測し、その受信予測時刻からRTTt分さかのぼったタイミング(時刻T101)で、ACK単発送信要求を発行して、ACKパケットPa1を送信させる。抑制再開制御部1014は、ACKパケットPa1の送信が完了した時刻T102に、電源制御部106に対して切断要求を発行する。電源制御部106は切断要求を受けると、通信I/F部108の電源を切断する。そして、ACKパケットPa1送信完了後の時刻T102からRTTt経過する時刻T103まで、送信側装置203aおよび送信側装置203のいずれからもパケットを受信することがないため、抑制再開制御部1014は、通信I/F部108の電源を切断させておく。
次に、抑制再開制御部1014は、時刻T102からRTTt経過したときの時刻T103に、送信側装置203aおよび送信側装置203からパケットが到達するため、電源制御部106に対して投入要求を発行する。その投入要求により、電源制御部106は時刻T103に通信I/F部108の電源を投入する。そして、受信すべき全てのパケットを受信した後の時刻T104と、サイクルの開始時刻T101からサイクル間隔Tct経過した時刻T105との間にはパケットを送受信しないため、抑制再開制御部1014は、電源制御部106を制御することにより、その時刻T104から時刻T105まで、通信I/F部108の電源を切断させる。そして、携帯型端末1001は、タイマによる計時の開始時刻T101からサイクル間隔Tctが経過した時刻T105に、再度新しいサイクルを開始する。このように、送信側装置203aのUDPパケットの送信間隔DTuと、送信側装置203の通信のサイクル間隔Tctとが同じであるため、この後も同期して間欠受信をすることが可能である。
このように本実施の形態における携帯型端末1001では、複数の通信を並列に実行する場合にも、それらのタイミングを同期させることで、データを送受信しない期間を作り、その期間に通信I/F部108の電源を切断して、省電力効果の向上を図ることができる。
なお、サイクルデータサイズDct分のTCPパケットがサイクル間隔Tctに受信されなかった場合には、携帯型端末1001は、間欠受信を実施せず、TCPパケットを受信すると直ちにACKパケットを送信し、次のデータ(TCPパケット)を受信してもよい。この場合、サイクルデータサイズDct分のTCPパケットを受信できなかったサイクルの次のサイクルでは、携帯型端末1001は、サイクルデータサイズDctに、前回のサイクルで受信できなかったデータのサイズを加算したサイズを、次のサイクルで必要となるサイクルデータサイズDctとし、次のサイクルを実行する。
また、図33では、UDPを用いた受信とTCPを用いた受信とを用いて、本実施の形態における携帯型端末1001の省電力効果を説明したが、UDPを用いた受信とTCPを用いた送信とを携帯型端末1001が実行する場合でも、本実施の形態における携帯型端末1001では、間欠送受信処理により省電力効果を向上させることが可能である。具体的には、本実施の形態で説明した例と同様に、携帯型端末1001は、UDPを用いた受信に合わせて、データパケット(TCPパケット)の送信、もしくはデータパケット(TCPパケット)に対応するACKパケットの受信を実施する。例えば、UDPパケットの受信と、データパケットに対するACKパケットの受信とのタイミングを合わせる場合は、携帯型端末1001は、図33の時刻T101で、ACKパケットの送信の代わりに、サイクルデータサイズDc分のデータパケットの送信を実施する。
また、図33では、携帯型端末1001は、送信側装置203との通信におけるサイクル間隔Tctを送信間隔DTuと同じとすることで、両通信の同期をとっていたが、サイクル間隔Tctを送信間隔DTuに等しくしなくても同期を取ることができる。この場合には、携帯型端末1001は、UDPパケットの送信間隔DTuとは無関係にサイクル間隔Tctを決定し、UDPパケットの受信予測時刻を推定し、各サイクル中の適切なタイミングにおいてACK単発送信要求に基づくACKパケットを送信する。つまり、ACKパケットの送信時刻はサイクルの開始に依存せず、UDPパケットの受信予測時刻、RTTtおよびサイクル間隔Tctを用いることで、データの送受信のタイミングの同期を取ることができる。
図34は、サイクル間隔Tctと送信間隔DTuとが異なる場合に抑制再開制御部1014がデータの送受信のタイミングの同期を取るための動作を示すフローチャートである。
最初に、抑制再開制御部1014は、サイクルの開始時刻において、そのサイクルのサイクル間隔Tct内にUDPパケットを受信するか否か、つまりUDPパケットの受信予測時刻(以下、UDP受信予測時刻という)が存在するか否かを判定する(ステップS601)。具体的には、抑制再開制御部1014は、(UDP受信予測時刻−サイクルの開始時刻)がサイクル間隔Tctよりも小さいか否かを判定する。
ここで、抑制再開制御部1014は、UDP受信予測時刻がサイクル間隔Tct内に存在しない((UDP受信予測時刻−サイクルの開始時刻)>サイクル間隔Tct)と判定すると(ステップS601のNo)、同期処理を行うことなく、サイクルの開始時刻にACKパケットを送信させる(ステップS605)。つまり、抑制再開制御部1014は、サイクルを開始すると同時に、実施の形態1と同様の方法により間欠受信制御を行う。
一方、抑制再開制御部1014は、UDP受信予測時刻がサイクル間隔Tct内に存在する((UDP受信予測時刻−サイクルの開始時刻)<サイクル間隔Tct)と判定すると(ステップS601のYes)、さらに、UDP受信予測時刻にTCPパケット(データパケット)を受信できるか否かを判定する(ステップS602)。つまり、抑制再開制御部1014は、UDPパケットの受信と、ACKパケットの送信もしくはTCPパケットの受信との同期を取るために、(UDP受信予測時刻−サイクルの開始時刻)とRTTtとを比較する。抑制再開制御部1014は、(UDP受信予測時刻−サイクルの開始時刻)>RTTtであれば、UDP受信予測時刻にTCPパケットを受信できると判定し、(UDP受信予測時刻−サイクルの開始時刻)<RTTtであれば、UDP受信予測時刻にTCPパケットを受信できないと判定する。
ここで、抑制再開制御部1014は、UDP受信予測時刻にTCPパケットを受信できる((UDP受信予測時刻−サイクルの開始時刻)>RTTt)と判定すると(ステップS602のYes)、UDPパケットの受信とTCPパケットの受信とを同期させる(ステップS603)。つまり、抑制再開制御部1014は、サイクルの開始時刻から{(UDP受信予測時刻−サイクルの開始時刻)−RTTt}経過したタイミングで、ACKパケットを送信させる。
一方、抑制再開制御部1014は、UDP受信予測時刻にTCPパケットを受信できない((UDP受信予測時刻−サイクルの開始時刻)<RTTt)と判定すると(ステップS602のNo)、UDPパケットの受信とACKパケットの送信とを同期させる(ステップS604)。つまり、抑制再開制御部1014は、UDP受信予測時刻にACKパケットを送信させる。
そして、抑制再開制御部1014は、次のサイクルがあるか否かを判別し(ステップS606)、次のサイクルがないと判別したときには(ステップS606のYes)、全ての処理を終了し、次のサイクルがあると判別したときには(ステップS606のNo)、ステップS601からの処理を繰り返し実行する。
このようなサイクル間隔Tctと送信間隔DTuとが異なるときの省電力方法について、図35を用いてさらに詳細に説明する。
図35は、本実施の形態に係る携帯型端末1001と送信側装置203aおよび送信側装置203との他の省電力方法を示すシーケンス図である。
携帯型端末1001は、送信側装置203とのTCPを用いた通信におけるサイクル間隔Tctを決定するときには、送信側装置203aとのUDPを用いた通信における送信間隔DTuと異なるサイクル間隔Tctを決定する。なお、図35では、説明を簡単にするため、携帯型端末1001がACKパケットの送信後RTTt経過まで電源を切断しないことを前提とする。
まず、携帯型端末1001は、時刻T111に定常状態に達すると、上述したサイクル間隔Tctと送信間隔DTuとが異なる場合の間欠受信制御に基づいて、ACKパケットの送信タイミングを決定する。携帯型端末1001は、時刻T111から開始されるこのサイクルでは、UDP受信予測時刻にTCPパケットを受信できる、つまり(UDP受信予測時刻−サイクルの開始時刻)>RTTtが成り立つと判定する。その結果、携帯型端末1001は、時刻T111にサイクルを開始し、その時刻から(UDPパケットPu1の受信予測時刻−サイクルの開始時刻T111−RTTt)が経過するタイミングになるまで、通信I/F部108の電源を切断しておく。次に、時刻T112に(UDPパケットPu1の受信予測時刻−サイクルの開始時刻T111−RTTt)のタイミングとなると、携帯型端末1001は、ACK単発送信要求に基づくACKパケットPa1を送信側装置203に送信する。そしてRTTt経過後、携帯型端末1001は、送信側装置203aからUDPパケットを受信し、送信側装置203からTCPパケットを受信する。携帯型端末1001は、時刻T113で、受信すべき全てのデータを受信すると、通信I/F部108の電源を切断し、サイクルの開始時刻T111からサイクル間隔Tct経過後の時刻T114まで、その電源を切断しておく。
次に、携帯型端末1001は、次のサイクルを開始する時刻T114に、次のUDPパケットPu2の受信予測時刻がそのサイクル中に発生するか否かを判断する。発生しないと判断すると、携帯型端末1001は、そのサイクルの開始時刻T114に、ACKパケットPa2を送信する。携帯型端末1001は、時刻T115に、そのACKパケットPa2に対応する全てのTCPパケットPd2を受信すると、その後、サイクルの終了時刻T116まで通信I/F部108の電源を切断する。
さらに、携帯型端末1001は、次のサイクルの開始時刻T116に、そのサイクルでは、UDP受信予測時刻にTCPパケットを受信できない、つまり(UDP受信予測時刻−サイクルの開始時刻T116)<RTTtが成り立つと判定する。その結果、携帯型端末1001はUDPパケットPu2を受信する時刻T117に、ACKパケットPa3を送信する。したがって、携帯型端末1001は、時刻T116から時刻T117まで通信I/F部108の電源を切断しておく。
このように、サイクル間隔Tctと送信間隔DTuが異なる場合も、UDP受信予測時刻とサイクル間隔TctとRTTtとを用いることで2つの通信の同期をとることができ、省電力効果を向上させることができる。
図36は、本実施の形態に係る携帯型端末1001と受信側装置603および送信側装置203との省電力方法を示すシーケンス図である。
携帯型端末1001は、TCPを用いて受信側装置603にデータを送信しながら、TCPを用いて送信側装置203からデータを受信する。ここで、受信側装置603との通信におけるサイクル間隔をTcとし、サイクルデータサイズをDcaとし、RTTをRTTaとする。また、送信側装置203との通信におけるサイクル間隔をTcとし、サイクルデータサイズをDcbとし、RTTをRTTbとする。上記の説明の通り、サイクル間隔Tcは、受信側装置603の通信と送信側装置203の通信とで、同一である。
また、携帯型端末1001は、図33の場合と同様に、サイクル基準アプリケーションのサイクルに合わせて、もう一方の通信のサイクル間隔TcおよびサイクルデータサイズDcを決定することにより、サイクル間隔Tcの同期をとり、送信抑制期間で通信I/F部108の電源を切断する。
最初に、携帯型端末1001は、図33と同様に初期状態において、受信側装置603および送信側装置203に対する間欠送受信パラメータを決定し、実施の形態2および実施の形態5と同様の準備状態の処理を実施し、間欠送受信可能な状態で各装置との通信を抑制しておく。ここで、本実施の形態では、受信側装置603との通信の省電力優先度が「高」であるものとする。よって、サイクル基準アプリケーションは、受信側装置603に対してTCPを用いた送信処理を行う通信アプリケーションプログラムとなる。したがって、携帯型端末1001は、送信側装置203に対する準備状態が完了すると、サイクル基準アプリケーションによる受信側装置603との通信と同期をとるため、送信側装置203の通信を抑制しておく。
そして、携帯型端末1001は、受信側装置603および送信側装置203に対する準備状態の処理が完了すると、定常状態の処理を開始する。すなわち、携帯型端末1001は、両通信のサイクル間隔Tcの間にサイクルデータサイズ分のデータの送受信が完了すると、各装置に対する通信を抑制し、その通信が抑制された期間、通信I/F部108の電源を切断する。
具体的には、定常状態では、まず、携帯型端末1001は、サイクル間隔Tcの開始時刻T121に、受信側装置603に対してデータパケットPdaを送信すると同時に、送信側装置203にACK単発送信要求に基づくACKパケットPabを送信する。次に、携帯型端末1001は、受信側装置603と送信側装置203とからパケットを受信するまで、それぞれRTTだけ時間がかかるため、通信I/F部108の電源を切断する。具体的には、携帯型端末1001は、受信側装置603に対してサイクル中に送信すべきデータパケットPdaが全て送信された時刻T122から、最初にデータパケットが到達する時刻T123まで、通信I/F部108の電源を切断する。なお、送信側装置203のRTTbの方が受信側装置603のRTTaよりも短いため、最初に到達するデータパケットは、送信側装置203から送信されたデータパケットPdbである。つまり、携帯型端末1001は、受信側装置603のRTTaの期間と、送信側装置203のRTTbの期間とが重なる期間(時刻T122〜時刻T123)に通信I/F部108の電源を切断する。
その後、携帯型端末1001は、時刻T123に再度電源を投入し、送信したデータに対応するACKパケットPaaを受信側装置603から受信するとともに、サイクルデータサイズDcb分のデータパケットPdbを送信側装置203から受信する。その結果、時刻T125に、このサイクル間隔Tcで受信側装置603および送信側装置203との間で行われるべき通信が全て完了するので、携帯型端末1001は、時刻T125からサイクル間隔Tcの終了点である時刻T126までを送信抑制期間とし、その期間において通信I/F部108の電源を切断する。
ここまでで、TCPを用いた送信とTCPを用いた受信とを同時に動作させる場合の、1サイクルが完了する。携帯型端末1001は、時刻T126以降も次のサイクルにおいて上述と同様の処理を実行することで、省電力効果を向上させることができる。
なお、図36では、携帯型端末1001の省電力方法について、携帯型端末1001がTCPを用いた送信とTCPを用いた受信とを実行する場合を例に挙げて説明した。しかし、サイクル基準アプリケーションがどちらの通信アプリケーションプログラムになるかにかかわらず、a)TCPを用いた2つの送信処理を並列に実行する場合、b)TCPを用いた2つの受信処理を並列に実行する場合でも、本実施の形態における携帯型端末1001は間欠送受信処理により省電力効果を向上させることができる。以下に上記a)、b)について具体的に説明する。
a)携帯型端末1001がTCPを用いた2つの送信処理を並列に実行する場合は、携帯型端末1001は、サイクル間隔Tcを開始する時点で、2つの受信側装置に対してデータパケットを送信し、対応するACKパケットを受信する。
b)携帯型端末1001がTCPを用いた2つの受信処理を並列に実行する場合は、携帯型端末1001は、サイクル間隔Tcを開始する時点で、2つの送信側装置に対してACK単発送信要求に基づくACKパケットを送信し、サイクルデータサイズDc分のデータパケットを受信する。
このように、本実施の形態では、複数の通信アプリケーションプログラムが動作している携帯型端末においても、通信アプリケーションプログラムの同期をとりながら間欠送受信を行い、通信I/F部108の電源を切断する期間を定期的に設けることで、省電力効果を向上させることができる。
(実施の形態7)
本発明の実施の形態7に係る通信装置について説明する。本実施の形態では、間欠送受信処理に伴い通信I/F部108への電力供給を切り換えるだけでなく、他の構成要素の動作も切り換えることにより、省電力効果をさらに高める。
図37は、本実施の形態における通信装置を有する通信システムの一例を示す構成図である。
本実施の形態に係る通信システムは、通信装置たる携帯型無線装置1102と、携帯型端末1101とを備え、携帯型端末1101と携帯型無線装置1102は基地局を経由することなく無線で直接通信する。
携帯型無線装置1102は、通信品質と省電力効果のさらなる向上を両立して図った通信装置であって、無線通信デバイスを搭載した無線端末として構成されている。また、この携帯型無線装置1102は、実施の形態6の携帯型端末1001と同様にフロー制御付の通信を用いて、携帯型端末1101と通信する。本実施の形態では、この携帯型無線装置1102は、通信相手となる携帯型端末1101からのデータ取得の要求に対し、携帯型無線装置1102が記憶しているデータを送信する。なお、携帯型端末1101と携帯型無線装置1102との間の通信において、上位プロトコルでフロー制御付の通信を行っていれば、無線接続の方式は、Bluetooth(登録商標)や、無線LANのインフラストラクチャーモード、アドホックモードなどであってもよく、通信方式を限定しない。
図38は、本実施の形態における携帯型無線装置1102の具体的な構成を示す構成図である。
本実施の形態における携帯型無線装置1102は、通信アプリケーション部1011と、アプリ要求取得部1012と、パラメータ決定部1013と、抑制再開制御部1114と、電源制御部106と、通信制御部1117と、通信I/F部108と、RTT推定部1019と、記憶部1017とを備える。なお、本実施の形態において、実施の形態1〜6と同様の構成要素については、同一の参照符号を付して説明を省略する。つまり、本実施の形態における携帯型無線装置1102は、実施の形態6の抑制再開制御部1014の代わりに抑制再開制御部1114を備え、通信制御部1027の代わりに通信制御部1117を備え、さらに新規に記憶部1017を備えている。
記憶部1017は、通信アプリケーション部1011で利用するデータを記憶している。また、記憶部1017は、ハードディスクとキャッシュとモータとを備え、ハードディスクから読み出したデータをキャッシュに保存する。ハードディスクに記憶されているデータは、プラッタと呼ばれるディスク上に保存され、プラッタは、セクタとよばれる単位に分割されている。データの読み出しの際は、プラッタをモータで回転させてセクタの整数倍単位でデータの読み出しを行う。一方、キャッシュは、ディスクとは異なり、半導体メモリなどで構成され、モータを使用しない方式でデータを保存する。なお、記憶部1017は、抑制再開制御部1014からのデータ取得要求によりモータを起動して、ハードディスクからデータを読み出し、キャッシュに記憶すると同時に、キャッシュに記憶された必要分のデータのみを通信アプリケーション部1011に渡す。
抑制再開制御部1114は、間欠送受信処理を開始する際、携帯型無線装置1102が間欠送受信処理を行うことを通知する機能をさらに備える。間欠送受信処理は、通信相手が間欠送受信処理を行わない場合に省電力効果を高めることができる。そのため、携帯型無線装置1102は、間欠送受信処理を行う前に通信相手となる携帯型端末1101に対し、間欠送受信処理を行うことを通知し、その携帯型端末1101による間欠送受信処理を停止させる。
具体的には、抑制再開制御部1114は、通信制御部1117に、間欠送受信処理を行う旨を通知する。さらに、抑制再開制御部1114は、記憶部1017に対してデータ取得要求を行い、モータ起動のタイミングと間欠送受信処理のタイミングとを連動させる。
通信制御部1117は、抑制再開制御部1114から間欠送受信処理を行う旨を通知されると、TCPパケットに間欠送受信処理を行う設定を行う。具体的には、通信制御部1117は、携帯型端末1101との通信開始時のTCPの3WAYハンドシェイクの際に、TCPヘッダのオプションフィールドに新たに間欠送受信有効フラグを追加する。間欠送受信有効フラグが有効であるTCPパケットを受信した通信相手である携帯型端末1101は、間欠送受信処理を実施しない。
図39は、本実施の形態における携帯型無線装置1102と携帯型端末1101の定常状態での動作を示すシーケンス図である。なお、本実施の形態における初期状態および準備状態の処理は、実施の形態5と同様のため、説明を省略する。
抑制再開制御部1114は、定常状態では、サイクルが開始される時刻T131に、最初のデータパケットP1を送信し、さらにそのタイミングで記憶部1017に対してデータ取得要求を行う。これにより、記憶部1017は、キャッシュにサイクルデータサイズ分のデータを保持している場合には、そのデータを通信アプリケーション部1011に渡す。また、記憶部1017は、キャッシュにサイクルデータサイズ分のデータを保持していなければ、ハードディスクのモータを起動し、サイクルデータサイズの整数倍のデータをキャッシュにコピーすると同時に、サイクルデータサイズ分のデータを通信アプリケーション部1011に渡す。これにより、ハードディスクのモータの起動回数を減らして、モータ起動時の電力を抑制することができる。
携帯型無線装置1102は、このような処理を繰り返すことにより、通信アプリケーションプログラムが必要とする全てのデータを送信する。
このように、本実施の形態では、データを送信する所定のタイミングのみで、記憶部1017のモータを起動することにより、携帯型無線装置1102の省電力効果を高めることができる。また、間欠送受信処理を行う前に、間欠送受信処理を行う旨を通知することで、確実に省電力効果を高めることができる。
なお、携帯型無線装置1102は、携帯型のハードディスクや、携帯型の音楽記録再生機、携帯型の動画記録再生機などの、無線通信により記憶しているデータを送信する装置であってもよい。
また、本実施の形態では、データ送信のタイミングに常にモータを起動してもよく、一度のモータの起動で、複数回分のデータをキャッシュに記憶させ、モータの起動および停止回数を削減してもよい。
また、本実施の形態では、記憶部1017のモータと同期させて、間欠送受信処理を行ったが、セルラー系の通信手段を持つ携帯型端末の場合、その通信の送受信タイミングと同期させて、間欠送受信処理を実施してもよい。
また、本実施の形態では、間欠送受信のタイミングに記憶部1017におけるモータの処理を同期させたが、他の処理を同期させてもよく、CPU稼動時間が小さくなるように制御してもよい。
以上、本発明に係る通信装置について、実施の形態1〜7を用いて説明したが、本発明は、これらに限定されるものではない。
例えば、図5、図12、図14、図22、図25、図30、および図38に示す通信装置をそれぞれLSI(Large Scale Integration)などの半導体集積回路で構成してもよい。
また、実施の形態1〜7のそれぞれの特徴を組み合わせても本発明を実現することができる。
本発明の通信装置は、通信品質と省電力効果のさらなる向上を両立して図ることができるという効果を奏し、例えば、テレビやDVD(Digital Versatile Disk)プレーヤーなどの据え置き型の家電機器、携帯電話やPDA(Personal Digital Assistants)などの携帯機器、並びにパーソナルコンピュータなどに適用することができる。
本発明は、通信装置に関し、特に、省電力を目的とした通信装置および通信システム、ならびに省電力方法に関する。
近年、インターネットを中心としたIP(Internet Protocol)ネットワークが急速に拡大している。つまり、PC(Personal Computer)だけでなく、テレビやDVD(Digital Versatile Disk)プレーヤーなどの据え置き型の家電機器におけるIPネットワークの利用が普及し始めるとともに、携帯電話やPDA(Personal Digital Assistants)、デジタルカメラなどの携帯型端末におけるIPネットワークの利用も普及し始めている。このようにインターネットなどのネットワークに接続可能な機器を通信装置と呼ぶ。
IPネットワークを利用したサービスでは、音楽データや動画データのダウンロードやアップロード、さらには音声などのストリーミングデータの送受信などが行われ、長時間の通信を行うことがある。そのため、IPネットワークを利用するための消費電力を軽視することができない状況となっている。通信装置を構成するデバイスの中でも、IPネットワークを利用するためのネットワーク接続デバイスが特に多くの電力を必要としている。
ネットワーク接続デバイスには、有線によりIPネットワークを利用するデバイスと、無線によりIPネットワークを利用するデバイスとが存在する。消費電力を低減させるための省電力技術は、上述のような無線や有線を問わず、さまざまな機器に対して検討されている。その中でも携帯型端末では、内蔵のバッテリーのみで長時間使用するような使い方が想定されるため、省電力技術を特に必要としている。したがって、以下では、携帯型端末における省電力技術の例を説明する。
携帯型端末のネットワーク接続デバイスとしては、無線LAN(Local Area Network)デバイスの利用が注目されている。無線LANデバイスは比較的大きな電力を消費するので、その省電力化は重要な検討課題であり、多くの省電力化の手法が提案されている。
無線LANの標準規格であるIEEE802.11では、無線端末の省電力化の方法として、パワーマネージメントのモード(パワーセーブモード)が規定されている。この方法では、無線端末は、パワーセーブモードで動作している場合、無線基地局(アクセスポイント)からビーコンが送信されるタイミングに合わせて受信動作を行ない、それ以外の間は受信動作を行なわない状態(ドーズモード)に入る。無線端末は、ドーズモードにおいて、その無線端末に備えられた無線LANデバイスの電力供給を停止することにより、無線端末の消費電力を低減することができる。
図1は、パワーセーブモードでの無線端末の動作を説明するための説明図である。
無線端末は、送信側装置から送信されたデータを、アクセスポイント(AP)を介して受信する。このとき、無線端末は、アクセスポイントからビーコン(図1中の「B」のタイミングで送信される信号)が送信されるたびに、または複数のビーコンの送信に1回のタイミングで、受信状態(電源が投入された状態)に入り、そのビーコンを受信する。ここでは、この無線端末がビーコンを受信する一定の間隔を、「スリープ間隔」と呼ぶ。スリープ間隔は、無線端末とアクセスポイントの間の接続シーケンスなどによって、無線端末から設定または変更される。
また、図1に示すように、ドーズモードの期間中に無線端末宛に送信されたパケットは、一旦アクセスポイントでバッファリングされる。無線端末が次にビーコンを受信したときには、無線端末は、自分宛のパケットが届いていることが通知されるので、アクセスポイントに対してPS−Poll(Power Save Poll)パケットを送信する。PS−Pollパケットを受信したアクセスポイントは、その無線端末宛のパケットをまとめて送信するので、ドーズモードの期間に送信されたパケットは正しく無線端末に受信される。
しかしながら、この方法では、省電力効果と通信品質(遅延時間や帯域)を両立させるのが難しいという問題がある。例えば、図1に示すように、送信側装置のデータ送信間隔に対して、スリープ間隔が長く設定されていると、大きな通信遅延が発生してしまう。この場合には、最大、スリープ間隔に相当する時間分だけの通信遅延が発生する可能性がある。一方、必要以上にスリープ間隔を短く設定すると、無駄なポーリングが発生し、省電力効果が小さくなってしまう。また、本来、ネットワークの通信状況や通信アプリケーションプログラムの要件(例えば、遅延時間や帯域の制限など)によって、適切なスリープ間隔は異なる。しかしながら、この方法ではスリープ間隔が固定のため、状況に応じた適切な省電力効果と通信品質が得られない。
上記の問題を解決するため、従来、通信アプリケーションプログラムが使用する通信データ帯域に応じてスリープ間隔を設定および変化させることで、通信品質と省電力効果とを両立させる方法が提案されている(例えば、特許文献1参照)。
図2は、上記特許文献1の無線端末の動作を説明するための説明図である。
特許文献1における無線端末は、図2に示す省電力設定リストを記憶しており、その省電力設定リストにはスリープ間隔(省電力設定)が設定されている。
具体的には、省電力設定リストには、無線端末で実行される各通信アプリケーションプログラムと、その通信アプリケーションプログラムが要求するデータ速度に対応する0〜10までの省電力レベルと、その省電力レベルに対応するスリープ間隔(省電力設定)とが登録されている。
例えば、比較的速いデータ速度が要求される音声ストリーミングの通信アプリケーションプログラムには、省電力設定「ビーコンを毎回受信」および省電力レベル「1」が登録され、それよりもやや遅いデータ速度が要求されるウェブブラウザの通信アプリケーションプログラムには、省電力設定「ビーコンを2回に1回受信」および省電力レベル「2」が登録されている。また速いデータ速度が要求されない電子メールの通信アプリケーションプログラム(メールソフト)には、省電力設定「ビーコンを10回に1回受信」および省電力レベル「10」が登録され、極めて速いデータ速度が要求される動画ストリーミングの通信アプリケーションプログラムには、省電力設定「省電力制御を行なわない(ドーズモードに入らない)」および省電力レベル「0」が登録されている。
無線端末は、通信アプリケーションプログラムの起動または終了時に、省電力設定リストを元に、実行中の通信アプリケーションプログラムの中で最も省電力レベルが低いものを検索する。そして、無線端末は、その検索結果の省電力レベルに応じて省電力設定(スリープ間隔)を変更し、アクセスポイントにも省電力設定変更通知を送信する。
このように、特許文献1の無線端末(通信装置)は、通信アプリケーションプログラムの性質に応じて、ビーコンを受信する間隔(スリープ間隔)を変化させることで、適切な遅延時間や帯域で通信を行ないながら、消費電力を削減することもできる。
特開2004−187002号公報
しかしながら、上記特許文献1の通信装置であっても、通信品質と省電力効果とを十分に両立させることができないという問題がある。
つまり、従来の特許文献1に示す方式は、無線LANの省電力方式の上で動作する方式であるため、無線LAN特有の課題が発生する。具体的には、適用可能なネットワークが制限されるという第1の課題と、省電力制御とリアルタイム通信が両立できないという第2の課題と、アクセスポイントでデータの取りこぼしが発生してしまうという第3の課題とが発生する。
まず、第1の課題について説明する。特許文献1に記載の通信装置は、IEEE802.11規定の省電力機能を有するアクセスポイントと連動して動作する。しかしながら、アクセスポイントによっては、IEEE802.11規定の省電力機能をサポートしていないものや、機能を持っていてもデフォルトでOFFになっているものがある。そのような環境では、たとえ携帯型端末側(通信装置側)で特許文献1に記載の省電力機能を搭載していたとしても、携帯型端末の省電力化が行なえない。また、同様の理由のため、携帯型端末(通信装置)がIEEE802.11以外のネットワークデバイスを使って通信(例えば、有線通信やIEEE802.11以外の無線通信)する際には、特許文献1記載の省電力方法を適用できない。このように、従来の特許文献1に示す方式は、適用可能なネットワークの条件が制限されており、ネットワークデバイスの種類や他の通信機器の実装状況によって、省電力化が行なえない場合が発生する。
次に、第2の課題について説明する。特許文献1の通信装置は、スリープ間隔を変化させるが、単にスリープ間隔のビーコン送信間隔に対する倍率を変化させるだけであるため、ビーコン送信間隔自体を自由に変更させることはできない。そのため、特許文献1の通信装置によるデータ受信は、IEEE802.11の省電力方式と同じくビーコンの送信に連動したタイミングで行なわれる。その結果、特許文献1の通信装置では、リアルタイム通信に必要な遅延時間や帯域の要件を十分に満たすことができない。
以下、第2の課題を、遅延時間が長くなってしまうという問題と、通信帯域が低く抑えられるという問題とに分けて説明する。
まず、第2の課題における遅延時間が長くなってしまうという問題について説明する。特許文献1におけるスリープ間隔は、ビーコン送信間隔より短く設定できない。従って、VoIP(Voice over Internet Protocol)などの短時間おきにデータを送受信する通信アプリケーションプログラムでは、省電力制御を行なうと、遅延時間が長くなってしまう場合がある。特に、アクセスポイントのビーコン送信間隔が長く設定されていた場合には、遅延時間の増大により、音声品質が低下してしまう。
また、ビーコン送信間隔が短くても、1つのアクセスポイントに複数の無線端末(通信装置)が接続されている場合には、遅延時間が増大してしまうことがある。具体的には、リアルタイム性の要求される通信アプリケーションプログラムが複数の無線端末(通信装置)で動作している場合、ビーコン送信毎に同時に複数の無線端末からPS−Poll(無線端末へのデータ送信を要求するパケット)が送信される。その場合、IEEE802.11で規定されている、送信時のバックオフアルゴリズム(無線端末が送信可能状態になった後に実際にデータを送信できるまでに、あるランダム時間だけ待ってからデータを送信するアルゴリズム)に基づくと、特定の無線端末以外の1つ以上の無線端末が先に送信してしまう場合がある。このとき、先に送信を開始した無線端末からのデータ送信が完了するまで、その特定の無線端末はデータ送信を待たされてしまうため、待ち時間が増加する可能性が高くなってしまう。その結果、VoIPなどの遅延時間に制限のある通信アプリケーションプログラムでは、遅延時間の増大が問題になる。さらに、無線端末側では、ビーコンを受信して実際にデータを受信し終わるまでドーズ状態に戻れないため、実際にデータの送受信を行なわない待ち時間も、無駄に電源を投入し続けることになり、省電力効果が小さくなる。
次に、第2の課題における通信帯域が低く抑えられるという問題について説明する。ビーコン送信間隔が長い条件で特許文献1の省電力化を行なうと、TCP(Transmission Control Protocol)での通信帯域が低く抑えられてしまう。これは、後述するTCPのフロー制御の仕組みにより、一度に受信できるデータサイズが、受信(無線端末)側のTCPの受信バッファのサイズに制限されてしまうためである。高帯域でデータ受信を行なうには、大きな受信バッファを用意して一度に受信するデータを大きくするか、データ受信の間隔(=スリープ間隔)を短く設定するか、のどちらかが必要となる。
ビーコン送信間隔が長い場合、スリープ間隔もビーコン送信間隔より短く設定できないので、高帯域の通信を行なうには膨大な受信バッファを搭載する必要がある。例えば、無線端末がTCPの受信バッファを64[KByte]搭載していたとしても、ビーコン送信間隔が200[msec]の場合、最大のスループットは、2.6[Mbps]程度に抑えられてしまう。
このように、特許文献1の省電力制御および通信装置では、データ受信をビーコン送信のタイミングに連動させる必要があるため、遅延時間増大や帯域低下の課題が発生する場合がある。従って、遅延時間や帯域を確保するためには、ドーズモードに入らない(省電力制御を行なわない)という省電力設定を選択するしかなく、リアルタイム通信と省電力制御を両立することが十分にできない。
最後に、第3の課題について説明する。
特許文献1に記載の方式では、IEEE802.11の省電力方式と同じく、アクセスポイントがドーズモード中の無線端末(通信装置)宛のパケットをバッファリングしている。しかしながら、送信側装置と携帯型端末(通信装置)間のデータ送受信は、常に一定レートではなく、通信装置内での処理の遅れやネットワーク内でのジッタなどにより、アクセスポイントにバッファリングされるデータ量は変化する。従って、想定以上のデータ量がバースト的に到着すると、アクセスポイントがバッファリングしきれずにデータを取りこぼしてしまう可能性がある。
そこで、本発明は、かかる問題に鑑みてなされたものであって、通信品質と省電力効果のさらなる向上を両立して図った通信装置を提供することを目的とする。
上記目的を達成するために、本発明に係る通信装置は、通信相手側装置と通信する通信装置であって、前記通信相手側装置に対してデータの送受信を行う通信手段と、前記通信手段に対して供給される電力の状態を、前記送受信に必要な電力が供給されている給電状態と、前記送受信に必要な電力が供給されていない非給電状態とに切り換える電源切換手段と、前記通信相手側装置に対してデータ(例えばACKパケットやTCPのデータパケットなど)の送信を抑制させる抑制手段と、前記抑制手段によってデータの送信が抑制されていないときには、前記電源切換手段に対して、前記電力の状態を前記給電状態に切り換えさせ、前記抑制手段によってデータの送信が抑制されているときには、前記電源切換手段に対して、前記電力の状態を前記非給電状態に切り換えさせる切換制御手段とを備えることを特徴とする。例えば、前記通信装置は、さらに、データサイズである受信ウィンドウを含む送信要求データを前記通信手段から送信させることにより、前記通信相手側装置から前記受信ウィンドウ以下のデータを送信させて前記通信手段に受信させることを繰り返す通信制御手段を備え、前記抑制手段は、0より大きな値を示す受信ウィンドウを含む前記送信要求データを正送信要求データとし、当該正送信要求データの前記通信手段からの送信を停止することにより、前記通信相手側装置に対してデータの送信を抑制させる。また、前記抑制手段は、さらに、前記正送信要求データの送信の停止を解除することで、前記通信相手側装置からのデータの送信を再開させる。
これにより、抑制手段による任意のタイミングで、通信相手側装置からのデータの送信が抑制されて、そのときに通信手段に供給される電力が削減されるため、通信装置は、通信相手側装置に関わらず、つまり適用可能なネットワークの条件に制限されず、通信品質に支障が生じない適切なタイミングで、積極的にデータの送信を抑制させて省電力化を図ることができる。その結果、通信品質と省電力効果のさらなる向上を両立して図ることができる。
即ち、本発明の通信装置は、IEEE802.11規定の無線LANに依存しない方法で省電力化の制御を行うため、アクセスポイントとの連携を必要とせず、無線LANのネットワーク環境に依存しない。また、このため、有線通信やIEEE802.11以外の無線通信時にも省電力制御が行なえる。
また、IEEE802.11規定の無線LAN環境を想定した場合にも、本発明は従来の特許文献1の技術と比べて以下の2つの利点がある。
まず第1に、本発明では、データ受信がアクセスポイントのビーコン送信のタイミングに連動せず、通信アプリケーションプログラムの要求する遅延時間や帯域に合わせたタイミングでデータ受信を行なうことができる。そのため、リアルタイム通信を行ないながら、つまり、リアルタイム通信に必要な遅延時間や帯域の要件を満たしながら、同時に省電力制御も両立することができる。
また第2に、本発明によれば、従来方法のようにドーズモードで受信したデータをアクセスポイントでバッファリングするのではなく、通信装置の電源を切断している間には、そもそも送信側装置(通信相手側装置)からのデータ送信がない状態にされている。そのため、送信側装置の処理またはネットワーク上でなんらかのジッタが発生したとしても、アクセスポイントでデータ溢れがおきるような課題も発生しなくなる。
また、前記通信制御手段は、前記通信手段でデータが受信されると、前記データを受信したことを通知する肯定応答パケットを前記送信要求データとして前記通信手段から送信させ、前記抑制手段は、前記通信手段でデータが受信されたときに前記正送信要求データとして送信されるべき、0より大きな値を示す受信ウィンドウを含む前記肯定応答パケットの、前記通信手段からの送信を停止することにより、前記通信相手側装置に対してデータの送信を抑制させ、0より大きな値を示す受信ウィンドウを含む前記肯定応答パケットを前記通信制御手段に生成させて送信させることにより、前記通信相手側装置からのデータの送信を再開させることを特徴としてもよい。例えば、前記通信制御手段は、TCP(Transmission Control Protocol)に従って、前記肯定応答パケットを前記通信手段から送信させるとともに、前記肯定応答パケットに対して前記通信相手側装置から送信されたデータを前記通信手段に受信させる。
これにより、フロー制御の仕組みを使うTCPに従った通信において、通信品質と省電力効果のさらなる向上を両立して図ることができる。
また、前記抑制手段は、さらに、前記通信相手側装置のデータの送信が抑制されているときに、受信ウィンドウとして0を示す送信要求データを前記通信手段から送信させることを特徴としてもよい。
例えば、通信相手側装置は、一定期間のうちに、受信ウィンドウとして0を示す送信要求データを受信できないときには、先に送信したデータが通信装置に受信されていないと判断して、そのデータを再送し、その後、送信要求データに対して送信可能なデータのサイズを減少させてしまうことがある。このような場合でも、本発明では、受信ウィンドウとして0を示す送信要求データが通信相手側装置に送信されるため、通信相手側装置からデータが送信されるのを抑えた状態で、通信相手側装置において送信可能なデータのサイズの減少を防ぐことができる。
また、前記通信装置は、さらに、サイクル時間およびサイクルデータサイズを決定する決定手段を備え、前記通信制御手段は、前記決定手段で決定されたサイクルデータサイズを前記受信ウィンドウとし、前記サイクルデータサイズを示す送信要求データを前記通信手段から送信させ、前記送信要求データを送信したタイミングをサイクル開始時点とし、前記抑制手段は、前記通信手段から前記送信要求データが送信されてから、前記決定手段で決定された前記サイクル時間が経過する時点をサイクル終了時点とし、前記サイクルデータサイズのデータが前記通信手段に受信されてから前記サイクル終了時点まで、前記正送信要求データの前記通信手段からの送信を停止し、前記サイクル終了時点を次のサイクルの前記サイクル開始時点として、前記サイクル開始時点から前記サイクル終了時点までの処理を前記サイクル時間ごとに繰り返させることを特徴としてもよい。例えば、前記決定手段は、前記通信装置と前記通信相手側装置との間で要求される通信の性能に基づいて、前記サイクル時間およびサイクルデータサイズを決定する。
これにより、サイクル時間(サイクル間隔)内において、送信要求データの送信と、その送信要求データに対するサイクルデータサイズ分のデータの受信と、送信要求データの送信の停止処理とを含む1つのサイクルを行い、さらに、そのサイクルを繰り返すことで、間欠的なデータの送受信を行うことができる。また、例えば、通信装置で実行される通信アプリケーションプログラムによって要求される通信帯域や遅延時間などの条件(性能)が満たされた状態で、その間欠的なデータの送受信を行うことができる。その結果、サイクル終了時点まで次の送信要求データの送信を停止していても、上述の通信帯域や遅延時間の要求を満足することができる。
また、前記切換制御手段は、前記通信相手側装置から前記サイクルデータサイズのデータが送信されて前記通信手段に受信された後、前記電源切換手段に対して、前記電力の状態を前記給電状態から前記非給電状態に切り換えさせ、前記サイクル終了時点までに、前記電源切換手段に対して、前記電力の状態を前記非給電状態から前記給電状態に切り換えさせることを特徴としてもよい。
これにより、間欠的なデータ送受信の1サイクルにおいて、通信手段での消費電力を確実に減少させることができる。
また、前記通信相手側装置は、当該通信相手側装置から送信されたデータが消失して前記通信手段に受信されなかったことを検知すると、前記送信要求データに対して送信可能なデータのサイズである送信ウィンドウを減少させ、前記抑制手段は、前記通信手段から送信された前記送信要求データに対して、前記通信相手側装置から送信されて前記通信手段に受信されたデータのサイズが、前記送信要求データの示すサイクルデータサイズよりも小さいか否かを判別し、小さいと判別したときには、前記受信ウィンドウが前記送信ウィンドウ以下となるようなウィンドウ制御を行うことを特徴としてもよい。例えば、前記抑制手段は、前記通信手段から送信された前記送信要求データに対して、前記通信相手側装置から送信されて前記通信手段に順次受信された各データの識別番号が連続であるか不連続であるかを判別し、不連続であると判別したときに、前記通信手段に受信されたデータのサイズが、前記送信要求データの示すサイクルデータサイズよりも小さいと判別する。または、前記抑制手段は、前記通信手段から送信された前記送信要求データに対して、前記通信相手側装置から送信されて前記通信手段に順次受信された各データの合計サイズが、予め定められた期間内で、前記送信要求データの示すサイクルデータサイズに達するか否かを判別し、達しないと判別したときに、前記通信手段に受信されたデータのサイズが、前記送信要求データの示すサイクルデータサイズよりも小さいと判別する。
通信相手側装置が、データが消失して通信手段に受信されなかったことを検知すると、即ちパケットロスを検知すると、送信ウィンドウ(輻輳ウィンドウ)が減少するため、受信された送信要求データの示す受信ウィンドウ(サイクルデータサイズ)が送信ウィンドウよりも大きくなる場合がある。このような場合には、通信装置の通信手段は、送信要求データを送信しても、その送信要求データの示す受信ウィンドウ(サイクルデータサイズ)のデータを受信することができず、送信ウィンドウだけのデータを受信する。仮にこのような状態が継続されれば、通信装置の切換制御手段は、通信手段に供給される電力の状態を非給電状態に切り換えることができず、省電力化を行うことができない。
そこで、本発明では、通信手段に受信されたデータのサイズがサイクルデータサイズよりも小さい場合には、例えば、受信ウィンドウを低下させたり、送信ウィンドウをサイクルサイズ以上に回復させたりするように、前記受信ウィンドウが前記送信ウィンドウ以下となるようなウィンドウ制御を行うため、パケットロスが発生しても受信ウィンドウ≦送信ウィンドウの関係を維持して、上述のような間欠的なデータの送受信を行うとともに省電力化を図ることができる。
また、前記抑制手段は、前記通信手段に受信されたデータのサイズが前記サイクルデータサイズよりも小さいと判別したときには、前記ウィンドウ制御として、後に前記通信手段から送信される送信要求データの示す受信ウィンドウを前記サイクルデータサイズよりも小さくさせることを特徴としてもよい。
これにより、パケットロスが発生しても受信ウィンドウ≦送信ウィンドウの関係を確実に維持して、間欠的なデータの送受信を行うとともに省電力化を図ることができる。
また、前記通信相手側装置は、前記通信手段から送信要求データを受信して、前記送信要求データに対するデータを前記通信手段に送信することを繰り返すことによって、減少された前記送信ウィンドウを増加させ、前記抑制手段は、前記送信ウィンドウの増加に伴って、前記通信手段から送信される送信要求データの示す受信ウィンドウを増加させることを特徴としてもよい。
これにより、パケットロスなどによって、送信ウィンドウおよび受信ウィンドウが減少されても、それぞれ増加されるため、それぞれを元の値にして、通信状態を、パケットロスが発生する前の状態に回復させることができる。
また、前記抑制手段は、前記サイクルデータサイズよりも小さい受信ウィンドウを示す送信要求データが前記通信手段から繰り返し送信されている間、前記決定手段で決定されたサイクル時間を短くし、前記通信手段から前記送信要求データが送信されてから、短くされた前記サイクル時間が経過する時点をサイクル終了時点とし、前記受信ウィンドウのデータが前記通信手段に受信されてから前記サイクル終了時点まで、前記正送信要求データの前記通信手段からの送信を停止することを特徴としてもよい。
これにより、受信ウィンドウがサイクルデータサイズよりも小さくなっても、サイクル時間が短くされるため、単位時間当りに通信相手側装置から送信されて通信手段で受信されるデータの量を一定に、つまりスループットを一定に保つことができる。
また、前記通信相手側装置は、前記通信手段から送信要求データを受信して、前記送信要求データに対するデータを前記通信手段に送信することを繰り返すことによって、減少された前記送信ウィンドウを増加させ、前記抑制手段は、前記送信ウィンドウが前記サイクルデータサイズよりも小さくなってから前記サイクルデータサイズ以上になるまでのウィンドウ回復期間、前記ウィンドウ制御として、前記正送信要求データの送信の停止を解除することを特徴としてもよい。
これにより、パケットロスなどによって減少された送信ウィンドウを元の値に回復させることができる。
また、前記通信制御手段は、前記通信手段でデータが受信されると、次に受信すべきデータの識別番号を通知することで、前記通信手段でデータが受信されたことを、前記通信相手側装置に通知する肯定応答パケットを、前記送信要求データとして前記通信手段から送信させ、前記ウィンドウ回復期間では、前記肯定応答パケットを、互いに異なる前記識別番号を有する複数の肯定応答パケットに分けて前記通信手段から送信させることを特徴としてもよい。
これにより、通信装置が肯定応答パケットを通信相手側装置に送信し、その肯定応答パケットに対して通信相手側装置が通信装置にデータを送信するという、データ送受信の回数を、分割された肯定応答パケットの数だけ増加させることができる。その結果、通信相手側装置の減少された送信ウィンドウを早急に元の値に回復させることができる。
また、前記切換制御手段は、前記通信手段から前記送信要求データが送信された後に、前記電源切換手段に対して、前記電力の状態を前記給電状態から前記非給電状態に切り換えさせ、前記送信要求データに対するデータが前記通信手段に受信される前に、前記電源切換手段に対して、前記電力の状態を前記非給電状態から前記給電状態に切り換えさせることを特徴としてもよい。例えば、前記切換制御手段は、前記通信手段から前記送信要求データが送信されてから所定時間が経過した後に、前記電源切換手段に対して、前記電力の状態を前記非給電状態から前記給電状態に切り換えさせる。または、前記通信装置は、さらに、前記通信手段から前記送信要求データが送信されてから、前記送信要求データに対するデータが前記通信相手側装置から送信されて前記通信手段に受信されるまでの応答時間を推定する推定手段を備え、前記切換制御手段は、前記通信装置から前記送信要求データが送信されてから前記応答時間が経過する前に、前記電源切換手段に対して、前記電力の状態を前記非給電状態から前記給電状態に切り換えさせる。
これにより、通信装置は、送信要求データを送信してデータを受信するまでの間にも、通信手段の消費電力を削減することができ、通信品質を損なうことなく省電力化のさらなる向上を図ることができる。
また、前記通信手段は、前記通信相手側装置と通信端末との間における通信を中継することを特徴としてもよい。
これにより、例えば、従来の通信端末と通信相手側装置との間で行われるTCPに従ったデータ通信を中継する場合にも、通信手段の消費電力を抑えることができ、通信品質と省電力効果のさらなる向上を両立して図ることができる。
また、前記通信装置は、さらに、送信データを前記通信手段から送信させることにより、前記通信相手側装置から肯定応答パケットを送信させて前記通信手段に受信させることを繰り返す通信制御手段を備え、前記抑制手段は、前記送信データの前記通信手段からの送信を停止することにより、前記通信相手側装置に対して肯定応答パケットの送信を抑制させることを特徴としてもよい。ここで、前記抑制手段は、さらに、前記送信データの送信の停止を解除することで、前記通信相手側装置からの肯定応答パケットの送信を再開させる。
これにより、本発明の通信装置が通信相手側装置に対して送信データを送る場合でも、抑制手段による任意のタイミングで、通信相手側装置からの肯定応答パケットの送信が抑制されて、そのときに通信手段に供給される電力が削減されるため、通信装置は、通信相手側装置に関わらず、つまり適用可能なネットワークの条件に制限されず、通信品質に支障が生じない適切なタイミングで、積極的にデータの送信を抑制させて省電力化を図ることができる。その結果、通信品質と省電力効果のさらなる向上を両立して図ることができる。
また、前記通信装置は、さらに、サイクル時間およびサイクルデータサイズを決定する決定手段を備え、前記通信制御手段は、前記決定手段で決定されたサイクルデータサイズ分の送信データを前記通信手段から送信させ、前記送信データを送信したタイミングをサイクル開始時点とし、前記抑制手段は、前記通信手段から前記送信データが送信されてから、前記決定手段で決定された前記サイクル時間が経過する時点をサイクル終了時点とし、前記送信データに対する肯定応答パケットが前記通信手段に受信されてから前記サイクル終了時点まで、前記送信データの前記通信手段からの送信を停止し、前記サイクル終了時点を次のサイクルの前記サイクル開始時点として、前記サイクル開始時点から前記サイクル終了時点までの処理を前記サイクル時間ごとに繰り返させることを特徴としてもよい。
これにより、サイクル時間(サイクル間隔)内において、送信データの送信と、その送信データに対する肯定応答パケットの受信と、送信データの送信の停止処理とを含む1つのサイクルを行い、さらに、そのサイクルを繰り返すことで、間欠的なデータの送受信を行うことができる。また、例えば、通信装置で実行される通信アプリケーションプログラムによって要求される通信帯域や遅延時間などの条件(性能)が満たされた状態で、その間欠的なデータの送受信を行うことができる。その結果、サイクル終了時点まで次の送信データの送信を停止していても、上述の通信帯域や遅延時間の要求を満足することができる。
また、前記通信手段は、前記通信相手側装置および他の通信相手側装置との間でデータの送受信を並列に行い、前記決定手段は、前記通信手段が前記他の通信相手側装置との間で一定時間ごとに送受信を繰り返す場合、前記他の通信相手側装置との間の送受信と、前記通信相手側装置からのデータの受信とが同期するように、前記一定時間に基づいて前記サイクル時間を決定することを特徴としてもよい。例えば、前記決定装置は、前記通信手段が前記他の通信相手側装置から一定時間ごとに固定レートでデータを受信することを繰り返す場合に、前記一定時間を基準とし、前記一定時間に基づいて前記サイクル時間を決定することを特徴としてもよい。
これにより、例えばサイクル時間を上述の一定時間に等しくすれば、抑制手段が通信相手側装置に対してデータの送信を抑制させている期間を、他の通信相手側装置からデータが受信されていない期間に合わせることができる。つまり、通信装置は通信相手側装置および他の通信相手側装置との間の通信を同期させることができ、上述の期間において通信手段に供給される電力を切断することで、通信装置は通信相手側装置および他の通信相手側装置との間で通信を行いながら省電力効果を向上することができる。
また、前記通信手段は、前記通信相手側装置および他の通信相手側装置との間でデータの送受信を並列に行い、前記抑制手段は、前記通信手段が前記他の通信相手側装置から一定時間ごとに固定レートでデータを受信することを繰り返す場合、前記他の通信相手側装置からのデータが前記通信手段に受信されるタイミングと、前記通信相手側装置からのデータが前記通信手段に受信されるタイミングとが一致するように、前記通信手段からの前記正送信要求データの送信の停止および解除を行うことを特徴としてもよい。
これにより、上述のようにサイクル時間を上記一定時間に等しくしなくても、他の通信相手側装置からのデータが通信手段に受信されるタイミングと、通信相手側装置からのデータが通信手段に受信されるタイミングとが一致するため、抑制手段が通信相手側装置に対してデータの送信を抑制させている期間を、他の通信相手側装置からデータが受信されていない期間に合わせることができる。その結果、その期間において通信手段に供給される電力を切断することで、通信装置は通信相手側装置および他の通信相手側装置との間で通信を行いながら省電力効果を向上することができる。
また、前記抑制手段は、上述のようなデータの送信を抑制させる制御を行うことを、前記通信制御手段に通知する間欠受信実施通知手段を備え、前記通信制御手段は、前記間欠受信実施通知手段からの通知を受け付けたときには、前記通信手段から送信されるパケットに、前記通知の内容を示す情報を設定することを特徴としてもよい。
また、前記通信制御手段は、TCP(Transmission Control Protocol)に従って、前記送信データを前記通信手段から送信させるとともに、前記送信データに対して前記通信相手側装置から送信された前記肯定応答パケットを前記通信手段に受信させることを特徴としてもよい。
また、前記切換制御手段は、前記通信相手側装置から前記肯定応答パケットが送信されて前記通信手段に受信された後、前記電源切換手段に対して、前記電力の状態を前記給電状態から前記非給電状態に切り換えさせ、前記サイクル終了時点までに、前記電源切換手段に対して、前記電力の状態を前記非給電状態から前記給電状態に切り換えさせることを特徴としてもよい。
また、前記切換制御手段は、前記通信手段から前記送信データが送信された後に、前記電源切換手段に対して、前記電力の状態を前記給電状態から前記非給電状態に切り換えさせ、前記送信データに対する少なくとも一つの肯定応答パケットが前記通信手段に受信される前に、前記電源切換手段に対して、前記電力の状態を前記非給電状態から前記給電状態に切り換えさせることを特徴としてもよい。
また、前記通信制御手段は、送信データを一時的に保持するデータ保持手段を備え、送信データが送信されてから一定時間内に前記肯定応答パケットが前記通信手段に受信されなかった場合、前記データ保持手段に保持されている送信済みの送信データを、次のサイクルの最初の送信データとして前記通信手段に再送させることを特徴としてもよい。
また、前記抑制手段が、前記サイクルデータサイズの送信データが送信された後、前記肯定応答パケットが前記通信手段に到達しないと判断した場合、前記通信制御手段は、前記肯定応答パケットが到達するまで、前記通信手段に送信済みの前記送信データを再送させることを特徴としてもよい。
また、前記抑制手段は、前記肯定応答パケットを受信するのに必要となる前記送信データのパケット数である遅延応答回避パケット数に基づき、前記サイクルデータサイズ分の送信データを前記遅延応答回避パケット数の整数倍に分割することを前記通信制御手段に対して要求し、前記通信制御手段は、前記要求に従い、前記サイクルデータサイズ分のデータを前記遅延応答回避パケット数の整数倍に分割して前記通信手段から送信させることを特徴としてもよい。
また、前記通信装置は、さらに、一定時間ごとに処理の開始および停止を繰り返す間欠処理手段を備え、前記間欠処理手段は、前記間欠処理手段による処理の開始および停止の時間間隔を、前記サイクル時間に合わせることを特徴としてもよい。
また、前記通信装置は、さらに、一定時間ごとに処理の開始および停止を繰り返す間欠処理手段を備え、前記間欠処理手段は、前記間欠処理手段による処理の開始時点を、前記サイクル開始時点に合わせることを特徴としてもよい。
また、前記抑制手段は、前記通信手段に受信されたデータのサイズが前記期待値よりも小さいと判別したときには、前記正送信要求データの送信の停止を解除することを特徴としてもよい。
また、前記抑制手段は、前記通信手段に受信されたデータのサイズが前記期待値よりも小さいと判別したときには、後に前記通信手段から送信される送信要求データの前記受信ウィンドウを前記サイクルデータサイズよりも小さい値にして、さらに後に前記通信手段から送信される送信要求データの前記受信ウィンドウを前記値よりも大きくすることを特徴としてもよい。
また、前記抑制手段は、前記通信手段に受信されたデータのサイズが前記期待値よりも小さいと判別したときには、前記決定手段で決定されたサイクル時間を短くし、前記通信手段から前記送信要求データが送信されてから、短くされた前記サイクル時間が経過する時点をサイクル終了時点とし、前記受信ウィンドウのデータが前記通信手段に受信されてから前記サイクル終了時点まで、前記正送信要求データの前記通信手段からの送信を停止することを特徴としてもよい。
なお、本発明は、このような通信装置として実現することができるだけでなく、その通信装置を含んで構成される通信システムや、その通信装置が通信する通信方法や、その通信装置の消費電力を削減する省電力方法や、その通信装置を動かすためのプログラムや、そのプログラムを格納する記憶媒体や、集積回路としても実現することができる。
本発明の通信装置は、通信品質と省電力効果のさらなる向上を両立して図ることができるという作用効果を奏する。また、本発明の通信装置は、フロー制御の仕組みを利用した省電力制御を有し、持ち運び可能な通信装置(一般的には、無線端末)が、リアルタイム通信をしながら電力消費も抑えたいような使い方(例えば、他の通信装置からネットワーク経由で長時間にわたってデータを受信するような場合)に有用である。さらに、無線LANに限らず、有線通信や他の無線デバイスを使った通信など、様々なネットワーク環境の通信装置にも適用可能である。また、従来の無線LANの省電力方法にあった、アクセスポイントのバッファ容量溢れによるデータロスの課題も防ぐことができる。
(実施の形態1)
以下、本発明の第1の実施の形態における通信装置について図面を参照しながら説明する。
図3は、本実施の形態における通信装置を有する通信システムの一例を示す構成図である。
本実施の形態に係る通信システムは、通信装置たる携帯型端末211,212と、無線基地局202と、インターネット204と、送信側装置203とを備えている。
携帯型端末211,212は、通信品質と省電力効果のさらなる向上を両立して図った通信装置であって、無線通信デバイスを搭載した無線端末として構成されている。携帯型端末211,212は、無線基地局202を介してインターネット204に接続する。
送信側装置203は、インターネット204上に接続されている通信装置である。送信側装置203は、他の機器からの接続を受け付けて、相手にコンテンツデータなどを送信する機能を持つ。
このような通信システムでは、携帯型端末211,212は、インターネット204を介して送信側装置203と接続し、送信側装置203からのデータを受信する。携帯型端末211と送信側装置203の間のデータ送受信には、TCP(Transmission Control Protocol)のようなフロー制御付きプロトコルが使われる。
なお、図3に示す携帯型端末211,212は、それぞれ同等の構成を備え、同等の動作を行なう装置であるため、以下の説明では、簡略化のため、携帯型端末211について詳細に説明する。また、携帯型端末211を受信側装置として以下説明する。
本実施の形態における携帯型端末211は、フロー制御を利用する。フロー制御とは、受信側装置のデータ受信処理が追いつかなくなる事態を防ぐために、受信側装置が送信側装置にデータ送信の停止および再開を指示する制御である。この制御は、受信側装置でのデータあふれを防ぐための制御として、各種の通信プロトコルで行なわれている。
以下、TCPにおけるフロー制御の仕組みを説明する。TCPレベルのフロー制御は、受信ウィンドウ(一般的に、受信側装置のTCP受信バッファの空き容量に相当)を送信側装置に伝えることで、それ以上のデータが受信側装置に送られないように調整している。具体的には、受信ウィンドウは、TCPヘッダの「ウィンドウサイズ」のフィールドに格納され、受信側装置から送信側装置へのACKパケット(肯定応答パケット)を使って通知される。送信側装置では、ACKパケットを監視し、送信済みのデータサイズとACKパケットで通知された受信ウィンドウとの関係から、送信可能なデータサイズの上限を知り、その上限を超えて送信しないようにする。なお、TCPヘッダには、さらにシーケンス番号(送信するデータのストリーム全体の位置を示す番号)とACK番号(次に受信するデータのシーケンス番号)のフィールドがあり、受信側装置はACKパケットのACK番号を使って、どこまでのデータを受信したのかを送信側装置に通知する。
一方、受信側装置の処理が滞った場合のように、受信側装置が受信ウィンドウを更新しない(ACKパケットを返せない)状況が続くと、送信側装置の送信可能なデータサイズが減少する。最終的に送信可能なデータサイズが0になると、送信側装置からそれ以上のデータの送信ができなくなる。すなわち、この状態では、新たなデータ受信を示すACKパケットを受け取るか、より大きな受信ウィンドウを通知されるまでは、送信側装置は送信を行えなくなる。その後、受信側装置がデータ受信可能な状態になったら、改めてACKパケットを送信側装置に送って、新たな受信ウィンドウを通知すれば、送信側装置からのデータ送信が再開する。
本発明では、このようなフロー制御の仕組みを、(受信側装置の停滞などによる)データあふれ回避の目的ではなく、受信側装置が送信側装置からの間欠的なデータ送信を能動的に実行させる目的で利用する。
図4は、受信側装置である携帯型端末211と送信側装置203との基本的な処理の一例を示すシーケンス図である。
携帯型端末211(上述の受信側装置に相当する)と送信側装置203とは、TCPを使ったデータ送受信を行なう。
まず、携帯型端末211は、送信側装置203がバースト的に送信するデータサイズの上限を決め、それを受信ウィンドウとして送信側装置203へ通知する(ステップS701)。例えば、送信側装置203が1パケットで送信するデータサイズがDseg[バイト]である場合、携帯型端末211は、送信側装置203の送信するデータのサイズの上限を、4パケット分(=4×Dseg[バイト])に決定する。そして、携帯型端末211は、受信ウィンドウ(以後、RWINと呼ぶ)を「4×Dseg」に設定したACKパケットを、送信側装置203に送信する。
送信側装置203は、RWIN=4×Dseg[バイト]のACKパケットを受信することにより、送信可能なデータサイズ(以下、uwndという)が4×Dseg[バイト]であることを把握し、データ送信を再開できるようになる。なお、送信側装置203は、そのACKパケットの受信前には、送信可能なデータサイズをuwnd=0として把握しており、データ送信を停止している。
次に、送信側装置203は、Dseg[バイト]のパケットを4回だけ送信し、1回送信するごとにuwndをDseg[バイト]分だけデクリメントする(ステップS702〜S705)。
一方、携帯型端末211は、ステップS702〜S705で送信側装置203から送信されたデータ(パケット)を受信するが、ACKパケットを返さない制御を行なう。その結果、送信側装置203は、4回目のパケットを送信した時点(ステップS705)でuwndが0になるため、データ送信を停止する。このようにして、携帯型端末211は「送信側装置がデータを送信できない期間」を作ることができる。以後、送信側装置がデータを送信できない期間のことを、送信抑制期間と呼ぶ。その後、携帯型端末211は、所望のタイミングで「RWIN=4×Dseg」のACKパケットを送信することで、送信側装置203にデータ送信の再開を指示する(ステップS706)。
携帯型端末211は、フロー制御の仕組みを使って上記のようなデータ送信の抑制と再開の指示を繰り返すことで、携帯型端末211の所望する間隔での間欠的なデータ受信(間欠受信)を行う。そして、携帯型端末211は、受信の合間の送信抑制期間に、携帯型端末211の備える通信I/F部の電源を切断し、実際にデータやACKパケットの送受信を行なう期間だけ通信I/F部の電源を投入することで、携帯型端末211の省電力化を行なう。
なお、本実施の形態では、間欠的に通信I/F部の電源を切断または投入することにより省電力制御を行うが、必ずしも完全に電源を切断する必要はなく、通信I/F部に電力を供給した状態でその電力を調整してもよい。つまり、携帯型端末211は、通信I/F部によるデータの送受信の必要がない期間には、通信I/F部に供給される電力を、通信I/F部の送受信機能を正常に動作させるために必要な電力(以下、通常電力という)よりも抑え、データの送受信の必要がある期間には、通信I/F部に供給される電力を通常電力に戻す。即ち、本発明における省電力制御では、通信I/F部の消費電力を、通常電力よりも低い状態に変化させる制御であればよい。例えば、携帯型端末211に低消費電力モードが定義されている場合は、携帯型端末211は、通信I/F部の電源を切断する代わりに低消費電力モードに移行する。または、携帯型端末211は、通信I/F部への電源(電流)の供給を停止したり、クロックの供給を停止したりする。そして、携帯型端末211は、消費電力を通常電力に復帰させるときには、電源を投入したり、供給電力を増加させたり、クロックの提供を開始したりするなど、上記それぞれと逆の操作を行う。
このように、本発明では、フロー制御の仕組みを使って、携帯型端末(受信側装置)211がデータ受信の無い期間を能動的に作り、その期間に電源をOFFにすることで省電力化を図る。従って、省電力化の制御は、受信側装置のみで行なわれ、無線LANの省電力方式のように、アクセスポイントとの連携を必要としない。そのため、ネットワーク環境に依存せずに省電力制御が行なえる。
また、本発明では、データ受信のタイミングは、アクセスポイントのビーコン送信のタイミングに連動せず、受信側装置で自由に制御できる。従って、通信アプリケーションプログラムの必要とする遅延時間と帯域を確保できるように、データ受信の間隔およびデータサイズを調整すれば、所望の通信を継続しながら、同時に省電力化も両立して行うことができる。
さらに、本発明では、アクセスポイントでデータをバッファリングせず、受信側装置の受信可能なタイミングおよびデータサイズで送信側装置がデータを送信するので、アクセスポイントでのデータ溢れの発生を防ぐこともできる。
ここで、本実施の形態における携帯型端末211について詳細に説明する。
図5は、携帯型端末211の具体的な構成を示す構成図である。
携帯型端末211は、通信アプリケーション部101と、アプリ要求取得部102と、パラメータ決定部103と、抑制再開制御部104と、電源制御部106と、通信制御部107と、上述の通信I/F部108とを備える。
なお、本実施の形態では、通信I/F部108が通信手段として構成され、電源制御部106が電源切換手段として構成され、抑制再開制御部104が抑制手段および切換制御手段として構成されている。
通信アプリケーション部101は、通信アプリケーションプログラムを実行する。通信アプリケーション部101は、通信アプリケーションプログラムの起動時に、アプリ要求取得部102に起動通知を発行し、送信側装置203との間でデータ送受信を行なう。また、通信アプリケーション部101は、通信アプリケーションプログラムの終了時に、アプリ要求取得部102に終了通知を発行する。なお、本実施の形態では、説明の単純化のため、携帯型端末211上で同時に動作する通信アプリケーションプログラムが1つに限定されているものとする。
アプリ要求取得部102は、通信アプリケーション部101と送信側装置203との間でのデータ通信の「性能パラメータ」を入手する。ここで、「性能パラメータ」とは、通信アプリケーションプログラムによって独自に決められた帯域や遅延時間、一度に送信するパケットのサイズなどの条件(性能要件)を示すパラメータである。アプリ要求取得部102は、通信アプリケーション部101から起動通知または終了通知を受けると、同時に性能パラメータを通信アプリケーション部101から入手し、パラメータ決定部103に対して、性能パラメータ登録通知または性能パラメータ削除通知を発行する。
パラメータ決定部103は、間欠的にデータを受信するためのパラメータを決定する。間欠的にデータを受信するためのパラメータは、間欠受信の1サイクル分の時間間隔、および1サイクルの間に受信するデータサイズの2つから成る。以後、前者のパラメータを「サイクル間隔」と呼び、後者のパラメータを「サイクルデータサイズ」と呼ぶ。また、これらの2つのパラメータを総称して「間欠受信パラメータ」と呼ぶ。パラメータ決定部103は、アプリ要求取得部102から性能パラメータ登録通知または性能パラメータ削除通知を受けつけたとき、アプリ要求取得部102からの性能パラメータを元に間欠受信パラメータを決定し、抑制再開制御部104に間欠受信パラメータ登録通知または間欠受信パラメータ削除通知を送信する。
抑制再開制御部104は、送信側装置203からのデータ送信が間欠的に行なわれるように、TCPのフロー制御の仕組みを使って通信制御部107を制御する。さらに、抑制再開制御部104は、このTCPのフロー制御によって得られた送信抑制期間(送信側装置203からのデータ送信が無い期間)に通信I/F部108の電源が切断されるように、電源制御部106へ指示を出す。
具体的には、抑制再開制御部104は、間欠受信パラメータ登録通知によって受け取った間欠受信パラメータに応じて、送信側装置203からのデータ送信を抑制または再開させるタイミングを決定する。また、抑制再開制御部104は、決定したタイミングに、送信側装置203からのデータ送信を抑制または再開させるため、通信制御部107に対してACKパケットに関係する3つの要求(後述)を発行する。また、抑制再開制御部104は、送信抑制期間に連動して、電源制御部106に対して投入または切断の要求を送信する。さらに、抑制再開制御部104は、通信制御部107で送受信するTCPパケットをモニタリングし、そのモニタリングの結果を上述のタイミングの決定に利用する。
電源制御部106は、抑制再開制御部104からの投入または切断の要求に従って、通信I/F部108の電源を投入または切断する。
通信制御部107は、通信アプリケーション部101からのデータを、通信I/F部108より送信するための制御を行なうとともに、通信I/F部108で受信したデータを通信アプリケーション部101に渡すための制御を行なう。この制御には、TCP/IP(Transmission Control Protocol/Internet Protocol)などのプロトコル処理や、無線基地局202との間のネゴシエーション処理などが含まれる。通信制御部107で送受信するTCPパケットは、抑制再開制御部104からモニタリングされる。さらに、通信制御部107は、通常のTCP処理に加えて、抑制再開制御部104からの要求を受けて、ACKパケットの送信タイミングやパケット内容を変更する。具体的には、通信制御部107は、抑制再開制御部104から、ACK通常送信抑制要求、ACK通常送信再開要求、およびACK単発送信要求を受けて、それらの要求に対応する。
ACK通常送信抑制要求は、通常のACKパケット送信を抑制させる要求である。通信制御部107は、この要求を受けると、以後、TCPのデータ受信に連動してACKパケットを送信しなくなる。
ACK通常送信再開要求は、ACK通常送信抑制要求を解除させる要求である。通信制御部107は、この要求を受けると、通常のTCP処理(TCPのデータ受信に連動したACKパケットの送信)を再開する。
ACK単発送信要求は、抑制再開制御部104から指定されたタイミングで、抑制再開制御部104から指定された内容のACKパケットを送信させる要求である。通信制御部107は、この要求を受けると、TCPのデータ受信タイミングに関係なく、指定された内容のACKパケットを指定されたタイミングで送信する。なお、この要求は、ACK通常送信抑制要求を受けている状態でも有効である(送信可能である)。
通信I/F部108は、通信制御部107より受け取ったデータを無線で送信する処理を行なう。また、無線基地局202から受信したデータを通信制御部107へ渡す処理を行なう。通信I/F部108は、電源制御部106により電源の投入および切断が行なわれる。
このような携帯型端末211が初期状態から通信を開始して終了するまでの各構成要素の動作について、以下、説明する。
初期状態では、携帯型端末211の通信I/F部108の電源は切断されており、通信アプリケーション部101は、通信アプリケーションプログラムを実行していない。
通信アプリケーション部101は、通信アプリケーションプログラムを起動すると、アプリ要求取得部102に対して起動通知を発行する。この起動通知の発行によって、通信アプリケーション部101は、通信アプリケーションプログラムの複数の性能パラメータをアプリ要求取得部102に引き渡す。アプリ要求取得部102は、それらの複数の性能パラメータを受け取ると、それらを性能パラメータ管理テーブルに纏めて保存する。
図6A、図6Bおよび図6Cは、アプリ要求取得部102が管理する性能パラメータ管理テーブルを示す図である。
例えば、アプリ要求取得部102は、図6A、図6Bおよび図6Cに示す3つの性能パラメータ管理テーブル102a,102b,102cのうち何れか1つを管理する。
性能パラメータ管理テーブル102a,102b,102cはそれぞれ、起動済みの通信アプリケーションプログラムに対する複数の性能パラメータを有する。その複数の性能パラメータとしては、ストリームタイプ、帯域、および遅延時間のパラメータがある。ここで、ストリームタイプには、帯域重視型、遅延時間重視型、およびベストエフォート型の3つのタイプがある。
大容量のファイルを長時間に一定レートでダウンロードしようとする通信アプリケーションプログラムを実行する通信アプリケーション部101は、ストリームタイプ「帯域重視型」を含む複数の性能パラメータをアプリ要求取得部102に引き渡す。その結果、アプリ要求取得部102は、図6Aに示すストリームタイプ「帯域重視型」の性能パラメータ管理テーブル102aを保持して管理する。
例えば、この性能パラメータ管理テーブル102aは、図6Aに示すように、ストリームタイプ「帯域重視型」と、帯域「BW=BWs[Byte/sec]」とを含む。
また、VoIPなどデータの遅延時間の要求の厳しい通信アプリケーションプログラムを実行する通信アプリケーション部101は、ストリームタイプ「遅延時間重視型」を含む複数の性能パラメータをアプリ要求取得部102に引き渡す。その結果、アプリ要求取得部102は、図6Bに示すストリームタイプ「遅延時間重視型」の性能パラメータ管理テーブル102bを保持して管理する。
例えば、この性能パラメータ管理テーブル102bは、図6Bに示すように、ストリームタイプ「遅延時間重視型」と、帯域「BW=BWb[Byte/sec]」と、遅延時間「DT=DTb[sec]」とを含む。
また、遅延時間や帯域に対する明確な要求をせずに大容量のファイルをできるだけ早くダウンロードしようとする通信アプリケーションプログラムを実行する通信アプリケーション部101は、ストリームタイプ「ベストエフォート型」を示す性能パラメータをアプリ要求取得部102に引き渡す。その結果、アプリ要求取得部102は、図6Cに示すストリームタイプ「ベストエフォート型」の性能パラメータ管理テーブル102cを保持して管理する。
例えば、この性能パラメータ管理テーブル102cは、図6Cに示すように、ストリームタイプ「ベストエフォート型」のみを性能パラメータとして含む。
アプリ要求取得部102は、通信アプリケーション部101から起動通知を受けたときには、その起動通知に含まれる性能パラメータの情報をもとに、性能パラメータ管理テーブル102a,102b,102cの何れか1つを作成する。さらに、アプリ要求取得部102は、パラメータ決定部103に対して、その性能パラメータ管理テーブルを含む性能パラメータ登録通知を発行する。なお、アプリ要求取得部102は、通信アプリケーション部101から終了通知を受けたときには、作成された性能パラメータ管理テーブルを削除する。
パラメータ決定部103は、性能パラメータ登録通知を受けると、性能パラメータ管理テーブルの内容を読み出し、その内容を元に、間欠受信パラメータを決定する。
パラメータ決定部103は、間欠受信パラメータであるサイクル間隔TcとサイクルデータサイズDcとを、基本的に、Dc/Tc=BW(性能パラメータの帯域)を満たすような条件で決定する。なお、サイクルデータサイズDcの適切なサイズは、携帯型端末211のTCPの条件(TCP受信バッファサイズやMSS(Maximum Segment Size))や通信アプリケーションプログラムの条件(データ送信の単位)などによって変わる。したがって、パラメータ決定部103は、これらの条件も加味して間欠受信パラメータを決定する。なお、本実施の形態では、説明を簡単にするため、これらの条件が常に変化しない環境を想定し、パラメータ決定部103はこれらの条件に影響されることなく間欠受信パラメータを決定する。
具体的に、パラメータ決定部103は、間欠パラメータを決定するためのルールを予め記憶している。
図7は、間欠受信パラメータの決定ルールを示す図である。
パラメータ決定部103は、ストリームタイプ「帯域重視型」の性能パラメータ管理テーブルを読み出すと、その性能パラメータ管理テーブルに示される性能パラメータである帯域「BW=BWs[Byte/sec]」を、間欠受信パラメータを決定するための条件として用いる。つまり、パラメータ決定部103は、間欠受信パラメータの決定ルール、即ち、サイクルデータサイズDc=C1(C1は定数)に従い、サイクルデータサイズDcとしてC1[Byte/sec]を決定する。そして、パラメータ決定部103は、間欠受信パラメータの決定ルール、即ち、サイクル間隔Tc=Dc/BWに従い、サイクル間隔TcとしてC1/BWs[sec]を決定する。そして、パラメータ決定部103は、その決定されたサイクル間隔TcおよびサイクルデータサイズDcを示す間欠受信パラメータ管理テーブルを生成する。
つまり、パラメータ決定部103は、ストリームタイプ「帯域重視型」の性能パラメータ管理テーブルを読み出すと、最初にサイクルデータサイズDcを決定した後、それに合わせてサイクル間隔Tcを決定する。
一方、パラメータ決定部103は、ストリームタイプ「遅延時間重視型」の性能パラメータ管理テーブルを読み出すと、その性能パラメータ管理テーブルに示される性能パラメータである帯域「BW=BWb[Byte/sec]」と遅延時間「DT=DTb[sec]」とを、間欠受信パラメータを決定するための条件として用いる。つまり、パラメータ決定部103は、間欠受信パラメータの決定ルール、即ち、サイクル間隔Tc=DT/C2(C2は1より大きい定数)に従い、サイクル間隔TcとしてDTb/C2[sec]を決定する。なお、C2が小さいほど、サイクル間隔Tcが長くなり、省電力効果が高まる。そして、パラメータ決定部103は、間欠受信パラメータの決定ルール、即ち、サイクルデータサイズDc=BW×Tcに従い、サイクルデータサイズDcとしてBWb×DTb/C2[Byte]を決定する。そして、パラメータ決定部103は、その決定されたサイクル間隔TcおよびサイクルデータサイズDcを示す間欠受信パラメータ管理テーブルを生成する。
つまり、パラメータ決定部103は、ストリームタイプ「遅延時間重視型」の性能パラメータ管理テーブルを読み出すと、ストリームタイプ「帯域重視型」の場合とは逆に、遅延時間の要件が厳しいので、サイクル間隔Tcを先に決めて、サイクルデータサイズDcをそれに合わせて決める。このように、VoIPなどの遅延時間重視型の通信アプリケーションプログラムに基づく性能パラメータ管理テーブルの場合には、パラメータ決定部103は、性能パラメータの遅延時間DTを使って、「Tc<DT」という条件、即ち、サイクル間隔Tc=DT/C2を、サイクル間隔Tcの決定ルールとして追加している。
また、パラメータ決定部103は、ストリームタイプ「ベストエフォート型」の性能パラメータ管理テーブルを読み出すと、間欠受信パラメータの決定ルールに従い、サイクル間隔TcおよびサイクルデータサイズDcを決定しない。つまり、ベストエフォート型については、帯域重視型や遅延時間重視型のような明確な性能要件がないため、パラメータ決定部103は、基本的には複雑な間欠受信制御を行わずに通信I/F部108の電源をONにしたまま一気にデータ転送を完了させるような制御を行う。ただし、ベストエフォート型に対しても間欠受信を行うことは可能である。
図8は、パラメータ決定部103によって生成された間欠受信パラメータ管理テーブルの一例を示す図である。
パラメータ決定部103は、ストリームタイプ「帯域重視型」の性能パラメータ管理テーブルを読み出すと、例えば、間欠受信パラメータであるサイクル間隔TcとしてC1/BWs[sec]と、間欠受信パラメータであるサイクルデータサイズとしてC1[Byte]とを示す間欠受信パラメータ管理テーブルを生成する。
パラメータ決定部103は、性能パラメータ登録通知を受けるごとに、上記の手順で間欠受信パラメータ管理テーブルを生成する。そして、パラメータ決定部103は、生成後、抑制再開制御部104に対して間欠受信パラメータ登録通知を発行する。
抑制再開制御部104は、間欠受信パラメータ登録通知を受けると、間欠受信パラメータ管理テーブルの内容を読み出して、その内容に基づき、電源制御部106への投入要求の発行と、通信制御部107で送受信されるTCPパケットのモニタリングの開始と、通信制御部107に対するACK通常送信再開要求の発行とを行ない、間欠受信の準備状態に入る。この処理に連動して、電源制御部106は通信I/F部108に電源の投入を指示する。その結果、通信I/F部108の電源が投入される。
以下、本実施の形態における間欠受信の準備状態の処理について説明する。
通信アプリケーション部101は、通信アプリケーションプログラム起動時の処理を行なった後、送信側装置203との接続を確立し、送信側装置203からのデータ受信を開始する。
通信制御部107では、通信アプリケーション部101からの接続要求を受けて、無線基地局202との間のネゴシエーション処理、および、送信側装置203とのTCPコネクションの確立などの処理を行なう。TCPコネクションの確立後、携帯型端末211と送信側装置203の間のデータは、無線基地局202および通信I/F部108を介して送受信され、TCPパケットの送受信処理は、通信制御部107で行なわれる。
抑制再開制御部104は、通信制御部107で受信されるTCPパケットをモニタリングし、受信データの帯域(受信帯域)が、間欠受信パラメータ管理テーブルに設定されている帯域(設定帯域BW=Dc/Tc)に到達するのを待つ。例えば、抑制再開制御部104は、サイクル間隔Tcの経過ごとに、そのサイクル間隔Tcの間に受信したTCPパケットのデータサイズを合計することで、合計データサイズTlDを算出する。そして、抑制再開制御部104は、「TlD/Tc≧BW」の条件を満たす回数が所定回数以上だけ続いたときに、受信帯域が設定帯域BWに到達したと見なす。
抑制再開制御部104は、受信帯域が設定帯域BWに到達すると、送信側装置203からの送信を抑制するために、通信制御部107に対してACK通常送信抑制要求を発行する。なお、この発行は、間欠受信の1回目の処理に相当する。このとき、抑制再開制御部104は、通信制御部107からそれまでに送信した最後のACKパケットの情報、すなわち、ACK番号(LAST_ACKNO)と受信ウィンドウ(LAST_RWIN)とを保持しておく。通信制御部107は、抑制再開制御部104からACK通常送信抑制要求を受けると、以後、TCPのデータ受信は続けるものの、受信時にACKパケットを送信しないようにする。
一方、送信側装置203は、携帯型端末211からACKパケットが送られてこなくなっても、自身の管理する送信可能なデータサイズ(uwnd)が0になるまで、データ送信を続け、uwndが0になった時点で、データ送信を終了する。その結果、送信側装置203は送信抑制期間に入る。
抑制再開制御部104は、ACK通常送信抑制要求の発行後もTCPパケットをモニタリングし、送信側装置203での送信可能なデータサイズ(uwnd)が0になるのを待つ。具体的には、抑制再開制御部104は、受信したTCPパケットのシーケンス番号とデータサイズを参照し、(シーケンス番号+データサイズ)が(LAST_ACKNO+LAST_RWIN)に達するのを待つ。
抑制再開制御部104は、uwndが0になったと判断したら、電源制御部106へ切断要求を発行する。電源制御部106は切断要求を受けると、通信I/F部108の電源を切断する。
抑制再開制御部104は、電源制御部106へ切断要求を発行した後、所定時間の満了を待つ。この所定時間は、サイクル間隔Tcと一致していてもよいし、異なる時間であっても良い。送信側装置203は、既に送信抑制期間に入っているので、通信I/F部108の電源が切断されている間、データ送信を行なわない。
所定時間が満了したとき、抑制再開制御部104は、電源制御部106へ投入要求を発行する。さらに、抑制再開制御部104は、間欠受信の準備状態が満了したと見なし、定常状態に遷移する。電源制御部106は投入要求を受けると、通信I/F部108の電源を投入する。
以下、本実施の形態における定常状態の処理について説明する。
図9は、本実施の形態における携帯型端末211と送信側装置203の定常状態での動作を示すシーケンス図である。
定常状態での1サイクル分の動作は、送信再開処理と、送信抑制期間の開始処理と、送信抑制期間の終了処理との3つのステップに分けられる。
送信再開処理(ステップ1)では、抑制再開制御部104は、送信側装置203からのデータ送信を再開させるため、通信制御部107に対してACK単発送信要求を発行する。このとき、抑制再開制御部104は、ACKパケットの受信ウィンドウ(RWIN)として、間欠受信パラメータ管理テーブルに格納されたサイクルデータサイズDcを指定する。通信制御部107は、時刻T1に、ACK単発送信要求を受け取ると、RWIN=DcのACKパケットP1を通信I/F部108を介して送信する。また、抑制再開制御部104は、送信したACKパケットP1のACK番号を保持しておく。
一方、送信側装置203は、携帯型端末211からのACKパケットP1(RWIN=Dc)を受信すると、間欠受信の準備状態、または、送信抑制期間が終了し、データ送信が可能な状態になる。その結果、送信側装置203は、携帯型端末211あてのTCPパケット(データP2)の送信を再開する。
携帯型端末211の抑制再開制御部104は、間欠受信の準備状態でACK通常送信抑制要求を発行しているので、通常のACKパケットの送信、つまりデータ受信に連動したACKパケットの送信は既に抑制されている。すなわち、通信制御部107は、送信側装置203からのデータP2を受信して、そのデータを通信アプリケーション部101に引渡しても、送信側装置203に対してACKパケットを送信しない。そのため、間欠受信の1サイクル(サイクル間隔Tc)において、送信側装置203から受信されるデータP2のサイズは、サイクルデータサイズDcに制限される。
送信抑制期間の開始処理(ステップ2)では、抑制再開制御部104は、時刻T1以降、通信制御部107で受信されるTCPパケットをモニタリングする。そして、抑制再開制御部104は、時刻T1以降で受信されたデータサイズがサイクルデータサイズDcに到達したかどうか、すなわち、送信側装置203の送信可能なデータサイズ(uwnd)が0になったかどうかを確認し続ける。このとき抑制再開制御部104は、間欠受信の準備状態での確認処理と同じく、最後に送信したACKパケットのACK番号と受信ウィンドウ(RWIN=Dc)を使って上述の確認を行う。時刻T1以降で受信したデータサイズがサイクルデータサイズDcに到達したとき、即ち時刻T2で、抑制再開制御部104は、送信抑制期間が開始したとみなし、電源制御部106に対して切断要求を発行する。電源制御部106は切断要求を受けると、通信I/F部108の電源を切断する。
送信抑制期間の終了処理(ステップ3)では、本発明の実施の形態における携帯型端末211は、時刻T1を起点として、サイクル間隔Tcの時間経過後の時刻T3を、送信抑制期間の終了点と見なす。つまり、抑制再開制御部104は、タイマにより時刻T3を検出し、電源制御部106に投入要求を発行する。その投入要求により、電源制御部106は時刻T3に通信I/F部108の電源を投入する。
携帯型端末211は、定常状態では、上記3つのステップを1サイクルとして、繰り返し実行する。
通信アプリケーション部101は、通信アプリケーションプログラムを終了するときには、通信制御部107に対して送信側装置203とのコネクションの切断を要求し、アプリ要求取得部102に対して終了通知を発行する。
通信制御部107は、通信アプリケーション部101によるコネクション切断の要求により、TCPのコネクションを切断する。
アプリ要求取得部102は、終了通知を受け付けると、性能パラメータ管理テーブルの内容をクリアし、パラメータ決定部103に対して性能パラメータ削除通知を発行する。
パラメータ決定部103では、性能パラメータ削除通知を受けると、間欠パラメータ管理テーブルの内容をクリアし、抑制再開制御部104に対して間欠受信パラメータ削除通知を発行する。
抑制再開制御部104は、間欠受信パラメータ削除通知を受けると、通信制御部107で送受信されるTCPパケットのモニタリングを停止し、さらに、電源制御部106への切断要求の発行を行なう。
電源制御部106は、抑制再開制御部104の処理(切断要求の発行)に連動して、通信I/F部108の電源を切断する。
以上の処理により、携帯型端末211の状態は初期状態に戻る。
図10は、本実施の形態おける携帯型端末211の動作を示すフローチャートである。
まず、本実施の形態の携帯型端末211は、送信側装置203に対してRWIN=DcのACKパケットを送信する(ステップS10)。このとき、携帯型端末211の抑制再開制御部104は、通信I/F部108への電源投入のタイミングを特定するために、タイマによる計時を開始する。
そして、携帯型端末211は、そのACKパケットに対して送信側装置203から送信されたサイクルデータサイズDc分のデータ(TCPパケット)を受信する(ステップS12)。このとき、本実施の形態の携帯型端末211は、受信したデータに対して通常行われるACKパケットの送信を停止することで、送信側装置203からのデータの送信を抑制している。
そして、携帯型端末211は、ステップS12でサイクルデータサイズDc分の全てのデータを受信すると、通信I/F部108の電源を切断する(ステップS14)。
携帯型端末211は、通信I/F部108の電源を切断すると、上述のタイマに基づいて、ステップS10でのACKパケットの送信時からサイクル間隔Tcが経過したか否かを判別する(ステップS16)。
ここで、携帯型端末211は、サイクル間隔Tcが経過していないと判別したときには(ステップS16のNo)、ステップS14からの処理を繰り返し、サイクル間隔Tcが経過したと判別したときには(ステップS16のYes)、通信I/F部108の電源を投入する(ステップS18)。
そして、携帯型端末211は、送信側装置203との通信を終了すべきか否かを判別し(ステップS20)、終了すべきと判別したときには(ステップS20のYes)、全ての処理を終了する。また、携帯型端末211は、終了すべきでないと判別したときには(ステップS20のNo)、ステップS10からの処理を繰り返し実行する。このようなステップS10〜S20の処理によって、間欠受信の1サイクルが実行さる。
以上のように、本実施の形態に係る携帯型端末211は、無線LANの省電力方法に依存せず、例えばTCPなどのフロー制御機構を持つプロトコルを使って、送信側装置203との間で通信を行いながら省電力化を行なう。そのため、本実施の形態では、アクセスポイントでの省電力機能のサポート状況やネットワークデバイスの種類にも関係なく、携帯型端末211の省電力化を図ることができる。
また、本実施の形態では、無線LANの省電力方法に依存しないので、携帯型端末211のデータの受信タイミングをビーコン送信タイミングに連動させる必要がない。そのため、遅延時間と帯域を確保した通信を続けながら、同時に省電力能力を向上することができる。
さらに、本実施の形態では、送信側装置203からのデータ到着が無い期間を積極的に作ったうえで、携帯型端末211の電源を切断するので、ジッタが発生しても送信側装置203と携帯型端末211との間のデータ溢れの発生を防ぐことができる。
なお、本実施の形態では、携帯型端末211はTCPのプロトコルに従って動作したが、そのプロトコルはTCP以外のプロトコルであっても、フロー制御機構を持つプロトコルであればよく、既存のフロー制御付きプロトコルであってもよい。すなわち、本実施の形態を実現するために、送信側装置と携帯型端末の両方で新たなプロトコルを追加する必要はなく、携帯型端末に本発明の省電力方法に対応する処理部を追加するだけで実現できる。
ここで、本発明について実施の形態1を用いて説明したが、実施の形態1を変形しても本発明を実施することができる。
例えば、実施の形態1では、送信側装置203からのデータ送信の抑制方法として、「携帯型端末211からACKパケットを送信しない」という方法を説明したが、データ送信の抑制方法はこれに限定されるものではない。例えば、携帯型端末211は、受信ウィンドウ(RWIN)=0のACKパケットを送信側装置203に送ることで、明示的に送信側装置203からのデータ送信を抑制してもよい。
図11は、受信ウィンドウ(RWIN)=0のACKパケットが送信される動作を示すシーケンス図である。
例えば、携帯型端末211の通信制御部107は、図11に示すように、送信側装置203からのデータP2を受信して、そのデータを通信アプリケーション部101に引渡すと、時刻T2に、送信側装置203に対して受信ウィンドウ(RWIN)=0のACKパケットP3を送信する。このようなACKパケットP3を送信した場合にも、送信側装置203から受信するデータP2のサイズをサイクルデータサイズDcに制限して、送信側装置203からのデータ送信を抑制することができる。
このように受信ウィンドウ(RWIN)=0のACKパケットを送信するような抑制方法の場合には、TCPの制御方法に従って動作する送信側装置203での再送処理を予防することができる。つまり、図9に示す、ACKパケットを送信しないような抑制方法の場合には、送信側装置203にはACKパケットが全く届かないので、送信側装置203は、TCPの制御方法に従って、タイムアウトによりパケットロスが発生したと判断してデータを再送してしまうケースがある。このとき、送信側装置203の送信可能データ(輻輳ウィンドウと呼ばれる)が1パケット分(上述のMSS)低下するという弊害もある。ところが、図11に示すように、RWIN=0のACKパケットを送信するような抑制方法では、送信側装置203は、ACKパケットを受け取るため、タイムアウトを止めることができる。なお、携帯型端末211は、RWIN=0のACKパケットを、uwnd=0となる時刻T2に送っても良いし、時刻T2以降で且つ送信側装置203でタイムアウトが発生する前であれば任意のタイミングで送っても良い。また、携帯型端末211は、RWIN=0のACKパケットを、定常状態だけでなく、間欠受信の準備状態に送っても良い。
また、携帯型端末211は、送信側装置203からのデータ送信を抑制するため、RWIN=0以外のACKパケットを送ってもよい。つまり、送信側装置203から送信されるデータのサイズがサイクルデータサイズDc(送信再開を指示するACKパケットのRWINで指定されたサイズ)以下になるのであれば、携帯型端末211はどのようなACKパケットを送信してもよい。したがって、携帯型端末211は、「Dc−(時刻T1以降で受信したデータのサイズ)」を越えない値をRWINに設定して、ACKパケットを送信してもよい。
また、本発明における携帯型端末211が搭載する無線通信デバイスは、無線LAN(IEEE802.11a/b/g)のデバイスの他、任意の無線通信デバイスであってもよい。
さらに、実施の形態1では、携帯型端末211が通信I/F部108として無線通信デバイスを搭載したネットワーク構成を想定していたが、本発明の携帯型端末は通信I/Fの種類に限定されるものではない。例えば、無線LAN以外の無線I/Fや有線の通信I/Fを使ってもよい。なお、有線の通信I/Fを使う場合は、ネットワーク構成として無線基地局202が不要になり、代わりに有線のルータなどの装置が必要となる。また、実施の形態1では、アクセスポイント(無線基地局202)の存在する無線LANのネットワーク構成を想定していたが、アクセスポイントの無いアドホックモードでの環境を想定してもよい。その場合、送信側装置203と携帯型端末211はインターネット204を経由せず、無線LANで直接接続される。
また、フロー制御付きのプロトコルとしてTCPを中心に説明したが、本発明に使用されるプロトコルはTCPに限定されるわけではない。本発明に使用されるプロトコルは、フロー制御の機能を持っていれば他のプロトコルでもよく、例えば、アプリケーション層でフロー制御を実現して、そのフロー制御でTCPと同様の送信抑制および送信再開の制御を行なうことで省電力制御を行なってもよい。また、携帯型端末が送信側装置と直接接続される場合は、送信側装置と携帯型端末との間のデータリンク層でのフロー制御を使って省電力制御を行なってもよい。また、フロー制御は、携帯型端末211と送信側装置203の間に限定されるわけではない。例えば、中継装置と携帯型端末の間でフロー制御を行なうプロトコルがあれば、そのフロー制御を同様に利用して省電力制御を行なってもよい。
また、本発明では、送信抑制期間に通信I/F部108の電源を切断または投入する方法は、どのような方法であってもよい。例えば、本発明を無線LANのパワーセーブモードの処理と連動させて、本発明での電源切断のタイミングでパワーセーブモードたるドーズモードへの移行を行なっても良い。また、電源切断のタイミングは、送信抑制期間の間であれば任意のタイミングでよい。
また、実施の形態1では、単純化のため、通信アプリケーション部101で同時動作する通信アプリケーションプログラムを1つに限定したが、本発明の省電力方法は通信アプリケーションプログラムの数に依存しない。複数の通信アプリケーションプログラムが同時に動作する環境でも、例えば、複数の通信アプリケーションプログラムの間欠受信のタイミングを統合して、同様のフロー制御に基づく電力制御を行なっても良い。
また、アプリ要求取得部102における性能パラメータの取得方法は、本発明の本質ではない。したがって、アプリ要求取得部102は、なんらかの方法で性能パラメータを取得できればよく、その取得方法は実施の形態1の手順に限定されるものではない。例えば、実施の形態1では、アプリ要求取得部102は、通信アプリケーション部101から性能パラメータを直接取得したが、自立的に性能パラメータを取得してもよい。つまり、アプリ要求取得部102は、データ送受信のパケットを解析したり、OS(Operating System)上で通信アプリケーションプログラムの起動および終了のタイミングを監視したりすることで、性能パラメータを取得する。
例えば、省電力の制御を行なっていないとき、つまり通信I/F部108の電源が常に投入されているときにおける、携帯型端末211と送信側装置203とのデータ送受信の帯域および遅延時間の少なくとも一方が、通信アプリケーションプログラムとしての性能要件に一致している。このような場合には、アプリ要求取得部102は、省電力制御が行われていない状態で、通信制御部107のデータ送受信のパケットをモニタリングして帯域および遅延時間の少なくとも一方を推定し、その推定値を性能パラメータとして使う。これにより、アプリ要求取得部102はパケット解析により自立的に性能パラメータを取得する。
また、実施の形態1では、通信アプリケーションプログラムの起動および終了のタイミングを取得して、通信アプリケーションの起動中は性能パラメータを常に固定値として扱ったが、性能パラメータを動的に変化させてもよい。
また、実施の形態1では、図7に示す決定ルールに基づいて間欠受信パラメータを決定したが、他のルールに基づいて間欠受信パラメータ(サイクル間隔およびサイクルデータサイズ)を決めてもよい。また、間欠受信パラメータを固定させておく必要はなく、動的に変化させてもよい。即ち、サイクル間隔TcやサイクルデータサイズDcの値を一定期間ごとに変化させてもよいし、毎回異なる値に変化させてもよい。また、性能パラメータに関しても同様であって、実施の形態1では、図6A、図6Bおよび図6Cに示す性能パラメータを用いたが、これらの性能パラメータ以外のパラメータを用いてもよい。例えば、実施の形態1では、ストリームタイプを3種類に分類しているが、2種類や4種類以上に分類してもよく、他の種別のストリームタイプに分類してもよい。さらに、実施の形態1では、これらのストリームタイプに応じて、間欠受信パラメータの決定ルールを異ならせたが、これらのストリームタイプに関わらず、常に一定のルールに基づいて間欠受信パラメータを決定してもよい。
また、実施の形態1では、通信開始から測定した帯域が設定帯域BWに到達するまでの間は「間欠受信の準備状態」として電源を常にONにしていたが、この期間においても間欠受信による省電力制御を行ってもよい。ただし、この期間では送信側装置203においてはTCPのスロースタート制御が行われるため、ウィンドウサイズがRTT(Round Trip Time)の経過毎に1MSS,2MSS,4MSSというように増加していく。なお、RTTは、ACKパケットが送信されてからそれに対応するデータが受信されるまでの時間であり、MSSは、1パケットに含まれるTCPデータの最大サイズである。このため、抑制再開制御部104は、これに合わせて制御を行う必要がある。具体的には、抑制再開制御部104は、最初のデータパケットが受信されると、通信I/F部108の電源を切断させる。一定期間後、抑制再開制御部104は、通信I/F部108の電源を再投入させ、ACKパケット(RWIN=2×MSS)を送信させ、2つのデータパケットが受信された時点で通信I/F部108の電源を切断させる。さらに、抑制再開制御部104は、一定期間後、通信I/F部108の電源を再投入させ、ACKパケット(RWIN=4×MSS)を送信させ、4つのデータパケットが受信された時点で通信I/F部108の電源を切断させる。なお、上述のデータパケットは、送信側装置から受信側装置にTCPにより送信されるパケットであって、このデータパケットとACKパケットとを総称してTCPパケットという。
このように、抑制再開制御部104は、間欠受信サイクルごとに、通知する受信ウィンドウ(RWIN)のサイズを倍々にしていく。ただし、送信側装置203ではあるタイミングでスロースタート制御が終了し、それ以降はACKパケット受信によるウィンドウサイズの上昇が小さくなる。抑制再開制御部104はこれをタイムアウトなどにより検知し、それ以降はACKパケットにより通知する受信ウィンドウを少しずつ上昇させる制御に移行する。このような制御により、通知する受信ウィンドウがサイクルデータサイズDcに達した時点で、抑制再開制御部104は前述の定常状態の処理を開始する。
(実施の形態2)
本発明の実施の形態2に係る通信装置について説明する。実施の形態1では、送信側装置203からのデータ送信が無い送信抑制期間にのみ、通信I/F部108の電源を切断したが、本実施の形態では、別の期間にも通信I/F部108の電源を切断して、省電力効果をさらに向上する。具体的には、携帯型端末が送信再開の指示を出してから、実際に送信側装置203からのデータが到着するまでの期間も、通信I/F部108の電源が切断される。
なお、本実施の形態において、実施の形態1と同様の機器および構成については、同一の参照符号を付して説明を省略する。本実施の形態に係る通信システムのネットワーク構成は、実施の形態1の図3に示す通信システムのネットワーク構成と同じであるため、説明を省略する。
図12は、本実施の形態における携帯型端末の具体的な構成を示す構成図である。
本実施の形態における携帯型端末211aは、通信アプリケーション部101と、アプリ要求取得部102と、パラメータ決定部103と、抑制再開制御部804と、電源制御部106と、通信制御部107と、通信I/F部108と、RTT推定部809とを備える。つまり、本実施の形態における携帯型端末211aは、実施の形態1の携帯型端末211の抑制再開制御部104の代わりに、抑制再開制御部804を備えるとともに、実施の形態1の携帯型端末211にはないRTT推定部809を備えている。
RTT推定部809は、フロー制御付きプロトコル上でのRTTを推定する。なお、RTTは、携帯型端末211aと送信側装置203の間のパケットの往復時間に相当する。RTT推定部809は、通信制御部107における送受信パケットをモニタリングして、RTTの最短値を推定し、その結果を抑制再開制御部804に送る。例えば、RTT推定部809は、通信制御部107のモニタリングにより、携帯型端末211aと送信側装置203との間で往復するパケットの組の往復時間を、その組ごとに所定回数だけ測定し、その中で最短の往復時間をRTTの最短値とする。
ここで、携帯型端末211aと送信側装置203との間で往復するパケットの組とは、携帯型端末211aから送信されるパケットと、その送信に対して送信側装置203が応答して送信するパケットとの組であれば、どのようなパケットの組でも良い。例えば、図9に示すように、時刻T1で携帯型端末211aが送信するACKパケットP1(受信ウィンドウ>0)と、それに対して送信側装置203から送信される最初のデータパケットP2との組であってもよい。なお、RTTの最短値の推定方法は、本発明の省電力方法の本質に関わるものではないので、上述の方法に限定されるものではなく、他の方法であってもよい。
抑制再開制御部804は、実施の形態1の抑制再開制御部104の機能を有するとともに、RWIN>0のACKパケットが送信されてから、RTT推定部809で推定されたRTT(以下、RTT推定値という)が経過するまでの期間にも、通信I/F部108の電源を切断するように指示する。具体的には、抑制再開制御部804は、RTT推定部809からRTT推定値を取得する。さらに、抑制再開制御部804は、ACKパケット(RWIN>0)の送信後のタイミングに、電源制御部106に対して切断要求を発行し、ACKパケット(RWIN>0)の送信直後からRTT推定値が経過するタイミングに、電源制御部106に対して投入要求を発行する。
また、抑制再開制御部804は、抑制再開制御部104と同様の処理を行なうことで、送信抑制期間にも、通信I/F部108の電源のON/OFFを行なう。
図13は、本実施の形態に係る携帯型端末211aと送信側装置203の省電力方法を示すシーケンス図である。
図13において、携帯型端末211aが送信再開の指示を出してから、実際に送信側装置203からのデータが到着するまでの期間は、時刻T11から時刻T12の期間に対応する。この期間では、実施の形態1で説明した送信抑制期間と同様、送信側装置203からのデータ送信が無い期間なので、通信I/F部108の電源を切断しても問題ないはずである。
そこで、本実施の形態に係る省電力方法を適用する携帯型端末211aは、ACKパケットP1(RWIN=Dc)を送信する間、つまり時刻T10〜時刻T11の期間だけ通信I/F部108の電源を投入し、その後、時刻T12まで通信I/F部108の電源を切断する。時刻T11〜時刻T12の時間は、上述のようにRTT推定部809によって推定されたRTT推定値に相当する。携帯型端末211aは、送信側装置203からのデータを受信している期間、つまり時刻T12〜時刻T13の期間には、電源を再投入し、その後の時刻T13〜時刻T20の送信抑制期間には、実施の形態1と同様、電源を切断する。
なお、抑制再開制御部804は、ACKパケット(RWIN>0)の送信後に、電源制御部106に対して切断要求を発行するが、その送信の時刻T11以降のタイミングであれば任意のタイミングで発行してもよい。また、抑制再開制御部804は、ACKパケット(RWIN>0)の送信直後からRTT推定値が経過するタイミングに、電源制御部106に対して投入要求を発行するが、時刻T12以前であれば任意のタイミングで発行してもよい。特に、投入要求のタイミングに関してはRTT推定値が実際の最小RTT値より短い場合も考慮し、一定時間だけ早めに投入要求を発行すること、もしくは、測定したRTT値の平均や、分散、サンプル数などの統計値に基づいて計算された値分だけ早めに投入要求を発行することも有効である。
また、本実施の形態では、ベストエフォート型であっても、ACKパケット(RWIN>0)が送信されてからRTTが経過するまでの間に電源をOFFすることで省電力化を図ることができる。
ここで、ベストエフォート型の通信では間欠受信は行われない。これは、ベストエフォート型の通信アプリケーションプログラムでは、途切れなくデータ転送を行うことを前提としているからである。即ち、送信側装置203は、リアルタイムに送信データを生成しないため保持しているデータを連続的に送信でき、受信側装置は全てのデータを保存するメモリを保持するためデータを連続的に受信できる。したがって、ベストエフォート型の通信では、送信抑制期間がないため、途切れなくデータ転送が行われ、その分データ全体の受信完了までの期間が短くなる。ところが、実施の形態1では、送信抑制期間をなくすと、電源をOFFにすることができないため、消費電力を削減することができない。また、この場合、一定のサイズのデータを転送するのに必要な消費電力は総転送データ量で決まってしまう。
しかし、本実施の形態では、携帯型端末211aが送信再開の指示を出してから、実際に送信側装置203からのデータが到着するまでの期間に、携帯型端末211aは通信I/F部108の電源を切断するため、ベストエフォート型の通信においても、データ転送レートを落とさずに省電力化を図ることができる。なお、この場合、間欠受信パラメータであるサイクルデータサイズDcを、パケットロスの発生しないできるだけ大きな値とすることが望ましい。また、携帯型端末211aは、間欠受信パラメータであるサイクル間隔Tcを規定せずに、送信側装置203からサイクルデータサイズDc分のパケットを受け取ると、即座に次のサイクルでのACKパケット(RWIN=Dc)を送信すればよい。
このように、本実施の形態では、実施の形態1での省電力方法に対して、通信I/F部108の電源を切断する期間を追加することで、さらに省電力効果を向上させることができる。
(実施の形態3)
次に、本発明の実施の形態3に係る通信装置について説明する。本実施の形態に係る通信装置は、パケットロスが発生したときにも、通信品質と省電力効果の向上を両立して行うことができる。
実施の形態1では、抑制再開制御部104は、受信したTCPパケットのシーケンス番号とデータサイズを参照し、(シーケンス番号+データサイズ)が(LAST_ACKNO+LAST_RWIN)に到達したことによって、送信側装置203が送信抑制期間に入ったことを検知し、通信I/F部108の電源を切断させていた。
しかし、このような制御は、以下の2つの条件が成り立っている状況においてのみ正しく行われる。
第1の条件は、(シーケンス番号+データサイズ)が(LAST_ACKNO+LAST_RWIN)となるまでパケットを受信側装置が受信できることである。
第2の条件は、受信側装置が通知した受信ウィンドウ(RWIN)分だけ送信側装置203が送信可能であることである。
実際、第1の条件は、パケットロスが発生した場合には保証されない。パケットロスは様々な原因により発生する。例えば、電波状況が悪い無線区間にパケットロスが発生する。または、中継ルータや無線アクセスポイントなどの中継装置において他のフローと競合することによる中継装置内のバッファ溢れによってパケットロスが発生する。または、受信側装置で処理可能レートを越えるトラフィックを受信した場合の受信装置内のバッファ溢れによってパケットロスが発生する。
また、第2の条件も、パケットロスが発生した場合には保証されないことがある。パケットロスが発生すると、TCPに従って処理を行なう送信側装置203はパケットロスをネットワークの輻輳を示す情報と解釈し、輻輳制御を目的として管理している輻輳ウィンドウ(以下、CWINと呼ぶ)を小さくする。実際の送信側装置203からのデータの送信量は、通知されたRWINとCWINの小さい方を上限として制限される。したがって、受信側装置から通知されたRWINよりもCWINが小さくなる状況がパケットロスにより引き起こされると、送信側装置203はRWIN分のパケットを送信できなくなる。
なお、TCPに従って処理を行なう送信側装置203は、通常、以下の2つの方法によってパケットロスを検知する。
第1のロス検知方法では、送信側装置203は、送信したパケットに対するACKパケットが一定時間(再送タイムアウト時間と呼ばれる)経過後も受信されなかった場合に、パケットロスを検知する。この場合、送信側装置203は、CWINを1まで減少させ、その後、ロスされたパケットを再送パケットとして送信する。
第2のロス検知方法では、送信側装置203は、同一のACK番号を持つ複数(通常4つ)のACKパケットを受信した場合に、パケットロスを検知する。この場合、送信側装置203は、即座に再送パケットを送信し、再送パケットに対するACKパケットを受信した後は、CWINをパケットロス検知前のCWINの半分にする。
図14は、本実施の形態における携帯型端末の具体的な構成を示す構成図である。
本実施の形態の携帯型端末211bは、通信アプリケーション部101と、アプリ要求取得部102と、パラメータ決定部103と、抑制再開制御部904と、電源制御部106と、通信制御部107と、通信I/F部108とを備える。つまり、本実施の形態における携帯型端末211bは、実施の形態1の携帯型端末211の抑制再開制御部104の代わりに、抑制再開制御部904を備える。なお、本実施の形態において実施の形態1と同様の機器および構成については、同一の参照符号を付して説明を省略する。
抑制再開制御部904は、実施の形態1の抑制再開制御部104と同様の機能を有するとともに、パケットロスを検知して、そのロスしたパケットが再送パケットとして再送されるように通信制御部107を制御する。さらに、抑制再開制御部904は、パケットロスが発生した後の送信側装置203のCWINを推定して、その推定されたCWINにおいても実施の形態1と同様の間欠受信と省電力制御とを行なえるように通信制御部107を制御する。
以下、パケットロスが発生した時の本実施の形態の動作について詳細に説明する。なお、パケットロスが発生していない状況での動作については実施の形態1と同様となるため、ここでは説明を省略する。
図15は、本実施の形態における携帯型端末211bの動作を示すフローチャートである。
まず、携帯型端末211bは、実施の形態1の図9に示す処理動作と同様の定常状態の処理、即ち1サイクルごとにサイクルデータサイズDcのデータを転送しつつ電源のON/OFF制御(省電力制御)を行う(ステップS301)。さらに、携帯型端末211bは、パケットロスの検知処理を行う(ステップS302)。ここで、携帯型端末211bは、その検知処理の結果に基づいてパケットロスがあったか否かを判別する(ステップS303)。
携帯型端末211bは、パケットロスがなかったと判別したときには(ステップS303のNo)、例えば、定常状態処理を終了すべきか否かをさらに判別する(ステップS308)。そして、携帯型端末211bは、終了すべきと判別したときには(ステップS308のYes)、定常状態処理を終了し、終了すべきでないと判別したときには(ステップS308のNo)、ステップS301からの処理を繰り返す。
一方、携帯型端末211bは、パケットロスがあったと判別したときには(ステップS303のYes)、まず、送信側装置203にロスしたパケットを再送させるための再送誘発処理を実施する(ステップS304)。
このとき、携帯型端末211bは、この再送誘発処理によって再送されたパケットを受信し、そのパケットを受信したことをACKパケットにより送信側装置203に通知する。送信側装置203は、そのACKパケットによる通知を受けると、TCPにおける輻輳制御によりCWINを低下させる。その結果、上述の第2の条件であるCWIN≧RWINを前提とする、ステップS301の定常状態処理における間欠受信のサイクルを実行できなくなる可能性がある。
このため、携帯型端末211bは、まず送信側装置203のパラメータであるCWINを推定する(ステップS305)。そして、携帯型端末211bは、ステップS305で推定された推定値Dc’が、RWINとして設定されているサイクルデータサイズDcよりも小さいか否かを判定する(ステップS306)。携帯型端末211bは、推定値Dc’が小さい(Dc’<Dc)と判定したときには(ステップS306のYes)、CWINをサイクルデータサイズDcまで増加させるための処理(CWIN低下期間中の処理)を実行する(ステップS307)。一方、携帯型端末211bは、推定値Dc’がサイクルデータサイズDc以上である(Dc’≧Dc)であると判定したときには(ステップS306のNo)、ステップS301からの処理を繰り返す。
以下、ステップS302のパケットロス検知処理、ステップS304の再送誘発処理、ステップS305のCWIN推定処理、および、ステップS307のCWINの低下期間中の処理について、詳細に説明する。
図16は、図15のステップS302におけるパケットロス検知処理の詳細を説明するための説明図である。
例えば、時刻T31に送信されたACKパケット(RWIN=Dc)に対して送信側装置203から送信されたサイクルデータサイズDc分のデータのうち、例えば4個のデータ(DATA1〜4)のうち、DATA3がロスする。
抑制再開制御部904は、パケットロスをタイムアウトにより検出する。具体的には、抑制再開制御部904は、送信側装置203に送信再開を促すACKパケットP11を送信した時刻T31から一定時間To1経過後の時刻T32までに、通知したサイクルデータサイズDc分の全てのデータを受信し切れなかった場合に、タイムアウトを検出し、パケットロスが発生したものとみなす。したがって、上述のようにDATA3がロスすると、抑制再開制御部904は、一定時間To1内にサイクルデータサイズDc分の全てのデータを受信し切れないため、パケットロスの発生を検知する。なお、一定時間To1をタイムアウト値という。
例えば、抑制再開制御部904は、それまでのサイクルにおいて、送信側装置203に送信再開を促すACKパケットが送信された時刻から、通知したサイクルデータサイズDc分の全てのデータを受信し切るまでの時間を計測する。そして、抑制再開制御部904は、その計測した時間のうち最大の時間を、上述のタイムアウト値To1に用いる。
また、抑制再開制御部904は、タイムアウト値To1の決定においては、送信再開を促すACKパケットが送信されてから、それに対する最初のデータを受信するまでの間隔であるRTTや、連続したデータの受信間隔Rtなどの情報を取得しておき、その情報からタイムアウト値To1を決定してもよい。即ち、抑制再開制御部904は、「RTTの最大値+(Dc/MSS−1)×Rtの最大値=To1」のように計算してもよい。また、抑制再開制御部904は、最大値ではなく、平均値や分散値などの各種統計値を用いることにより、より適切なタイムアウト値To1を設定してもよい。
また、タイムアウト値の計測の開始時点を、送信再開を促すACKパケットを送信した時刻T31ではなく、通知したサイクルデータサイズDc分のデータのうち最初に到着したパケットの到着時刻としてもよい。
また、抑制再開制御部904は、タイムアウトを用いずに、受信済みのデータのシーケンス番号を監視して、そのシーケンス番号が不連続であれば、パケットロスが発生したと検知してもよい。即ち、抑制再開制御部904は、図16に示すように、DATA3を受信せずにDATA4を受信したことによりパケットロスの発生を検知する。ここで、パケットロスが発生していなくても、ネットワーク上でのパケットの順序入れ替えの発生により、シーケンス番号が不連続となる場合がある。このような場合には、上述のようにシーケンス番号が不連続であることによってパケットロスの発生を検知すると、パケットロスが発生していなくてもパケットロスとみなしてしまう可能性がある。そこで、抑制再開制御部904は、不連続なシーケンス番号を持つデータを含むパケットを複数個受信したときまでに、または、不連続なシーケンス番号を持つデータを受信してから一定時間経過したときまでに、抜けていたデータを受信しなかった場合に、パケットロスの発生を検知してもよい。
図17は、図15のステップS304の再送誘発処理の詳細を説明するための説明図である。
パケットロスが発生した場合に受信側装置(携帯型端末)から何も送信されなければ、送信側装置203は、前述の第1のロス検知方法によりタイムアウトを発生させCWINを1にしてから再送を行う。その結果、効率的に転送を行うことができなくなり、通信アプリケーションプログラムの性能要件を満たせなくなる可能性がある。
そこで、本実施の形態における受信側装置(携帯型端末)211bは、送信側装置203に対して、第2のロス検知方法による高速な再送を行わせ、CWINの減少を半分にとどめさせる。その結果、できるだけ効率的に送信側装置203にデータの転送を行わせる。
つまり、携帯型端末211bの抑制再開制御部904は、再送誘発処理では、送信側装置203に第2のロス検知方法を行わせるために、同一のACKパケットを4つ連続して送信するように通信制御部107に指示する。その結果、携帯型端末211bは、その4つのACKパケットP21を送信側装置203に送信する。なお、これらの全てのACKパケットP21に含まれる受信ウィンドウ(RWIN)は、サイクルデータサイズDcであって、全てのACKパケットP21に含まれるACK番号は、ロスしたパケットであるDATA3の送信を要求する値(例えば、3)となる。
このような4つのACKパケットP21を受け取った送信側装置203は、ロスしたパケットであるDATA3を再送する。なお、送信側装置203は、パケットロス検知処理時のサイクルで送信されたサイクルデータサイズDc分のデータ内でのロスしたパケットの位置や、送信側装置203のTCPのバージョンや実装によって、DATA4以降のパケットも送信することがある。例えば、送信側装置203は、DATA3を再送するとともにDATA5およびDATA6を送信する。携帯型端末211bの抑制再開制御部904は、これらの全てのデータを受信するために、4番目のACKパケットP21の送信時刻T41から一定時間To2経過後の時刻T42まで、データが届くのを待つ。なお、送信側装置203は、DATA3の再送時には、DATA4は既に送信されているため、そのDATA4を送信しない。しかし、DATA4もロスした可能性を考慮して、送信側装置203は、DATA4を再送してもよい。
また、抑制再開制御部904は、タイムアウト値To1の決定方法と同様に、RTTや連続したデータの受信間隔Rtの統計情報などをもとに、一定時間To2を決定してもよい。即ち、抑制再開制御部904は、「RTTの最大値+(Dc/MSS−1)×Rtの最大値=To2」のように一定時間To2を決定する。また、抑制再開制御部904は、最大値ではなく、平均値や分散値などの各種統計値を用いることにより、より適切な一定時間To2を設定してもよい。
また、一定時間To2の計測の開始時点を、再送を促すACKパケットP21を送信した時刻T41ではなく、再送パケットの到着時刻としてもよい。
また、抑制再開制御部904は、再送を促すために同一のACKパケットP21を4個だけ送信したが、このACKパケットP21がロスする可能性を考慮して、さらに余分に同一のACKパケットを送信してもよい。
なお、パケットロス検知処理のサイクルにおいて1つのパケットのみがロスしていた場合には、上述の再送誘発処理により、ロスしたパケットが再送される。しかし、2つ以上のパケットがロスしていた場合には、2番目以降にロスしているパケットも再送させることが望ましい。このために、携帯型端末211bの抑制再開制御部904は、1番目にロスしたパケットに対する再送パケットが受信されると、2番目にロスしたパケットを再送させるための同一のACKパケットを4つ送信するように通信制御部107に指示する。ただし、この送信に対して送信側装置203が2番目にロスしたパケットを再送するかどうかは、送信側装置203のTCPのバージョンや実装によって異なる。したがって、場合によっては、送信側装置203において第1のロス検知方法によるロス検知が行われ、CWINが1になる可能性もある。送信側装置203のTCPが、2番目にロスしたパケットを再送するように実装されている場合には、携帯型端末211bの抑制再開制御部904は、1番目にロスしたパケットに対する処理と同様の処理を、全てのロスしたパケットに対して繰り返すことで、再送誘発処理を完了する。
なお、送信側装置203の状態がどうなっているか、即ち、第1のロス検知方法によりCWINが1となっているのか、第2のロス検知方法の繰り返しの適用によりCWINが1より大きな値となっているかは、この再送誘発処理の完了時にロスした全てのパケットの再送パケットを携帯型端末211bが受信しているかどうかにより判別可能である。
図18は、図15のステップS305のCWIN推定処理の詳細を説明するための説明図である。
パケットロスが発生した場合、図17に示す再送誘発処理の完了後には送信側装置203において輻輳ウィンドウ(CWIN)が小さくなっている。しかしながら、定常状態での省電力制御を行うためには、上述の第2の条件であるCWIN≧RWIN(Dc)が満たされている必要がある。
そこで、抑制再開制御部904は、このCWINの値がサイクルデータサイズDc(期待値)を下回っていないかを知っておく必要があるため、CWIN推定処理では、送信側装置203のCWINの値を推定する。
まず、抑制再開制御部904は、送信側装置203からのデータ送信を促すため、ACKパケットを送信するように指示する。その結果、携帯型端末211bは、そのACKパケットP31を送信側装置203に送信する。このACKパケットP31は受信ウィンドウ(RWIN)をサイクルデータサイズDcとして通知する。また、そのACKパケットP31に設定されるACK番号は、通常のTCPどおり、ステップS304の再送誘発処理までに抜けなく受信できているデータのシーケンス番号の最大値+1(例えば、N)である。
送信側装置203は、このACKパケットP31を受信すると、Min(Dc,CWIN)分のパケット、つまり、サイクルデータサイズDcとCWINとのうち小さい方のサイズ分のパケットを送信する。
抑制再開制御部904は、この後、サイクルデータサイズDc分のデータを受信できた場合には、CWINがサイクルデータサイズDc以上であること、つまり上述の第2の条件が満たされていることを検知できる。また、抑制再開制御部904は、サイクルデータサイズDc分のデータを受信できない場合には、ACKパケットP31が送信された時刻T51から一定時間To3経過後の時刻T52までに受信されたデータの量(パケットの個数)を、CWINの推定値Dc’とする。
なお、抑制再開制御部904は、サイクルデータサイズDc分のデータを受信できたか否かの判断には、パケットロスの検知やタイムアウトを利用する。つまり、抑制再開制御部904は、通信I/F部108から送信されたACKパケットに対して、送信側装置203から送信されて通信I/F部108に順次受信された各データのシーケンス番号が連続であるか不連続であるかを判別する。そして、抑制再開制御部904は、不連続であると判別したとき、つまりパケットロスがあったと判別したときに、サイクルデータサイズDc分のデータを受信できなかったと判断する。また、抑制再開制御部904は、通信I/F部108から送信されたACKパケットに対して、送信側装置203から送信されて通信I/F部108に順次受信された各データの合計サイズが、予め定められた期間内で、そのACKパケットの示すサイクルデータサイズDcに達するか否かを判別する。そして、そして、抑制再開制御部904は、サイクルデータサイズDcに達しないと判別したとき、つまりタイムアウトがあったと判別したときに、サイクルデータサイズDc分のデータを受信できなかったと判断する。
図19は、ステップS307のCWIN低下期間中の処理の詳細を示すフローチャートである。
CWIN低下期間中はCWIN<Dcとなっている。したがって、携帯型端末が、受信ウィンドウをサイクルデータサイズDcとして送信側装置203に通知しても、送信側装置203はCWIN分しかデータを送らない。その結果、携帯型端末は、いつまでたっても通信I/F部108の電源を切断できなくなり、省電力制御を行えないという問題が発生する。
このため、携帯型端末211bの抑制再開制御部904は、CWIN低下期間の最初では、まず受信ウィンドウをCWINの推定値Dc’として通知するように通信制御部107に指示する。こうすれば、携帯型端末(受信側装置)211bは、通知した受信ウィンドウ分のデータ、つまり推定値Dc’分のデータを受信することができ、通信I/F部108の電源を切断することができる。また、送信側装置203は、TCPの輻輳制御手順により、「CWIN/MSS個のACKパケットを受信するとCWINをMSS分大きくする」という制御を行う。したがって、携帯型端末211bの抑制再開制御部904は、このCWINの増加に合わせて、通知する受信ウィンドウのサイズを大きくする。その結果、抑制再開制御部904は、最終的には受信ウィンドウのサイズを元のサイクルデータサイズDcとして通知することができ、定常状態で省電力制御を継続することが可能となる。
抑制再開制御部904は、実際の処理として、まず、CWIN低下期間中のサイクルデータサイズDcXの初期値を推定値Dc’とするとともに、CWIN低下期間中のサイクル間隔TcXの初期値をDc’/BWとする(ステップS401)。なお、TcX=DcX/BWとすることで、CWIN低下期間中もBW[Byte/sec]のレートを確保することができる。これは、サイクルデータサイズがDcからDc’に低下したのに比例してサイクル間隔Tcも短くすることに相当する。
次に、抑制再開制御部904は、上記サイクルデータサイズDcXおよびサイクル間隔TcXに基づく間欠受信サイクルをDcX/MSS回繰り返す(ステップS402)。つまり、携帯型端末211bは、RWIN=DcXのACKパケットを送信して、サイクルデータサイズDcX分のデータを受信し、そのACKパケットの送信からサイクル間隔TcXが経過するまで次のACKパケットの送信を停止しておくという間欠受信を(DcX/MSS)サイクルだけ繰り返す。このような間欠受信を繰り返すことによっても、携帯型端末211bは、サイクルデータサイズDcX分のデータを受信してから、次のACKパケットを送信するまで、通信I/F部108の電源をOFFにすることができ、省電力制御を行なうことができる。また、このような間欠受信の繰り返しによって、送信側装置203は、DcX/MSS個のACKを受信することになり、その結果、CWINをMSS分だけ増加させる。
したがって、間欠受信サイクルがDcX/MSS回繰り返されると、次のサイクルからは、それまでよりサイクルデータサイズDcXをMSS分大きくしても省電力制御を行うことができる。
このため、抑制再開制御部904は、サイクルデータサイズDcXをMSS大きくし、それに合わせてサイクル間隔TcXも更新する(ステップS403)。そして、抑制再開制御部904は、ステップS403でサイクルデータサイズDcXが大きくなることで、そのサイクルデータサイズDcXが、パケットロス発生前の元のサイクルデータサイズDc以上になったか否かを判別する(ステップS404)。
ここで、抑制再開制御部904は、サイクルデータサイズDc以上になったと判別したときには(ステップS404のYes)、CWIN低下期間中の処理を完了し、図15に示すステップS301の定常状態処理を実行する。一方、抑制再開制御部904は、サイクルデータサイズDcXがまだ元のサイクルデータサイズDcに満たないと判別したときには(ステップS404のNo)、更新されたサイクルデータサイズDcXおよびサイクル間隔TcXを用いて、ステップS402からの処理、つまり間欠受信をDcX/MSS回繰り返す処理を行う。
図20は、ステップS307のCWIN低下期間中において行われる間欠受信の1サイクルを示す図である。
CWIN低下期間中では、携帯型端末211bは、例えば時刻T61に、(RWIN=DcX)のACKパケットP41を送信する。その結果、携帯型端末211bは、時刻T62に、CWIN低下期間中のサイクルデータサイズDcX分のデータを送信側装置203から受信する。そして、携帯型端末211bは、そのACKパケットP41を送信してから、CWIN低下期間中のサイクル間隔TcXが経過するまで、つまり時刻T63まで次のACKパケットの送信を停止する。さらに、携帯型端末211bは、時刻T61〜T62までは通信I/F部108の電源をONにして、時刻T62〜T63まではその電源をOFFにするような省電力制御を行なう。携帯型端末211bは、このような時刻T61〜T63までの処理を間欠受信の1サイクルとして実行する。
なお、抑制再開制御部904は、ステップS307におけるCWIN低下期間中の処理中に、パケットロスを検知した場合も、図15に示すステップS301〜S308の処理を行なえばよい。
また、抑制再開制御部904は、図20に示すように、1サイクルにACKパケットを一つだけ送信するが、複数のACKパケットを送信してもよい。つまり、送信されるACKパケットが1つの場合には、CWINを増加させるために、間欠受信のサイクルをDcX/MSS回繰り返す必要がある。しかし、1サイクルにACK番号の異なる複数個(例えばN個)のACKパケットを送信すれば、間欠受信のサイクルの繰り返し回数をDcX/(MSS×N)回に抑えることができる。さらに、N=DcX/MSSとすれば、間欠受信のサイクルの繰り返し回数を1サイクルにすることができる。
また、上記処理を行っただけでは、通信アプリケーションプログラムの要求である帯域BWを十分確保したとはいえない場合がある。即ち、ステップS307のCWIN低下期間中の処理、およびステップS301の定常状態処理の期間においては、帯域BWは確保されている。しかし、ステップ302のパケットロス検知処理、ステップS304の再送誘発処理、ステップS305のCWIN推定処理を行っている期間においては、タイムアウト待ちを行っていることにより、帯域BWは確保されていない。
通信アプリケーションプログラムが帯域BWを要求しているということは、TCPコネクション開始時から帯域BWで通信し続けただけのデータを受信している必要があるが、上記処理ではこれが満たされてないことになる。この問題は、「TCPコネクション開始時から受信したデータの総量=通信開始時からの経過時間×BW」の条件が成り立つまで、例えば以下の3つの制御方法を実行することにより回避可能である。第1の制御方法では、ステップS307のCWIN低下期間中の処理において、サイクル間隔TcXの値を上記処理よりも短く設定することにより、一時的に帯域BW以上の帯域を確保する。また、第2の制御方法では、CWIN低下期間終了後のステップS301の定常状態処理において、サイクル間隔Tcを短くする、もしくはサイクルデータサイズDcを大きくすることにより、一時的にBW以上の帯域を確保する。上述の条件が成り立った後は、サイクル間隔TcおよびサイクルデータサイズDcをパケットロス発生前の元の値に戻せばよい。第3の制御方法では、送信抑制制御(間欠受信)を一時的に中断する。例えば、抑制再開制御部904は、CWINがサイクルデータサイズDcよりも小さくなってからサイクルデータサイズDc以上になるまでのウィンドウ回復期間、ACKパケットの通常の送信の抑制(停止)を解除し、通信I/F部108でデータが受信されるごとに、ACKパケットを通信I/F部108から送信させる。また、このとき、上述と同様に、1つのACKパケットを、ACK番号の異なる複数個(例えばN個)のACKパケットに分けて送信することによって、CWINをサイクルデータサイズDc以上に早急に回復させることができる。
また、上記処理では、定常状態では間欠受信サイクルが成功することを前提としている。しかし、上記処理では、送信側装置203はサイクルデータサイズDc分だけのデータをバースト的に送信することになるため、例えば中継装置が転送パケットを格納するために保持しているバッファのサイズがサイクルデータサイズDcよりも小さい場合などは、必ずパケットロスが発生し定常状態処理を行えない可能性がある。このため、定常状態での処理が成功しない状況においては、サイクルデータサイズをDcよりも小さな値D”とし、サイクル間隔もTcより小さい値D”/BWとした定常状態処理を行なうなどの必要がある。なお、ネットワークの状況などは動的に変化するため、パケットロスの発生に応じてサイクル間隔およびサイクルデータサイズを動的に変化させることにより、より最適な(通信アプリケーションプログラムの要求を満たしつつ、できるだけ省電力効果の高い)パラメータを探索するように動作してもよい。また、動的にパラメータを変更しつつ、最適なパラメータ値を探索するアルゴリズムは、一般に用いられている探索アルゴリズムなどを流用すればよく、本発明の本質ではないためここでは詳細なアルゴリズムについては説明を省略する。
また、上記では、図15に示すように、ステップS307でCWIN低下期間中の処理を行うかどうかを判定したり、CWIN低下期間中のサイクルデータサイズの初期値Dc’を決定したりするために、ステップS305のCWIN推定処理を行った。しかし、CWIN推定処理は、より効率的に、即ち必要以上に転送レートを低下させないために行う処理であり、必ずしも本発明に必須の処理ではない。例えば、パケットロスが1回しか発生していない場合などは、CWINは最低でもパケットロス発生前の1/2以上であると言えるため、サイクルデータサイズの初期値をサイクルデータサイズDcの1/2として、必ずCWINの低下期間中の処理を行ってもよい。
上記のような処理を行うことにより、パケットロスが発生した場合でも、通信帯域を維持しつつ間欠受信による省電力制御を継続することができる。
(実施の形態4)
次に、本発明の実施の形態4に係る通信装置について説明する。実施の形態1〜3の通信装置は、フロー制御を終端するが、本実施の形態における通信装置はフロー制御を行う通信を中継する。つまり、本実施の形態における通信装置は、中継通信装置として構成され、実施の形態1の携帯型端末211自体のTCP通信に対して行っていた制御を、中継しているTCP通信に対して行う。したがって、本実施の形態における間欠受信および省電力制御の本質は、実施の形態1と共通するため、以下では、本実施の形態における実施の形態1との差分を中心に説明する。
図21は、本実施の形態における通信装置を有する通信システムの一例を示す構成図である。なお、本実施の形態に含まれる構成要素中、実施の形態1と同一の機能および構成を有する構成要素に対しては、実施の形態1の構成要素と同一の符号を付して示し、詳細な説明は省略する。
本実施の形態に係る通信システムは、携帯型端末212と、携帯型端末501と、受信側装置502と、無線基地局202と、インターネット204と、送信側装置203とを備えている。
本実施の形態における携帯型端末501と受信側装置502は、それぞれが組み合わされた状態で、インターネット204および無線基地局202を介して送信側装置203に対して、実施の形態1の携帯型端末211と同様の処理動作を行う。
また、携帯型端末501は、送信側装置203と受信側装置502との間の通信を中継する。
つまり、本実施の形態の通信システムと、実施の形態1の図3に示す通信システムとの違いは、実施の形態1では本発明の通信装置たる携帯型端末212が受信側装置として動作していたのに対し、本実施の形態では本発明の通信装置たる携帯型端末501が中継装置として動作し、その携帯型端末501に別の受信側装置502が接続されている点である。
図22は、本実施の形態における携帯型端末501の具体的な構成を示す構成図である。
携帯型端末501は、アプリ要求取得部102と、パラメータ決定部103と、抑制再開制御部504と、電源制御部106と、通信制御部107と、通信I/F部108と、サブ通信I/F部109とを備える。
つまり、本実施の形態における携帯型端末501は、実施の形態1の携帯型端末211にないサブ通信I/F部109を備えるとともに、携帯型端末211にある通信アプリケーション部101を備えていない。また、本実施の形態における携帯型端末501は、実施の形態1の携帯型端末211における抑制再開制御部104の代わりに、抑制再開制御部504を備える。
サブ通信I/F部109は、例えば、Ethernet(登録商標)などの有線LANや、無線LAN、USB(Universal Sirial Bus)などで受信側装置502と通信する。なお、サブ通信I/F部109の通信方式は、これら以外の任意の通信方式であってもよい。
抑制再開制御部504は、実施の形態1の抑制再開制御部104と同様、間欠受信パラメータ登録通知によって受け取った間欠受信パラメータに応じて、送信側装置203からのデータ送信を抑制または再開させるタイミングを決定する。また、抑制再開制御部504は、決定したタイミングに、送信側装置203からのデータ送信を抑制または再開させるため、通信制御部107に対してACKパケットの転送に関係する3つの要求(後述)を発行する。
実施の形態1では、通信制御部107がTCPの処理を行っていたため、抑制再開制御部104は、その通信制御部107に対して、ACKパケットの送信の可否を要求したり、ACKパケットの内容を所定の内容にするように要求したり、ACKパケットの送信のタイミングを要求した。本実施の形態では、通信制御部107が送信側装置203および受信側装置502の送信するパケットの転送を行うため、抑制再開制御部504は、通信制御部107に対して、受信側装置502の送信したACKパケットの転送の可否を要求したり、受信側装置502のIPアドレスが送信元アドレスとなるように、ACKパケットの内容を所定の内容にするように要求したり、ACKパケットの転送のタイミングを要求する。
具体的に、通信制御部107は、抑制再開制御部504から、ACK通常転送抑制要求、ACK通常転送再開要求、およびACK単発送信要求を受けて、それらの要求に対応する。
ACK通常転送抑制要求は、通常のACKパケット転送を抑制させるための要求である。通信制御部107は、この要求を受けると、以後、受信側装置502から送信されたACKパケットの転送を行わなくなる。
ACK通常転送再開要求は、ACK通常転送抑制要求を解除させる要求である。通信制御部107は、この要求を受けると、通常の処理(受信側装置502から送信されたACKパケットの転送)を再開する。
ACK単発送信要求は、抑制再開制御部504から指定されたタイミングで、抑制再開制御部504から指定された内容のACKパケットを送信させる要求である。通信制御部107は、この要求を受けると、受信側装置502がACKパケットを送信するタイミングに関係なく、指定された内容のACKパケットを指定されたタイミングで送信する。なお、この要求は、ACK通常転送抑制要求を受けている状態でも有効である(送信可能である)。また、抑制再開制御部504は、このACKパケットの送信元IPアドレスには受信側装置502のIPアドレスを用いるように通信制御部107に指示する。
次に、本実施の形態における、間欠受信の準備状態に入るまでの処理について説明する。本実施の形態における上記処理では、実施の形態1の処理と比べて、間欠受信パラメータに関する処理のみが異なる。そこで、間欠受信パラメータに関する処理について説明する。
実施の形態1では、アプリ要求取得部102は、通信アプリケーションプログラムから性能に関する要求(性能パラメータ)を受信し、これを性能パラメータ管理テーブルで管理していた。しかし、本実施の形態においては、通信を行う通信アプリケーションプログラムは、受信側装置502にあるため、この要求性能に関する情報(性能パラメータ)も受信側装置502が保持している。このため、本実施の形態のアプリ要求取得部102は、以下の処理を行うことにより性能パラメータを取得する。
例えば、アプリ要求取得部102は、受信側装置502からサブ通信I/F部109を経由して通信アプリケーションプログラムに関する情報(性能パラメータ)を取得する。このとき、アプリ要求取得部102は、その後に開始されるTCP通信を識別するための情報を合わせて取得する。例えば、アプリ要求取得部102は、送信側装置203のIPアドレス情報や、通信アプリケーションプログラムが使用するポート番号の情報、もしくはTCP通信を識別するためのID情報を取得する。ID情報を取得する場合は、その後開始されるTCP通信において、例えばIPヘッダオプションフィールドやTCPヘッダオプションフィールドなどにこのID情報を含めることで携帯型端末501がTCPコネクションを認識できるようにすればよい。
また、アプリ要求取得部102は、受信側装置502から性能パラメータを取得できない場合は、既定のパラメータを性能パラメータに適用する。なお、既定のパラメータでは、通信アプリケーションプログラムの性能要件を満たせなかったり、必要以上に通信I/F部108の電力を消費したりする可能性があるため、携帯型端末501のUI(User Interface)などからこの既定のパラメータを変更できるようにしてもよい。
次に、本実施の形態における間欠受信の準備状態の処理について説明する。まず、受信側装置502と送信側装置203の間でTCPコネクションが確立される。携帯型端末501の通信制御部107は、コネクション開始時のTCPパケット(SYNパケット等)を転送する際に、制御対象であるTCPコネクションが開始されたことを検知する。TCPコネクションの確立後、受信側装置502と送信側装置203の間のTCPパケットは、携帯型端末501の通信I/F部108、通信制御部107、およびサブ通信I/F部109を介して送受信される。
その後、抑制再開制御部504は、通信制御部107で転送されるTCPパケットをモニタリングし、転送データの帯域(転送帯域)が、間欠受信パラメータ管理テーブルに設定されている帯域(設定帯域BW=Dc/Tc)に到達するのを待つ。例えば、抑制再開制御部504は、実施の形態1の抑制再開制御部104と同様、サイクル間隔Tcの経過ごとに、そのサイクル間隔Tcの間に受信したTCPパケットのデータサイズを合計することで、合計データサイズTlDを算出する。そして、抑制再開制御部504は、「TlD/Tc≧BW」の条件を満たす回数が所定回数以上だけ続いたときに、転送帯域が設定帯域BWに到達したと見なす。
抑制再開制御部504は、転送帯域が設定帯域BWに到達すると、送信側装置203からのデータ送信を抑制するために、通信制御部107に対してACK通常転送抑制要求を発行する。なお、この発行は、間欠受信の1回目の処理に相当する。このとき、抑制再開制御部504は、通信制御部107からそれまでに送信した最後のACKパケットの情報、すなわち、ACK番号(LAST_ACKNO)と受信ウィンドウ(LAST_RWIN)とを保持しておく。通信制御部107は、抑制再開制御部504からACK通常転送抑制要求を受けると、以後、受信側装置502から送信されたACKパケットを転送しないようにする。
一方、送信側装置203は、受信側装置502からACKパケットが送られてこなくなっても、自身の管理する送信可能なデータサイズ(uwnd)が0になるまで、データ送信を続け、uwndが0になった時点で、データ送信を終了する。その結果、送信側装置203は送信抑制期間に入る。
抑制再開制御部504は、ACK通常転送抑制要求の発行後もTCPパケットをモニタリングし、送信側装置203での送信可能なデータサイズ(uwnd)が0になるのを待つ。具体的には、抑制再開制御部504は、受信したTCPパケットのシーケンス番号とデータサイズを参照し、(シーケンス番号+データサイズ)が(LAST_ACKNO+LAST_RWIN)に到達するのを待つ。
抑制再開制御部504は、uwndが0になったと判断したら、電源制御部106へ切断要求を発行する。電源制御部106は切断要求を受けると、通信I/F部108の電源を切断する。
抑制再開制御部504は、電源制御部106へ切断要求を発行した後、所定時間の満了を待つ。この所定時間は、サイクル間隔Tcと一致していてもよいし、異なる時間であっても良い。送信側装置203は、既に送信抑制期間に入っているので、通信I/F部108の電源が切断されている間、データ送信を行なわない。
所定時間が満了したとき、抑制再開制御部504は、電源制御部106へ投入要求を発行する。さらに、抑制再開制御部504は、間欠受信の準備状態が満了したと見なし、定常状態に遷移する。電源制御部106は投入要求を受けると、通信I/F部108の電源を投入する。
以下、本実施の形態における定常状態の処理について説明する。
図23は、本実施の形態における受信側装置502と携帯型端末501と送信側装置203の定常状態での動さを示すシーケンス図である。
定常状態での1サイクル分の動作は、送信再開処理と、送信抑制期間の開始処理と、送信抑制期間の終了処理との3つのステップに分けられる。
送信再開処理(ステップ1)では、抑制再開制御部504は、送信側装置203からのデータ送信を再開させるため、通信制御部107に対してACK単発送信要求を発行する。このとき、抑制再開制御部504は、ACKパケットの受信ウィンドウ(RWIN)として、間欠受信パラメータ管理テーブルに格納されたサイクルデータサイズDcを指定する。通信制御部107は、時刻T71に、ACK単発送信要求を受け取ると、RWIN=DcのACKパケットP51を通信I/F部108を介して送信する。このとき、抑制再開制御部504は、受信側装置502から受信して転送していないACKパケットのACK番号のうち最大のものを記憶しているため、その記憶しているACK番号を、ACKパケットP51のACK番号にする。なお、送信側装置203がこのACKパケットP51を正当なパケットとして受信できるように、そのACKパケット51では、送信元IPアドレスは受信側装置502のIPアドレスとされ、ポート番号は当該TCPコネクションのポート番号とされる。
一方、送信側装置203は、携帯型端末501が送信したACKパケット(RWIN=Dc)を受信すると、間欠受信の準備状態、または、送信抑制期間が終了し、データ送信が可能な状態になる。その結果、送信側装置203は、受信側装置502あてのTCPパケット(データP52)の送信を再開する。
携帯型端末501の抑制再開制御部504は、間欠受信の準備状態でACK通常転送抑制要求を発行しているので、受信側装置502が送信したACKパケットの転送は既に抑制されている。すなわち、サブ通信I/F部109が受信側装置502からのACKパケットを受信して、そのACKパケットを通信制御部107に引渡しても、通信制御部107はそのACKパケットを通信I/F部108を通して送信側装置203に対して送信しない。そのため、送信側装置203が一度に送信できるデータP52のサイズは、サイクルデータサイズDcに制限される。
送信抑制期間の開始処理(ステップ2)では、抑制再開制御部504は、時刻T71以降、通信制御部107で転送されるTCPパケットをモニタリングする。そして、抑制再開制御部504は、時刻T71以降で転送したデータサイズがサイクルデータサイズDcに到達したかどうか、すなわち、送信側装置203の送信可能なデータサイズ(uwnd)が0になったかどうかを確認し続ける。このとき抑制再開制御部504は、間欠受信の準備状態での確認処理と同じく、最後に送信したACKパケットのACK番号と受信ウィンドウ(RWIN=Dc)を使って上述の確認を行う。T71以降で転送したデータサイズがDcに到達したとき、即ち時刻T72で、抑制再開制御部504は、送信抑制期間が開始したとみなし、電源制御部106に対して切断要求を発行する。電源制御部106は切断要求を受けると、通信I/F部108の電源を切断する。
送信抑制期間の終了処理(ステップ3)では、本発明の実施の形態における携帯型端末501では、T71時点を起点として、サイクル間隔Tcの時間経過後の時刻T73を、送信抑制期間の終了点と見なす。つまり、抑制再開制御部504は、タイマにより時刻T73のタイミングを検出し、電源制御部106に投入要求を発行する。その結果、投入要求により、電源制御部106は時刻T73に通信I/F部108の電源を投入する。
携帯型端末501は、定常状態では、上記3つのステップを1サイクルとして、繰り返し実行する。
このように、本実施の形態では、実施の形態1での省電力方法と同様の間欠受信制御を、TCP通信を中継する通信装置に対しても適用することができ、実施の形態1と同様の省電力効果を得ることができる。また、ここでは説明を省略するが、実施の形態2による省電力効果の向上や、実施の形態3によるパケットロス時の動作などもTCP通信を中継する通信装置に対して適用することも可能である。
(実施の形態5)
以下、本発明の第5の実施の形態における通信装置について図面を参照しながら説明する。実施の形態1から4では、本発明に係る通信装置を受信側装置に対して適用したが、本実施の形態では、本発明に係る通信装置を送信側装置に適用し、送信側装置の省電力効果を向上させる。また、本実施の形態における送信側装置は、受信側装置に対して、間欠送信処理を行うことを通知することで、より確実に省電力効果を高める。
図24は、本実施の形態における通信装置を有する通信システムの一例を示す構成図である。
本実施の形態に係る通信システムは、通信装置たる携帯型端末611,612と、無線基地局202と、インターネット204と、受信側装置603とを備えている。
携帯型端末611,612は、通信品質と省電力効果のさらなる向上を両立して図った送信側装置であって、無線基地局202およびインターネット204を介して、受信側装置603にデータを送信する。受信側装置603は、インターネット204および無線基地局202を介して、携帯型端末611,612から送信されたデータを受信する。
ここで、本実施の形態における携帯型端末611について詳細に説明する。
図25は、本実施の形態における携帯型端末611の一例を示す構成図である。
携帯型端末611は、通信アプリケーション部621と、アプリ要求取得部622と、パラメータ決定部623と、抑制再開制御部624と、電源制御部106と、通信制御部627と、通信I/F部108とを備える。この携帯型端末611は、受信側装置603からACKパケットを受信しても、直ちにそのACKパケットに応じたデータパケット(送信データ)を送信することなく、所定期間(上述の送信抑制期間)だけデータパケットの送信を停止して、その所定期間経過後にデータパケットを送信する。言い換えれば、携帯型端末611は、フロー制御の仕組みを使ってデータ送信の抑制と再開を繰り返すことで、携帯型端末611の所望する間隔での間欠的なデータ送信(間欠送信)を行う。これにより、携帯型端末611は、その所定期間だけ通信I/F部108に供給される電力を抑えることができ省電力効果の向上を図ることができる。
また、本実施の形態における携帯型端末611が備えている上記各構成要素は、基本的に、実施の形態1の携帯型端末211が備えている各構成要素のデータ受信用の機能に対応した、データ送信用の機能を有する。したがって、本実施の形態における携帯型端末611が備えている上記各構成要素の機能のうち、実施の形態1の携帯型端末211が備えている各構成要素の機能に対応しているものについては、以下、簡単に説明し、単純に対応していない機能についてのみ詳細に説明する。
なお、本実施の形態では、抑制再開制御部624が抑制手段および切換制御手段として構成されている。
通信アプリケーション部621は、通信アプリケーションプログラムを実行する。通信アプリケーション部621は、通信アプリケーションプログラムの起動時に、アプリ要求取得部622に起動通知を発行し、受信側装置603との間でデータ送受信を行なう。また、通信アプリケーション部621は、通信アプリケーションプログラムの終了時に、アプリ要求取得部622に終了通知を発行する。なお、本実施の形態では、説明の単純化のため、携帯型端末611上で同時に動作する通信アプリケーションプログラムが1つに限定されているものとする。
アプリ要求取得部622は、通信アプリケーション部621と受信側装置603との間でのデータ通信の「性能パラメータ」を入手する。アプリ要求取得部622は、通信アプリケーション部621から起動通知または終了通知を受けると、同時にその性能パラメータを通信アプリケーション部621から入手し、パラメータ決定部623に対して、性能パラメータ登録通知または性能パラメータ削除通知を発行する。
なお、アプリ要求取得部622は、送信されるデータのタイプ(アプリケーションタイプ)や、ファイルサイズ、バッファサイズなどに基づいて、性能パラメータである帯域BWおよび遅延時間DTなどを決定してもよい。たとえば、アプリケーションタイプがMPEGであれば、アプリ要求取得部622は、画像が乱れない程度の必要な帯域を性能パラメータとして決定する。
パラメータ決定部623は、間欠的にデータを送信するためのパラメータを決定する。間欠的にデータを送信するためのパラメータは、実施の形態1の間欠受信時と同様に、間欠送信のサイクル間隔およびサイクルデータサイズからなる。また、これらの2つのパラメータを総称して「間欠送信パラメータ」と呼ぶ。パラメータ決定部623は、アプリ要求取得部622から性能パラメータ登録通知または性能パラメータ削除通知を受けつけたとき、アプリ要求取得部622からの性能パラメータを元に間欠送信パラメータを決定し、抑制再開制御部624に間欠送信パラメータ登録通知または間欠送信パラメータ削除通知を送信する。
抑制再開制御部624は、受信側装置603へのデータ送信が間欠的に行なわれるように、通信制御部627を制御する。抑制再開制御部624は、送信したデータに対するACKパケットを受信した後、受信側装置603へのデータ送信を行わない期間を作る。この期間のことを送信抑制期間と呼ぶ。さらに、抑制再開制御部624は、この制御によって得られた送信抑制期間に通信I/F部108の電源が切断されるように、電源制御部106へ指示を出す。
具体的には、抑制再開制御部624は、間欠送信パラメータ登録通知によって受け取った間欠送信パラメータに応じて、受信側装置603へのデータ送信を抑制または再開するタイミングを決定する。また、抑制再開制御部624は、送信抑制期間に連動して、電源制御部106に対して投入または切断の要求を送信する。さらに、抑制再開制御部624は、通信制御部627で送受信するTCPパケットをモニタリングし、そのモニタリングの結果を上述のタイミングの決定に利用する。
電源制御部106は、抑制再開制御部624からの投入または切断の要求に従って、通信I/F部108の電源を投入または切断する。
通信制御部627は、通常のTCP処理に加えて、抑制再開制御部624からの要求を受けて、データパケットの送信タイミングやパケット内容を変更する。具体的には、通信制御部627は、抑制再開制御部624から、データパケット通常送信抑制要求、データパケット通常送信再開要求、指定サイズデータ送信要求を受けて、それらの要求に対応する。
データパケット通常送信抑制要求は、通常のデータパケット送信を抑制させる要求である。通信制御部627は、この要求を受けると、以後、指定サイズデータ送信要求、もしくは、データパケット通常送信再開要求を受けない限り、データパケットを送信しない。
データパケット通常送信再開要求は、データパケット通常送信抑制要求によって停止していたデータパケットの送信抑制を解除し、通常のTCPにしたがって、データパケットを送信させる要求である。
指定サイズデータ送信要求は、データパケット通常送信抑制要求を受けた状態において有効であり、指定されたサイズのデータをTCPにしたがって送信させる要求である。通信制御部627は、通信I/F部108を介して、指定されたサイズのデータパケットを送信し、送信したデータパケットに対応するACKパケットを受信したと判断した時点で、データパケットの送信を停止する。
このような携帯型端末611が初期状態から通信を開始して終了するまでの携帯型端末611の動作について、以下、説明する。
初期状態では、実施の形態1の間欠受信パラメータの登録と同様に、携帯型端末611は、性能パラメータに基づいて間欠送信パラメータ管理テーブルを登録し、通常のTCPにしたがった処理を開始する。
次に、携帯型端末611は、間欠送信の準備状態の処理を行う。この準備状態においては、携帯型端末611は、まず、間欠送信を行うことを受信側装置603に通知する。すなわち、携帯型端末611は、TCPの通信を開設する際に、間欠送信処理を行う旨を受信側装置603に通知するために、TCPヘッダのオプションフィールドにおいて間欠送受信有効フラグを有効にし、3WAYハンドシェイクを行う。これにより、受信側装置603の間欠受信処理を抑えることができ、より確実に省電力効果を高めることができる。つまり、受信側装置603が実施の形態1の携帯型端末211のように間欠受信を行うことが可能な通信装置である場合に、受信側装置603による間欠受信と、携帯型端末611による間欠送信とが同時に行われると、携帯型端末611と受信側装置603との間での通信(間欠送信および間欠受信)が正常に行われないことがある。しかしながら、上述のように、本実施の形態では、携帯型端末611が間欠送信を行うことを受信側装置603に通知して、受信側装置603による間欠受信を停止させることにより、携帯型端末611による受信側装置603に対する間欠送信を正常に行うことができる。このような間欠送信の通知の他、携帯型端末611は、実施の形態1と同様に、データパケット(送信データ)の帯域(送信帯域)が間欠送信パラメータ管理テーブルに設定されている帯域BWまで達し、その帯域でのデータパケットの送信が所定の回数以上継続されるように、データパケットの送信を繰り返し行う。その後、携帯型端末611の抑制再開制御部624は、データパケット通常送信抑制要求を通信制御部627に送信する。その結果、通信制御部627は、抑制再開制御部624からデータパケット通常送信抑制要求を受けると、以後、ACKパケットの受信を続けるものの、その受信時にデータパケットを送信しないようにする。
次に、本実施の形態における定常状態の処理について説明する。
図26は、本実施の形態における携帯型端末611と受信側装置603の定常状態での動作を示すシーケンス図である。
定常状態での1サイクル分の動作は、送信再開処理と、送信抑制期間の開始処理と、送信抑制期間の終了処理との3つのステップに分けられる。
送信再開処理(ステップ1)では、抑制再開制御部624は、受信側装置603への指定サイズのデータ送信を行うために、通信制御部627に対して指定サイズデータ送信要求を発行する。このとき、抑制再開制御部624は、間欠送信パラメータ管理テーブルに格納されたサイクルデータサイズDcを、サイクル間隔Tcの間に送信すべきデータサイズ(指定サイズ)とし、そのサイクルデータサイズDc分のデータを送信するように通信制御部627に要求する。通信制御部627は、時刻T81に、指定サイズデータ送信要求を受け取ると、サイクルデータサイズDc分のデータパケットP1を通信I/F部108を介して送信する。
送信抑制期間の開始処理(ステップ2)では、抑制再開制御部624は、時刻T81以降、通信制御部627で受信されるTCPパケットをモニタリングしながら、通信制御部627からそれまでに送信された最後のデータパケットの情報、すなわち、シーケンス番号(LAST_SEQ)と送信したデータサイズ(LAST_SIZE)とを保持しておく。
そして、抑制再開制御部624は、時刻T81以降で送信したデータサイズがサイクルデータサイズDcに到達し、最後のデータパケットに対するACKパケットを受信したかどうか、を確認し続ける。具体的には、抑制再開制御部624は、ACKパケットP2が受信されるごとに、その受信されたACKパケットP2のACK番号を参照し、そのACK番号が(LAST_SEQ+LAST_SIZE)であるか否かを確認する。
このとき、送信されたデータパケットに対するACKパケットが全て携帯型端末611に到達しない場合がある。具体的には、次の原因が考えられる。
(1)受信側装置603がDELAYED ACKアルゴリズムを実装している場合、受信側装置603はデータパケット1つに対して1つのACKパケットを送信するのではなく、複数個のデータパケットに対し、1つのACKパケットを送信する。
(2)伝送路上や、受信側端末603上、携帯型端末611上で、パケットロスが発生する。
そこで、携帯型端末611は、RTTを推定するRTT推定部を備え、送信したデータパケットに対する全てのACKパケットを受信しない場合、最後のデータパケットを送信した後からRTT間だけACKパケットを待ち受けてもよい。携帯型端末611は、このRTT間に全てのACKパケットを受信しなければ、ACKパケットの待ち受けを終了し、受信していないACKパケットに対応するデータパケットを、次のサイクルにおけるデータ送信の最初に再送する。
また、携帯型端末611は、RTT間だけACKパケットを待ち受け、全てのACKパケットを受信しない場合は、パケットロスが発生している可能性もあるため、受信していないACKパケットに対応するデータパケット、もしくは、最後に送信したデータパケットを再送信し、再度ACKパケットを待ってもよい。
また、受信側装置603のDELAYED ACK TIMERを解除するパケット数が既知であれば、携帯型端末611は、データパケットの数がDELAYED ACK TIMER解除のパケット数の整数倍となるように、データパケットの分割を行ってもよい。一方、DELAYED ACK TIMERを解除するパケット数が既知でなければ、携帯型端末611は、あらかじめ、通信中にDELAYED ACK TIMER解除のパケット数をACKパケットの受信タイミングから推定しておいてもよい。
時刻T81以降で送信したデータパケットに対する全てのACKパケットが到達したとき、もしくは、これ以上到達しないと判断したときである時刻T82で、抑制再開制御部624は、送信抑制期間が開始したとみなし、電源制御部106に対して切断要求を発行する。電源制御部106は切断要求を受けると、通信I/F部108の電源を切断する。
送信抑制期間の終了処理(ステップ3)では、本発明の実施形態における携帯型端末611は、時刻T81を起点として、サイクル間隔Tcの時間経過後の時刻T83を、送信抑制期間の終了点と見なす。つまり、抑制再開制御部624は、タイマにより時刻T83を検出し、電源制御部106に投入要求を発行する。その投入要求により、電源制御部106は時刻T83に通信I/F部108の電源を投入する。
携帯型端末611は、定常状態では、上記3つのステップを1サイクルとして、繰り返し実行する。
通信アプリケーションプログラムを終了する場合の処理では、携帯型端末611は、実施の形態1と同様に、受信側装置603とのTCPのコネクションを切断する。さらに、携帯型端末611のアプリ要求取得部622およびパラメータ決定部623はそれぞれ、性能パラメータ管理テーブルの内容と、間欠送信パラメータ管理テーブルの内容とをクリアする。さらに、抑制再開制御部624は、通信制御部627で送受信されるTCPパケットのモニタリングを停止し、電源制御部106に対して通信I/F部108の電源を切断させる。
以上の処理により、携帯型端末611の状態は初期状態に戻る。
次に、上記の間欠送信処理のための、携帯型端末611内の処理について、フローチャートを用いて説明する。
図27は、本実施の形態における携帯型端末611の定常状態の動作を示すフローチャートである。
まず、本実施の形態の携帯型端末611は、前のサイクルにおいて、受信していないACKパケットに対応するデータパケットが通信制御部627に保持されていたら、サイクルデータサイズDc分のデータパケットの送信に先立ち、その保持されているデータパケットを既存のTCPプロトコルに従って送信する(ステップS501)。このとき、携帯型端末611の抑制再開制御部624は、通信I/F部108への電源投入のタイミングを特定するため、タイマによる計時を開始する。
次に、携帯型端末611は、今回のサイクルで送信すべきサイクルデータサイズDc分のデータパケットを送信する(ステップS502)。このとき、上述の送信抑制期間の開始処理(ステップ2)で説明したように、携帯型端末611は、最後のデータパケットを送信後、送信したデータパケットに対応する全てのACKパケットをRTT間だけ待ち受ける。このRTT間に全てのACKパケットを受信しなければ、携帯型端末611は、その全てのACKパケットを受信しないまま、データパケットの送信を完了する。なお、TCPなので、最後のデータパケットは通信制御部107に保持されており、次回のサイクルの最初(ステップS501)で送信される。
携帯型端末611は、サイクルデータサイズDc分のデータパケットの送信が完了した後、通信I/F部108の電源を切断する(ステップS503)。携帯型端末611は、通信I/F部108の電源を切断すると、上述のタイマに基づいて、ステップS502でのデータパケットの送信開始時からサイクル間隔Tcが経過したか否かを判別する(ステップS504)。ここで、携帯型端末611は、サイクル間隔Tcが経過していないと判別したときには(ステップS504のNo)、ステップS503からの処理を繰り返し、サイクル間隔Tcが経過したと判別したときには(ステップS504のYes)、通信I/F部108の電源を投入する(ステップS505)。
なお、本実施の形態では、ステップS503およびS504において、定期的にサイクル間隔Tcの経過を確認しているが、定期的な確認を行わず、サイクル間隔Tcが経過したときに、割り込みを発生させて、サイクル間隔Tcの経過を検知してもよい。
最後に、携帯型端末611は、送信すべきアプリケーションデータ(データパケット)の送信を完了し、受信側装置603との通信を終了すべきか否かを判別し(ステップS506)、終了すべきと判別したときには(ステップS506のYes)、全ての処理を終了する。また、携帯型端末611は、終了すべきでなく、まだ送信すべきデータが存在すると判別したときには(ステップS506のNo)、ステップS501からの処理を繰り返し実行する。このようなステップS501〜S506の処理によって、間欠送信を行いながら通信が実行される。
以上のように、本実施の形態に係る携帯型端末611は、無線LANの省電力方法に依存せず、例えばTCPなどのフロー制御機構を持つプロトコルを使って、受信側装置603との間で通信を行いながら省電力化を行なう。そのため、本実施の形態では、アクセスポイントでの省電力機能のサポート状況やネットワークデバイスの種類にも関係なく、携帯型端末611の省電力化を図ることができる。また、携帯型端末611(送信側装置)から間欠送信を行うことが受信側装置603に通知されることにより、受信側装置603の間欠受信処理を抑えることができ、より確実に省電力化を図ることができる。
なお、本実施の形態では、送信抑制期間においてのみ、電源を切断したが、省電力効果をさらに向上するために、1サイクル内のデータパケットの送信後からACKパケットの受信までの期間も電源を切断してもよい。
図28は、本実施の形態に係る携帯型端末611と受信側装置603の他の省電力方法を示すシーケンス図である。
携帯型端末611は、実施の形態2の携帯型端末211aと同様に、サイクルの最初のデータパケット送信後、そのデータパケットに対応するACKパケットを受信するまでのRTT間のうち、一部の期間において通信I/F部108の電源を切断する。
具体的には、携帯型端末611は、サイクル間隔Tcの間にサイクルデータサイズ分のデータパケットを送信しなければならないので、1サイクルの全てのデータパケットを送信した直後(図28の時刻T92)から、最初のACKパケットが到達する直前(図28の時刻T93)までの期間において通信I/F部108の電源を切断する。ただし、受信側装置603から受信しているRWINがサイクルデータサイズDcよりも小さい場合は、携帯型端末611は、受信したRWINに応じたデータサイズ分のデータパケットを送信した後に電源を切断する。
また、本実施の形態では、サイクルデータサイズDcおよびサイクル間隔Tcを固定させたが、送信するデータサイズに応じて動的に変更してもよい。また、本実施の形態では、各サイクルの間隔をあけずに、各サイクルを連続させたが、各サイクルの間を空けてもよい。例えば、携帯型端末611は、サイクルデータサイズDc分のデータの送信準備がサイクル開始時点でできていない場合などでは、サイクルデータサイズDc分の送信すべきデータが準備されるまで、次のサイクルを開始せず、電源切断を行ってもよい。これにより、まとめてデータを送信することにより、TCPの往復回数を減らすことで、より省電力効果を得ることができる。
また、本実施の形態では、携帯型端末611(送信側装置)が、間欠送信を通知したが、必ずしも通知する必要はない。また、携帯型端末611(送信側装置)が、間欠送信を通知することなく、逆に、受信側装置603が、間欠受信を携帯型端末611に通知してもよい。また、携帯型端末611(送信側装置)と受信側装置603との間でネゴシエーションを実施することにより、間欠受信および間欠送信のうち何れを実行するかを決定してもよい。この場合、両装置が間欠送受信有効フラグに省電力効果に関する情報を含めることで、間欠受信および間欠送信のうち、省電力効果の高い方が実施される。また、本実施の形態では、間欠送信の実施を通知するタイミングを、3WAYハンドシェイクとしたが、そのタイミングは、間欠送信の準備状態などのように、間欠送信を実施する前であれば何れのタイミングであってもよい。
(実施の形態6)
本発明の実施の形態6に係る通信装置について説明する。実施の形態1から実施の形態5では、携帯型端末において動作する通信アプリケーションプログラムは1つだけであったが、本実施の形態では、複数の通信アプリケーションプログラムが同時に動作する。複数の通信アプリケーションプログラムが同時に動作した場合でも、複数の通信アプリケーションプログラムの送信処理および受信処理を同期することにより、送信抑制期間を発生させ、省電力効果を得ることができる。本実施の形態では、簡単のために2つの通信アプリケーションプログラムが同時に動作した場合について説明を行う。
図29は、本実施の形態における通信装置を有する通信システムの一例を示す構成図である。
本実施の形態に係る通信システムは、通信装置たる携帯型端末1001,1002と、UDP(User Datagram Protocol)などのようにフロー制御を行わない通信を行う送信側装置203aと、フロー制御付の通信を行う機能を持つ送信側装置203と、受信側装置603とを備える。
なお、本実施の形態において、実施の形態1〜5と同様の機器および構成については、同一の参照符号を付して説明を省略する。
本実施の形態における携帯型端末1001は、実施の形態2の携帯型端末211aの受信側装置としての機能と、実施の形態5の携帯型端末611の送信側装置としての機能とを兼ね備え、2つの通信アプリケーションプログラムを同時に実行する。つまり、本実施の形態における携帯型端末1001は、送信側装置203,203aから送信されるデータパケットを同時に受信したり、送信側装置203から送信されるデータパケットの受信と、受信側装置603へのデータパケットの送信とを同時に実行したりする。
また、本実施の形態における携帯型端末1001は、実施の形態1〜5と同様にTCPに従った通信を行うとともに、UDPに従った通信を行う。したがって、携帯型端末1001は、送信側装置203または受信側装置603と通信するときには、TCPに従ったデータの受信または送信を行い、送信側装置203aと通信するときには、UDPに従い、送信側装置203aから一定間隔ごとに送信されるデータを受信する。
なお、本実施の形態では、携帯型端末1001により実行される間欠受信および間欠送信を総称して、間欠送受信と呼び、携帯型端末1001により扱われる間欠受信パラメータおよび間欠送信パラメータを総称して、間欠送受信パラメータと呼ぶ。また、携帯型端末1001,1002はそれぞれ同一の機能と構成を有するため、携帯型端末1001のみについて以下に説明する。
図30は、本実施の形態における携帯型端末1001の具体的な構成を示す構成図である。
本実施の形態における携帯型端末1001は、通信アプリケーション部1011と、アプリ要求取得部1012と、パラメータ決定部1013と、抑制再開制御部1014と、電源制御部106と、通信制御部1027と、通信I/F部108と、RTT推定部1019とを備える。
通信アプリケーション部1011は、実施の形態2の通信アプリケーション部101の機能と、実施の形態5の通信アプリケーション部621の機能とを兼ね備え、データを送信するための通信アプリケーションプログラムと、データを受信するための通信アプリケーションプログラムとを同時に実行したり、データを送信または受信するための2つの通信アプリケーションプログラムを同時に実行したりする。つまり、通信アプリケーション部1011は、アプリ要求取得部1012に起動通知を発行して、送信側装置203a、送信側装置203および受信側装置603aのうち何れか2つの装置との間でデータの送受信を行う。
アプリ要求取得部1012は、実施の形態2のアプリ要求取得部102の機能と、実施の形態5のアプリ要求取得部622の機能とを兼ね備え、通信アプリケーション部1011から、性能パラメータを入手し、パラメータ決定部1013に対して、性能パラメータ登録通知または性能パラメータ削除通知を発行する。また、アプリ要求取得部1012によって入手される性能パラメータには、後述する「プロトコル」や「省電力優先度」が示されている。
抑制再開制御部1014は、実施の形態2の抑制再開制御部804の機能と、実施の形態5の抑制再開制御部624の機能とを兼ね備える。さらに、抑制再開制御部1014は、複数の通信アプリケーションプログラムの間欠送受信パラメータに従って、各通信アプリケーションプログラムによる間欠送受信の同期をとる。つまり、抑制再開制御部1014は、各通信アプリケーションプログラムにおける通信の抑制および再開を同時に行い、抑制時には、電源制御部106に対して通信I/F部108の電源を切断させる。通信の抑制および再開のタイミングについては後述する。さらに、本実施の形態の携帯型端末1001は、UDPを用いてデータの受信を行う場合は、UDPパケットの受信間隔を特定し、その受信間隔に基づいて、UDPパケットの受信予想時刻を推定する。
RTT推定部1019は、実施の形態2のRTT推定部809と同様に、各通信アプリケーションプログラムのRTTを推定し、推定したRTTをパラメータ決定部1013、抑制再開制御部1014および通信制御部1027に通知する。
パラメータ決定部1013は、実施の形態2のパラメータ決定部103の機能と、実施の形態5のパラメータ決定部623の機能とを兼ね備え、上述の間欠送受信パラメータを決定し、抑制再開制御部1014に間欠送受信パラメータ登録通知(間欠受信パラメータ登録通知または間欠送信パラメータ登録通知)または間欠送受信パラメータ削除通知(間欠受信パラメータ削除通知または間欠送信パラメータ削除通知)を送信する。
通信制御部1027は、実施の形態2の通信制御部107の機能と、実施の形態5の通信制御部627の機能とを兼ね備えるとともに、通信I/F部108を介して、送信側装置203aからUDPに従ったデータパケットの受信を行う。
図31Aおよび図31Bは、アプリ要求取得部1012が管理するUDPに関する性能パラメータ管理テーブルを示す図である。
性能パラメータ管理テーブル1012a,1012bはそれぞれ、UDPにより通信を行う起動済みの通信アプリケーションプログラムに対する性能パラメータを有する。その性能パラメータとしてはプロトコルや送信間隔がある。
プロトコルは、例えば「UDP固定レート受信」や「UDP可変レート送信」などのように、UDP固定レートまたはUDP可変レートと、送信または受信との組み合わせにより規定されるパラメータである。送信間隔DTは、UDPにより断続的に送信されるデータパケットの時間間隔を示すパラメータであり、プロトコルがUDP固定レートを示す場合に、性能パラメータ管理テーブルに設定され、プロトコルがUDP可変レートを示す場合には設定されない。
図32Aおよび図32Bは、アプリ要求取得部1012が管理するTCPに関する性能パラメータ管理テーブルを示す図である。
性能パラメータ管理テーブル1012c,1012dはそれぞれ、TCPにより通信を行う起動済みの通信アプリケーションプログラムに対する性能パラメータを有する。その性能パラメータとしては、プロトコルや、省電力優先度、ストリームタイプ、帯域、遅延時間がある。なお、ストリームタイプ、帯域および遅延時間のパラメータは、図6A、図6Bおよび図6Cに示すパラメータと同じである。
プロトコルは、例えば「TCP送信」や「TCP受信」などを示すパラメータである。省電力優先度は、間欠送受信のサイクルの基準となる通信アプリケーションプログラムを決定するためのパラメータである。
携帯型端末1001のパラメータ決定部1013は、起動済みの2つの通信アプリケーションプログラムのそれぞれの性能パラメータ管理テーブルにより示されるプロトコルや省電力優先度などに基づいて、その2つの通信アプリケーションプログラムのうち、何れか一方をサイクル基準アプリケーションに決定する。つまり、パラメータ決定部1013は、そのサイクル基準アプリケーションによる間欠送受信のサイクルを基準(基準サイクル)とし、他方の通信アプリケーションプログラムによる間欠送受信のサイクルがその基準サイクルに同期するように、その他方の間欠送受信パラメータを決定する。
例えば、TCPにより通信を行う起動済みの2つの通信アプリケーションプログラムが起動している場合には、パラメータ決定部1013は、その2つの通信アプリケーションプログラムの性能パラメータ管理テーブルに示される省電力優先度を比較する。そして、パラメータ決定部1013は、省電力優先度の高い通信アプリケーションプログラムをサイクル基準アプリケーションに決定する。
また、パラメータ決定部1013は、起動済みの2つの通信アプリケーションプログラムの性能パラメータ管理テーブルに示されるプロトコルを比較し、一方のプロトコルがTCPを示し他方のプロトコルがUDPを示す場合には、UDPの通信アプリケーションプログラムをサイクル基準アプリケーションに決定する。プロトコルがUDPの通信アプリケーションプログラムは再送制御を実施しないことから、間欠送受信の非給電状態でのパケットロスを極力避けなければならない。したがって、パラメータ決定部1013は、UDPの通信アプリケーションプログラムを優先的にサイクル基準アプリケーションに決定する。
なお、性能パラメータ管理テーブルに省電力優先度が設定されていない場合や、互いの性能パラメータ管理テーブルに示される省電力優先度が同じレベルである場合には、パラメータ決定部1013は、RTT推定部1019から通知されたRTTや、通信アプリケーションプログラムもしくはユーザによる指定に応じてサイクル基準アプリケーションを決定してもよい。
また、サイクル基準アプリケーションとならなかった通信アプリケーションプログラムは、サイクル基準アプリケーションと連動して動作することになる。そのため、パラメータ決定部1013は、サイクル基準アプリケーションとならなかった通信アプリケーションプログラムの間欠送受信パラメータを決定するときには、サイクルデータサイズDctを増やすなどして間欠送受信パラメータを調整し、通信アプリケーションプログラムからの要求が満たされるような間欠送受信パラメータを決定する。
パラメータ決定部1013は、TCPにより通信を行うサイクル基準アプリケーションの間欠受信パラメータを決定するときには、実施の形態1と同様に、間欠受信パラメータであるサイクル間隔TctとサイクルデータサイズDctを決定する。また、パラメータ決定部1013は、UDPにより通信を行うサイクル基準アプリケーションの性能パラメータ管理テーブルに示される送信間隔DTを、UDPにより送信されたパケットを受信する受信間隔や、UDPによりパケットを送信する送信間隔として用いる。
ここで、間欠送受信パラメータの決定方法について、以下詳細に説明する。
まず、通信アプリケーション部1011が2つの通信アプリケーションプログラムを起動し、一方の通信アプリケーションプログラムがUDPの送受信を行い、もう一方の通信アプリケーションプログラムがTCPの送受信を行う場合について説明する。
UDPの通信では、プロトコルによる再送制御が実施されないため、電源切断中にパケットを受信し、ロスすることは避けるべきである。また、VoIPなどの送信では、パケット送信遅延により音声が乱れるなどの現象が発生するため、パケット送信遅延に対する制約が厳しい。そこでまず、携帯型端末1001は、UDPとTCPの通信の両方を行う場合、UDPの送受信を実行しようとする通信アプリケーションプログラムをサイクル基準アプリケーションとし、UDPパケットの送信間隔を守ることにより、パケットの送受信遅延に関する制約を守る。
パラメータ決定部1013は、UDPにより通信を行う通信アプリケーションプログラムをサイクル基準アプリケーションに決定し、そのサイクル基準アプリケーションの性能パラメータ管理テーブルに示される送信間隔DT=DTuを特定する。そして、パラメータ決定部1013は、その送信間隔に基づいて、TCPにより通信を行う通信アプリケーションプログラムのサイクル間隔Tctを決定する。
次に、パラメータ決定部1013は、TCPにより通信を行う通信アプリケーションプログラムのサイクルデータサイズを、その通信アプリケーションプログラムの性能パラメータ管理テーブルに示される帯域BWに基づいて決定する。このとき、パラメータ決定部1013は、サイクル基準アプリケーションによるUDP通信の送信間隔DTuに、TCPの通信のサイクル間隔Tct(サイクル間隔Tctの整数倍)を合わせて両通信の同期が取られている状態において、必要とされるサイクルデータサイズを決定する。
具体的に、TCPの性能パラメータ管理テーブルに示されるストリームタイプが帯域重視型である場合は、両通信の同期を取るために、パラメータ決定部1013は、TCPの通信のサイクル間隔TctをTct=DTuに決定する。次に、実施の形態1と同様に、パラメータ決定部1013は、Dct=Tct×BWに従い、1回のサイクルにおいて送受信するデータサイズである、サイクルデータサイズDctを決定し、要求された帯域BWを確保する。
一方、TCPの性能パラメータ管理テーブルに示されるストリームタイプが遅延時間重視型である場合は、まず、パラメータ決定部1013は、UDPの送信間隔DTuとTCPの遅延時間DTtを比較する。UDPの送信間隔DTuよりも、TCPの遅延時間DTtのほうが長ければ、パラメータ決定部1013は、サイクル間隔TctをTct=DTuに決定し、サイクルデータサイズDctをDct=Tct×BWに決定する。逆に、TCPの遅延時間DTtの方が短ければ、DTu>C3×DTtとなるような整数C3を決定する。この場合、パラメータ決定部1013は、サイクル間隔TctをTct=DTu/C3に決定することで、UDPの送信間隔内に、TCPの送受信をC3回実行し、要求された遅延時間DTtを守る。そして、パラメータ決定部1013は、帯域重視型と同様に、Dct=Tct×BWにより、サイクルデータサイズDctを決定する。
なお、TCPの性能パラメータ管理テーブルに示されるストリームタイプがベストエフォート型の場合は、パラメータ決定部1013は、実施の形態1と同様に、間欠送受信パラメータを決定せず、携帯型端末1001は間欠送受信を行わない。
次に、通信アプリケーション部1011が2つの通信アプリケーションプログラムを起動し、両方の通信アプリケーションプログラムがTCPの送受信を行う場合について説明する。2つのTCPの通信を動作させる場合は、パラメータ決定部1013は、各通信のためのサイクル間隔TctとサイクルデータサイズDctを決定しなければならない。
ここでは、サイクル基準アプリケーションによる通信のサイクル間隔TctをTc1とし、その通信のサイクルデータサイズDctをDc1とする。また、もう一方の通信アプリケーションプログラムによる通信のサイクル間隔TctをTc2とし、その通信のサイクルデータサイズDctをDc2とする。
両方の通信がTCPの送受信の場合、まず、パラメータ決定部1013は、各通信アプリケーションプログラムの性能パラメータ管理テーブルに示される省電力優先度を確認し、優先度の高い通信アプリケーションプログラムをサイクル基準アプリケーションに決定する。そして、パラメータ決定部1013は、サイクル基準アプリケーションのサイクル間隔Tc1とサイクルデータサイズDc1とを、実施の形態1または実施の形態5と同様の方法で決定する。
次に、パラメータ決定部1013は、もう一方の通信アプリケーションプログラムについて、サイクルデータサイズDc2とサイクル間隔Tc2とを決定する。この決定方法では、パラメータ決定部1013は、上述のUDPの通信とTCPの通信を同時に行う場合における決定方法において、UDPの送信間隔DTuをサイクル基準アプリケーションのサイクル間隔Tc1に置き換えて計算することより、サイクル間隔Tc2とサイクルデータサイズDc2とを決定する。
図33は、本実施の形態に係る携帯型端末1001と送信側装置203aおよび送信側装置203との省電力方法を示すシーケンス図である。
例えば、携帯型端末1001は、図31Aに示す性能パラメータ管理テーブル1012aに対応する通信アプリケーションプログラムにより、UDPに従って送信側装置203aからデータを受信しながら、図32Bに示す性能パラメータ管理テーブル1012dに対応する通信アプリケーションプログラムにより、TCPに従って送信側装置203からデータを受信する。なお、送信側装置203aがUDPパケットを送信する送信間隔をDTuとし、送信側装置203bとの通信におけるサイクル間隔をTctとし、サイクルデータサイズをDctとし、RTTをRTTtとする。また、送信側装置203aとの通信は、UDPを用いて行うので、上述の通り、UDPを用いた通信アプリケーションプログラムをサイクル基準アプリケーションとし、UDPの送信間隔DTuはDTu=サイクル間隔Tctとなる。そして、携帯型端末1001は、送信間隔DTuの間隔でUDPパケットを受信すること、つまりUDPパケットを受信する時刻(受信予測時刻)を予測する。
本シーケンスでは、最初に、携帯型端末1001は、間欠受信の初期状態において、送信側装置203aおよび送信側装置203と通信するために、パラメータ決定部1013により、上記で説明した方法で間欠受信パラメータを決定する。
次に、携帯型端末1001は、間欠受信の準備状態の処理を行う。このとき、携帯型端末1001は、TCPを用いて送信側装置203と通信するために、実施の形態1と同様の方法により準備状態の処理を実施する。それに加えて、携帯型端末1001のRTT推定部1019は、TCPの通信のRTTであるRTTtを推定しておく。なお、携帯型端末1001は、UDPを用いて送信側装置203aと通信するときには、固定レートでパケット送受信を行うため、そのUDPの通信のための準備状態の処理を行わない。
また、携帯型端末1001の抑制再開制御部1014は、準備状態の処理が完了すると、サイクル基準アプリケーションによるUDPパケットの受信のタイミングに同期してTCPの通信アプリケーションプログラムによる通信が開始できるように、通信制御部1027によるACKパケットの送信を停止させて、送信側装置203aとの通信を抑制しておく。
その後の定常状態では、抑制再開制御部1014は、時刻T101にサイクル間隔Tctのタイマによる計時を開始し、送信側装置203からのデータ送信を再開させるため、通信制御部1027に対してACK単発送信要求を発行する。したがって、携帯型端末1001は、送信側装置203にACKパケットPa1を送信することで、間欠受信を開始する。ここで、開始するタイミング、つまりACKパケットPa1を送信するタイミング(時刻T101)は、送信側装置203aからのUDPパケットPu1の受信予測時刻と、送信側装置203からのTCPパケットPd1の受信予測時刻とがちょうど一致するように調整されている。なお、TCPパケットPd1は、送信側装置203から送信されるサイクルデータサイズDct分のパケット全てを含む。
つまり、抑制再開制御部1014は、送信側装置203aからのUDPパケットPu1の受信予測時刻を予測し、その受信予測時刻からRTTt分さかのぼったタイミング(時刻T101)で、ACK単発送信要求を発行して、ACKパケットPa1を送信させる。抑制再開制御部1014は、ACKパケットPa1の送信が完了した時刻T102に、電源制御部106に対して切断要求を発行する。電源制御部106は切断要求を受けると、通信I/F部108の電源を切断する。そして、ACKパケットPa1送信完了後の時刻T102からRTTt経過する時刻T103まで、送信側装置203aおよび送信側装置203のいずれからもパケットを受信することがないため、抑制再開制御部1014は、通信I/F部108の電源を切断させておく。
次に、抑制再開制御部1014は、時刻T102からRTTt経過したときの時刻T103に、送信側装置203aおよび送信側装置203からパケットが到達するため、電源制御部106に対して投入要求を発行する。その投入要求により、電源制御部106は時刻T103に通信I/F部108の電源を投入する。そして、受信すべき全てのパケットを受信した後の時刻T104と、サイクルの開始時刻T101からサイクル間隔Tct経過した時刻T105との間にはパケットを送受信しないため、抑制再開制御部1014は、電源制御部106を制御することにより、その時刻T104から時刻T105まで、通信I/F部108の電源を切断させる。そして、携帯型端末1001は、タイマによる計時の開始時刻T101からサイクル間隔Tctが経過した時刻T105に、再度新しいサイクルを開始する。このように、送信側装置203aのUDPパケットの送信間隔DTuと、送信側装置203の通信のサイクル間隔Tctとが同じであるため、この後も同期して間欠受信をすることが可能である。
このように本実施の形態における携帯型端末1001では、複数の通信を並列に実行する場合にも、それらのタイミングを同期させることで、データを送受信しない期間を作り、その期間に通信I/F部108の電源を切断して、省電力効果の向上を図ることができる。
なお、サイクルデータサイズDct分のTCPパケットがサイクル間隔Tctに受信されなかった場合には、携帯型端末1001は、間欠受信を実施せず、TCPパケットを受信すると直ちにACKパケットを送信し、次のデータ(TCPパケット)を受信してもよい。この場合、サイクルデータサイズDct分のTCPパケットを受信できなかったサイクルの次のサイクルでは、携帯型端末1001は、サイクルデータサイズDctに、前回のサイクルで受信できなかったデータのサイズを加算したサイズを、次のサイクルで必要となるサイクルデータサイズDctとし、次のサイクルを実行する。
また、図33では、UDPを用いた受信とTCPを用いた受信とを用いて、本実施の形態における携帯型端末1001の省電力効果を説明したが、UDPを用いた受信とTCPを用いた送信とを携帯型端末1001が実行する場合でも、本実施の形態における携帯型端末1001では、間欠送受信処理により省電力効果を向上させることが可能である。具体的には、本実施の形態で説明した例と同様に、携帯型端末1001は、UDPを用いた受信に合わせて、データパケット(TCPパケット)の送信、もしくはデータパケット(TCPパケット)に対応するACKパケットの受信を実施する。例えば、UDPパケットの受信と、データパケットに対するACKパケットの受信とのタイミングを合わせる場合は、携帯型端末1001は、図33の時刻T101で、ACKパケットの送信の代わりに、サイクルデータサイズDc分のデータパケットの送信を実施する。
また、図33では、携帯型端末1001は、送信側装置203との通信におけるサイクル間隔Tctを送信間隔DTuと同じとすることで、両通信の同期をとっていたが、サイクル間隔Tctを送信間隔DTuに等しくしなくても同期を取ることができる。この場合には、携帯型端末1001は、UDPパケットの送信間隔DTuとは無関係にサイクル間隔Tctを決定し、UDPパケットの受信予測時刻を推定し、各サイクル中の適切なタイミングにおいてACK単発送信要求に基づくACKパケットを送信する。つまり、ACKパケットの送信時刻はサイクルの開始に依存せず、UDPパケットの受信予測時刻、RTTtおよびサイクル間隔Tctを用いることで、データの送受信のタイミングの同期を取ることができる。
図34は、サイクル間隔Tctと送信間隔DTuとが異なる場合に抑制再開制御部1014がデータの送受信のタイミングの同期を取るための動作を示すフローチャートである。
最初に、抑制再開制御部1014は、サイクルの開始時刻において、そのサイクルのサイクル間隔Tct内にUDPパケットを受信するか否か、つまりUDPパケットの受信予測時刻(以下、UDP受信予測時刻という)が存在するか否かを判定する(ステップS601)。具体的には、抑制再開制御部1014は、(UDP受信予測時刻−サイクルの開始時刻)がサイクル間隔Tctよりも小さいか否かを判定する。
ここで、抑制再開制御部1014は、UDP受信予測時刻がサイクル間隔Tct内に存在しない((UDP受信予測時刻−サイクルの開始時刻)>サイクル間隔Tct)と判定すると(ステップS601のNo)、同期処理を行うことなく、サイクルの開始時刻にACKパケットを送信させる(ステップS605)。つまり、抑制再開制御部1014は、サイクルを開始すると同時に、実施の形態1と同様の方法により間欠受信制御を行う。
一方、抑制再開制御部1014は、UDP受信予測時刻がサイクル間隔Tct内に存在する((UDP受信予測時刻−サイクルの開始時刻)<サイクル間隔Tct)と判定すると(ステップS601のYes)、さらに、UDP受信予測時刻にTCPパケット(データパケット)を受信できるか否かを判定する(ステップS602)。つまり、抑制再開制御部1014は、UDPパケットの受信と、ACKパケットの送信もしくはTCPパケットの受信との同期を取るために、(UDP受信予測時刻−サイクルの開始時刻)とRTTtとを比較する。抑制再開制御部1014は、(UDP受信予測時刻−サイクルの開始時刻)>RTTtであれば、UDP受信予測時刻にTCPパケットを受信できると判定し、(UDP受信予測時刻−サイクルの開始時刻)<RTTtであれば、UDP受信予測時刻にTCPパケットを受信できないと判定する。
ここで、抑制再開制御部1014は、UDP受信予測時刻にTCPパケットを受信できる((UDP受信予測時刻−サイクルの開始時刻)>RTTt)と判定すると(ステップS602のYes)、UDPパケットの受信とTCPパケットの受信とを同期させる(ステップS603)。つまり、抑制再開制御部1014は、サイクルの開始時刻から{(UDP受信予測時刻−サイクルの開始時刻)−RTTt}経過したタイミングで、ACKパケットを送信させる。
一方、抑制再開制御部1014は、UDP受信予測時刻にTCPパケットを受信できない((UDP受信予測時刻−サイクルの開始時刻)<RTTt)と判定すると(ステップS602のNo)、UDPパケットの受信とACKパケットの送信とを同期させる(ステップS604)。つまり、抑制再開制御部1014は、UDP受信予測時刻にACKパケットを送信させる。
そして、抑制再開制御部1014は、次のサイクルがあるか否かを判別し(ステップS606)、次のサイクルがないと判別したときには(ステップS606のYes)、全ての処理を終了し、次のサイクルがあると判別したときには(ステップS606のNo)、ステップS601からの処理を繰り返し実行する。
このようなサイクル間隔Tctと送信間隔DTuとが異なるときの省電力方法について、図35を用いてさらに詳細に説明する。
図35は、本実施の形態に係る携帯型端末1001と送信側装置203aおよび送信側装置203との他の省電力方法を示すシーケンス図である。
携帯型端末1001は、送信側装置203とのTCPを用いた通信におけるサイクル間隔Tctを決定するときには、送信側装置203aとのUDPを用いた通信における送信間隔DTuと異なるサイクル間隔Tctを決定する。なお、図35では、説明を簡単にするため、携帯型端末1001がACKパケットの送信後RTTt経過まで電源を切断しないことを前提とする。
まず、携帯型端末1001は、時刻T111に定常状態に達すると、上述したサイクル間隔Tctと送信間隔DTuとが異なる場合の間欠受信制御に基づいて、ACKパケットの送信タイミングを決定する。携帯型端末1001は、時刻T111から開始されるこのサイクルでは、UDP受信予測時刻にTCPパケットを受信できる、つまり(UDP受信予測時刻−サイクルの開始時刻)>RTTtが成り立つと判定する。その結果、携帯型端末1001は、時刻T111にサイクルを開始し、その時刻から(UDPパケットPu1の受信予測時刻−サイクルの開始時刻T111−RTTt)が経過するタイミングになるまで、通信I/F部108の電源を切断しておく。次に、時刻T112に(UDPパケットPu1の受信予測時刻−サイクルの開始時刻T111−RTTt)のタイミングとなると、携帯型端末1001は、ACK単発送信要求に基づくACKパケットPa1を送信側装置203に送信する。そしてRTTt経過後、携帯型端末1001は、送信側装置203aからUDPパケットを受信し、送信側装置203からTCPパケットを受信する。携帯型端末1001は、時刻T113で、受信すべき全てのデータを受信すると、通信I/F部108の電源を切断し、サイクルの開始時刻T111からサイクル間隔Tct経過後の時刻T114まで、その電源を切断しておく。
次に、携帯型端末1001は、次のサイクルを開始する時刻T114に、次のUDPパケットPu2の受信予測時刻がそのサイクル中に発生するか否かを判断する。発生しないと判断すると、携帯型端末1001は、そのサイクルの開始時刻T114に、ACKパケットPa2を送信する。携帯型端末1001は、時刻T115に、そのACKパケットPa2に対応する全てのTCPパケットPd2を受信すると、その後、サイクルの終了時刻T116まで通信I/F部108の電源を切断する。
さらに、携帯型端末1001は、次のサイクルの開始時刻T116に、そのサイクルでは、UDP受信予測時刻にTCPパケットを受信できない、つまり(UDP受信予測時刻−サイクルの開始時刻T116)<RTTtが成り立つと判定する。その結果、携帯型端末1001はUDPパケットPu2を受信する時刻T117に、ACKパケットPa3を送信する。したがって、携帯型端末1001は、時刻T116から時刻T117まで通信I/F部108の電源を切断しておく。
このように、サイクル間隔Tctと送信間隔DTuが異なる場合も、UDP受信予測時刻とサイクル間隔TctとRTTtとを用いることで2つの通信の同期をとることができ、省電力効果を向上させることができる。
図36は、本実施の形態に係る携帯型端末1001と受信側装置603および送信側装置203との省電力方法を示すシーケンス図である。
携帯型端末1001は、TCPを用いて受信側装置603にデータを送信しながら、TCPを用いて送信側装置203からデータを受信する。ここで、受信側装置603との通信におけるサイクル間隔をTcとし、サイクルデータサイズをDcaとし、RTTをRTTaとする。また、送信側装置203との通信におけるサイクル間隔をTcとし、サイクルデータサイズをDcbとし、RTTをRTTbとする。上記の説明の通り、サイクル間隔Tcは、受信側装置603の通信と送信側装置203の通信とで、同一である。
また、携帯型端末1001は、図33の場合と同様に、サイクル基準アプリケーションのサイクルに合わせて、もう一方の通信のサイクル間隔TcおよびサイクルデータサイズDcを決定することにより、サイクル間隔Tcの同期をとり、送信抑制期間で通信I/F部108の電源を切断する。
最初に、携帯型端末1001は、図33と同様に初期状態において、受信側装置603および送信側装置203に対する間欠送受信パラメータを決定し、実施の形態2および実施の形態5と同様の準備状態の処理を実施し、間欠送受信可能な状態で各装置との通信を抑制しておく。ここで、本実施の形態では、受信側装置603との通信の省電力優先度が「高」であるものとする。よって、サイクル基準アプリケーションは、受信側装置603に対してTCPを用いた送信処理を行う通信アプリケーションプログラムとなる。したがって、携帯型端末1001は、送信側装置203に対する準備状態が完了すると、サイクル基準アプリケーションによる受信側装置603との通信と同期をとるため、送信側装置203の通信を抑制しておく。
そして、携帯型端末1001は、受信側装置603および送信側装置203に対する準備状態の処理が完了すると、定常状態の処理を開始する。すなわち、携帯型端末1001は、両通信のサイクル間隔Tcの間にサイクルデータサイズ分のデータの送受信が完了すると、各装置に対する通信を抑制し、その通信が抑制された期間、通信I/F部108の電源を切断する。
具体的には、定常状態では、まず、携帯型端末1001は、サイクル間隔Tcの開始時刻T121に、受信側装置603に対してデータパケットPdaを送信すると同時に、送信側装置203にACK単発送信要求に基づくACKパケットPabを送信する。次に、携帯型端末1001は、受信側装置603と送信側装置203とからパケットを受信するまで、それぞれRTTだけ時間がかかるため、通信I/F部108の電源を切断する。具体的には、携帯型端末1001は、受信側装置603に対してサイクル中に送信すべきデータパケットPdaが全て送信された時刻T122から、最初にデータパケットが到達する時刻T123まで、通信I/F部108の電源を切断する。なお、送信側装置203のRTTbの方が受信側装置603のRTTaよりも短いため、最初に到達するデータパケットは、送信側装置203から送信されたデータパケットPdbである。つまり、携帯型端末1001は、受信側装置603のRTTaの期間と、送信側装置203のRTTbの期間とが重なる期間(時刻T122〜時刻T123)に通信I/F部108の電源を切断する。
その後、携帯型端末1001は、時刻T123に再度電源を投入し、送信したデータに対応するACKパケットPaaを受信側装置603から受信するとともに、サイクルデータサイズDcb分のデータパケットPdbを送信側装置203から受信する。その結果、時刻T125に、このサイクル間隔Tcで受信側装置603および送信側装置203との間で行われるべき通信が全て完了するので、携帯型端末1001は、時刻T125からサイクル間隔Tcの終了点である時刻T126までを送信抑制期間とし、その期間において通信I/F部108の電源を切断する。
ここまでで、TCPを用いた送信とTCPを用いた受信とを同時に動作させる場合の、1サイクルが完了する。携帯型端末1001は、時刻T126以降も次のサイクルにおいて上述と同様の処理を実行することで、省電力効果を向上させることができる。
なお、図36では、携帯型端末1001の省電力方法について、携帯型端末1001がTCPを用いた送信とTCPを用いた受信とを実行する場合を例に挙げて説明した。しかし、サイクル基準アプリケーションがどちらの通信アプリケーションプログラムになるかにかかわらず、a)TCPを用いた2つの送信処理を並列に実行する場合、b)TCPを用いた2つの受信処理を並列に実行する場合でも、本実施の形態における携帯型端末1001は間欠送受信処理により省電力効果を向上させることができる。以下に上記a)、b)について具体的に説明する。
a)携帯型端末1001がTCPを用いた2つの送信処理を並列に実行する場合は、携帯型端末1001は、サイクル間隔Tcを開始する時点で、2つの受信側装置に対してデータパケットを送信し、対応するACKパケットを受信する。
b)携帯型端末1001がTCPを用いた2つの受信処理を並列に実行する場合は、携帯型端末1001は、サイクル間隔Tcを開始する時点で、2つの送信側装置に対してACK単発送信要求に基づくACKパケットを送信し、サイクルデータサイズDc分のデータパケットを受信する。
このように、本実施の形態では、複数の通信アプリケーションプログラムが動作している携帯型端末においても、通信アプリケーションプログラムの同期をとりながら間欠送受信を行い、通信I/F部108の電源を切断する期間を定期的に設けることで、省電力効果を向上させることができる。
(実施の形態7)
本発明の実施の形態7に係る通信装置について説明する。本実施の形態では、間欠送受信処理に伴い通信I/F部108への電力供給を切り換えるだけでなく、他の構成要素の動作も切り換えることにより、省電力効果をさらに高める。
図37は、本実施の形態における通信装置を有する通信システムの一例を示す構成図である。
本実施の形態に係る通信システムは、通信装置たる携帯型無線装置1102と、携帯型端末1101とを備え、携帯型端末1101と携帯型無線装置1102は基地局を経由することなく無線で直接通信する。
携帯型無線装置1102は、通信品質と省電力効果のさらなる向上を両立して図った通信装置であって、無線通信デバイスを搭載した無線端末として構成されている。また、この携帯型無線装置1102は、実施の形態6の携帯型端末1001と同様にフロー制御付の通信を用いて、携帯型端末1101と通信する。本実施の形態では、この携帯型無線装置1102は、通信相手となる携帯型端末1101からのデータ取得の要求に対し、携帯型無線装置1102が記憶しているデータを送信する。なお、携帯型端末1101と携帯型無線装置1102との間の通信において、上位プロトコルでフロー制御付の通信を行っていれば、無線接続の方式は、Bluetooth(登録商標)や、無線LANのインフラストラクチャーモード、アドホックモードなどであってもよく、通信方式を限定しない。
図38は、本実施の形態における携帯型無線装置1102の具体的な構成を示す構成図である。
本実施の形態における携帯型無線装置1102は、通信アプリケーション部1011と、アプリ要求取得部1012と、パラメータ決定部1013と、抑制再開制御部1114と、電源制御部106と、通信制御部1117と、通信I/F部108と、RTT推定部1019と、記憶部1017とを備える。なお、本実施の形態において、実施の形態1〜6と同様の構成要素については、同一の参照符号を付して説明を省略する。つまり、本実施の形態における携帯型無線装置1102は、実施の形態6の抑制再開制御部1014の代わりに抑制再開制御部1114を備え、通信制御部1027の代わりに通信制御部1117を備え、さらに新規に記憶部1017を備えている。
記憶部1017は、通信アプリケーション部1011で利用するデータを記憶している。また、記憶部1017は、ハードディスクとキャッシュとモータとを備え、ハードディスクから読み出したデータをキャッシュに保存する。ハードディスクに記憶されているデータは、プラッタと呼ばれるディスク上に保存され、プラッタは、セクタとよばれる単位に分割されている。データの読み出しの際は、プラッタをモータで回転させてセクタの整数倍単位でデータの読み出しを行う。一方、キャッシュは、ディスクとは異なり、半導体メモリなどで構成され、モータを使用しない方式でデータを保存する。なお、記憶部1017は、抑制再開制御部1014からのデータ取得要求によりモータを起動して、ハードディスクからデータを読み出し、キャッシュに記憶すると同時に、キャッシュに記憶された必要分のデータのみを通信アプリケーション部1011に渡す。
抑制再開制御部1114は、間欠送受信処理を開始する際、携帯型無線装置1102が間欠送受信処理を行うことを通知する機能をさらに備える。間欠送受信処理は、通信相手が間欠送受信処理を行わない場合に省電力効果を高めることができる。そのため、携帯型無線装置1102は、間欠送受信処理を行う前に通信相手となる携帯型端末1101に対し、間欠送受信処理を行うことを通知し、その携帯型端末1101による間欠送受信処理を停止させる。
具体的には、抑制再開制御部1114は、通信制御部1117に、間欠送受信処理を行う旨を通知する。さらに、抑制再開制御部1114は、記憶部1017に対してデータ取得要求を行い、モータ起動のタイミングと間欠送受信処理のタイミングとを連動させる。
通信制御部1117は、抑制再開制御部1114から間欠送受信処理を行う旨を通知されると、TCPパケットに間欠送受信処理を行う設定を行う。具体的には、通信制御部1117は、携帯型端末1101との通信開始時のTCPの3WAYハンドシェイクの際に、TCPヘッダのオプションフィールドに新たに間欠送受信有効フラグを追加する。間欠送受信有効フラグが有効であるTCPパケットを受信した通信相手である携帯型端末1101は、間欠送受信処理を実施しない。
図39は、本実施の形態における携帯型無線装置1102と携帯型端末1101の定常状態での動作を示すシーケンス図である。なお、本実施の形態における初期状態および準備状態の処理は、実施の形態5と同様のため、説明を省略する。
抑制再開制御部1114は、定常状態では、サイクルが開始される時刻T131に、最初のデータパケットP1を送信し、さらにそのタイミングで記憶部1017に対してデータ取得要求を行う。これにより、記憶部1017は、キャッシュにサイクルデータサイズ分のデータを保持している場合には、そのデータを通信アプリケーション部1011に渡す。また、記憶部1017は、キャッシュにサイクルデータサイズ分のデータを保持していなければ、ハードディスクのモータを起動し、サイクルデータサイズの整数倍のデータをキャッシュにコピーすると同時に、サイクルデータサイズ分のデータを通信アプリケーション部1011に渡す。これにより、ハードディスクのモータの起動回数を減らして、モータ起動時の電力を抑制することができる。
携帯型無線装置1102は、このような処理を繰り返すことにより、通信アプリケーションプログラムが必要とする全てのデータを送信する。
このように、本実施の形態では、データを送信する所定のタイミングのみで、記憶部1017のモータを起動することにより、携帯型無線装置1102の省電力効果を高めることができる。また、間欠送受信処理を行う前に、間欠送受信処理を行う旨を通知することで、確実に省電力効果を高めることができる。
なお、携帯型無線装置1102は、携帯型のハードディスクや、携帯型の音楽記録再生機、携帯型の動画記録再生機などの、無線通信により記憶しているデータを送信する装置であってもよい。
また、本実施の形態では、データ送信のタイミングに常にモータを起動してもよく、一度のモータの起動で、複数回分のデータをキャッシュに記憶させ、モータの起動および停止回数を削減してもよい。
また、本実施の形態では、記憶部1017のモータと同期させて、間欠送受信処理を行ったが、セルラー系の通信手段を持つ携帯型端末の場合、その通信の送受信タイミングと同期させて、間欠送受信処理を実施してもよい。
また、本実施の形態では、間欠送受信のタイミングに記憶部1017におけるモータの処理を同期させたが、他の処理を同期させてもよく、CPU稼動時間が小さくなるように制御してもよい。
以上、本発明に係る通信装置について、実施の形態1〜7を用いて説明したが、本発明は、これらに限定されるものではない。
例えば、図5、図12、図14、図22、図25、図30、および図38に示す通信装置をそれぞれLSI(Large Scale Integration)などの半導体集積回路で構成してもよい。
また、実施の形態1〜7のそれぞれの特徴を組み合わせても本発明を実現することができる。
本発明の通信装置は、通信品質と省電力効果のさらなる向上を両立して図ることができるという効果を奏し、例えば、テレビやDVD(Digital Versatile Disk)プレーヤーなどの据え置き型の家電機器、携帯電話やPDA(Personal Digital Assistants)などの携帯機器、並びにパーソナルコンピュータなどに適用することができる。
図1は、従来の通信装置の動作を説明するための説明図である。
図2は、従来の他の通信装置の動作を説明するための説明図である。
図3は、本発明の実施の形態1における通信装置を有する通信システムの一例を示す構成図である。
図4は、同上の受信側装置である携帯型端末と送信側装置との基本的な処理の一例を示すシーケンス図である。
図5は、同上の携帯型端末の具体的な構成を示す構成図である。
図6Aは、同上のアプリ要求取得部が管理する性能パラメータ管理テーブルを示す図である。
図6Bは、同上のアプリ要求取得部が管理する他の性能パラメータ管理テーブルを示す図である。
図6Cは、同上のアプリ要求取得部が管理するさらに他の性能パラメータ管理テーブルを示す図である。
図7は、同上の間欠受信パラメータの決定ルールを示す図である。
図8は、同上のパラメータ決定部によって生成された間欠受信パラメータ管理テーブルの一例を示す図である。
図9は、同上の携帯型端末と送信側装置の定常状態での動作を示すシーケンス図である。
図10は、同上の携帯型端末の動作を示すフローチャートである。
図11は、同上の受信ウィンドウ(RWIN)=0のACKパケットが送信される動作を示すシーケンス図である。
図12は、本発明の実施の形態2における携帯型端末の具体的な構成を示す構成図である。
図13は、同上の携帯型端末と送信側装置の省電力方法を示すシーケンス図である。
図14は、本発明の実施の形態3における携帯型端末の具体的な構成を示す構成図である。
図15は、同上の携帯型端末の動作を示すフローチャートである。
図16は、同上のパケットロス検知処理の詳細を説明するための説明図である。
図17は、同上の再送誘発処理の詳細を説明するための説明図である。
図18は、同上のCWIN推定処理の詳細を説明するための説明図である。
図19は、同上のCWIN低下期間中の処理の詳細を示すフローチャートである。
図20は、同上のCWIN低下期間中において行われる間欠受信の1サイクルを示す図である。
図21は、本発明の実施の形態4における通信装置を有する通信システムの一例を示す構成図である。
図22は、同上の携帯型端末の具体的な構成を示す構成図である。
図23は、同上の受信側装置と携帯型端末と送信側装置の定常状態での動さを示すシーケンス図である。
図24は、本発明の実施の形態5における通信装置を有する通信システムの一例を示す構成図である。
図25は、同上の送信側装置である携帯型端末の具体的な構成を示す構成図である。
図26は、同上の携帯型端末と受信側装置の定常状態での動作を示すシーケンス図である。
図27は、同上の携帯型端末の動作を示すフローチャートである。
図28は、同上の携帯型端末と受信側装置の定常状態で、RTT間も電源切断を行う場合の動作を示すシーケンス図である。
図29は、本発明の実施の形態6における通信装置を有する通信システムの一例を示す構成図である。
図30は、同上の携帯型端末の具体的な構成を示す構成図である。
図31Aは、同上のアプリ要求取得部が管理するUDPに関する性能パラメータ管理テーブルを示す図である。
図31Bは、同上のアプリ要求取得部が管理するUDPに関する他の性能パラメータ管理テーブルを示す図である。
図32Aは、同上のアプリ要求取得部が管理するTCPに関する性能パラメータ管理テーブルを示す図である。
図32Bは、同上のアプリ要求取得部が管理するTCPに関する他の性能パラメータ管理テーブルを示す図である。
図33は、同上の携帯型端末と、UDPを用いた通信を行う送信側装置と、TCPを用いた通信を行う送信側装置との通信において、送信間隔とサイクル間隔が同期する場合における、定常状態での動作を示すシーケンス図である。
図34は、サイクル間隔と送信間隔とが異なる場合に抑制再開制御部がデータの送受信のタイミングの同期を取るための動作を示すフローチャートである。
図35は、同上の携帯型端末と、UDPを用いた通信を行う送信側装置と、TCPを用いた通信を行う送信側装置との通信において、送信間隔とサイクル間隔が同期しない場合における、定常状態での動作を示すシーケンス図である。
図36は、同上の携帯型端末と、TCPを用いた通信を行う受信側装置と、TCPを用いた通信を行う送信側装置との通信において、定常状態での動作を示すシーケンス図である。
図37は、本発明の実施の形態7における通信装置を有する通信システムの一例を示す構成図である。
図38は、同上の携帯型無線装置の具体的な構成を示す構成図である。
図39は、同上の携帯型無線装置と携帯型端末の定常状態での動作を示すシーケンス図である。
符号の説明
101 通信アプリケーション部
102 アプリ要求取得部
103 パラメータ決定部
104 抑制再開制御部
106 電源制御部
107 通信制御部
108 通信I/F部
202 無線基地局
203 送信側装置
204 インターネット(WAN)
211、212 携帯型端末(通信装置)