(57)【要約】【課題】輻輳状態の解消を即座に端末に対して通知することができ、ＴＣＰコネクション毎にトラフィックの制限の程度を制御する。【解決手段】TCPパケットの属するTCPコネクションをパケット識別手段104により識別し、キュー管理手段111は、パケットキュー106の残り容量に応じてwindow sizeの値を計算して、TCPコネクション毎のwindow sizeの値をフロー管理テーブル110に格納して管理し、window size変更手段105は、中継するTCPパケットの属するTCPコネクションのwindow sizeをフロー管理テーブルから取得し、当該TCPパケットのwindow sizeフィールドを書き換えてからそのTCPパケットを前記パケットキューに格納して中継する。また、キュー管理手段111は、パケットキュー106の残り容量が予め設定した値以上になった場合、その旨を端末に知らせるACKパケットをACKパケット生成手段112に作成させる。【選択図】      図１
2006129024.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク間中継機能を有する無線アクセスポイントの輻輳制御方法において、前記無線アクセスポイントは、中継するパケットを一時的に格納するパケットキューの残り容量に応じて中継するＴＣＰコネクション毎のパケットの転送サイズの値を計算して管理し、パケットキューの残り容量に応じて計算した前記パケットの転送サイズの値により中継するＴＣＰパケットの転送サイズフィールドを書き換えてから、そのＴＣＰパケットを中継することを特徴とする輻輳制御方法。
【請求項２】
前記パケットキューの残り容量が予め設定した値以上になった場合、パケットの転送サイズを変更したＴＣＰパケットを送信した端末に対して、変更前のパケットの転送サイズの値をパケットの転送サイズとして持つパケットの送信を指示することを特徴とする請求項１記載の輻輳制御方法。
【請求項３】
前記計算したパケットの転送サイズの値が増加した場合、前記パケットの転送サイズを変更したＴＣＰパケットを送信した端末に対して、前記増加したパケットの転送サイズの値をパケットの転送サイズとして持つパケットの送信を指示することを特徴とする請求項１記載の輻輳制御方法。
【請求項４】
ネットワーク間中継機能を有する無線アクセスポイントにおいて、前記無線アクセスポイントは、中継するパケットを一時的に格納するパケットキューと、中継するＴＣＰパケットの転送サイズフィールドを書き換えるパケットの転送サイズ変更手段と、ＴＣＰコネクション毎の情報を管理するフロー管理テーブルと、パケットキューの残り容量に応じてパケットの転送サイズの値を計算するキュー管理手段とを有し、前記キュー管理手段は、計算したＴＣＰコネクション毎のパケットの転送サイズの値を前記フロー管理テーブルに格納して管理し、前記パケットの転送サイズ変更手段は、中継するＴＣＰパケットの属するＴＣＰコネクションのパケットの転送サイズを前記フロー管理テーブルから取得し、当該ＴＣＰパケットの転送サイズフィールドを書き換えてからそのＴＣＰパケットを前記パケットキューに格納することを特徴とする無線アクセスポイント。
【請求項５】
ＡＣＫフラグが１でありデータ長が０であるＴＣＰパケットを生成するＡＣＫパケット生成手段を有し、前記パケットキューの残り容量が予め設定した値以上になった場合、前記パケットの転送サイズ変更手段でパケットの転送サイズを変更されたＴＣＰパケットを送信した端末に対して、前記ＡＣＫパケット生成手段により生成したＡＣＫパケットを送信することにより、変更前のパケットの転送サイズの値をパケットの転送サイズとして持つパケットの送信を指示することを特徴とする請求項４記載の無線アクセスポイント。
【請求項６】
ＡＣＫフラグが１でありデータ長が０であるＴＣＰパケットを生成するＡＣＫパケット生成手段を有し、前記キュー管理手段で計算したパケットの転送サイズの値が増加した場合、前記パケットの転送サイズ変更手段でパケットの転送サイズを変更されたＴＣＰパケットを送信した端末に対して、前記ＡＣＫパケット生成手段により生成した、パケットの転送サイズフィールドに増加したパケットの転送サイズの値を持つＡＣＫパケットを送信することにより、前記増加したパケットの転送サイズの値をパケットの転送サイズとして持つパケットの送信を指示することを特徴とする請求項４記載の無線アクセスポイント。
【請求項７】
前記キュー管理手段は、計算したパケットの転送サイズに対してＴＣＰコネクション毎に異なる係数を乗じ、ＴＣＰコネクション毎に重みを付けたパケットの転送サイズの値を前記フロー管理テーブルに格納して管理することを特徴とする請求項４記載の無線アクセスポイント。
【請求項８】
前記パケットの転送サイズ変更手段は、一定のデータ量以上のデータを通信したＴＣＰコネクションに属するＴＣＰパケットに限定して前記パケットの転送サイズを書き換えることを特徴とする請求項４記載の無線アクセスポイント。
【請求項９】
請求項４記載の無線アクセスポイントを用いて構成されることを特徴とする無線ＬＡＮシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、輻輳制御方法、無線アクセスポイント及び無線ＬＡＮに係り、特に、ネットワーク間中継機能を有する無線アクセスポイントにおける輻輳制御方法、無線アクセスポイント及び無線ＬＡＮに関する。
【背景技術】
【０００２】
無線ＬＡＮ(Local Area Network)システムに関する規格として、ＩＥＥＥ(the Institute of Electrical and Electronics Engineers)802.11 規格に代表されるＣＳＭＡ／ＣＡ(Carrier Sense Multiple Access with Collision Avoidance)方式の無線ＬＡＮ(Local Area Network)において、ネットワーク端末間の無線通信を無線アクセスポイントが中継する通信方法（802.11におけるInfrastructure mode)が規定されている。この無線ＬＡＮシステムでの通信方法は、同一無線ＬＡＮに参加している無線アクセスポイントと複数のネットワーク端末との間で送信権の調停を行い、送信権を獲得したネットワーク端末または無線アクセスポイントが無線ＬＡＮ上でパケットの送信を行うというものである。
【０００３】
送信権は、各ネットワーク端末と無線アクセスポイントとに同等の確率で割り当てられる。このため、無線ＬＡＮで同時にｎ組の通信が行われている場合、およそ（ｎ＋１）分のｎの確率でネットワーク端末から無線アクセスポイントへパケットが送信され、無線アクセスポイントからネットワーク端末への送信はおよそ（ｎ＋１）分の１の確率でしか送信権が割り当てられないことになり、無線アクセスポイント内にパケットが集中する輻輳状態が発生するおそれがある。
【０００４】
無線アクセスポイント等のネットワーク機器における輻輳制御を行う従来技術として例えば、特許文献１等に記載された技術が知られている。この従来技術の方法は、輻輳制御のためにＴＣＰ(Transmission Control Protocol）パケットの転送サイズ（確認応答なしで１度に転送することができるパケットのサイズであり、以下、window size という）を書き換えるというものであり、ネットワーク間中継装置のパケットキューの残り容量が少なくなったときに、ＴＣＰパケットのwindow size を小さい値（全てのＴＣＰコネクションに対して一律な値）に書き換えることにより、ＴＣＰトラフィックを抑制し輻輳状態の緩和を図ることができる。
【特許文献１】特開２００２−３１４５９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、前述した従来技術による方法は、輻輳状態が解消してもネットワーク間中継装置から端末に対して輻輳状態が解消したことの通知を行っていないため、端末間でＡＣＫが通知されるまで通信のスループットが低く抑えられた状態が継続し、特に、window size を０にまで減少させた場合、端末間でのＡＣＫ通知が行われなくなるため、輻輳が解消しても数分程度の間通信が途絶するおそれがあるという問題点を有している。
【０００６】
また、前述した従来技術は、データ通信量の多いＴＣＰコネクションも、データ通信量の少ないＴＣＰコネクションも一律に処理しているため、データ通信量の多い特定のＴＣＰコネクションにより輻輳状態が発生した場合に、データ通信量の少ないＴＣＰコネクションまでトラフィックを抑制されてしまうという問題点を有している。さらに、前述した従来技術は、優先するトラフィックと一般のトラフィックとを区別することもできないという問題点を有している。
【０００７】
本発明の目的は、前述した従来技術の問題点を解決し、輻輳状態の解消を即座に端末に対して通知することができ、全てのＴＣＰコネクションを一律に扱うのではなく、ＴＣＰコネクション毎にトラフィックの制限の程度を制御することを可能にした輻輳制御方法、無線アクセスポイント及び無線ＬＡＮシステムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明によれば前記目的は、ネットワーク間中継機能を有する無線アクセスポイントの輻輳制御方法において、前記無線アクセスポイントが、中継するパケットを一時的に格納するパケットキューの残り容量に応じて中継するＴＣＰコネクション毎のwindow size の値を計算して管理し、パケットキューの残り容量に応じて計算した前記window size の値により中継するＴＣＰパケットのwindow size フィールドを書き換えてから、そのＴＣＰパケットを中継することにより達成される。
【０００９】
また、前記目的は、ネットワーク間中継機能を有する無線アクセスポイントにおいて、前記無線アクセスポイントが、中継するパケットを一時的に格納するパケットキューと、中継するＴＣＰパケットのwindow size フィールドを書き換えるwindow size 変更手段と、ＴＣＰコネクション毎の情報を管理するフロー管理テーブルと、パケットキューの残り容量に応じてwindow size の値を計算するキュー管理手段とを有し、前記キュー管理手段が、計算したＴＣＰコネクション毎のwindow size の値を前記フロー管理テーブルに格納して管理し、前記window size 変更手段が、中継するＴＣＰパケットの属するＴＣＰコネクションのwindow size を前記フロー管理テーブルから取得し、当該ＴＣＰパケットのwindow size フィールドを書き換えてからそのＴＣＰパケットを前記パケットキューに格納することにより達成される。
【発明の効果】
【００１０】
本発明によれば、無線アクセスポイントでの輻輳状態が解消した場合、ＴＣＰパケットの送受信を行っている各ＴＣＰコネクションの端末に対して、ＡＣＫパケットを生成して送信することにより、輻輳状態の解消を即座に通知することができる。また、本発明によれば、ＴＣＰコネクション単位で情報を管理しているため、トラフィックを制限するＴＣＰコネクションの選択や、ＴＣＰコネクション毎に重み付けを行うことが可能である。
【発明を実施するための最良の形態】
【００１１】
以下、本発明による無線アクセスポイントにおける輻輳制御方法及び無線アクセスポイントの実施形態を図面により詳細に説明する。
【００１２】
図１は本発明の第１の実施形態による無線アクセスポイントの構成を示すブロック図である。図１において、１００は無線ネットワーク、１０１は無線アクセスポイント、１０３は通信インタフェース、１０４はパケット識別手段、１０５はwindow size 変更手段、１０６はパケットキュー、１１０はフロー管理手段、１１１はキュー管理手段、１１２はＡＣＫパケット生成手段である。
【００１３】
なお、図１に示す本発明の第１の実施形態による無線アクセスポイント１０１の構成は、本発明に必要な無線ネットワーク１００を介する端末装置相互間の無線通信の中継のための構成だけを示しており、無線ネットワーク１００を介して無線アクセスポイント１０１に接続される端末装置が有線ネットワークを介して接続されるサービスプロバイダ等との通信を行うための構成については、公知の構成であり図１には示していない。
【００１４】
本発明の第１の実施形態による無線アクセスポイント１０１は、ＩＥＥＥ802.11a に準拠する無線ネットワーク１００におけるネットワーク端末間のInfrastructure mode での通信を中継するものである。本発明は、同様の通信形態を用いる他の無線ＬＡＮ規格、例えば、ＩＥＥＥ802.11g 等にも適用することができる。そして、図示アクセスポイント１０１は、無線ネットワーク１００を介するパケットの送受信を行う通信インターフェース１０３と、受信したパケットがＴＣＰパケットかその他のパケットかを判別するパケット識別手段１０４と、ＴＣＰパケットのwindow size を変更するwindow size 変更手段１０５と、パケットを一時的に格納するパケットキュー１０６と、ＴＣＰパケットのＴＣＰヘッダにあるwindow size のフィールドを変更するか否かを管理するフロー管理テーブル１１０と、パケットキュー１０６の残量を監視し、そのの残量に応じてフロー管理テーブル１１０の内容を更新するキュー管理手段１１１と、フロー管理テーブル１１０の該当エントリの内容を元にＡＣＫパケットを生成するＡＣＫパケット生成手段１１２とにより構成される。
【００１５】
無線ネットワーク１００を介するパケットの送受信は、通信インターフェース１０３で行われ、通信インターフェース１０３で受信したパケットは、パケット識別手段１０４によりＴＣＰパケットとその他のパケットとに分類され、ＴＣＰパケットはwindow size 変更手段１０５に送られ、その他のパケットはパケットキュー１０６に送られる。パケット識別手段１０４は、パケットのＭＡＣ(Media Access Control)ヘッダ及びＩＰ(Internet Protocol) ヘッダの情報によりＴＣＰパケットを識別する。パケット識別手段１０４は、半導体の論理回路として実装してもよいし、ソフトウェアとして実装することも可能である。
【００１６】
パケットを一時的に格納するパケットキュー１０６は、ＦＩＦＯ(First In First Out)バッファであり、このパケットキュー１０６に格納されたパケットは、通信インターフェース１０３を介して無線ネットワーク１００に送信される。
【００１７】
window size 変更手段１０５は、ＴＣＰパケットのＴＣＰヘッダにあるwindow size フィールドを変更するか否かをフロー管理テーブル１１０の内容に基づいて判断し、必要に応じてＴＣＰパケットのwindow size を書き換える。このwindow size 変更手段１０５は、半導体の論理回路として実装してもよいし、ソフトウェアとして実装することも可能である。
【００１８】
キュー管理手段１１１は、パケットキュー１０６の残量を監視し、パケットキュー１０６の残量に応じてフロー管理テーブル１１０の内容を更新する。また、キュー管理手段１１１は、ＡＣＫパケットの生成が必要だと判断した場合、ＡＣＫパケット生成手段１１２に対してエントリ番号とフロー方向とを通知する。このキュー管理手段１１１は、半導体の論理回路として実装してもよいし、ソフトウェアとして実装することも可能である。
【００１９】
ＡＣＫパケット生成手段１１２は、キュー管理手段１１１からエントリ番号とフロー方向との通知を受け、フロー管理テーブル１１０の該当するエントリの内容を元にＡＣＫパケットを生成し、生成したＡＣＫパケットをパケットキュー１０６に格納する。このＡＣＫパケット生成手段１１２は、半導体の論理回路として実装してもよいし、ソフトウェアとして実装することも可能である。
【００２０】
フロー管理テーブル１１０には、無線ネットワーク１００で現在通信が行われているＴＣＰコネクションの情報が登録されている。ＴＣＰコネクションは、ＴＣＰによる双方向のデータ通信で、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート番号、宛先ポート番号の組み合わせで一意に識別することができる。以下の説明では、送信元ＩＰアドレスの送信元ポート番号から宛先ＩＰアドレスの宛先ポート番号へと送られるＴＣＰパケットによる通信を「順方向のフロー」、宛先ＩＰアドレスの宛先ポート番号から送信元ＩＰアドレスの送信元ポート番号へと送られるＴＣＰパケットによる通信を「逆方向のフロー」、両者を一括して「フロー」と記述することとする。
【００２１】
図２はフロー管理テーブル１１０に格納管理されているエントリ２００の構成を説明する図であり、次に、これについて説明する。
【００２２】
フロー管理テーブル１１０は、情報をＴＣＰコネクション単位のエントリ２００として管理する。エントリ２００の内容は、ＴＣＰコネクションを一意に識別するための送信元アドレス２０１、宛先アドレス２０２、送信元ポート２０３、宛先ポート２０４、ＴＣＰコネクションで送受信されるデータサイズの単位であるＭＳＳ(Maximum Segment Size)２０５、及び、順方向、逆方向それぞれのフローに関する情報である。各フローに関する情報は、中継したパケットのデータ量の合計である累積データ長２１１、フローに属する最後に中継したＴＣＰパケットのwindow size の値である実サイズ２１２、window size 変更手段１０５で変更する場合のwindow size の値である仮サイズ２１３、window size 変更手段１０５での変更対象か否かを示す制限対象フラグ２１４、無線アクセスポイント１０１で中継した該当フローに属するパケットのacknowledgment number であるＡＣＫ番号２１５、window size の変更を行ったことを示す変更フラグ２１６である。
【００２３】
図２には示していないが、各エントリ２００には、フロー管理テーブル１１０内でエントリ２００を一意に識別するためのエントリ番号が付与されている。また、フロー管理テーブル１１０の各エントリ２００の作成、更新は、window size 変更手段１０５が、中継されるＴＣＰパケットのヘッダ情報に基づいて行う。
【００２４】
本発明の第１の実施形態による無線アクセスポイント１０１は、パケットキュー１０６が輻輳した場合（パケットキューの残量が少なくなった場合）に、中継するＴＣＰパケットのwindow size の変更をwindow size 変更手段１０５で行い、各フローのデータ通信量を抑制することができる。書き換えるwindow size の値である仮サイズ２１３の値は、キュー管理手段１１１がパケットキュー１０６の残量に応じて計算する。
【００２５】
図３はキュー管理手段１１１による輻輳判定の処理動作を説明するフローチャートであり、次に、これについて説明する。図３に示すフローによる処理は、キュー管理手段１１１がパケットキュー１０６の残量に応じて、window size 変更でデータ通信量を抑制するレート制御の必要性を判断する処理である。パケットキュー１０６の残量が変化するのは、パケットキュー１０６に新たなパケットが格納された時と、通信インターフェース１０３によりパケットが送信されパケットキュー１０６内のパケットを格納していた領域が解放された時であり、そのタイミングでキュー管理手段１１１は図３に示すフローの処理を行う。キュー管理手段１１１は、輻輳状態という変数で現在のパケットキュー１０６の状態を管理しており、輻輳状態がＯＮであればレート制御が必要な状態、輻輳状態がＯＦＦであればレート制御が不要な状態である。
【００２６】
（１）この処理が開始されると、キュー管理手段１１１は、まず、現在の輻輳状態がＯＮであるかＯＦＦであるかを判定する（ステップ３０１）。
【００２７】
（２）ステップ３０１の判定で、輻輳状態がＯＦＦであった場合、現在のパケットキュー１０６の残量を予め設定した輻輳状態をＯＮにするスレッショルド値ＴＨonと比較し、パケットキュー１０６の残量がＴＨonを上回っているか否かを判定し、パケットキュー１０６の残量がＴＨonを上回っていた場合、まだ、輻輳状態に達しておらずレート制御が必要ないと判断して、ここでの輻輳判定処理を終了する（ステップ３０２）。
【００２８】
（３）ステップ３０２の判定で、パケットキュー１０６の残量がＴＨon以下であった場合、無線アクセスポイント１０１にパケットが集中している輻輳状態であると判断し、輻輳状態をＯＮにする（ステップ３０３）。
【００２９】
（４）続いて、window size 変更に必要なwindow size の仮サイズ２１３を計算する処理を行って、ここでの処理を終了する。なお、この仮サイズ計算処理の詳細については、図５に示すフローにより後述する（ステップ３０４）。
【００３０】
（５）ステップ３０１の判定で、現在の輻輳状態がＯＮであった場合、パケットキュー１０６の残量を予め設定した輻輳状態をＯＦＦにするスレッショルド値ＴＨoff と比較し、パケットキュー１０６の残量がＴＨoff を下回っているか否かを判定する（ステップ３０５）。
【００３１】
（６）ステップ３０５の判定で、パケットキュー１０６の残量がＴＨoff を下回っていた場合、輻輳状態が解消されていないと判断してwindow size 変更に必要なwindow size の仮サイズ２１３を計算する処理を行って、ここでの処理を終了する。なお、この仮サイズ計算処理の詳細については、図５に示すフローにより後述する（ステップ３０４）。
【００３２】
（７）ステップ３０５の判定で、パケットキュー１０６の残量がＴＨoff 以上であった場合、輻輳状態がが解消したと判断して輻輳状態をＯＦＦにし、window size 変更によるレート制御の効果を元に戻すためにＡＣＫ生成処理を行い、ここでの処理を終了する。なお、このＡＣＫ生成処理の詳細については、図４に示すフローにより後述する（ステップ３０６、３０７）。
【００３３】
なお、前述した処理において、輻輳状態のＯＮ、ＯＦＦが頻繁に切り替わることを防ぐために、スレッショルドの値は（ＴＨoff −ＴＨon）＞＞パケットサイズとなるように設定される。
【００３４】
図５は図３におけるステップ３０４でのwindow size の仮サイズ２１３を計算する処理動作を説明するフローチャートであり、次に、これについて説明する。この処理で行う仮サイズ２１３を計算する処理には、パケットキュー１０６の残り容量とフロー本数とを使用する。フロー本数とは、レート制限の対象となるフローの合計数を表す数値であり、具体的には、フロー管理テーブル１１０内の全エントリ２００の制限対象フラグ２２４を合計した値を表す変数である。そして、無線アクセスポイント１０１の初期化時にフロー本数を０とし、いずれかのエントリ２００の制限対象フラグ２２４が１にセットされる時にフロー本数に１を加算し、エントリ２００を削除する時に制限対象フラグ２２４の値をフロー本数から減算することにより、フロー本数が常にフロー管理テーブル１１０内の全エントリ２００の制限対象フラグ２２４を合計した値を表すように管理される。パケットキュー１０６の残り容量は、パケットキュー１０６のうち、パケット格納のために使用されていない領域の合計サイズをバイト単位で表したものである。
【００３５】
（１）キュー管理手段１１１は、まず、パケットキュー１０６の残り容量をフロー本数で割った値Ｘを求める。この値Ｘは、各フローに割り当てるパケットキュー１０６の容量を表す（ステップ５０１）。
【００３６】
（２）続いて、ステップ５０２からステップ５０７までの処理を、フロー管理テーブル１１０内の全てのエントリ２００に対して繰り返し行うことを設定する。
【００３７】
（３）その後、エントリ２００の順方向の制限対象フラグ２１４の値が１か０かを検査し、値が１であった場合、ステップ５０１の処理で求めたＸをエントリ２００のＭＳＳ２０５の倍数になるよう丸めた値を仮サイズ２１３とする。ＴＣＰによる通信はＭＳＳ単位でデータ通信が行われ端数は無視されるため、ここでの丸めの処理が必要となる（ステップ５０２、５０３）。
【００３８】
（４）ステップ５０３の処理で求めた仮サイズ２１３を実サイズ２１２と比較し、仮サイズ２１３が実サイズ２１２を上回っていた場合に、仮サイズ２１３を実サイズ２１２の値とする（ステップ５０４）。
【００３９】
（５）ステップ５０２の検査で、制限対象フラグ２１４の値が０であった場合、その順方向フローは、window size 変更によるレート制限の対象外であるので、仮サイズ２１３を計算する必要はなく、ステップ５０３、５０４の処理を行わず、ステップ５０５の処理に移行する。
【００４０】
（６）ステップ５０４の処理の後、あるいは、ステップ５０２の検査で、制限対象フラグ２１４の値が０であった場合、逆方向のフローについて、順方向フローに対するステップ５０２〜ステップ５０４での処理と同様の処理を行って仮サイズ２１３を計算し、仮サイズ２１３が実サイズ２１２を上回っていた場合に、仮サイズ２１３を実サイズ２１２の値とする（ステップ５０５〜５０７）。
【００４１】
フロー管理テーブル１１０に格納された仮サイズ２１３は、window size 変更手段１０５が輻輳制御を行うために中継するＴＣＰパケットのwindow size を変更するために用いられる。以下、図１に示す無線アクセスポイント１０１でのパケットの中継動作について説明する。
【００４２】
無線アクセスポイント１０１は、通信インターフェース１０３でＴＣＰパケット以外のパケットを受信すると、パケット識別手段１０４が、そのパケットがＴＣＰパケットでないことを判別してパケットキュー１０６に格納し、通信インターフェース１０３から送信する。この動作に関しては通常の無線アクセスポイントと同等である。
【００４３】
無線アクセスポイント１０１が通信インターフェース１０３でＴＣＰパケットを受信した場合、パケット識別手段１０４は、受信したパケットのヘッダ情報から受信したパケットがＴＣＰパケットであると識別し、受信したＴＣＰパケットをwindow size 変更手段１０５に送る。
【００４４】
図６、図７はwindow size 変更手段１０５によるＴＣＰパケットに対するwindow size 変更の処理動作を説明するフローチャートであり、次に、これについて説明する。なお、図６、図７に示すフローは、一連の処理であるので、以下の説明においても、一連のものとして説明する。
【００４５】
（１）window size 変更手段１０５は、まずＴＣＰパケットのヘッダにある送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号と一致する送信元アドレス２０１、送信元ポート２０３、宛先アドレス２０２、宛先ポート２０４を持つエントリ２００をフロー管理テーブル１１０から検索し、エントリ２００が見つかったか否かを判定する（ステップ６０１、６０２）。
【００４６】
（２）ステップ６０２の判定で、一致するエントリ２００がが見つかった場合、以後、順方向フローの情報についての処理を行うこととして、ステップ７０１からの処理に移行する（ステップ６０７）。
【００４７】
（３）ステップ６０２の判定で、一致するエントリ２００が見つからなかった場合、送信元アドレス、送信元ポートと宛先アドレス、宛先ポートとの情報が入れ替わったエントリ２００をフロー管理テーブル１１０から検索し、エントリ２００が見つかったか否かを判定する。送信元と宛先との情報が入れ替わったエントリ２００とは、ＴＣＰパケットの送信元ＩＰアドレスと送信元ポート番号がエントリ２００の宛先アドレス２０２と宛先ポート２０４と一致し、パケットの宛先ＩＰアドレスと宛先ポート番号がエントリ２００の送信元アドレス２０１と送信元ポート２０３と一致するエントリ２００である（ステップ６０３、６０４）。
【００４８】
（４）ステップ６０４の判定で、該当するエントリ２００が見つかった場合、以後、逆方向フローの情報についての処理を行うこととして、ステップ７０１からの処理に移行する（ステップ６０８）。
【００４９】
（５）ステップ６０４の判定で、該当するエントリ２００が見つからなかった場合、すなわち、ＴＣＰパケットのＩＰアドレス及びポート番号から前述したステップ６０１、６０３での二通りの検索を行っても該当するエントリ２００が見つからなかった場合、ＴＣＰパケットに対応するエントリ２００を新たに作成するか否かを判定するため、ＴＣＰパケットのＦＩＮフラグまたはＲＳＴフラグの値が１であるか０であるかを判定する（ステップ６０５）。
【００５０】
（６）ステップ６０５の判定で、ＴＣＰパケットのＦＩＮフラグまたはＲＳＴフラグの値が１であった場合、ＴＣＰパケットのフローは終了する直前であるため、新規エントリ２００の登録を省略し、そのＴＣＰパケットをパケットキュー１０６に格納して、ここでの処理を終了する（ステップ７１０）。
【００５１】
（７）ステップ６０５の判定で、ＦＩＮフラグ、ＲＳＴフラグとも０であった場合、新たなエントリ２００を作成し、順方向フローの情報として、ＴＣＰパケットのデータ長を累積データ長２１１に、ＴＣＰパケットのwindow size を実サイズ２１２および仮サイズ２１３に、０を制限対象フラグ２１４に、ＴＣＰパケットのacknowledgment number をＡＣＫ番号２２５に登録する。逆方向フローの情報には全て０を登録する。送信元アドレス２０１、宛先アドレス２０２、送信元ポート２０３、宛先ポート２０４には、それぞれＴＣＰパケットの該当する値を登録する。ＴＣＰパケットがＭＳＳオプションを含んでいる場合、ＴＣＰパケットのＭＳＳオプションの値をＭＳＳ２０５に登録する。ＴＣＰパケットがＭＳＳオプションを含んでいない場合、予め設定されたデフォルト値を登録する（ステップ６０６）。
【００５２】
（８）その後、順方向フローの情報についての処理を行うこととして、ステップ７０１からの処理に移行する（ステップ６０７）。
【００５３】
（９）ステップ６０７、６０８で扱うこととして決定したエントリ２００に対して、まず、ＴＣＰパケットのＦＩＮフラグまたはＲＳＴフラグが１となっているか、０となっているかを判定しする（ステップ７０１）。
【００５４】
（10）ステップ７０１の判定で、ＦＩＮフラグまたはＲＳＴフラグが１となっていた場合、ＴＣＰパケットの属するフローは終了直前であるため、フロー管理テーブル１１０から該当エントリ２００を削除するが、エントリ２００の削除の前に、フロー本数から順方向の制限対象フラグ２２４と逆方向の制限対象フラグ２２４との値を引き、フロー本数の減算が済んでからエントリ２００を削除し、ＴＣＰパケットには変更を加えずにパケットキュー１０６に格納して、ここでの処理を終了する（ステップ７１１、７１２、７１０）。
【００５５】
（11）ステップ７０１の判定で、ＦＩＮフラグ及びＲＳＴフラグが０となっていた場合、まず、ＴＣＰパケットにＭＳＳオプションが含まれている場合の処理を行う。このため、ＴＣＰパケットのＭＳＳオプションの値がエントリ２００のＭＳＳ２０５よりも小さい値ならば、エントリ２００のＭＳＳ２０５にＴＣＰパケットのＭＳＳオプションの値を登録する（ステップ７０２）。
【００５６】
（12）次に、ＴＣＰパケットの内容に基づきエントリ２００の内容を更新する。すなわち、ＴＣＰパケットのＡＣＫフラグが１の場合、ＴＣＰパケットのacknowledgment number をエントリ２００のＡＣＫ番号２１５に登録し、ＴＣＰパケットのwindow size をエントリ２００の実サイズ２１２に登録する。その後、ＴＣＰパケットのデータ長をエントリ２００の累積データ長２１１に加算する（ステップ７０３）。
【００５７】
（13）次に、ＴＣＰパケットが属するフローと反対方向のフローの制限対象フラグ２１４の値が１となっているか、０となっているかを判別する。すなわち、ＴＣＰパケットが順方向であれば逆方向フローの制限対象フラグ２１４の値、ＴＣＰパケットが逆方向であれば順方向フローの制限対象フラグ２１４の値を検査する（ステップ７０５）。
【００５８】
（14）ステップ７０５の判別で、制限対象フラグ２１４の値が０、すなわち、制限対象ではなかった場合、エントリ２００の累積データ長２１１と定数ＴＨdataとを比較し、累積データ長２１１が定数ＴＨdataより大きいか否かを判定する。なお、定数ＴＨdataはフローをレート制限の対象にする判断基準となる定数である（ステップ７０６）。
【００５９】
（15）ステップ７０６の判定で、累積データ長２１１が定数ＴＨdata以下であった場合、仮サイズ２１３の値を実サイズ２１２の値と同じ値に設定し、変更フラグ２１６に０を設定して、ＴＣＰパケットを変更せずにパケットキュー１０６に格納して、ここでの処理を終了する。前述のように、定数ＴＨdataと累積データ長２１１とを比較することにより、ＴＨdataり値以上のデータを通信したフローのみをwindow size 変更の対象にすることができる（ステップ７１３、７１０）。
【００６０】
（16）ステップ７０６の判定で、累積データ長２１１が定数ＴＨdataよりも大きかった場合、ＴＣＰパケットのフローとは反対方向の制限対象フラグ２１４を１にセットして、反対方向のフローをレート制限の対象とする。同時にフロー本数に１を加算する（ステップ７０７）。
【００６１】
（17）制限対象フラグ２１４が１である場合の仮サイズ２１３の値は、フローの本数に基づいた計算式により算出しているが、ステップ７０７の処理で、フロー本数が変化したので、仮サイズ２１３の再計算が必要になり、サイズ計算処理を行う（ステップ７０８）。
【００６２】
（18）ステップ７０８の処理後、あるいは、ステップ７０５の判別で、制限対象フラグ２１４の値が１、すなわち、制限対象であった場合、次に、中継するＴＣＰパケットのwindow size 変更の必要性を判定する。すなわち、window size を変更するのは、無線アクセスポイント１０１が輻輳状態であり、かつ、ＴＣＰパケットの属するフローの制限対象フラグ２１１が１、かつ、実サイズ２１２＞仮サイズ２１３の場合であるので、この要件を満たしているか否かを判定する（ステップ７０９）。
【００６３】
（19）ステップ７０９の判定で、中継するＴＣＰパケットのwindow size 変更の必要があると判定された場合、ＴＣＰパケットのwindow size を仮サイズ２１３の値で書き換え、それに伴い、window size の値を書き替えたことによりパケット長が変化する可能性があるので、ＴＣＰチェックサムの再計算を行う。このとき、エントリ２００の変更フラグ２１６に１をセットする。前述したような変更を加えたＴＣＰパケットをパケットキュー１０６に格納し、ここでの処理を終了する（ステップ７１４、７１０）。
【００６４】
（20）ステップ７０９の判定で、ＴＣＰパケットのwindow size 変更の必要がないと判定された場合、エントリ２００の変更フラグ２１６を０にし、変更を加えていないＴＣＰパケットをパケットキュー１０６に格納して、ここでの処理を終了する（ステップ７１０）。
【００６５】
前述したように、本発明の第１の実施形態による無線アクセスポイント１０１は、パケットキュー１０６が輻輳した場合に、中継するＴＣＰパケットのwindow size を変更することにより、以後、端末から送信されるＴＣＰパケットの大きさを変更したwindow size とさせることができ、無線ネットワーク１００でのＴＣＰパケットの通信量を低減して、無線アクセスポイント１０１でのパケットキュー１０６の輻輳を緩和することができる。無線アクセスポイント１０１でのwindow size の変更により本来よりも小さなwindow size の値を通知されたネットワーク端末は、新たなwindow size の値をが知されるまで、本来よりも小さなwindow size による通信を行うことにより通信量を制限する。無線アクセスポイント１０１における輻輳状態が解消された場合、無線アクセスポイント１０１が本来よりも小さなwindow size を通知したネットワーク端末に対して本来のwindow size を通知しないと、ネットワーク端末間の通信のスループットが元に戻らない。本発明の第１実施形態による無線アクセスポイント１０１は、輻輳状態が解消した場合にネットワーク端末に対して本来のwindow size を通知するため、ＡＣＫパケットを生成して送信する。
【００６６】
図４はキュー管理手段１１１によるＡＣＫ生成処理の動作を説明するフローチャートであり、次に、これについて説明する。
【００６７】
（１）キュー管理手段１１１は、フロー管理テーブル１１０の全エントリ２００に対して以下に説明するステップ４０１〜４０６の処理を繰り返し行う構成とを設定し、まず、順方向の変更フラグ２１６を検査し、フラグの値が１であるか、０であるかを判定する（ステップ４０１）。
【００６８】
（２）ステップ４０１の判定で、変更フラグ２１６の値が０であった場合、ＡＣＫ生成を行う必要はないので、処理４０２、４０３を省略し、変更フラグ２１６の値が１であった場合、順方向のＡＣＫパケットを生成する。順方向のＡＣＫパケットとは、データ長が０のＴＣＰパケットであり、パケットの送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号のそれぞれには、エントリ２００の送信元アドレス２０１、送信元ポート２０３、宛先アドレス２０２、宛先ポート２０４が設定される。パケットのacknowledgment number はＡＣＫ番号２１５とされ、window size は実サイズ２１２とされる。順方向のＡＣＫパケットの生成は、キュー管理手段１１１からエントリ２００を一意に識別するエントリ番号とフローの方向（順方向あるいは逆方向）とをＡＣＫパケット生成手段１１２に通知することにより、ＡＣＫパケット生成手段１１２が必要な情報をフロー管理テーブル１１０から取得して行う。生成した順方向ＡＣＫパケットは、パケットキュー１０６に格納される（ステップ４０２）。
【００６９】
（３）次に、エントリ２００の順方向の仮サイズ２１３に実サイズ２１２の値を設定し、変更フラグ２１６を０に設定する（ステップ４０３）。
【００７０】
（４）ステップ４０３の処理後、あるいは、ステップ４０１の判定で、変更フラグ２１６の値が０であった場合、前述と同様に、逆方向についてもステップ４０４〜４０６での処理を行う。ステップ４０５で生成する逆方向ＡＣＫパケットは、順方向のＡＣＫパケットに対してアドレスとポート番号とが送信元と宛先で入れ替わっている。すなわち、パケットの送信元ＩＰアドレスと送信元ポート番号とは、それぞれエントリ２００の宛先アドレス２０２、宛先ポート２０４の値に設定され、パケットの宛先ＩＰアドレスと宛先ポート番号とは、それぞれエントリ２００の送信元アドレス２０１、送信元ポート２０３の値に設定される。また、パケットのacknowledgment number はＡＣＫ番号２１５の値、window size は実サイズ２１２の値が設定される（ステップ４０４〜４０６）。
【００７１】
前述で説明したように、本発明の第１の実施形態による無線アクセスポイント１０１は、フロー毎に情報を管理しているため、一定の通信量があるフローのみをwindow size 変更の対象とすることができ、また、フロー管理テーブル１１０の情報からＡＣＫパケットを生成することができるため、輻輳が解消した時点で、直ちに元のwindow size を端末に通知して、トラフィックの抑制を解除することができる。
【００７２】
本発明の第１の実施形態による無線アクセスポイント１０１は、パケットキュー１０６が輻輳した場合に、ＴＣＰのwindow size を変更し無線ネットワーク１００でのＴＣＰパケットの通信量を低減することにより、無線アクセスポイント１０１でのパケットキュー１０６の輻輳を緩和するものであり、また、フロー毎に情報を管理し、一定の通信量があるフローのみをwindow size 変更の対象とすると共に、輻輳が解消した時点で、直ちに元のwindow size を端末にその旨を通知して、トラフィックの抑制を解除するものであったが、本発明は、輻輳状態において輻輳の程度が緩和された段階でＡＣＫパケットを生成してネットワーク端末に通知することにより、通信量を制限する期間を短くすることができる。次に、この場合の例を本発明の第２の実施形態として説明する。
【００７３】
図８は本発明の第２の実施形態でのキュー管理手段１１１によるサイズ計算処理の動作を説明するフローチャートである。この処理フローは、図５に示す本発明の第１の実施形態におけるサイズ計算処理において、ステップ５０４及びステップ５０７の直後に追加されるフローである。
【００７４】
本発明の第２の実施形態による無線アクセスポイント１０１の構成は、図１に示して説明した本発明の第１の実施形態の場合と同一である。そして、本発明の第２の実施形態により図５に示すサイズ計算処理が行われ、ステップ５０４またはステップ５０７の処理が実行されて、図８に示すフローの処理が開始されたものとして、図８に示すフローを説明する。
【００７５】
（１）まず、キュー管理手段１１１は、フロー管理テーブル１１０内の対象のフローの変更フラグ２１６を検査し、フラグ２１６の値が、０であるか、１であるかを判定し、フラグ２１６の値が０であった場合、何もせずに、図８での処理を終了して、図５に示すフローの次のステップに進む（ステップ８０１）。
【００７６】
（２）ステップ８０１の判定で、変更フラグ２１６の値が１であった場合、計算した仮サイズ２１３が元の仮サイズ２１３と比較してＭＳＳ２０５以上増加しているか否かを判定し、ＭＳＳ２０５以上増加していなかった場合、図８での処理を終了して、図５に示すフローの次のステップに進む（ステップ８０２）。
【００７７】
（３）ステップ８０２の判定で、計算した仮サイズ２１３が元の仮サイズ２１３と比較してＭＳＳ２０５以上増加していた場合、ＡＣＫパケットを生成するために、該当のエントリ番号とフロー方向（ステップ５０４の直後ならば順方向、ステップ５０７の直後ならば逆方向）をＡＣＫパケット生成手段１１２に通知する（ステップ８０３）。
【００７８】
（４）次に、実サイズ２１２と計算した仮サイズ２１３とを比較し、両者が等しいか否かを判定する。この判定の結果、両者が等しくなかった場合、図８での処理を終了して、図５に示すフローの次のステップに進み、等しかった場合、変更フラグ２１６を０に設定して、図８での処理を終了して、図５に示すフローの次のステップに進む（ステップ８０４、８０５）。
【００７９】
ＡＣＫパケット生成手段１１２は、生成したＡＣＫパケットをパケットキュー１０６に格納する。このため、図５に示すフローによるサイズ計算処理の途中でパケットキュー１０６の残り容量が変化してしまうことになるが、本発明の第２の実施形態では、パケットキューの残り容量は、サイズ計算処理の開始時点での値をサイズ計算処理が終了するまで使用するものとする。
【００８０】
前述した本発明の第２の実施形態による無線アクセスポイント１０１は、輻輳状態が解消される前でもフローに割り当てられたwindow size の値が増えたタイミング、すなわち、パケットキューの残量が増加する方向にあり、輻輳状態が解消される方向にある場合に、随時ＡＣＫパケットを生成するため、輻輳状態による通信量の制限を早期に解除することができる。
【００８１】
次に、フローの種類によってwindow size に重み付けを行い、輻輳時の通信量を特定の種類のフローに優先的に割り当てるようにした例を、本発明の第３の実施形態として説明する。
【００８２】
本発明の第３の実施形態による無線アクセスポイント１０１の構成は、図１に示して説明した本発明の第１の実施形態の場合と同一である。そして、本発明の第３の実施形態は、フローの種類によってwindow size に重み付けを行い、輻輳時の通信量を特定の種類のフローに優先的に割り当てるために、図２にフロー管理テーブル１１０のエントリ２００に優先係数フィールド（図２には示していない）を設けることとする。優先係数フィールドの値は、一般のトラフィックに対しては１であり、優先トラフィックについては１より大きい値、例えば、１．５等が設定される。優先トラフィックの識別は、ＴＣＰパケットのヘッダ情報、例えば、ＩＰヘッダのＴＯＳフィールドや、送信元または宛先ポート番号、送信元または宛先ＩＰアドレス、あるいは、これらの組み合わせにより識別するようにする。優先トラフィックの条件と、条件に一致した場合の優先係数の値とは予め登録しておく。
【００８３】
本発明の第３の実施形態は、新たなエントリ２００を作成する図６に示して説明したフローのステップ６０６での処理で、ＴＣＰパケットのヘッダ情報が優先トラフィックの条件に一致する場合、対応する優先係数の値をエントリ２００の優先係数として設定し、条件に一致しない場合、１をエントリ２００の優先係数の値として設定する。
【００８４】
前述で設定した優先係数は、図５に示して説明したサイズ計算処理のフローで以下のように用いられる。すなわち、ステップ５０１でのＸの計算のための計算式を、パケットキューの残り容量を全エントリ２００の優先係数の合計値で割った値とする計算式とする。また、ステップ５０３、５０６での計算を、Ｘにエントリ２００の優先係数の値を乗算した値をＭＳＳ２０５で丸めた値を仮サイズ２１３とすることにより行う。
【００８５】
前述したような本発明の第３の実施形態による無線アクセスポイント１０１は、フロー毎にwindow size の計算に使う係数を変えることにより、特定の種類のフローに優先的に通信量を割り当てることができる。
【００８６】
前述した本発明の各実施形態における各処理は、処理プログラムとして構成することができ、この処理プログラムは、ＨＤ、ＤＡＴ、ＦＤ、ＭＯ、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ等の記録媒体に格納して提供することができる。
【００８７】
前述で説明した本発明の実施形態は、パケット識別手段によりＴＣＰパケットを判別し、ＴＣＰパケットについてだけwindow size の変更を行うことにより、無線アクセスポイントでの輻輳制御を行うとして説明したが、パケット内にwindow size を格納するフィールドを有するのは、現状ではＴＣＰパケットだけであり、しかも、無線アクセスポイントで中継のために扱うパケットは、ほとんどがＴＣＰパケットであるため、ＴＣＰパケットに対してのみwindow size の変更制御を行うことにより、充分に無線アクセスポイントの輻輳状態を制御することができる。
【産業上の利用可能性】
【００８８】
本発明は、無線ＬＡＮシステムを用いた通信を行うネットワーク、特に、単一の無線アクセスポイントで家庭内の全ネットワーク機器を含む無線ＬＡＮシステムを構成するホームネットワークに使用して有効である。
【図面の簡単な説明】
【００８９】
【図１】本発明の第１の実施形態による無線アクセスポイントの構成を示すブロック図である。
【図２】フロー管理テーブルに格納管理されているエントリの構成を説明する図である。
【図３】キュー管理手段による輻輳判定の処理動作を説明するフローチャートである。
【図４】キュー管理手段によるＡＣＫ生成処理の動作を説明するフローチャートである。
【図５】図３におけるステップ３０４でのwindow size の仮サイズを計算する処理動作を説明するフローチャートである。
【図６】window size 変更手段によるＴＣＰパケットに対するwindow size 変更の処理動作を説明するフローチャート（その１）である。
【図７】window size 変更手段によるＴＣＰパケットに対するwindow size 変更の処理動作を説明するフローチャート（その２）である。
【図８】本発明の第２の実施形態でのキュー管理手段によるサイズ計算処理の動作を説明するフローチャートである。
【符号の説明】
【００９０】
１００  無線ネットワーク
１０１  無線アクセスポイント
１０３  通信インタフェース
１０４  パケット識別手段
１０５  window size 変更手段
１０６  パケットキュー
１１０  フロー管理手段
１１１  キュー管理手段
１１２  ＡＣＫパケット生成手段
【図１】
2006129024.tif 000003
【図２】
2006129024.tif 000004
【図３】
2006129024.tif 000005
【図４】
2006129024.tif 000006
【図５】
2006129024.tif 000007
【図６】
2006129024.tif 000008
【図７】
2006129024.tif 000009
【図８】
2006129024.tif 000010