(57)【特許請求の範囲】
【請求項１】
優先制御方式のパケット通信に用いる優先度を自動的に設定する優先度設定装置であって、
送受信ノードが同じである複数のパケットを取得する取得部と、
取得された複数の前記パケットのパケット間遅延に応じて、当該パケットの優先度を設定する設定部と、
所定のピリオドに取得された複数の前記パケットの取得時刻に基づいて、前記パケット間遅延の統計量である第１遅延量を算出し、複数の前記ピリオドごとに算出した前記第１遅延量の統計量である第２遅延量を算出し、算出した当該第２遅延量を基準遅延量として採用する算出部と、を備えており、
前記設定部は、算出された前記第１遅延量と前記基準遅延量との差に基づいて前記パケットの優先度を設定することを特徴とする優先度設定装置。
【請求項２】
前記算出部は、前記基準遅延量との差が所定の閾値以上である前記第１遅延量については、前記第２遅延量の算出要素から除外する請求項１に記載の優先度設定装置。
【請求項３】
前記パケット間遅延は、一方のノードから他方のノードに連続して送信される同種の前記パケット間の時間差である請求項１又は２に記載の優先度設定装置。
【請求項４】
前記パケット間遅延は、一方のノードから他方への要求パケットとこれに対応する応答パケットとの間の時間差である請求項１又は２に記載の優先度設定装置。
【請求項５】
パケット通信が可能な通信機器を、優先制御方式のパケット通信に用いる優先度を設定する装置として機能させるためのコンピュータプログラムであって、
送受信ノードが同じである複数のパケットを取得する第１ステップと、
取得された複数の前記パケットのパケット間遅延に応じて、当該パケットの優先度を設定する第２ステップと、
所定のピリオドに取得された複数の前記パケットの取得時刻に基づいて、前記パケット間遅延の統計量である第１遅延量を算出する第３ステップと、
複数の前記ピリオドごとに算出した前記第１遅延量の統計量である第２遅延量を算出し、算出した当該第２遅延量を基準遅延量として採用する第４ステップと、を含み、
前記第２ステップにおいて、算出された前記第１遅延量と前記基準遅延量との差に基づいて前記パケットの優先度を設定することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、優先制御方式のパケット通信に用いる優先度を設定する装置、及び、その優先度の設定処理をコンピュータに実行させるためのコンピュータプログラムに関する。
【背景技術】
【０００２】
インターネットのブロードバンド化に伴い、動画や音声などのストリームデータの品質を保証するＱｏＳ（Quality of Service）の重要性が大きくなっている。
かかるＱｏＳをサポートするネットワーク機器を使用すれば、遅延が生じると意味をなさない上記のようなトラフィックを、遅延させても特に影響のないファイル交換ソフトのパケットなどよりも優先的に送受信させることができ、ネットワークの利便性ないし使用感が向上する。
【０００３】
かかるＱｏＳをサポートするパケット中継装置では、通常、優先度が異なる複数の送信キューを有しており、中継するパケットをどの優先度キューで送信するかのマッピングを所定のヘッダフィールドの値によって行っている（特許文献１参照）。
例えば、中継するパケットがＩＰパケットである場合には、ＩＰ−Ｐｒｏｔｏｃｏｌ（プロトコル番号）フィールドやＴＣＰ／ＵＤＰポートフィールドの値に従って、複数の優先度キューへのマッピングが行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−４３１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、最近の通信ネットワークではＷｅｂを前提としたトラフィックが主流となっているので、上記のようなヘッダフィールドの値に基づいてマッピングする方法では、同じ優先度キューのトラフィックとなる可能性が高く（例えば、ＨＴＴＰパケットの場合は、IP-Proto=6, Port=80)、ユーザの利便性がさほど向上しないことがある。
この場合、送信元や宛先のＩＰアドレスなどを考慮に入れて、所望のパケットの優先度を設定すればよいが、この設定をユーザ自身が行うのは極めて煩雑である。
【０００６】
また、ＱｏＳは通信ネットワーク全体における「ユーザエクスペリエンス」（ユーザの使用感・満足感）の向上を図る技術であるから、所望のパケットの優先度をユーザが任意に変更するのは好ましくなく、ネットワークの状態に応じて優先度が柔軟に変更されることが望ましい。
【０００７】
本発明は、かかる従来の問題点に鑑み、優先制御方式のパケット通信において、ネットワークの状態に応じて優先度を柔軟に変更できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
（１）  本発明の優先度設定装置は、優先制御方式のパケット通信に用いる優先度を自動的に設定する優先度設定装置であって、送受信ノードが同じである複数のパケットを取得する取得部と、取得された複数の前記パケットのパケット間遅延に応じて、当該パケットの優先度を設定する設定部と、を備えていることを特徴とする。
【０００９】
本発明の優先度設定装置によれば、設定部が、取得された複数のパケットのパケット間遅延に応じて当該パケットの優先度を設定するので、例えば、パケット間遅延が通常よりも大きいパケットの場合は、現状よりも高優先度にして品質を上げ、パケット間遅延が通常よりも小さいパケットの場合は、現状よりも低優先度に設定して品質を下げるというように、ネットワークの状態に応じて優先度を柔軟に変更することができる。
【００１０】
（２）  本発明の優先度設定装置において、所定のピリオドに取得された複数の前記パケットの取得時刻に基づいて、前記パケット間遅延の統計量である第１遅延量を算出する算出部を更に備えている場合には、前記設定部は、算出された前記第１遅延量と通常状態における基準遅延量との差に基づいて前記パケットの優先度を設定すればよい。
この場合、例えば、第１遅延量から基準遅延量を引いた差が所定の閾値を超えた場合に、当該パケットのパケット間遅延が大きくなったと判定でき、その閾値以下の場合はパケット間遅延がさほど激しくないと判定することができる。
【００１１】
なお、本明細書において、上記「ピリオド」とは、パケット間遅延の統計量（例えば平均値）を算出するのに必要となる、複数のパケットを収集するための所定時間長（例えば１０秒）の単位時間のことをいう。
【００１２】
（３）  また、本発明の優先度設定装置において、前記算出部は、前記ピリオドごとに算出した複数の前記第１遅延量の統計量である第２遅延量を算出し、算出した当該第２遅延量を前記基準遅延量として採用することが好ましい。
この場合、基準遅延量が、複数の第１遅延量の統計量（例えば平均値）である第２遅延量よりなるので、その基準遅延量を固定値に設定する場合に比べて、ネットワークの通常状態をより適切に設定することができる。
【００１３】
（４）  もっとも、この場合、前記算出部は、前記基準遅延量との差が所定の閾値以上である前記第１遅延量については、前記第２遅延量の算出要素から除外することが好ましい。
この場合、異常値を示す第１遅延量が第２遅延量の算出要素となることによって、不正確な基準遅延量が設定されるのを未然に防止することができる。
【００１４】
（５）  本発明の優先度設定装置において、前記パケット間遅延は、例えば、一方のノードから他方のノードに連続して送信される同種の前記パケット間の時間差、すなわち、そのパケットを受信時刻ごとに並べた際に隣接するもの同士の時間差よりなる。
この場合、ＵＤＰなどの同報的な通信を利用する送受信ノード間のパケットの優先度を設定することができる。
【００１５】
（６）  また、前記パケット間遅延は、一方のノードから他方への要求パケットとこれに対応する応答パケットとの間の時間差であってもよい。
この場合、ＨＴＴＰのＧｅｔとＲｅｓｐｏｎｓｅなどのハンドシェイクを行う送受信ノード間のパケットの優先度を設定することができる。
【００１６】
（７）  本発明のコンピュータプログラムは、パケット通信が可能な通信機器を、優先制御方式のパケット通信に用いる優先度を設定する装置として機能させるためのコンピュータプログラムであって、送受信ノードが同じである複数のパケットを取得するステップと、取得された複数の前記パケットのパケット間遅延に応じて、当該パケットの優先度を設定するステップと、を含むことを特徴とする。
【００１７】
上記の通り、本発明のコンピュータプログラムは、本発明の中継装置と実質同一の発明であり、当該装置と同じ作用効果を奏する。
なお、本発明のコンピュータプログラムは、上述の（２）〜（６）に記載された事項を含んでいてもよい。
【発明の効果】
【００１８】
以上の通り、本発明によれば、優先制御方式のパケット通信において、ネットワークの状態に応じて優先度を柔軟に変更することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明に係る優先度設定装置の一例であるルータ（中継装置）を適用した通信システムの全体構成図である。
【図２】ルータの内部構成を示すブロック図である。
【図３】パケットプロセッサの処理手順を示す概略的なフローチャートである。
【図４】ルールテーブルの一例を示す図である。
【図５】フローテーブルの一例を示す図である。
【図６】フローデータのデータ構造を示す図である。
【図７】同方向に一連のフローデータの例とそのシーケンス図である。
【図８】双方向に一連のフローデータの例とそのシーケンス図である。
【図９】フローマッピングテーブルの一例を示す図である。
【図１０】フロー統計データとベースラインデータのデータ構造を示す図である。
【図１１】フロー統計データの更新処理を示すフローチャート（前半）である。
【図１２】フロー統計データの更新処理を示すフローチャート（後半）である。
【発明を実施するための形態】
【００２０】
以下、図面を参照しつつ、本発明の実施形態を説明する。
〔システムの全体構成〕
図１は、本発明に係る優先度設定装置の一例であるルータ（中継装置）を適用した通信システムの全体構成図である。
図１に示すように、この通信システムは、通信事業者側の光回線終端装置であるＯＬＴ１、宅側の光回線終端装置であるＯＮＵ２、ホームゲートウェイやブロードバンドルータ等よりなるルータ３、及び、複数のＩＰ端末４などを備えている。
【００２１】
ＯＬＴ１とＯＮＵ２は光カプラを介して光ファイバによって接続されており、ＯＬＴ１は広域ネットワーク６と接続されている。本実施形態の広域ネットワーク６はインターネットである。
なお、図１のシステム構成例では、ＦＴＴＨを想定してＯＮＵ２よりなる回線終端装置を例示しているが、その他の回線終端装置として、ＡＤＳＬモデムやＣＡＴＶモデムを採用することもできる。
【００２２】
ＯＮＵ２とルータ３とは、イーサネットケーブル（注記：「イーサネット」は登録商標である。）７を介して互いに接続されている。
ルータ３は、ＩＰパケットのルーティング機能を有する中継装置であり、１つのＷＡＮポートと１又は複数のＬＡＮポートとを有する。なお、図例では、ＬＡＮポートが２つあるルータ３を例示しているが、その数は２つに限定されない。
【００２３】
ルータ３のＬＡＮポートには、イーサネットケーブル９を介して各種のＩＰ端末４が接続されている。このＩＰ端末４は、例えば、ＩＰ通信が可能なパーソナルコンピュータ（ＰＣ）、サーバコンピュータ或いはテレビなどの家電製品よりなる。
また、ＯＬＴ１側の広域ネットワーク６にもＩＰ端末４が接続されており、このＩＰ端末４は、例えばクラウドサーバ等よりなる。
【００２４】
図１に示す「ＬＡＮ１」は、ルータ３の一方のＬＡＮポートに接続された構内ネットワークであり、「ＬＡＮ２」は、ルータ３の他方のＬＡＮポートに接続された構内ネットワークである。
これらの構内ネットワークＬＡＮ１，ＬＡＮ２は、１又は複数のスイッチングハブ１０を用いて多段接続することによって構成されており、当該ネットワークの終端部分にＩＰ端末４を有する。
【００２５】
一方、ルータ３は、構内ネットワークＬＡＮ１，ＬＡＮ２のＰＣ等のＩＰ端末４が行うネットワーク機器の管理及び監視の対象機器であり、そのＩＰ端末４の制御プログラムによって操作されるエージェントプログラムが当該ルータ３にインストールされている。
このルータ３のエージェントプログラムは、ルータ３でルーティングされるＩＰパケットを捕捉する捕捉処理や、捕捉されたパケットを用いたＱｏＳ優先度の自動設定処理などを行う。
【００２６】
また、本実施形態のルータ３は、ＩＰパケットの中継機能の他に、ＩＰパケットの動的フィルタリング機能、ＮＡＴ機能、ＤＨＣＰ機能、ＰＰＰｏＥ機能及びＡＲＰ機能などを備えている。
なお、「パケット」は、レイヤ３の通信で使われるＰＤＵの呼び名として用いる場合もあるが、本明細書では、コンピュータ間の通信に使用するデータを送る単位の意味（従って、ＰＤＵと同じ。）でも使用している。従って、「ＩＰパケット」を単に「パケット」ということがある。
【００２７】
〔ルータの内部構成〕
図２は、ルータ３の内部構成を示すブロック図である。
図２に示すように、ルータ３は、第１インタフェース部３０１、第１送受信ドライバ３０２、捕捉用受信バッファ３０３、第１送信バッファ３０４、第２インタフェース部３０５、第２送受信ドライバ３０６、中継用受信バッファ３０７、第２送信バッファ３０８及びパケットプロセッサ３０９などを備えている。
【００２８】
第１インタフェース部３０１は、ＷＡＮポートを有するイーサネット仕様のトランシーバであり、第１送受信ドライバ３０２は、第１インタフェース部３０１にパケットの送受信を行わせる駆動回路よりなる。
第１送受信ドライバ３０２は、第１インタフェース部３０１から受けた受信パケットを捕捉用受信バッファ３０３と中継用受信バッファ３０７に渡し、第１送信バッファ３０４から受けた送信パケットを第１インタフェース部３０１から外部に送出する。
【００２９】
第２インタフェース部３０５は、ＬＡＮポートを有するイーサネット仕様のトランシーバであり、第２送受信ドライバ３０６は、第２インタフェース部３０５にパケットの送受信を行わせる駆動回路よりなる。
第２送受信ドライバ３０６は、第２インタフェース部３０５から受けた受信パケットを捕捉用受信バッファ３０３と中継用受信バッファ３０７に渡し、第２送信バッファ３０８から受けた送信パケットを第２インタフェース部３０５から外部に送出する。
【００３０】
第１及び第２の送信バッファ３０４，３０８は、優先度が異なる複数のキューＨ，Ｌを有している。
この複数のキューＨ，Ｌのうち、高優先度キューＨは、当該ルータ３で中継処理が行われた後の高優先度の送信パケットを格納するための送信キューであり、低優先度キューＬは、当該ルータ３で中継処理が行われた後の低優先度の送信パケットを格納するための送信キューである。
【００３１】
なお、第１インタフェース部３０１、第１送受信ドライバ３０２、捕捉用受信バッファ３０３及び第１送信バッファ３０４は、ＷＡＮ側の「送受信部」を構成している。
また、第２インタフェース部３０５、第２送受信ドライバ３０６、中継用受信バッファ３０７及び第２送信バッファ３０８は、ＬＡＮ側の「送受信部」を構成している。
【００３２】
〔パケットプロセッサの機能部〕
パケットプロセッサ３０９は、中継処理部３１０、捕捉処理部３１１、分類処理部３１２及びデータ処理部３１３を備えている。
これらの処理部は、ＲＯＭやＲＡＭ等の周知の記憶装置（図示せず。）に記憶されたコンピュータプログラム（具体的には、前記エージェントプログラム）をプロセッサ３０９が読み出し、それを実行することによって実現される機能部である。
【００３３】
上記各処理部を実現する所定のコンピュータプログラムは、上記の通り、図示しない記憶装置にインストールされているが、このコンピュータプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録媒体に格納して販売又は譲渡することができる。
また、このコンピュータプログラムの販売又は譲渡は、サーバコンピュータからネットワーク経由でダウンロードすることによって行こともできる。
【００３４】
中継用受信バッファ３０７は、各送受信ドライバ３０２，３０６から受けたすべての受信パケットを所定量蓄積し、蓄積した受信パケットを中継処理部３１０に出力する。
中継処理部３１０は、バッファ３０７から入力された受信パケットに対して、所定のルーティング処理やＮＡＴ（Network Address Translation）によるアドレス情報及びポート情報の変換を行って送信パケットを生成すると、後述のフローマッピングテーブルＦＭＴ（図９）を参照してＱｏＳの優先度のマッピングを行って送信パケットを生成し、その送信パケットを送信バッファ３０４，３０８に入力する。
【００３５】
すなわち、中継処理部３１０は、フローマッピングテーブルＦＭＴにおいてＱｏＳが高優先に設定されているアドレスの送信パケットの場合は、その宛先アドレスに対応するいずれかの送信バッファ３０４，３０８の高優先度キューＨに入力する。
また、中継処理部３１０は、フローマッピングテーブルＦＭＴにおいてＱｏＳが低優先に設定されているアドレスの送信パケットの場合は、その宛先アドレスに対応するいずれかの送信バッファ３０４，３０８の低優先度キューＬに入力する。
【００３６】
捕捉用受信バッファ３０３は、各受信ドライバ３０２，３０６から受けたすべての受信パケットを所定量蓄積し、蓄積した受信パケットを捕捉処理部３１１に出力する。
捕捉処理部３１１は、バッファ３０３から入力された受信パケットを受信時刻で並べ替えるなどの所定の処理を行って、すべての受信パケットを分類処理部３１２とデータ処理部３１３に送る。
【００３７】
分類処理部３１２は、捕捉処理部３１１から受けた受信パケットからヘッダ情報を抽出し、そのヘッダ情報にルールテーブルＲＴとフローテーブルＦＴを適用して「フローデータＦＤ」を生成する。分類処理部３１２は、そのデータＦＤをデータバッファ３１５に一時的に記憶させる。
なお、分類処理部３１２は、フローデータＦＤとして分類できないデータについては、未登録データとしてデータバッファ３１５に記憶させる。
【００３８】
データ処理部３１３は、所定フローＩｄのフローデータＦＤについての、ピリオドごとのパケット間遅延の平均値である「第１遅延量」をデータ内容に含む「フロー統計データＦＳＤ」の更新処理と、第１遅延量の平均値である「第２遅延量」をデータ内容とする「ベースラインデータＢＬＤ」の更新処理とを行う。
【００３９】
更に、データ処理部３１３は、第１遅延量と第２遅延量とを比較して各フローＩｄの通信状態を推定し、これに基づいてフローマッピングテーブルＦＭＴにおける優先度の更新処理を行う。
なお、中継処理部３１０は、データ処理部３１３が更新したフローマッピングテーブルＦＭＴの優先度を用いて、送信パケットに対する優先度を決定する。
【００４０】
〔具体的な処理内容〕
図３は、パケットプロセッサ３０９の処理手順を示す概略的なフローチャートである。
以下、この図３と以後の図４〜図１２を参照しつつ、プロセッサ３０９の各処理部３１１〜３１３が行う具体的な処理の内容を説明する。
図３に示すように、ルータ３のプロセッサ３０９は、各送受信部で受信された受信パケットに対し、パケットの捕捉（ステップＳ１）、ヘッダの抽出（ステップＳ２）、データの分類及び生成（ステップＳ３）及びデータの処理（Ｓ４）の順で情報処理を行う。
【００４１】
＜パケットの捕捉＞
このうち、パケットの捕捉（ステップＳ１）は、上述の通り捕捉処理部３１１が行う処理である。捕捉処理部３１１は、捕捉用受信バッファ３０３が蓄積した所定量の受信パケットを順次取り込む。
【００４２】
＜ヘッダの抽出＞
ヘッダの抽出（ステップＳ２）は、分類処理部３１２が行う処理である。
図３に示すように、分類処理部３１２は、捕捉処理部３１１から受けた各パケットから必要なレイヤＬ２〜Ｌ５のヘッダ情報を抽出する。
【００４３】
＜データの分類及び生成＞
データの分類及び生成（Ｓ３）は、分類処理部３１２が行う処理である。
図３に示すように、分類処理部３１２は、抽出されたパケットのヘッダ情報をキーとしてルールテーブルＲＴとフローテーブルＦＴをサーチすることにより、フローデータＦＤ（サーチでヒットしない場合は未登録データ）を生成し、このデータＦＤをデータバッファ３１５の対応する格納領域に記憶させる。
【００４４】
図４は、ルールテーブルＲＴの一例を示す図であり、図５は、フローテーブルＦＴの一例を示す図である。
図４に示すように、ルールテーブルＲＴは、例えば番号１〜２５６までの「ルール」のエントリを備え、各ルールは図５のフローＩｄと対応している。各ルールには複数（図例では８つ）の「サブルール」が含まれており、このサブルールには「項目」とその値（Value）を定義することができる。
【００４５】
従って、サブルールの項目と値を適宜設定することにより、各ルールの番号（フローＩｄ）に対応するパケットの内容を定義することができる。
例えば、図４の例では、ルール１のサブルール１で「destIp」（宛先ＩＰアドレス）の値を定義し、サブルール２で「srcIP」（送信元ＩＰアドレス）の値を定義し、サブルール３で「destPort」（宛先ポート番号）の値を定義し、サブルール４で「srcPort」（送信元ポート番号）の値を定義するようになっている。
【００４６】
なお、図４では図示していないが、各ルールのサブルール５以後に所定のプロトコルとそのプロトコルで用いるコマンドなどを定義することにより、各々のルール（フローＩｄ）によってサーチしたいパケットの「種別」を定義することができる。
図５に示すように、フローテーブルＦＴは、フローＩｄに対応する処理内容が定義されたテーブルである。例えば、図５の例では、フローＩｄ＝１のパケットの場合には、パケットを「フローデータとして残す」処理が行われる。
【００４７】
また、フローＩｄ＝２の場合には、パケットを「縮退させる」処理が行われ、フローＩｄ＝３の場合は「破棄する」処理が行われる。
なお、上記ルールテーブルＲＴとフローテーブルＦＴの設定は、例えば、ルータ３のユーザが、ＬＡＮ側のＩＰ端末４から各テーブルＲＴ，ＦＴの項目内容や設定値を含むパケットをルータ３に送信することによって行うことができる。
【００４８】
また、「フローデータＦＤ」とは、例えば、一連のパケットフローの連関をチェックするフロー解析の場合に必要となる、送受信ノードが同じである同種の複数のパケットの履歴を特定するためのデータのことをいう。
【００４９】
分類処理部３１２は、ルールテーブルＲＴを上から順番にサーチして、各パケットから抽出したヘッダ情報がどのルールにマッチするかを判定する。
その結果、マッチしたルール（＝フローＩｄ）がある場合には、そのフローＩｄに対して行うべき処理をフローテーブルＦＴから読み出し、読み出した処理を当該フローＩｄのパケットに対して実行する。また、分類処理部３１２は、マッチしたルール（＝フローＩｄ）がない場合には、未登録データを生成する。
【００５０】
図６は、フローデータＦＤのデータ構造を示す図である。
図６に示すように、フローデータＦＤは、捕捉されたパケットの受信時刻と、当該パケットの前記フローＩｄとを含むデータ構造となっている。なお、これらのデータの順序は図示のものに限定されない。
上述の通り、各フローＩｄには、ルールテーブルＲＴ（図４）によってパケットの送信元、宛先及び種別が割り当てられているので、当該フローＩｄは、パケットの送信元、宛先及び種別を識別可能な識別情報である。
【００５１】
＜データの処理＞
図３のデータの処理（Ｓ４）は、データ処理部３１３が行う処理である。
前述の通り、データ処理部３１３が行う処理には次の各処理が含まれるが、これらの詳細は後述する。
ａ）  フロー統計データの更新処理
ｂ）  ベースラインデータの更新処理
ｃ）  優先度の更新処理
【００５２】
〔フローデータの例〕
図７は、同方向に一連のフローデータＦＤの例とそのシーケンス図である。
図７（ａ）の例では、フローＩｄ＝１のパケットがマルチキャストで送信されるＲＴＰ（Real-time Transport Protocol）パケットである場合を想定している。
図７（ａ）に示すように、タイムスタンプの値が１００〜１６０μ秒までの間は、フローＩｄ＝１のフローデータＦＤ同士の時間間隔が一定（２０μ秒）であるが、それ以後のエントリで時間間隔が大幅に遅れている。従って、この場合、サーバからの通信が輻輳していると推定できる。
【００５３】
図８は、双方向に一連のフローデータＦＤの例とそのシーケンス図である。
図８（ａ）の例では、フローＩｄ＝２のパケットがＩＣＭＰパケットのエコー要求であり、フローＩｄ＝３のパケットがＩＣＭＰパケットのエコー応答である場合を想定している。
図８（ａ）に示すように、タイムスタンプの値が１００〜２２０μ秒までの間は、フローＩｄ＝２のエコー要求とフローＩｄ＝３のエコー応答の間の時間間隔が一定（２０μ秒）であるが、３００μ秒以後にエコー応答が来なくなっている。従って、この場合、３００μ秒前後の時間帯に、何らかの理由でサーバの通信が切断したと推定できる。
【００５４】
〔フローマッピングテーブル〕
図９は、フローマッピングテーブルＦＭＴの一例を示す図である。
フローマッピングテーブルＦＭＴの定義項目には、フローＩｄと、当該フローＩｄのアドレス情報及びポート情報である「srcIp」、「srcPort」、「destIP」及び「destPort」と、「Timestamp」（受信時刻）と、ＱｏＳの「優先度」とが含まれている。
従って、中継処理部３１０は、送信パケットのアドレス情報とポート情報をキーとしてフローマッピングテーブルＦＭＴをサーチすることで、送信パケットに適用すべき優先度Ｈ，Ｌを決定することができる。
【００５５】
図１０は、フロー統計データＦＳＤとベースラインデータＢＬＤのデータ構造を示す図である。図１０（ａ）に示すように、フロー統計データＦＳＤのエントリは、「第１フローＩｄ」及び「第２フローＩｄ」と、１番目からｎ番目の「ピリオド」とを含む。
前述の通り、「ピリオド」は、パケット間遅延の平均値を算出するのに必要となる、パケット収集のための所定時間長（例えば１０秒）の単位時間である。各ピリオドには、当該ピリオド中に収集されたフローＩｄ値のパケットの、パケット間遅延の平均値ＡＶＧ（ｉ）（ｉ＝１，２，……ｎ）が格納される。
【００５６】
また、図１０（ｂ）に示すように、ベースラインデータＢＬＤのエントリは、「第１フローＩｄ」及び「第２フローＩｄ」と平均値ＡＶＧｂｓとを含む。この平均値ＡＶＧｂｓは、複数の平均値ＡＶＧ（ｉ）（ｉ＝１，２，……ｎ）の中からランダムに抽出した複数の値の平均値である。
なお、前述の通り、本明細書では、フロー統計データＦＳＤに含まれる平均値ＡＶＧ（ｉ）を「第１遅延量」と呼び、ベースラインデータＢＬＤに含まれる平均値ＡＶＧｂｓを「第２遅延量」と呼んでいる。
【００５７】
〔フロー統計データの更新処理〕
図１１及び図１２は、フロー統計データＦＳＤの更新処理を示すフローチャートである。
図１１に示すように、データ処理部３１３は、まず、捕捉されたパケットからアドレス情報とポート情報を抽出し（ステップＳ１１）、フローマッピングテーブルＦＭＴを検索して（ステップＳ１２）、その情報にマッチするエントリ（フローＩｄ）があるか否かを判定する（ステップＳ１３）。
【００５８】
上記判定の結果、マッチするフローＩｄがある場合には、データ処理部３１３は、当該フローＩｄを取得してフローマッピングテーブルＦＭＴのタイムスタンプを現在時刻に更新する（ステップＳ１４）。
また、マッチするフローＩｄがない場合には、データ処理部３１３は、フローマッピングテーブルＦＭＴに新たなエントリを作成する（ステップＳ１５）。
【００５９】
データ処理部３１３は、上記の処理を今回のピリオド（ｉ）が終了するまで継続し（ステップＳ１６）、今回のピリオド（ｉ）が終了すると、ピリオドを１つインクリメントして（ステップＳ１７）、図１２のステップ１３以降の処理を行う。
図１２を参照して、データ処理部３１３は、フロー統計データＦＳＤの最初のエントリ（第１フローＩｄ）を参照し（ステップＳ１８）、第１フローＩｄと第２フローＩｄが同じ値であるか否かを判定する（ステップＳ１９）。
【００６０】
ここで、フロー統計データＦＳＤにおいて、第１フローＩｄと第２フローＩｄが同じ値である場合は、それらのフローが、一方のノードから他方のノードに連続して送信される同種のパケット（例えば、図７）であることを意味する。
また、フロー統計データＦＳＤにおいて、第１フローＩｄと第２フローＩｄが異なる値である場合は、それらのフローが、一方のノードから他方への要求パケットとこれに対応する応答パケット（例えば、図８）であることを意味する。
【００６１】
上記判定の結果、第１フローＩｄと第２フローＩｄの値が同じ場合には、データ処理部３１３は、フローＩｄの値がマッチするフローデータＦＤを古い順で収集し（ステップＳ２０）、そのフローデータＦＤ間のタイムスタンプ（受信時刻）の差分値ΔＴ（ｊ）を逐次算出して収集する（ステップＳ２１）。
そして、データ処理部３１３は、収集した差分値ΔＴ（ｊ）の合計を、フローＩｄの値がマッチするフローデータＦＤのパケット数Ｎで割った平均値（＝ＡＶＧ（ｉ）：第１遅延値）を算出し、その平均値をフロー統計データＦＳＤの該当ピリオドに入力する（ステップＳ２２）。
【００６２】
上記判定の結果、第１フローＩｄと第２フローＩｄの値が異なる場合には、データ処理部３１３は、第１フローＩｄの値がマッチするフローデータＦＤを古い順で収集するとともに（ステップＳ２３）、第２フローＩｄの値がマッチするフローデータＦＤを古い順で収集する（ステップＳ２４）。
また、データ処理部３１３は、第１フローＩｄの値とマッチするフローデータＦＤのタイムスタンプ値と、第２フローＩｄの値とマッチするフローデータＦＤのタイムスタンプ値との差分値ΔＴ（ｋ）を逐次算出し収集する（ステップＳ２５）。
【００６３】
そして、データ処理部３１３は、収集したΔＴ（ｋ）の合計を、第１フローＩｄの値がマッチするフローデータＦＤのパケット数Ｎで割った平均値（＝ＡＶＧ（ｉ）：第１遅延値）を算出し、その平均値をフロー統計データＦＳＤの該当ピリオドに入力する（ステップＳ２６）。なお、この場合、フローデータＦＤ内において、第１フローＩｄの値とマッチするパケット数と第２フローＩＤの値とマッチするパケット数が同一であると仮定している。
【００６４】
〔ベースラインデータの更新処理〕
データ処理部３１３は、新規にベースラインデータＢＬＤを作成する場合には、フロー統計データＦＳＤの複数のピリオドの中からランダムに複数個の値を選択し、その平均値（ＡＶＧｂｓ：第２遅延量）を算出して、ベースラインデータＢＬＤの該当エントリに入力する。
【００６５】
また、データ処理部３１３は、各ピリオドの終了時に学習係数αを用いたＡＶＧｂｓの更新処理を行う。
すなわち、データ処理部３１３は、新たに追加されたピリオドのＡＶＧ（ｉ）と既に求めたベースラインデータＢＬＤのＡＶＧｂｓとの差が所定の閾値を超えている場合には、学習係数αの値を「０」とし、その閾値以下の場合には、αの値をｖ（但し、ｖは０＜ｖ＜１を満たす設定値)として、次式によってＡＶＧｂｓの値を更新する。
ＡＶＧｂｓ＝（１−α）×ＡＶＧｂｓ＋α×ＡＶＧ（ｉ）
【００６６】
〔ＱｏＳ優先度の更新処理〕
更に、データ処理部３１３は、各ピリオドの終了時に、次の手順にてフローマッピングテーブルＦＭＴ中の優先度の更新処理を行う。
すなわち、データ処理部３１３は、まず、フロー統計データＦＳＤの各エントリの当該ピリオドの値ＡＶＧ（ｉ）と、その時点でのベースラインデータＢＬＤの同じエントリの平均値ＡＶＧｂｓとを比較する。
【００６７】
このとき、ＡＶＧ（ｉ）がＡＶＧｂｓよりも大きく、かつ、その差分が所定の閾値を超えている場合は、データ処理部３１３は、フローマッピングテーブルＦＭＴにおける対応するフローＩｄの優先度を「高」にする。
逆に、ＡＶＧ（ｉ）がＡＶＧｂｓよりも小さい場合、或いは、ＡＶＧ（ｉ）がＡＶＧｂｓよりも大きいがその差分が所定の閾値以内の場合は、データ処理部３１３は、フローマッピングテーブルＦＭＴにおける対応するフローＩｄの優先度を「低」にする。
【００６８】
このように、ベースラインデータＢＬＤのＡＶＧｂｓ（第２遅延量）は、フロー統計データＦＳＤにおける各ピリオドのＡＶＧ（ｉ）（第１遅延量）が、当該フローＩｄのパケットにおいて普通に生じる遅延量か否かを判定するための、「基準遅延量」として使用される。
【００６９】
〔ルータの効果〕
以上の通り、本実施形態のルータ（優先度設定装置）３によれば、送受信ノードが同じである複数のパケットを捕捉処理部３１１にて取得し、データ処理部３１３が、パケット間遅延が通常よりも大きいフローの場合は、現状よりも高優先度にして品質を上げ、パケット間遅延が通常よりも小さいフローの場合は、現状よりも低優先度に設定して品質を下げるようになっているので、ネットワークの状態に応じて優先度を柔軟に変更することができる。
【００７０】
〔その他の変形例〕
上述の実施形態では、回線終端装置（図１ではＯＮＵ２）とは別の装置であるルータ３に本発明を適用しているが、回線終端装置とルータ３とを一体化したホームゲートウェイの場合には、この装置に本発明を適用することにしてもよい。
また、フロー統計データＦＳＤのピリオドごとの第１遅延量やベースラインデータＢＬＤの第２遅延量は、例えば中央値などの平均値以外の統計量であってもよい。
【００７１】
また、第１遅延量の多寡を判定するための通常状態の「基準遅延量」を、複数の第１遅延量の統計量（第２遅延量）ではなく、固定値に設定することにしてもよい。
更に、上述の実施形態では、図１に示すように、イーサネットケーブル９で構内ネットワークＬＡＮ１，ＬＡＮ２を構成しているが、ルータ３に無線ＬＡＮ対応のインタフェースを設け、構内のＩＰ端末４との通信を無線で行うようにしてもよい。
この場合、高優先度キューのパケットは、低優先度キューのパケットよりもコンテンションウィンドウのサイズを小さく設定することにしてもよい。
【００７２】
上述の実施形態では、本発明の優先度設定機能をルータ３に実装した場合を例示しているが、その機能を、構内ネットワークＬＡＮ１，ＬＡＮ２に繋がるＩＰ端末４に実装することにしてもよい。
この場合、ＩＰ端末４にて動的に決定したＱｏＳの優先度を、例えば、人手による入力、或いは、ＳＮＭＰやＵＰｎＰなどを利用したオンラインアクセスにより、ルータ３に優先度を設定することにすればよい。
【００７３】
今回開示した実施形態（上述の各変形例を含む。）はすべての点で例示であって制限的なものではない。本発明の権利範囲は、上述の実施形態ではなく、特許請求の範囲と均等の範囲内でのすべての変更が含まれる。
【符号の説明】
【００７４】
３    ルータ（優先度設定装置）
４    ＩＰ端末
３０９    パケットプロセッサ
３１０    中継処理部
３１１    捕捉処理部（取得部）
３１２    分類処理部
３１３    データ処理部（設定部、算出部）
ＦＤ    フローデータ
ＦＳＤ    フロー統計データ
ＢＬＤ    ベースラインデータ 
【図１】
0005896055.tif 000002
【図２】
0005896055.tif 000003
【図３】
0005896055.tif 000004
【図４】
0005896055.tif 000005
【図５】
0005896055.tif 000006
【図６】
0005896055.tif 000007
【図７】
0005896055.tif 000008
【図８】
0005896055.tif 000009
【図９】
0005896055.tif 000010
【図１０】
0005896055.tif 000011
【図１１】
0005896055.tif 000012
【図１２】
0005896055.tif 000013