無線通信装置
【課題】輻輳回避中の処理から輻輳回避解除中の処理へ適切なタイミングで移行できる無線通信装置を提供すること。
【解決手段】携帯電話機1は、無線によりデータ送信する通信部40と、ネットワークの輻輳を検出したときに、当該輻輳を回避するため、送信ウィンドウサイズを当該輻輳の検出前より縮小した後、徐々に拡大するよう制御するECN制御部31と、輻輳回避中であれば制御方法を輻輳回避モードとし、輻輳回避中でなければ制御方法を通常モードとするトークン制御部32と、輻輳を検出した時点での送信ウィンドウサイズを第1の値として記憶する記憶部50と、を有し、ECN制御部31は、輻輳を検出すると、当該輻輳の回避を開始したことをトークン制御部32へ通知し、当該輻輳を検出した後、送信ウィンドウサイズが第1の値に基づいて特定される第2の値になると、当該輻輳の回避が終了したことをトークン制御部32へ通知する。
【解決手段】携帯電話機1は、無線によりデータ送信する通信部40と、ネットワークの輻輳を検出したときに、当該輻輳を回避するため、送信ウィンドウサイズを当該輻輳の検出前より縮小した後、徐々に拡大するよう制御するECN制御部31と、輻輳回避中であれば制御方法を輻輳回避モードとし、輻輳回避中でなければ制御方法を通常モードとするトークン制御部32と、輻輳を検出した時点での送信ウィンドウサイズを第1の値として記憶する記憶部50と、を有し、ECN制御部31は、輻輳を検出すると、当該輻輳の回避を開始したことをトークン制御部32へ通知し、当該輻輳を検出した後、送信ウィンドウサイズが第1の値に基づいて特定される第2の値になると、当該輻輳の回避が終了したことをトークン制御部32へ通知する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、トラフィック制御を行う無線通信装置に関する。
【背景技術】
【0002】
従来、PC(Personal Computer)等の外部電子機器に接続されて、又は単独で無線通信を行う無線通信装置が知られている。また、このような無線通信装置において、ネットワークのリソースを使いすぎないように、通信速度(スループット)を制御するトークンバケット方式と呼ばれるトラフィック制御方法がある。
【0003】
トークンバケット機構は、入力されたパケットを蓄積するパケットバッファと、トークンを蓄積するトークンバケットとを備える。トークンバケットに規定量のトークンが溜まるとパケットバッファからパケットが出力され、トークンバケットのトークンが減少する。このように、外部ネットワークへ出力されるパケットのスループットは、単位時間当たりにトークンバケットにトークンが補充される量(トークンレート)によって制御される。このトークンレートは、所定のパラメータとネットワーク環境によって動的に変化し、ネットワークが混雑している時は低く、空いている時は高く調整される(例えば、特許文献1参照)。
【0004】
また、TCP(Transmission Control Protocol)の輻輳制御方法の1つにECN(Explicit Congestion Notification)がある。ECNは、ルータが輻輳を検出し、輻輳情報をTCP送信者に通知することで、TCP送信者が送信速度を制限して輻輳を回避する方法である。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−189592号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、トラフィック制御(トークンバケット)と輻輳制御(ECN)とが競合した場合、トラフィック制御の遅延等のため、輻輳制御による輻輳回避の効果をトラフィック制御が打ち消してしまう場合がある。そこで、トラフィック制御において、輻輳回避動作の開始と終了とを検出し、輻輳回避中の処理と輻輳回避解除中の処理とを切り替えられることが望ましい。
【0007】
しかしながら、外部ネットワークからの通知により輻輳の発生は検出できても、輻輳制御による輻輳回避動作の終了タイミング、すなわち輻輳回避解除中の処理へ移行するタイミングを検出することは難しかった。
【0008】
本発明は、輻輳回避中の処理から輻輳回避解除中の処理へ適切なタイミングで移行できる無線通信装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る無線通信装置は、無線によりネットワークへデータ送信する通信部と、前記ネットワークの輻輳を検出したときに、当該輻輳を回避するため、送信ウィンドウサイズを当該輻輳の検出前より縮小した後、徐々に拡大するよう制御する輻輳制御部と、前記輻輳制御部において輻輳の回避中であるか否かを判定し、回避中であれば、前記通信部による通信速度の制御方法を輻輳回避モードとし、回避中でなければ、当該制御方法を通常モードとするトラフィック制御部と、前記輻輳制御部が輻輳を検出した時点での送信ウィンドウサイズを第1の値として記憶する記憶部と、を有し、前記輻輳制御部は、輻輳を検出すると、当該輻輳の回避を開始したことを前記トラフィック制御部へ通知し、当該輻輳を検出した後、前記送信ウィンドウサイズが前記記憶部に記憶されている前記第1の値に基づいて特定される第2の値になると、当該輻輳の回避が終了したことを前記トラフィック制御部へ通知する。
【0010】
また、前記第2の値は、前記第1の値より小さく、前記輻輳制御部により縮小された時点での前記送信ウィンドウサイズよりも大きい値であることが好ましい。
【0011】
また、前記トラフィック制御部は、前記通常モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードに切り替え、前記輻輳回避モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードを維持することが好ましい。
【0012】
また、前記輻輳制御部は、前記ネットワークにおいて輻輳が発生したことを示すデータパケットを受信したことに応じて、当該輻輳を検出することが好ましい。
【0013】
本発明に係る無線通信装置は、ネットワークの輻輳を検出したときに所定の輻輳回避動作を実行する輻輳制御機構により提供されたデータを、無線により当該ネットワークへ送信する通信部と、前記ネットワークの輻輳を検出すると共に、前記輻輳制御機構において輻輳の回避中であるか否かを判定し、回避中であれば、前記通信部による通信速度の制御方法を輻輳回避モードとし、回避中でなければ、当該制御方法を通常モードとするトラフィック制御部と、前記トラフィック制御部により前記ネットワークの輻輳を検出したとき、前回に輻輳を検出してからの経過時間である第1の時間を記憶する記憶部と、を有し、前記トラフィック制御部は、輻輳を検出すると、前記輻輳制御機構が当該輻輳の回避を開始したと判定し、当該輻輳を検出した後、前記記憶部に記憶されている前記第1の時間に基づいて特定される第2の時間が経過すると、当該輻輳の回避が終了したと判定する。
【0014】
また、前記第2の時間は、前記第1の時間より短い時間であることが好ましい。
【0015】
また、前記トラフィック制御部は、前記通常モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードに切り替え、前記輻輳回避モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードを維持することが好ましい。
【0016】
また、前記トラフィック制御部は、前記ネットワークにおいて輻輳が発生したことを示すデータパケットを受信したことに応じて、当該輻輳を検出することが好ましい。
【0017】
また、本発明に係る無線通信装置は、前記輻輳制御機構を有する外部電子機器に接続され、前記通信部は、当該外部電子機器から受信したデータを前記ネットワークへ転送することが好ましい。
【発明の効果】
【0018】
本発明によれば、無線通信装置のトラフィック制御において、輻輳回避解除中の処理へ適切なタイミングで移行できる。
【図面の簡単な説明】
【0019】
【図1】第1実施形態に係る携帯電話機の機能を示すブロック図である。
【図2】第1実施形態に係るECNによる輻輳制御のシーケンス図である。
【図3】第1実施形態に係る輻輳ウィンドウサイズの時間変化示す図である。
【図4】第1実施形態に係るトークン制御部における上りデータフローの構成を示すブロック図である。
【図5】第1実施形態に係る輻輳ウィンドウサイズの時間変化と、トークン制御部におけるモードの時間変化とを示す図である。
【図6】第1実施形態に係るトークン制御部における状態の遷移パターンを示す図である。
【図7】第1実施形態に係るECN制御部とトークン制御部の処理の流れを示すシーケンス図である。
【図8】第2実施形態に係るカード端末及びPCの機能を示すブロック図である。
【図9】第2実施形態に係る輻輳ウィンドウサイズの時間変化と、トークン制御部におけるモードの時間変化とを示す図である。
【図10】第2実施形態に係るトークン制御部における状態の遷移パターンを示す図である。
【図11】第2実施形態に係るトークン制御部の処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【0020】
<第1実施形態>
以下、本発明の第1実施形態について説明する。なお、本実施形態では、無線通信装置の一例として、携帯電話機1を説明する。携帯電話機1は、例えば、ブラウザやメーラ等のアプリケーションにより、TCPのデータ送受信を行う。
【0021】
図1は、本実施形態に係る携帯電話機1の機能を示すブロック図である。
携帯電話機1は、操作部10と、表示部20と、制御部30と、通信部40と、アンテナ41と、記憶部50と、音声部60と、を備える。
【0022】
制御部30は、携帯電話機1の全体を制御しており、例えば、表示部20、通信部40、音声部60等に対して所定の制御を行う。また、制御部30は、操作部10等から入力を受け付けて、各種処理を実行する。そして、制御部30は、処理実行の際には、記憶部50を制御し、各種プログラム及びデータの読み出し、並びにデータの書き込みを行う。
【0023】
さらに、制御部30は、ECN制御部31(輻輳制御部)と、トークン制御部32(トラフィック制御部)と、を備え、これらの処理により、通信部40から外部ネットワークへ送信されるデータのスループットを調整する機能を有する。
【0024】
ECN制御部31は、外部ネットワークにおける輻輳の発生を示すデータ(後述のECEフラグ)の有無に基づいて、携帯電話機1のアプリケーションから送出するデータパケットの送信レートを、輻輳ウィンドウサイズ(送信ウィンドウサイズ)により調整する。
【0025】
図2は、本実施形態に係るECNによる輻輳制御のシーケンス図である。この例では、ルータを介して、TCP送信者(携帯電話機1)とTCP受信者とが通信を行っている。
【0026】
ルータは、転送待ちのパケットを蓄積しておくバッファの使用量が一定の閾値を超えると、ネットワークが輻輳していると判断する。ルータは、ネットワークが輻輳していると判断すると、パケットのIPヘッダのToSフィールドに、輻輳を経験していることを示すCEフラグを立てて、パケットをTCP受信者へ転送する(ステップS1)。
【0027】
TCP受信者は、IPヘッダにCEフラグが立っているパケットを受信した場合、TCPヘッダのECE(ECN−Echo)フラグを立ててTCP送信者に確認応答パケット(ACK)を送信する。これは、TCP送信者からTCPヘッダのCWR(Congestion Window Reduced)フラグが立っているパケットを受信するまで続けられる(ステップS2)。
【0028】
ECN制御部31は、TCPヘッダにECEフラグが立っているパケットを受信した場合、輻輳が発生していると判断する。そして、ECN制御部31は、輻輳ウィンドウサイズをスロースタートの閾値(ssthresh:Slow Start Threshold)まで減少させて送信レートを下げ、以降に送信するパケットのTCPヘッダにCWRフラグを立てて送信する(ステップS3)。
【0029】
TCP受信者は、TCPヘッダにCWRフラグが立っているパケットを受信すると、確認応答パケットにECEフラグを立てることを停止する(ステップS4)。
【0030】
ここで、ECN制御部31のフロー制御方法であるスロースタートによる輻輳ウィンドウサイズの調整方法を説明する。
図3は、本実施形態に係るECN制御部31の制御により調整される輻輳ウィンドウサイズの時間変化示す図である。
【0031】
輻輳ウィンドウサイズは、ACKを待たずに一度に送信できるデータサイズであり、MSS(Maximum Segment Size)、すなわち1パケットに収納できるデータの最大サイズの単位で制御される。ECN制御部31は、TCP受信者から通知された受信ウィンドウサイズを上限に、値を増減させながら、送信可能なデータサイズを決定する。
【0032】
まず、TCP通信開始時には、ECN制御部31は、輻輳ウィンドウサイズを「MSS×1」で初期化する。つまり、ECN制御部31は、TCP送信開始時に1パケット分のデータを送信してACKの受信を待つ。その後、ECN制御部31は、ACKを受信する度に、「MSS×ACK受信個数」分ずつ輻輳ウィンドウサイズを増加させていく(スロースタートモード)。つまり、理想的な環境下では、スロースタートモード中の輻輳ウィンドウサイズは、指数的に増加していく。
【0033】
時刻t1において、ECN制御部31は、輻輳を検出すると、
ssthresh=輻輳検出時の輻輳ウィンドウサイズ÷2 ・・・(1)
によりssthreshの値を更新し、この値を新たな輻輳ウィンドウサイズとして設定する。
【0034】
ここで、ECN制御部31は、輻輳ウィンドウの増分の切り替えを行う。具体的には、ECN制御部31は、ACKを受信する度に、「MSS×1÷輻輳ウィンドウサイズ」分ずつ輻輳ウィンドウサイズを増加させていく。すなわち、ECN制御部31が輻輳ウィンドウサイズ分のデータパケットを送出後、これら全てのパケットに対してACKを受信すれば、輻輳ウィンドウサイズは、「MSS×1」分ずつ増加する。つまり、理想的な環境下では、輻輳回避動作中の輻輳ウィンドウサイズは、線形的に増加していく。
【0035】
時刻t2において、ECN制御部31は、輻輳回避動作中に輻輳を検出すると、式(11)に従ってssthreshを更新し、輻輳ウィンドウサイズの値も更新後のssthreshの値に更新する。ECN制御部31は、以降、同様の処理を繰り返す。
【0036】
なお、ECNは、TCP送信者、TCP受信者及びルータの全ての構成要素にこの機能が実装されている必要がある。したがって、構成要素の1つでも非実装の場合には、ECN制御部31がルータから輻輳の発生を示すECEフラグを受信できない。この場合、ECN制御部31は、同一のACK(重複ACK)を複数回(例えば、3回)受信すると、輻輳が発生していると判断する。
【0037】
トークン制御部32は、ECN制御部31で制御される輻輳ウィンドウサイズに従って送出されるデータパケットを、一時的に蓄積し、トークンバケット方式と呼ばれるトラフィック制御により、通信部40を介して外部ネットワークへ送信されるデータのスループットを調整する。
【0038】
図4は、本実施形態に係るトークン制御部32における上りデータフローの構成を示すブロック図である。
【0039】
まず、外部ネットワークへ送信すべきデータパケットは、トークン制御部32へ入力され、パケットバッファ321に蓄えられる。また、一定(例えば、30msec)間隔で、パケット送出用のトークンバケット322にトークンが追加される。
【0040】
トークン制御部32は、充分な量のトークンがトークンバケット322にあれば、パケットバッファ321に蓄えられているパケットを、通信部40を介して外部ネットワークへ出力し、トークンバケット322のトークンを減少させる。また、トークンバケット322のトークンがなくなると、トークンが溜まるまでパケットは出力されず、パケットバッファ321に溜まり続ける。
【0041】
つまり、トークン制御部32は、このトークンバケット322へトークンを追加するトークンレートを制御することにより、外部ネットワークへ送信されるデータのスループットを調整する。
【0042】
ここで、トークン制御部32は、ECN制御部31による輻輳制御との競合によりスループットが低下することを抑制するため、トークンレートの算出方法等、制御内容の異なる2種類のモードを設けている。すなわち、トークン制御部32は、ECN制御部31がデータパケットの送信レートを抑制している輻輳回避状態では輻輳回避モードとし、その他の状態(輻輳回避解除状態)では通常モードとして、処理内容を切り替える。なお、切り替え処理の詳細は後述する。
【0043】
図1に戻り、通信部40は、所定の使用周波数帯(例えば、2GHz帯や800MHz帯等)で外部装置(基地局)と通信を行う。そして、通信部40は、アンテナ41より受信した信号を復調処理し、処理後の信号を制御部30に供給し、また、制御部30から供給された信号を変調処理し、アンテナ41から外部装置に送信する。
【0044】
記憶部50は、例えば、ワーキングメモリを含み、制御部30による演算処理に利用される。また、本実施形態に係る各種プログラム等を記憶する。さらに、記憶部50は、ECN制御部31が外部ネットワークの輻輳を検出した時点での輻輳ウィンドウサイズ(第1の値)、ssthresh、又は後述の輻輳回避の終了判定に用いられる閾値(cathresh:Congestion Avoidance Threshold、第2の値)を記憶する。
【0045】
音声部60は、制御部30の制御に従って、通信部40から供給された信号に対して所定の音声処理を行い、処理後の信号をレシーバ(図示せず)に出力する。レシーバは、音声部60から供給された信号を外部に出力する。なお、この信号は、レシーバに代えて、又はレシーバと共に、スピーカ(図示せず)から出力されるとしてもよい。
【0046】
また、音声部60は、制御部30の制御に従って、マイク(図示せず)から入力された信号を処理し、処理後の信号を通信部40に出力する。通信部40は、音声部60から供給された信号に所定の処理を行い、処理後の信号をアンテナ41より出力する。
【0047】
以下、上述の輻輳回避モードと通常モードとの切り替えに関して、ECN制御部31及びトークン制御部32の処理内容を詳述する。トークン制御部32は、上述の輻輳回避モードと通常モードとの切り替えタイミングを、ECN制御部31から通知を受けることより判定する。
【0048】
図5は、本実施形態に係る輻輳ウィンドウサイズの時間変化と、トークン制御部32におけるモードの時間変化とを示す図である。
【0049】
時刻t3において、ECN制御部31は、外部ネットワークの輻輳を検出し、輻輳ウィンドウサイズを「z」から「0.5z」へ変更する。このとき、ECN制御部31は、トークン制御部32へ、輻輳回避を開始したことを通知する。トークン制御部32は、この開始通知を受けると、ECN制御部31が輻輳回避中であると判定し、輻輳回避モードに遷移して、輻輳回避動作と競合時の処理を実行する。
【0050】
このとき、ECN制御部31は、輻輳を検出した時点での輻輳ウィンドウサイズ(z)に基づいて、
cathresh=輻輳ウィンドウサイズ×α (0.5<α<1) ・・・(2)
により、輻輳回避の終了判定閾値であるcathreshの値を算出する。ここで、cathreshは、輻輳を検出した時点での輻輳ウィンドウサイズ(=z)よりも小さく、ssthresh(=0.5z)よりも大きい値となる。
【0051】
その後、ECN制御部31は、輻輳ウィンドウサイズを徐々に増加させる。
時刻t4において、ECN制御部31は、輻輳ウィンドウサイズがcathresh以上になったことを検出する。すると、ECN制御部31は、トークン制御部32へ、輻輳回避を終了したことを通知する。トークン制御部32は、この終了通知を受けると、ECN制御部31が輻輳回避中でないと判定し、輻輳回避モードを解除して通常モードに遷移して、輻輳回避動作と競合しない通常の処理を実行する。
【0052】
なお、トークン制御部32は、輻輳回避モードの間に、さらに輻輳回避の開始通知を受けた場合には、輻輳回避モードを維持する。
【0053】
ここで、式(2)のαは、輻輳回避の開始から終了までの時間が短くなり過ぎないように(0.5付近にならないように)、また、輻輳回避モード中にさらに輻輳回避の開始通知を受けることが極力ないように(1付近にならないように)、「0.75」付近であることが好ましい。
【0054】
図6は、本実施形態に係るトークン制御部32における状態(モード)の遷移パターンを示す図である。
【0055】
トークン制御部32は、ECN制御部31から輻輳回避の開始通知を受けたとき、通常モードにあれば輻輳回避モードに遷移し、輻輳回避モードにあれば現在のモードを維持する。また、トークン制御部32は、ECN制御部31から輻輳回避の終了通知を受けたとき、輻輳回避モードにあれば輻輳回避モードを解除して通常モードに遷移する。なお、トークン制御部32は、ECN制御部31から輻輳回避の終了通知を受けたときは、以前に必ず開始通知を受けて輻輳回避モードになっているはずなので、通常モードであることはない。
【0056】
図7は、本実施形態に係るECN制御部31とトークン制御部32の処理の流れを示すシーケンス図である。
【0057】
トークン制御部32が通常モードであるとき(S11)、ECN制御部31がECNの輻輳回避開始通知、すなわちTCPヘッダのECEフラグを検出すると(S12)、ECN制御部31からトークン制御部32へ、輻輳回避の開始が通知される(S13)。
【0058】
輻輳回避の開始通知を受けると、トークン制御部32は、輻輳回避モードへ遷移する(S14)。また、ECN制御部31は、輻輳ウィンドウサイズを一旦ssthreshに減少させた後(S15)、徐々に増加させる。
【0059】
その後、輻輳ウィンドウサイズが増加し、cathresh以上になると(S16)、ECN制御部31からトークン制御部32へ、輻輳回避の終了が通知される(S17)。そして、トークン制御部32は、輻輳回避の終了通知を受けると、輻輳回避モードを解除して通常モードへ遷移する(S18)。
【0060】
このように、本実施形態によれば、携帯電話機1は、ECN制御部31により輻輳を検出した時点で輻輳回避の開始と判定する。また、携帯電話機1は、輻輳検出時の輻輳ウィンドウサイズに基づいて、輻輳回避の終了判定閾値(cathresh)を算出し、輻輳ウィンドウサイズがssthreshからcathreshまで増加すると、輻輳回避の終了と判定する。したがって、トークン制御部32において、判定結果の通知を受けることにより、輻輳回避モードと通常モードとを、適切なタイミングで遷移できる。
【0061】
なお、本実施形態では、無線通信装置を携帯電話機1として説明したが、音声通話機能を持たないデータ専用端末や、PHS(登録商標;Personal Handy phone System)、PDA(Personal Digital Assistant)の他、ゲーム機、ナビゲーション装置、無線通信機能が搭載されたPC等、様々な装置であってよい。
【0062】
<第2実施形態>
以下、本発明の第2実施形態について説明する。本実施形態では、無線通信装置の一例として、カード端末1aを説明する。カード端末1aは、PC2(外部電子機器)に接続され、PC2から送出されるデータパケットを、通信部40により外部ネットワークへ転送する。なお、第1実施形態と共通する構成については同一の符号を付し、説明を省略又は簡略化する。
【0063】
図8は、本実施形態に係るカード端末1a及びPC2の機能を示すブロック図である。
カード端末1aは、制御部30aと、通信部40と、アンテナ41と、記憶部50aと、を備える。
【0064】
また、PC2は、ECN制御部31a(輻輳制御機構)を備え、ブラウザやメーラ等のアプリケーションにより、TCPのデータ送受信を行う。
ECN制御部31aは、第1実施形態のECN制御部31と同様の機能を有し、外部ネットワークにおける輻輳の発生を示すデータ(TCPヘッダのECEフラグ)の有無に基づいて、PC2のアプリケーションから送出するデータパケットの送信レートを、輻輳ウィンドウサイズ(送信ウィンドウサイズ)により調整する。
【0065】
制御部30aは、カード端末1aの全体を制御しており、各部に対して所定の制御を行う。また、制御部30aは、PC2等から入力を受け付けて、各種処理を実行する。そして、制御部30aは、処理実行の際には、記憶部50aを制御し、各種プログラム及びデータの読み出し、並びにデータの書き込みを行う。
【0066】
さらに、制御部30aは、トークン制御部32aを備える。トークン制御部32aは、第1実施形態のトークン制御部32と同様に、トークンバケット方式により、通信部40から外部ネットワークへ送信されるデータのスループットを調整する機能を有する。
【0067】
記憶部50aは、例えば、ワーキングメモリを含み、制御部30aによる演算処理に利用される。また、本実施形態に係る各種プログラム等を記憶する。さらに、記憶部50aは、トークン制御部32により外部ネットワークの輻輳を検出したとき、前回に輻輳を検出してからの経過時間である輻輳回避モード時間(第1の時間)、又は後述の輻輳回避の終了判定に用いられる輻輳回避タイマの満了時間を記憶する。
【0068】
以下、輻輳回避モードと通常モードとの切り替えに関して、トークン制御部32aの処理内容を詳述する。トークン制御部32aは、外部ネットワークにおける輻輳の発生を示すデータ(TCPヘッダのECEフラグ)を検出したことに応じて、輻輳回避モードへ切り替え、後述の輻輳回避タイマの満了に応じて、輻輳回避モードの解除を行う。
【0069】
図9は、本実施形態に係る輻輳ウィンドウサイズの時間変化と、トークン制御部32aにおけるモードの時間変化とを示す図である。
【0070】
時刻t5において、トークン制御部32aは、外部ネットワークにおける輻輳の発生を検出すると、ECN制御部31aが輻輳回避中であると判定し、輻輳回避モードに遷移して、輻輳回避動作と競合時の処理を実行する。このとき、ECN制御部31aは、輻輳ウィンドウサイズをssthreshまで減少させ、その後徐々に増加させている。また、トークン制御部32aは、輻輳回避モードへ遷移すると、現在の時刻t5を記憶部50aに記憶する。
【0071】
時刻t6において、トークン制御部32aは、再度、輻輳の発生を検出し、輻輳回避モードへ遷移する。このとき、トークン制御部32aは、現在の時刻t6を記憶部50aに記憶すると共に、前回に輻輳を検出した時刻t5から現在の時刻t6までの経過時間である輻輳回避モード時間s(=t6−t5)を算出する。
【0072】
また、トークン制御部32aは、輻輳回避モード時間(s)に基づいて、
輻輳回避タイマ満了時間
=輻輳回避モード時間(s)×β (0<β<1) ・・・(3)
により、輻輳回避の終了判定に用いる輻輳回避タイマ満了時間を算出する。ここで、輻輳回避タイマ満了時間は、0よりも大きく、輻輳回避モード時間(s)よりも小さい値となる。この輻輳回避タイマ満了時間は、輻輳回避の終了までの時間を示し、輻輳回避モード時間が前回と近似していることを前提とする。
【0073】
さらに、トークン制御部32aは、時刻t6において輻輳の発生を検出し、輻輳回避モードへ遷移すると、輻輳回避タイマによる計時を開始する。
時刻t7において、トークン制御部32aは、輻輳回避タイマが満了した、すなわち時刻t6から輻輳回避タイマ満了時間が経過したことを検出する。すると、トークン制御部32aは、ECN制御部31aが輻輳回避中でないと判定し、輻輳回避モードを解除して通常モードに遷移して、輻輳回避動作と競合しない通常の処理を実行する。
【0074】
なお、トークン制御部32は、輻輳回避モードの間に、さらに輻輳回避の開始通知を受けた場合には、輻輳回避モードを維持する。
【0075】
ここで、式(3)のβは、輻輳回避の開始から終了までの時間が短くなり過ぎないように(0付近にならないように)、また、輻輳回避モード中にさらに輻輳回避の開始通知を受けることが極力ないように(1付近にならないように)、「0.5」付近であることが好ましい。
【0076】
図10は、本実施形態に係るトークン制御部32aにおける状態(モード)の遷移パターンを示す図である。
【0077】
トークン制御部32aは、外部ネットワーク(ルータ)から輻輳回避の開始通知(TCPヘッダのECEフラグ)を受けたとき、通常モードにあれば、輻輳回避タイマをスタートすると共に輻輳回避モードに遷移する。一方、輻輳回避モードにあれば、トークン制御部32aは、輻輳回避タイマをリスタートすると共に現在の状態を維持する。
【0078】
また、トークン制御部32は、輻輳回避タイマが満了したとき、輻輳回避モードにあれば、輻輳回避タイマを停止すると共に輻輳回避モードを解除して通常モードに遷移する。なお、トークン制御部32は、輻輳回避タイマがスタートしたとき輻輳回避モードになっているはずなので、輻輳回避タイマが満了したときに通常モードであることはない。
【0079】
図11は、本実施形態に係るトークン制御部32の処理の流れを示すシーケンス図である。
【0080】
トークン制御部32aが通常モードであるとき(S21)、トークン制御部32aがECNの輻輳回避開始通知、すなわちTCPヘッダのECEフラグを検出すると(S22)、トークン制御部32aは、ECN制御部31aにおける輻輳回避動作が開始されると判定する。
【0081】
すると、トークン制御部32aは、輻輳回避モード時間及び輻輳回避タイマ満了時間を算出し、輻輳回避タイマをスタートすると共に(S23)、輻輳回避モードへ遷移する(S24)。
【0082】
その後、時間が経過し、輻輳回避タイマが満了すると(S25)、トークン制御部32aは、輻輳回避モードを解除して通常モードへ遷移する(S26)。
【0083】
このように、本実施形態によれば、カード端末1aは、トークン制御部32aにより輻輳を検出した時点で輻輳回避の開始と判定する。また、カード端末1aは、前回の輻輳検出時刻から今回の輻輳検出時刻までの時間に基づいて、輻輳回避タイマ満了時間を算出し、輻輳検出時刻からの経過時間が輻輳回避タイマ満了時間になると、輻輳回避の終了と判定する。したがって、トークン制御部32aにおいて、輻輳の発生及びタイマの満了を検出することにより、カード端末1a側にECN制御部31を備えていない場合においても、輻輳回避モードと通常モードとを、適切なタイミングで遷移できる。
【0084】
なお、本実施形態では、無線通信装置を、PC等に対してUSBやPCMCIA等で直接接続されて無線通信を行うカード端末1aとして説明したが、車載コンピュータに接続される通信モジュールであってよい。また、無線通信装置は、データ通信モデムとして利用される携帯電話機、PHS(登録商標)やPDA等、様々な装置であってもよい。
【0085】
また、ECN制御部31aを無線通信装置側に有している場合であっても同様の処理を行ってもよい。この場合の無線通信装置は、第1実施形態と同様の様々な装置であってよい。
【0086】
以上、好適な実施形態について説明したが、本発明は上述した実施形態に限定されることなく種々の形態で実施することができる。また、上述の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、前述のものに限定されない。
【0087】
上述のECN制御部31(又は31a)によるECN、及びトークン制御部32(又は32a)によるトークンバケットは、それぞれ輻輳制御及びトラフィック制御の一例であって、本発明は、これには限られない。
【符号の説明】
【0088】
1 携帯電話機(無線通信装置)
1a カード端末(無線通信装置)
10 操作部
2 PC
20 表示部
30、30a 制御部
31、31a ECN制御部(輻輳制御部)
32、32a トークン制御部(トラフィック制御部)
40 通信部
41 アンテナ
50、50a 記憶部
60 音声部
【技術分野】
【0001】
本発明は、トラフィック制御を行う無線通信装置に関する。
【背景技術】
【0002】
従来、PC(Personal Computer)等の外部電子機器に接続されて、又は単独で無線通信を行う無線通信装置が知られている。また、このような無線通信装置において、ネットワークのリソースを使いすぎないように、通信速度(スループット)を制御するトークンバケット方式と呼ばれるトラフィック制御方法がある。
【0003】
トークンバケット機構は、入力されたパケットを蓄積するパケットバッファと、トークンを蓄積するトークンバケットとを備える。トークンバケットに規定量のトークンが溜まるとパケットバッファからパケットが出力され、トークンバケットのトークンが減少する。このように、外部ネットワークへ出力されるパケットのスループットは、単位時間当たりにトークンバケットにトークンが補充される量(トークンレート)によって制御される。このトークンレートは、所定のパラメータとネットワーク環境によって動的に変化し、ネットワークが混雑している時は低く、空いている時は高く調整される(例えば、特許文献1参照)。
【0004】
また、TCP(Transmission Control Protocol)の輻輳制御方法の1つにECN(Explicit Congestion Notification)がある。ECNは、ルータが輻輳を検出し、輻輳情報をTCP送信者に通知することで、TCP送信者が送信速度を制限して輻輳を回避する方法である。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−189592号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、トラフィック制御(トークンバケット)と輻輳制御(ECN)とが競合した場合、トラフィック制御の遅延等のため、輻輳制御による輻輳回避の効果をトラフィック制御が打ち消してしまう場合がある。そこで、トラフィック制御において、輻輳回避動作の開始と終了とを検出し、輻輳回避中の処理と輻輳回避解除中の処理とを切り替えられることが望ましい。
【0007】
しかしながら、外部ネットワークからの通知により輻輳の発生は検出できても、輻輳制御による輻輳回避動作の終了タイミング、すなわち輻輳回避解除中の処理へ移行するタイミングを検出することは難しかった。
【0008】
本発明は、輻輳回避中の処理から輻輳回避解除中の処理へ適切なタイミングで移行できる無線通信装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る無線通信装置は、無線によりネットワークへデータ送信する通信部と、前記ネットワークの輻輳を検出したときに、当該輻輳を回避するため、送信ウィンドウサイズを当該輻輳の検出前より縮小した後、徐々に拡大するよう制御する輻輳制御部と、前記輻輳制御部において輻輳の回避中であるか否かを判定し、回避中であれば、前記通信部による通信速度の制御方法を輻輳回避モードとし、回避中でなければ、当該制御方法を通常モードとするトラフィック制御部と、前記輻輳制御部が輻輳を検出した時点での送信ウィンドウサイズを第1の値として記憶する記憶部と、を有し、前記輻輳制御部は、輻輳を検出すると、当該輻輳の回避を開始したことを前記トラフィック制御部へ通知し、当該輻輳を検出した後、前記送信ウィンドウサイズが前記記憶部に記憶されている前記第1の値に基づいて特定される第2の値になると、当該輻輳の回避が終了したことを前記トラフィック制御部へ通知する。
【0010】
また、前記第2の値は、前記第1の値より小さく、前記輻輳制御部により縮小された時点での前記送信ウィンドウサイズよりも大きい値であることが好ましい。
【0011】
また、前記トラフィック制御部は、前記通常モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードに切り替え、前記輻輳回避モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードを維持することが好ましい。
【0012】
また、前記輻輳制御部は、前記ネットワークにおいて輻輳が発生したことを示すデータパケットを受信したことに応じて、当該輻輳を検出することが好ましい。
【0013】
本発明に係る無線通信装置は、ネットワークの輻輳を検出したときに所定の輻輳回避動作を実行する輻輳制御機構により提供されたデータを、無線により当該ネットワークへ送信する通信部と、前記ネットワークの輻輳を検出すると共に、前記輻輳制御機構において輻輳の回避中であるか否かを判定し、回避中であれば、前記通信部による通信速度の制御方法を輻輳回避モードとし、回避中でなければ、当該制御方法を通常モードとするトラフィック制御部と、前記トラフィック制御部により前記ネットワークの輻輳を検出したとき、前回に輻輳を検出してからの経過時間である第1の時間を記憶する記憶部と、を有し、前記トラフィック制御部は、輻輳を検出すると、前記輻輳制御機構が当該輻輳の回避を開始したと判定し、当該輻輳を検出した後、前記記憶部に記憶されている前記第1の時間に基づいて特定される第2の時間が経過すると、当該輻輳の回避が終了したと判定する。
【0014】
また、前記第2の時間は、前記第1の時間より短い時間であることが好ましい。
【0015】
また、前記トラフィック制御部は、前記通常モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードに切り替え、前記輻輳回避モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードを維持することが好ましい。
【0016】
また、前記トラフィック制御部は、前記ネットワークにおいて輻輳が発生したことを示すデータパケットを受信したことに応じて、当該輻輳を検出することが好ましい。
【0017】
また、本発明に係る無線通信装置は、前記輻輳制御機構を有する外部電子機器に接続され、前記通信部は、当該外部電子機器から受信したデータを前記ネットワークへ転送することが好ましい。
【発明の効果】
【0018】
本発明によれば、無線通信装置のトラフィック制御において、輻輳回避解除中の処理へ適切なタイミングで移行できる。
【図面の簡単な説明】
【0019】
【図1】第1実施形態に係る携帯電話機の機能を示すブロック図である。
【図2】第1実施形態に係るECNによる輻輳制御のシーケンス図である。
【図3】第1実施形態に係る輻輳ウィンドウサイズの時間変化示す図である。
【図4】第1実施形態に係るトークン制御部における上りデータフローの構成を示すブロック図である。
【図5】第1実施形態に係る輻輳ウィンドウサイズの時間変化と、トークン制御部におけるモードの時間変化とを示す図である。
【図6】第1実施形態に係るトークン制御部における状態の遷移パターンを示す図である。
【図7】第1実施形態に係るECN制御部とトークン制御部の処理の流れを示すシーケンス図である。
【図8】第2実施形態に係るカード端末及びPCの機能を示すブロック図である。
【図9】第2実施形態に係る輻輳ウィンドウサイズの時間変化と、トークン制御部におけるモードの時間変化とを示す図である。
【図10】第2実施形態に係るトークン制御部における状態の遷移パターンを示す図である。
【図11】第2実施形態に係るトークン制御部の処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【0020】
<第1実施形態>
以下、本発明の第1実施形態について説明する。なお、本実施形態では、無線通信装置の一例として、携帯電話機1を説明する。携帯電話機1は、例えば、ブラウザやメーラ等のアプリケーションにより、TCPのデータ送受信を行う。
【0021】
図1は、本実施形態に係る携帯電話機1の機能を示すブロック図である。
携帯電話機1は、操作部10と、表示部20と、制御部30と、通信部40と、アンテナ41と、記憶部50と、音声部60と、を備える。
【0022】
制御部30は、携帯電話機1の全体を制御しており、例えば、表示部20、通信部40、音声部60等に対して所定の制御を行う。また、制御部30は、操作部10等から入力を受け付けて、各種処理を実行する。そして、制御部30は、処理実行の際には、記憶部50を制御し、各種プログラム及びデータの読み出し、並びにデータの書き込みを行う。
【0023】
さらに、制御部30は、ECN制御部31(輻輳制御部)と、トークン制御部32(トラフィック制御部)と、を備え、これらの処理により、通信部40から外部ネットワークへ送信されるデータのスループットを調整する機能を有する。
【0024】
ECN制御部31は、外部ネットワークにおける輻輳の発生を示すデータ(後述のECEフラグ)の有無に基づいて、携帯電話機1のアプリケーションから送出するデータパケットの送信レートを、輻輳ウィンドウサイズ(送信ウィンドウサイズ)により調整する。
【0025】
図2は、本実施形態に係るECNによる輻輳制御のシーケンス図である。この例では、ルータを介して、TCP送信者(携帯電話機1)とTCP受信者とが通信を行っている。
【0026】
ルータは、転送待ちのパケットを蓄積しておくバッファの使用量が一定の閾値を超えると、ネットワークが輻輳していると判断する。ルータは、ネットワークが輻輳していると判断すると、パケットのIPヘッダのToSフィールドに、輻輳を経験していることを示すCEフラグを立てて、パケットをTCP受信者へ転送する(ステップS1)。
【0027】
TCP受信者は、IPヘッダにCEフラグが立っているパケットを受信した場合、TCPヘッダのECE(ECN−Echo)フラグを立ててTCP送信者に確認応答パケット(ACK)を送信する。これは、TCP送信者からTCPヘッダのCWR(Congestion Window Reduced)フラグが立っているパケットを受信するまで続けられる(ステップS2)。
【0028】
ECN制御部31は、TCPヘッダにECEフラグが立っているパケットを受信した場合、輻輳が発生していると判断する。そして、ECN制御部31は、輻輳ウィンドウサイズをスロースタートの閾値(ssthresh:Slow Start Threshold)まで減少させて送信レートを下げ、以降に送信するパケットのTCPヘッダにCWRフラグを立てて送信する(ステップS3)。
【0029】
TCP受信者は、TCPヘッダにCWRフラグが立っているパケットを受信すると、確認応答パケットにECEフラグを立てることを停止する(ステップS4)。
【0030】
ここで、ECN制御部31のフロー制御方法であるスロースタートによる輻輳ウィンドウサイズの調整方法を説明する。
図3は、本実施形態に係るECN制御部31の制御により調整される輻輳ウィンドウサイズの時間変化示す図である。
【0031】
輻輳ウィンドウサイズは、ACKを待たずに一度に送信できるデータサイズであり、MSS(Maximum Segment Size)、すなわち1パケットに収納できるデータの最大サイズの単位で制御される。ECN制御部31は、TCP受信者から通知された受信ウィンドウサイズを上限に、値を増減させながら、送信可能なデータサイズを決定する。
【0032】
まず、TCP通信開始時には、ECN制御部31は、輻輳ウィンドウサイズを「MSS×1」で初期化する。つまり、ECN制御部31は、TCP送信開始時に1パケット分のデータを送信してACKの受信を待つ。その後、ECN制御部31は、ACKを受信する度に、「MSS×ACK受信個数」分ずつ輻輳ウィンドウサイズを増加させていく(スロースタートモード)。つまり、理想的な環境下では、スロースタートモード中の輻輳ウィンドウサイズは、指数的に増加していく。
【0033】
時刻t1において、ECN制御部31は、輻輳を検出すると、
ssthresh=輻輳検出時の輻輳ウィンドウサイズ÷2 ・・・(1)
によりssthreshの値を更新し、この値を新たな輻輳ウィンドウサイズとして設定する。
【0034】
ここで、ECN制御部31は、輻輳ウィンドウの増分の切り替えを行う。具体的には、ECN制御部31は、ACKを受信する度に、「MSS×1÷輻輳ウィンドウサイズ」分ずつ輻輳ウィンドウサイズを増加させていく。すなわち、ECN制御部31が輻輳ウィンドウサイズ分のデータパケットを送出後、これら全てのパケットに対してACKを受信すれば、輻輳ウィンドウサイズは、「MSS×1」分ずつ増加する。つまり、理想的な環境下では、輻輳回避動作中の輻輳ウィンドウサイズは、線形的に増加していく。
【0035】
時刻t2において、ECN制御部31は、輻輳回避動作中に輻輳を検出すると、式(11)に従ってssthreshを更新し、輻輳ウィンドウサイズの値も更新後のssthreshの値に更新する。ECN制御部31は、以降、同様の処理を繰り返す。
【0036】
なお、ECNは、TCP送信者、TCP受信者及びルータの全ての構成要素にこの機能が実装されている必要がある。したがって、構成要素の1つでも非実装の場合には、ECN制御部31がルータから輻輳の発生を示すECEフラグを受信できない。この場合、ECN制御部31は、同一のACK(重複ACK)を複数回(例えば、3回)受信すると、輻輳が発生していると判断する。
【0037】
トークン制御部32は、ECN制御部31で制御される輻輳ウィンドウサイズに従って送出されるデータパケットを、一時的に蓄積し、トークンバケット方式と呼ばれるトラフィック制御により、通信部40を介して外部ネットワークへ送信されるデータのスループットを調整する。
【0038】
図4は、本実施形態に係るトークン制御部32における上りデータフローの構成を示すブロック図である。
【0039】
まず、外部ネットワークへ送信すべきデータパケットは、トークン制御部32へ入力され、パケットバッファ321に蓄えられる。また、一定(例えば、30msec)間隔で、パケット送出用のトークンバケット322にトークンが追加される。
【0040】
トークン制御部32は、充分な量のトークンがトークンバケット322にあれば、パケットバッファ321に蓄えられているパケットを、通信部40を介して外部ネットワークへ出力し、トークンバケット322のトークンを減少させる。また、トークンバケット322のトークンがなくなると、トークンが溜まるまでパケットは出力されず、パケットバッファ321に溜まり続ける。
【0041】
つまり、トークン制御部32は、このトークンバケット322へトークンを追加するトークンレートを制御することにより、外部ネットワークへ送信されるデータのスループットを調整する。
【0042】
ここで、トークン制御部32は、ECN制御部31による輻輳制御との競合によりスループットが低下することを抑制するため、トークンレートの算出方法等、制御内容の異なる2種類のモードを設けている。すなわち、トークン制御部32は、ECN制御部31がデータパケットの送信レートを抑制している輻輳回避状態では輻輳回避モードとし、その他の状態(輻輳回避解除状態)では通常モードとして、処理内容を切り替える。なお、切り替え処理の詳細は後述する。
【0043】
図1に戻り、通信部40は、所定の使用周波数帯(例えば、2GHz帯や800MHz帯等)で外部装置(基地局)と通信を行う。そして、通信部40は、アンテナ41より受信した信号を復調処理し、処理後の信号を制御部30に供給し、また、制御部30から供給された信号を変調処理し、アンテナ41から外部装置に送信する。
【0044】
記憶部50は、例えば、ワーキングメモリを含み、制御部30による演算処理に利用される。また、本実施形態に係る各種プログラム等を記憶する。さらに、記憶部50は、ECN制御部31が外部ネットワークの輻輳を検出した時点での輻輳ウィンドウサイズ(第1の値)、ssthresh、又は後述の輻輳回避の終了判定に用いられる閾値(cathresh:Congestion Avoidance Threshold、第2の値)を記憶する。
【0045】
音声部60は、制御部30の制御に従って、通信部40から供給された信号に対して所定の音声処理を行い、処理後の信号をレシーバ(図示せず)に出力する。レシーバは、音声部60から供給された信号を外部に出力する。なお、この信号は、レシーバに代えて、又はレシーバと共に、スピーカ(図示せず)から出力されるとしてもよい。
【0046】
また、音声部60は、制御部30の制御に従って、マイク(図示せず)から入力された信号を処理し、処理後の信号を通信部40に出力する。通信部40は、音声部60から供給された信号に所定の処理を行い、処理後の信号をアンテナ41より出力する。
【0047】
以下、上述の輻輳回避モードと通常モードとの切り替えに関して、ECN制御部31及びトークン制御部32の処理内容を詳述する。トークン制御部32は、上述の輻輳回避モードと通常モードとの切り替えタイミングを、ECN制御部31から通知を受けることより判定する。
【0048】
図5は、本実施形態に係る輻輳ウィンドウサイズの時間変化と、トークン制御部32におけるモードの時間変化とを示す図である。
【0049】
時刻t3において、ECN制御部31は、外部ネットワークの輻輳を検出し、輻輳ウィンドウサイズを「z」から「0.5z」へ変更する。このとき、ECN制御部31は、トークン制御部32へ、輻輳回避を開始したことを通知する。トークン制御部32は、この開始通知を受けると、ECN制御部31が輻輳回避中であると判定し、輻輳回避モードに遷移して、輻輳回避動作と競合時の処理を実行する。
【0050】
このとき、ECN制御部31は、輻輳を検出した時点での輻輳ウィンドウサイズ(z)に基づいて、
cathresh=輻輳ウィンドウサイズ×α (0.5<α<1) ・・・(2)
により、輻輳回避の終了判定閾値であるcathreshの値を算出する。ここで、cathreshは、輻輳を検出した時点での輻輳ウィンドウサイズ(=z)よりも小さく、ssthresh(=0.5z)よりも大きい値となる。
【0051】
その後、ECN制御部31は、輻輳ウィンドウサイズを徐々に増加させる。
時刻t4において、ECN制御部31は、輻輳ウィンドウサイズがcathresh以上になったことを検出する。すると、ECN制御部31は、トークン制御部32へ、輻輳回避を終了したことを通知する。トークン制御部32は、この終了通知を受けると、ECN制御部31が輻輳回避中でないと判定し、輻輳回避モードを解除して通常モードに遷移して、輻輳回避動作と競合しない通常の処理を実行する。
【0052】
なお、トークン制御部32は、輻輳回避モードの間に、さらに輻輳回避の開始通知を受けた場合には、輻輳回避モードを維持する。
【0053】
ここで、式(2)のαは、輻輳回避の開始から終了までの時間が短くなり過ぎないように(0.5付近にならないように)、また、輻輳回避モード中にさらに輻輳回避の開始通知を受けることが極力ないように(1付近にならないように)、「0.75」付近であることが好ましい。
【0054】
図6は、本実施形態に係るトークン制御部32における状態(モード)の遷移パターンを示す図である。
【0055】
トークン制御部32は、ECN制御部31から輻輳回避の開始通知を受けたとき、通常モードにあれば輻輳回避モードに遷移し、輻輳回避モードにあれば現在のモードを維持する。また、トークン制御部32は、ECN制御部31から輻輳回避の終了通知を受けたとき、輻輳回避モードにあれば輻輳回避モードを解除して通常モードに遷移する。なお、トークン制御部32は、ECN制御部31から輻輳回避の終了通知を受けたときは、以前に必ず開始通知を受けて輻輳回避モードになっているはずなので、通常モードであることはない。
【0056】
図7は、本実施形態に係るECN制御部31とトークン制御部32の処理の流れを示すシーケンス図である。
【0057】
トークン制御部32が通常モードであるとき(S11)、ECN制御部31がECNの輻輳回避開始通知、すなわちTCPヘッダのECEフラグを検出すると(S12)、ECN制御部31からトークン制御部32へ、輻輳回避の開始が通知される(S13)。
【0058】
輻輳回避の開始通知を受けると、トークン制御部32は、輻輳回避モードへ遷移する(S14)。また、ECN制御部31は、輻輳ウィンドウサイズを一旦ssthreshに減少させた後(S15)、徐々に増加させる。
【0059】
その後、輻輳ウィンドウサイズが増加し、cathresh以上になると(S16)、ECN制御部31からトークン制御部32へ、輻輳回避の終了が通知される(S17)。そして、トークン制御部32は、輻輳回避の終了通知を受けると、輻輳回避モードを解除して通常モードへ遷移する(S18)。
【0060】
このように、本実施形態によれば、携帯電話機1は、ECN制御部31により輻輳を検出した時点で輻輳回避の開始と判定する。また、携帯電話機1は、輻輳検出時の輻輳ウィンドウサイズに基づいて、輻輳回避の終了判定閾値(cathresh)を算出し、輻輳ウィンドウサイズがssthreshからcathreshまで増加すると、輻輳回避の終了と判定する。したがって、トークン制御部32において、判定結果の通知を受けることにより、輻輳回避モードと通常モードとを、適切なタイミングで遷移できる。
【0061】
なお、本実施形態では、無線通信装置を携帯電話機1として説明したが、音声通話機能を持たないデータ専用端末や、PHS(登録商標;Personal Handy phone System)、PDA(Personal Digital Assistant)の他、ゲーム機、ナビゲーション装置、無線通信機能が搭載されたPC等、様々な装置であってよい。
【0062】
<第2実施形態>
以下、本発明の第2実施形態について説明する。本実施形態では、無線通信装置の一例として、カード端末1aを説明する。カード端末1aは、PC2(外部電子機器)に接続され、PC2から送出されるデータパケットを、通信部40により外部ネットワークへ転送する。なお、第1実施形態と共通する構成については同一の符号を付し、説明を省略又は簡略化する。
【0063】
図8は、本実施形態に係るカード端末1a及びPC2の機能を示すブロック図である。
カード端末1aは、制御部30aと、通信部40と、アンテナ41と、記憶部50aと、を備える。
【0064】
また、PC2は、ECN制御部31a(輻輳制御機構)を備え、ブラウザやメーラ等のアプリケーションにより、TCPのデータ送受信を行う。
ECN制御部31aは、第1実施形態のECN制御部31と同様の機能を有し、外部ネットワークにおける輻輳の発生を示すデータ(TCPヘッダのECEフラグ)の有無に基づいて、PC2のアプリケーションから送出するデータパケットの送信レートを、輻輳ウィンドウサイズ(送信ウィンドウサイズ)により調整する。
【0065】
制御部30aは、カード端末1aの全体を制御しており、各部に対して所定の制御を行う。また、制御部30aは、PC2等から入力を受け付けて、各種処理を実行する。そして、制御部30aは、処理実行の際には、記憶部50aを制御し、各種プログラム及びデータの読み出し、並びにデータの書き込みを行う。
【0066】
さらに、制御部30aは、トークン制御部32aを備える。トークン制御部32aは、第1実施形態のトークン制御部32と同様に、トークンバケット方式により、通信部40から外部ネットワークへ送信されるデータのスループットを調整する機能を有する。
【0067】
記憶部50aは、例えば、ワーキングメモリを含み、制御部30aによる演算処理に利用される。また、本実施形態に係る各種プログラム等を記憶する。さらに、記憶部50aは、トークン制御部32により外部ネットワークの輻輳を検出したとき、前回に輻輳を検出してからの経過時間である輻輳回避モード時間(第1の時間)、又は後述の輻輳回避の終了判定に用いられる輻輳回避タイマの満了時間を記憶する。
【0068】
以下、輻輳回避モードと通常モードとの切り替えに関して、トークン制御部32aの処理内容を詳述する。トークン制御部32aは、外部ネットワークにおける輻輳の発生を示すデータ(TCPヘッダのECEフラグ)を検出したことに応じて、輻輳回避モードへ切り替え、後述の輻輳回避タイマの満了に応じて、輻輳回避モードの解除を行う。
【0069】
図9は、本実施形態に係る輻輳ウィンドウサイズの時間変化と、トークン制御部32aにおけるモードの時間変化とを示す図である。
【0070】
時刻t5において、トークン制御部32aは、外部ネットワークにおける輻輳の発生を検出すると、ECN制御部31aが輻輳回避中であると判定し、輻輳回避モードに遷移して、輻輳回避動作と競合時の処理を実行する。このとき、ECN制御部31aは、輻輳ウィンドウサイズをssthreshまで減少させ、その後徐々に増加させている。また、トークン制御部32aは、輻輳回避モードへ遷移すると、現在の時刻t5を記憶部50aに記憶する。
【0071】
時刻t6において、トークン制御部32aは、再度、輻輳の発生を検出し、輻輳回避モードへ遷移する。このとき、トークン制御部32aは、現在の時刻t6を記憶部50aに記憶すると共に、前回に輻輳を検出した時刻t5から現在の時刻t6までの経過時間である輻輳回避モード時間s(=t6−t5)を算出する。
【0072】
また、トークン制御部32aは、輻輳回避モード時間(s)に基づいて、
輻輳回避タイマ満了時間
=輻輳回避モード時間(s)×β (0<β<1) ・・・(3)
により、輻輳回避の終了判定に用いる輻輳回避タイマ満了時間を算出する。ここで、輻輳回避タイマ満了時間は、0よりも大きく、輻輳回避モード時間(s)よりも小さい値となる。この輻輳回避タイマ満了時間は、輻輳回避の終了までの時間を示し、輻輳回避モード時間が前回と近似していることを前提とする。
【0073】
さらに、トークン制御部32aは、時刻t6において輻輳の発生を検出し、輻輳回避モードへ遷移すると、輻輳回避タイマによる計時を開始する。
時刻t7において、トークン制御部32aは、輻輳回避タイマが満了した、すなわち時刻t6から輻輳回避タイマ満了時間が経過したことを検出する。すると、トークン制御部32aは、ECN制御部31aが輻輳回避中でないと判定し、輻輳回避モードを解除して通常モードに遷移して、輻輳回避動作と競合しない通常の処理を実行する。
【0074】
なお、トークン制御部32は、輻輳回避モードの間に、さらに輻輳回避の開始通知を受けた場合には、輻輳回避モードを維持する。
【0075】
ここで、式(3)のβは、輻輳回避の開始から終了までの時間が短くなり過ぎないように(0付近にならないように)、また、輻輳回避モード中にさらに輻輳回避の開始通知を受けることが極力ないように(1付近にならないように)、「0.5」付近であることが好ましい。
【0076】
図10は、本実施形態に係るトークン制御部32aにおける状態(モード)の遷移パターンを示す図である。
【0077】
トークン制御部32aは、外部ネットワーク(ルータ)から輻輳回避の開始通知(TCPヘッダのECEフラグ)を受けたとき、通常モードにあれば、輻輳回避タイマをスタートすると共に輻輳回避モードに遷移する。一方、輻輳回避モードにあれば、トークン制御部32aは、輻輳回避タイマをリスタートすると共に現在の状態を維持する。
【0078】
また、トークン制御部32は、輻輳回避タイマが満了したとき、輻輳回避モードにあれば、輻輳回避タイマを停止すると共に輻輳回避モードを解除して通常モードに遷移する。なお、トークン制御部32は、輻輳回避タイマがスタートしたとき輻輳回避モードになっているはずなので、輻輳回避タイマが満了したときに通常モードであることはない。
【0079】
図11は、本実施形態に係るトークン制御部32の処理の流れを示すシーケンス図である。
【0080】
トークン制御部32aが通常モードであるとき(S21)、トークン制御部32aがECNの輻輳回避開始通知、すなわちTCPヘッダのECEフラグを検出すると(S22)、トークン制御部32aは、ECN制御部31aにおける輻輳回避動作が開始されると判定する。
【0081】
すると、トークン制御部32aは、輻輳回避モード時間及び輻輳回避タイマ満了時間を算出し、輻輳回避タイマをスタートすると共に(S23)、輻輳回避モードへ遷移する(S24)。
【0082】
その後、時間が経過し、輻輳回避タイマが満了すると(S25)、トークン制御部32aは、輻輳回避モードを解除して通常モードへ遷移する(S26)。
【0083】
このように、本実施形態によれば、カード端末1aは、トークン制御部32aにより輻輳を検出した時点で輻輳回避の開始と判定する。また、カード端末1aは、前回の輻輳検出時刻から今回の輻輳検出時刻までの時間に基づいて、輻輳回避タイマ満了時間を算出し、輻輳検出時刻からの経過時間が輻輳回避タイマ満了時間になると、輻輳回避の終了と判定する。したがって、トークン制御部32aにおいて、輻輳の発生及びタイマの満了を検出することにより、カード端末1a側にECN制御部31を備えていない場合においても、輻輳回避モードと通常モードとを、適切なタイミングで遷移できる。
【0084】
なお、本実施形態では、無線通信装置を、PC等に対してUSBやPCMCIA等で直接接続されて無線通信を行うカード端末1aとして説明したが、車載コンピュータに接続される通信モジュールであってよい。また、無線通信装置は、データ通信モデムとして利用される携帯電話機、PHS(登録商標)やPDA等、様々な装置であってもよい。
【0085】
また、ECN制御部31aを無線通信装置側に有している場合であっても同様の処理を行ってもよい。この場合の無線通信装置は、第1実施形態と同様の様々な装置であってよい。
【0086】
以上、好適な実施形態について説明したが、本発明は上述した実施形態に限定されることなく種々の形態で実施することができる。また、上述の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、前述のものに限定されない。
【0087】
上述のECN制御部31(又は31a)によるECN、及びトークン制御部32(又は32a)によるトークンバケットは、それぞれ輻輳制御及びトラフィック制御の一例であって、本発明は、これには限られない。
【符号の説明】
【0088】
1 携帯電話機(無線通信装置)
1a カード端末(無線通信装置)
10 操作部
2 PC
20 表示部
30、30a 制御部
31、31a ECN制御部(輻輳制御部)
32、32a トークン制御部(トラフィック制御部)
40 通信部
41 アンテナ
50、50a 記憶部
60 音声部
【特許請求の範囲】
【請求項1】
無線によりネットワークへデータ送信する通信部と、
前記ネットワークの輻輳を検出したときに、当該輻輳を回避するため、送信ウィンドウサイズを当該輻輳の検出前より縮小した後、徐々に拡大するよう制御する輻輳制御部と、
前記輻輳制御部において輻輳の回避中であるか否かを判定し、回避中であれば、前記通信部による通信速度の制御方法を輻輳回避モードとし、回避中でなければ、当該制御方法を通常モードとするトラフィック制御部と、
前記輻輳制御部が輻輳を検出した時点での送信ウィンドウサイズを第1の値として記憶する記憶部と、を有し、
前記輻輳制御部は、輻輳を検出すると、当該輻輳の回避を開始したことを前記トラフィック制御部へ通知し、当該輻輳を検出した後、前記送信ウィンドウサイズが前記記憶部に記憶されている前記第1の値に基づいて特定される第2の値になると、当該輻輳の回避が終了したことを前記トラフィック制御部へ通知する無線通信装置。
【請求項2】
前記第2の値は、前記第1の値より小さく、前記輻輳制御部により縮小された時点での前記送信ウィンドウサイズよりも大きい値である請求項1に記載の無線通信装置。
【請求項3】
前記トラフィック制御部は、前記通常モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードに切り替え、前記輻輳回避モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードを維持する請求項1又は請求項2に記載の無線通信装置。
【請求項4】
前記輻輳制御部は、前記ネットワークにおいて輻輳が発生したことを示すデータパケットを受信したことに応じて、当該輻輳を検出する請求項1から請求項3のいずれか1項に記載の無線通信装置。
【請求項5】
ネットワークの輻輳を検出したときに所定の輻輳回避動作を実行する輻輳制御機構により提供されたデータを、無線により当該ネットワークへ送信する通信部と、
前記ネットワークの輻輳を検出すると共に、前記輻輳制御機構において輻輳の回避中であるか否かを判定し、回避中であれば、前記通信部による通信速度の制御方法を輻輳回避モードとし、回避中でなければ、当該制御方法を通常モードとするトラフィック制御部と、
前記トラフィック制御部により前記ネットワークの輻輳を検出したとき、前回に輻輳を検出してからの経過時間である第1の時間を記憶する記憶部と、を有し、
前記トラフィック制御部は、輻輳を検出すると、前記輻輳制御機構が当該輻輳の回避を開始したと判定し、当該輻輳を検出した後、前記記憶部に記憶されている前記第1の時間に基づいて特定される第2の時間が経過すると、当該輻輳の回避が終了したと判定する無線通信装置。
【請求項6】
前記第2の時間は、前記第1の時間より短い時間である請求項5に記載の無線通信装置。
【請求項7】
前記トラフィック制御部は、前記通常モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードに切り替え、前記輻輳回避モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードを維持する請求項5又は請求項6に記載の無線通信装置。
【請求項8】
前記トラフィック制御部は、前記ネットワークにおいて輻輳が発生したことを示すデータパケットを受信したことに応じて、当該輻輳を検出する請求項5から請求項7のいずれか1項に記載の無線通信装置。
【請求項9】
前記輻輳制御機構を有する外部電子機器に接続され、
前記通信部は、当該外部電子機器から受信したデータを前記ネットワークへ転送する請求項5から請求項8のいずれか1項に記載の無線通信装置。
【請求項1】
無線によりネットワークへデータ送信する通信部と、
前記ネットワークの輻輳を検出したときに、当該輻輳を回避するため、送信ウィンドウサイズを当該輻輳の検出前より縮小した後、徐々に拡大するよう制御する輻輳制御部と、
前記輻輳制御部において輻輳の回避中であるか否かを判定し、回避中であれば、前記通信部による通信速度の制御方法を輻輳回避モードとし、回避中でなければ、当該制御方法を通常モードとするトラフィック制御部と、
前記輻輳制御部が輻輳を検出した時点での送信ウィンドウサイズを第1の値として記憶する記憶部と、を有し、
前記輻輳制御部は、輻輳を検出すると、当該輻輳の回避を開始したことを前記トラフィック制御部へ通知し、当該輻輳を検出した後、前記送信ウィンドウサイズが前記記憶部に記憶されている前記第1の値に基づいて特定される第2の値になると、当該輻輳の回避が終了したことを前記トラフィック制御部へ通知する無線通信装置。
【請求項2】
前記第2の値は、前記第1の値より小さく、前記輻輳制御部により縮小された時点での前記送信ウィンドウサイズよりも大きい値である請求項1に記載の無線通信装置。
【請求項3】
前記トラフィック制御部は、前記通常モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードに切り替え、前記輻輳回避モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードを維持する請求項1又は請求項2に記載の無線通信装置。
【請求項4】
前記輻輳制御部は、前記ネットワークにおいて輻輳が発生したことを示すデータパケットを受信したことに応じて、当該輻輳を検出する請求項1から請求項3のいずれか1項に記載の無線通信装置。
【請求項5】
ネットワークの輻輳を検出したときに所定の輻輳回避動作を実行する輻輳制御機構により提供されたデータを、無線により当該ネットワークへ送信する通信部と、
前記ネットワークの輻輳を検出すると共に、前記輻輳制御機構において輻輳の回避中であるか否かを判定し、回避中であれば、前記通信部による通信速度の制御方法を輻輳回避モードとし、回避中でなければ、当該制御方法を通常モードとするトラフィック制御部と、
前記トラフィック制御部により前記ネットワークの輻輳を検出したとき、前回に輻輳を検出してからの経過時間である第1の時間を記憶する記憶部と、を有し、
前記トラフィック制御部は、輻輳を検出すると、前記輻輳制御機構が当該輻輳の回避を開始したと判定し、当該輻輳を検出した後、前記記憶部に記憶されている前記第1の時間に基づいて特定される第2の時間が経過すると、当該輻輳の回避が終了したと判定する無線通信装置。
【請求項6】
前記第2の時間は、前記第1の時間より短い時間である請求項5に記載の無線通信装置。
【請求項7】
前記トラフィック制御部は、前記通常モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードに切り替え、前記輻輳回避モードにおいて輻輳の回避中であると判定すると、前記輻輳回避モードを維持する請求項5又は請求項6に記載の無線通信装置。
【請求項8】
前記トラフィック制御部は、前記ネットワークにおいて輻輳が発生したことを示すデータパケットを受信したことに応じて、当該輻輳を検出する請求項5から請求項7のいずれか1項に記載の無線通信装置。
【請求項9】
前記輻輳制御機構を有する外部電子機器に接続され、
前記通信部は、当該外部電子機器から受信したデータを前記ネットワークへ転送する請求項5から請求項8のいずれか1項に記載の無線通信装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2011−188429(P2011−188429A)
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願番号】特願2010−54409(P2010−54409)
【出願日】平成22年3月11日(2010.3.11)
【出願人】(000006633)京セラ株式会社 (13,660)
【Fターム(参考)】
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願日】平成22年3月11日(2010.3.11)
【出願人】(000006633)京セラ株式会社 (13,660)
【Fターム(参考)】
[ Back to top ]