(57)【特許請求の範囲】
【請求項１】
前段のキュー制御部から次段のキュー制御部にパケット情報を送信するデキューが行われる際に、当該デキュー対象となるパケット情報を受信した場合には、当該パケット情報に対応する受信パケットが廃棄されたか否かを示す廃棄情報と、前記受信パケットのデータ量とを返信するパケット情報管理部と、
前記パケット情報管理部によって返信された前記廃棄情報から前記受信パケットが廃棄されたと判断した場合には、当該デキュー対象となるパケット情報を廃棄し、出力可能な帯域量を維持するとともに、前段のキュー制御部に前記廃棄情報およびデータ量を転送する第一帯域調整部と、
次段のキュー制御部から転送された前記廃棄情報およびデータ量を受信した場合に、前記出力可能な帯域量に前記データ量を加算し、前段のキュー制御部に前記廃棄情報およびデータ量を転送する第二帯域調整部と、
を備えることを特徴とするパケット中継装置。
【請求項２】
前記受信パケットに対してデータ量の補正が行われた場合には、当該補正が行われた受信パケットの識別情報を前記パケット情報管理部に送信するパケット識別部をさらに備え、
前記パケット情報管理部は、前記パケット識別部によって送信されたパケット識別子に対応する受信パケットの補正データ量を前記第一帯域調整部に送信し、
前記第一帯域調整部は、前記パケット情報管理部によって送信された前記補正データ量を用いて、前記出力可能な帯域量を補正するとともに、前段のキュー制御部に前記補正データ量の転送を行って、
前記第二帯域調整部は、次段のキュー制御部から転送された前記補正データ量を受信した場合に、前記補正データ量を用いて、前記出力可能な帯域量を補正し、前段のキュー制御部に前記補正データ量を転送することを特徴とする請求項１に記載のパケット中継装置。
【請求項３】
前段のキューから次段のキューにパケット情報を送信するデキューを制御するシェイパーを多段構成で備えたパケット中継装置であって、
前記パケット情報管理部は、前記デキュー対象となるパケット情報を受信した場合には、当該パケット情報に対応する受信パケットが廃棄されたか否かを示す廃棄情報と、前記受信パケットのデータ量とを返信し、
前記第一帯域調整部は、前記パケット情報管理部によって返信された前記廃棄情報から前記受信パケットが廃棄されたと判断した場合には、当該デキュー対象となるパケット情報を廃棄し、トークンを維持するとともに、前段のシェイパーに前記廃棄情報およびデータ量を転送し、
前記第二帯域調整部は、次段のシェイパーから転送された前記廃棄情報およびデータ量を受信した場合に、前記トークンに前記データ量を加算し、前段のシェイパーに前記廃棄情報およびデータ量を転送することを特徴とする請求項１に記載のパケット中継装置。
【請求項４】
パケット情報管理部前段のキューから次段のキューにパケット情報を送信するデキューがＤＲＲを介して行われるパケット中継装置であって、
前記パケット情報管理部は、前記デキュー対象となるパケット情報を受信した場合には、当該パケット情報に対応する受信パケットが廃棄されたか否かを示す廃棄情報と、前記受信パケットのデータ量とを返信し、
前記第一帯域調整部は、前記パケット情報管理部によって返信された前記廃棄情報から前記受信パケットが廃棄されたと判断した場合には、当該デキュー対象となるパケット情報を廃棄し、カウンタを維持するとともに、前段のＤＲＲに前記廃棄情報およびデータ量を転送し、
前記第二帯域調整部は、次段のＤＲＲから転送された前記廃棄情報およびデータ量を受信した場合に、前記カウンタに前記データ量を加算し、前段のＤＲＲに前記廃棄情報およびデータ量を転送することを特徴とする請求項１に記載のパケット中継装置。
【請求項５】
前段のキュー制御部から次段のキュー制御部にパケット情報を送信するデキューが行われる際に、当該デキュー対象となるパケット情報を受信した場合には、当該パケット情報に対応する受信パケットが廃棄されたか否かを示す廃棄情報と、前記受信パケットのデータ量とを返信するパケット情報管理ステップと、
前記パケット情報管理ステップによって返信された前記廃棄情報から前記受信パケットが廃棄されたと判断した場合には、当該デキュー対象となるパケット情報を廃棄し、出力可能な帯域量を維持するとともに、前段のキュー制御部に前記廃棄情報およびデータ量を転送する第一帯域調整ステップと、
次段のキュー制御部から転送された前記廃棄情報およびデータ量を受信した場合に、前記出力可能な帯域量に前記データ量を加算し、前段のキュー制御部に前記廃棄情報およびデータ量を転送する第二帯域調整ステップと、
を含んだことを特徴とするパケット中継方法。
【請求項６】
前段のキュー制御部から次段のキュー制御部にパケット情報を送信するデキューが行われる際に、当該デキュー対象となるパケット情報を受信した場合には、当該パケット情報に対応する受信パケットが廃棄されたか否かを示す廃棄情報と、前記受信パケットのデータ量とを返信するパケット情報管理手順と、
前記パケット情報管理手順によって返信された前記廃棄情報から前記受信パケットが廃棄されたと判断した場合には、当該デキュー対象となるパケット情報を廃棄し、出力可能な帯域量を維持するとともに、前段のキュー制御部に前記廃棄情報およびデータ量を転送する第一帯域調整手順と、
次段のキュー制御部から転送された前記廃棄情報およびデータ量を受信した場合に、前記出力可能な帯域量に前記データ量を加算し、前段のキュー制御部に前記廃棄情報およびデータ量を転送する第二帯域調整手順と、
をコンピュータに実行させることを特徴とするパケット中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、パケットを中継して伝送するパケット中継装置、パケット中継方法およびパケット中継プログラムに関する。
【背景技術】
【０００２】
従来より、トラフィック制御を行うパケット中継装置では、出力するパケットの出力レートを制御することが行われている（例えば、特許文献１参照）。このようなパケット中継装置において、アプリケーションやユーザー毎にＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）を実施するために、宛先毎に実装されるバッファ・メモリーのキュー（待ち行列）が多くなっている（図９参照）。さらに、帯域制御や優先制御の自由度を高めるために、キューが多段構成になり複雑化が加速している。
【０００３】
このようなキュー数の増加やキューの多段化構成の要求に対して、高優先のパケットが優先して出力されるため、低優先のパケットが、出力されにくくなり、装置内に滞留する時間が長くなってしまう。その結果、出力されない低優先のパケットで共有メモリがあふれてしまう場合がある。
【０００４】
このため、滞留時間の長いパケットに対して、一番古く受信したパケットから順次廃棄するという方式が使われている。具体的には、パケット中継装置は、各Ｓｈａｐｅｒが単独で、それぞれのキューの先頭からパケットを廃棄する。
【０００５】
【特許文献１】特開２００７−８８９９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上記した従来のパケットを廃棄する技術では、各Ｓｈａｐｅｒが単独で、滞留時間の長いパケットを廃棄してしまうので、最初のＳｈａｐｅｒが規定通りの帯域でパケットをデキューしていても、廃棄されたパケット情報が経由した次段に位置するＳｈａｐｅｒの帯域が落ちたままである結果、Ｓｈａｐｅｒの出力帯域の効率が悪化するという課題があった。
【０００７】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、廃棄された分の帯域を取り戻して、出力帯域の効率を向上することが可能であるパケット中継装置、パケット中継方法およびパケット中継プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、パケット中継装置は、デキューが行われる際に、デキュー対象となるパケット情報を受信した場合には、パケット情報に対応する受信パケットの廃棄情報と、受信パケットのデータ量とを返信する。そして、パケット中継装置は、返信された廃棄情報から受信パケットが廃棄されたと判断した場合には、デキュー対象となるパケット情報を廃棄し、出力可能な帯域量を維持するとともに、前段のキュー制御部に廃棄情報およびデータ量を転送する。続いて、パケット中継装置は、次段のキュー制御部から転送された廃棄情報およびデータ量を受信した場合に、出力可能な帯域量にデータ量を加算し、前段のキュー制御部に廃棄情報およびデータ量を転送することを要件とする。
【発明の効果】
【０００９】
開示の装置は、廃棄された分の帯域を取り戻して、出力帯域の効率を向上するという効果を奏する。
【発明を実施するための最良の形態】
【００１０】
以下に添付図面を参照して、この発明に係るパケット中継装置、パケット中継方法およびパケット中継プログラムの実施例を詳細に説明する。
【実施例１】
【００１１】
以下の実施例では、実施例１に係るパケット中継装置の構成および処理の流れを順に説明し、最後に実施例１による効果を説明する。なお、以下では、ＩＰネットワークにおけるルータやスイッチ等のパケット伝送装置に適用する例を説明する。
【００１２】
［パケット中継装置の構成］
次に、図１を用いて、パケット中継装置１０の構成を説明する。図１は、実施例１に係るパケット中継装置１０の構成を示すブロック図である。同図に示すように、このパケット中継装置１０はパケット情報管理部１１、共有メモリ１２およびスケジューラ部１３を備える。以下にこれらの各部の処理を説明する。
【００１３】
パケット情報管理部１１は、送信されたパケットを受信し、受信された受信パケットに関する情報を管理する。具体的には、パケット情報管理部１１は、各ポートからパケットを受信すると、宛先や出力の優先順位を決定するのに必要な情報であるパケット情報を受信パケットから抽出（または生成）する。そして、パケット情報管理部１１は、抽出されたパケット情報をスケジューラ部１３のキュー振り分け部１３ａに送信する。
【００１４】
また、パケット情報管理部１１は、受信パケットの共有メモリ１２への書き込む処理や、パケット長(データ量)を監視する処理といったことも平行して行い、パケットに関する情報を管理する。そして、パケット情報管理部１１は、スケジューラ部１３の帯域調整部１３ｂからパケット情報を受信すると、受信されたパケット情報に対応するデータ量とともに受信パケットが廃棄されたか否かを示す廃棄情報をスケジューラ部１３に返信する。
【００１５】
また、パケット情報管理部１１は、スケジューラ部１３の出力調整部１３ｃからパケット情報を受信すると、該当するパケットを共有メモリ１２から読み出し、パケットを出力する。
【００１６】
また、パケット情報管理部１１は、特に本発明に密接に関連するものとして、パケット情報格納部１１ａおよびパケット滞留時間監視部１１ｂを備える。パケット情報格納部１１ａは、受信パケットについて、パケット情報およびデータ量とともに、廃棄情報を記憶する。具体的には、パケット情報格納部１１ａは、「パケット情報」、受信パケットのデータ量を示す「データ量」、受信パケットが廃棄されたか否かを示す「廃棄情報」、受信パケットの滞留時間を示す「滞留時間情報」をそれぞれ対応付けて記憶する。
【００１７】
パケット滞留時間監視部１１ｂは、受信パケットの滞留時間の監視を開始する。具体的には、パケット滞留時間監視部１１ｂは、各受信パケットの滞留時間を監視し、監視の結果、一定時間以上滞留しているか判断する。そして、パケット滞留時間監視部１１ｂは、一定時間以上滞留していると判断した受信パケットに対して廃棄処理を実施する。
【００１８】
共有メモリ１２は、パケット情報管理部１１が受信した受信パケットを保持する。具体的には、共有メモリ１２は、パケット情報管理部１１によってパケットの書き込み処理および読み出し処理が行われる。そして、共有メモリ１２は、パケット情報管理部１１によって読み出し処理が完了した場合には、読み出されたパケットが書き込まれていた領域に、新規にパケットを書き込むことが可能である。
【００１９】
スケジューラ部１３は、キュー振り分け部１３ａ、複数の帯域調整部１３ｂ−１〜１３ｂ−Ｎ、出力調整部１３ｃを備え、パケット情報管理部１１より受信したパケット情報（宛先や優先順位を決定する情報）から出力帯域調整を行う。
【００２０】
キュー振り分け部１３ａは、パケット情報管理部１１からパケット情報を受信した場合に、宛先や優先順位毎に実装されているキュー１４に対して振り分けを行うために、パケット情報内の宛先や優先順位を決定する情報を用いてパケット情報の識別を行う。そして、キュー振り分け部１３ａは、識別された結果に対応するキュー１４にパケット情報の書き込み処理(エンキュー)を行う。
【００２１】
帯域調整部１３ｂは、宛先や優先順位といった条件ごとに複数のキュー１４およびＳｈａｐｅｒ１５を備えている。そして、帯域調整部１３ｂは、Ｓｈａｐｅｒ１５がデキューを行う際に、パケット情報管理部１１に対してパケット情報を送信し、その後、該当するパケットのデータ量とともに廃棄情報をパケット情報管理部１１から受信する。
【００２２】
そして、帯域調整部１３ｂは、受信した廃棄情報からパケットが廃棄されたかどうかの判断を行って、廃棄されていないと判断した場合には、通常通りのデキュー処理として、Ｓｈａｐｅｒ１５が帯域制御に従い、一定の割合で、次段の帯域調整部１３ｂ（または出力調整部１３ｃ）にパケット情報を送信（デキュー）する。
【００２３】
一方、帯域調整部１３ｂは、廃棄情報からパケットが廃棄されたと判断した場合には、デキューする予定だったパケット情報を廃棄し、ＣｕｒｒｅｎｔＴｏｋｅｎ（出力可能な残帯域量）については、そのままの値を維持する。そして、帯域調整部１３ｂは、前段の帯域調整部１３ｂに対して廃棄されたパケットの「パケット情報」、「データ量」および「廃棄情報」を伝播する。
【００２４】
一方、帯域調整部１３ｂは、次段から廃棄されたパケットの「パケット情報」、「データ量」および「廃棄情報」を受信した場合には、ＣｕｒｒｅｎｔＴｏｋｅｎに「データ量」の加算を行い、廃棄した帯域の補正を行う。そして、帯域調整部１３ｂは、さらに前段があれば、その前段の帯域調整部１３ｂに対して、廃棄されたパケットの「パケット情報」、「データ量」および「廃棄情報」を送信する。
【００２５】
ここで、図２を用いて、隣り合う２つのＳｈａｐｅｒ（Ｓｈａｐｅｒ１、Ｓｈａｐｅｒ２）の出力帯域の例を説明する。同図に示すようにＳｈａｐｅｒ１，２とも１ｍｓ（Ｔｏｋｅｎ追加周期）間に１０００ｋｂｉｔ（ＡｄｄＴｏｋｅｎ）ずつ出力することで、１秒間に１Ｇｂｐｓの出力帯域を確保する。
【００２６】
このようなパケット中継装置１０において、図２に示すパケット（１）〜（７）が順番にエンキューされ、デキューされるのを待っているものとする。そして、パケット中継装置１０は、Ｓｈａｐｅｒ１がパケット（１）、（２）・・・と順番にＴｏｋｅｎ＝０になるまでデキューを行った場合に、パケット（４）をデキューした時点で、Ｔｏｋｅｎ＝０となり、Ｔｏｋｅｎ＞０となるまで（通常廃棄がない場合には、次のＡｄｄＴｏｋｅｎまで）、次のパケットをデキューできない。
【００２７】
また、同様にＳｈａｐｅｒ２もＴｏｋｅｎ＝０になるまでパケットをデキューするが、パケット（３）、（４）をデキューしようとすると、廃棄対象パケットであることが判明する。このとき、Ｓｈａｐｅｒ２は、出力調整部１３ｃに対してデキューを行わずに、Ｓｈａｐｅｒ１に対して、廃棄通知（図３では、パケット情報、データ量、廃棄情報を送信することを示す）を行う。
【００２８】
そして、Ｓｈａｐｅｒ１は、廃棄通知を受信すると、送られてきたデータ量(３００Ｋｂｉｔ＋２００Ｋｂｉｔ)をＣｕｒｒｅｎｔＴｏｋｅｎに加算する。ここで、ＣｕｒｒｅｎｔＴｏｋｅｎが加算されることで、Ｔｏｋｅｎ＞０となり、キュー１に保持されているパケット（５）〜（７）がデキュー可能となる。また、Ｓｈａｐｅｒ１が（５）〜（７）がデキューすることで、Ｓｈａｐｅｒ２もデキューを行い、１ｍｓ間に１０００Ｋｂｉｔのデータ量を出力することが可能となる。
【００２９】
さらにここで、詳細な値を用いつつ、出力帯域を取り戻す処理を説明する。図３にＴｏｋｅｎバケット方式による出力帯域を示す。同図に示すように、出力帯域が１ＧｂｐｓのＳｈａｐｅｒで、Ｔｏｋｅｎ追加周期＝１ｍｓ、ＡｄｄＴｏｋｅｎ＝１０００ｋｂｉｔであったとする。
【００３０】
ここでは、０〜２ｍｓ間の出力帯域の推移を示しており、その間に（１）〜（１４）までのパケットがデキューされている。そのうち、（３）、（４）、（１０）、（１１）の廃棄通知を受信し、帯域の取り戻しを行っている。もし、廃棄が起きても取り戻しを行わなかった場合には、「0ms〜1ms：（１）＋（２）＝300Kbit+200Kbit=500Kbit」、「1ms〜2ms：（８）＋（９）＝250Kbit+150Kbit=400Kbit」と廃棄が起きない場合（２０００Ｋｂｉｔ）に対して９００Ｋｂｉｔと半分以下のデータ量しか出力されない。
【００３１】
この割合で廃棄が発生すると、Ｓｈａｐｅｒが１Ｇｂｐｓの帯域に対して４５０Ｍｂｐｓしかないことになる。しかし、図３のように廃棄が起きた場合に取り戻しを行った場合には、（３）、（４）が廃棄されても、その分のデータ量を取り戻すため、（５）〜（７）のパケットをデキュー可能となる。また、１ｍｓ〜２ｍｓでも同様なことがいえるので、常に１０００Ｋｂｉｔの出力が可能となり、出力帯域は、１Ｇｂｐｓを確保できる。
【００３２】
図１の説明に戻ると、出力調整部１３ｃは、帯域調整部１３ｂ内の各Ｓｈａｐｅｒ１５のデキューが競合しないように調整を行い、帯域調整部１３ｂ内の各Ｓｈａｐｅｒ１５に対してデキュー許可を行う。また、出力調整部１３ｃは、帯域調整部１３ｂがデキューしたパケット情報を受信すると、パケット情報管理部１１に送信する。
【００３３】
ここで、出力帯域制御処理についてキュー１４およびＳｈａｐｅｒ１５の動作概要を説明する。図１の下段の図に示すように、前段の帯域調整部１３ｂ（またはキュー振り分け部１３ａ）からパケット情報を受信（エンキュー）すると、キュー書き込み制御部１５ａは、キュー１４に書き込みを行う。また、書き込み数をキュー容量監視部１５ｂに送信する。
【００３４】
そして、キュー容量監視部１５ｂは、キュー書き込み制御部１５ａから受信する書き込み数とキュー読み出し制御部１５ｃから受信する読み出し数より、キューにパケット情報がどのくらい保持されているか監視を行う。その結果、キュー容量監視部１５ｂは、キューに読み出し可能なパケット情報が保持されているかどうかを帯域制御部１５ｄに通知する。
【００３５】
また、キュー容量監視部１５ｂは、前段の帯域調整部１３ｂから受信するデキュー要求に対して、キューの空き容量に応じて、デキュー許可を行う。そして、帯域制御部１５ｄは、キュー容量監視部１５ｂから受信するキュー容量信号より、キュー１４にデキュー可能なパケット情報があるか判断を行う。
【００３６】
続いて、判断の結果、帯域制御部１５ｄは、キュー１４にデキュー可能なパケット情報があると判断した場合には、帯域制御部１５ｄ内部で管理しているＣｕｒｒｅｎｔＴｏｋｅｎより、まだパケットを出力できる帯域が残っているか判断を行う。
【００３７】
そして、判断の結果、帯域制御部１５ｄは、パケットを出力できる帯域が残っている場合には、キュー読み出し制御部１５ｃに対して、パケット情報をキュー１４から読み出すように要求する。
【００３８】
続いて、帯域制御部１５ｄは、キュー１４より読み出したパケット情報をキュー読み出し制御部１５ｃから受信すると、デキュー要求を次段の帯域調整部１３ｂに通知する。そして、帯域制御部１５ｄは、次段の帯域調整部１３ｂからデキュー許可を受信すると、キュー１４から読み出したパケット情報をパケット情報管理部１１に送信し、該当するパケットのデータ量および廃棄情報を返信してもらう。
【００３９】
そして、帯域制御部１５ｄは、受信した廃棄情報からパケットが廃棄されたかどうかの判断を行って、廃棄されていないと判断した場合には、通常通りのデキュー処理を行う。
【００４０】
一方、帯域制御部１５ｄは、廃棄情報からパケットが廃棄されたと判断した場合には、デキューする予定だったパケット情報を廃棄し、ＣｕｒｒｅｎｔＴｏｋｅｎ（出力可能な残帯域量）については、そのままの値を維持する。そして、帯域調整部１３ｂは、前段の帯域調整部１３ｂに対して廃棄されたパケットの「パケット情報」、「データ量」および「廃棄情報」を伝播する。
【００４１】
一方、帯域制御部１５ｄは、次段から廃棄されたパケットの「パケット情報」、「データ量」および「廃棄情報」を受信した場合には、ＣｕｒｒｅｎｔＴｏｋｅｎに「データ量」の加算を行い、廃棄した帯域の補正を行う。そして、帯域調整部１３ｂは、さらに前段があれば、その前段の帯域調整部１３ｂに対して、廃棄されたパケットの「パケット情報」、「データ量」および「廃棄情報」を送信する。
【００４２】
また、帯域制御部１５ｄは、パケットを出力できる帯域が残っていない場合には、Ｔｏｋｅｎ追加周期監視部１５ｅより一定周期で送信されてくるＴｏｋｅｎ追加許可信号を待つ。そして、帯域制御部１５ｄは、Ｔｏｋｅｎ追加許可信号を受信するとＣｕｒｒｅｎｔＴｏｋｅｎにＴｏｋｅｎの追加（ＡｄｄＴｏｋｅｎ）を行う。その後、帯域制御部１５ｄは、再度、パケットを出力できる帯域があるか判断を行う。
【００４３】
Ｔｏｋｅｎ追加周期監視部１５ｅは、一定期間に出力できるデータ量を制御し平均したパケットの出力ができるよう、帯域制御部１５ｄに対して、一定周期でＴｏｋｅｎの追加許可を発行する。
【００４４】
また、キュー読み出し制御部１５ｃは、帯域制御部１５ｄからキュー１４に保持されているパケット情報の読み出し要求を受信すると、キュー１４に対して、読み出し処理を行う。そして、キュー読み出し制御部１５ｃは、キュー１４からパケット情報を読み出すと、帯域制御部１５ｄにそのパケット情報を送信する。続いて、キュー読み出し制御部１５ｃは、キュー容量監視部１５ｂに対して、キュー１４からパケット情報を読み出したことを伝搬する。
【００４５】
［パケット中継装置による処理］
次に、図４を用いて、実施例１に係るパケット中継装置１０による処理を説明する。図４は、実施例１に係るパケット中継装置１０の処理動作を示すフローチャートである。
【００４６】
同図に示すように、パケット中継装置１０の帯域調整部１３ｂは、次段の帯域調整部１３ｂからデキュー許可を受信すると（ステップＳ１０１肯定）、キュー１４から読み出したパケット情報をパケット情報管理部１１に送信する（ステップＳ１０２）。その後、帯域調整部１３ｂは、パケット情報管理部１１から返信された該当するパケットのデータ量および廃棄情報を受信する（ステップＳ１０３）。
【００４７】
そして、帯域調整部１３ｂは、受信した廃棄情報からパケットが廃棄されたかどうかの判断を行って（ステップＳ１０４）、廃棄されていないと判断した場合には（ステップＳ１０４否定）、通常通りのデキュー処理を行う（ステップＳ１０８）。
【００４８】
一方、帯域調整部１３ｂは、廃棄情報からパケットが廃棄されたと判断した場合には（ステップＳ１０４肯定）、デキューする予定だったパケット情報を廃棄し（ステップＳ１０５）、ＣｕｒｒｅｎｔＴｏｋｅｎ（出力可能な残帯域量）については、そのままの値を維持する（ステップＳ１０６）。
【００４９】
そして、帯域調整部１３ｂは、前段の帯域調整部１３ｂに対して廃棄されたパケットの「パケット情報」、「データ量」および「廃棄情報」を転送する（ステップＳ１０７）。
【００５０】
[実施例１の効果]
上述してきたように、パケット中継装置１０は、廃棄情報から受信パケットが廃棄されたと判断した場合には、デキュー対象となるパケット情報を廃棄し、出力可能な帯域量を維持するとともに、前段の帯域調整部１３ｂに廃棄情報およびデータ量を転送する。そして、パケット中継装置１０は、次段の帯域調整部１３ｂから転送された廃棄情報およびデータ量を受信した場合に、トークンにデータ量を加算し、前段の帯域調整部１３ｂに廃棄情報およびデータ量を転送する。その結果、パケット中継装置１０は、廃棄された分の帯域を取り戻して、出力帯域の効率を向上することが可能である。
【実施例２】
【００５１】
ところで、上記で説明したパケット中継装置は、受信パケットを識別してデータを書き換えるパケット識別制御と帯域制御とが平行して行われる装置でもよい。そこで、以下の実施例２では、受信パケットを識別してデータを書き換えるパケット識別部１６をさらに備えたパケット中継装置１０ａについて、図５を用いて説明する。図５は、実施例２に係るパケット中継装置の構成を示すブロック図である。
【００５２】
図５に示すように、パケット中継装置１０ａは、図１に示した内パケット中継装置１０と比較して、パケット識別部１６を新たに備える点が相違する。かかるパケット中継装置１０ａにおいて、パケット識別部１６は、受信パケットの識別を行い、宛先や対向装置別にＭＡＣ  Ａｄｒｅｓｓの書き換えや、タグの付加／削除、装置特有のヘッダ等の付加／削除などを行う。
【００５３】
このようなパケット中継装置１０ａでは、例えば、ＭＡＣ  Ａｄｄｒｅｓｓの書き換えでは、パケットのデータ量は変化しないが、Ｔａｇの付加または削除、ヘッダ等の付加または削除といった処理の場合には、データ量に変化が起きる。
【００５４】
そこで、このようなデータ量の補正が行われて、データ量に変化が起きた場合に、パケット中継装置１０ａのパケット識別部１６は、補正が行われた受信パケットの識別情報をパケット情報管理部１１のパケットデータ更新部１１ｃに送信する。
【００５５】
そして、パケットデータ更新部１１ｃは、パケット識別部１６から受信パケットの識別情報を受信すると、受信した識別情報の受信パケットに対応するパケット情報と、受信パケットの補正データ量と、加算／減算情報とを補正通知として、スケジューラ部１３の出力調整部１３ｃに通知する。
【００５６】
続いて、出力調整部１３ｃは、各Ｓｈａｐｅｒ１５に補正通知（パケット情報、補正データ量および加算／減算情報）を次段から前段のＳｈａｐｅｒ１５へ順次伝搬していく。補正通知を受信したＳｈａｐｅｒ１５は、廃棄通知を受信した時と同様に、受信した補正データ量の分だけ、Ｔｏｋｅｎの補正（加算／減算）を行う。
【００５７】
このように、補正データを用いて、Ｔｏｋｅｎの補正を行うので、パケットのデータ量がどのように変化した場合でも、出力帯域の効率を向上することができる。
【実施例３】
【００５８】
ところで、上記の実施例１では、Ｓｈａｐｅｒによる帯域取り戻し処理を行っているが、本発明はこれに限定されるものではなく、ＤＲＲ（Deficit  Round  Robin）回路で帯域取り戻し処理を行ってもよい。
【００５９】
そこで、以下の実施例３では、ＤＲＲ回路で帯域取り戻し処理を行う場合として、図６および図７を用いて、実施例３におけるパケット中継装置１０ｂの構成と処理について説明する。図６は、実施例３に係るパケット中継装置１０ｂの構成を示すブロック図であり、図７は、ＤＲＲ回路の取り戻し処理を説明するための図である。
【００６０】
図６に示すように、パケット中継装置１０ｂのＤＲＲ１７は、各キューに割り振られた重み（比重）でパケットをデキューする。つまり、図６の例では、ＤＲＲ１７は、キュー＃０〜＃２の３つのキューを具備する。
【００６１】
また、図７の例では、「キュー#0：キュー#1：キュー#2＝1500：1000：500」の割合で重み付けされている。このとき、ＤＲＲ１７は、通常の処理として、キュー＃０から順番に、重み付けに従いＤｅｆｉｃｉｔＣｏｕｎｔｅｒ≦０になるまでパケットをデキューする。そして、最後(キュー＃２)のＤｅｆｉｃｉｔＣｏｕｎｔｅｒ≦０になると、最初（キュー＃０）に戻り、再び、重み付けに従いパケットのデキューを開始する。
【００６２】
図７に例示するように、キュー＃１の出力したパケットが次段で廃棄されたとする。このとき、廃棄したデータ量を取り戻さない場合、出力されるパケットの割合は、キュー＃０：キュー＃１：キュー＃２＝１５００：０：５００となり、キュー＃１のパケットが出力されていない（重み付けが守られていない）様に見える。
【００６３】
そこで、パケット中継装置１０ｂは、廃棄されたデータ量を取り戻す機能を持つようにする。パケット中継装置１０ｂのＤＲＲ１７は、パケットが廃棄された場合には、次段より廃棄通知（パケット情報、データ量、廃棄情報）を受信する。
【００６４】
そして、ＤＲＲ１７は、廃棄通知を受信し、受信した廃棄通知内のパケット情報から該当するＤｅｆｉｃｉｔＣｏｕｎｔｅｒを選択し、データ量を加算する。続いて、ＤＲＲ１７は、加算されたデータ量の分だけ、そのキューはデータをデキューすることが可能となり、再度、ＤｅｆｉｃｉｔＣｏｕｎｔｅｒ≦０になるまでデキューを行う。
【００６５】
この処理を行うことで、出力されるパケットの割合は、「キュー#0：キュー#1：キュー#2＝1500：1000：500」の割合となり、重み付けが守られた出力となる。
【００６６】
このように実施例３によれば、Ｓｈａｐｅｒに代わってＤＲＲを用いた場合でも、精度の高い比率でパケットを出力することが可能となる。
【実施例４】
【００６７】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例４として本発明に含まれる他の実施例を説明する。
【００６８】
（１）システム構成等
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６９】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７０】
（２）プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図８を用いて、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図８は、パケット中継プログラムを実行するコンピュータを示す図である。
【００７１】
同図に示すように、パケット中継装置としてのコンピュータ６００は、共有メモリ６２０、ＲＯＭ６３０およびＣＰＵ６４０をバス６５０で接続して構成される。
【００７２】
そして、ＲＯＭ６３０には、上記の実施例と同様の機能を発揮するパケット中継プログラム、つまり、図８に示すように、パケット情報管理プログラム６３１、帯域調整プログラム６３２が予め記憶されている。なお、プログラム６３１〜６３２については、図１に示したパケット中継装置の各構成要素と同様、適宜統合または分散してもよい。
【００７３】
そして、ＣＰＵ６４０が、これらのプログラム６３１〜６３２をＲＯＭ６３０から読み出して実行することで、図８に示すように、各プログラム６３１〜６３２は、パケット情報管理プロセス６４１、帯域調整プロセス６４２として機能するようになる。各プロセス６４１〜６４２は、図１に示したパケット情報管理部１１、帯域調整部１３ｂにそれぞれ対応する。
【００７４】
また、図８に示すように、共有メモリ６１０が設けられている。なお、共有メモリ６１０は、図１に示した共有メモリ１２に対応する。
【００７５】
以上の実施例１〜４を含む実施形態に関し、更に以下の付記を開示する。
【００７６】
（付記１）前段のキュー制御部から次段のキュー制御部にパケット情報を送信するデキューが行われる際に、当該デキュー対象となるパケット情報を受信した場合には、当該パケット情報に対応する受信パケットが廃棄されたか否かを示す廃棄情報と、前記受信パケットのデータ量とを返信するパケット情報管理部と、
前記パケット情報管理部によって返信された前記廃棄情報から前記受信パケットが廃棄されたと判断した場合には、当該デキュー対象となるパケット情報を廃棄し、出力可能な帯域量を維持するとともに、前段のキュー制御部に前記廃棄情報およびデータ量を転送する第一帯域調整部と、
次段のキュー制御部から転送された前記廃棄情報およびデータ量を受信した場合に、前記出力可能な帯域量に前記データ量を加算し、前段のキュー制御部に前記廃棄情報およびデータ量を転送する第二帯域調整部と、
を備えることを特徴とするパケット中継装置。
【００７７】
（付記２）前記受信パケットに対してデータ量の補正が行われた場合には、当該補正が行われた受信パケットの識別情報を前記パケット情報管理部に送信するパケット識別部をさらに備え、
前記パケット情報管理部は、前記パケット識別部によって送信されたパケット識別子に対応する受信パケットの補正データ量を前記第一帯域調整部に送信し、
前記第一帯域調整部は、前記パケット情報管理部によって送信された前記補正データ量を用いて、前記出力可能な帯域量を補正するとともに、前段のキュー制御部に前記補正データ量の転送を行って、
前記第二帯域調整部は、次段のキュー制御部から転送された前記補正データ量を受信した場合に、前記補正データ量を用いて、前記出力可能な帯域量を補正し、前段のキュー制御部に前記補正データ量を転送することを特徴とする付記１に記載のパケット中継装置。
【００７８】
（付記３）前段のキューから次段のキューにパケット情報を送信するデキューを制御するシェイパーを多段構成で備えたパケット中継装置であって、
前記パケット情報管理部は、前記デキュー対象となるパケット情報を受信した場合には、当該パケット情報に対応する受信パケットが廃棄されたか否かを示す廃棄情報と、前記受信パケットのデータ量とを返信し、
前記第一帯域調整部は、前記パケット情報管理部によって返信された前記廃棄情報から前記受信パケットが廃棄されたと判断した場合には、当該デキュー対象となるパケット情報を廃棄し、トークンを維持するとともに、前段のシェイパーに前記廃棄情報およびデータ量を転送し、
前記第二帯域調整部は、次段のシェイパーから転送された前記廃棄情報およびデータ量を受信した場合に、前記トークンに前記データ量を加算し、前段のシェイパーに前記廃棄情報およびデータ量を転送することを特徴とする付記１に記載のパケット中継装置。
【００７９】
（付記４）パケット情報管理部前段のキューから次段のキューにパケット情報を送信するデキューがＤＲＲを介して行われるパケット中継装置であって、
前記パケット情報管理部は、前記デキュー対象となるパケット情報を受信した場合には、当該パケット情報に対応する受信パケットが廃棄されたか否かを示す廃棄情報と、前記受信パケットのデータ量とを返信し、
前記第一帯域調整部は、前記パケット情報管理部によって返信された前記廃棄情報から前記受信パケットが廃棄されたと判断した場合には、当該デキュー対象となるパケット情報を廃棄し、カウンタを維持するとともに、前段のＤＲＲに前記廃棄情報およびデータ量を転送し、
前記第二帯域調整部は、次段のＤＲＲから転送された前記廃棄情報およびデータ量を受信した場合に、前記カウンタに前記データ量を加算し、前段のＤＲＲに前記廃棄情報およびデータ量を転送することを特徴とする付記１に記載のパケット中継装置。
【００８０】
（付記５）前段のキュー制御部から次段のキュー制御部にパケット情報を送信するデキューが行われる際に、当該デキュー対象となるパケット情報を受信した場合には、当該パケット情報に対応する受信パケットが廃棄されたか否かを示す廃棄情報と、前記受信パケットのデータ量とを返信するパケット情報管理ステップと、
前記パケット情報管理ステップによって返信された前記廃棄情報から前記受信パケットが廃棄されたと判断した場合には、当該デキュー対象となるパケット情報を廃棄し、出力可能な帯域量を維持するとともに、前段のキュー制御部に前記廃棄情報およびデータ量を転送する第一帯域調整ステップと、
次段のキュー制御部から転送された前記廃棄情報およびデータ量を受信した場合に、前記出力可能な帯域量に前記データ量を加算し、前段のキュー制御部に前記廃棄情報およびデータ量を転送する第二帯域調整ステップと、
を含んだことを特徴とするパケット中継方法。
【００８１】
（付記６）前段のキュー制御部から次段のキュー制御部にパケット情報を送信するデキューが行われる際に、当該デキュー対象となるパケット情報を受信した場合には、当該パケット情報に対応する受信パケットが廃棄されたか否かを示す廃棄情報と、前記受信パケットのデータ量とを返信するパケット情報管理手順と、
前記パケット情報管理手順によって返信された前記廃棄情報から前記受信パケットが廃棄されたと判断した場合には、当該デキュー対象となるパケット情報を廃棄し、出力可能な帯域量を維持するとともに、前段のキュー制御部に前記廃棄情報およびデータ量を転送する第一帯域調整手順と、
次段のキュー制御部から転送された前記廃棄情報およびデータ量を受信した場合に、前記出力可能な帯域量に前記データ量を加算し、前段のキュー制御部に前記廃棄情報およびデータ量を転送する第二帯域調整手順と、
をコンピュータに実行させることを特徴とするパケット中継プログラム。
【図面の簡単な説明】
【００８２】
【図１】実施例１に係るパケット中継装置の構成を示すブロック図である。
【図２】２つのＳｈａｐｅｒの出力帯域を説明するための図である。
【図３】Ｔｏｋｅｎバケット方式による出力帯域を説明するための図である。
【図４】実施例１に係るパケット中継装置の処理手順を説明するためのフローチャートである。
【図５】実施例２に係るパケット中継装置の構成を示すブロック図である。
【図６】実施例３に係るパケット中継装置の構成を示すブロック図である。
【図７】ＤＲＲ回路の取り戻し処理を説明するための図である。
【図８】パケット中継プログラムを実行するコンピュータを示す図である。
【図９】従来技術を説明するための図である。
【符号の説明】
【００８３】
１０、１０ａ、１０ｂ  パケット中継装置
１１  パケット情報管理部
１１ａ  パケット情報格納部
１１ｂ  パケット滞留時間監視部
１２  共有メモリ
１３  スケジューラ部
１３ａ  キュー振り分け部
１３ｂ  帯域調整部
１３ｃ  出力調整部
１４  キュー
１５  Ｓｈａｐｅｒ
【図１】
0004465394.tif 000002
【図２】
0004465394.tif 000003
【図３】
0004465394.tif 000004
【図４】
0004465394.tif 000005
【図５】
0004465394.tif 000006
【図６】
0004465394.tif 000007
【図７】
0004465394.tif 000008
【図８】
0004465394.tif 000009
【図９】
0004465394.tif 000010