(57)【特許請求の範囲】
【請求項１】
優先制御に関して予めクラス分けされたパケットを受信すると、当該パケットをバッファに格納してから当該優先制御に基づいて送信し、複数のポートを有するパケット中継装置であって、
前記バッファに現に格納されているパケットについて、前記ポートごとに、かつ、前記クラスごとに、前記パケットを受信した順番を示す順番情報と、当該受信したパケットを当該バッファのいずれの位置に格納しているかを特定する位置情報とを対応付けて記憶する位置情報記憶手段と、
前記優先制御に従って所定のポートとクラスとを選択し、前記位置情報記憶手段に記憶された順番情報および位置情報を用いて、前記バッファに現に格納されているパケットのうちで当該選択したポートとクラスとに対応する最先に格納されたパケットを当該バッファから読み出して送信するパケット送信手段と、
前記ポートごと、かつ、前記クラスごとに、前記バッファの容量のうちで当該クラスのパケットのみが消費を許されている容量を示す専用消費容量と、当該専用消費容量のうちで現に消費されている容量を示す現専用消費容量および／または当該専用消費容量から現専用消費容量を除いて求まる専用空き容量とを対応付けて記憶する専用容量記憶手段と、
異なるポート間でのクラスの組み合わせについて、前記バッファの容量のうちで当該複数のクラスのパケットが共有で消費を許されている容量を示す共有消費容量と、当該共有消費容量のうちで現に消費されている容量を示す現共有消費容量および／または当該共有消費容量から現共有消費容量を除いて求まる共有空き容量とを対応付けて記憶する共有容量記憶手段と、
前記受信したパケットについて前記クラスと前記ポートとを識別するクラス識別手段と、
前記クラス識別手段によって識別されたポートとクラスとに対応する前記専用空き容量を前記専用容量記憶手段から読み出し、又は、前記クラス識別手段によって識別されたポートとクラスとに対応する前記専用消費容量及び前記現専用消費容量を前記専用容量記憶手段から読み出して前記専用空き容量を識別し、前記受信したパケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該ポートとクラスとに対応する専用空き容量を消費したものとして当該パケットを前記バッファに格納する専用容量消費手段と、
前記専用容量消費手段によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットのポートとクラスとに対応する前記共有空き容量を前記共有容量記憶手段から読み出し、又は、当該パケットのポートとクラスとに対応する前記共有消費容量及び前記現共有消費容量を前記共有容量記憶手段から読み出して前記共有空き容量を識別し、当該パケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該ポートとクラスとに対応する共有空き容量を消費したものとして当該パケットを前記バッファに格納する共有容量消費手段と、
前記共有容量消費手段によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットを前記バッファに格納することなく廃棄する廃棄手段と、
を備えたことを特徴とするパケット中継装置。
【請求項２】
前記クラスは、帯域が保証されているパケット通信にて用いられる帯域保証用のクラスと、帯域が保証されていないパケット通信にて用いられるベストエフォート用のクラスとであって、
前記専用容量記憶手段は、少なくとも前記帯域保証用のクラスについて、前記専用消費容量として正の値を記憶し、
前記共有容量記憶手段は、前記帯域保証用およびベストエフォート用のクラスの組み合わせについて、前記共有消費容量として正の値を記憶することを特徴とする請求項１に記載のパケット中継装置。
【請求項３】
前記クラスは、帯域が保証されているパケット通信にて用いられる帯域保証用のクラスと、帯域が保証されていないパケット通信にて用いられるベストエフォート用のクラスとであって、
前記専用容量記憶手段は、前記ベストエフォート用のクラスについて、前記専用消費容量として正の値を記憶することを特徴とする請求項１または２に記載のパケット中継装置。
【請求項４】
前記クラスは、帯域が保証されているパケット通信にて用いられる帯域保証用のクラスと、帯域が保証されていないパケット通信にて用いられるベストエフォート用のクラスとであって、少なくとも前記帯域保証用のクラスは複数あり、
前記共有容量記憶手段は、前記帯域保証用のクラスの組み合わせについて、前記共有消費容量として正の値を記憶することを特徴とする請求項１〜３のいずれか一つに記載のパケット中継装置。
【請求項５】
前記共有容量記憶手段によって、前記帯域保証用のクラスの組み合わせについて前記共有消費容量として正の値が記憶されている場合に、前記専用容量記憶手段は、当該クラス各々について、前記専用消費容量として正の値を記憶することを特徴とする請求項４に記載のパケット中継装置。
【請求項６】
前記パケット中継装置に設けられている出力ポート各々について、それぞれ帯域を監視する帯域情報監視手段と、
前記帯域情報監視手段によって監視された出力ポートの帯域に対して、出力ポート各々に設定されているクラスに対応する前記専用消費容量が、常に一定割合の容量になるように、前記専用消費容量を更新する更新手段と、
をさらに備えることを特徴とする請求項１〜５のいずれか一つに記載のパケット中継装置。
【請求項７】
優先制御に関して予めクラス分けされたパケットを受信すると、当該パケットをバッファに格納してから当該優先制御に基づいて送信し、複数のポートを有するパケット中継装置を制御する制御方法であって、
前記バッファに現に格納されているパケットについて、前記ポートごとに、かつ、前記クラスごとに、前記パケットを受信した順番を示す順番情報と、当該受信したパケットを当該バッファのいずれの位置に格納しているかを特定する位置情報とを対応付けて位置情報テーブルに格納する位置情報格納工程と、
前記優先制御に従って所定のポートとクラスとを選択し、前記位置情報格納工程に記憶された順番情報および位置情報を用いて、前記バッファに現に格納されているパケットのうちで当該選択したポートとクラスとに対応する最先に格納されたパケットを当該バッファから読み出して送信するパケット送信工程と、
前記ポートごと、かつ、前記クラスごとに、前記バッファの容量のうちで当該クラスのパケットのみが消費を許されている容量を示す専用消費容量と、当該専用消費容量のうちで現に消費されている容量を示す現専用消費容量および／または当該専用消費容量から現専用消費容量を除いて求まる専用空き容量とを対応付けて専用テーブルに記憶する専用容量格納工程と、
異なるポート間でのクラスの組み合わせについて、前記バッファの容量のうちで当該複数のクラスのパケットが共有で消費を許されている容量を示す共有消費容量と、当該共有消費容量のうちで現に消費されている容量を示す現共有消費容量および／または当該共有消費容量から現共有消費容量を除いて求まる共有空き容量とを対応付けて共有テーブルに記憶する共有容量格納工程と、
前記受信したパケットについて前記クラスと前記ポートとを識別するクラス識別工程と、
前記クラス識別工程によって識別されたポートとクラスとに対応する前記専用空き容量を前記専用容量格納工程が記憶する専用テーブルから読み出し、又は、前記クラス識別工程によって識別されたポートとクラスとに対応する前記専用消費容量及び前記現専用消費容量を前記専用テーブルから読み出して前記専用空き容量を識別し、前記受信したパケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該ポートとクラスとに対応する専用空き容量を消費したものとして当該パケットを前記バッファに格納する専用容量消費工程と、
前記専用容量消費工程によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットのポートとクラスとに対応する前記共有空き容量を前記共有容量格納工程が記憶する共有テーブルから読み出し、又は、当該パケットのポートとクラスとに対応する前記共有消費容量及び前記現共有消費容量を前記共有テーブルから読み出して前記共有空き容量を識別し、当該パケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該ポートとクラスとに対応する共有空き容量を消費したものとして当該パケットを前記バッファに格納する共有容量消費工程と、
前記共有容量消費工程によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットを前記バッファに格納することなく廃棄する廃棄工程と、
を含んだことを特徴とする制御方法。
【請求項８】
優先制御に関して予めクラス分けされたパケットを受信すると、当該パケットをバッファに格納してから当該優先制御に基づいて送信し、複数のポートを有するパケット中継装置を制御する制御方法をコンピュータに実行させるパケット中継プログラムであって、
前記バッファに現に格納されているパケットについて、前記ポートごとに、かつ、前記クラスごとに、前記パケットを受信した順番を示す順番情報と、当該受信したパケットを当該バッファのいずれの位置に格納しているかを特定する位置情報とを対応付けて位置情報テーブルに格納する位置情報格納手順と、
前記優先制御に従って所定のポートとクラスとを選択し、前記位置情報格納手順に記憶された順番情報および位置情報を用いて、前記バッファに現に格納されているパケットのうちで当該選択したポートとクラスとに対応する最先に格納されたパケットを当該バッファから読み出して送信するパケット送信手順と、
前記ポートごと、かつ、前記クラスごとに、前記バッファの容量のうちで当該クラスのパケットのみが消費を許されている容量を示す専用消費容量と、当該専用消費容量のうちで現に消費されている容量を示す現専用消費容量および／または当該専用消費容量から現専用消費容量を除いて求まる専用空き容量とを対応付けて専用テーブルに記憶する専用容量格納手順と、
異なるポート間でのクラスの組み合わせについて、前記バッファの容量のうちで当該複数のクラスのパケットが共有で消費を許されている容量を示す共有消費容量と、当該共有消費容量のうちで現に消費されている容量を示す現共有消費容量および／または当該共有消費容量から現共有消費容量を除いて求まる共有空き容量とを対応付けて共有テーブルに記憶する共有容量格納手順と、
前記受信したパケットについて前記クラスと前記ポートとを識別するクラス識別手順と、
前記クラス識別手順によって識別されたポートとクラスとに対応する前記専用空き容量を前記専用容量格納手順が記憶する専用テーブルから読み出し、又は、前記クラス識別手順によって識別されたポートとクラスとに対応する前記専用消費容量及び前記現専用消費容量を前記専用テーブルから読み出して前記専用空き容量を識別し、前記受信したパケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該ポートとクラスとに対応する専用空き容量を消費したものとして当該パケットを前記バッファに格納する専用容量消費手順と、
前記専用容量消費手順によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットのポートとクラスとに対応する前記共有空き容量を前記共有容量格納手順が記憶する共有テーブルから読み出し、又は、当該パケットのポートとクラスとに対応する前記共有消費容量及び前記現共有消費容量を前記共有テーブルから読み出して前記共有空き容量を識別し、当該パケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該ポートとクラスとに対応する共有空き容量を消費したものとして当該パケットを前記バッファに格納する共有容量消費手順と、
前記共有容量消費手順によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットを前記バッファに格納することなく廃棄する廃棄手順と、
をコンピュータに実行させることを特徴とするパケット中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、パケット中継装置、制御方法およびパケット中継プログラムに関する。
【背景技術】
【０００２】
従来より、Ｌ２スイッチやＬ３ルータに代表されるイーサネット（登録商標）パケットを扱うパケット中継装置では、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）と呼ばれる保証を行う必要がある。
【０００３】
具体的には、パケット中継装置は、１：１やＮ：１に接続されるネットワークにおいて、パケットバッファを用いることにより、バースト耐力と優先処理とによる輻輳制御を行う。例えば、パケット中継装置は、受信したパケットを記憶させるパケットバッファを備え、受信したパケットの優先度（クラス）を識別し、当該クラスに応じてパケットバッファに格納する。そして、パケット中継装置は、優先度（クラス）が高いパケットを、優先的に送信し、また、優先度が低いパケットを、優先度（クラス）が高いパケットを送信して残る余剰帯域を用いて送信する(一般的にはベストエフォートと呼ばれる)。
【０００４】
また、パケット中継装置は、優先度が高いパケットを、パケットバッファに優先的に格納する。このため、受信したパケットをパケットバッファに格納する際に、パケットバッファの空き容量が少ない場合には、パケット中継装置は、優先度が低いパケットについては、パケットバッファに格納せず廃棄する。
【０００５】
このようなＱｏＳについて、様々な技術が開示されている。例えば、特許文献１においては、ベストエフォート用に設定されているパケットバッファを、複数あるフローに対して公平に分配する技術が開示されている。すなわち、特許文献１に係るパケット中継装置は、帯域保証を超えたパケットを、ベストエフォート用に設定されているパケットバッファに記憶させる。ここで、特許文献１に係るパケット中継装置は、複数のフローがある場合に、当該複数のフローそれぞれのデータ量の大小に関わらず、当該複数のフロー間で公平にベストエフォート用キューの容量を分配し、パケットを記憶させる。
【０００６】
また、例えば、特許文献２においては、帯域保証用に割り当てられた帯域を、トークンを利用して、ベストエフォート用の帯域に割り当てる技術が開示されている。すなわち特許文献２のパケット中継装置は、各時点での未消費トークン量を監視して、トークンパケットに次回トークンが追加される際に、未消費のトークンがあるかどうかを判定し、未消費のトークンが残ると判定された場合に、帯域保証用に割り当てられた帯域を、トークンを利用して、ベストエフォート用の帯域に割り当てる。
【０００７】
【特許文献１】特開２００５−１２４３１号公報（第１−５頁、第１図）
【特許文献２】特開２００５−２４４４１７号公報（第１、５頁（特に、段落番号［００２６］など）、第４図）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、上記した従来の技術は、バッファを効率的に利用しつつパケットの廃棄される機会を減少させるとともに、クラスに基づく帯域制御（クラスに基づく優先制御によるパケット送信処理）を維持することができないという課題があった。
【０００９】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、バッファを効率的に利用しつつパケットの廃棄される機会を減少させるとともに、クラスに基づく帯域制御（クラスに基づく優先制御によるパケット送信処理）を維持することが可能なパケット中継装置、制御方法およびパケット中継プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、このパケット中継装置は、優先制御に関して予めクラス分けされたパケットを受信すると、当該パケットをバッファに格納してから当該優先制御に基づいて送信するパケット中継装置であって、前記バッファに現に格納されているパケットについて、前記クラスごとに、前記パケットを受信した順番を示す順番情報と、当該受信したパケットを当該バッファのいずれの位置に格納しているかを特定する位置情報とを対応付けて記憶する位置情報記憶手段と、前記優先制御に従って所定のクラスを選択し、前記位置情報記憶手段に記憶された順番情報および位置情報を用いて、前記バッファに現に格納されているパケットのうちで当該選択したクラスに対応する最先に格納されたパケットを当該バッファから読み出して送信するパケット送信手段と、前記クラスごとに、前記バッファの容量のうちで当該クラスのパケットのみが消費を許されている容量を示す専用消費容量と、当該専用消費容量のうちで現に消費されている容量を示す現専用消費容量および／または当該専用消費容量から現専用消費容量を除いて求まる専用空き容量とを対応付けて記憶する専用容量記憶手段と、複数のクラスの組み合わせごとに、前記バッファの容量のうちで当該複数のクラスのパケットが共有で消費を許されている容量を示す共有消費容量と、当該共有消費容量のうちで現に消費されている容量を示す現共有消費容量および／または当該共有消費容量から現共有消費容量を除いて求まる共有空き容量とを対応付けて記憶する共有容量記憶手段と、前記受信したパケットについて前記クラスを識別するクラス識別手段と、前記クラス識別手段によって識別されたクラスに対応する前記専用空き容量を前記専用容量記憶手段から読み出し、前記受信したパケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該クラスの専用空き容量を消費したものとして当該パケットを前記バッファに格納する専用容量消費手段と、前記専用容量消費手段によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットのクラスに対応する前記共有空き容量を前記共有容量記憶手段から読み出し、当該パケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該クラスの共有空き容量を消費したものとして当該パケットを前記バッファに格納する共有容量消費手段と、前記共有容量消費手段によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットを前記バッファに格納することなく廃棄する廃棄手段と、を備えたことを要件とする。
【００１１】
また、このパケット中継装置は、さらに、前記クラスは、帯域が保証されているパケット通信にて用いられる帯域保証用のクラスと、帯域が保証されていないパケット通信にて用いられるベストエフォート用のクラスとであって、前記専用容量記憶手段は、少なくとも前記帯域保証用のクラスについて、前記専用消費容量として正の値を記憶し、前記共有容量記憶手段は、前記帯域保証用およびベストエフォート用のクラスの組み合わせについて、前記共有消費容量として正の値を記憶することを要件とする。
【００１２】
また、このパケット中継装置は、さらに、前記専用容量記憶手段は、前記ベストエフォート用のクラスについて、前記専用消費容量として正の値を記憶することを要件とする。
【００１３】
また、このパケット中継装置は、さらに、少なくとも前記帯域保証用のクラスは、複数あるものであって、前記共有容量記憶手段は、前記帯域保証用のクラスの組み合わせについて、前記共有消費容量として正の値を記憶することを要件とする。
【００１４】
また、このパケット中継装置は、さらに、前記共有容量記憶手段によって、前記帯域保証用のクラスの組み合わせについて前記共有消費容量として正の値が記憶されている場合に、前記専用容量記憶手段は、当該クラス各々について、前記専用消費容量として正の値を記憶することを要件とする。
【発明の効果】
【００１５】
開示のパケット中継装置によれば、バッファを効率的に利用しつつパケットの廃棄される機会を減少させるとともに、クラスに基づく帯域制御（クラスに基づく優先制御によるパケット送信処理）を維持することが可能である。
【００１６】
また、開示のパケット中継装置によれば、帯域保証用のクラスに区分けされたパケットについて、帯域保証用のバッファに空き容量がなくなった場合にもベストエフォート用のバッファにパケットを格納することにより、バースト耐力を向上することが可能であり、帯域保証用のバッファを増加させることなく、バッファを効率的に使用することが可能である。また、さらに、クラスに基づく帯域制御（クラスに基づく優先制御によるパケット送信処理）を維持することも可能である。
【００１７】
また、開示のパケット中継装置によれば、ベストエフォート用クラスのパケットの全廃棄を防止することが可能である。
【００１８】
また、開示のパケット中継装置によれば、帯域保証用のクラス間で容量の共有を行わない（排他の関係をとる）手法と比較して、バッファを効率的に使用することが可能である。
【００１９】
また、開示のパケット中継装置によれば、例えば、帯域保証用のクラスについて専用消費容量として正の値を記憶しているので、帯域保証用のクラスの組み合わせについて共有消費容量を設定する際にも、帯域保証用クラスの全廃棄を防止することも可能である。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明に係るパケット中継装置、制御方法およびパケット中継プログラムの実施例を詳細に説明する。なお、以下では、本実施例で用いる主要な用語（用語の説明）、本実施例に係るパケット中継装置の概要および特徴、パケット中継装置の構成および処理の流れを順に説明し、最後に本実施例に対する種々の変形例を説明する。
【実施例１】
【００２１】
［用語の説明］
まず最初に、本実施例で用いる主要な用語を説明する。本実施例で用いる「パケット中継装置」とは、優先制御に関して予めクラス分けされたパケットを受信すると、当該パケットをバッファ１０に格納してから当該優先制御に基づいて送信する装置であり、具体的には、Ｌ２スイッチやＬ３ルータに代表されるイーサネット（登録商標）パケットを扱う装置などが該当する。
【００２２】
本実施例で用いる「優先制御」とは、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ：例えば、１：１やＮ：１に接続されるネットワークにおいて、輻輳制御を行う）による帯域保証におけるパケットのクラス（重要度）を識別して、当該クラスに基づいて、パケットをバッファ１０に記憶し、または廃棄し、バッファ１０からパケットを読み出して送信する制御を行うものである。
【００２３】
例えば、図１に示すように、平均的なトラヒックが契約帯域（図１に示す例では、５００Ｍｂｐｓ）以下である場合にも、図１の（１）に示すように、実際の帯域は、一時的なバーストなどによって、契約帯域（たとえば、５００Ｍｂｐｓ）を超える事態が生じる。このような契約帯域を超えるような事態は、Ｎ個のポート数から受信するパケットを一つのポートに集約する際に、特に顕著に現れる。これは、入力レートが契約帯域より多く流れ込む状態が継続して発生する使われ方があるためである。このため、従来より、パケット装置は、契約帯域を超えるパケットを廃棄する事態を防止することを目的として、バッファ１０を保持することにより、バースト耐力を備え、また、優先制御を行っている。なお、図１は、用語の説明に用いる図である。
【００２４】
具体的には、従来のパケット中継装置は、優先制御として、パケット各々についてクラスを識別し、クラスが高い（優先度の高い）ものを優先して送受信し、また、クラスの低い（優先度の低い）ものを、クラスが高いパケットを送受信して余剰した余剰帯域により送受信する。
【００２５】
ここで、パケットの廃棄を行わない場合には、バッファ１０の容量として、図１の（１）に示す契約帯域を超える容量を備える必要があり、さらに、複数のポートが設けられているパケット中継装置においては、当該複数のポート分（(図１の（１）に示す契約帯域を超える容量)×(出力ポート数)）を備える必要がある。これに対して、従来のパケット中継装置は、コストや実装面積の理由により、実際の容量は当該容量（備える必要がある容量）を下回るバッファ１０を備える、クラスの低い（優先度の低い）パケットについては、パケットバッファ１０の残量が少なくなった場合に廃棄する。
【００２６】
また、本実施例で用いる「クラス」とは、パケット各々について設定されているものであり、当該クラスとしては、帯域が保証されているパケット通信にて用いられる帯域保証用のクラスと、帯域が保証されていないパケット通信にて用いられるベストエフォート用のクラスとがある。なお、ここで、一般に、帯域保証用のクラスのパケットは、廃棄が許されないパケットであり、ベストエフォート用のクラスのパケットは、帯域保証しているパケットではないため廃棄が許されるパケットである。
【００２７】
［パケット中継装置の概要および特徴］
まず最初に、図２を用いて、本実施例に係るパケット中継装置の概要および特徴を説明する。図２は、実施例１に係るパケット中継装置の概要と特徴を示すための図である。なお、以下に記載する本発明に係るパケット中継装置の説明に関しては、特に言及がない限り、クラス「Ａ」と「Ｂ」とを、帯域保証用のクラスとして、クラス「Ｃ」「Ｄ」とを、ベストエフォート用のクラスとして説明する。
【００２８】
同図に示すように、実施例１に係るパケット中継装置は、優先制御に関して予めクラス分けされたパケットを受信すると、当該パケットをバッファ１０に格納してから優先制御に基づいて送信することを概要とし、以下に説明するように、バッファ１０を効率的に利用しつつパケットの廃棄される機会を減少させるとともに、クラスに基づく帯域制御（クラスに基づく優先制御によるパケット送信処理）を維持することに主たる特徴がある。
【００２９】
この主たる特徴について説明すると、実施例１に係るパケット中継装置は、図２の位置情報管理テーブルに示すように、バッファ１０に現に格納されているパケットについて、クラスごとに、パケットを受信した順番を示す順番情報と、受信したパケットをバッファ１０のいずれの位置に格納しているかを特定する位置情報とを対応付けて記憶する。例えば、図２の位置情報管理テーブルに示す例では、実施例１に係るパケット中継装置は、クラス「Ａ」に対応付けて、位置情報「００１」「００５」「００９」をバッファ１０に格納された順番で記憶する。
【００３０】
また、実施例１に係るパケット中継装置は、クラスごとに、バッファ１０の容量のうちで当該クラスのパケットのみが消費を許されている容量を示す専用消費容量と、専用消費容量のうちで現に消費されている容量を示す現専用消費容量や専用消費容量から現専用消費容量を除いて求まる専用空き容量とを対応付けて記憶する。また、実施例１に係るパケット中継装置は、複数のクラスの組み合わせごとに、バッファ１０の容量のうちで複数のクラスのパケットが共有で消費を許されている容量を示す共有消費容量と、共有消費容量のうちで現に消費されている容量を示す現共有消費容量や共有消費容量から現共有消費容量を除いて求まる共有空き容量とを対応付けて記憶する。
【００３１】
例えば、実施例１に係るパケット中継装置は、図２の容量管理テーブルに示す例では、クラス「Ａ」に対応付けて、専用消費容量「５０」と、現専用消費容量「３０」と、現専用空き容量「２０」とを容量管理テーブルにて記憶し、クラス「Ｃ」とに対応付けて、専用消費容量「０」と、現専用消費容量「０」と、現専用空き容量「０」とを容量管理テーブルにて記憶する。また、実施例１に係るパケット中継装置は、クラス「Ａ、Ｃ」に対応付けて、共有消費容量「５０」と、現共有消費容量「０」と、現共有空き容量「０」とを容量管理テーブルにて記憶する。
【００３２】
このような構成のもと、まず、実施例１に係るパケット中継装置は、受信したパケットについてクラスを識別する、例えば、図２の（１）に示すように、実施例１に係るパケット中継装置は、パケットを受信すると、図２の（２）に示すように、受信したパケットのクラスを識別し、例えば、クラス「Ａ」であると識別する。
【００３３】
そして、実施例１に係るパケット中継装置は、図２の（３）に示すように、ＱｏＳによる処理をおこない、図２の（４）に示すように、受信したパケットを廃棄し、または、図２の（５）に示すように、受信したパケットをバッファ１０に記憶する。
【００３４】
具体的には、まず、実施例１に係るパケット中継装置は、クラス識別処理部６０によって識別されたクラスに対応する専用空き容量を容量管理テーブルから読み出し、受信したパケットを格納できる容量があるか否かを判定し、パケットを格納できる容量があると判定された場合に、クラスの専用空き容量を消費したものとしてパケットをバッファ１０に格納する。
【００３５】
例えば、実施例１に係るパケット中継装置は、クラス「Ａ」であるパケットを受信すると、当該クラス「Ａ」に対応する現専用空き容量「２０」を読み出す。ここで、実施例１に係るパケット中継装置は、受信したパケットの容量が「２０」以下である場合には（例えば、「１０」）当該パケットをクラス「Ａ」の現専用空き容量を消費したものとしてバッファ１０に格納し、当該クラス「Ａ」に対応する現専用消費容量を「３０」から「４０」に、現専用空き容量「２０」を「１０」に更新する。
【００３６】
また、その後、実施例１に係るパケット中継装置は、専用空き容量に受信したパケットを格納できる容量がないと判定された場合に、パケットのクラスに対応する共有空き容量を容量管理テーブルから読み出し、パケットを格納できる容量があるか否かを判定し、パケットを格納できる容量があると判定された場合に、クラスの共有空き容量を消費したものとしてパケットをバッファ１０に格納する。
【００３７】
例えば、実施例１に係るパケット中継装置は、クラス「Ａ」であるパケットを受信し、現専用空き容量に十分な容量がないと判定されると、当該クラス「Ａ」に対応する現共有空き容量「５０」を読み出す。ここで、実施例１に係るパケット中継装置は、受信したパケットの容量が「５０」以下である場合には（例えば、「３０」）当該パケットをクラス「Ａ」の共有空き容量を消費したものとしてバッファ１０に格納し、当該クラス「Ａ」に対応する現共有消費容量を「０」から「３０」に、共有空き容量「５０」を「２０」に更新する。
【００３８】
また、続いて、実施例１に係るパケット中継装置は、共有空き容量に受信したパケットを格納できる容量がないと判定された場合に、パケットをバッファ１０に格納することなく廃棄する。例えば、実施例１に係るパケット中継装置は、クラス「Ａ」であるパケットを受信し（例えば、容量が「６０」であるパケット）、現専用空き容量に十分な容量がないと判定され、現共有空き容量に十分な容量がないと判定されると、当該パケットを廃棄する。
【００３９】
その後、実施例１に係るパケット中継装置は、図２の（６）と（７）に示すように、優先制御に従って所定のクラスを選択し、位置情報管理テーブルに記憶された順番情報および位置情報を用いて、バッファ１０に現に格納されているパケットのうちで選択したクラスに対応する最先に格納されたパケットをバッファ１０から読み出して送信する。例えば、図２の（６）に示すように、実施例１に係るパケット中継装置は、帯域保証用クラスであるクラスＡにおいて、最先の（最も早くバッファ１０に格納された）パケットの位置情報「００１」に対応するパケットをバッファ１０から読み出して、図２の（７）に示すように、当該パケットを送信する。
【００４０】
このようなことから、実施例１に係るパケット中継装置は、上記した主たる特徴の如く、バッファ１０を効率的に利用しつつパケットの廃棄される機会を減少させるとともに、クラスに基づく帯域制御（クラスに基づく優先制御によるパケット送信処理）を維持することが可能である。
【００４１】
［パケット中継装置全体の構成］
次に、図３を用いて、図２に示したパケット中継装置の構成を説明する。なお、以下の記載では、ＬＡＮ回線からＳＯＮＥＴ回線への集約を行い（ＬＡＮ回線から受信したデータを、ＳＯＮＥＴ回線へと出力する）、かつ、ＳＯＮＥＴ回線からＬＡＮ回線への集約を行う（ＳＯＮＥＴ回線から受信したデータを、ＬＡＮ回線へと出力する）パケット中継装置について説明する。図３は、実施例１におけるパケット中継装置全体の構成を示すためのブロック図である。
【００４２】
このパケット中継装置は、バッファ１０を有し、ＬＡＮポート２０と、ＰＨＹ／ＭＡＣ処理部４０と、Ｆｌｏｗ識別処理部５０と、クラス識別処理部６０と、ＱｏＳ処理部７０と、スケジューリング処理部８０と、ＳＯＮＥＴフレーミング処理部９０と、ＳＯＮＥＴデフレーミング処理部１００と、ＳＯＮＥＴポート３０とを備える。なお、クラス識別処理部６０とＦｌｏｗ識別処理部５０とは、特許請求の範囲に記載の「クラス識別手段」に対応し、スケジューリング処理部８０と後述するバッファ格納ポインタ処理部１４０とは、特許請求の範囲に記載の「パケット送信手段」に対応する。
【００４３】
なお、実施例１では、ＬＡＮ回線対ＳＯＮＥＴ回線（つまり、ＬＡＮ回線からＳＯＮＥＴ回線への集約を行い、かつ、ＳＯＮＥＴ回線からＬＡＮ回線への集約を行う）であるパケット中継装置について説明するが、本発明はこれに限定されるものではなく、ＬＡＮ回線対ＬＡＮ回線であったり、ＳＯＮＥＴ回線対ＳＯＮＥＴ回線であってもよい。
【００４４】
また、以下の説明では、ＬＡＮ回線から受信したパケットをＳＯＮＥＴ回線から出力する処理と、ＳＯＮＥＴ回線から受信したフレームをＬＡＮ回線から出力する処理とは、ほとんど同一であるため、特に言及がない限り、ＬＡＮ回線から受信したパケットをＳＯＮＥＴ回線から出力する場合についてのみ説明する。
【００４５】
バッファ１０は、パケット中継装置が受信したパケットを一時的に記憶する。具体的には、バッファ１０は、パケット中継装置が受信したパケットを、当該パケットが読み出されて送信されるまで記憶する。例えば、バッファ１０は、受信したパケットを記憶し、当該パケットが読み出されて送信されると、当該パケットを削除し、他の受信したパケットを空いた領域に記憶する。
【００４６】
ＬＡＮポート２０は、イーサネット（登録商標）パケットを受信し、また、イーサネット（登録商標）パケットを送信する。具体的には、パケット中継装置は、ＬＡＮポート２０を介してイーサネット（登録商標）パケットをＬＡＮ回線から受信し、ＬＡＮポート２０を介してイーサネット（登録商標）パケットをＬＡＮ回線（ＬＡＮ回線に接続されている送信先となる送信先端末、または、ＬＡＮ回線を経由して送信先端末）に送信する。
【００４７】
ＳＯＮＥＴポート３０は、ＳＯＮＥＴフレームを受信し、また、ＳＯＮＥＴフレームを送信する。具体的には、パケット中継装置は、ＳＯＮＥＴポート３０を介してＳＯＮＥＴフレームをＳＯＮＥＴ回線から受信し、ＳＯＮＥＴポート３０を介してＳＯＮＥＴフレームをＳＯＮＥＴ回線（ＳＯＮＥＴ回線に接続されている送信先となる送信先端末、または、ＳＯＮＥＴ回線を経由して送信先端末）に送信する。
【００４８】
ＰＨＹ／ＭＡＣ処理部４０は、ＬＡＮ側からイーサネット（登録商標）パケットが入力されると、Ｐｈｙｓｉｃａｌ  Ｌａｙｅｒ処理およびＭＡＣ終端処理を行い、Ｆｌｏｗ識別処理部５０に送信する。
【００４９】
Ｆｌｏｗ識別処理部５０は、ポートを識別する。具体的には、受信したパケット各々について、当該受信したパケットがどの出力ポート宛に出力するものかを識別する。例えば、Ｆｌｏｗ識別処理部５０は、受信したパケット各々についてポートを識別し、受信したパケットが出力ポート「＃１」宛である場合に、「＃１」であると識別する。
【００５０】
クラス識別処理部６０は、受信したパケットについてクラスを識別する。具体的には、例えば、クラス識別処理部６０は、受信したパケット各々についてクラスを識別し、受信したパケットのクラスが帯域保証用クラスの「Ａ」である場合に、帯域保証用クラスの「Ａ」であると識別する。
【００５１】
ＱｏＳ処理部７０は、受信したパケットをバッファ１０に格納し、バッファ１０に格納したパケットを読み出す。具体的には、ＱｏＳ処理部７０は、クラス識別処理部６０が識別したクラスに基づいて、受信したパケットをバッファ１０に格納し、または、廃棄する。また、ＱｏＳ処理部７０は、後述するスケジューリング処理部８０からの指示に基づいて、バッファ１０に格納したパケットを読み出す。なお、ＱｏＳ処理部７０は、本発明の特徴的部分の一つであり、ＱｏＳの詳細については、図４を用いて後述する。
【００５２】
スケジューリング処理部８０は、優先制御に従って所定のクラスを選択し、バッファ１０に現に格納されているパケットのうちで選択したクラスに対応する最先に格納されたパケットをバッファ１０から読み出す指示を行う。
【００５３】
具体的には、スケジューリング処理部８０は、パケットを出力するＳＯＮＥＴ回線において割り当てられた帯域に応じて、送信するパケットのポートとクラスとを決定し、当該ポートとクラスとをＱｏＳ処理部７０に送る。そして、スケジューリング処理部８０は、ＱｏＳ処理部７０から送られたパケットを、ＳＯＮＥＴフレーミング処理部９０に送る。
【００５４】
例えば、スケジューリング処理部８０は、優先制御に従って所定のクラスとして「Ａ」を選択すると、当該クラスＡにおいて最先のパケットを読み出す旨の指示をＱｏＳ処理部７０（後述するバッファ格納ポインタ処理部１４０）に送り、ＱｏＳ処理部７０が読み出したパケットを後述するＳＯＮＥＴフレーミング処理部９０に送る。
【００５５】
ＳＯＮＥＴフレーミング処理部９０は、送信するパケットを、ＳＯＮＥＴフレームフォーマットにマッピングし、その後、ＳＯＮＥＴ回線に出力する。
【００５６】
ＳＯＮＥＴデフレーミング処理部１００は、ＳＯＮＥＴ回線からフレームを受信した場合に、ＳＯＮＥＴフレームフォーマットを解除して、ＬＡＮ回線にて送受信されるフォーマットに変更する。
【００５７】
なお、ＳＯＮＥＴでは、ＬＣＡＳ（Ｌｉｎｋ  Ｃａｐａｃｉｔｙ  Ａｄｊｕｓｔｍｅｎｔ  Ｓｃｈｅｍｅ）という技術により、ダイナミックに通信帯域を変更することが可能（ＳＴＳ帯域をＡ６やＲＥＭＯＶＥすることが可能）であるため、これらに対応する帯域管理が必要になっている。
【００５８】
［ＱｏＳ処理部７０の構成の詳細］
次に、図４〜６を用いて、ＱｏＳ処理部７０の詳細な構成について説明する。図４は、実施例１におけるＱｏＳ処理部７０の構成を示すためのブロック図であり、図５は、実施例１におけるバッファ格納ポインタ処理部１４０を説明するための図であり、図６は、実施例１における容量管理テーブルを説明するための図である。
【００５９】
ＱｏＳ処理部７０は、図４に示すように、バッファ格納ポインタ処理部１４０と、バッファ書込処理部１２０と、バッファ読出処理部１３０と、ＴａｉｌＤｒｏｐ判定処理部１１０と、容量監視部１５０とから構成される。ここで、バッファ格納ポインタ処理部１４０は、バッファ書込処理部１２０と、バッファ読出処理部１３０と、容量監視部１５０と、スケジューリング処理部８０（図３参照）とに接続し、ＴａｉｌＤｒｏｐ判定処理部１１０は、クラス識別処理部６０とバッファ１０書込処理部１２０と容量監視部１５０とに接続し、バッファ書込処理部１２０は、バッファ１０とバッファ格納ポインタ処理部１４０とに接続し、バッファ読出処理部１３０は、バッファ１０とバッファ格納ポインタ処理部１４０とに接続し、容量監視部１５０は、ＴａｉｌＤｒｏｐ判定処理部１１０と、バッファ格納ポインタ処理部１４０とに接続する。
【００６０】
なお、ＴａｉｌＤｒｏｐ判定処理部１１０は、特許請求の範囲に記載の「廃棄手段」に対応し、後述するバッファ格納ポインタ処理部１４０の位置情報管理テーブルは、特許請求の範囲に記載の「位置情報記憶手段」に対応し、バッファ格納ポインタ処理部１４０の容量管理テーブルは、特許請求の範囲に記載の「専用容量記憶手段」と「共有容量記憶手段」とに対応し、容量監視部１５０は、特許請求の範囲に記載の「専用容量消費手段」と「共有容量消費手段」とに対応する。
【００６１】
ＴａｉｌＤｒｏｐ判定処理部１１０は、バッファ全体の容量における空き容量に、受信したパケットを記憶するのに十分な空き容量があるかを判別する。具体的には、ＴａｉｌＤｒｏｐ判定処理部１１０は、バッファ全体の容量における空き容量に、受信したパケットを記憶するのに十分な空き容量がない場合に、受信したパケットを廃棄すると判定する。例えば、ＴａｉｌＤｒｏｐ判定処理部１１０は、パケット中継装置がパケットを受信すると、当該パケットを記憶するのに十分な空き容量（バッファの容量全体における、未使用の容量）があるか後述する容量監視部１５０から取得して判別する。ここで、ＴａｉｌＤｒｏｐ判定処理部１１０は、当該パケットを記憶するのに十分な空き容量がある場合には（かつ、後述する容量監視部１５０により、当該パケットを廃棄する旨の指示を受付けない場合には）、当該パケットをバッファ書込処理部１２０に送る。一方、ＴａｉｌＤｒｏｐ判定処理部１１０は、当該パケットを記憶するのに十分な空き容量がない場合には、当該パケットを廃棄する。
【００６２】
また、ＴａｉｌＤｒｏｐ判定処理部１１０は、後述する容量監視部１５０によって受信したパケットを格納できる容量がないと判定された場合に、パケットをバッファ１０に格納することなく廃棄する。例えば、後述する容量監視部１５０により受信したパケットを廃棄する旨の指示を受付けると当該パケットを廃棄し、受信したパケットを廃棄せずバッファ１０に格納する旨の指示を受付けると、後述するバッファ書込処理部１２０に当該パケットを送る。
【００６３】
バッファ書込処理部１２０は、受信したパケットをバッファ１０に書き込み、当該パケットを特定する位置情報をバッファ格納ポインタ処理部１４０に送る。具体的には、バッファ書込処理部１２０は、後述するバッファ格納ポインタ処理部１４０から通知された位置情報に従って、当該位置情報により特定されるバッファ１０内の位置に、パケットを格納する。
【００６４】
バッファ読出処理部１３０は、出力するパケットをバッファ１０から読み出し、スケジューリング処理部８０に送る。具体的には、バッファ格納ポインタ処理部１４０から位置情報を取得すると、当該位置情報により特定されるバッファ１０内の位置からパケットを読み出し、スケジューリング処理部８０に送る。
【００６５】
バッファ格納ポインタ処理部１４０は、バッファ１０に現に格納されているパケットについて、クラスごとに、パケットを受信した順番を示す順番情報と、受信したパケットをバッファ１０のいずれの位置に格納しているかを特定する位置情報とを対応付けて記憶する。そして、受信したパケットの内現にバッファ１０に記憶しているパケットについて、当該パケットを送信する際に必要な情報を管理する。
【００６６】
ここで、図５の（１）は、バッファに記憶しているパケットを例示するものであり、図５の（２）は、位置情報管理テーブルを例示するものである。例えば、図５に示すように、バッファ格納ポインタ処理部１４０は、受信したパケットの内現にバッファ１０に記憶しているパケットについて、当該パケットを記憶するバッファ１０内の位置を特定する位置情報を位置情報管理テーブルにて管理する。また、バッファ格納ポインタ処理部１４０は、受信したパケットの内現にバッファ１０に記憶しているパケットについて、当該パケットに対応する出力ポートに設定されているクラス各々の内、対応するクラスに関連付けて、当該クラスに関連付けて記憶されているパケット間における相対的な順番（パケット中継装置が当該パケットを受信した順番）を位置情報管理テーブルにて管理する。図５の（２）に示す例では、バッファ格納ポインタ処理部１４０は、現にバッファ１０に記憶しているパケットについて、ポートを一意に識別する「ポート」とクラスを一意に識別する「クラス」とに対応付けて、パケットを受信した順番で「位置情報」を位置情報管理テーブルに記憶する。具体的に例をあげて説明すると、図５に示す例では、ポート「＃１」クラス「Ａ」に対応付けて、位置情報「００１」「００５」「００９」を記憶する。
【００６７】
また、バッファ格納ポインタ処理部１４０は、パケット中継装置がパケットを受信する毎に、バッファ書込処理部１２０に適切な位置情報を通知するとともに、当該位置情報を位置情報管理テーブルにて記憶し、また、当該パケットの順番を位置情報管理テーブルにて記憶する。位置情報および順番情報を管理テーブルに記憶する点について、パケット中継装置がパケットＡを受信してバッファ１０に記憶し、パケットＢを受信してバッファ１０に記憶し、パケットＥを受信してバッファ１０に記憶する場合を例に説明する。例えば、図５の（１）に示すように、バッファ格納ポインタ処理部１４０は、パケット中継装置がパケットＡを位置情報「００１」によって特定されるバッファ１０内の位置に記憶すると、図５の（２）に示すように、位置情報管理テーブルに、ポート「＃１」クラス「Ａ」に対応付けて、位置情報「００１」を記憶する。その後、図５の（１）に示すように、パケット中継装置がパケットＢを位置情報「００５」によって特定されるバッファ１０内の位置に記憶すると、図５の（２）に示すように、位置情報管理テーブルに、ポート「＃１」クラス「Ａ」に対応付けて、位置情報「００１」の次に、位置情報「００５」を記憶する。
【００６８】
また、バッファ格納ポインタ処理部１４０は、バッファ１０からパケットが読み出される毎に、位置情報管理テーブルを更新する。具体的には、バッファ格納ポインタ処理部１４０は、読み出されたパケットに対応する位置情報を位置情報管理テーブルから削除し、当該パケットに対応するクラス内の相対的な順番を位置情報管理テーブルにて更新する。例えば、図５の（２）に示す例では、バッファ格納ポインタ処理部１４０は、位置情報「００１」によって特定されるパケットＡが送信されると、位置情報「００１」を削除する。言い換えると、図５の（２）に示す例では、バッファ格納ポインタ処理部１４０は、位置情報「００１」を削除する結果、位置情報「００５」によって特定されるパケットの順番が最も早いものとして記憶し、位置情報「００９」によって特定されるパケットの順番がその次に早いものとして記憶する。
【００６９】
また、バッファ格納ポインタ処理部１４０は、スケジューリング処理部８０からの指示（優先制御に従って選択されたクラスの指示）に従って、位置情報管理テーブルに記憶された順番情報および位置情報を用いて、バッファ１０に現に格納されているパケットのうちで選択したクラスに対応する最先に格納されたパケットをバッファ１０から読み出す。
【００７０】
具体的には、バッファ格納ポインタ処理部１４０は、スケジューリング処理部８０から、送信するパケットのポートとクラスとを受信すると、位置情報管理テーブルを参照し、対応するクラスにおいて、順番が最も早いパケットを選択し、対応する位置情報を後述するバッファ読出処理部１３０に送る。そして、バッファ格納ポインタ処理部１４０は、読み出したパケットの容量と、出力ポートと、クラスとを、容量監視部１５０へ通知する。
【００７１】
容量監視部１５０は、クラスごとに、バッファ１０の容量のうちでクラスのパケットのみが消費を許されている容量を示す専用消費容量と、専用消費容量のうちで現に消費されている容量を示す現専用消費容量や専用消費容量から現専用消費容量を除いて求まる専用空き容量とを対応付けて容量管理テーブルに記憶して管理する。また、容量監視部１５０は、複数のクラスの組み合わせごとに、バッファ１０の容量のうちで複数のクラスのパケットが共有で消費を許されている容量を示す共有消費容量と、共有消費容量のうちで現に消費されている容量を示す現共有消費容量や共有消費容量から現共有消費容量を除いて求まる共有空き容量とを対応付けて容量管理テーブルに記憶して管理する。
【００７２】
具体的には、容量監視部１５０は、少なくとも帯域保証用のクラスについて、専用消費容量として正の値を容量管理テーブルに記憶して管理し、帯域保証用およびベストエフォート用のクラスの組み合わせについて、共有消費容量として正の値を容量管理テーブルに記憶して管理する。
【００７３】
例えば、図６に示すように、容量監視部１５０は、当該パケットに対応する出力ポート内に設定されているクラス各々の内対応するクラスに関連付けて、「専用消費容量」と、「現専用消費容量」と、「現専用空き容量」とを容量管理テーブルに記憶して管理し、また、当該パケットに対応する出力ポート内に設定されているクラス各々の内対応するクラスに関連付けて、「共有消費容量」と、「現共有消費容量」と、「現共有空き容量」とを容量管理テーブルに記憶して管理する。具体的に例をあげて説明すると、容量監視部１５０は、ポート「＃１」クラス「Ａ」に対応付けて、専用消費容量「５０」と、現専用消費容量「３０」と、現専用空き容量「２０」とを容量管理テーブルにて記憶して管理する。また、容量監視部１５０は、ポート「＃１」クラス「Ａ、Ｂ、Ｃ」に対応付けて、共有消費容量「５０」と、現共有消費容量「０」と、現共有空き容量「５０」とを容量管理テーブルにて記憶して管理する。
【００７４】
なお、容量監視部１５０は、以下に記載するように、バッファ１０の現消費容量を把握し、受信したパケットをバッファ１０に記憶するか否かを判定する判断材料を提供する。このため、本発明の実現する上で、要のブロックである。
【００７５】
また、なお、実施例１では、容量監視部１５０が、クラス各々と対応付けて、「専用消費容量」と、「共有消費容量」と、「現消費容量」と、「現空き容量」とを容量管理テーブルに記憶して管理する手法について説明するが、本発明はこれに限定されるものではなく、上記した項目の内一部のみを容量管理テーブルにて記憶して管理してもよい。例えば、容量監視部１５０は、クラス各々と対応付けて、「専用消費容量」と、「共有消費容量」と、「現消費容量」とを容量管理テーブルに記憶して管理し、「現空き容量」をその都度（例えば、パケットを受信するごとに）算出して用いてもよい。また、容量監視部１５０は、クラス各々と対応付けて、「現空き容量」を対応付けて容量管理テーブルに記憶して管理してもよい。
【００７６】
また、なお、実施例１では、容量監視部１５０が、管理する項目として、「専用消費容量」と、「共有消費容量」と、「現消費容量」と、「現空き容量」とを管理する手法について説明するが、本発明はこれに限定されるものではない。例えば、容量監視部１５０は、バッファ１０全体の容量（実用量）を示す「実容量」と、帯域保証用のクラスのみが用いる容量である「帯域保証用区画閾値」（ベストエフォート用のクラスのパケットは、消費しないバッファの容量）と、各クラス各々（出力ポート内に設けられているクラス各々）ごとに設定される専用領域の容量を示す「専用領域容量」と、各クラス各々ごとに現に消費されている容量を示す「現消費容量」と、複数のクラスが共有して用いる容量の内空いている容量（消費されていない容量）を示す「共有領域空き容量」と、ベストエフォート用のクラスが共有して用いる容量の内空いている容量（消費されていない容量）を示す「ベストエフォート用空き共有」と、バッファ１０の容量の内空いている容量（消費されていない容量）を示す「残容量」とを管理してもよい。具体的には、「実容量」と、「帯域保証用区画閾値」と、「専用領域容量」と、「現消費容量」とをテーブルにて管理し、「共有領域空き容量」と、「ベストエフォート用空き共有」と、「残容量」とを算出して用いても（管理しても）よい。
【００７７】
そして、容量監視部１５０は、クラス識別処理部６０によって識別されたクラスに対応する専用空き容量を容量管理テーブルから読み出し、受信したパケットを格納できる容量があるか否かを判定し、パケットを格納できる容量があると判定された場合に、クラスの専用空き容量を消費したものとして、ＴａｉｌＤｒｏｐ判定処理部１１０に、パケットをバッファ１０に格納する指示を送信する。また、容量監視部１５０は、現専用空き容量に受信したパケットを格納できる容量がないと判定した場合に、パケットのクラスに対応する共有空き容量を容量管理テーブルから読み出し、パケットを格納できる容量があるか否かを判定し、パケットを格納できる容量があると判定された場合に、クラスの共有空き容量を消費したものとして、ＴａｉｌＤｒｏｐ判定処理部１１０に、パケットをバッファ１０に格納する指示を送信する。
【００７８】
具体的には、容量監視部１５０は、容量管理テーブルを用いて、受信したパケットについて、当該パケットをバッファ１０に記憶するのに十分な空き容量が対応する専用消費容量または共有消費容量にあるかを判定し、パケットがバッファ１０に記憶されると、容量管理テーブルの値を更新する。
【００７９】
具体的に例をあげて説明すると、容量監視部１５０は、クラス識別処理部６０が識別した受信したパケットのクラスに対応する専用消費容量に、受信したパケットより大きな空き容量があるか否かを判別する（現専用空き容量があるかを判別する）。ここで、容量監視部１５０は、当該パケットのクラスに対応する専用消費容量に受信したパケットより大きな空き容量が残っている場合には、専用消費容量を消費する。その後、容量監視部１５０は、パケットがバッファ１０に記憶されると、容量管理テーブルを更新する。
【００８０】
図６に示す例を用いて説明すると、容量監視部１５０は、受信したパケットの容量が１０である場合には（例えば、ポート「＃１」クラス「Ａ」）、十分な現専用空き容量があるため、当該受信したパケットをバッファ１０に記憶する旨の指示をＴａｉｌＤｒｏｐ判定処理部１１０に送信する。その後、バッファ書込処理部１２０が当該パケットをバッファ１０に記憶し、バッファ格納ポインタ処理部１４０から消費容量が通知されると、容量監視部１５０は、受信したパケットのクラスに対応する現専用消費容量と現専用空き容量とに通知された消費容量を反映させて容量管理テーブルを更新する（例えば、現専用消費に通知された消費容量を加算し、現専用空き容量から通知された消費容量を減算する）。
【００８１】
一方、容量監視部１５０は、受信したパケットのクラスに対応する専用消費容量に受信したパケットより大きな空き容量が残っていない場合には（現専用空き容量がない場合には）、対応する共有消費容量に、受信したパケットより大きな空き容量があるか否かを判定する（現共有空き容量があるかを判定する）。ここで、容量監視部１５０は、当該パケットのクラスに対応する共有消費容量に受信したパケットより大きな空き容量が残っている場合には、共有消費容量を消費する。その後、容量監視部１５０は、パケットがバッファに記憶されると、容量管理テーブルを更新する。
【００８２】
図６に示す例を用いて説明すると、容量監視部１５０は、受信したパケットの容量が３０である場合には、十分な現共有空き容量があるため、当該パケットを廃棄せずにバッファ１０に格納する旨の指示をＴａｉｌＤｒｏｐ判定処理部１１０に送信する。その後、バッファ書込処理部１２０が当該パケットをバッファ１０に記憶し、バッファ格納ポインタ処理部１４０から消費容量が通知されると、容量監視部１５０は、受信したパケットのクラスに対応する現共有消費容量と現共有空き容量とに通知された消費容量を反映させて容量管理テーブルを更新する（例えば、現共有消費に通知された消費容量を加算し、現共有空き容量から通知された消費容量を減算する）。
【００８３】
一方、容量監視部１５０は、受信したパケットのクラスに対応する共有消費容量に受信したパケットより大きな空き容量が残っていない場合には（十分な現共有空き容量がない場合には）、当該パケットを廃棄する旨の指示をＴａｉｌＤｒｏｐ判定処理部１１０に送る。
【００８４】
また、容量監視部１５０は、パケットがバッファ１０から読み出されると、バッファ格納ポインタ処理部１４０からパケットの容量と出力ポートとクラスとを受付けると、容量管理テーブルを更新する。さらに詳細には、容量監視部１５０は、受信したパケットのクラスに対応する現専用消費要領と現専用空き容量、または、現共有消費容量と現共有空き容量とに、通知されたパケットの容量を反映させて更新する（例えば、現共有消費に通知されたパケットの容量を減算し、現共有空き容量から通知されたパケットの容量を加算する）。 
【００８５】
なお、上記したパケットがバッファ１０に記憶された際の容量監視部１５０による処理と、パケットがバッファ１０から読み出された際の容量監視部１５０による処理とは、それぞれ独立して処理されるものである。
【００８６】
［パケット中継装置によるパケット記憶処理］
次に、図７を用いて、パケット中継装置によるパケット記憶処理を説明する。図７は、実施例１に係るパケット中継装置によるパケット記憶処理の流れを説明するためのフローチャートである。
【００８７】
同図に示すように、パケット中継装置が、パケットをＬＡＮポート２０から受信すると（ステップＳ１０１肯定）、ＰＨＹ／ＭＡＣ処理部４０は、Ｐｈｙｓｉｃａ１０ａｙｅｒ処理およびＭＡＣ終端処理を行う（ステップＳ１０２）。
【００８８】
そして、Ｆｌｏｗ識別処理部５０は、ポートを識別する（ステップＳ１０３）。例えば、Ｆｌｏｗ識別処理部５０は、受信したパケット各々についてポートを識別し、受信したパケットが出力ポート「＃１」宛である場合に、「＃１」であると識別する。
【００８９】
その後、クラス識別処理部６０は、クラスを識別する（ステップＳ１０４）。例えば、クラス識別処理部６０は、受信したパケット各々についてクラスを識別し、受信したパケットのクラスが帯域保証用クラスの「Ａ」である場合に、帯域保証用クラスの「Ａ」であると識別する。
【００９０】
ＱｏＳ処理部７０におけるＴａｉｌＤｒｏｐ判定処理部１１０は、空き容量があるかを判別する（ステップＳ１０５）。例えば、ＴａｉｌＤｒｏｐ判定処理部１１０は、パケット中継装置がパケットを受信すると、当該パケットを記憶するのに十分な空き容量があるか後述する容量監視部１５０から取得する。
【００９１】
ここで、空き容量があると判別される場合には（ステップＳ１０５肯定）、ＱｏＳ処理部７０における容量監視部１５０は、クラス識別処理部６０が識別したクラスに対応する現専用空き容量があるかどうかを判別する（ステップＳ１０６）。そして、容量監視部１５０は、現専用空き容量がある場合には（ステップＳ１０６肯定）、専用消費容量を消費する（ステップＳ１０７）。つまり、例えば、図６に示す例を用いて説明すると、容量監視部１５０は、受信したパケットの容量が１０である場合には（例えば、ポート「＃１」クラス「Ａ」）、十分な現専用空き容量があるため、当該受信したパケットをバッファ１０に記憶する旨の指示をＴａｉｌＤｒｏｐ判定処理部１１０に送信する。その後、バッファ書込処理部１２０が当該パケットをバッファ１０に記憶し、バッファ格納ポインタ処理部１４０から消費容量が通知されると、容量監視部１５０は、受信したパケットのクラスに対応する現専用消費容量と現専用空き容量とに通知された消費容量を反映させて更新する。
【００９２】
一方、現専用空き容量がない場合には（ステップＳ１０６否定）、ＱｏＳ処理部７０における容量監視部１５０は、クラス識別処理部６０が識別したクラスに対応する現共有空き容量があるかどうかを判別する（ステップＳ１０８）。そして、容量監視部１５０は、現共有空き容量がある場合には（ステップＳ１０８肯定）、共有消費容量を消費する（ステップＳ１０９）。つまり、例えば、例えば、図６に示す例を用いて説明すると、容量監視部１５０は、受信したパケットの容量が３０である場合には、十分な現共有空き容量があるため、当該パケットを廃棄せずにバッファ１０に格納する旨の指示をＴａｉｌＤｒｏｐ判定処理部１１０に送信する。その後、バッファ書込処理部１２０が当該パケットをバッファ１０に記憶し、バッファ格納ポインタ処理部１４０から消費容量が通知されると、容量監視部１５０は、受信したパケットのクラスに対応する現共有消費容量と現共有空き容量とに通知された消費容量を反映させて更新する。
【００９３】
上記したステップＳ１０５において、ＱｏＳ処理部７０におけるＴａｉｌＤｒｏｐ判定処理部１１０が、十分な空き容量がないと判別した場合には（ステップＳ１０５否定）、ＴａｉｌＤｒｏｐ判定処理部１１０は、当該パケットを廃棄する（ステップＳ１１０）。また、ＱｏＳ処理部７０における容量監視部１５０が、十分な現共有空き容量がないと判定した場合には（ステップＳ１０８否定）、ＴａｉｌＤｒｏｐ判定処理部１１０は、当該パケットを廃棄する（ステップＳ１１０）。例えば、ＴａｉｌＤｒｏｐ判定処理部１１０は、容量監視部１５０が十分な現共有空き容量がないと判定して、容量監視部１５０から当該パケットを廃棄する旨の指示を受け取ると、当該パケットを廃棄する。そして、処理を終了する（エンド）。
【００９４】
［パケット中継装置によるパケット読み出し処理］
次に、図８を用いて、パケット中継装置によるパケット読み出し処理を説明する。図８は、実施例１に係るパケット中継装置によるパケット読み出し処理の流れを説明するためのフローチャートである。
【００９５】
同図に示すように、読み出しパケットがあると（ステップＳ２０１肯定）、つまり、例えば、バッファ１０からパケットが読み出されて出力されると、バッファ格納ポインタ処理部１４０は、位置情報管理テーブルを更新する（ステップＳ２０２）。例えば、バッファ格納ポインタ処理部１４０は、バッファ１０からパケットが読み出されるごとに、読み出されたパケットに対応する位置情報を位置情報管理テーブルから削除し、当該パケットに対応するクラス内の相対的な順番を位置情報管理テーブルにて更新する。
【００９６】
そして、バッファ格納ポインタ処理部１４０は、読み出したパケットの容量（パケットをバッファ１０から読み出すことによって増加した空き容量）と、出力ポートと、クラスとを、容量監視部１５０へ通知する（ステップＳ２０３）。
【００９７】
続いて、容量監視部１５０は、容量管理テーブルを更新する（ステップＳ２０４）。例えば、容量監視部１５０は、受信したパケットのクラスに対応する現専用消費容量と現専用空き容量、または、現共有消費容量と現共有空き容量とに、通知されたパケットの容量を反映させて更新する。そして、処理を終了する（エンド）。
【００９８】
［実施例１の効果］
上記したように、実施例１によれば、バッファ１０に現に格納されているパケットについて、クラスごとに、順番情報と、位置情報とを対応付けて記憶し、優先制御に従って所定のクラスを選択し、順番情報および位置情報を用いて、バッファ１０に現に格納されているパケットのうちで選択したクラスに対応する最先に格納されたパケットをバッファ１０から読み出して送信し、クラスごとに、専用消費容量と現専用消費容量と現専用空き容量とを対応付けて記憶し、複数のクラスの組み合わせごとに、共有消費容量と現共有消費容量と現共有空き容量とを対応付けて記憶し、受信したパケットについてクラスを識別し、識別されたクラスに対応する専用空き容量を読み出し、受信したパケットを格納できる容量があるか否かを判定し、パケットを格納できる容量があると判定された場合に、クラスの専用空き容量を消費したものとしてパケットをバッファ１０に格納し、現専用空き容量に受信したパケットを格納できる容量がないと判定された場合に、パケットのクラスに対応する共有空き容量を読み出し、パケットを格納できる容量があるか否かを判定し、パケットを格納できる容量があると判定された場合に、クラスの共有空き容量を消費したものとしてパケットをバッファ１０に格納し、現共有空き容量に受信したパケットを格納できる容量がないと判定された場合に、パケットをバッファ１０に格納することなく廃棄するので、バッファ１０を効率的に利用しつつパケットの廃棄される機会を減少させるとともに、クラスに基づく帯域制御（クラスに基づく優先制御によるパケット送信処理）を維持することが可能である。
【００９９】
また、実施例１によれば、少なくとも帯域保証用のクラスについて、専用消費容量として正の値を記憶し、帯域保証用およびベストエフォート用のクラスの組み合わせについて、共有消費容量として正の値を記憶するので、帯域保証用のクラスに区分けされたパケットについて、帯域保証用のバッファ１０に空き容量がなくなった場合にもベストエフォート用のバッファ１０にパケットを格納することにより、バースト耐力を向上することが可能であり、帯域保証用のバッファ１０を増加させることなく、バッファ１０を効率的に使用することが可能である。また、さらに、クラスに基づく帯域制御（クラスに基づく優先制御によるパケット送信処理）を維持することも可能である。
【実施例２】
【０１００】
さて、実施例１においては、図９に示すように、バッファ１０の容量を配分する手法として、帯域保証用のクラスのパケットとベストエフォート用のクラスのパケットとが共有して消費する共有消費容量を設定する場合について説明した。例えば、クラスが「Ａ」であるパケットを受信すると、実施例１に係るパケット中継装置は、図９の（１）に示すように、クラス「Ａ」に設定されている専用消費容量（図９のａ）を消費してバッファ１０に記憶し、また、当該専用消費容量に十分な空き容量がない場合には、図９の（２）に示すように、クラス「Ａ」とクラス「Ｂ」とクラス「Ｃ」とが共有する共有消費容量（図９のｂ）を消費してバッファ１０に記憶する。なお、図９は、実施例１におけるバッファ１０の配分手法を説明するための図である。
【０１０１】
しかし、本発明はこれに限定されるものでなく、様々な配分手法をとり得るものである。そこで、以下では、図１０〜１６を用いて、実施例２として、バッファ１０の容量を配分する様々な手法について説明する。なお、図１０〜１６は、実施例２におけるバッファ１０の配分手法について説明するための図である。上記したように、以下に記載する本発明に係るパケット中継装置の説明に関しても、特に言及がない限り、クラス「Ａ」と「Ｂ」とを、帯域保証用のクラスとして、クラス「Ｃ」と「Ｄ」とを、ベストエフォート用のクラスとして説明する。
【０１０２】
（１）ベストエフォート用のクラスに専用消費容量を設定
例えば、実施例２に係るパケット中継装置は、ベストエフォート用のクラスについて、専用消費容量として正の値を記憶してもよい。例えば、図１０−１の（１）に示すように、実施例２に係るパケット中継装置は、ベストエフォート用のクラスに専用消費容量（図１０−１のｃ）を設ける。さらに詳細には、図１０−２の（２）に示す例では、実施例２に係るパケット中継装置は、ポート「＃１」クラス「Ａ」および「Ｂ」に対応付けて専用消費容量「５０」を容量管理テーブルにて記憶して管理し、ポート「＃１」クラス「Ｃ」および「Ｄ」に対応付けて専用消費容量「２５」を容量管理テーブルにて記憶して管理する。
【０１０３】
このようにバッファ１０を配分することにより、実施例２に係るパケット中継装置は、ベストエフォート用クラスのパケットの全廃棄を防止することが可能である。例えば、帯域保証用のクラスのパケットが、帯域保証用のクラスとベストエフォート用のクラスとが共有して消費する容量をすべて消費したとしても、帯域保証用のクラスとの共有容量とはならない容量を設定することにより、すなわち、ベストエフォート用のクラスに専用消費容量として正の値が設定されることにより、パケットをすべて廃棄する事態を防止することが可能である。
【０１０４】
（２）帯域保証用クラスのみが共有する共有消費容量を設定
また、例えば、少なくとも帯域保証用のクラスは、複数あるものである場合に、実施例２に係るパケット中継装置は、帯域保証用のクラスの組み合わせについて、共有消費容量として正の値を記憶してもよい。また、例えば、帯域保証用のクラスの組み合わせについて共有消費容量として正の値が記憶されている場合に、実施例２に係るパケット中継装置は、当該帯域保証用クラス各々について、専用消費容量として正の値を記憶してもよい。
【０１０５】
例えば、図１１−１の（１）に示すように、実施例２に係るパケット中継装置は、クラス「Ａ」のパケットとクラス「Ｂ」のパケットとが共有して消費する共有消費容量（図１１のｄ）を設ける。そして、共有消費容量を設けたクラス「Ａ」とクラス「Ｂ」とについて、専用消費容量（図１１−１のａ）を設ける。さらに詳細には、図１１−２の（２）に示すように、実施例２に係るパケット中継装置は、ポート「＃１」クラス「Ａ」に対応付けて、専用消費容量「３０」を容量管理テーブルにて記憶して管理し、ポート「＃１」クラス「Ｂ」に対応付けて、専用消費容量「３０」を容量管理テーブルにて記憶して管理し、ポート「＃１」クラス「Ａ、Ｂ」に対応付けて、共有消費容量「４０」を容量管理テーブルにて記憶して管理する。
【０１０６】
なお、本発明は、帯域保証用のクラスの組み合わせについて共有消費容量として正の値が記憶されている場合に、実施例２に係るパケット中継装置が、当該帯域保証用クラス各々について、専用消費容量として正の値を記憶する場合に限られず、当該帯域保証用クラス各々のうち、一部のクラスについてのみ専用消費容量として正の値を記憶する場合に限られず、または、いずれのクラスについても、専用消費容量として正の値を記憶しなくてもよい。
【０１０７】
このようにバッファ１０を配分することにより、実施例２に係るパケット中継装置は、帯域保証用のクラス間で容量の共有を行わない（排他の関係をとる）手法と比較して、バッファ１０を効率的に使用することが可能である。
【０１０８】
例えば、帯域保証用のクラスとして「Ａ」と「Ｂ」とがあり、ベストエフォート用のクラスとして「Ｃ」と「Ｄ」とがある場合に、Ａに設けられた専用消費容量に空き容量がなくなった場合にも、すぐにベストエフォート用と共有している共有消費容量を消費するのではなく、帯域保証用のクラスである「Ｂ」と共有している共有消費容量を消費することにより、ベストエフォート用と共有している共有消費容量に溢れるパケットの容量を減少させ、その結果、ベストエフォート用と共有している共有消費容量を少なくして（全体のバッファ１０容量を削減して）バッファ１０を効率的に使用することが可能である。
【０１０９】
また、例えば、実施例２に係るパケット中継装置は、帯域保証用のクラスについて専用消費容量として正の値を記憶しているので、帯域保証用のクラスの組み合わせについて共有消費容量を設定する際にも、帯域保証用クラスの全廃棄を防止することも可能である。
【０１１０】
例えば、実施例２に係るパケット中継装置は、一方の帯域保証用のクラスのパケットが、他方の帯域保証用のクラスと共有して消費する容量をすべて消費したとしても、帯域保証用のクラスに共有容量とはならない容量を設定することにより、他方の帯域保証用のクラスのパケットをすべて廃棄する事態を防止することが可能である。
【０１１１】
（３）帯域保証用のクラスに設定する専用消費容量
また、例えば、実施例２に係るパケット中継装置は、帯域保証用のクラスについて、すべての専用消費容量を設定する場合に限られず、その一部のみについて専用消費容量を設定してもよい。
【０１１２】
（４）異なるポートのクラス間にて設定する共有消費容量
また、例えば、上記した実施例においては、実施例２に係るパケット中継装置が、複数のポートを有する場合について言及しなかったが、本発明はこれに限定されるものではなく、複数のポートを有してもよい。
【０１１３】
具体的には、実施例２に係るパケット中継装置は、複数のポートを有するものであって、図１２−１の（１）に示すように、ポートごとに、かつ、クラスごとに、順番情報と、位置情報とを対応付けて位置情報管理テーブルに記憶して管理する。さらに詳細には、実施例２に係るパケット中継装置は、図１２−１の（１）に示す例では、ポート「＃１」クラス「Ａ」に対応付けて、位置情報「００１」の次に、位置情報「００５」を記憶して管理し、ポート「＃２」クラス「Ｂ」に対応付けて、位置情報「００７」の次に、位置情報「００４」を記憶して管理する。
【０１１４】
また、実施例２に係るパケット中継装置は、図１２−１の（２）に示すように、ポートごと、かつ、クラスごとに、専用消費容量と、現専用消費容量および／または専用空き容量とを対応付けて容量管理テーブルに記憶して管理する。さらに詳細には、実施例２に係るパケット中継装置は、図１２−１の（２）に示す例では、ポート「＃１」クラス「Ａ」に対応付けて専用消費容量「２０」を容量管理テーブルに記憶して管理し、ポート「＃２」クラス「Ａ」に対応付けて専用消費容量「２０」を容量管理テーブルに記憶して管理する。
【０１１５】
ここで、実施例２に係るパケット中継装置は、図１２−１の（３）に示すように、異なるポート間でのクラスの組み合わせについて、共有消費容量と、現共有消費容量や共有空き容量とを対応付けて記憶してもよい。また、その際には、実施例２に係るパケット中継装置は、異なるポート間での複数の帯域保証用のクラスの組み合わせについて、共有消費容量として正の値を記憶し、異なるポート間での帯域保証用クラスおよびベストエフォート用のクラスの組み合わせについて、共有消費容量として正の値を記憶する。
【０１１６】
例えば、実施例２に係るパケット中継装置は、ポート「＃１と＃２」に関するクラス「Ａ、Ｂ」が共有して消費する共有消費容量（図１２−２の（４）の２ｅ）を設けてもよい。さらに詳細には、実施例２に係るパケット中継装置は、図１２−１の（３）に示す例では、ポート「＃１、＃２」クラス「Ａ、Ｂ」に対応付けて、共有消費容量「１０」を容量管理テーブルに記憶して管理し、ポート「＃１、＃２」クラス「Ａ、Ｂ、Ｃ」に対応付けて、共有消費容量「１０」を容量管理テーブルに記憶して管理する。
【０１１７】
そして、実施例２に係るパケット中継装置（容量監視部１５０）は、識別されたポートとクラスとに対応する専用空き容量を容量管理テーブルから読み出し、受信したパケットを格納できる容量があるか否かを判定し、パケットを格納できる容量があると判定された場合に、ポートとクラスとに対応する専用空き容量を消費したものとしてパケットをバッファ１０に格納する。
【０１１８】
その後、実施例２に係るパケット中継装置（容量監視部１５０）は、現専用空き容量に受信したパケットを格納できる容量がないと判定された場合に、パケットのポートとクラスとに対応する共有空き容量を容量管理テーブルから読み出し、パケットを格納できる容量があるか否かを判定し、パケットを格納できる容量があると判定された場合に、ポートとクラスとに対応する共有空き容量を消費したものとしてパケットをバッファ１０に格納する。
【０１１９】
そして、バッファ１０に記憶したパケットを送信する際には、実施例２に係るパケット中継装置、優先制御に従って所定のポートとクラスとを選択し、選択したポートとクラスとに対応する最先に格納されたパケットをバッファ１０から読み出して送信する。
【０１２０】
なお、本発明は、実施例２に係るパケット中継装置が、異なるポート間での複数の帯域保証用のクラスの組み合わせについて、共有消費容量として正の値を記憶し、異なるポート間での帯域保証用クラスおよびベストエフォート用のクラスの組み合わせについて、共有消費容量として正の値を記憶する場合に限定されるものではない。例えば、実施例２に係るパケット中継装置は、異なるポート間での複数の帯域保証用のクラスの組み合わせについてのみ、共有消費容量として正の値を記憶してもよく、また、異なるポート間での帯域保証用クラスおよびベストエフォート用のクラスの組み合わせについてのみ、共有消費容量として正の値を記憶してもよい。
【０１２１】
このように、実施例２に係るパケット中継装置は、出力ポート間の輻輳ばらつきによる影響を考慮しない手法と比較して、バッファ１０を効率的に使用することが可能である。
【０１２２】
例えば、実施例２に係るパケット中継装置は、出力ポートが複数設定されているパケット中継装置において、複数のポートにて、同時刻に同じ容量で輻輳することは少ない。さらに詳細には、図１３に示すように、ポート＃１が輻輳しており、一方、他のポートのトラヒックが全く無い場合もある。これは、ある出力ポートが輻輳もしくは、Ｐａｕｓｅフレーム受信などにより、バックプレッシャが発生する時間は全てのポートが同じ時刻ではないからである。この結果、出力ポート単位にてバッファ１０の容量を共有することにより、バッファ１０を効率的に使用することが可能である。
【０１２３】
また、実施例２に係るパケット中継装置が、異なるポート間での複数の帯域保証用のクラスの組み合わせについて、共有消費容量として正の値を記憶し、異なるポート間での帯域保証用クラスおよびベストエフォート用のクラスの組み合わせについて、共有消費容量として正の値を記憶するので、ベストエフォート用のクラスの輻輳により、帯域保証用のクラスの輻輳が起きることを回避し、帯域保証用クラスの輻輳耐力が低下することを防止することが可能である。
【０１２４】
言い換えると、実施例２に係るパケット中継装置が、図１４の（１）に示すように、ベストエフォート用のクラスの輻輳により、ベストエフォート用のクラスのパケットが帯域保証用のクラスへと溢れる設定である場合には、帯域保証用のクラスの輻輳が起きる。このような手法に対して、実施例２に係るパケット中継装置は、図１４の（２）に示すように、異なるポート間での複数の帯域保証用のクラスの組み合わせについて、共有消費容量として正の値を記憶し、異なるポート間での帯域保証用クラスおよびベストエフォート用のクラスの組み合わせについて、共有消費容量として正の値を記憶することにより、ベストエフォート用のクラスが輻輳したとしても、ベストエフォート用のクラスのパケットが帯域保証用のクラスの共有消費容量は消費できない結果、帯域保証用のクラスの輻輳が起きることを回避し、帯域保証用クラスの輻輳耐力が低下することを防止することが可能である。
【０１２５】
（５）組み合わせについて
実施例２に係るパケット中継装置は、上記したバッファ１０の配分に関する手法は、一つのみを採用する場合に限定されず、複数またはすべての手法を採用してよい。また、複数の共有消費容量がある場合に、共有消費容量を消費してバッファにパケット記憶する際に、消費する共有消費容量の順番を予め設定してもよい。例えば、「Ａ，Ｂ」とが共有して消費する容量と、「Ａ，Ｂ、Ｃ」とが共有して消費する容量とがあり、クラスＡのパケットをバッファに記憶させる場合に、まず、帯域保証用のクラス間で共有する共有消費容量（「Ａ，Ｂ」）を消費してバッファにパケットを記憶し、当該共有消費容量に空き容量がない場合に、ベストエフォート用の共有消費容量（「Ａ，Ｂ、Ｃ」）を消費してバッファにパケットを記憶させてもよい。
【０１２６】
（６）その他
ところで、上記したバッファを配分する手法を組み合わせることによって、以下に示すように、バッファを効率的に使用することが可能である。例えば、すべてのクラスについて、それぞれ専用消費容量を設定し、また、異なるポート間において、共有消費容量を設定する場合の効果について、以下に説明する。
【０１２７】
まず、従来の手法においては、図１５の（１）に示すように、優先度が無い（優先度が１つである）場合には、バッファ１０には、出力ポート各々についてメモリの区画が設けられ、その区画内において、ＦＩＦＯによる処理によって、パケットが読み出されて送信される。また、図１５の（２）に示すように、優先度が複数ある場合には、パケット単位に優先度を識別し、当該優先度に基づいて、パケットをバッファ１０に格納し、バッファ１０から読み出して送信する。このため、各クラス各々について、容量が設けられている。
【０１２８】
例えば、バッファ１０からパケットを読み出さないと仮定して、バッファ１０の効率性について説明する。上記したような従来の手法においては、ＧｂＥについて１０ｍｓｅｃの帯域保証を行う場合に、優先度を一つとすると、１Ｇｂｉｔ／ｓｅｃの１０ｍｓｅｃ分として１０Ｍｂｉｔの容量を確保することが必要である。さらに、出力ポート数が３２ある場合には、容量もポート数分必要となり、１０Ｍｂｉｔ×３２（ｐｏｒｔ）＝３２０Ｍｂｉｔのバッファ１０容量が必要となる。なお、下記の計算においては、ＩＦＧ（Ｉｎｔｅｒ  Ｆｒａｍｅ  Ｇａｐ）やＰｒｅａｍｂｌｅ／ＳＦＤによる影響は考慮しないものとする。
【０１２９】
また、例えば、各ポートごとに４つのクラス（優先度）があるものとして、各クラスに対して設定するバッファ１０の容量の比を１：１：４：４（Ａ：Ｂ：Ｃ：Ｄ）とする。ここで、上記した１０ｍｓｅｃの保証を、クラスＡとクラスＢとに適用すると、各ポートごとに１０倍のメモリ容量が必要となり、見積りの結果としては、３２０Ｍｂｉｔ×１０＝３２００Ｍｂｉｔものメモリが必要になる。なお、容量の比として、帯域保証用のクラスであるＡとＢとに設定される容量に対して、ベストエフォート用のクラスであるＣとＤとに設定される容量が多いのは、帯域保証用のクラスのパケットを出力している間、輻輳によりベストエフォート用のクラスのパケットが待たされるため、多くの容量が必要となるためである。
【０１３０】
このような従来の手法に対して、本発明を適用することによって、実施例２に係るパケット中継装置は、上記したようにバッファ１０を配分することにより、バッファ１０を効率的に使用することが可能である。例えば、図１６を用いて説明する。まず、ポート「＃１」のクラスＡについて、バッファ１０に格納した後、当該格納したパケットを読み出して送信しない状態において、ＧｂＥの１０ｍｓｅｃを保証するとして説明する。
【０１３１】
この場合において、ポート「＃１」クラスＡのパケットを受信すると、実施例２に係るパケット中継装置は、まず、図１６の（１）に示すように、ポート「＃１」クラスＡに設定されている専用消費容量を消費する。その後、図１６の（２）に示すように、帯域保証用のクラスの共有消費容量を消費し、続いて、図１６の（３）に示すように、ベストエフォート用のクラスと帯域保証用のクラスとが共有して消費する共有消費容量を消費する。
つまり、式としてあらわすと、次のようになる。「ＣＡ＃１（Ｍｂｉｔ）＋（Ｂ−（ΣＣＡ＋ΣＣＢ））＋（（Ａ−Ｂ）−（ΣＣＣ＋ΣＣＤ））＝１０Ｍｂｉｔ」。これにより、メモリ容量は、上記式を変形することにより、次の式により表される。「Ａ＝１０Ｍｂｉｔ−ＣＡ＃１（Ｍｂｉｔ）＋（ΣＣＡ＋ΣＣＢ）＋（ΣＣＣ＋ΣＣＤ）」。なお、ここで、Ａはバッファ１０の容量を示し、Ｂは、帯域保証用のクラスのパケットのみが用いることが許されるバッファ１０の容量を示す。また、（Ａ−Ｂ）は、ベストエフォート用のクラスのパケットが用いることを許されるバッファ１０の容量を示す。また、Σで示す箇所については、専用消費容量を示す。例えば、ΣＣＡは、クラスＡによって用いられる専用消費容量を示す。
【０１３２】
ここで、Ｂが３２Ｍｂｉｔとし、ＣＡ＃１〜ＣＡ＃ｎおよびＣＢ＃１〜ＣＢ＃ｎが０．５Ｍｂｉｔ、ｎ＝３２、ＣＡ＃１〜ＣＡ＃ｎおよびＣＢ＃１〜ＣＢ＃ｎが１Ｍｂｉｔと仮定すると、「Ａ＝１０Ｍｂｉｔ-０．５Ｍｂｉｔ＋（０．５＊３２＋０．５＊３２）＋（１＊３２  ＋１＊３２）＝１０５．５Ｍｂｉｔ」となり、上記した従来の手法と比較して、約１／３の容量のメモリで、同じ帯域保証を実現することが（同じ仕様を）可能である。
【０１３３】
また、上記式は、一つの仮定として算出したものであり、上述の式に示すように、占有させるべき容量の総和が低くなれば、バッファ１０をより高い効率で使用することが可能である。
【実施例３】
【０１３４】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【０１３５】
（１）専用消費容量の動的変更
例えば、実施例では、専用消費容量に関する設定について、ネットワークの構成に応じて変更する手法について言及しなかったが、本発明はこれに限定されるものではなく、パケット中継装置の各出力ポート各々に関する帯域の変化に応じて、専用消費容量の設定を動的に変更してもよい。
【０１３６】
具体的には、実施例３に係るパケット中継装置は、図３に示す構成に、さらに、以下に説明するＳＯＮＥＴ監視部を備える。なお、ＳＯＮＥＴＥ監視部は、図３において、ＱｏＳ処理部７０と、スケジューリング処理部８０と、ＳＯＮＥＴフレーミング処理部９０と、ＳＯＮＥＴデフレーミング処理部１００とに結合している。なお、ＳＯＮＥＴ監視部は、特許請求の範囲に記載の「監視手段」と「更新手段」とに対応する。
【０１３７】
すなわち、実施例３に係るパケット中継装置（ＳＯＮＥＴ監視部）は、パケット中継装置に設けられている出力ポート各々について、それぞれ帯域を監視する。例えば、図１７の（１）および（２）に示すように、ＳＯＮＥＴ監視部は、各出力ポートの帯域を監視し、ポート「ＳＴＳ３ｃ−１ｖ」の帯域がなくなり、ポート「ＳＴＳ３ｃ−４ｖ」の帯域が増加したと監視する。なお、図１７は、実施例３に係るパケット中継装置による動的変更を説明するための図である。
【０１３８】
そして、実施例３に係るパケット中継装置（ＳＯＮＥＴ監視部）は、監視された出力ポートの帯域に対して、出力ポート各々に設定されているクラスに対応する専用消費容量が、常に一定割合の容量になるように、容量管理テーブルの専用消費容量を更新する。例えば、図１７の（１）に示すように、ポート「ＳＴＳ３ｃ−１ｖ」に対して専用消費容量「約３ａＭｂｉｔ」と設定され、ポート「ＳＴＳ３ｃ−４ｖ」に対して専用消費容量「約１２ａＭｂｉｔ」と設定されているとする。ここで、ＳＯＮＥＴ監視部は、図１７の（２）に示すように、ポート「ＳＴＳ３ｃ−１ｖ」に対して設定されている専用消費容量を「約３ａＭｂｉｔ」から「０Ｍｂｉｔ」に更新し、ポート「ＳＴＳ３ｃ−４ｖ」に対して設定されている専用消費容量「約１２ａＭｂｓ」を「約１５ａＭｂｉｔ」に更新する（図１７の（２）の「ＳＴＳ３ｃ−５ｖ」参照）。言い換えると、実施例３に係るパケット中継装置（ＳＯＮＥＴ監視部）は、ポートの帯域に対して（例えば、「ＳＴＳ３ｃ−１ｖ」）、当該ポートに対応する専用消費容量（例えば、図１７の（１）では、「約３ａＭｂｉｔ」）が、常に一定割合となるように、専用消費容量の設定を更新する。
【０１３９】
なお、ＳＯＮＥＴ監視部は、かかる更新を一定周期でおこなってもよい。また、ＳＯＮＥＴ監視部は、予め所定の閾値を有し、帯域の変化量が当該閾値を超える場合に更新を行ってもよい。
【０１４０】
このように、実施例３に係るパケット中継装置は、ネットワークの構成に対して適切な設定を行うことが可能である。
【０１４１】
例えば、実施例３に係るパケット中継装置は、ＳＯＮＥＴのＬＣＡＳによるダイナミックにＳＯＮＥＴチャネルの帯域変更があったとしても、このパケットバッファ管理方式の各パラメータを動的に変更可能とすることにより、動的に帯域比例のＱｕｅｕｅ構成（バッファの割り当て）を可能とし、読出し帯域との整合性を確保することが可能である。
【０１４２】
例えば、実施例３に係るパケット中継装置は、専用消費容量や共有消費容量について、ネットワークの構成の変化に基づいて変更することにより、未使用な出力ポートに設定されている容量を他のポートの輻輳しているポートに割り当てることが可能であり、保証している帯域が変化する場合に、装置のプロビジョニング（予め設定しておく）だけではなく、運用中にも変更することにより、最適かつバッファ１０を効率よく使用すること可能である。
【０１４３】
また、例えば、このような更新を行わない手法においては、帯域が増えた出力ポートに対して十分に専用領域を確保せず、また、共有消費容量が他のポートのパケットによって輻輳することによって、帯域（トラヒック）契約帯域まで達していないにもかかわらず、廃棄されてしまうのに対して、本発明を適用することにより、このような事態を防止することが可能である。
【０１４４】
また、このように、動的に設定を更新することにより、占有帯域の装置としての考えられる総和の最大値を考慮してメモリサイズを考慮すれば、それより低い運用となれば、輻輳耐力が持てるパケット中継装置とすることが可能である。
【０１４５】
すなわち、バッファを共有して用いる手法自体は、従来技術であるが、上記した管理方式を用いることにより、“ＱｏＳのためのパケットバッファ管理”を高効率に行うことが可能である。言い換えると、ＱｏＳやＬＣＡＳに代表される出力帯域連動のための共有バッファ管理方式である。具体的には、実施例１および実施例２にて記載したように、帯域保証の共有領域と、ベストエフォート用の共有消費容量（共有領域）を設け、帯域保証用のクラスのパケットが到着した際に、帯域保証用の共有領域が枯渇した場合には、ベストエフォート用の共有領域を使うことができるが、ベストエフォート用のクラスのパケットが到着した際に、ベストエフォート用のクラスの共有領域が枯渇したとしても、帯域保証用のクラスの共有領域は使えない。また、実施例２にて記載したように、ＳＯＮＥＴのＬＣＡＳによるダイナミックにＳＯＮＥＴチャネルの帯域変更があったとしても、このパケットバッファ管理方式の各パラメータは動的に変更可能とすることにより、動的に帯域比例のQueue構成を可能とし、読出し帯域との整合性を確保する。
【０１４６】
（２）システム構成等
また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（例えば、図１〜図１６）については、特記する場合を除いて任意に変更することができる。
【０１４７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図４におけるバッファ格納ポインタ処理部１４０において、位置情報管理テーブルと、当該テーブルを管理する部とを分離し、また、バッファ書込処理部１２０とメバッファ読出処理部１３０とを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１４８】
（３）プログラム
ところで、上記実施例１では、ハードウェアロジックによって各種の処理を実現する場合を説明したが、本発明はこれに限定されるものではなく、予め用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図１８を用いて、上記の実施例１に示したパケット中継装置と同様の機能を有するパケット中継装置制御プログラムを実行するコンピュータの一例を説明する。なお、図１８は、実施例１に係るパケット中継装置のプログラムを示すための図である。
【０１４９】
同図に示すように、実施例３における管理装置３０００は、操作部３００１、マイク３００２、スピーカ３００３、ＬＡＮポート３００４、ディスプレイ３００５、バッファ３００６、ＳＯＮＥＴポート３００７、ＣＰＵ３０１０、ＲＯＭ３０１１、ＨＤＤ３０１２、ＲＡＭ３０１３をバス３００９などで接続して構成されている。
【０１５０】
ＲＯＭ３０１１には、上記の実施例１で示したＰＨＹ／ＭＡＣ処理部４０と、Ｆｌｏｗ識別処理部５０と、クラス識別処理部６０と、ＱｏＳ処理部７０と、スケジューリング処理部８０と、ＳＯＮＥＴフレーミング処理部９０と、ＳＯＮＥＴデフレーミング処理部１００と同様の機能を発揮する制御プログラム、つまり、図１８に示すように、ＰＨＹ／ＭＡＣ処理プログラム３０１１ａと、Ｆｌｏｗ識別処理プログラム３０１１ｂと、クラス識別プログラム３０１１ｃと、ＱｏＳ処理プログラム３０１１ｄと、スケジューリング処理プログラム３０１１ｅと、ＳＯＮＥＴフレーミングプログラム３０１１ｆと、ＳＯＮＥＴデフレーミングプログラム３０１１ｇとが予め記憶されている。なお、これらのプログラム３０１１ａ〜３０１１ｇについては、図３に示した管理装置の各構成要素と同様、適宜統合または分離してもよい。
【０１５１】
そして、ＣＰＵ３０１０が、これらのプログラム３０１１ａ〜３０１１ｇをＲＯＭ３０１１から読み出して実行することにより、図１８に示すように、各プログラム３０１１ａ〜３０１１ｇについては、ＰＨＹ／ＭＡＣ処理プロセス３０１０ａと、Ｆｌｏｗ識別処理プロセス３０１０ｂと、クラス識別プロセス３０１０ｃと、ＱｏＳ処理プロセス３０１０ｄと、スケジューリング処理プロセス３０１０ｅと、ＳＯＮＥＴフレーミングプロセス３０１０ｆと、ＳＯＮＥＴデフレーミングプロセス３０１０ｇとして機能するようになる。なお、各プロセス３０１０ａ〜３０１０ｇは、図３に示した、ＰＨＹ／ＭＡＣ処理部４０と、Ｆｌｏｗ識別処理部５０と、クラス識別処理部６０と、ＱｏＳ処理部７０と、スケジューリング処理部８０と、ＳＯＮＥＴフレーミング処理部９０と、ＳＯＮＥＴデフレーミング処理部１００とにそれぞれ対応する。
【０１５２】
そして、ＨＤＤ３０１２には、位置情報管理テーブル３０１２ａと、容量管理テーブル３０１２ｂとが設けられている。この位置情報管理テーブル３０１２ａは、位置情報管理テーブルに対応する。この容量管理テーブル３０１２ｂは、容量管理テーブルに対応する。
【０１５３】
そして、ＣＰＵ３０１０は、ＨＤＤ３０１２から位置情報管理テーブル３０１２ａと容量管理テーブル３０１２ｂとを読み出してＲＡＭ３０１３に格納し、ＲＡＭ３０１３に格納された位置情報管理データ３０１３ａと、容量管理データ３０１３ｂとを用いて、パケット中継装置制御プログラムを実行する。
【０１５４】
（３）その他
なお、本実施例で説明したパケット中継装置制御方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【０１５５】
（付記１）優先制御に関して予めクラス分けされたパケットを受信すると、当該パケットをバッファに格納してから当該優先制御に基づいて送信するパケット中継装置であって、
前記バッファに現に格納されているパケットについて、前記クラスごとに、前記パケットを受信した順番を示す順番情報と、当該受信したパケットを当該バッファのいずれの位置に格納しているかを特定する位置情報とを対応付けて記憶する位置情報記憶手段と、
前記優先制御に従って所定のクラスを選択し、前記位置情報記憶手段に記憶された順番情報および位置情報を用いて、前記バッファに現に格納されているパケットのうちで当該選択したクラスに対応する最先に格納されたパケットを当該バッファから読み出して送信するパケット送信手段と、
前記クラスごとに、前記バッファの容量のうちで当該クラスのパケットのみが消費を許されている容量を示す専用消費容量と、当該専用消費容量のうちで現に消費されている容量を示す現専用消費容量および／または当該専用消費容量から現専用消費容量を除いて求まる専用空き容量とを対応付けて記憶する専用容量記憶手段と、
複数のクラスの組み合わせごとに、前記バッファの容量のうちで当該複数のクラスのパケットが共有で消費を許されている容量を示す共有消費容量と、当該共有消費容量のうちで現に消費されている容量を示す現共有消費容量および／または当該共有消費容量から現共有消費容量を除いて求まる共有空き容量とを対応付けて記憶する共有容量記憶手段と、
前記受信したパケットについて前記クラスを識別するクラス識別手段と、
前記クラス識別手段によって識別されたクラスに対応する前記専用空き容量を前記専用容量記憶手段から読み出し、前記受信したパケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該クラスの専用空き容量を消費したものとして当該パケットを前記バッファに格納する専用容量消費手段と、
前記専用容量消費手段によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットのクラスに対応する前記共有空き容量を前記共有容量記憶手段から読み出し、当該パケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該クラスの共有空き容量を消費したものとして当該パケットを前記バッファに格納する共有容量消費手段と、
前記共有容量消費手段によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットを前記バッファに格納することなく廃棄する廃棄手段と、
を備えたことを特徴とするパケット中継装置。
【０１５６】
（付記２）前記クラスは、帯域が保証されているパケット通信にて用いられる帯域保証用のクラスと、帯域が保証されていないパケット通信にて用いられるベストエフォート用のクラスとであって、
前記専用容量記憶手段は、少なくとも前記帯域保証用のクラスについて、前記専用消費容量として正の値を記憶し、
前記共有容量記憶手段は、前記帯域保証用およびベストエフォート用のクラスの組み合わせについて、前記共有消費容量として正の値を記憶することを特徴とする付記１に記載のパケット中継装置。
【０１５７】
（付記３）前記専用容量記憶手段は、前記ベストエフォート用のクラスについて、前記専用消費容量として正の値を記憶することを特徴とする付記１または２に記載のパケット中継装置。
【０１５８】
（付記４）少なくとも前記帯域保証用のクラスは、複数あるものであって、
前記共有容量記憶手段は、前記帯域保証用のクラスの組み合わせについて、前記共有消費容量として正の値を記憶することを特徴とする付記１〜３のいずれか一つに記載のパケット中継装置。
【０１５９】
（付記５）前記共有容量記憶手段によって、前記帯域保証用のクラスの組み合わせについて前記共有消費容量として正の値が記憶されている場合に、前記専用容量記憶手段は、当該クラス各々について、前記専用消費容量として正の値を記憶することを特徴とする付記４に記載のパケット中継装置。
【０１６０】
（付記６）パケット中継装置は、複数のポートを有するものであって、
前記位置情報記憶手段は、前記ポートごとに、かつ、前記クラスごとに、前記順番情報と、前記位置情報とを対応付けて記憶し、
前記パケット送信手段は、前記優先制御に従って所定のポートとクラスとを選択し、当該選択したポートとクラスとに対応する最先に格納されたパケットを当該バッファから読み出して送信し、
前記専用容量記憶手段は、前記ポートごと、かつ、前記クラスごとに、前記専用消費容量と、前記現専用消費容量および／または前記専用空き容量とを対応付けて記憶し、
前記共有容量記憶手段は、異なるポート間でのクラスの組み合わせについて、前記共有消費容量と、前記現共有消費容量および／または前記共有空き容量とを対応付けて記憶し、
前記クラス識別手段は、前記受信したパケットについて前記クラスと前記ポートとを識別し、
前記専用容量消費手段は、前記クラス識別手段によって識別されたポートとクラスとに対応する前記専用空き容量を前記専用容量記憶手段から読み出し、前記受信したパケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該ポートとクラスとに対応する専用空き容量を消費したものとして当該パケットを前記バッファに格納し、
前記共有容量消費手段は、前記専用容量消費手段によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットのポートとクラスとに対応する前記共有空き容量を前記共有容量記憶手段から読み出し、当該パケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該ポートとクラスとに対応する共有空き容量を消費したものとして当該パケットを前記バッファに格納することを特徴とする付記１〜５のいずれか一つに記載のパケット中継装置。
【０１６１】
（付記７）前記共有容量記憶手段は、異なるポート間での複数の帯域保証用のクラスの組み合わせについて、前記共有消費容量として正の値を記憶し、異なるポート間での帯域保証用クラスおよびベストエフォート用のクラスの組み合わせについて、前記共有消費容量として正の値を記憶することを特徴とする付記６に記載のパケット中継装置。
【０１６２】
（付記８）前記パケット中継装置に設けられている出力ポート各々について、それぞれ帯域を監視する帯域情報監視手段と、
前記帯域情報監視手段によって監視された出力ポートの帯域に対して、出力ポート各々に設定されているクラスに対応する前記専用消費容量が、常に一定割合の容量になるように、前記専用消費容量を更新する更新手段と、
をさらに備えることを特徴とする付記１〜７のいずれか一つに記載のパケット中継装置。
【０１６３】
（付記９）優先制御に関して予めクラス分けされたパケットを受信すると、当該パケットをバッファに格納してから当該優先制御に基づいて送信するパケット中継装置を制御する制御方法であって、
前記バッファに現に格納されているパケットについて、前記クラスごとに、前記パケットを受信した順番を示す順番情報と、当該受信したパケットを当該バッファのいずれの位置に格納しているかを特定する位置情報とを対応付けて位置情報テーブルに格納する位置情報格納工程と、
前記優先制御に従って所定のクラスを選択し、前記位置情報格納工程に記憶された順番情報および位置情報を用いて、前記バッファに現に格納されているパケットのうちで当該選択したクラスに対応する最先に格納されたパケットを当該バッファから読み出して送信するパケット送信工程と、
前記クラスごとに、前記バッファの容量のうちで当該クラスのパケットのみが消費を許されている容量を示す専用消費容量と、当該専用消費容量のうちで現に消費されている容量を示す現専用消費容量および／または当該専用消費容量から現専用消費容量を除いて求まる専用空き容量とを対応付けて専用テーブルに記憶する専用容量格納工程と、
複数のクラスの組み合わせごとに、前記バッファの容量のうちで当該複数のクラスのパケットが共有で消費を許されている容量を示す共有消費容量と、当該共有消費容量のうちで現に消費されている容量を示す現共有消費容量および／または当該共有消費容量から現共有消費容量を除いて求まる共有空き容量とを対応付けて共有テーブルに記憶する共有容量格納工程と、
前記受信したパケットについて前記クラスを識別するクラス識別工程と、
前記クラス識別工程によって識別されたクラスに対応する前記専用空き容量を前記専用容量格納工程が記憶する専用テーブルから読み出し、前記受信したパケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該クラスの専用空き容量を消費したものとして当該パケットを前記バッファに格納する専用容量消費工程と、
前記専用容量消費工程によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットのクラスに対応する前記共有空き容量を前記共有容量格納工程が記憶する共有テーブルから読み出し、当該パケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該クラスの共有空き容量を消費したものとして当該パケットを前記バッファに格納する共有容量消費工程と、
前記共有容量消費工程によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットを前記バッファに格納することなく廃棄する廃棄工程と、
を含んだことを特徴とする制御方法。
【０１６４】
（付記１０）優先制御に関して予めクラス分けされたパケットを受信すると、当該パケットをバッファに格納してから当該優先制御に基づいて送信するパケット中継装置を制御する制御方法をコンピュータに実行させるパケット中継プログラムであって、
前記バッファに現に格納されているパケットについて、前記クラスごとに、前記パケットを受信した順番を示す順番情報と、当該受信したパケットを当該バッファのいずれの位置に格納しているかを特定する位置情報とを対応付けて位置情報テーブルに格納する位置情報格納手順と、
前記優先制御に従って所定のクラスを選択し、前記位置情報格納手順に記憶された順番情報および位置情報を用いて、前記バッファに現に格納されているパケットのうちで当該選択したクラスに対応する最先に格納されたパケットを当該バッファから読み出して送信するパケット送信手順と、
前記クラスごとに、前記バッファの容量のうちで当該クラスのパケットのみが消費を許されている容量を示す専用消費容量と、当該専用消費容量のうちで現に消費されている容量を示す現専用消費容量および／または当該専用消費容量から現専用消費容量を除いて求まる専用空き容量とを対応付けて専用テーブルに記憶する専用容量格納手順と、
複数のクラスの組み合わせごとに、前記バッファの容量のうちで当該複数のクラスのパケットが共有で消費を許されている容量を示す共有消費容量と、当該共有消費容量のうちで現に消費されている容量を示す現共有消費容量および／または当該共有消費容量から現共有消費容量を除いて求まる共有空き容量とを対応付けて共有テーブルに記憶する共有容量格納手順と、
前記受信したパケットについて前記クラスを識別するクラス識別手順と、
前記クラス識別手順によって識別されたクラスに対応する前記専用空き容量を前記専用容量格納手順が記憶する専用テーブルから読み出し、前記受信したパケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該クラスの専用空き容量を消費したものとして当該パケットを前記バッファに格納する専用容量消費手順と、
前記専用容量消費手順によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットのクラスに対応する前記共有空き容量を前記共有容量格納手順が記憶する共有テーブルから読み出し、当該パケットを格納できる容量があるか否かを判定し、当該パケットを格納できる容量があると判定された場合に、当該クラスの共有空き容量を消費したものとして当該パケットを前記バッファに格納する共有容量消費手順と、
前記共有容量消費手順によって前記受信したパケットを格納できる容量がないと判定された場合に、当該パケットを前記バッファに格納することなく廃棄する廃棄手順と、
をコンピュータに実行させることを特徴とするパケット中継プログラム。
【図面の簡単な説明】
【０１６５】
【図１】用語の説明に用いる図である。
【図２】実施例１に係るパケット中継装置の概要と特徴を示すための図である。
【図３】実施例１におけるパケット中継装置全体の構成を示すためのブロック図である。
【図４】実施例１におけるＱｏＳ処理部の構成を示すためのブロック図である。
【図５】実施例１におけるバッファ格納ポインタ処理部を説明するための図である。
【図６】実施例１における容量管理テーブルを説明するための図である。
【図７】実施例１に係るパケット中継装置によるパケット記憶処理の流れを説明するためのフローチャートである。
【図８】実施例１に係るパケット中継装置によるパケット読み出し処理の流れを説明するためのフローチャートである。
【図９】実施例１におけるバッファの配分手法を説明するための図である。
【図１０−１】実施例２におけるバッファの配分手法を説明するための図である。
【図１０−２】実施例２におけるバッファの配分手法を説明するための図である。
【図１１−１】実施例２におけるバッファの配分手法を説明するための図である。
【図１１−２】実施例２におけるバッファの配分手法を説明するための図である。
【図１２−１】実施例２におけるバッファの配分手法を説明するための図である。
【図１２−２】実施例２におけるバッファの配分手法を説明するための図である。
【図１３】実施例２におけるバッファの配分手法を説明するための図である。
【図１４】実施例２におけるバッファの配分手法を説明するための図である。
【図１５】実施例２におけるバッファの配分手法を説明するための図である。
【図１６】実施例２におけるバッファの配分手法を説明するための図である。
【図１７】実施例３に係るパケット中継装置による動的変更を説明するための図である。
【図１８】実施例１に係るパケット中継装置のプログラムを示すための図である。
【符号の説明】
【０１６６】
１０  バッファ
２０  ＬＡＮポート
３０  ＳＯＮＥＴポート
４０  ＰＨＹ／ＭＡＣ処理部
５０  Ｆｌｏｗ識別処理部
６０  クラス識別処理部
７０  ＱｏＳ処理部
８０  スケジューリング処理部
９０  ＳＯＮＥＴフレーミング処理部
１００  ＳＯＮＥＴデフレーミング処理部
１１０  ＴａｉｌＤｒｏｐ判定処理部
１２０  バッファ書込処理部
１３０  バッファ読出処理部
１４０  バッファ格納ポインタ処理部
１５０  容量監視部
【図１】
0005088145.tif 000002
【図２】
0005088145.tif 000003
【図３】
0005088145.tif 000004
【図４】
0005088145.tif 000005
【図５】
0005088145.tif 000006
【図６】
0005088145.tif 000007
【図７】
0005088145.tif 000008
【図８】
0005088145.tif 000009
【図９】
0005088145.tif 000010
【図１０−１】
0005088145.tif 000011
【図１０−２】
0005088145.tif 000012
【図１１−１】
0005088145.tif 000013
【図１１−２】
0005088145.tif 000014
【図１２−１】
0005088145.tif 000015
【図１２−２】
0005088145.tif 000016
【図１３】
0005088145.tif 000017
【図１４】
0005088145.tif 000018
【図１５】
0005088145.tif 000019
【図１６】
0005088145.tif 000020
【図１７】
0005088145.tif 000021
【図１８】
0005088145.tif 000022