(57)【特許請求の範囲】
【請求項１】
少なくとも一つの通信フローのパケットとアグリゲート設定コマンドを入力する入力インタフェースと、
複数の入力パケットをアグリゲートして一括して出力可能なアグリゲート制御部と、を有し、
上記アグリゲート制御部は、
スループット優先通信とレイテンシ優先通信を混在可能にアグリゲート制御可能で、
アグリゲート可能なパケットサイズ情報を取得可能で、入力される上記アグリゲート設定コマンドにより当該取得したパケットサイズ情報に応じてアグリゲート可能な最大パケットサイズとアグリゲートタイムアウト時間を動的に設定し、
上記設定される最大パケットサイズに応じた複数の入力パケットをアグリゲートし、
アグリゲート途中で入力パケットが途切れた場合は、動的に指定可能なタイムアウト時間経過後、既に入力したパケットをアグリゲートし、
上記スループット優先通信のときは、
上記レイテンシ優先通信のときより、上記最大パケットサイズを大きく設定し、かつ上記アグリゲートタイムアウト時間を長く設定し、
上記レイテンシ優先通信のときは、
上記スループット優先通信のときより、上記最大パケットサイズを小さく設定し、かつ上記アグリゲートタイムアウト時間を短く設定する
通信装置。
【請求項２】
上記アグリゲート制御部は、
上記レイテンシ優先通信のとき最大パケットサイズを１に設定可能で、最大パケットサイズを１に設定すると、入力パケットを直ちに出力し、タイムアウトは無効とする
請求項１記載の通信装置。
【請求項３】
上記アグリゲート制御部は、
フラッシュコマンドを受けると、上記最大パケットサイズに達していなくても既に入力したパケットのみをアグリゲートして出力する
請求項１または２記載の通信装置。
【請求項４】
上記アグリゲート制御部は、
タイムアウト制御において、時間測定開始条件をアグリゲート対象の先頭パケット入力時と最終パケット入力時を選択する
請求項１から３のいずれか一に記載の通信装置。
【請求項５】
上記アグリゲート制御部は、
定期的に測定期間中の入力パケット数を測定し、その測定値の平均値を算出し、平均値にマージンを加えた値をタイムアウト設定時間とする
請求項１から４のいずれか一に記載の通信装置。
【請求項６】
上記アグリゲート制御部は、
測定無効期間以上パケット入力がなかった場合は上記測定期間、入力パケット数共にリセットして平均値を更新しない
請求項５記載の通信装置。
【請求項７】
上記アグリゲート制御部は、
複数の通信フローを入力可能で、
通信フロー毎の優先順位を設定し、優先順位の高い通信フローがアグリゲーション中のときは、優先順位の低い通信フローがアグリゲーションを完了しても、優先順位の高いフローのアグリゲーションパケットが出力されるまで待たせる
請求項１から６のいずれか一に記載の通信装置。
【請求項８】
上記アグリゲート制御部は、
アグリゲートのトリガとなるパケットを指定されると、定期的なパケット受信によりアグリゲート制御を行うことが可能で、
アグリゲートのトリガとなるパケットを受信するまでアグリゲートを行わないように制御可能である
請求項１から７のいずれか一に記載の通信装置。
【請求項９】
上記アグリゲート制御部は、
パケットの並び換え条件を指定されると、アグリゲート時にパケットの並び換えを行う
請求項１から８のいずれか一に記載の通信装置。
【請求項１０】
上記アグリゲート制御部は、
パケットデータバイトアライメントを指定されると、アグリゲート時にバイトアライメントを行う
請求項１から９のいずれか一に記載の通信装置。
【請求項１１】
複数の入力パケットを１つのパケットにアグリゲートして一括して出力するアグリゲート部を有する第１の通信装置と、
上記第１の通信装置によるアグリゲートパケットを分離するデアグリゲート部を有する第２の通信装置と、を含み、
上記第１の通信装置の上記アグリゲート部は、
少なくとも一つの通信フローのパケットとアグリゲート設定コマンドを入力する入力インタフェースと、
複数の入力パケットをアグリゲートして一括して出力可能なアグリゲート制御部と、を有し、
上記アグリゲート制御部は、
スループット優先通信とレイテンシ優先通信を混在可能にアグリゲート制御可能で、
アグリゲート可能なパケットサイズ情報を取得可能で、入力される上記アグリゲート設定コマンドにより当該取得したパケットサイズ情報に応じてアグリゲート可能な最大パケットサイズとアグリゲートタイムアウト時間を動的に設定し、
上記設定される最大パケットサイズに応じた複数の入力パケットをアグリゲートし、
アグリゲート途中で入力パケットが途切れた場合は、動的に指定可能なタイムアウト時間経過後、既に入力したパケットをアグリゲートし、
上記スループット優先通信のときは、
上記レイテンシ優先通信のときより、上記最大パケットサイズを大きく設定し、かつ上記アグリゲートタイムアウト時間を長く設定し、
上記レイテンシ優先通信のときは、
上記スループット優先通信のときより、上記最大パケットサイズを小さく設定し、かつ上記アグリゲートタイムアウト時間を短く設定する
通信システム。
【請求項１２】
上記アグリゲート制御部は、
上記レイテンシ優先通信のとき最大パケットサイズを１に設定可能で、最大パケットサイズを１に設定すると、入力パケットを直ちに出力し、タイムアウトは無効とする
請求項１１記載の通信システム。
【請求項１３】
上記アグリゲート制御部は、
フラッシュコマンドを受けると、上記最大パケットサイズに達していなくても既に入力したパケットのみをアグリゲートして出力する
請求項１１または１２記載の通信システム。
【請求項１４】
上記アグリゲート制御部は、
タイムアウト制御において、時間測定開始条件をアグリゲート対象の先頭パケット入力時と最終パケット入力時を選択する
請求項１１から１３のいずれか一に記載の通信システム。
【請求項１５】
上記アグリゲート制御部は、
定期的に測定期間中の入力パケット数を測定し、その測定値の平均値を算出し、平均値にマージンを加えた値をタイムアウト設定時間とする
請求項１１から１４のいずれか一に記載の通信システム。
【請求項１６】
上記アグリゲート制御部は、
測定無効期間以上パケット入力がなかった場合は上記測定期間、入力パケット数共にリセットして平均値を更新しない
請求項１５記載の通信システム。
【請求項１７】
上記アグリゲート制御部は、
複数の通信フローを入力可能で、
通信フロー毎の優先順位を設定し、優先順位の高い通信フローがアグリゲーション中のときは、優先順位の低い通信フローがアグリゲーションを完了しても、優先順位の高いフローのアグリゲーションパケットが出力されるまで待たせる
請求項１１から１６のいずれか一に記載の通信システム。
【請求項１８】
上記アグリゲート制御部は、
アグリゲートのトリガとなるパケットを指定されると、定期的なパケット受信によりアグリゲート制御を行うことが可能で、
アグリゲートのトリガとなるパケットを受信するまでアグリゲートを行わないように制御可能である
請求項１１から１７のいずれか一に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット通信を行う通信装置および通信システムに関するものである。
【背景技術】
【０００２】
近年のネットワークの高速化に伴い、従来の汎用インタフェースではハンドシェイクプロトコルのオーバヘッドによりスループットが不足する場合が出てきた。
その改善策として、通信装置（機器）内部で入力した複数のパケットをアグリゲートして一括出力することにより、セットアップトラフィックを削減しスループットを向上させる方法がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した方法には、初期に入力したパケットが後続パケットとアグリゲートされるまで出力が保留されるためレイテンシが増加する問題がある。
【０００４】
また、入力パケットがアグリゲートするパケット数に達する前にパケット入力が停止した場合、既に入力したパケットだけをアグリゲートして出力する処理が必要となるが、その判定を行うまでの時間分の遅延が発生してしまう問題がある。
【０００５】
上記問題に対し、従来の装置では、アグリゲートするパケット数や、アグリゲートのタイムアウト時間の設定が、静的なものであったため、スループットとレイテンシのどちらかを犠牲にするか、どちらも妥協した設定しかできず、様々な通信トラフィック特性に応じた最適なアグリゲート制御を行うことができなかった。
【０００６】
本発明の目的は、システムで必要なスループット特性とレイテンシ特性を有する通信装置および通信システムを提供することにある。
【０００７】
なお、本明細書において、アグリゲート（aggregate）とは複数のパケットを統合することを示し、デアグリゲート(deaggregate)とはアグリゲートしたパケットを分離して元に戻すことを意味する。また、バイトアライメント(byte alignment)とはＣＰＵが効率よく処理できるようにデータアドレスを配置することを示す。たとえば３２ビットバスにける４バイトアライメントでは、アドレスが常に４の倍数になるようにデータを配置する。
【課題を解決するための手段】
【０００８】
本発明の第１の観点の通信装置は、少なくとも一つの通信フローのパケットとアグリゲート設定コマンドを入力する入力インタフェースと、複数の入力パケットをアグリゲートして一括して出力可能なアグリゲート制御部と、を有し、上記アグリゲート制御部は、スループット優先通信とレイテンシ優先通信を混在可能にアグリゲート制御可能で、アグリゲート可能なパケットサイズ情報を取得可能で、入力される上記アグリゲート設定コマンドにより当該取得したパケットサイズ情報に応じてアグリゲート可能な最大パケットサイズとアグリゲートタイムアウト時間を動的に設定し、上記設定される最大パケットサイズに応じた複数の入力パケットをアグリゲートし、アグリゲート途中で入力パケットが途切れた場合は、動的に指定可能なタイムアウト時間経過後、既に入力したパケットをアグリゲートし、上記スループット優先通信のときは、上記レイテンシ優先通信のときより、上記最大パケットサイズを大きく設定し、かつ上記アグリゲートタイムアウト時間を長く設定し、上記レイテンシ優先通信のときは、上記スループット優先通信のときより、上記最大パケットサイズを小さく設定し、かつ上記アグリゲートタイムアウト時間を短く設定する。
【０００９】
好適には、上記アグリゲート制御部は、上記レイテンシ優先通信のとき最大パケットサイズを１に設定可能で、最大パケットサイズを１に設定すると、入力パケットを直ちに出力し、タイムアウトは無効とする。
【００１０】
好適には、上記アグリゲート制御部は、フラッシュコマンドを受けると、上記最大パケットサイズに達していなくても既に入力したパケットのみをアグリゲートして出力する。
【００１１】
好適には、上記アグリゲート制御部は、タイムアウト制御において、時間測定開始条件をアグリゲート対象の先頭パケット入力時と最終パケット入力時を選択する。
【００１２】
好適には、上記アグリゲート制御部は、定期的に測定期間中の入力パケット数を測定し、その測定値の平均値を算出し、平均値にマージンを加えた値をタイムアウト設定時間とする。
【００１３】
好適には、上記アグリゲート制御部は、測定無効期間以上パケット入力がなかった場合は上記測定期間、入力パケット数共にリセットして平均値を更新しない。
【００１４】
好適には、上記アグリゲート制御部は、複数の通信フローを入力可能で、通信フロー毎の優先順位を設定し、優先順位の高い通信フローがアグリゲーション中のときは、優先順位の低い通信フローがアグリゲーションを完了しても、優先順位の高いフローのアグリゲーションパケットが出力されるまで待たせる。
【００１５】
好適には、上記アグリゲート制御部は、アグリゲートのトリガとなるパケットを指定されると、定期的なパケット受信によりアグリゲート制御を行うことが可能で、アグリゲートのトリガとなるパケットを受信するまでアグリゲートを行わないように制御可能である。
【００２１】
好適には、上記アグリゲート制御部は、パケットの並び換え条件を指定されると、アグリゲート時にパケットの並び換えを行う。
【００２２】
好適には、上記アグリゲート制御部は、パケットデータバイトアライメントを指定されると、アグリゲート時にバイトアライメントを行う。
【００２４】
本発明の第２の観点の通信システムは、複数の入力パケットを１つのパケットにアグリゲートして一括して出力するアグリゲート部を有する第１の通信装置と、上記第１の通信装置によるアグリゲートパケットを分離するデアグリゲート部を有する第２の通信装置と、を含み、上記第１の通信装置の上記アグリゲート部は、少なくとも一つの通信フローのパケットとアグリゲート設定コマンドを入力する入力インタフェースと、複数の入力パケットをアグリゲートして一括して出力可能なアグリゲート制御部と、を有し、上記アグリゲート制御部は、スループット優先通信とレイテンシ優先通信を混在可能にアグリゲート制御可能で、アグリゲート可能なパケットサイズ情報を取得可能で、入力される上記アグリゲート設定コマンドにより当該取得したパケットサイズ情報に応じてアグリゲート可能な最大パケットサイズとアグリゲートタイムアウト時間を動的に設定し、上記設定される最大パケットサイズに応じた複数の入力パケットをアグリゲートし、アグリゲート途中で入力パケットが途切れた場合は、動的に指定可能なタイムアウト時間経過後、既に入力したパケットをアグリゲートし、上記スループット優先通信のときは、上記レイテンシ優先通信のときより、上記最大パケットサイズを大きく設定し、かつ上記アグリゲートタイムアウト時間を長く設定し、上記レイテンシ優先通信のときは、上記スループット優先通信のときより、上記最大パケットサイズを小さく設定し、かつ上記アグリゲートタイムアウト時間を短く設定する。
【００２５】
本発明によれば、アグリゲート部が、動的に指定可能なパケット数に基づいて入力パケットをアグリゲートし、一括して出力する。
たとえば、通信フローや通信ポートなどの通信単位毎にアグリゲート制御パラメータを設定することにより、スループット優先通信とレイテンシ優先通信を混在可能とする。
また、タイムアウト制御において、時間測定開始条件をアグリゲート対象の先頭パケット入力時と最終パケット入力時を選択することにより、前者では最大レイテンシ保証を可能とし、後者では想定スループットに対して適切なタイムアウトを設定可能である。
【発明の効果】
【００２６】
本発明によれば、レイテンシ優先とスループット優先のアグリゲート設定を動的に変化させることができるので、通信トラフィック特性に応じた最適な通信パフォーマンスが得られる利点がある。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施形態について図面に関連付けて説明する。
【００２８】
図１は、本発明の実施形態に係る通信装置を適用した通信システムの構成例を示す図である。
【００２９】
図１の通信システム１においては、第１の通信装置（Ａ）１００と第２の通信装置（Ｂ）１５０が、インタフェース１０６とインタフェース１５１で接続されている。
通信装置１００内部の通知手段としてのアプリケーション１０１はパケット（Ｐ１）１０２、パケット（Ｐ２）１０３、パケット（Ｐ３）１０４、パケット（Ｐ４）１０５をインタフェース１０６に出力する。
インタフェース１０６は、アプリケーション側から入力したパケット１０２〜１０５をアグリゲートし、ヘッダを付加して一つのアグリゲートパケット１１１として、通信装置（Ｂ）１５０に出力する。
【００３０】
通信装置（Ｂ）１５０内部において、インタフェース１５１で入力したパケットは、パケット１５３、パケット１５４、パケット１５５、パケット１５６にデアグリゲートされ、アプリケーション１５２に出力される。
【００３１】
なお、図１において、アグリゲートを行うパケット数は任意である。
また、アグリゲート、デアグリゲートを行うのはインタフェースでなくデバイスドライバであっても良い。
【００３２】
図２は、アグリゲート情報ヘッダの一例を示す図である。
アグリゲート情報ヘッダには、図２に示すように、総パケット数、フロー番号、パケット１データ長、パケット２データ長、パケット３データ長、パケット４データ長が含まれる。
【００３３】
図３および図４は、本発明の適用対象となるインタフェースの一例で、図３はアグリゲート装置の一例を示し、図４はデアグリゲート装置の一例を示す。
【００３４】
＜アグリゲート装置構成＞
以下、図３のアグリゲート装置の構成について説明する。
図３のアグリゲート装置２は、入力インタフェース２００、アグリゲート制御回路２１０、および出力インタフェース２９０を主構成要素として有している。
【００３５】
最小構成の入力インタフェース２００の入力には、フロー１のシングルパケット入力２０１とアグリゲート設定コマンド２０３が供給されている。
シングルパケット入力２０１から変換されたフロー１ライトデータ２１４はアグリゲート制御回路２１０内部のフロー１アグリゲート制御ブロック２１５のバッファ２１６に供給されている。アグリゲート設定コマンド２０３は入力インタフェース２００を経由し、アグリゲート制御回路２１０内部のアグリゲート条件設定ブロック２１１に供給されている。
【００３６】
アグリゲート制御回路２１０は、アグリゲート条件設定ブロック２１１、アグリゲート制御シーケンサ２１２、フロー１アグリゲート制御ブロック２１５、およびマルチプレクサ２２８により構成される。
アグリゲート条件設定ブロック２１１の入力にはアグリゲート設定コマンド２０３やアグリゲート制御シーケンサ２１２からの信号が供給され、出力はアグリゲート制御ブロック２１５内部のアグリゲート最大サイズ設定２１９やアグリゲートタイムアウト設定部２２２へ接続されている。
【００３７】
アグリゲート制御シーケンサ２１２は、内部にアグリゲートヘッダ情報２１３を持ち、入力にはアグリゲート条件設定ブロック２１１の制御情報やアグリゲート制御ブロック２１５からのパケットフル検出信号２２４とタイムアウト検出信号２２９が供給される。
バッファ制御信号出力２２６はアグリゲート制御ブロック２１５のバッファ２１６に、クリア信号２２５はアグリゲート制御ブロック２１５のパケットカウンタ２１７に供給されている。
【００３８】
フロー１アグリゲート制御ブロック２１５は、入力インタフェース２００からのフロー１ライトデータ２１４とアグリゲート制御シーケンサ２１２からの制御信号２２６を入力しマルチプレクサ２２８へデータを出力するバッファ２１６と、フロー１ライトデータ２１４をカウント入力、アグリゲート制御シーケンサ２１２からクリア信号２２５を入力するパケットカウンタ２１７と、アグリゲート条件設定ブロック２１１から出力される最大サイズ設定情報２１９と、パケットカウンタ２１７と最大サイズ設定情報２１９との一致検出回路２１８と、フロー１ライトデータ２１４をクリア入力とするタイマカウンタ２２０と、アグリゲート条件設定ブロック２１１から出力されるタイムアウト設定情報２２２と、タイマカウンタ２２０とタイムアウト設定２２２の一致検出回路２２１と、を有している。
【００３９】
出力インタフェース２９０は、アグリゲート制御回路２１０で生成された複数のパケットを含むアグリゲートパケット２９１を出力する。
【００４０】
＜アグリゲート動作＞
以下、図３の動作について説明する。
【００４１】
入力インタフェース２００のフロー１シングルパケット入力２０１に入力されたパケットはアグリゲート制御回路２１０のフロー１ライトデータとしてバッファ２１６に入力される。
それと並行して、パケットカウンタ２１７がインクリメントされ、タイマカウンタ２２０がクリアスタートする。
バッファ２１６に入力されたパケット数がアグリゲート条件設定ブロック２１１からの最大サイズに達すると、パケットカウンタ２１７との一致検出信号２１８が発生され、アグリゲート制御シーケンサ２１２にアグリゲートタイミングが通知される。
また、タイマカウンタ２２０がクリアスタートした後、パケット入力がないままアグリゲート条件設定ブロック２１１からのタイムアウト時間に達すると、タイマカウンタ２２０との一致検出信号２２１が発生され、アグリゲート制御シーケンサ２１２にアグリゲートタイミングが通知される。
【００４２】
上述したように、アグリゲートタイミングを通知されたアグリゲート制御シーケンサ２１２は、図２のようにアグリゲートしたパケット数や入力したフローなどを元としたアグリゲート情報ヘッダ２１３を生成しマルチプレクサ２２８により出力インタフェース２９０に出力した後、バッファ制御信号２２６を出力する。
そして、バッファ２１６からアグリゲート対象のパケットデータを読み出しマルチプレクサ２２８により出力インタフェース２９０に出力する。
以上の動作によりアグリゲートパケット出力が完了したら、パケットカウンタ２１７をクリアする。
【００４３】
＜デアグリゲート装置構成＞
図４のデアグリゲート装置３は、入力インタフェース３００、デアグリゲート制御回路３０１、および出力インタフェース３０２を主構成要素として有している。
【００４４】
入力インタフェース３００の入力には、アグリゲートパケット入力３１１とデアグリゲート設定コマンド３１０が供給される。
デアグリゲートパケット入力３１１から変換されたアグリゲートデータはデアグリゲート制御回路３０１内部のバッファ３２２に供給される。
デアグリゲート設定コマンド３１０は入力インタフェース３００を経由し、デアグリゲート制御回路３０１内部のデアグリゲート条件設定ブロック３２０に供給される。
【００４５】
デアグリゲート制御回路３０１は、デアグリゲート条件設定ブロック３２０、デアグリゲート制御シーケンサ３２１、バッファ３２２、およびデマルチプレクサ３２３により構成される。
デアグリゲート条件設定ブロック３２０の入力にはデアグリゲート設定コマンド３１０やデアグリゲート制御シーケンサ３２１からの信号が供給され、出力はデアグリゲート制御シーケンサ３２１へ接続されている。
デアグリゲート制御シーケンサ３２１の入力にはデアグリゲート条件判定ブロック３２０の制御情報やバッファ３２２のデータ出力３２８が供給され、バッファ制御信号出力３２８はバッファ３２２に、デマルチプレクサ制御信号３２９はデマルチプレクサ３２３に供給される。
最小構成の出力インタフェース３０２は、デアグリゲート制御回路３０１のデマルチプレクサ３２３でデアグリゲートされたパケットデータ３２４を入力しシングルパケット３１２を出力する。
【００４６】
＜デアグリゲート動作＞
以下、図４の動作について説明する。
【００４７】
入力インタフェース３００に入力されたデアグリゲートコマンド３１０はデアグリゲート制御回路３０１のデアグリゲート条件設定ブロック３２０に入力される。
デアグリゲート設定コマンドでは、特定のフローデータをフィルタリングしたり、フローの優先順位を変更したり、出力タイミングを指定するなどのオプションを設定することができる。
入力インタフェース３００に入力されたアグリゲートパケット３１１はデアグリゲート制御回路３０１のバッファ３２２に入力される。
デアグリゲート制御シーケンサ３２１では、バッファ３２２に入力されているアグリゲートパケット中のアグリゲート情報ヘッダを解析し、アグリゲートされているパケットを分離して、デマルチプレクサ３２３に出力する。
デマルチプレクサ３２３は、デアグリゲート制御シーケンサ３２１の制御によりフロー毎に、出力インタフェース３０２を経由し、フロー１はシングルパケット出力３１２、フロー２はシングルパケット出力３１３、フローｎはシングルパケット出力３１５に出力される。
【００４８】
以上が、デアグリゲートの基本動作についての説明となる。
【００４９】
以下に、図５に関連付けて、動的なアグリゲート制御方法の具体例を示す。
図５は、図１のシステム構成における、動作シーケンスを示す図である。
【００５０】
（実施例１）
通信装置（Ａ）１００におけるアプリケーション１０１は、情報要求コマンドを発行し、通信装置（Ａ）１００のインタフェース１０６と通信装置（Ｂ）１５０のインタフェース１５１のアグリゲート可能なパケットサイズ情報を取得する。
たとえば前者は８パケット、後者が４パケットだった場合、アグリゲート可能な最大パケットサイズは両方のインタフェースがサポートできる４パケットとする。
【００５１】
通信装置（Ａ）１００のアプリケーション１０１は、パラメータセットコマンドを使用して、通信装置（Ａ）１００のインタフェース１０１に上記で判定したアグリゲート可能な最大パケットサイズ（４）と、デフォルトのアグリゲートタイムアウト値（３）を設定する。
【００５２】
通信装置（Ａ）１００のアプリケーション１０１が、データＤ１からＤ４までの４パケットを出力すると、通信装置（Ａ）１００のインタフェース１０６内部に設定された最大アグリゲートサイズの４に達するので、通信装置（Ａ）１００のインタフェース１０６は入力した４パケットをアグリゲートして装置Ｂインタフェースに出力する。
【００５３】
通信装置（Ｂ）１５０のインタフェース１５１は、通信装置（Ａ）１００のインタフェース１０６から転送されたヘッドおよび複数のパケットを含むアグリゲートパケットをデアグリゲートしたデータＤ１からＤ４までの４パケットを通信装置（Ｂ）１５０のアプリケーション１５２に出力する。
データＤ５からＤ８までの４パケットについても、データＤ１からＤ４と同様に処理される。
【００５４】
通信装置（Ａ）１００のアプリケーション１０１が、データＤ９の１パケットを出力した後、後続で出力するパケットがない状態が継続し、通信装置（Ａ）１００のインタフェース１０６内部に設定されたタイムアウト時間に達した場合、通信装置（Ａ）１００のインタフェース１０６は既に入力したパケットだけをアグリゲートして通信装置（Ｂ）１５０のインタフェース１５１に出力する。
【００５５】
通信装置（Ａ）１００のアプリケーション１０１は、あらかじめ送信サイズが２パケットであることがわかっているデータを効率良く送信するために、パラメータセットコマンドを使用して、通信装置（Ａ）１００のインタフェース１０６の最大アグリゲートパケットサイズに２を、アグリゲートタイムアウト値に２を設定する。
【００５６】
データＤ１０からＤ１１までの２パケット、データＤ１３からＤ１４までの２パケットについては、最大アグリゲートサイズ（２）指定によるアグリゲート、データＤ１４の１パケットについてはアグリゲートタイムアウト指定によるアグリゲートが行われる。
【００５７】
通信装置（Ａ）１００のアプリケーション１０１は、データＤ１５の１パケットを出力した後、フラッシュコマンドを発行することにより、最大アグリゲートサイズ指定に達していなくても既に受信したパケットのみをアグリゲートして出力することができる。
【００５８】
通信装置（Ａ）１００のアプリケーション１０１は、レイテンシが最優先のデータを送信するために、パラメータセットコマンドを使用して、通信装置（Ａ）１００のインタフェース１０１の最大アグリゲートパケットサイズに１を設定する。
データＤ１６、データＤ１７はアグリゲートされずに通信装置（Ｂ）１５０のインタフェース１５１に出力される。
【００５９】
図６は、２つの通信フローでそれぞれ異なるアグリゲート制御を行う例を示す図である。
【００６０】
フロー１はスループットを優先するために、最大アグリゲートサイズを４に設定し、タイムアウト時間を長めに設定する。
フロー２はレイテンシを優先するために、最大アグリゲートサイズを１に設定する。最大アグリゲートサイズが１の場合は、パケット入力後直ちにそれを出力するため、タイムアウトは無効となる。
【００６１】
図７は、アグリゲートパラメータをIEEE802.3のUser Priority（ユーザ優先順位）、IEEE802.1DのQoSタグ、IEEE802.11eのAccess Categoryなどにより帯域保証制御されるフローに適するように設定した例を示す図である。
【００６２】
たとえば、イーサネット（Ethernet：登録商標）の１パケットの最大データサイズは１５００バイトなので、Voiceデータが１５００バイトの場合は、アグリゲートする必要がなく、レイテンシも最小にする必要があるので、アグリゲートパケット数を１、タイムアウト時間を０に設定する。
また、Videoデータが１５０００バイトの場合は、Videoデータ単位でアグリゲートされるようにアグリゲートパケット数を１０パケット、タイムアウト時間を画像フレーム間隔に近い４０ｍｓに設定する。
ベストエフォートデータはレイテンシの制約がなく、できるだけ多くのパケットをアグリゲートして効率良く転送するために、アグリゲートパケット数を装置が設定可能な最大値である２０パケットとし、タイムアウトも長めの２００ｍｓに設定する。
最も優先順位の低いバックグラウンドデータは、アグリゲートパケット数はベストエフォートと同じ最大の２０パケットとするが、転送速度が遅いのでタイムアウトを５００ｍｓと長く設定する。
【００６３】
（実施例２）
なお、本実施形態においては、入力インタフェース２００、およびアグリゲート制御回路２１０内部のアグリゲート制御ブロックは、必要な通信フロー数に応じて追加可能とする。
また、本実施形態ではフロー毎に入力経路が独立しているが、これらは同一信号を経由してアドレスやポートなどの情報で識別させても良い。
【００６４】
（実施例３）
タイマカウンタ２２０のクリアスタート条件は、上記した例のような最後のパケット入力の他、最初にアグリゲートするパケットの入力タイミングとしても良い。
この場合、アグリゲート前のパケット入力時間からアグリゲート後のパケット出力時間までの最大レイテンシを保証することができる。
【００６５】
（実施例４）
タイムアウト設定時間２２２は、パケット入力周期を測定し、自動的に適切な値を設定させることにより、アプリケーションの負荷を軽減させることができる。
図８は、パケット入力周期を測定し、自動的に適切な値を設定させる具体的な方法を示す図である。
【００６６】
定期的に測定期間Tsample(本例では８)中の入力パケット数Nを測定し、その平均値Taverageを算出し、これに適当なマージンを加えた値をタイムアウト設定時間とする。
その際、通信トラフィックのない期間を除外するために、測定無効期間Tinvalid以上パケット入力がなかった場合はTsample、N共にリセットしてTaverageを更新しないようにすると、より正確な通信トラフィック中のパケット入力時間間隔を計算することができる。
【００６７】
（実施例５）
アグリゲート条件設定ブロック２１１に、フロー毎の優先順位を設定し、優先順位の高いフローがアグリゲーション中のときは、優先順位の低いフローがアグリゲーションを完了しても、優先順位の高いフローのアグリゲーションパケットが出力されるまで待たせることにより、優先順位制御を行うことができる。
【００６８】
（実施例６）
アグリゲート条件設定ブロック２１１に、アグリゲートのトリガとなるパケットを指定することにより、定期的なパケット受信によりアグリゲート制御を行うことができる。
上述した実施形態のフラッシュコマンドと異なりホストが特別な処理を行う必要がない。
【００６９】
（実施例７）
アグリゲート条件設定ブロック２１１に設定したアグリゲートのトリガとなるパケットを受信するまでアグリゲートを行わないようにすることができる。
アグリゲートを行う指定パケットが入力されるまでにバッファがオーバーフローしたら古いデータを捨てることにより、不要なデータ入力に対する処理負荷を軽減させる事が可能となる。
【００７０】
（実施例８）
通信装置（Ａ）１００のアプリケーション１０１から、通信装置（Ｂ）１５０のインタフェース１５１に対してアグリゲーションパラメータを設定することにより、送信装置が送信データに応じた適切なアグリゲーション制御を受信装置に対して行うことが可能となる。
【００７１】
（実施例９）
図９は、本発明の適用対象となる無線ＬＡＮインタフェースシステムの一例を示す図である。
【００７２】
図９の無線ＬＡＮインタフェースシステム４おいては、ホスト（Ａ）４００のデバイスインタフェース４０２と無線ＬＡＮデバイス（Ａ）４２０のホストインタフェース４２１間がアグリゲートデータパス４１０で接続されている。
無線ＬＡＮデバイス（Ａ）４２０には無線ＬＡＮインタフェース４２３とＩＥＥＥ８０２．１１  ＭＩＢ（管理情報ベース）４２３が内蔵されている。
ホスト（Ｂ）４６０、および無線ＬＡＮデバイス（Ｂ）４４０は、ホスト（Ａ）４００、および無線ＬＡＮデバイス（Ａ）４２０と同様の構成の対向システムで、無線ＬＡＮデバイス（Ａ）４２０と、無線ＬＡＮデバイス（Ｂ）４４０間は、無線メディア４３０で接続されている。
【００７３】
以下に、アグリゲートパラメータを、無線ＬＡＮデバイスの状態により制御する例を示す。
ＭＩＢ４２３にはカウンタテーブル(dot11ContersTable)という性能測定用のカウンタ情報が含まれている。たとえばその中の一つであるdot11TransmittedFrameCountという送信成功フレームカウンタを、ホスト（Ａ）４００のアプリケーション４０１が一定周期でカウントし、トラフィックが高ければアグリゲートを行うパケット数を多くすることによりスループットを向上させることが可能となる。
【００７４】
また、dot11FailedCountという通信失敗により破棄されたフレームのカウンタや、dot11FCSErrorCountというフレームチェックエラーカウンタが多い場合、トラフィック低いと判断し、アグリゲートを行うパケット数を少なくすることによりバッファを節約し、よりトラフィックの高いフローにバッファを多く割り当てるようなことが可能となる。
以上の制御は、ＭＩＢ以外、たとえば無線回路（ＲＦ回路）の電波強度情報などに連動させても良い。
【００７５】
上記例における、アグリゲート対象は、アグリゲートパス４１０、および４５０を経由するデータとなるが、無線メディア４３０中の無線データパケットをアグリゲート対象としても良い。
【００７６】
（実施例１０）
イーサネット（Ethernet：登録商標）や無線ＬＡＮのように、大きなサイズのデータを一定サイズ以下にフラグメントして転送する場合、全てのフラグメントデータを受信してデフラグメントしたデータ単位でアグリゲートすることにより、効率の良い転送が可能となる。
【００７７】
（実施例１１）
アグリゲート条件設定ブロック２１１にパケットの並び替え条件を指定することにより、図１０に示すように、アグリゲート時にパケットを並び換えることを可能とする。
これにより、アプリケーションがパケットの並び替えを行う処理を不要とできるのでシステムの処理負荷を軽減することが可能となる。
【００７８】
（実施例１２）
アグリゲート条件設定ブロック２１１にパケットデータバイトアライメントを指定することにより、図１１に示すように、アグリゲート時にホストバスシステムに合わせたバイトアライメントを可能とする。
これにより、アプリケーションがバイトアライメント処理を不要とできるのでシステムの処理負荷を軽減することが可能となる。
【００７９】
以上のように、本実施形態によれば、複数の入力パケットを１つのパケットにアグリゲートして一括して出力するインタフェース１０６を有し、インタフェース１０６は、動的に指定可能なパケット数に基づいて入力パケットをアグリゲートし、アグリゲート途中で入力パケットが途切れた場合は、動的に指定可能なタイムアウト時間経過後、既に入力したパケットをアグリゲートすることから、アグリゲート処理を最適に制御できることができ、以下の効果を得ることができる。
レイテンシ優先とスループット優先のアグリゲート設定を動的に変化させることができるので、通信トラフィック特性に応じた最適な通信パフォーマンスが得られる。
【００８０】
スループット優先の場合、アグリゲートパケットサイズを大きくし、受信タイムアウト時間を長くすることにより、より多くのパケットをアグリゲートさせることで高スループットを実現できる。
【００８１】
レイテンシ優先の場合、パケット受信タイムアウト時間を小さくするか、アグリゲートしない設定にすることにより、低レイテンシを実現できる。
【００８２】
通信フロー毎にアグリゲート条件を指定できるので、スループットとレイテンシのトレードオフによる性能低下のデメリットの影響を排除し、必要な特性のみ改善できる。
アグリゲート処理のハードウェア化により、CPUのアグリゲート処理（アグリゲート判定、アグリゲート情報パケット生成判定など）負荷を低減できる。
【００８３】
また、アグリゲートそのものの効果として、パケット数削減により、パケット通信のセットアッププロトコルを削除した分、データ転送帯域を増加させ、スループット特性を改善できる。
上記セットアッププロトコル削減により、システムの処理負荷や消費電力を削減できる。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施形態に係る通信装置を適用した通信システムの構成例を示す図である。
【図２】アグリゲート情報ヘッダの一例を示す図である。
【図３】本発明の適用対象となるインタフェースの一例であってアグリゲート装置の一例を示す図である。
【図４】本発明の適用対象となるインタフェースの一例であってデアグリゲート装置の一例を示す図である。
【図５】図１のシステム構成における動作シーケンスを示す図である。
【図６】２つの通信フローでそれぞれ異なるアグリゲート制御を行う例を示す図である。
【図７】アグリゲートパラメータをIEEE802.3のUser Priority（ユーザ優先順位）、IEEE802.1DのQoSタグ、IEEE802.11eのAccess Categoryなどにより帯域保証制御されるフローに適するように設定した例を示す図である。
【図８】パケット入力周期を測定し、自動的に適切な値を設定させる具体的な方法を示す図である。
【図９】本発明の適用対象となる無線ＬＡＮインタフェースシステムの一例を示す図である。
【図１０】アグリゲート時にパケットを並び換えることを可能とする例を示す図である。
【図１１】アグリゲート時にホストバスシステムに合わせたバイトアライメントを可能とする例を示す図である。
【符号の説明】
【００８５】
１・・・通信システム、１００・・・通信装置（Ａ）、１０１・・・アプリケーション、１０６・・・インタフェース、１１１・・・アグリゲートパケット、１５０・・・通信装置（Ｂ）、１５１・・・インタフェース、１５２・・・アプリケーション、２・・・アグリゲート装置、２００・・・入力インタフェース、２１０・・・アグリゲート制御回路、２９０・・・出力インタフェース、３・・・デアグリゲート装置、３００・・・入力インタフェース、３０１・・・デアグリゲート制御回路、３０２・・・出力インタフェース、４・・・無線ＬＡＮインタフェースシステム、４００・・・ホスト（Ａ）、４０１・・・アプリケーション、４０２・・・デバイスインタフェース、４１０・・・アグリゲートバス、４２０・・・無線ＬＡＮデバイス（Ａ）、４２１・・・ホストインタフェース、４２２・・・無線ＬＡＮインタフェース、４２３・・・ＭＩＢ（管理情報ベース）、４３０・・・無線メディア、４４０・・・無線ＬＡＮデバイス（Ａ）、４４１・・・無線ＬＡＮインタフェース、４４２・・・ホストインタフェース、４４３・・・ＭＩＢ（管理情報ベース）、４５０・・・アグリゲートバス、４６０・・・ホスト（Ｂ）、４６１・・・デバイスインタフェース、４６２・・・アプリケーション。
【図１】
0004645325.tif 000002
【図２】
0004645325.tif 000003
【図３】
0004645325.tif 000004
【図４】
0004645325.tif 000005
【図５】
0004645325.tif 000006
【図６】
0004645325.tif 000007
【図７】
0004645325.tif 000008
【図８】
0004645325.tif 000009
【図９】
0004645325.tif 000010
【図１０】
0004645325.tif 000011
【図１１】
0004645325.tif 000012