(57)【要約】【課題】電子機器及びネットワークとの間でＥＣＮによる輻輳制御を行うことができる通信機器を提供すること。【解決手段】第１の通信部１１と、第２の通信部１２と、トークンを生成する第１のトークン生成部１３と、トークンを記憶する第１のトークン記憶部１４と、記憶されているトークン量を検出する第１の検出部１５と、トークン量が第１の閾値に達している場合には、第１の通信部１１により受信したデータを第２の通信部１２によりネットワーク２０２へ送信する第１の制御部１６と、ＰＣ１０１がデータの輻輳に対する輻輳制御機能を有しているか否かを判断する第１の判断部１７と、を備える。第１の制御部１６は、トークン量が第２の閾値以下であり、ＰＣ１０１が輻輳制御機能を有していると判断した場合には、第１の通信部１１が送信するデータに対し、当該輻輳制御機能を有効にするための第１の制御情報を付加して第１の通信部１１に送出させる。【選択図】図２
2010232876.tif 000002
【特許請求の範囲】
【請求項１】
外部機器に接続され、データを授受する第１の通信部と、
ネットワーク側に対して前記第１の通信部により受信したデータを送出し、ネットワーク側からデータを受信する第２の通信部と、
所定のデータ量により構成されているトークンを生成する第１のトークン生成部と、
前記トークンを記憶する第１のトークン記憶部と、
前記第１のトークン記憶部に記憶されているトークン量を検出する第１の検出部と、
前記第１の検出部により検出されたトークン量が第１の閾値に達したか否かを判断し、前記トークン量が前記第１の閾値に達していると判断した場合には、前記第１の通信部により受信したデータを当該トークン量に応じた分だけ前記第２の通信部により前記ネットワークへ送信するように制御する第１の制御部と、
前記第１の通信部が接続される機器がデータの輻輳に対する輻輳制御機能を有しているか否かを判断する第１の判断部と、を備え、
前記第１の制御部は、前記第１の検出部により検出されたトークン量が前記第１の閾値よりも小さい第２の閾値以下であり、前記第１の判断部により前記第１の通信部が接続される機器が前記輻輳制御機能を有していると判断した場合には、前記第１の通信部が送信するデータに対し、当該輻輳制御機能を有効にするための第１の制御情報を付加して前記第１の通信部に送出させる
ことを特徴とする通信機器。
【請求項２】
前記第１の判断部は、前記第１の通信部により受信したデータに前記輻輳制御機能を有する旨の第２の制御情報が含まれているか否かにより前記第１の通信部が接続される機器が前記輻輳制御機能を有しているか否かを判断する
ことを特徴とする請求項１記載の通信機器。
【請求項３】
前記第１の制御部は、前記第１の通信部により、接続される前記外部機器から輻輳ウィンドウを減少させた旨の第３の制御情報が付加されたデータを受信した場合には、前記データから前記第３の制御情報を削除し、当該第３の制御情報が削除されたデータを前記第２の通信部により前記ネットワークへ送信する
ことを特徴とする請求項１又は２に記載の通信機器。
【請求項４】
外部機器に接続され、データを授受する第１の通信部と、
ネットワーク側から、前記第１の通信部により送信するためのデータを受信し、前記第１の通信部により受信したデータを前記ネットワーク側に送信する第２の通信部と、
所定のデータ量により構成されているトークンを生成する第２のトークン生成部と、
前記トークンを記憶する第２のトークン記憶部と、
前記第２のトークン記憶部に記憶されているトークン量を検出する第２の検出部と、
前記第２の検出部により検出されたトークン量が第１の閾値に達したか否かを判断し、前記トークン量が前記第１の閾値に達していると判断した場合には、前記第２の通信部により受信したデータを当該トークン量に応じた分だけ前記第１の通信部により前記外部機器へ送信するように制御する第２の制御部と、
前記ネットワーク側の機器がデータの輻輳に対する輻輳制御機能を有しているか否かを判断する第２の判断部と、を備え、
前記第２の制御部は、前記第２の検出部により検出されたトークン量が前記第１の閾値よりも小さい第２の閾値以下であり、前記第２の判断部によりネットワーク側の機器が前記輻輳制御機能を有していると判断した場合には、前記第１の通信部により受信したデータに対し、当該輻輳制御機能を有効にするための第４の制御情報を付加して前記第２の通信部に送出させる
ことを特徴とする通信機器。
【請求項５】
前記第２の判断部は、前記第２の通信部により受信したデータに前記輻輳制御機能を有する旨の第５の制御情報が含まれているか否かにより前記ネットワーク側の機器が前記輻輳制御機能を有しているか否かを判断する
ことを特徴とする請求項４記載の通信機器。
【請求項６】
前記第２の制御部は、前記第２の通信部により前記ネットワーク側の機器から輻輳ウィンドウを減少させた旨の第６の制御情報が付加されたデータを受信した場合には、前記データから前記第６の制御情報を削除し、当該第６の制御情報が削除されたデータを前記第１の通信部により前記外部機器へ送信する
ことを特徴とする請求項５記載の通信機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの輻輳を制御する機能を有する通信機器に関する。
【背景技術】
【０００２】
複数の電子機器が接続されているネットワークにおいては、特定の電子機器が無線リソースを使いすぎないよう移動機器（電子機器に接続されてネットワークに接続する機器）側で通信速度（スループット）を制御する機能（以下、トラフック制御機能という。）を有している。具体的には、トラフィック制御機能は、上り／下りにそれぞれ一つずつトークンバケット機構を有し、それぞれ独立してスループットを制御する機能である。
トークンバケット機構は、入力されたパケットを蓄積するパケットバッファと、トークンを蓄積するトークンバケットを持つ。トークンバケットには一定間隔毎にトークンが補充され、規定量のトークンが溜まるまでパケットバッファ内のパケットは出力できない。また、トークンの量に見合うパケットを出力したらその分のトークンがトークンバケットから差し引かれる。すなわち、パケットバッファに蓄積されたパケットのスループットは、単位時間あたりにトークンバケットにトークンが補充される量（トークンレート）によって制御される。トークンレートは、移動機器内部に設定されたパラメータと網環境によって動的に変化するため、一定ではない。実際の動作の例では、網が混雑している場合にはトークンレートを低くし、一方で空いている場合にはトークンレートを高くするという制御を行っている。
【０００３】
また、トークンレートは、パケットバッファに入力される平均スループットを元に算出される。したがって、トークンレートは、通常では平均スループットよりも高いレートにはならない。
また、一時的にトークンの前借を行い、一定量までのデータであれば規制なく送受信することができるようにした機能（以下、トークン強制追加機能という。）がある。トークン強制追加機能は、一定量未満の通信しか行わないユーザ（いわゆる、ライトユーザ）の使用感を損ねないよう配慮した機能である。このトークン強制追加機能が作動すると、いったんそれまで移動機器内部のパケットバッファに蓄積されていたデータはすべて送出され、その後前借したトークンを返済するまでの間はトークンレートが抑制されるという動作になる。
【０００４】
また、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）の輻輳制御方法の一つに、ＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）がある（例えば、特許文献１を参照。）。ＥＣＮは、ルータが輻輳を検出し、その情報をＴＣＰ送信者に伝えることで送信速度を制限し、輻輳を回避する為の方法である。
【０００５】
また、ＴＣＰピアは、３ｗａｙハンドシェーク（３つのステップによる接続手順）において、互いがＥＣＮに対応しているかどうかをネゴシエートする。具体的には、ＴＣＰ（ＥＣＮ）コネクションの確立シーケンスは、図９に示すように、ＥＣＮ対応の送信側の電子機器は、ＳＹＮのＴＣＰヘッダにＥＣＥフラグとＣＷＲフラグを立てて送信し（ステップＳＴ１０１）、ＥＣＮ対応の受信側の電子機器は、ＳＹＮ／ＡＣＫのＴＣＰヘッダにＥＣＥフラグを立てて応答することにより実行される（ステップＳＴ１０２）。
【０００６】
また、ＥＣＮによる輻輳制御のシーケンスは、図１０に示すように実行される。
ＥＣＮ対応のルータは、転送待ちのパケットを蓄積しておくバッファの使用量が一定の閾値を超えると、ネットワークが輻輳していると判断し、転送パケットのＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ヘッダのＴｏＳ（Ｔｙｐｅ  ｏｆ  Ｓｅｒｖｉｃｅ）フィールドに輻輳を経験していることを示すビット（ＣＥ、Ｃｏｎｇｅｓｔｉｏｎ  Ｅｘｐｅｒｉｅｎｃｅｄ）を立てて受信側に転送する（ステップＳＴ１１１）。
【０００７】
受信側の電子機器は、ＩＰヘッダにＣＥの立ったパケットを受信した場合、ＴＣＰヘッダのＥＣＥ（ＥＣＮ−Ｅｃｈｏ）フラグを立てて送信側に確認応答を返す（ステップＳＴ１１２）。この応答は、受信側の電子機器が、送信側の電子機器からＴＣＰヘッダのＣＷＲ（Ｃｏｎｇｅｓｔｉｏｎ  Ｗｉｎｄｏｗ  Ｒｅｄｕｃｅｄ）フラグが立ったパケットを受信するまで続ける。
【０００８】
送信側の電子機器は、ＴＣＰヘッダにＥＣＥフラグが立ったパケットを受信した場合、輻輳が発生していると判断し、輻輳ウィンドウサイズをスロースタートの閾値（ｓｓｔｈｒｅｓｈ）まで減らし、次のパケットのＴＣＰヘッダのＣＷＲフラグを立てて送信する（ステップＳＴ１１３）。
受信側の電子機器は、ＣＷＲフラグの立ったパケットを受信すると、次に続く確認応答パケットのＥＣＥフラグを設定することを停止する（ステップＳＴ１１４）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−３５７１７７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、トラフィック制御機能は、構成が複雑なため、制御部（ＣＰＵ）の処理負担が高くなり、移動機器の性能が劣化してしまう。また、移動機器の内部のパケットバッファが溢れ、ルータと同じくパケットが破棄されるおそれがある。
【００１１】
本発明は、トラフィック制御機能のトークンレートのみを利用して、接続対象となる電子機器及びネットワークとの間でＥＣＮによる輻輳制御を行うことができる通信機器を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る通信機器は、上記課題を解決するために、外部機器に接続され、データを授受する第１の通信部と、ネットワーク側に対して前記第１の通信部により受信したデータを送出し、ネットワーク側からデータを受信する第２の通信部と、所定のデータ量により構成されているトークンを生成する第１のトークン生成部と、前記トークンを記憶する第１のトークン記憶部と、前記第１のトークン記憶部に記憶されているトークン量を検出する第１の検出部と、前記第１の検出部により検出されたトークン量が第１の閾値に達したか否かを判断し、前記トークン量が前記第１の閾値に達していると判断した場合には、前記第１の通信部により受信したデータを当該トークン量に応じた分だけ前記第２の通信部により前記ネットワークへ送信するように制御する第１の制御部と、前記第１の通信部が接続される機器がデータの輻輳に対する輻輳制御機能を有しているか否かを判断する第１の判断部と、を備え、前記第１の制御部は、前記第１の検出部により検出されたトークン量が前記第１の閾値よりも小さい第２の閾値以下であり、前記第１の判断部により前記第１の通信部が接続される機器が前記輻輳制御機能を有していると判断した場合には、前記第１の通信部が送信するデータに対し、当該輻輳制御機能を有効にするための第１の制御情報を付加して前記第１の通信部に送出させることを特徴とする。
【００１３】
上記通信機器では、前記第１の判断部は、前記第１の通信部により受信したデータに前記輻輳制御機能を有する旨の第２の制御情報が含まれているか否かにより前記第１の通信部が接続される機器が前記輻輳制御機能を有しているか否かを判断することが好ましい。
【００１４】
上記通信機器では、前記第１の制御部は、前記第１の通信部により、接続される前記外部機器から輻輳ウィンドウを減少させた旨の第３の制御情報が付加されたデータを受信した場合には、前記データから前記第３の制御情報を削除し、当該第３の制御情報が削除されたデータを前記第２の通信部により前記ネットワークへ送信するが好ましい。
【００１５】
本発明に係る通信機器は、上記課題を解決するために、外部機器に接続され、データを授受する第１の通信部と、ネットワーク側から、前記第１の通信部により送信するためのデータを受信し、前記第１の通信部により受信したデータを前記ネットワーク側に送信する第２の通信部と、所定のデータ量により構成されているトークンを生成する第２のトークン生成部と、前記トークンを記憶する第２のトークン記憶部と、前記第２のトークン記憶部に記憶されているトークン量を検出する第２の検出部と、前記第２の検出部により検出されたトークン量が第１の閾値に達したか否かを判断し、前記トークン量が前記第１の閾値に達していると判断した場合には、前記第２の通信部により受信したデータを当該トークン量に応じた分だけ前記第１の通信部により前記外部機器へ送信するように制御する第２の制御部と、前記ネットワーク側の機器がデータの輻輳に対する輻輳制御機能を有しているか否かを判断する第２の判断部と、を備え、前記第２の制御部は、前記第２の検出部により検出されたトークン量が前記第１の閾値よりも小さい第２の閾値以下であり、前記第２の判断部によりネットワーク側の機器が前記輻輳制御機能を有していると判断した場合には、前記第１の通信部により受信したデータに対し、当該輻輳制御機能を有効にするための第４の制御情報を付加して前記第２の通信部に送出させることを特徴とする。
【００１６】
上記通信機器では、前記第２の判断部は、前記第２の通信部により受信したデータに前記輻輳制御機能を有する旨の第５の制御情報が含まれているか否かにより前記ネットワーク側の機器が前記輻輳制御機能を有しているか否かを判断することが好ましい。
【００１７】
上記通信機器では、前記第２の制御部は、前記第２の通信部により前記ネットワーク側の機器から輻輳ウィンドウを減少させた旨の第６の制御情報が付加されたデータを受信した場合には、前記データから前記第６の制御情報を削除し、当該第６の制御情報が削除されたデータを前記第１の通信部により前記外部機器へ送信することが好ましい。
【発明の効果】
【００１８】
本発明によれば、接続対象となる電子機器及びネットワークとの間でＥＣＮによる輻輳制御を行うことができる。
【図面の簡単な説明】
【００１９】
【図１】通信機器がＰＣに接続され、ネットワークに接続される様子を示す図である。
【図２】本発明に係る通信機器の第１の機能を示すブロック図である。
【図３】ＴＣＰヘッダの構成を示す模式図である。
【図４】本発明に係る通信機器の第２の機能を示すブロック図である。
【図５】通信機器に直接接続されるＰＣがＥＣＮに対応しており、ネットワーク側がＥＣＮに対応していない場合におけるＴＣＰコネクションの確立シーケンスについての説明に供するシーケンスチャートである。
【図６】通信機器に直接接続されるＰＣがＥＣＮに対応しておらず、ネットワーク側がＥＣＮに対応している場合におけるＴＣＰコネクションの確立シーケンスについての説明に供するシーケンスチャートである。
【図７】ネットワーク側で輻輳が生じた場合のＰＣによる輻輳制御の動作についての説明に供するシーケンスチャートである。
【図８】ＰＣで輻輳が生じた場合のネットワーク側による輻輳制御の動作についての説明に供するシーケンスチャートである。
【図９】ＴＣＰコネクションの確立シーケンスについての説明に供するシーケンスチャートである。
【図１０】ＥＣＮによる輻輳制御にシーケンスについての説明に供するシーケンスチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について詳細に説明する。本実施形態に係る通信機器１は、無線通信用のアンテナを有しているＰＣカードに利用され、例えば、図１に示すように、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）１０１のカードスロット１０２に挿入されて接続されることにより、ＰＣ１０１による基地局２０１を介したネットワーク２０２（例えば、インターネット）への接続に利用される。
【００２１】
＜第１の実施例＞
通信機器１は、図２に示すように、第１の通信部１１と、第２の通信部１２と、第１のトークン生成部１３と、第１のトークン記憶部１４と、第１の検出部１５と、第１の制御部１６と、第１の判断部１７とを備える。
【００２２】
第１の通信部１１は、外部機器（以下、ＰＣ１０１という。）に接続され、データを授受する。具体的には、第１の通信部１１は、データをＰＣ１０１へ送信する送信ポートと、ＰＣ１０１から送信されてきたデータを受信する受信ポートにより構成されている。
【００２３】
第２の通信部１２は、ネットワーク２０２側に対して第１の通信部１１により受信したデータを送出し、ネットワーク２０２側からデータを受信する。具体的には、第２の通信部１２は、ネットワーク２０２側へデータを送信する送信ポートと、ネットワーク２０２側から送信されてきたデータを受信する受信ポートにより構成されている。
【００２４】
第１のトークン生成部１３は、所定のデータ量により構成されているトークンを生成する。第１のトークン記憶部１４は、第１のトークン生成部１３により生成されたトークンを記憶する。第１の検出部１５は、第１のトークン記憶部１４に記憶されているトークン量を検出する。第１の制御部１６は、第１の検出部１５により検出されたトークン量が第１の閾値に達したか否かを判断し、トークン量が第１の閾値に達していると判断した場合には、第１の通信部１１により受信したデータを当該トークン量に応じた分だけ第２の通信部１２によりネットワーク２０２へ送信するように制御する。
【００２５】
ここで、トークンとは、単位あたり所定のデータ量で構成されており、第１のトークン記憶部１４には、第１のトークン生成部１３により生成されるトークンが順次蓄積されてゆく。
【００２６】
また、第１の制御部１６は、第１のトークン記憶部１４に蓄積されるトークンが第１の閾値に達したことを第１の検出部１５による検出結果から判断した場合に、蓄積されているトークン量に見合う分のデータを第２の通信部１２によりネットワーク２０２へ送信するように制御する。また、第１の制御部１６は、データが送信された後、送信されたデータに見合う分のトークンを第１のトークン記憶部１４から削減する。
【００２７】
また、第１の判断部１７は、第１の通信部１１が接続されるＰＣ１０１がデータの輻輳に対する輻輳制御機能を有しているか否かを判断する。
第１の制御部１６は、第１の検出部１５により検出されたトークン量が第１の閾値よりも小さい第２の閾値以下であり、かつ第１の判断部１７により第１の通信部１１が接続されるＰＣ１０１が輻輳制御機能を有していると判断した場合には、以下の動作を行う。第１の制御部１６は、第１の通信部１１が送信するデータに対し、当該輻輳制御機能を有効にするための第１の制御情報を付加して第１の通信部１１に送出させる。なお、トークン量が第２の閾値以下になっているということは、トークンが不足していることを意味している。
【００２８】
第１の制御部１６は、トークン量が第２の閾値以下の状態が一定時間以上継続している場合には、ネットワーク２０２側で輻輳が生じていると判断し、データに第１の制御情報を付加してＰＣ１０１に送信する。ＰＣ１０１は、第１の制御情報を受信した場合には、輻輳ウィンドウを減少させる。このようにして、ＰＣ１０１は、輻輳ウィンドウを減少するので、通信機器１へ出力するデータ量（パケット量）が減少される。また、ＰＣ１０１は、輻輳ウィンドウを減少させた後、規定上定められた量にしたがって輻輳ウィンドウを少しずつ増加させて行き、時間をかけてウィンドウの幅を元に戻してゆく。
【００２９】
ここで、ＴＣＰヘッダの構造について説明する。ＴＣＰヘッダは、図３に示すように、先頭から順番に、Ｓｏｕｒｃｅ  Ｐｏｒｔ（送信元ポート番号）、Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ（宛先ポート番号）、Ｓｅｑｕｅｎｃｅ  Ｎｕｍｂｅｒ（シーケンス番号）、Ａｃｋｎｏｗｌｅｄｇｍｅｎｔ  Ｎｕｍｂｅｒ（応答確認番号）、Ｄａｔａ  Ｏｆｆｓｅｔ（データオフセット）、Ｒｅｓｅｒｖｅｄ（予約）、Ｃｏｎｔｒｏｌ  Ｂｉｔｓ（制御ビット）、Ｗｉｎｄｏｗ（ウィンドウサイズ）、Ｃｈｅｃｋｓｕｍ（チェックサム）、Ｕｒｇｅｎｔ  Ｐｏｉｎｔｅｒ（緊急ポインタ）、Ｏｐｔｉｏｎｓ（オプション）、Ｐａｄｄｉｎｇ（パディング）により構成されている。
【００３０】
また、制御ビットは、輻輳ウィンドウの減少を通知するＣＷＲ（輻輳ウィンドウ減少）と、輻輳の発生を相手の機器に通知するＥＣＥ（ＥＣＮ−Ｅｃｈｏ）と、緊急ポインタフィールドを使うように指示するＵＲＧ（緊急フラグ）と、セグメントが応答確認を持っている旨を示すＡＣＫ（応答確認フラグ）と、受信可能になったらすぐに送信されるＰＳＨ（転送強制フラグ）と、正しくないパケットを受け取ったときの通信リセットの指示を示すＲＳＴ（リセットフラグ）と、先頭シーケンス番号の転送を示すＳＹＮ（同期フラグ）と、送信終了又は受信可能を示すＦＩＮ（転送終了フラグ）とにより構成されている。
【００３１】
具体的には、第１の制御部１６は、第１の検出部１５により検出されたトークン量が第１の閾値よりも小さい第２の閾値以下であり、第１の判断部１７により第１の通信部１１が接続されるＰＣ１０１が輻輳制御機能を有していると判断した場合には、第１の通信部１１からＰＣ１０１にデータを送信する際に、ＴＣＰヘッダの制御ビットのＥＣＥフラグ（第１の制御情報に相当する）を「１」にセットする。
【００３２】
このようにして、通信機器１は、ＰＣ１０１がＥＣＮに対応している場合には、トークン量（トークンレート）に応じて、ＰＣ１０１との間において輻輳制御を行うことができる。
【００３３】
したがって、トークンレートを利用してトラフィック制御を行う従来の構成では、通信機器に対するデータの入力速度がデータの出力速度よりも大きくなり、通信機器内部のパケットバッファが溢れてしまい、パケットが消失する危険性があったが、本実施形態に係る通信機器１では、パケットの消失を回避することができる。
【００３４】
また、通信機器１では、上述したようにパケットの消失を回避することができるので、パケットの消失に起因して生じるパケットの再送を抑制することができ、回線リソースの有効活用を図ることができる。
また、通信機器１では、パケットバッファへのバッファリング処理を不要とすることもできるので、従来の構成に比べて処理負担の軽減を図ることができる。
【００３５】
また、第１の判断部１７は、第１の通信部１１により受信したデータに輻輳制御機能を有する旨の第２の制御情報が含まれているか否かにより第１の通信部１１が接続されるＰＣ１０１が輻輳制御機能を有しているか否かを判断する。
具体的には、第１の判断部１７は、第１の通信部１１により受信したデータに含まれているＴＣＰヘッダの制御ビットのＥＣＥフラグとＣＷＲフラグ（第２の制御情報に相当する）が「１」にセットされていればＰＣ１０１が輻輳制御機能を有していると判断する。
【００３６】
また、第１の制御部１６は、第１の通信部１１により、接続されるＰＣ１０１から輻輳ウィンドウを減少させた旨の第３の制御情報が付加されたデータを受信した場合には、データから第３の制御情報を削除し、当該第３の制御情報が削除されたデータを第２の通信部１２によりネットワーク２０２へ送信するように制御する。
【００３７】
具体的には、第１の制御部１６は、ＰＣ１０１からＴＣＰヘッダの制御ビットのＣＷＲフラグ（第３の制御情報に相当する）が「１」にセットされたデータを受信した場合には、ＣＷＲフラグを「０」にセットし直したデータをネットワーク２０２へ送信するように制御する。
このように構成されることにより、ＰＣ１０１と通信機器１との間において輻輳の制御を行い、ネットワーク２０２側には影響を与えないようにすることができる。
【００３８】
＜第２の実施例＞
上述した第１の実施例では、通信機器１を介してＰＣ１０１からネットワーク２０２へデータを送信する際において、ネットワーク２０２側で輻輳が生じた場合における通信機器１の制御について説明した。第２の実施例では、ネットワーク２０２側のＰＣ３０１から通信機器１を介してＰＣ１０１へデータを送信する際において、ＰＣ１０１で輻輳が生じた場合における通信機器１の制御について説明する。なお、通信機器１と同一の構成及び動作を行う要素には同一の番号を付して説明する。
【００３９】
通信機器１は、図４に示すように、第１の通信部１１と、第２の通信部１２と、第２のトークン生成部２１と、第２のトークン記憶部２２と、第２の検出部２３と、第２の制御部２４と、第２の判断部２５と、を備える。なお、これらの構成は、第１の実施例における通信機器１にさらに備えられても良い。
【００４０】
第１の通信部１１は、ＰＣ１０１に接続され、データを授受する。具体的には、第１の通信部１１は、データをＰＣ１０１へ送信する送信ポートと、ＰＣ１０１から送信されてきたデータを受信する受信ポートにより構成されている。
【００４１】
第２の通信部１２は、ネットワーク２０２側から、第１の通信部１１により送信するためのデータを受信し、第１の通信部１１により受信したデータをネットワーク２０２側に送信する。具体的には、第２の通信部１２は、ネットワーク２０２側へデータを送信する送信ポートと、ネットワーク２０２側から送信されてきたデータを受信する受信ポートにより構成されている。
【００４２】
第２のトークン生成部２１は、所定のデータ量により構成されているトークンを生成する。第２のトークン記憶部２２は、第２のトークン生成部２１で生成されたトークンを記憶する。第２の検出部２３は、第２のトークン記憶部２２に記憶されているトークン量を検出する。第２の制御部２４は、第２の検出部２３により検出されたトークン量が第１の閾値に達したか否かを判断し、トークン量が第１の閾値に達していると判断した場合には、第２の通信部１２により受信したデータを当該トークン量に応じた分だけ第１の通信部１１によりＰＣ１０１へ送信するように制御する。
【００４３】
また、第２の制御部２４は、第２のトークン記憶部２２に蓄積されるトークンが第１の閾値に達したことを第２の検出部２３による検出結果から判断した場合に、蓄積されているトークン量に見合う分のデータを第１の通信部１１によりＰＣ１０１へ送信するように制御する。また、第２の制御部２４は、データが送信された後、送信されたデータに見合う分のトークンを第２のトークン記憶部２２から削減する。
【００４４】
また、第２の判断部２５は、ネットワーク２０２側の機器（以下、ＰＣ３０１という。）がデータの輻輳に対する輻輳制御機能を有しているか否かを判断する。
このように構成される場合には、第２の制御部２４は、第２の検出部２３により検出されたトークン量が第１の閾値よりも小さい第２の閾値以下であり、第２の判断部２５によりネットワーク２０２側のＰＣ３０１が輻輳制御機能を有していると判断した場合には、第１の通信部１１により受信したデータに対し、当該輻輳制御機能を有効にするための第４の制御情報を付加して第２の通信部１２に送出させる。なお、トークン量が第２の閾値以下になっているということは、トークンが不足していることを意味している。
【００４５】
第２の制御部２４は、トークン量が第２の閾値以下の状態が一定時間以上継続している場合には、ＰＣ１０１で輻輳が生じていると判断し、データに付加されるＴＣＰヘッダの制御ビットのＥＣＥフラグ（第４の制御情報に相当する）を「１」にセットしてネットワーク２０２に送信する。ＰＣ３０１は、第４の制御情報を受信した場合には、輻輳ウィンドウを減少させる。このようにして、ＰＣ３０１は、輻輳ウィンドウを減少するので、ネットワーク２０２を介して通信機器１へ送信するデータ量（パケット量）を減少する。また、ＰＣ３０１は、輻輳ウィンドウを減少させた後、規定上定められた量にしたがって輻輳ウィンドウを少しずつ増加させて行き、時間をかけてウィンドウの幅を元に戻してゆく。
【００４６】
このようにして、通信機器１は、ＰＣ３０１がＥＣＮに対応している場合には、トークン量（トークンレート）に応じて、ＰＣ３０１との間において輻輳制御を行うことができる。
【００４７】
したがって、トークンレートを利用してトラフィック制御を行う従来の構成では、通信機器に対するデータの入力速度がデータの出力速度よりも大きくなり、通信機器内部のパケットバッファが溢れてしまい、パケットが消失する危険性があったが、本実施形態に係る通信機器１では、パケットの消失を回避することができる。
【００４８】
また、通信機器１では、上述したようにパケットの消失を回避することができるので、パケットの消失に起因して生じるパケットの再送を抑制することができ、回線リソースの有効活用を図ることができる。
また、通信機器１では、パケットバッファへのバッファリング処理を不要とすることもできるので、従来の構成に比べて処理負担の軽減を図ることができる。
【００４９】
第２の判断部２５は、第２の通信部１２により受信したデータに輻輳制御機能を有する旨の第５の制御情報が含まれているか否かによりネットワーク２０２側のＰＣ３０１が輻輳制御機能を有しているか否かを判断する。
具体的には、第２の判断部２５は、第２の通信部１２により受信したデータに含まれているＴＣＰヘッダの制御ビットのＥＣＥフラグとＣＷＲフラグ（第５の制御情報に相当する）が「１」にセットされていればＰＣ３０１が輻輳制御機能を有していると判断する。
【００５０】
また、第２の制御部２４は、第２の通信部１２によりネットワーク２０２側のＰＣ３０１から輻輳ウィンドウを減少させた旨の第６の制御情報が付加されたデータを受信した場合には、データから第６の制御情報を削除し、当該第６の制御情報が削除されたデータを第１の通信部１１によりＰＣ１０１へ送信するように制御する。
【００５１】
具体的には、第２の制御部２４は、ＰＣ３０１からＴＣＰヘッダの制御ビットのＣＷＲフラグ（第６の制御情報に相当する）が「１」にセットされたデータを受信した場合には、ＣＷＲフラグを「０」にセットし直したデータをＰＣ１０１へ送信するように制御する。
このように構成されることにより、ネットワーク２０２を介してＰＣ３０１と通信機器１との間において輻輳の制御を行い、ＰＣ１０１には影響を与えないようにすることができる。
【００５２】
＜ＴＣＰコネクションの確立シーケンス（１）＞
ここで、ＰＣ１０１がＥＣＮに対応しており、ネットワーク２０２側がＥＣＮに対応していない場合におけるＴＣＰコネクションの確立シーケンスについて、図５を参照しながら説明する。なお、ネットワーク２０２側とは、ネットワーク２０２に接続されており、ＰＣ１０１の送信先の機器を含めた概念である。
ＰＣ１０１は、ＴＣＰ確立を行うためにＳＹＮ（Ｓｙｎｃｈｒｏｎｉｚｅ）パケットを送信する（ステップＳＴ１）。当該ＳＹＮパケットには、ＥＣＮに対応していることを示すＥＣＥフラグとＣＷＲフラグが付加されている。
また、通信機器１は、当該ＳＹＮパケットによりＰＣ１０１がＥＣＮに対応していることを記憶し、そのままネットワークに転送する（ステップＳＴ２）。
ネットワーク２０２側は、送信されてきたＳＹＮパケットに対し、ＳＹＮ／ＡＣＫ（ＳＹＮ−Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）パケットを送信（返信）する（ステップＳＴ３）。ここで、ネットワーク２０２側がＥＣＮに対応していない場合には、ＥＣＥフラグは付加されない。
【００５３】
そして、通信機器１は、ＰＣ１０１がＥＣＮをサポートしているため、ネットワーク２０２側から返信されてきたパケットのヘッダにＥＣＥフラグを付加してＰＣ１０１に送信し、自身のＥＣＮを有効状態にする（ステップＳＴ４）。
【００５４】
つまり、通信機器１は、ＴＣＰ確立の３ｗａｙハンドシェイクにおいて、ネットワーク２０２側から受信したＴＣＰ／ＩＰパケットのヘッダの制御ビットにＥＣＥフラグが付加されていない場合、通信機器１のＥＣＮを有効状態「ＯＮ」にし、ヘッダの制御ビットにＥＣＥフラグを付加し、ネットワーク２０２側がＥＣＮを有しているかのようにＰＣ１０１に見せることにより、ＰＣ１０１のＥＣＮを有効状態にする。以降は、ＰＣ１０１と通信機器１との間でＥＣＮ制御を行う。
【００５５】
このように構成されることにより、通信機器１は、あたかもネットワーク２０２側がＥＣＮをサポートしているかのようにＰＣ１０１に見せかけることができる。したがって、ＴＣＰコネクションの確立シーケンス以降、ＰＣ１０１と通信機器１との間では、ＥＣＮ制御によりデータ通信を行うことができる。
【００５６】
＜ＴＣＰコネクションの確立シーケンス（２）＞
つぎに、ＰＣ１０１がＥＣＮに対応しておらず、ネットワーク２０２側がＥＣＮに対応している場合におけるＴＣＰコネクションの確立シーケンスについて、図６を参照しながら説明する。なお、ネットワーク２０２側とは、ネットワーク２０２に接続されており、ＰＣ１０１の送信先の機器を含めた概念である。
【００５７】
ＰＣ１０１は、ＴＣＰ確立を行うためにＳＹＮパケットを送信する（ステップＳＴ１１）。本シーケンスにおいては、ＰＣ１０１は、ＥＣＮに対応していないため、ＳＹＮパケットにはＥＣＥフラグとＣＷＲフラグが付加されていない。
また、通信機器１は、当該ＳＹＮパケットのヘッダにＥＣＥフラグとＣＷＲフラグを付加し、ネットワーク２０２側に転送する（ステップＳＴ１２）。この動作により、通信機器１は、あたかもＰＣ１０１がＥＣＮに対応しているかのようにネットワーク２０２側に見せることができる。
【００５８】
また、ネットワーク２０２は、受信したＳＹＮパケットに対し、ＳＹＮ／ＡＣＫ（ＳＹＮ−Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）パケットに対する応答パケットを返信する（ステップＳＴ１３）。当該応答パケットには、ＥＣＮに対応していることを示すＥＣＥフラグが付加されている。
また、通信機器１は、ＰＣ１０１がＥＣＮに対応していないため、ネットワーク２０２から送信されてきた応答パケットのヘッダからＥＣＥフラグを除去して、ＰＣ１０１に転送する（ステップＳＴ１４）。
【００５９】
つまり、通信機器１は、ＴＣＰ確立の３ｗａｙハンドシェイクにおいて、ＰＣ１０１から受信したＴＣＰ／ＩＰパケットのヘッダ部を改変してＥＣＥフラグを付加し、あたかもＰＣ１０１がＥＣＮに対応しているかのようにネットワーク２０２側に見せかけ、ネットワーク側のＥＣＮを有効な状態にすることができる。以降は、ネットワーク２０２側と通信機器１との間でＥＣＮ制御を行う。
【００６０】
なお、ＰＣ１０１とネットワーク２０２側の双方がＥＣＮに対応していない場合には、通信機器１は、単にネゴシエーションの状況をモニタし、ＥＣＮが使用可能となったかどうかを記憶するように動作する。
【００６１】
＜ネットワーク２０２側で輻輳が生じた場合のＰＣ１０１の動作＞
つぎに、ネットワーク２０２側で輻輳が生じた場合のＰＣ１０１の動作について図７を参照しながら説明する。
通信機器１は、ＰＣ１０１からネットワーク２０２側への上りパケットを出力するだけのトークンが所定量に達していない、つまり、第２の閾値以下の状態が一定時間以上継続したことを検出する（ステップＳＴ２１）。なお、通信機器１は、トークンが所定量に達していない場合には、ネットワーク２０２側に上りパケットを出力できない。
【００６２】
通信機器１は、ステップＳＴ２１の工程によりトークンが所定量に達していないことを検出した場合には、その後にネットワーク２０２側から受信した応答パケット（図７中においては、「Ａｃｋ＃＝２０００」）のＴＣＰヘッダ部に、輻輳が発生したことを示すＥＣＥフラグを付加してＰＣ１０１に転送する（ステップＳＴ２２）。
【００６３】
ＰＣ１０１は、ＥＣＥフラグが付加された応答パケットを受信すると、ＥＣＮの輻輳制御にしたがって輻輳ウィンドウを減少させる（ステップＳＴ２３）。そして、ＰＣ１０１は、輻輳ウィンドウを減少した後に出力する送信パケット（図７中においては、「Ｓｅｑ＃＝６０００」）のＴＣＰヘッダに輻輳ウィンドウを減少させたことを示すＣＷＲフラグを付加する（ステップＳＴ２４）。
通信機器１は、受信した送信パケットのＴＣＰヘッダのＣＷＲフラグを除去して、ネットワーク２０２側に転送する（ステップＳＴ２５）。
【００６４】
このようにして、通信機器１は、３ｗａｙハンドシェイクによってＰＣ１０１がＥＣＮに対応していることが確認できた場合には、ネットワーク２０２側がＥＣＮに対応していなくても上りパケットの送信速度を制限することができる。具体的には、通信機器１は、トラフィック制御のトークンバケット機構とトークンレートを利用し、トークンが足りない場合にはＰＣ１０１側にＥＣＮによる輻輳通知を行い、ＰＣ１０１側の送信速度を制御する。
【００６５】
＜ＰＣ１０１で輻輳が生じた場合のネットワーク２０２側の動作＞
つぎに、ＰＣ１０１で輻輳が生じた場合のネットワーク２０２側の動作について図８を参照しながら説明する。
通信機器１は、ネットワーク２０２側からＰＣ１０１への下りパケットを出力するだけのトークンが所定量に達していない、つまり、第２の閾値以下の状態が一定時間以上継続したことを検出する（ステップＳＴ３１）。なお、通信機器１は、トークンが所定量に達していない場合には、ＰＣ１０１に下りパケットを出力できない。
【００６６】
通信機器１は、ステップＳＴ３１の工程によりトークンが所定量に達していないことを検出した場合には、その後にＰＣ１０１から受信した応答パケット（図８中においては、「Ａｃｋ＃＝２０００」）のＴＣＰヘッダ部に、輻輳が発生したことを示すＥＣＥフラグを付加してネットワーク２０２側に転送する（ステップＳＴ３２）。
【００６７】
ネットワーク２０２側は、ＥＣＥフラグが付加された応答パケットを受信すると、ＥＣＮの輻輳制御にしたがって輻輳ウィンドウを減少させる（ステップＳＴ３３）。そして、ネットワーク２０２側は、輻輳ウィンドウを減少した後に出力する送信パケット（図８中においては、「Ｓｅｑ＃＝６０００」）のＴＣＰヘッダに輻輳ウィンドウを減少させたことを示すＣＷＲフラグを付加する（ステップＳＴ３４）。
通信機器１は、受信した送信パケットのＴＣＰヘッダのＣＷＲフラグを除去して、ＰＣ１０１に転送する（ステップＳＴ３５）。
【００６８】
このようにして、通信機器１は、３ｗａｙハンドシェイクによってネットワーク２０２側がＥＣＮに対応していることが確認できた場合には、ＰＣ１０１がＥＣＮに対応していなくても下りパケットの送信速度を制限することができる。具体的には、通信機器１は、トラフィック制御のトークンバケット機構とトークンレートを利用し、トークンが足りない場合にはネットワーク２０２側にＥＣＮによる輻輳通知を行い、ネットワーク２０２側の送信速度を制御する。
【符号の説明】
【００６９】
１  通信機器
１１  第１の通信部
１２  第２の通信部
１３  第１のトークン生成部
１４  第１のトークン記憶部
１５  第１の検出部
１６  第１の制御部
１７  第１の判断部
２１  第２のトークン生成部
２２  第２のトークン記憶部
２３  第２の検出部
２４  第２の制御部
２５  第２の判断部
【図１】
2010232876.tif 000003
【図２】
2010232876.tif 000004
【図３】
2010232876.tif 000005
【図４】
2010232876.tif 000006
【図５】
2010232876.tif 000007
【図６】
2010232876.tif 000008
【図７】
2010232876.tif 000009
【図８】
2010232876.tif 000010
【図９】
2010232876.tif 000011
【図１０】
2010232876.tif 000012