(57)【要約】【課題】外部ネットワークで輻輳が発生した場合に、トークンバケット方式におけるトークンの強制追加による結果的なスループットの低下を回避できる通信機器を提供すること。【解決手段】ＰＣカード１は、ＰＣ２に接続され、外部ネットワークから受信したパケットのＴＣＰヘッダ中のＥＣＥフラグに基づいて、ＰＣ２が送信レートの抑制状態であるか否かを判定する判定部１１と、許容トークンレート以内でパケット送出用トークンバッファ５２にトークンを補充している際に、所定のイベントが発生したとき、抑制状態ではないと判定された場合、パケット送出用トークンバッファ５２にトークンを強制追加すると共に、強制追加されたトークンの量に対応した期間において、抑制トークンレートにてパケット送出用トークンバッファ５２にトークンを追加し、抑制状態であると判定された場合、トークンを強制追加しないように制御するトークン制御部１２と、を備える。【選択図】図１
2011135371.tif 000002
【特許請求の範囲】
【請求項１】
外部端末に接続されるインタフェース部を有し、トークンバケット方式で当該インタフェース部から入力されるデータパケットを外部ネットワークへ送出する通信機器であって、
前記外部ネットワークから受信したパケットのヘッダ情報に含まれる、当該外部ネットワークにおける輻輳の発生を示すデータに基づいて、前記インタフェース部と接続される端末がデータパケットの送信レートを抑制している抑制状態であるか否かを判定する判定部と、
許容トークンレート以内でパケット送出用トークンバッファに定期的にトークンを補充している際に、所定のイベントが発生したとき、前記判定部により前記抑制状態ではないと判定された場合、前記パケット送出用トークンバッファにトークンを強制追加すると共に、当該強制追加されたトークンの量に対応した期間において、前記許容トークンレートよりも低い抑制トークンレートにて前記パケット送出用トークンバッファにトークンを追加し、前記判定部により前記抑制状態であると判定された場合、トークンを強制追加しないように制御するトークン制御部と、を備える通信機器。
【請求項２】
前記トークン制御部は、前記所定のイベントが発生した際に、前記判定部により前記抑制状態であると判定された場合、前記パケット送出用トークンバッファとは異なる貯蓄用トークンバッファにトークンを追加すると共に、当該追加されたトークンの量に対応した期間において、前記抑制トークンレートにて前記パケット送出用トークンバッファにトークンを追加する請求項１に記載の通信機器。
【請求項３】
前記トークン制御部は、前記所定のイベントが発生した際に、前記判定部により前記抑制状態ではないと判定された場合、前記貯蓄用トークンバッファにトークンが蓄積されていれば、前記パケット送出用トークンバッファに当該蓄積されているトークンをさらに補充し、前記許容トークンレートを上限として、前記抑制トークンレートを超えるレートにて前記パケット送出用トークンバッファにトークンを追加する請求項２に記載の通信機器。
【請求項４】
前記トークン制御部は、前記所定のイベントが発生した際に、前記判定部により前記抑制状態であると判定された場合、前記貯蓄用トークンバッファに所定量のトークンを追加し、前記判定部により前記抑制状態ではないと判定された場合、前記パケット送出用トークンバッファに前記所定量のトークンと、パケットバッファに蓄積されている前記端末からのデータパケットの量に対応する量のトークンとを追加する請求項２又は請求項３に記載の通信機器。
【請求項５】
前記判定部は、前記輻輳の発生を示すデータを受信してから所定時間を、前記抑制状態であると判定する請求項１から請求項４のいずれか１項に記載の通信機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末に接続され、トークンバケット方式で当該端末からのデータパケットを外部ネットワークへ送出する通信機器に関する。
【背景技術】
【０００２】
従来、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の端末に接続されて無線通信を行う通信機器が知られている。また、このような通信機器において、ネットワークのリソースを使いすぎないように、通信速度（スループット）を制御するトークンバケットと呼ばれる方式がある。
【０００３】
トークンバケット機構は、入力されたパケットを蓄積するパケットバッファと、トークンを蓄積するトークンバッファ（トークンバケット）とを備える。トークンバッファに規定量のトークンが溜まるとパケットバッファからパケットが出力され、トークンバッファのトークンが減少する。このように、外部ネットワークへ出力されるパケットのスループットは、単位時間当たりにトークンバッファにトークンが補充される量（トークンレート）によって制御される。このトークンレートは、所定のパラメータとネットワーク環境によって動的に変化し、ネットワークが混雑している時は低く、空いている時は高く調整される。
【０００４】
また、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）の輻輳制御方法の１つにＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）がある。ＥＣＮは、ルータが輻輳を検出し、輻輳情報をＴＣＰ送信者に通知することで、ＴＣＰ送信者が送信速度を制限して輻輳を回避する方法である。
【０００５】
ところで、通信機器には、使用感を向上させるため、一時的にトークンバッファへトークンを強制追加し、一定量までのパケットを規制なく送受信できるようにする機能が搭載される場合がある（例えば、特許文献１参照）。このとき、強制追加されたトークンは、以降のトークンレートを抑制することにより相殺される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１８９５９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、外部ネットワークにおいて輻輳が発生している場合に、トークンの強制追加が行われると、たとえ端末がＥＣＮによる輻輳回避を行っていても、パケットが急激に送出され、輻輳状態の外部ネットワークによりパケットが破棄される場合がある。その結果、パケットの再送が発生することになるため、出力パケットのスループットが低下してしまう。
【０００８】
本発明は、外部ネットワークで輻輳が発生した場合に、トークンバケット方式におけるトークンの強制追加による結果的なスループットの低下を回避できる通信機器を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る通信機器は、外部端末に接続されるインタフェース部を有し、トークンバケット方式で当該インタフェース部から入力されるデータパケットを外部ネットワークへ送出する通信機器であって、前記外部ネットワークから受信したパケットのヘッダ情報に含まれる、当該外部ネットワークにおける輻輳の発生を示すデータに基づいて、前記インタフェース部と接続される端末がデータパケットの送信レートを抑制している抑制状態であるか否かを判定する判定部と、許容トークンレート以内でパケット送出用トークンバッファに定期的にトークンを補充している際に、所定のイベントが発生したとき、前記判定部により前記抑制状態ではないと判定された場合、前記パケット送出用トークンバッファにトークンを強制追加すると共に、当該強制追加されたトークンの量に対応した期間において、前記許容トークンレートよりも低い抑制トークンレートにて前記パケット送出用トークンバッファにトークンを追加し、前記判定部により前記抑制状態であると判定された場合、トークンを強制追加しないように制御するトークン制御部と、を備える。
【００１０】
また、前記トークン制御部は、前記所定のイベントが発生した際に、前記判定部により前記抑制状態であると判定された場合、前記パケット送出用トークンバッファとは異なる貯蓄用トークンバッファにトークンを追加すると共に、当該追加されたトークンの量に対応した期間において、前記抑制トークンレートにて前記パケット送出用トークンバッファにトークンを追加することが好ましい。
【００１１】
また、前記トークン制御部は、前記所定のイベントが発生した際に、前記判定部により前記抑制状態ではないと判定された場合、前記貯蓄用トークンバッファにトークンが蓄積されていれば、前記パケット送出用トークンバッファに当該蓄積されているトークンをさらに補充し、前記許容トークンレートを上限として、前記抑制トークンレートを超えるレートにて前記パケット送出用トークンバッファにトークンを追加することが好ましい。
【００１２】
また、前記トークン制御部は、前記所定のイベントが発生した際に、前記判定部により前記抑制状態であると判定された場合、前記貯蓄用トークンバッファに所定量のトークンを追加し、前記判定部により前記抑制状態ではないと判定された場合、前記パケット送出用トークンバッファに前記所定量のトークンと、パケットバッファに蓄積されている前記端末からのデータパケットの量に対応する量のトークンとを追加することが好ましい。
【００１３】
また、前記判定部は、前記輻輳の発生を示すデータを受信してから所定時間を、前記抑制状態であると判定することが好ましい。
【発明の効果】
【００１４】
本発明によれば、外部ネットワークで輻輳が発生した場合に、トークンバケット方式におけるトークンの強制追加による結果的なスループットの低下を回避できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係るＰＣカードの機能構成を示すブロック図である。
【図２】本発明の実施形態に係るトークンバケット機構における上りデータフローの構成を示すブロック図である。
【図３】本発明の実施形態に係るＥＣＮによる輻輳制御のシーケンス図である。
【図４】本発明の実施形態に係るトークンの強制追加処理による、パケット送出用トークンバッファ中のトークン量と出力スループットとの時間推移を示す図である。
【図５】本発明の実施形態に係る抑制状態中のトークンの強制追加処理による、貯蓄用トークンバッファ中のトークン量と、パケット送出用トークンバッファ中のトークン量と、出力スループットとの時間推移を示す図である。
【図６】本発明の実施形態に係る貯蓄用トークンバッファにトークンが蓄積されている場合の、トークンの強制追加処理による、貯蓄用トークンバッファ中のトークン量と、パケット送出用トークンバッファ中のトークン量と、出力スループットとの時間推移を示す図である。
【図７】本発明の実施形態に係るトークンの強制追加処理を示すフローチャートである。
【図８】本発明の実施形態に係るトークンの強制追加処理の続きを示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態の一例について説明する。なお、本実施形態では、通信機器の一例として、ＰＣ２（端末）に接続されるＰＣカード１を説明する。なお、通信機器は、ＰＣカード１の他、携帯電話機、ＰＨＳ（登録商標；Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ  ｐｈｏｎｅ  Ｓｙｓｔｅｍ）、ＵＳＢ端末、車載通信モジュール、自動販売機用通信モジュール等、外部端末に接続されて無線データ通信機能を提供する様々な通信機器であってよい。
【００１７】
図１は、本実施形態に係るＰＣカード１の機能構成を示すブロック図である。
ＰＣカード１は、制御部１０と、記憶部２０と、インタフェース部３０と、通信部４０と、トークンバケット機構５０とを備える。
【００１８】
制御部１０は、ＰＣカード１の全体を制御しており、例えば、インタフェース部３０、通信部４０、トークンバケット機構５０等に対して所定の制御を行う。また、制御部１０は、通信部４０等から入力を受け付けて、各種処理を実行する。そして、制御部１０は、処理実行の際には、記憶部２０を制御し、各種プログラム及びデータの読み出し、並びにデータの書き込みを行う。
【００１９】
さらに、制御部１０は、判定部１１と、トークン制御部１２とを備える。そして、制御部１０は、記憶部２０及び通信部４０から取得される情報に基づいて、トークンバケット機構５０におけるパケット送出用トークンバッファ５２のトークンレートを制御する。なお、制御部１０が備える各部の機能は後述する。
【００２０】
記憶部２０は、例えば、ワーキングメモリを含み、制御部１０による演算処理に利用される。また、本実施形態では、後述の処理を実行するプログラムや、後述の貯蓄用トークンバッファ、各種データ等が記憶される。なお、記憶部２０は、着脱可能な外部メモリを兼ねていてもよい。
【００２１】
インタフェース部３０は、ＰＣ２とデータパケットの送受信を行うインタフェースであり、ＰＣ２から受信したパケットをトークンバケット機構５０へ入力し、トークンバケット機構５０から出力されたパケットをＰＣ２へ送信する。
【００２２】
通信部４０は、所定の周波数帯（例えば、２ＧＨｚ帯や８００ＭＨｚ帯等）で外部装置（基地局）と通信を行う。そして、通信部４０は、アンテナ４１より受信した信号を復調処理し、処理後の信号をトークンバケット機構５０に供給し、また、トークンバケット機構５０から供給された信号を変調処理し、アンテナ４１から外部装置に送信する。
【００２３】
トークンバケット機構５０は、ＰＣ２から外部ネットワーク（基地局）への上りデータフローと、外部ネットワーク（基地局）からＰＣ２への下りデータフローとのパケットのスループットを制御する。
【００２４】
図２は、本実施形態に係るトークンバケット機構５０における上りデータフローの構成を示すブロック図である。
【００２５】
まず、ＰＣ２からの入力パケットは、パケットバッファ５１に蓄えられる。また、一定（例えば、３０ｍｓｅｃ）間隔で、パケット送出用トークンバッファ５２にトークンが追加される。
【００２６】
トークンバケット機構５０は、充分な量のトークンがパケット送出用トークンバッファ５２にあれば、パケットバッファ５１に蓄えられているパケットを外部ネットワークへ出力し、パケット送出用トークンバッファ５２のトークンを減少させる。また、パケット送出用トークンバッファ５２のトークンがなくなると、トークンが溜まるまでパケットは出力されず、パケットバッファ５１に溜まり続ける。
【００２７】
なお、トークンバケット機構５０における下りデータフローの構成も同様であり、図２の「ＰＣ２からの入力」は「ネットワークからの入力」と読み替えられ、「ネットワークへの出力」は「ＰＣ２への出力」と読み替えられる。
【００２８】
図１に戻り、本実施形態に係る制御部１０の各部の機能を詳述する。
判定部１１は、通信部４０により外部ネットワークから受信したパケットのＴＣＰヘッダ（ヘッダ情報）を参照する。そして、判定部１１は、このＴＣＰヘッダに含まれる、外部ネットワークにおける輻輳の発生を示すデータ（後述のＥＣＥフラグ）の有無に基づいて、ＰＣ２がデータパケットの送信レートを抑制している抑制状態であるか否かを判定する。
【００２９】
具体的には、判定部１１は、ＴＣＰヘッダのＥＣＥフラグが立っていることを確認してから所定時間（例えば、５秒間）を、輻輳の回避中、すなわち抑制状態であると判定する。なお、この所定時間は、ユーザが既定の範囲内（例えば、３秒間〜１０秒間）で設定可能であってよい。
【００３０】
ここで、ＥＣＮによる輻輳制御について説明する。
図３は、本実施形態に係るＥＣＮによる輻輳制御のシーケンス図である。この例では、ルータを介して、ＴＣＰ送信者（例えば、ＰＣ２）とＴＣＰ受信者とが通信を行っている。
【００３１】
ルータは、転送待ちのパケットを蓄積しておくバッファの使用量が一定の閾値を超えると、ネットワークが輻輳していると判断する。ルータは、ネットワークが輻輳していると判断すると、パケットのＩＰヘッダのＴｏＳフィールドに、輻輳を経験していることを示すＣＥフラグを立てて、パケットをＴＣＰ受信者へ転送する（ステップＳ１）。
【００３２】
ＴＣＰ受信者は、ＩＰヘッダにＣＥフラグが立っているパケットを受信した場合、ＴＣＰヘッダのＥＣＥ（ＥＣＮ−Ｅｃｈｏ）フラグを立ててＴＣＰ送信者に確認応答パケット（Ａｃｋ）を送信する。これは、ＴＣＰ送信者からＴＣＰヘッダのＣＷＲ（Ｃｏｎｇｅｓｔｉｏｎ  Ｗｉｎｄｏｗ  Ｒｅｄｕｃｅｄ）フラグが立っているパケットを受信するまで続けられる（ステップＳ２）。
【００３３】
ＴＣＰ送信者は、ＴＣＰヘッダにＥＣＥフラグが立っているパケットを受信した場合、輻輳が発生していると判断する。そして、ＴＣＰ送信者は、輻輳ウィンドウサイズをスロースタートの閾値まで減少させて送信レートを下げ、以降に送信するパケットのＴＣＰヘッダにＣＷＲフラグを立てて送信する（ステップＳ３）。
【００３４】
ＴＣＰ受信者は、ＴＣＰヘッダにＣＷＲフラグが立っているパケットを受信すると、確認応答パケットにＥＣＥフラグを立てることを停止する（ステップＳ４）。
【００３５】
判定部１１は、外部ネットワークにおける輻輳の発生を示すデータとして、ステップＳ２におけるＴＣＰヘッダのＥＣＥフラグの有無を参照し、ＰＣ２がデータパケットの送信レートを抑制している抑制状態であるか否かを判定する。
【００３６】
トークン制御部１２は、許容トークンレート以内でパケット送出用トークンバッファ５２に定期的にトークンを補充している際に、例えばパケットバッファ５１に所定以上のパケットが溜まる等の所定のイベントが発生したとき、トークンの強制追加処理を行う。
【００３７】
トークン制御部１２は、判定部１１により抑制状態ではないと判定された場合、パケット送出用トークンバッファ５２にトークンを強制追加する。そして、トークン制御部１２は、この強制追加されたトークンの量に対応した期間において、許容トークンレートよりも低い抑制トークンレートにてパケット送出用トークンバッファ５２にトークンを追加する。
【００３８】
図４は、本実施形態に係るトークンの強制追加処理による、パケット送出用トークンバッファ５２中のトークン量と出力スループットとの時間推移を示す図である。
【００３９】
時刻ｔ１において、パケット送出用トークンバッファ５２に所定量（例えば、トークンレート×追加トークン係数）のトークンが強制追加されると、パケット送出用トークンバッファ５２中のトークン量が一時的に増加する。すると、これまで許容トークンレートに基づいていた出力スループットは、増加したトークンにより、急激に増加する。
【００４０】
時刻ｔ２において、強制追加（前借り）されたトークンが全て消費されると、前借りしたトークンを返済するために、許容トークンレートよりも低い抑制トークンレートを上限として、出力スループットが抑制される。なお、抑制トークンレートは、許容トークンレートに対する一定割合（例えば、許容トークンレート×０．５）として決定され、抑制分が前借りしたトークンの返済に充てられる。
【００４１】
時刻ｔ３において、返済済みのトークンが前借り（強制追加）したトークンに達すると、トークンレートは、許容トークンレートに戻される。
【００４２】
また、トークン制御部１２は、判定部１１により抑制状態であると判定された場合、トークンを強制追加しないように制御する。具体的には、トークン制御部１２は、パケット送出用トークンバッファ５２とは異なる貯蓄用トークンバッファに所定量のトークンを追加する。貯蓄用トークンバッファは、記憶部２０に記憶されており、トークンバケット機構５０からは参照されない。そして、トークン制御部１２は、この追加されたトークンの量に対応した期間において、抑制トークンレートにてパケット送出用トークンバッファ５２にトークンを追加する。
【００４３】
図５は、本実施形態に係る抑制状態中のトークンの強制追加処理による、貯蓄用トークンバッファ中のトークン量と、パケット送出用トークンバッファ５２中のトークン量と、出力スループットとの時間推移を示す図である。
【００４４】
時刻ｔ４において、強制追加処理が起動すると、パケット送出用トークンバッファ５２ではなく、貯蓄用トークンバッファに所定量のトークンが強制追加される。この強制追加されたトークンは、トークンバケット機構５０により消費されず、一定量を保っている。
【００４５】
時刻ｔ４からｔ５までは、貯蓄用トークンバッファに強制追加（前借り）されたトークン量を返済するために、抑制トークンレートを上限として、出力スループットが抑制される。そして、時刻ｔ５において、返済済みのトークンが前借り（強制追加）したトークンに達すると、トークンレートは、許容トークンレートに戻される。
【００４６】
さらに、トークン制御部１２は、強制追加のイベントが発生した際に、判定部１１により抑制状態ではないと判定された場合、以前の抑制状態中に貯蓄用トークンバッファにトークンが蓄積されていれば、以下の処理を行う。すなわち、トークン制御部１２は、パケット送出用トークンバッファ５２に、この蓄積されているトークンをさらに補充し、許容トークンレートを上限として、抑制トークンレートを超えるトークンレートにてパケット送出用トークンバッファ５２にトークンを追加する。
【００４７】
図６は、本実施形態に係る貯蓄用トークンバッファにトークンが蓄積されている場合の、トークンの強制追加処理による、貯蓄用トークンバッファ中のトークン量と、パケット送出用トークンバッファ５２中のトークン量と、出力スループットとの時間推移を示す図である。
【００４８】
時刻ｔ６において、パケット送出用トークンバッファ５２に所定量のトークンが強制追加されると、パケット送出用トークンバッファ５２中のトークン量が一時的に増加する。すると、これまで許容トークンレートに基づいていた出力スループットは、増加したトークンにより、急激に増加する。
【００４９】
時刻ｔ７において、強制追加（前借り）されたトークンが全て消費されると、前借りしたトークンを返済するために、貯蓄用トークンバッファに蓄積されているトークンが消費され、パケット送出用トークンバッファ５２へ補充される。これにより、トークンレートは、許容トークンレートに保たれる。
【００５０】
なお、貯蓄用トークンバッファに蓄積されているトークン量が不足し、返済に充てられない場合には、トークンレートが抑えられ、抑制トークンレートとなる。
【００５１】
時刻ｔ８において、返済済みのトークンが前借り（強制追加）したトークンに達すると、トークンレートは、許容トークンレートに戻される。
【００５２】
図７及び図８は、本実施形態に係る制御部１０によるトークンの強制追加処理を示すフローチャートである。
【００５３】
ステップＳ１において、トークン制御部１２は、強制追加されるトークン量である追加トークン量を、
追加トークン量＝トークンレート×追加トークン係数
により求める。
【００５４】
ステップＳ２において、判定部１１は、ＰＣ２がＥＣＮにより輻輳を回避中であるか否かを判定する。制御部１０は、この判定がＹＥＳの場合、処理をステップＳ３に移し、判定がＮＯの場合、処理をステップＳ７に移す。
【００５５】
ステップＳ３において、輻輳回避中でありパケット送出用トークンバッファ５２に強制追加できないので、トークン制御部１２は、貯蓄用トークンバッファのトークン量を、
貯蓄用トークンバッファ量＝貯蓄用トークンバッファ量＋追加トークン量
に増加させる。
【００５６】
ステップＳ４において、トークン制御部１２は、強制追加されたトークンの返済のため、トークンレートを、
抑制トークンレート＝許容トークンレート×トークンレート抑制比率
に抑制する。
【００５７】
ステップＳ５において、トークン制御部１２は、パケット送出用トークンバッファ５２のトークン量を、
トークンバッファ量＝トークンバッファ量＋トークンレート×通常補充間隔
とする。ここで、通常補充間隔とは、定期的にトークンを補充する周期（例えば、３０ｍｓｅｃ）をいう。
【００５８】
ステップＳ６において、トークン制御部１２は、ステップＳ４で決定された抑制トークンレートが追加トークン量に見合う期間継続し、強制追加（前借り）されたトークンが返済されたか否かを判定する。制御部１０は、この判定がＹＥＳの場合、処理を終了して、トークンレートを許容トークンレートに戻す。一方、判定がＮＯの場合、制御部１０は、処理をステップＳ５に戻し、抑制トークンレートでのトークンの補充を継続する。
【００５９】
ステップＳ７において、トークン制御部１２は、追加トークン量を、
追加トークン量＝追加トークン量＋パケットバッファサイズ
に更新する。ここで、パケットバッファサイズとは、パケットバッファ５１に蓄積されているＰＣ２からのデータパケットの量に対応するトークン量をいう。
【００６０】
ステップＳ８において、トークン制御部１２は、パケット送出用トークンバッファ５２のトークン量（トークンバッファ量）を、
トークンバッファ量＝トークンバッファ量＋追加トークン量
に増加させる。
【００６１】
ステップＳ９において、トークン制御部１２は、強制追加されたトークンの返済のため、トークンレートを、
抑制トークンレート＝許容トークンレート×トークンレート抑制比率
に抑制する。
【００６２】
ステップＳ１０において、トークン制御部１２は、貯蓄用トークンバッファにトークンが蓄積されている（貯蓄用トークンバッファ量＞０）か否かを判定する。制御部１０は、この判定がＹＥＳの場合、処理をステップＳ１１に移し、判定がＮＯの場合、処理をステップＳ１７に移す。
【００６３】
ステップＳ１１において、トークン制御部１２は、貯蓄用トークンバッファからパケット送出用トークンバッファ５２へ補充するトークン量（貯蓄補充トークン量）を、
貯蓄補充トークン量＝（許容トークンレート−抑制トークンレート）×通常補充間隔
により求める。
【００６４】
ステップＳ１２において、トークン制御部１２は、貯蓄補充トークン量が貯蓄用トークンバッファ量より多いか否かを判定する。制御部１０は、この判定がＹＥＳの場合、処理をステップＳ１３に移し、判定がＮＯの場合、処理をステップＳ１５に移す。
【００６５】
ステップＳ１３において、トークン制御部１２は、ステップＳ１１で求められた貯蓄補充トークン量を貯蓄用トークンバッファから確保できないため、
貯蓄補充トークン量＝貯蓄用トークンバッファ量
として、改めて求める。
【００６６】
ステップＳ１４において、トークン制御部１２は、貯蓄用トークンバッファを空にする（貯蓄用トークンバッファ量＝０）。
【００６７】
ステップＳ１５において、トークン制御部１２は、貯蓄用トークンバッファに充分な量のトークンが蓄積されているので、
貯蓄用トークンバッファ量＝貯蓄用トークンバッファ量−貯蓄補充トークン量
により、貯蓄用トークンバッファから貯蓄補充トークン量のトークンを減ずる。
【００６８】
ステップＳ１６において、トークン制御部１２は、パケット送出用トークンバッファへトークンを補充するトークンレートを、
トークンレート＝抑制トークンレート＋貯蓄補充トークン量÷通常補充間隔
として求める。
【００６９】
ステップＳ１７において、トークン制御部１２は、決定されたトークンレート（抑制トークンレート又はステップＳ１６で求められたトークンレート）により、パケット送出用トークンバッファのトークン量を、
トークンバッファ量＝トークンバッファ量＋トークンレート×通常補充間隔
と増加させる。
【００７０】
ステップＳ１８において、トークン制御部１２は、ステップＳ９で決定された抑制トークンレートが追加トークン量に見合う期間継続し、強制追加（前借り）されたトークンが返済されたか否かを判定する。制御部１０は、この判定がＹＥＳの場合、処理を終了して、トークンレートを許容トークンレートに戻す。一方、判定がＮＯの場合、制御部１０は、処理をステップＳ１０に戻し、抑制トークンレート及び貯蓄補充トークン量に基づくトークンレートでのトークンの補充を継続する。
【００７１】
このように、トークン制御部１２は、トークンの強制追加の契機となる所定のイベントが発生した際に、判定部１１により抑制状態であると判定された場合、貯蓄用トークンバッファに所定量（トークンレート×追加トークンレート）のトークンを追加する。一方、トークン制御部１２は、判定部１１により抑制状態ではないと判定された場合、パケット送出用トークンバッファ５２に所定量のトークンと、パケットバッファ５１に蓄積されているＰＣ２からのデータパケットの量に対応する量のトークンとを追加する。
【００７２】
すなわち、抑制状態でない場合には、トークン制御部１２は、パケットバッファ５１に蓄積されているパケットを空にすると共に、出力スループットを増加させることができる。トークン制御部１２は、抑制状態の場合には、パケットバッファ５１に蓄積されているパケットを空にする必要がないため、パケットバッファ５１に蓄積されているパケットの量に対応する量のトークンを追加する処理を行わない。
【００７３】
以上のように、本実施形態によれば、ＥＣＮで輻輳回避中であるにもかかわらず、トークンの強制追加機能により出力スループットを高め、結果的にパケットが破棄されてスループットが低下するのを回避することができる。
【００７４】
また、本実施形態によれば、貯蓄用トークンバッファを設けたことにより、強制追加分のトークンを退避することができる。そして、その後の抑制状態でないときに強制追加が発生すると、この退避されている強制追加分のトークンが補充されることにより、強制追加後の抑制トークンレートを、許容トークンレートを上限として高めることができる。
【００７５】
以上、好適な実施形態について説明したが、本発明は前述した実施形態に限定されることなく種々の形態で実施することができる。また、前述の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、前述のものに限定されない。
【符号の説明】
【００７６】
１  ＰＣカード（通信機器）
１０  制御部
１１  判定部
１２  トークン制御部
２０  記憶部（貯蓄用トークンバッファ）
３０  インタフェース部
４０  通信部
４１  アンテナ
５０  トークンバケット機構
５１  パケットバッファ
５２  パケット送出用トークンバッファ
【図１】
2011135371.tif 000003
【図２】
2011135371.tif 000004
【図３】
2011135371.tif 000005
【図４】
2011135371.tif 000006
【図５】
2011135371.tif 000007
【図６】
2011135371.tif 000008
【図７】
2011135371.tif 000009
【図８】
2011135371.tif 000010