(57)【特許請求の範囲】
【請求項１】
設定されたアグリゲーション条件に従って、１以上のフローに流す複数のパケットを一つに集約するアグリゲーション処理手段と、
前記１以上のフローの実際の使用帯域を計測し、該使用帯域が割り当て帯域を超えている場合、使用帯域を低減するために前記アグリゲーション処理手段にアグリゲーション条件を設定するパケット処理手段とを備えることを特徴とする通信装置。
【請求項２】
前記パケット処理手段は、前記１以上のフローの使用帯域を前記割り当て帯域以下に抑えるために最低限必要な帯域削減量を計算し、前記１以上のフローの平均ビットレートを現状維持したままで前記計算した帯域削減量に等しい量だけアグリゲーションによって使用帯域を削減するのに必要なパケットサイズを計算し、該計算したパケットサイズからアグリゲーション条件を算出して設定することを特徴とする請求項１に記載の通信装置。
【請求項３】
パケットの廃棄によって前記１以上のフローの帯域制御を行う帯域制御手段を備え、
前記パケット処理手段は、アグリゲーションによる使用帯域の削減だけでは割り当て帯域以下に抑制できない場合、使用帯域を低減するために前記帯域制御手段に対して一定量または一定割合のパケットの廃棄を行わせることを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記パケット処理手段は、前記１以上のフローの使用帯域が前記割り当て帯域以下に低下した場合に、前記帯域制御手段によるパケットの廃棄量と前記アグリゲーション処理手段のアグリゲーション条件の見直しを行うことを特徴とする請求項３に記載の通信装置。
【請求項５】
通信レートRATEの通信区間において、パケットサイズP_Setのフローを転送する際にかかるビットあたりの通信時間を1としたときの、パケットサイズPのフローを転送する際にかかるビットあたりの通信時間をオーバーヘッドα(P,
P_Set)と定義し、前記１以上のフローに、通信レートRATE、パケットサイズP_Setとして、BWの実効帯域が割り当てられている場合、前記パケット処理手段は、前記フローの平均パケットサイズPと平均ビットレートBとを計測し、該計測結果と前記オーバヘッドα(P, P_Set)とから前記１以上のフローで実際に使用されている実効帯域を計算し、前記割り当て帯域BWと比較することにより、使用帯域が割り当て帯域を超えているかどうかを判定することを特徴とする請求項１乃至４の何れか１項に記載の通信装置。
【請求項６】
パケットサイズP_Setのフローを転送する際にかかるビットあたりの通信時間を1としたときの、各パケットサイズでの前記オーバーヘッドα(P, P_Set)の計算結果を記憶する記憶手段を備え、前記パケット処理手段は、前記実効帯域の計算に必要な前記オーバーヘッドα(P, P_Set)を前記記憶手段から読み出して利用することを特徴とする請求項５に記載の通信装置。
【請求項７】
複数の他の通信装置との間で送受信されるパケットの転送機能を有することを特徴とする請求項１乃至６の何れか１項に記載の通信装置。
【請求項８】
前記他の通信装置と無線により接続されていることを特徴とする請求項７に記載の通信装置。
【請求項９】
ａ）パケット処理手段が、１以上のフローの実際の使用帯域を計測し、該使用帯域が割り当て帯域を超えている場合、使用帯域を低減するためにアグリゲーション処理手段にアグリゲーション条件を設定するステップと、
ｂ）前記アグリゲーション処理手段が、設定されたアグリゲーション条件に従って、前記１以上のフローに流す複数のパケットを一つに集約するステップとを含むことを特徴とする通信方法。
【請求項１０】
前記パケット処理手段は、前記１以上のフローの使用帯域を前記割り当て帯域以下に抑えるために最低限必要な帯域削減量を計算し、前記１以上のフローの平均ビットレートを現状維持したままで前記計算した帯域削減量に等しい量だけアグリゲーションによって使用帯域を削減するのに必要なパケットサイズを計算し、該計算したパケットサイズからアグリゲーション条件を算出して設定することを特徴とする請求項９に記載の通信方法。
【請求項１１】
ｃ）帯域制御手段が、前記アグリゲーションによる使用帯域の削減だけでは割り当て帯域以下に抑制できない場合、使用帯域を低減するために一定量または一定割合のパケットの廃棄を行うステップを含むことを特徴とする請求項９または１０に記載の通信方法。
【請求項１２】
ｄ）前記パケット処理手段が、前記１以上のフローの使用帯域が前記割り当て帯域以下に低下した場合に、前記帯域制御手段によるパケットの廃棄量と前記アグリゲーション処理手段のアグリゲーション条件の見直しを行うステップを含むことを特徴とする請求項１１に記載の通信方法。
【請求項１３】
通信レートRATEの通信区間において、パケットサイズP_Setのフローを転送する際にかかるビットあたりの通信時間を1としたときの、パケットサイズPのフローを転送する際にかかるビットあたりの通信時間をオーバーヘッドα(P, P_Set)と定義し、前記１以上のフローに、通信レートRATE、パケットサイズP_Setとして、BWの実効帯域が割り当てられている場合、前記パケット処理手段は、前記フローの平均パケットサイズPと平均ビットレートBとを計測し、該計測結果と前記オーバヘッドα(P, P_Set)とから前記１以上のフローで実際に使用されている実効帯域を計算し、前記割り当て帯域BWと比較することにより、使用帯域が割り当て帯域を超えているかどうかを判定することを特徴とする請求項９乃至１２の何れか１項に記載の通信方法。
【請求項１４】
パケットサイズP_Setのフローを転送する際にかかるビットあたりの通信時間を1としたときの、各パケットサイズでの前記オーバーヘッドα(P, P_Set)の計算結果を記憶する記憶手段を備え、前記パケット処理手段は、前記実効帯域の計算に必要な前記オーバーヘッドα(P, P_Set)を前記記憶手段から読み出して利用することを特徴とする請求項１３に記載の通信方法。
【請求項１５】
コンピュータを、
設定されたアグリゲーション条件に従って、１以上のフローに流す複数のパケットを一つに集約するアグリゲーション処理手段と、
前記１以上のフローの実際の使用帯域を計測し、該使用帯域が割り当て帯域を超えている場合、使用帯域を低減するために前記アグリゲーション処理手段にアグリゲーション条件を設定するパケット処理手段として機能させるためのプログラム。
【請求項１６】
前記パケット処理手段は、前記１以上のフローの使用帯域を前記割り当て帯域以下に抑えるために最低限必要な帯域削減量を計算し、前記１以上のフローの平均ビットレートを現状維持したままで前記計算した帯域削減量に等しい量だけアグリゲーションによって使用帯域を削減するのに必要なパケットサイズを計算し、該計算したパケットサイズからアグリゲーション条件を算出して設定することを特徴とする請求項１５に記載のプログラム。
【請求項１７】
前記コンピュータを、さらに、パケットの廃棄によって前記１以上のフローの帯域制御を行う帯域制御手段として機能させ、且つ、
前記パケット処理手段は、アグリゲーションによる使用帯域の削減だけでは割り当て帯域以下に抑制できない場合、使用帯域を低減するために前記帯域制御手段に対して一定量または一定割合のパケットの廃棄を行わせることを特徴とする請求項１５または１６に記載のプログラム。
【請求項１８】
前記パケット処理手段は、前記１以上のフローの使用帯域が前記割り当て帯域以下に低下した場合に、前記帯域制御手段によるパケットの廃棄量と前記アグリゲーション処理手段のアグリゲーション条件の見直しを行うことを特徴とする請求項１７に記載のプログラム。
【請求項１９】
通信レートRATEの通信区間において、パケットサイズP_Setのフローを転送する際にかかるビットあたりの通信時間を1としたときの、パケットサイズPのフローを転送する際にかかるビットあたりの通信時間をオーバーヘッドα(P,
P_Set)と定義し、前記１以上のフローに、通信レートRATE、パケットサイズP_Setとして、BWの実効帯域が割り当てられている場合、前記パケット処理手段は、前記フローの平均パケットサイズPと平均ビットレートBとを計測し、該計測結果と前記オーバヘッドα(P, P_Set)とから前記１以上のフローで実際に使用されている実効帯域を計算し、前記割り当て帯域BWと比較することにより、使用帯域が割り当て帯域を超えているかどうかを判定することを特徴とする請求項１５乃至１８の何れか１項に記載のプログラム。
【請求項２０】
パケットサイズP_Setのフローを転送する際にかかるビットあたりの通信時間を1としたときの、各パケットサイズでの前記オーバーヘッドα(P, P_Set)の計算結果を記憶する記憶手段を備え、前記パケット処理手段は、前記実効帯域の計算に必要な前記オーバーヘッドα(P, P_Set)を前記記憶手段から読み出して利用することを特徴とする請求項１９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信装置および通信方法に関し、特にフローで実際に使用される実効帯域を割り当て帯域以下に制御する通信装置および通信方法に関する。
【背景技術】
【０００２】
無線のアクセス方式として、IEEE802.11で規定されている方式を利用した無線LANが普及している。この種の無線LANでは、送信者は、データフレームを送信する毎に、通信相手から応答確認であるACKフレームを受け取る。送信者は、ACKを受信することで送信が成功したかどうかを判断する。また、データフレームの送信においては、ACKの送信時間以外にも、フレームの送信間隔における待ち時間であるDIFS(Distributed Inter Frame Spacing）,SIFS(Short Inter Frame Spacing)が発生する。
【０００３】
そのため、パケットが無線LANにおいて転送されるのに必要な実質的な時間は、データフレームを送信するのに要する時間をTr(DATA),ACKフレームの送信に要する時間をTr(ACK)とすると、
DIFS + Tr(DATA) + SIFS + Tr(ACK)      …(1)
で表すことができる。
【０００４】
Tr(ACK),DIFS,SIFSは、データ通信の際に必ず発生するため、オーバーヘッドとして無線通信のスループットに影響を与える。特に、無線区間の通信レートに関わらずほぼ一定の時間が必要であるため、無線の通信レートが高くなるほど、これらオーバーヘッドがスループットに与える影響は大きくなる。まず、ACKは一番低い通信レートで送出されるため、通信レートが変化した場合でも、ACKによる通信時間Tr(ACK)は変わらない。同様に、DIFSおよびSIFSは通信レートに関係なく一定であるため、通信レートが高い場合、オーバーヘッドとして与える影響が大きくなる。また、データフレーム自体の送信においても、データフレームに付随するプリアンブル部は、データフレームより低い最低の通信レートにより送信される。
【０００５】
更に、これらオーバーヘッドは、パケットサイズに関わらずフレームの送信毎に発生するため、小さいパケットほど、オーバーヘッドの影響を受けやすくなる。そのため、同じビットレートの場合、パケットサイズが小さいフローの方が送信回数が増えるため、結果として送信するビットあたりの使用する無線資源が大きくなる。つまり、同じビットレートのトラヒックでも、パケットのサイズにより実際に使用する実効帯域が異なる。
【０００６】
このように、無線LANでは、通信レートやパケットのサイズによって実際に使用する実効帯域が大きく変化するため、有線ネットワークで行われているビットレートに基づく帯域割り当てと帯域制御は、異なるデータサイズを持つ複数のフローが存在する場合、有効に機能しない。
【０００７】
このような課題を解決する帯域制御技術の一例が特許文献１に記載されている。特許文献１に記載される技術（以下、本発明の関連技術１と称す）では、新規の通信要求の受付時に、新規要求に必要なトラヒックの占有時間をSIFSやACK等を考慮して算出し、既に受け付けている他の要求に割り当てた占有時間から求まる余剰帯域に基づいて、新規要求の受け付け可否を判断する（アドミッションコントロール）。そして、新規要求を受け付けた場合、新規要求に対して帯域を割り当て、以後、トラヒックを監視する。若し、トラヒックが受け付け時に割り当てた帯域を超過している場合には、一定量のパケットを強制的に廃棄することにより、使用帯域が割り当て帯域以下になるように制御する。
【０００８】
他方、無線ＬＡＮのスループットを向上する技術として、複数のデータパケットを一つのパケットにまとめて送信するアグリゲーション技術が存在する。このアグリゲーション技術により、小さなサイズの複数のパケットを１つの大きなパケットとして送信すれば、送信回数が減るために、オーバーヘッドが抑えられ、スループットが向上する。ただし、アグリゲーション技術の課題として、複数のデータを溜めるため、待ち時間が遅延となる副作用がある。また、アグリゲーションでまとめられたパケットのサイズが大きいほど無線環境でのエラーでフレームが壊れてしまいやすくなるという問題もある。
【０００９】
【特許文献１】特開２００７−７４２１０号公報
【特許文献２】特開２００７−１３５２０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明の関連技術１によれば、トラヒックの占有時間から帯域制御を行うため、異なるサイズのパケットを持つ複数のフローが存在しても帯域制御を有効に行うことができる。しかし、実際に使用している帯域が割り当て帯域を超過した場合、使用帯域を低減させるにはパケットを廃棄するしか方法が無いため、無線資源の有効活用の面で課題があった。
【００１１】
本発明の目的は、実際に使用している実効帯域が割り当て帯域以上となった場合に、パケットをできだけ廃棄することなく、実際に使用している実効帯域を割り当て帯域以下に抑えることのできる通信方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の通信装置は、設定されたアグリゲーション条件に従って、１以上のフローに流す複数のパケットを一つに集約するアグリゲーション処理手段と、前記１以上のフローの実際の使用帯域を計測し、該使用帯域が割り当て帯域を超えている場合、使用帯域を低減するために前記アグリゲーション処理手段にアグリゲーション条件を設定するパケット処理手段とを備える。
【発明の効果】
【００１３】
本発明によれば、実際に使用されている実効帯域が割り当て帯域以上となった場合でも、パケットをできだけ廃棄することなく、実際に使用されている実効帯域を割り当て帯域以下に抑えることができる。その理由は、複数のパケットを一つに集約するアグリゲーションによって、使用されている帯域を割り当て帯域以下に抑えるためである。
【発明を実施するための最良の形態】
【００１４】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１５】
『第１の実施の形態』
図１を参照すると、本発明を適用したネットワーク構成の一例は、自身のトラヒックに対して帯域割り当てを必要とするパーソナルコンピュータ（PC）等の端末101、102、105、106と、トラヒックに対して帯域割り当てを行い、帯域を確保して管理する中継ノード103、104とで構成される。ここで、端末101は中継ノード103に有線で接続し、端末102と中継ノード103とは無線により接続する。また、中継ノード103と中継ノード104とは無線により接続し、端末105、106はそれぞれ有線により中継ノード104と接続されている。本発明の効果は無線帯域を実効帯域として制御する場合により顕著であるが、本発明が適用されるネットワークは全ての通信装置が無線で接続されている必要はなく、図１に例示するネットワークのように、有線で接続さている通信区間があっても良い。
【００１６】
図２を参照すると、中継ノード103、104を経由して、端末101が端末106と通信し、端末102が端末105と通信する場合、端末101および端末102は、通信を開始する前に、一つのフロー、または複数のフローからなるトラヒッククラスのために、中継ノード103、104に対して帯域の割り当てを要求する。具体的には、RSVP(Resource Reservation Protocol)などを用いて帯域予約を行う（111、113）。そして、その後に通信を行う（112、114）。
【００１７】
中継ノード103、104は、端末101、102からのトラヒックに対してのフロー単位、トラヒッククラス単位での帯域割り当てに際し、フローの一秒あたりのビット量であるビットレート、パケットサイズ等の諸条件から実際に使用される実効帯域を求め、割り当てる帯域を決定する。
【００１８】
次に中継ノード103、104は、端末101と端末106との通信および端末102と端末105との通信が開始されると、その通信の平均ビットレートおよび平均パケットサイズなどの通信状況を計測し、その計測結果から実際に使用されている実効帯域を求め、割り当てられている実効帯域と比較する。そして、帯域が割り当てられたフローまたは、帯域が割り当てられたトラヒッククラス全体のトラヒック量の変化や、通信レートの変化により、フローまたは、トラヒッククラス全体が使用する実効帯域がそれぞれに割り当てられた実効帯域以上になる場合、中継ノード103、104は、フローまたは、トラヒッククラスに属するフローの平均パケットサイズ、平均ビットレートから、アグリゲーションを行うことによって現在割り当てられている帯域でも帯域割り当て時のビットレートを維持できるかどうかを調べる。
【００１９】
若し、或るデータサイズまでアグリゲーションすることにより、フローまたは、トラヒッククラスが使用する実効帯域が割り当て帯域以下となる場合は、中継ノード103、104は、そのデータサイズまでアグリゲーションを行うように設定し、パケット廃棄による帯域制御は実施しない。他方、既にデータサイズがシステムで許容される最大サイズになっていて、アグリゲーションによって帯域を改善する余地が無くなっているか、余地があってもアグリゲーションだけでは、実際に使用されている実効帯域を割り当て帯域以下に抑えることができない場合には、パケット廃棄による帯域制御をも併用することで、フローまたは、トラヒッククラスが使用する実効帯域を割り当て帯域以下に抑制する。
【００２０】
その後、帯域が割り当てられたフローまたは、帯域が割り当てられたトラヒッククラス全体のトラヒック量の変化や、通信レートの変化により、フローまたは、トラヒッククラス全体が使用する実効帯域が、それぞれに割り当てられた実効帯域より所定量あるいは所定割合だけ小さな或る帯域以下まで低下した場合、中継ノード103、104は、パケット廃棄量およびアグリゲーション条件の見直しを行う。見直しを行う理由は、パケット廃棄量を減らすか、０にしても、使用実効帯域を割り当て帯域以下に抑えることができる可能性があるためである。また、アグリゲーション後のパケットサイズをより小さくするか、アグリゲーションをキャンセルしても、使用実効帯域を割り当て帯域以下に抑えることができる可能性があるためである。
【００２１】
次に中継ノード103、104の構成例について詳細に説明する。
【００２２】
図３を参照すると、本発明を適用した中継ノード201の一例は、３つの通信部202〜204と、通信部202に対応して設けられたアグリゲーション処理部207および帯域制御部208と、通信部203に対応して設けられたアグリゲーション処理部209および帯域制御部210と、通信部204に対応して設けられたアグリゲーション処理部211および帯域制御部212と、これらの通信部202〜204、アグリゲーション処理部207、209、211および帯域制御部208、210、212に接続されたパケット処理部205と、このパケット処理部205に接続された帯域管理部206とを備える。それぞれは概ね以下のような機能を備えている。
【００２３】
通信部202〜204は、自中継ノード201と他の通信装置との間で有線または無線により通信を行う。例えば、中継ノード201を図１の中継ノード103として使用する場合、例えば通信部204は端末101と通信し、通信部203は端末102と通信し、通信部202は中継ノード104と通信する。通信部202〜204は、他の通信装置から受信したパケットをパケット処理部205へ伝達し、逆に、パケット処理部205から帯域制御部208、210、212およびアグリゲーション処理部207、209、211を通じて受け取ったパケットを他の通信装置へ送信する。なお、この例の中継ノード201は通信部を３つ備えているが、通信部の数は２つ以下でも、また３つ以上であっても良い。
【００２４】
パケット処理部205は、ヘッダの解析や転送先の決定といった通常のパケット転送処理に加えて、アグリゲーションされたデータの分解、フロー毎の平均ビットレートや平均パケットサイズの計測などのトラヒック量の計測、計測結果に基づく実効帯域の算出と割り当て帯域との比較、比較結果に基づくアグリゲーション処理部207、209、211および帯域制御部208、210、212の制御を行う。
【００２５】
アグリゲーション処理部207、209、211は、パケット処理部205から設定されたアグリゲーション条件に従って、パケット処理部205から伝達された複数のパケットを一つのパケットに集約し、対応する帯域制御部208、210、212へ送出する。本実施の形態では、アグリゲーション条件の一つに、待ち時間がある。アグリゲーション処理部207、209、211は、アグリゲーションを行うフローに関してパケット処理部205から送られてくるパケットを、設定された待ち時間だけバッファに蓄積し、待ち時間が経過した時点でバッファに溜まっている複数のパケットを一つのパケットに集約する。その他、パケット数をアグリゲーション条件として設定し、設定されたパケット数だけ溜まったら一つのパケットに集約する等の付加変更が可能である。
【００２６】
帯域管理部206は、フロー単位、または、複数のフローからなるトラヒッククラス単位で、帯域割り当てを行う。具体的には、帯域管理部206は、パケットサイズ、ビットレートとその時の自中継ノード201の通信レート（通信能力）から、実際に使用される実効帯域を求め、それを割り当て帯域として管理し、パケット処理部205に対してその情報を提供する。
【００２７】
帯域制御部208、210、212は、パケット処理部205および対応するアグリゲーション処理部207、209、211から受け取ったパケットを、対応する通信部202〜204に伝達する。その際、帯域制御部208、210、212は、フロー単位、または、複数のフローからなるトラヒッククラス単位で、パケット処理部205からパケット廃棄量が設定されている場合には、設定された量のパケットを廃棄する処理を行う。
【００２８】
上述した通信部202〜204、パケット処理部205、帯域管理部206、アグリゲーション処理部207、209、211、帯域制御部208、210、212は、例えばコンピュータとその上で動作するプログラムとで実現することができる。プログラムは、磁気ディスク等のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、コンピュータの動作を制御することにより、そのコンピュータ上に、通信部202〜204、パケット処理部205、帯域管理部206、アグリゲーション処理部207、209、211、帯域制御部208、210、212を実現する。
【００２９】
次に中継ノード201の動作を説明する。
【００３０】
中継ノード201の帯域管理部206は、フロー単位、または、複数のフローからなるトラヒッククラス単位で帯域割り当てを行う。割り当てられた帯域の情報は、帯域管理部206で管理され、パケット処理部205から参照される。帯域管理部206は、帯域を割り当てる際に、パケットサイズ、ビットレートとその時の中継ノード201の通信レート（通信能力）から、実際に使用される実効帯域を求め、それを割り当て帯域として管理する。
【００３１】
その後、帯域が割り当てられたフローを通じてパケットの送受信が開始されると、中継ノード201のパケット処理部205は、フロー単位または、複数のフローからなるトラヒッククラス単位で、図４に示す処理を実行する。
【００３２】
まずパケット処理部205は、通信部202〜204から入力されたパケットを分類し、フロー毎の平均パケットサイズおよび平均ビットレートなどのトラヒック量を計測し、その計測結果から、実際に各フローまたは、トラヒッククラスが使用する実効帯域を求める（S101）。次にパケット処理部205は、求めた実効帯域と、帯域管理部206で管理されている当該フローまたはトラヒッククラスの割り当て実効帯域とを比較する（S102）。
【００３３】
次にパケット処理部205は、実際に使用されている実効帯域が割り当て帯域を超えていれば（S102でNO）、アグリゲーション条件を算出し（S103）、当該フローのパケットのアグリゲーションを行うアグリゲーション処理部207、209、211に設定する（S104）。ここで、アグリゲーション条件の算出ステップS103では、実際の使用実効帯域を割り当て帯域以下に抑えることができるアグリゲーション条件の算出を目標とするが、パケットの最大長の制限などによって実現不可能な場合、最大パケット長になるようなアグリゲーション条件を算出して設定する。次に、アグリゲーションだけでは実際の使用実効帯域を割り当て帯域以下に抑えることができない場合、アグリゲーション後の使用実効帯域と割り当て帯域との差分に応じたパケット廃棄量を算出し（S105）、当該フローの帯域制御を行う帯域制御部208、210、212に設定する（S106）。
【００３４】
他方、実際に使用されている実効帯域が割り当て帯域を超えていなければ（S102でYES）、パケット処理部205は、実際に使用されている実効帯域が条件見直し閾値以下か否かを判定する（S107）。ここで、条件見直し閾値は、割り当て帯域から所定量小さな帯域、あるいは割り当て帯域の所定割合の帯域に設定される。実際に使用されている実効帯域が条件見直し閾値を超えているか（S107でNO）、超えていなくても当該フローに関してアグリゲーション実行中でなければ（S108でNO）、パケット処理部205はステップS101に戻って上述した処理を繰り返す。
【００３５】
また、実際に使用されている実効帯域が条件見直し閾値以下であり（S107でYES）、且つ、当該フローに関してアグリゲーションを実行中であれば（S108でYES）、パケット処理部205は、パケット廃棄量およびアグリゲーション条件の見直しを行う（S109、S110）。その理由は、トラヒック量の低下等が生じていれば、アグリゲーションやパケット廃棄を行わなくても実際に使用されている実効帯域を割り当て帯域以下に抑えることができる可能性があるためである。
【００３６】
まず、ステップS109のパケット廃棄量の見直し処理では、パケット処理部205は、０より大きなパケット廃棄量が現在設定されていれば、その設定されているパケット廃棄量の全てを削減しても実際に使用されている実行帯域が割り当て帯域以下になるかどうかを調べる。現在のパケット廃棄量の全てを削減しても割り当て帯域以下になる場合には、該当する帯域制御部208、210、212に対してパケット廃棄量０の設定を行い、アグリゲーション条件の見直し処理に進む。現在のパケット廃棄量の全てを削減すると、割り当て帯域以上となる場合には、割り当て帯域以下となる最大の削減量を求め、該当する帯域制御部208、210、212に対して現在のパケット廃棄量から前記最大の削減量を差し引いた残りの量をパケット廃棄量として設定する。この場合、アグリゲーション条件の見直し処理はパスする。
【００３７】
ステップS110のアグリゲーション条件の見直し処理では、パケット処理部205は、実際の実効帯域を割り当て帯域以下にできる最小のパケットサイズを求め、この求めた最小パケットサイズがアグリゲーション前の平均パケットサイズより小さければ、アグリゲーションの実行をキャンセルする。また、前記最小パケットサイズがアグリゲーション前の平均パケットサイズより大きければ、前記最小パケットサイズがアグリゲーション後のパケットサイズになるようなアグリゲーション条件を算出して設定する。
【００３８】
パケット処理部205の処理によってアグリゲーション対象となったフローに属するパケットは、パケット処理部205から該当するアグリゲーション処理部207、209、211に送られ、アグリゲーション条件に従って複数のパケットが一つのパケットに集約して、帯域制御部208、210、212へ送られる。他方、アグリゲーション対象でないフローに属するパケットは、そのままパケット処理部205から該当する帯域制御部208、210、212へ送られる。帯域制御部208、210、212は、フローに属するパケットを対応する通信部202〜204を通じて他の通信装置へ送信するが、パケット処理部205からパケット廃棄量が設定されている場合には、設定された量のパケットを当該フローに属するパケットから廃棄する。
【００３９】
以上のような処理が行われることにより、実際に使用されている実効帯域が割り当て帯域以上となった場合でも、パケットをできるだけ廃棄することなく、実際に使用されている実効帯域を割り当て帯域以下に抑えることができる。
【００４０】
次に、実際に使用されている実効帯域を割り当て帯域以下に抑えるのに最低限必要なアグリゲーション条件の算出方法について説明する。
【００４１】
その説明の前に前提となる考えを示す。
【００４２】
パケットサイズがＰのデータを送る際に要する時間は以下のように表現できる。
DIFS + DATA_RATE(P) + SIFS + Tr(ACK)      …(2)
ここで、DATA_RATE(P)は、無線区間の通信レートがRATE Mbpsの時にパケットサイズPのデータを送るのに必要な時間を表す。また、DIFS,SIFSはフレーム間の待ち時間、Tr(ACK)は、ACKフレームの送信に要する時間をそれぞれ表す。
【００４３】
以上により、無線区間の通信レートがRATE Mbps時において、パケットサイズPのフローをパケットサイズがP_Setのときのフローと比較したオーバーヘッドα(P, P_Set)は、以下のようにして求めることができる。
α(P, P_Set) = (DIFS + DATA_RATE(P) + SIFS + Tr(ACK)) / (DIFS + DATA_RATE(P_Set) + SIFS + Tr(ACK)) * (P_Set / P)      …(3)
【００４４】
上記のオーバーヘッドα(P, P_Set)は、パケットサイズがP_Setのフローを転送する際にかかるビットあたりの通信時間を1とすると、パケットサイズをPにしたフローではビットあたりにどの程度の通信時間がかかるかを示す値である。
【００４５】
以上を前提に、パケット処理部205では、以下のような動作を行う。なお、ここでは、説明を簡単にするために、二つのフローの例で説明するが、実際には多数のフローを対象にし、その場合においても以下に示される同様の手順で行われる。
【００４６】
今、無線区間の通信レートがRATE Mbpsであるときに、パケットサイズがP_Setとして、BW Mbps分の実効帯域が或る端末（例えば端末102）にトラヒッククラスとして割り当てられ、平均パケットサイズがP_Aで平均ビットレートがB_A bpsのフローAと、平均パケットサイズがP_Bで平均ビットレートがB_B bpsのフローBがそのクラスに属しているとする。このときフローAで使用する実効帯域は、B_A * α(P_A, P_Set)、フローBで使用する実効帯域は、B_B * α(P_B, P_Set)である。
【００４７】
トラヒックの変動でフローA,B全体で使用する実効帯域が割り当て帯域以上のトラヒックになる場合、次式の関係になる。
BW < B_A * α(P_A, P_Set) + B_B * α(P_B, P_Set)      …(4)
【００４８】
ここで、P_B << MTU(許容されている最大パケット長)であるとき、アグリゲーションでトラヒッククラスが使用する実効帯域を割り当てられた実効帯域以下に抑えつつ所定のビットレートB_A、B_Bを維持するためには、アグリゲーション後のパケットサイズP_B’を、以下の式を満たす大きさにする必要がある。
α(P_B’, P_Set) ≦ (BW− B_A * α(P_A, P_Set)) / B_B      …(5)
【００４９】
簡単のために、
OH = DIFS + SIFS + Tr(ACK)      …(6)
DATA_RATE(P) = P / RATE      …(7)
と置くと、α(P_B’, P_Set)は、
α(P_B’, P_Set) = (OH + P_B’ / RATE) / (OH + P_Set / RATE) * (P_Set / P_B’)      …(8)
で表せ、これをP_B’について解くと、
P_B’ = P_Set * OH / (OH * α(P_B’, P_Set) + P_Set / RATE * (α(P_B’, P_Set) − 1))      …(9)
となる。α(P_B’, P_Set)の上限値は、前記(5)の不等式より求まるため、その上限値の値を代入することで、P_B’を求めることができる。
【００５０】
この求めたP_B’の大きさになるようアグリゲーションを行うことで、トラヒッククラスが使用する実効帯域がトラヒッククラスに対して割り当てられた帯域以下となる。そして、アグリゲーションの待ち時間はP_B’とB_Bから次式により求まる。
待ち時間 ＝ P_B’/B_B      …(10)
【００５１】
仮に、求めたP_B’がMTU以上となる場合は、MTUをP_B’として用い、フローAに対しても同様のことを行う。それでも超過する場合は、帯域制御部210において、超過分が廃棄されるようにパケット廃棄量を設定する。
【００５２】
以上のようにして、パケットサイズを考慮した実効帯域の帯域制御と、トラヒックが使用する実効帯域の状況に応じた動的なアグリゲーションが実現できる。
【００５３】
上記のような処理を行う際には、オーバーヘッドα(P, P_Set)の計算が随所で必要になる。これを毎回計算によって求めるようにしても良いが、予め図５のようなグラフで示されるデータを記憶装置に記憶しておき、このデータを参照することで計算を省略することができる。この方法は、少ない計算資源を持つ中継ノードで用いることで、処理負担を低減することができる。なお、図５のグラフは、パケットサイズが1450 byteのときのフローを転送する際にかかるビットあたりの通信時間を1としたときの各パケットサイズでのビットあたりの通信時間（つまりオーバヘッドα）を、無線区間の通信レートが、54 Mbps、36 Mbps、11 Mbpsについて求めてグラフ化したものである。因みに、無線の通信レートが高くなるほどオーバヘッドがスループットに与える影響が大きくなるため、同じパケットサイズであっても通信レートが高いほど、オーバヘッドαの値が大きくなっている。
【００５４】
以上の方法に対して、実際に式に対して値を入れると以下のようになる。
【００５５】
無線区間を通信レート54Mbpsで通信している無線LANにおいて、10Mbps（パケットサイズ1450byte換算）分の実効帯域を或るトラヒッククラスに割り当てるとする。
【００５６】
ここで、平均パケットサイズが1450byteのフローが7Mbps、平均パケットサイズが200byteのフローが1Mbps流れている場合、パケット処理部205において使用帯域をパケットサイズを考慮して調べると、200byteのフローが4Mbps程度の帯域を占めることとなり、合計11Mbpsとなる。
【００５７】
パケット処理部205において、平均パケットサイズが200byteのフローの実効レートが3Mbps以下となるパケットサイズは、少なくとも400byteであれば、実効帯域でも2Mbpsとなることを調べる。最後に、400*8/10^6 = 0.0032から、アグリゲーション処理部におけるアグリゲーションの待ち時間を3.2 msecに設定する。
【００５８】
以上の説明では、通信区間の通信レートが変化しない状況の下で、トラヒックの量が割り当て帯域以上となってしまう場合での本発明の適用例だが、通信区間の通信レートが変化した結果、トラヒックの量が割り当て帯域以上となってしまう場合にも、以下で説明するように本発明を適用することができる。
【００５９】
無線区間の通信品質に応じて、無線区間の通信レートが変動してしまうことが多々ある。そのような場合、実効帯域による帯域割り当てでは、無線区間の通信レートの変動に応じて、同じ割り当て帯域であっても実現できるビットレートが変動する。通信レートが変化した場合でも、本発明を適用することで、割り当てられた実効帯域内で今まで通信していたビットレートを最大限維持できる。
【００６０】
今、無線区間の通信レートがRATE Mbps時であるときに、BW Mbpsの帯域（パケットサイズをP_Setとして）が或るトラヒッククラスに割り当てられ、そのトラヒッククラスに平均パケットサイズがP_Bで平均ビットレートがB_B bpsのフローが属しているとする。
【００６１】
ここで、無線環境の変化で無線区間の通信レートがRATE MbpsからRATE’ Mbpsへ変化し、それに応じて割り当てられた実効帯域で実現できるビットレートがBW MbpsからBW’ Mbpsに変化し、フローのビットレートがBW’以上となる場合、パケットサイズが次の式を満たすP_B’となるようにアグリゲーションを行う必要がある。
BW’/BW = (OH+P_B’/RATE’)/ (OH+P_Set/RATE) * (P_Set/P_B’)      …(11)
【００６２】
そこで、P_B’について解くと、
P_B’ = P_Set * OH / (BW’/ BW ( OH + P_Set / RATE) − P_Set / RATE’)  …(12)
となり、求めたP_B’が割り当てられた実効帯域内でビットレートを維持するために必要なアグリゲーション後のパケットサイズとなる。アグリゲーション処理部での待ち時間はP_B’とB_Bから前記式(10)により求まる。
【００６３】
これにより、通信レートが変化した場合においても、アグリゲーションにより、もともと確保した実効帯域範囲内で帯域割り当て時のビットレートを保つことが可能となる。
【００６４】
ここでは、中継ノード自身の無線区間の通信レートが変動した場合での例だが、他に競合する無線機器により、中継ノードが確保できる実効帯域が変動する場合でも、確保できた実効帯域を元に、先ほどの例に示されるのと同様の処理が適用できる。
【００６５】
次に本実施の形態の効果を説明する。
【００６６】
第１の効果は、実際にトラヒックが使用する実効帯域を把握することができるため、ビットレートに基づく帯域制御ではできない、異なるパケットサイズのフローが混在した場合でも、実際に使用する帯域を把握することができることである。これにより、使用する実効帯域を基にした帯域制御が行える。
【００６７】
第２の効果は、使用する帯域が割り当てられた帯域以上となる場合でも、アグリゲーションを行うことで使用する実効帯域を割り当て帯域内で最大限のビットレートを維持することができることである。
【００６８】
第３の効果は、通信区間の通信レートの変更により、あるトラヒックに割り当てられた帯域内で実現できるスループットが変化した場合でも、その状況に即したスループットを維持する帯域制御ができることである。その理由は、トラヒックと使用できる帯域に応じたアグリゲーションを行うためである。
【００６９】
第４の効果は、各々の中継ノードが置かれた状況に応じて動作し、各中継ノードが自律的に行うため、シグナリングなどの情報交換を行うことなく、状況に応じたアグリゲーションにより全体のスループットを向上することできることである。
【００７０】
『その他の実施の形態』
図３に示した中継ノード201では、各通信部202〜204毎に一組の帯域制御部およびアグリゲーション処理部を設けているが、帯域制御部およびアグリゲーション処理部を持たない通信部を有する中継ノードに対しても本発明は適用可能である。その場合の構成を図６に示す。この例の中継ノード221は、図３の中継ノード201からアグリゲーション処理部211および帯域制御部212を取り去った構成を有する。中継ノード221において、複数の通信部202〜204から受信したデータはパケット処理部205で処理され、通信部202、203を通じて送られる転送先については、アグリゲーション処理部207、209でアグリゲーションが行われると共に、帯域制御部208、210で帯域制御が行われる。他方、アグリゲーション処理部と帯域制御部を持たない通信部204経由で転送するデータに対しては、そのまま転送される。
【００７１】
第１の実施の形態では、アグリゲーションを用いて実際の実効帯域を割り当て帯域以下に制御する図３の仕組みを図１のネットワークにおける中継ノード103、104に組み込んだが、同様の仕組みを端末102等の端末に組み込むことも可能である。その場合、端末で発生するトラヒックに関しては、端末自身が帯域管理部に対して帯域割り当てを行い、図４で示されるフローチャートの手順で処理される。
【００７２】
第１の実施の形態では、図１に示したように２つの中継ノード103、104を備えたネットワークに対して本発明を適用したが、ネットワークに含まれる中継ノードおよび端末の数は任意であり、例えば図７に示すように、３つ以上の中継ノード103、104、107を通じて端末間で通信が行われるネットワークに対しても本発明は適用可能である。
【００７３】
本発明で必要となる、フローまたは、トラヒッククラスに対する帯域の割り当て方法としては、RSVP (Resource Reservation Protocol) などを用いた予約による方式のほかにも、予め、本発明を実施する通信装置および中継ノードに対して割り当て情報を設定しておく方式によっても実現できる。
【図面の簡単な説明】
【００７４】
【図１】本発明を適用したネットワーク構成例を示すブロック図である。
【図２】本発明を適用したネットワークの動作シーケンス図である。
【図３】本発明を適用した中継ノードの一例を示すブロック図である
【図４】本発明を適用した中継ノードにおけるパケット処理部の処理例を示すフローチャートである。
【図５】パケットサイズが1450byteのフローを転送する際にかかるビットあたりの通信時間を1とした時の各パケットサイズのオーバヘッドを示す図である。
【図６】本発明を適用した中継ノードの他の例を示すブロック図である。
【図７】本発明を適用した別のネットワーク構成例を示すブロック図である。
【符号の説明】
【００７５】
101、102、105、106…端末
103、104、107、201、221…中継ノード
202〜204…通信部
205…パケット処理部
206…帯域管理部
207、209、211…アグリゲーション処理部
208、210、212…帯域制御部
【図１】
0005146013.tif 000002
【図２】
0005146013.tif 000003
【図３】
0005146013.tif 000004
【図４】
0005146013.tif 000005
【図５】
0005146013.tif 000006
【図６】
0005146013.tif 000007
【図７】
0005146013.tif 000008