JP2006129024A - 輻輳制御方法、無線アクセスポイント及び無線lanシステム - Google Patents

輻輳制御方法、無線アクセスポイント及び無線lanシステム Download PDF

Info

Publication number
JP2006129024A
JP2006129024A JP2004314038A JP2004314038A JP2006129024A JP 2006129024 A JP2006129024 A JP 2006129024A JP 2004314038 A JP2004314038 A JP 2004314038A JP 2004314038 A JP2004314038 A JP 2004314038A JP 2006129024 A JP2006129024 A JP 2006129024A
Authority
JP
Japan
Prior art keywords
packet
tcp
transfer size
queue
access point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004314038A
Other languages
English (en)
Inventor
Sunao Sawada
素直 澤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004314038A priority Critical patent/JP2006129024A/ja
Publication of JP2006129024A publication Critical patent/JP2006129024A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】輻輳状態の解消を即座に端末に対して通知することができ、TCPコネクション毎にトラフィックの制限の程度を制御する。
【解決手段】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に作成させる。
【選択図】 図1

Description

本発明は、輻輳制御方法、無線アクセスポイント及び無線LANに係り、特に、ネットワーク間中継機能を有する無線アクセスポイントにおける輻輳制御方法、無線アクセスポイント及び無線LANに関する。
無線LAN(Local Area Network)システムに関する規格として、IEEE(the Institute of Electrical and Electronics Engineers)802.11 規格に代表されるCSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)方式の無線LAN(Local Area Network)において、ネットワーク端末間の無線通信を無線アクセスポイントが中継する通信方法(802.11におけるInfrastructure mode)が規定されている。この無線LANシステムでの通信方法は、同一無線LANに参加している無線アクセスポイントと複数のネットワーク端末との間で送信権の調停を行い、送信権を獲得したネットワーク端末または無線アクセスポイントが無線LAN上でパケットの送信を行うというものである。
送信権は、各ネットワーク端末と無線アクセスポイントとに同等の確率で割り当てられる。このため、無線LANで同時にn組の通信が行われている場合、およそ(n+1)分のnの確率でネットワーク端末から無線アクセスポイントへパケットが送信され、無線アクセスポイントからネットワーク端末への送信はおよそ(n+1)分の1の確率でしか送信権が割り当てられないことになり、無線アクセスポイント内にパケットが集中する輻輳状態が発生するおそれがある。
無線アクセスポイント等のネットワーク機器における輻輳制御を行う従来技術として例えば、特許文献1等に記載された技術が知られている。この従来技術の方法は、輻輳制御のためにTCP(Transmission Control Protocol)パケットの転送サイズ(確認応答なしで1度に転送することができるパケットのサイズであり、以下、window size という)を書き換えるというものであり、ネットワーク間中継装置のパケットキューの残り容量が少なくなったときに、TCPパケットのwindow size を小さい値(全てのTCPコネクションに対して一律な値)に書き換えることにより、TCPトラフィックを抑制し輻輳状態の緩和を図ることができる。
特開2002−314592号公報
しかし、前述した従来技術による方法は、輻輳状態が解消してもネットワーク間中継装置から端末に対して輻輳状態が解消したことの通知を行っていないため、端末間でACKが通知されるまで通信のスループットが低く抑えられた状態が継続し、特に、window size を0にまで減少させた場合、端末間でのACK通知が行われなくなるため、輻輳が解消しても数分程度の間通信が途絶するおそれがあるという問題点を有している。
また、前述した従来技術は、データ通信量の多いTCPコネクションも、データ通信量の少ないTCPコネクションも一律に処理しているため、データ通信量の多い特定のTCPコネクションにより輻輳状態が発生した場合に、データ通信量の少ないTCPコネクションまでトラフィックを抑制されてしまうという問題点を有している。さらに、前述した従来技術は、優先するトラフィックと一般のトラフィックとを区別することもできないという問題点を有している。
本発明の目的は、前述した従来技術の問題点を解決し、輻輳状態の解消を即座に端末に対して通知することができ、全てのTCPコネクションを一律に扱うのではなく、TCPコネクション毎にトラフィックの制限の程度を制御することを可能にした輻輳制御方法、無線アクセスポイント及び無線LANシステムを提供することにある。
本発明によれば前記目的は、ネットワーク間中継機能を有する無線アクセスポイントの輻輳制御方法において、前記無線アクセスポイントが、中継するパケットを一時的に格納するパケットキューの残り容量に応じて中継するTCPコネクション毎のwindow size の値を計算して管理し、パケットキューの残り容量に応じて計算した前記window size の値により中継するTCPパケットのwindow size フィールドを書き換えてから、そのTCPパケットを中継することにより達成される。
また、前記目的は、ネットワーク間中継機能を有する無線アクセスポイントにおいて、前記無線アクセスポイントが、中継するパケットを一時的に格納するパケットキューと、中継するTCPパケットのwindow size フィールドを書き換えるwindow size 変更手段と、TCPコネクション毎の情報を管理するフロー管理テーブルと、パケットキューの残り容量に応じてwindow size の値を計算するキュー管理手段とを有し、前記キュー管理手段が、計算したTCPコネクション毎のwindow size の値を前記フロー管理テーブルに格納して管理し、前記window size 変更手段が、中継するTCPパケットの属するTCPコネクションのwindow size を前記フロー管理テーブルから取得し、当該TCPパケットのwindow size フィールドを書き換えてからそのTCPパケットを前記パケットキューに格納することにより達成される。
本発明によれば、無線アクセスポイントでの輻輳状態が解消した場合、TCPパケットの送受信を行っている各TCPコネクションの端末に対して、ACKパケットを生成して送信することにより、輻輳状態の解消を即座に通知することができる。また、本発明によれば、TCPコネクション単位で情報を管理しているため、トラフィックを制限するTCPコネクションの選択や、TCPコネクション毎に重み付けを行うことが可能である。
以下、本発明による無線アクセスポイントにおける輻輳制御方法及び無線アクセスポイントの実施形態を図面により詳細に説明する。
図1は本発明の第1の実施形態による無線アクセスポイントの構成を示すブロック図である。図1において、100は無線ネットワーク、101は無線アクセスポイント、103は通信インタフェース、104はパケット識別手段、105はwindow size 変更手段、106はパケットキュー、110はフロー管理手段、111はキュー管理手段、112はACKパケット生成手段である。
なお、図1に示す本発明の第1の実施形態による無線アクセスポイント101の構成は、本発明に必要な無線ネットワーク100を介する端末装置相互間の無線通信の中継のための構成だけを示しており、無線ネットワーク100を介して無線アクセスポイント101に接続される端末装置が有線ネットワークを介して接続されるサービスプロバイダ等との通信を行うための構成については、公知の構成であり図1には示していない。
本発明の第1の実施形態による無線アクセスポイント101は、IEEE802.11a に準拠する無線ネットワーク100におけるネットワーク端末間のInfrastructure mode での通信を中継するものである。本発明は、同様の通信形態を用いる他の無線LAN規格、例えば、IEEE802.11g 等にも適用することができる。そして、図示アクセスポイント101は、無線ネットワーク100を介するパケットの送受信を行う通信インターフェース103と、受信したパケットがTCPパケットかその他のパケットかを判別するパケット識別手段104と、TCPパケットのwindow size を変更するwindow size 変更手段105と、パケットを一時的に格納するパケットキュー106と、TCPパケットのTCPヘッダにあるwindow size のフィールドを変更するか否かを管理するフロー管理テーブル110と、パケットキュー106の残量を監視し、そのの残量に応じてフロー管理テーブル110の内容を更新するキュー管理手段111と、フロー管理テーブル110の該当エントリの内容を元にACKパケットを生成するACKパケット生成手段112とにより構成される。
無線ネットワーク100を介するパケットの送受信は、通信インターフェース103で行われ、通信インターフェース103で受信したパケットは、パケット識別手段104によりTCPパケットとその他のパケットとに分類され、TCPパケットはwindow size 変更手段105に送られ、その他のパケットはパケットキュー106に送られる。パケット識別手段104は、パケットのMAC(Media Access Control)ヘッダ及びIP(Internet Protocol) ヘッダの情報によりTCPパケットを識別する。パケット識別手段104は、半導体の論理回路として実装してもよいし、ソフトウェアとして実装することも可能である。
パケットを一時的に格納するパケットキュー106は、FIFO(First In First Out)バッファであり、このパケットキュー106に格納されたパケットは、通信インターフェース103を介して無線ネットワーク100に送信される。
window size 変更手段105は、TCPパケットのTCPヘッダにあるwindow size フィールドを変更するか否かをフロー管理テーブル110の内容に基づいて判断し、必要に応じてTCPパケットのwindow size を書き換える。このwindow size 変更手段105は、半導体の論理回路として実装してもよいし、ソフトウェアとして実装することも可能である。
キュー管理手段111は、パケットキュー106の残量を監視し、パケットキュー106の残量に応じてフロー管理テーブル110の内容を更新する。また、キュー管理手段111は、ACKパケットの生成が必要だと判断した場合、ACKパケット生成手段112に対してエントリ番号とフロー方向とを通知する。このキュー管理手段111は、半導体の論理回路として実装してもよいし、ソフトウェアとして実装することも可能である。
ACKパケット生成手段112は、キュー管理手段111からエントリ番号とフロー方向との通知を受け、フロー管理テーブル110の該当するエントリの内容を元にACKパケットを生成し、生成したACKパケットをパケットキュー106に格納する。このACKパケット生成手段112は、半導体の論理回路として実装してもよいし、ソフトウェアとして実装することも可能である。
フロー管理テーブル110には、無線ネットワーク100で現在通信が行われているTCPコネクションの情報が登録されている。TCPコネクションは、TCPによる双方向のデータ通信で、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号の組み合わせで一意に識別することができる。以下の説明では、送信元IPアドレスの送信元ポート番号から宛先IPアドレスの宛先ポート番号へと送られるTCPパケットによる通信を「順方向のフロー」、宛先IPアドレスの宛先ポート番号から送信元IPアドレスの送信元ポート番号へと送られるTCPパケットによる通信を「逆方向のフロー」、両者を一括して「フロー」と記述することとする。
図2はフロー管理テーブル110に格納管理されているエントリ200の構成を説明する図であり、次に、これについて説明する。
フロー管理テーブル110は、情報をTCPコネクション単位のエントリ200として管理する。エントリ200の内容は、TCPコネクションを一意に識別するための送信元アドレス201、宛先アドレス202、送信元ポート203、宛先ポート204、TCPコネクションで送受信されるデータサイズの単位であるMSS(Maximum Segment Size)205、及び、順方向、逆方向それぞれのフローに関する情報である。各フローに関する情報は、中継したパケットのデータ量の合計である累積データ長211、フローに属する最後に中継したTCPパケットのwindow size の値である実サイズ212、window size 変更手段105で変更する場合のwindow size の値である仮サイズ213、window size 変更手段105での変更対象か否かを示す制限対象フラグ214、無線アクセスポイント101で中継した該当フローに属するパケットのacknowledgment number であるACK番号215、window size の変更を行ったことを示す変更フラグ216である。
図2には示していないが、各エントリ200には、フロー管理テーブル110内でエントリ200を一意に識別するためのエントリ番号が付与されている。また、フロー管理テーブル110の各エントリ200の作成、更新は、window size 変更手段105が、中継されるTCPパケットのヘッダ情報に基づいて行う。
本発明の第1の実施形態による無線アクセスポイント101は、パケットキュー106が輻輳した場合(パケットキューの残量が少なくなった場合)に、中継するTCPパケットのwindow size の変更をwindow size 変更手段105で行い、各フローのデータ通信量を抑制することができる。書き換えるwindow size の値である仮サイズ213の値は、キュー管理手段111がパケットキュー106の残量に応じて計算する。
図3はキュー管理手段111による輻輳判定の処理動作を説明するフローチャートであり、次に、これについて説明する。図3に示すフローによる処理は、キュー管理手段111がパケットキュー106の残量に応じて、window size 変更でデータ通信量を抑制するレート制御の必要性を判断する処理である。パケットキュー106の残量が変化するのは、パケットキュー106に新たなパケットが格納された時と、通信インターフェース103によりパケットが送信されパケットキュー106内のパケットを格納していた領域が解放された時であり、そのタイミングでキュー管理手段111は図3に示すフローの処理を行う。キュー管理手段111は、輻輳状態という変数で現在のパケットキュー106の状態を管理しており、輻輳状態がONであればレート制御が必要な状態、輻輳状態がOFFであればレート制御が不要な状態である。
(1)この処理が開始されると、キュー管理手段111は、まず、現在の輻輳状態がONであるかOFFであるかを判定する(ステップ301)。
(2)ステップ301の判定で、輻輳状態がOFFであった場合、現在のパケットキュー106の残量を予め設定した輻輳状態をONにするスレッショルド値THonと比較し、パケットキュー106の残量がTHonを上回っているか否かを判定し、パケットキュー106の残量がTHonを上回っていた場合、まだ、輻輳状態に達しておらずレート制御が必要ないと判断して、ここでの輻輳判定処理を終了する(ステップ302)。
(3)ステップ302の判定で、パケットキュー106の残量がTHon以下であった場合、無線アクセスポイント101にパケットが集中している輻輳状態であると判断し、輻輳状態をONにする(ステップ303)。
(4)続いて、window size 変更に必要なwindow size の仮サイズ213を計算する処理を行って、ここでの処理を終了する。なお、この仮サイズ計算処理の詳細については、図5に示すフローにより後述する(ステップ304)。
(5)ステップ301の判定で、現在の輻輳状態がONであった場合、パケットキュー106の残量を予め設定した輻輳状態をOFFにするスレッショルド値THoff と比較し、パケットキュー106の残量がTHoff を下回っているか否かを判定する(ステップ305)。
(6)ステップ305の判定で、パケットキュー106の残量がTHoff を下回っていた場合、輻輳状態が解消されていないと判断してwindow size 変更に必要なwindow size の仮サイズ213を計算する処理を行って、ここでの処理を終了する。なお、この仮サイズ計算処理の詳細については、図5に示すフローにより後述する(ステップ304)。
(7)ステップ305の判定で、パケットキュー106の残量がTHoff 以上であった場合、輻輳状態がが解消したと判断して輻輳状態をOFFにし、window size 変更によるレート制御の効果を元に戻すためにACK生成処理を行い、ここでの処理を終了する。なお、このACK生成処理の詳細については、図4に示すフローにより後述する(ステップ306、307)。
なお、前述した処理において、輻輳状態のON、OFFが頻繁に切り替わることを防ぐために、スレッショルドの値は(THoff −THon)>>パケットサイズとなるように設定される。
図5は図3におけるステップ304でのwindow size の仮サイズ213を計算する処理動作を説明するフローチャートであり、次に、これについて説明する。この処理で行う仮サイズ213を計算する処理には、パケットキュー106の残り容量とフロー本数とを使用する。フロー本数とは、レート制限の対象となるフローの合計数を表す数値であり、具体的には、フロー管理テーブル110内の全エントリ200の制限対象フラグ224を合計した値を表す変数である。そして、無線アクセスポイント101の初期化時にフロー本数を0とし、いずれかのエントリ200の制限対象フラグ224が1にセットされる時にフロー本数に1を加算し、エントリ200を削除する時に制限対象フラグ224の値をフロー本数から減算することにより、フロー本数が常にフロー管理テーブル110内の全エントリ200の制限対象フラグ224を合計した値を表すように管理される。パケットキュー106の残り容量は、パケットキュー106のうち、パケット格納のために使用されていない領域の合計サイズをバイト単位で表したものである。
(1)キュー管理手段111は、まず、パケットキュー106の残り容量をフロー本数で割った値Xを求める。この値Xは、各フローに割り当てるパケットキュー106の容量を表す(ステップ501)。
(2)続いて、ステップ502からステップ507までの処理を、フロー管理テーブル110内の全てのエントリ200に対して繰り返し行うことを設定する。
(3)その後、エントリ200の順方向の制限対象フラグ214の値が1か0かを検査し、値が1であった場合、ステップ501の処理で求めたXをエントリ200のMSS205の倍数になるよう丸めた値を仮サイズ213とする。TCPによる通信はMSS単位でデータ通信が行われ端数は無視されるため、ここでの丸めの処理が必要となる(ステップ502、503)。
(4)ステップ503の処理で求めた仮サイズ213を実サイズ212と比較し、仮サイズ213が実サイズ212を上回っていた場合に、仮サイズ213を実サイズ212の値とする(ステップ504)。
(5)ステップ502の検査で、制限対象フラグ214の値が0であった場合、その順方向フローは、window size 変更によるレート制限の対象外であるので、仮サイズ213を計算する必要はなく、ステップ503、504の処理を行わず、ステップ505の処理に移行する。
(6)ステップ504の処理の後、あるいは、ステップ502の検査で、制限対象フラグ214の値が0であった場合、逆方向のフローについて、順方向フローに対するステップ502〜ステップ504での処理と同様の処理を行って仮サイズ213を計算し、仮サイズ213が実サイズ212を上回っていた場合に、仮サイズ213を実サイズ212の値とする(ステップ505〜507)。
フロー管理テーブル110に格納された仮サイズ213は、window size 変更手段105が輻輳制御を行うために中継するTCPパケットのwindow size を変更するために用いられる。以下、図1に示す無線アクセスポイント101でのパケットの中継動作について説明する。
無線アクセスポイント101は、通信インターフェース103でTCPパケット以外のパケットを受信すると、パケット識別手段104が、そのパケットがTCPパケットでないことを判別してパケットキュー106に格納し、通信インターフェース103から送信する。この動作に関しては通常の無線アクセスポイントと同等である。
無線アクセスポイント101が通信インターフェース103でTCPパケットを受信した場合、パケット識別手段104は、受信したパケットのヘッダ情報から受信したパケットがTCPパケットであると識別し、受信したTCPパケットをwindow size 変更手段105に送る。
図6、図7はwindow size 変更手段105によるTCPパケットに対するwindow size 変更の処理動作を説明するフローチャートであり、次に、これについて説明する。なお、図6、図7に示すフローは、一連の処理であるので、以下の説明においても、一連のものとして説明する。
(1)window size 変更手段105は、まずTCPパケットのヘッダにある送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号と一致する送信元アドレス201、送信元ポート203、宛先アドレス202、宛先ポート204を持つエントリ200をフロー管理テーブル110から検索し、エントリ200が見つかったか否かを判定する(ステップ601、602)。
(2)ステップ602の判定で、一致するエントリ200がが見つかった場合、以後、順方向フローの情報についての処理を行うこととして、ステップ701からの処理に移行する(ステップ607)。
(3)ステップ602の判定で、一致するエントリ200が見つからなかった場合、送信元アドレス、送信元ポートと宛先アドレス、宛先ポートとの情報が入れ替わったエントリ200をフロー管理テーブル110から検索し、エントリ200が見つかったか否かを判定する。送信元と宛先との情報が入れ替わったエントリ200とは、TCPパケットの送信元IPアドレスと送信元ポート番号がエントリ200の宛先アドレス202と宛先ポート204と一致し、パケットの宛先IPアドレスと宛先ポート番号がエントリ200の送信元アドレス201と送信元ポート203と一致するエントリ200である(ステップ603、604)。
(4)ステップ604の判定で、該当するエントリ200が見つかった場合、以後、逆方向フローの情報についての処理を行うこととして、ステップ701からの処理に移行する(ステップ608)。
(5)ステップ604の判定で、該当するエントリ200が見つからなかった場合、すなわち、TCPパケットのIPアドレス及びポート番号から前述したステップ601、603での二通りの検索を行っても該当するエントリ200が見つからなかった場合、TCPパケットに対応するエントリ200を新たに作成するか否かを判定するため、TCPパケットのFINフラグまたはRSTフラグの値が1であるか0であるかを判定する(ステップ605)。
(6)ステップ605の判定で、TCPパケットのFINフラグまたはRSTフラグの値が1であった場合、TCPパケットのフローは終了する直前であるため、新規エントリ200の登録を省略し、そのTCPパケットをパケットキュー106に格納して、ここでの処理を終了する(ステップ710)。
(7)ステップ605の判定で、FINフラグ、RSTフラグとも0であった場合、新たなエントリ200を作成し、順方向フローの情報として、TCPパケットのデータ長を累積データ長211に、TCPパケットのwindow size を実サイズ212および仮サイズ213に、0を制限対象フラグ214に、TCPパケットのacknowledgment number をACK番号225に登録する。逆方向フローの情報には全て0を登録する。送信元アドレス201、宛先アドレス202、送信元ポート203、宛先ポート204には、それぞれTCPパケットの該当する値を登録する。TCPパケットがMSSオプションを含んでいる場合、TCPパケットのMSSオプションの値をMSS205に登録する。TCPパケットがMSSオプションを含んでいない場合、予め設定されたデフォルト値を登録する(ステップ606)。
(8)その後、順方向フローの情報についての処理を行うこととして、ステップ701からの処理に移行する(ステップ607)。
(9)ステップ607、608で扱うこととして決定したエントリ200に対して、まず、TCPパケットのFINフラグまたはRSTフラグが1となっているか、0となっているかを判定しする(ステップ701)。
(10)ステップ701の判定で、FINフラグまたはRSTフラグが1となっていた場合、TCPパケットの属するフローは終了直前であるため、フロー管理テーブル110から該当エントリ200を削除するが、エントリ200の削除の前に、フロー本数から順方向の制限対象フラグ224と逆方向の制限対象フラグ224との値を引き、フロー本数の減算が済んでからエントリ200を削除し、TCPパケットには変更を加えずにパケットキュー106に格納して、ここでの処理を終了する(ステップ711、712、710)。
(11)ステップ701の判定で、FINフラグ及びRSTフラグが0となっていた場合、まず、TCPパケットにMSSオプションが含まれている場合の処理を行う。このため、TCPパケットのMSSオプションの値がエントリ200のMSS205よりも小さい値ならば、エントリ200のMSS205にTCPパケットのMSSオプションの値を登録する(ステップ702)。
(12)次に、TCPパケットの内容に基づきエントリ200の内容を更新する。すなわち、TCPパケットのACKフラグが1の場合、TCPパケットのacknowledgment number をエントリ200のACK番号215に登録し、TCPパケットのwindow size をエントリ200の実サイズ212に登録する。その後、TCPパケットのデータ長をエントリ200の累積データ長211に加算する(ステップ703)。
(13)次に、TCPパケットが属するフローと反対方向のフローの制限対象フラグ214の値が1となっているか、0となっているかを判別する。すなわち、TCPパケットが順方向であれば逆方向フローの制限対象フラグ214の値、TCPパケットが逆方向であれば順方向フローの制限対象フラグ214の値を検査する(ステップ705)。
(14)ステップ705の判別で、制限対象フラグ214の値が0、すなわち、制限対象ではなかった場合、エントリ200の累積データ長211と定数THdataとを比較し、累積データ長211が定数THdataより大きいか否かを判定する。なお、定数THdataはフローをレート制限の対象にする判断基準となる定数である(ステップ706)。
(15)ステップ706の判定で、累積データ長211が定数THdata以下であった場合、仮サイズ213の値を実サイズ212の値と同じ値に設定し、変更フラグ216に0を設定して、TCPパケットを変更せずにパケットキュー106に格納して、ここでの処理を終了する。前述のように、定数THdataと累積データ長211とを比較することにより、THdataり値以上のデータを通信したフローのみをwindow size 変更の対象にすることができる(ステップ713、710)。
(16)ステップ706の判定で、累積データ長211が定数THdataよりも大きかった場合、TCPパケットのフローとは反対方向の制限対象フラグ214を1にセットして、反対方向のフローをレート制限の対象とする。同時にフロー本数に1を加算する(ステップ707)。
(17)制限対象フラグ214が1である場合の仮サイズ213の値は、フローの本数に基づいた計算式により算出しているが、ステップ707の処理で、フロー本数が変化したので、仮サイズ213の再計算が必要になり、サイズ計算処理を行う(ステップ708)。
(18)ステップ708の処理後、あるいは、ステップ705の判別で、制限対象フラグ214の値が1、すなわち、制限対象であった場合、次に、中継するTCPパケットのwindow size 変更の必要性を判定する。すなわち、window size を変更するのは、無線アクセスポイント101が輻輳状態であり、かつ、TCPパケットの属するフローの制限対象フラグ211が1、かつ、実サイズ212>仮サイズ213の場合であるので、この要件を満たしているか否かを判定する(ステップ709)。
(19)ステップ709の判定で、中継するTCPパケットのwindow size 変更の必要があると判定された場合、TCPパケットのwindow size を仮サイズ213の値で書き換え、それに伴い、window size の値を書き替えたことによりパケット長が変化する可能性があるので、TCPチェックサムの再計算を行う。このとき、エントリ200の変更フラグ216に1をセットする。前述したような変更を加えたTCPパケットをパケットキュー106に格納し、ここでの処理を終了する(ステップ714、710)。
(20)ステップ709の判定で、TCPパケットのwindow size 変更の必要がないと判定された場合、エントリ200の変更フラグ216を0にし、変更を加えていないTCPパケットをパケットキュー106に格納して、ここでの処理を終了する(ステップ710)。
前述したように、本発明の第1の実施形態による無線アクセスポイント101は、パケットキュー106が輻輳した場合に、中継するTCPパケットのwindow size を変更することにより、以後、端末から送信されるTCPパケットの大きさを変更したwindow size とさせることができ、無線ネットワーク100でのTCPパケットの通信量を低減して、無線アクセスポイント101でのパケットキュー106の輻輳を緩和することができる。無線アクセスポイント101でのwindow size の変更により本来よりも小さなwindow size の値を通知されたネットワーク端末は、新たなwindow size の値をが知されるまで、本来よりも小さなwindow size による通信を行うことにより通信量を制限する。無線アクセスポイント101における輻輳状態が解消された場合、無線アクセスポイント101が本来よりも小さなwindow size を通知したネットワーク端末に対して本来のwindow size を通知しないと、ネットワーク端末間の通信のスループットが元に戻らない。本発明の第1実施形態による無線アクセスポイント101は、輻輳状態が解消した場合にネットワーク端末に対して本来のwindow size を通知するため、ACKパケットを生成して送信する。
図4はキュー管理手段111によるACK生成処理の動作を説明するフローチャートであり、次に、これについて説明する。
(1)キュー管理手段111は、フロー管理テーブル110の全エントリ200に対して以下に説明するステップ401〜406の処理を繰り返し行う構成とを設定し、まず、順方向の変更フラグ216を検査し、フラグの値が1であるか、0であるかを判定する(ステップ401)。
(2)ステップ401の判定で、変更フラグ216の値が0であった場合、ACK生成を行う必要はないので、処理402、403を省略し、変更フラグ216の値が1であった場合、順方向のACKパケットを生成する。順方向のACKパケットとは、データ長が0のTCPパケットであり、パケットの送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号のそれぞれには、エントリ200の送信元アドレス201、送信元ポート203、宛先アドレス202、宛先ポート204が設定される。パケットのacknowledgment number はACK番号215とされ、window size は実サイズ212とされる。順方向のACKパケットの生成は、キュー管理手段111からエントリ200を一意に識別するエントリ番号とフローの方向(順方向あるいは逆方向)とをACKパケット生成手段112に通知することにより、ACKパケット生成手段112が必要な情報をフロー管理テーブル110から取得して行う。生成した順方向ACKパケットは、パケットキュー106に格納される(ステップ402)。
(3)次に、エントリ200の順方向の仮サイズ213に実サイズ212の値を設定し、変更フラグ216を0に設定する(ステップ403)。
(4)ステップ403の処理後、あるいは、ステップ401の判定で、変更フラグ216の値が0であった場合、前述と同様に、逆方向についてもステップ404〜406での処理を行う。ステップ405で生成する逆方向ACKパケットは、順方向のACKパケットに対してアドレスとポート番号とが送信元と宛先で入れ替わっている。すなわち、パケットの送信元IPアドレスと送信元ポート番号とは、それぞれエントリ200の宛先アドレス202、宛先ポート204の値に設定され、パケットの宛先IPアドレスと宛先ポート番号とは、それぞれエントリ200の送信元アドレス201、送信元ポート203の値に設定される。また、パケットのacknowledgment number はACK番号215の値、window size は実サイズ212の値が設定される(ステップ404〜406)。
前述で説明したように、本発明の第1の実施形態による無線アクセスポイント101は、フロー毎に情報を管理しているため、一定の通信量があるフローのみをwindow size 変更の対象とすることができ、また、フロー管理テーブル110の情報からACKパケットを生成することができるため、輻輳が解消した時点で、直ちに元のwindow size を端末に通知して、トラフィックの抑制を解除することができる。
本発明の第1の実施形態による無線アクセスポイント101は、パケットキュー106が輻輳した場合に、TCPのwindow size を変更し無線ネットワーク100でのTCPパケットの通信量を低減することにより、無線アクセスポイント101でのパケットキュー106の輻輳を緩和するものであり、また、フロー毎に情報を管理し、一定の通信量があるフローのみをwindow size 変更の対象とすると共に、輻輳が解消した時点で、直ちに元のwindow size を端末にその旨を通知して、トラフィックの抑制を解除するものであったが、本発明は、輻輳状態において輻輳の程度が緩和された段階でACKパケットを生成してネットワーク端末に通知することにより、通信量を制限する期間を短くすることができる。次に、この場合の例を本発明の第2の実施形態として説明する。
図8は本発明の第2の実施形態でのキュー管理手段111によるサイズ計算処理の動作を説明するフローチャートである。この処理フローは、図5に示す本発明の第1の実施形態におけるサイズ計算処理において、ステップ504及びステップ507の直後に追加されるフローである。
本発明の第2の実施形態による無線アクセスポイント101の構成は、図1に示して説明した本発明の第1の実施形態の場合と同一である。そして、本発明の第2の実施形態により図5に示すサイズ計算処理が行われ、ステップ504またはステップ507の処理が実行されて、図8に示すフローの処理が開始されたものとして、図8に示すフローを説明する。
(1)まず、キュー管理手段111は、フロー管理テーブル110内の対象のフローの変更フラグ216を検査し、フラグ216の値が、0であるか、1であるかを判定し、フラグ216の値が0であった場合、何もせずに、図8での処理を終了して、図5に示すフローの次のステップに進む(ステップ801)。
(2)ステップ801の判定で、変更フラグ216の値が1であった場合、計算した仮サイズ213が元の仮サイズ213と比較してMSS205以上増加しているか否かを判定し、MSS205以上増加していなかった場合、図8での処理を終了して、図5に示すフローの次のステップに進む(ステップ802)。
(3)ステップ802の判定で、計算した仮サイズ213が元の仮サイズ213と比較してMSS205以上増加していた場合、ACKパケットを生成するために、該当のエントリ番号とフロー方向(ステップ504の直後ならば順方向、ステップ507の直後ならば逆方向)をACKパケット生成手段112に通知する(ステップ803)。
(4)次に、実サイズ212と計算した仮サイズ213とを比較し、両者が等しいか否かを判定する。この判定の結果、両者が等しくなかった場合、図8での処理を終了して、図5に示すフローの次のステップに進み、等しかった場合、変更フラグ216を0に設定して、図8での処理を終了して、図5に示すフローの次のステップに進む(ステップ804、805)。
ACKパケット生成手段112は、生成したACKパケットをパケットキュー106に格納する。このため、図5に示すフローによるサイズ計算処理の途中でパケットキュー106の残り容量が変化してしまうことになるが、本発明の第2の実施形態では、パケットキューの残り容量は、サイズ計算処理の開始時点での値をサイズ計算処理が終了するまで使用するものとする。
前述した本発明の第2の実施形態による無線アクセスポイント101は、輻輳状態が解消される前でもフローに割り当てられたwindow size の値が増えたタイミング、すなわち、パケットキューの残量が増加する方向にあり、輻輳状態が解消される方向にある場合に、随時ACKパケットを生成するため、輻輳状態による通信量の制限を早期に解除することができる。
次に、フローの種類によってwindow size に重み付けを行い、輻輳時の通信量を特定の種類のフローに優先的に割り当てるようにした例を、本発明の第3の実施形態として説明する。
本発明の第3の実施形態による無線アクセスポイント101の構成は、図1に示して説明した本発明の第1の実施形態の場合と同一である。そして、本発明の第3の実施形態は、フローの種類によってwindow size に重み付けを行い、輻輳時の通信量を特定の種類のフローに優先的に割り当てるために、図2にフロー管理テーブル110のエントリ200に優先係数フィールド(図2には示していない)を設けることとする。優先係数フィールドの値は、一般のトラフィックに対しては1であり、優先トラフィックについては1より大きい値、例えば、1.5等が設定される。優先トラフィックの識別は、TCPパケットのヘッダ情報、例えば、IPヘッダのTOSフィールドや、送信元または宛先ポート番号、送信元または宛先IPアドレス、あるいは、これらの組み合わせにより識別するようにする。優先トラフィックの条件と、条件に一致した場合の優先係数の値とは予め登録しておく。
本発明の第3の実施形態は、新たなエントリ200を作成する図6に示して説明したフローのステップ606での処理で、TCPパケットのヘッダ情報が優先トラフィックの条件に一致する場合、対応する優先係数の値をエントリ200の優先係数として設定し、条件に一致しない場合、1をエントリ200の優先係数の値として設定する。
前述で設定した優先係数は、図5に示して説明したサイズ計算処理のフローで以下のように用いられる。すなわち、ステップ501でのXの計算のための計算式を、パケットキューの残り容量を全エントリ200の優先係数の合計値で割った値とする計算式とする。また、ステップ503、506での計算を、Xにエントリ200の優先係数の値を乗算した値をMSS205で丸めた値を仮サイズ213とすることにより行う。
前述したような本発明の第3の実施形態による無線アクセスポイント101は、フロー毎にwindow size の計算に使う係数を変えることにより、特定の種類のフローに優先的に通信量を割り当てることができる。
前述した本発明の各実施形態における各処理は、処理プログラムとして構成することができ、この処理プログラムは、HD、DAT、FD、MO、DVD−ROM、CD−ROM等の記録媒体に格納して提供することができる。
前述で説明した本発明の実施形態は、パケット識別手段によりTCPパケットを判別し、TCPパケットについてだけwindow size の変更を行うことにより、無線アクセスポイントでの輻輳制御を行うとして説明したが、パケット内にwindow size を格納するフィールドを有するのは、現状ではTCPパケットだけであり、しかも、無線アクセスポイントで中継のために扱うパケットは、ほとんどがTCPパケットであるため、TCPパケットに対してのみwindow size の変更制御を行うことにより、充分に無線アクセスポイントの輻輳状態を制御することができる。
本発明は、無線LANシステムを用いた通信を行うネットワーク、特に、単一の無線アクセスポイントで家庭内の全ネットワーク機器を含む無線LANシステムを構成するホームネットワークに使用して有効である。
本発明の第1の実施形態による無線アクセスポイントの構成を示すブロック図である。 フロー管理テーブルに格納管理されているエントリの構成を説明する図である。 キュー管理手段による輻輳判定の処理動作を説明するフローチャートである。 キュー管理手段によるACK生成処理の動作を説明するフローチャートである。 図3におけるステップ304でのwindow size の仮サイズを計算する処理動作を説明するフローチャートである。 window size 変更手段によるTCPパケットに対するwindow size 変更の処理動作を説明するフローチャート(その1)である。 window size 変更手段によるTCPパケットに対するwindow size 変更の処理動作を説明するフローチャート(その2)である。 本発明の第2の実施形態でのキュー管理手段によるサイズ計算処理の動作を説明するフローチャートである。
符号の説明
100 無線ネットワーク
101 無線アクセスポイント
103 通信インタフェース
104 パケット識別手段
105 window size 変更手段
106 パケットキュー
110 フロー管理手段
111 キュー管理手段
112 ACKパケット生成手段

Claims (9)

  1. ネットワーク間中継機能を有する無線アクセスポイントの輻輳制御方法において、前記無線アクセスポイントは、中継するパケットを一時的に格納するパケットキューの残り容量に応じて中継するTCPコネクション毎のパケットの転送サイズの値を計算して管理し、パケットキューの残り容量に応じて計算した前記パケットの転送サイズの値により中継するTCPパケットの転送サイズフィールドを書き換えてから、そのTCPパケットを中継することを特徴とする輻輳制御方法。
  2. 前記パケットキューの残り容量が予め設定した値以上になった場合、パケットの転送サイズを変更したTCPパケットを送信した端末に対して、変更前のパケットの転送サイズの値をパケットの転送サイズとして持つパケットの送信を指示することを特徴とする請求項1記載の輻輳制御方法。
  3. 前記計算したパケットの転送サイズの値が増加した場合、前記パケットの転送サイズを変更したTCPパケットを送信した端末に対して、前記増加したパケットの転送サイズの値をパケットの転送サイズとして持つパケットの送信を指示することを特徴とする請求項1記載の輻輳制御方法。
  4. ネットワーク間中継機能を有する無線アクセスポイントにおいて、前記無線アクセスポイントは、中継するパケットを一時的に格納するパケットキューと、中継するTCPパケットの転送サイズフィールドを書き換えるパケットの転送サイズ変更手段と、TCPコネクション毎の情報を管理するフロー管理テーブルと、パケットキューの残り容量に応じてパケットの転送サイズの値を計算するキュー管理手段とを有し、前記キュー管理手段は、計算したTCPコネクション毎のパケットの転送サイズの値を前記フロー管理テーブルに格納して管理し、前記パケットの転送サイズ変更手段は、中継するTCPパケットの属するTCPコネクションのパケットの転送サイズを前記フロー管理テーブルから取得し、当該TCPパケットの転送サイズフィールドを書き換えてからそのTCPパケットを前記パケットキューに格納することを特徴とする無線アクセスポイント。
  5. ACKフラグが1でありデータ長が0であるTCPパケットを生成するACKパケット生成手段を有し、前記パケットキューの残り容量が予め設定した値以上になった場合、前記パケットの転送サイズ変更手段でパケットの転送サイズを変更されたTCPパケットを送信した端末に対して、前記ACKパケット生成手段により生成したACKパケットを送信することにより、変更前のパケットの転送サイズの値をパケットの転送サイズとして持つパケットの送信を指示することを特徴とする請求項4記載の無線アクセスポイント。
  6. ACKフラグが1でありデータ長が0であるTCPパケットを生成するACKパケット生成手段を有し、前記キュー管理手段で計算したパケットの転送サイズの値が増加した場合、前記パケットの転送サイズ変更手段でパケットの転送サイズを変更されたTCPパケットを送信した端末に対して、前記ACKパケット生成手段により生成した、パケットの転送サイズフィールドに増加したパケットの転送サイズの値を持つACKパケットを送信することにより、前記増加したパケットの転送サイズの値をパケットの転送サイズとして持つパケットの送信を指示することを特徴とする請求項4記載の無線アクセスポイント。
  7. 前記キュー管理手段は、計算したパケットの転送サイズに対してTCPコネクション毎に異なる係数を乗じ、TCPコネクション毎に重みを付けたパケットの転送サイズの値を前記フロー管理テーブルに格納して管理することを特徴とする請求項4記載の無線アクセスポイント。
  8. 前記パケットの転送サイズ変更手段は、一定のデータ量以上のデータを通信したTCPコネクションに属するTCPパケットに限定して前記パケットの転送サイズを書き換えることを特徴とする請求項4記載の無線アクセスポイント。
  9. 請求項4記載の無線アクセスポイントを用いて構成されることを特徴とする無線LANシステム。
JP2004314038A 2004-10-28 2004-10-28 輻輳制御方法、無線アクセスポイント及び無線lanシステム Pending JP2006129024A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004314038A JP2006129024A (ja) 2004-10-28 2004-10-28 輻輳制御方法、無線アクセスポイント及び無線lanシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004314038A JP2006129024A (ja) 2004-10-28 2004-10-28 輻輳制御方法、無線アクセスポイント及び無線lanシステム

Publications (1)

Publication Number Publication Date
JP2006129024A true JP2006129024A (ja) 2006-05-18

Family

ID=36723241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004314038A Pending JP2006129024A (ja) 2004-10-28 2004-10-28 輻輳制御方法、無線アクセスポイント及び無線lanシステム

Country Status (1)

Country Link
JP (1) JP2006129024A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100893050B1 (ko) 2007-07-03 2009-04-17 에스케이 텔레콤주식회사 무선 센서 네트워크에서 거리 적응적 경쟁 윈도우 조절장치 및 방법
WO2012046286A1 (ja) * 2010-10-04 2012-04-12 エンパイア テクノロジー ディベロップメント エルエルシー 情報処理装置およびプログラム
JP2018164154A (ja) * 2017-03-24 2018-10-18 沖電気工業株式会社 無線中継装置、無線通信装置及び無線通信システム
CN109076451A (zh) * 2016-06-30 2018-12-21 华为技术有限公司 一种站点中继方法、装置及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100893050B1 (ko) 2007-07-03 2009-04-17 에스케이 텔레콤주식회사 무선 센서 네트워크에서 거리 적응적 경쟁 윈도우 조절장치 및 방법
WO2012046286A1 (ja) * 2010-10-04 2012-04-12 エンパイア テクノロジー ディベロップメント エルエルシー 情報処理装置およびプログラム
US9087351B2 (en) 2010-10-04 2015-07-21 Empire Technology Development Llc Flat rate pricing with packet-frequency-aware billing system for mobile broadband communication
CN109076451A (zh) * 2016-06-30 2018-12-21 华为技术有限公司 一种站点中继方法、装置及系统
CN109076451B (zh) * 2016-06-30 2021-01-01 华为技术有限公司 一种站点中继方法、装置及系统
JP2018164154A (ja) * 2017-03-24 2018-10-18 沖電気工業株式会社 無線中継装置、無線通信装置及び無線通信システム

Similar Documents

Publication Publication Date Title
EP3323229B1 (en) Method and apparatus for managing network congestion
EP2538630B1 (en) High-speed communication system and high-speed communication method
JPWO2013133400A1 (ja) 制御装置、通信システム、スイッチ制御方法及びプログラム
JPWO2008047727A1 (ja) 通信装置および通信方法
CN108513330B (zh) 一种基于网络情境感知的路由协议分布式自适应切换方法
JP2002111742A (ja) データ伝送フローのパケットをマークするための方法およびこの方法を実行するマーカデバイス
JP5574944B2 (ja) 無線中継装置および無線中継方法
JP2021505042A (ja) リアルタイムトランスポートネットワーク輻輳状態に基づきデータトランスポートネットワークを加速又は減速させるシステム及び方法
JP5832335B2 (ja) 通信装置および通信システム
JP6011081B2 (ja) 無線通信装置及び優先制御方法
CN107809747B (zh) 通信方法、无线基站、服务器以及无线发布系统
US7646738B2 (en) Wireless network information distribution method
US20120155268A1 (en) Packet relay device
JP2008118281A (ja) 通信装置
KR20110133591A (ko) 세그먼트내 핸드오버 수행 방법 및 스위치
JP2006129024A (ja) 輻輳制御方法、無線アクセスポイント及び無線lanシステム
JP3511978B2 (ja) 優先度制御機能付きルータ及びプログラムを記録した機械読み取り可能な記録媒体
JP2006115156A (ja) アクセスポイント、アクセスポイント制御装置および無線lanシステム
JP2007318497A (ja) 無線アクセス制御装置及び方法、無線装置、および、ネットワーク
CN111917624B (zh) 一种在vxlan传输中控制信息的传送方法及系统
JP4901852B2 (ja) ネットワーク中継装置、中継方法、および、そのためのコンピュータプログラム
CN108055679B (zh) 一种mesh网络流控的方法
JP5168689B2 (ja) 無線装置およびそれを備えた無線ネットワーク
JP2017168880A (ja) コスト設定装置、方法およびプログラム
JP2009141438A (ja) 無線通信装置