(57)【特許請求の範囲】
【請求項１】
転送対象のパケットを一時的に格納するためのパケットバッファと、
所定の単位期間毎の時刻を計測するタイマと、
前記パケットバッファを構成する複数のアドレス群の各々に対応した複数の第１キューであって、各第１キューは、対応するアドレス群内のアドレスに対するパケットの書き込み順序を管理する、複数の第１キューと、
パケットの特性に応じて設けられる複数の第２キューであって、各第２キューは、前記パケットバッファのアドレスの内、書き込み済みのアドレスからのパケットの読み出し順序を管理する、複数の第２キューと、
書き込み対象のアドレス群を前記単位期間毎に切り替えることで各アドレス群と書き込み期間とを対応付け、書き込み対象のアドレス群に対し、そのアドレス群に対応する第１キューが示すアドレス順序に従ってパケットの書き込みを行い、書き込まれたアドレスを当該パケットの特性に対応する第２キューに加える第１制御部と、
第２キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスが属するアドレス群から特定される第１書き込み期間と、タイマが示す現在時刻とに基づいて算出し、前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第１書き込み期間内に書き込まれたすべてのアドレスを前記第２キューから除去する第２制御部と、
を備えたパケット転送装置。
【請求項２】
前記パケットバッファの各アドレスに対応したポインタアドレスを有するポインタを備え、
前記第１キューは、対応するアドレス群の中でパケットを書き込み可能なアドレスに対応するポインタによるリンクリストで構成され、
前記第１制御部は、パケットの書き込み時において、書き込み期間に応じた第１キューのリンクリスト上のポインタに対応する前記パケットバッファのアドレスにパケットを書き込むとともに、そのポインタを第１キューのリンクリストから外し、かつ、そのポインタによって前記第２キューをポインタによるリンクリストとして形成し、
前記第２制御部は、第２キューのスタートポインタに基づきパケットを破棄することを決定したときには、当該スタートポインタと同一の書き込み期間内に前記第２キューに連結されたすべてのポインタを当該第２キューから外し、前記第１キューへ連結する、
請求項１に記載のパケット転送装置。
【請求項３】
ある期間内に前記パケットバッファに書き込まれたパケットの数をカウントする第１カウンタと、
当該期間内に前記パケットバッファに書き込まれたパケットのうち、前記パケットバッファから読み出されたパケットの数をカウントする第２カウンタと、
をさらに備え、
前記第１カウンタのカウント値から前記第２カウンタのカウント値を減算することで、当該期間における破棄パケット数を算出する、
請求項１または２に記載のパケット転送装置。
【請求項４】
パケットの特性に基づいて、前記複数の第２キューの各々に対する優先度が予め設定されており、
ある期間におけるパケットの破棄の決定が２以上の第２キューに基づいて行われたときには、その期間の当該２以上の第２キューに対する処理は、前記優先度の順に従って行われる、
請求項１または２に記載のパケット転送装置。
【請求項５】
前記第１制御部および前記第２制御部の前記複数の第２キューに対する処理は、単位期間内において時分割で行われる、
請求項１または２に記載のパケット転送装置。
【請求項６】
転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマとを備えたパケット転送装置、に対するパケット破棄方法であって、
前記パケットバッファを構成する複数のアドレス群の各々に対応した複数の第１キューであって、各第１キューは、対応するアドレス群内のアドレスに対するパケットの書き込み順序を管理する、複数の第１キューを用意するステップと、
パケットの特性に応じた複数の第２キューを用意するステップと、
書き込み対象のアドレス群を前記単位期間毎に切り替え、書き込み対象のアドレス群に対し、そのアドレス群に対応する第１キューが示すアドレス順序に従ってパケットの書き込みを行うステップと、
パケットが書き込まれたアドレスを、そのパケットの特性に対応する第２キューに加えるステップと、
前記第２キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスが属するアドレス群から特定される第１書き込み期間と、タイマが示す現在時刻とに基づいて算出するステップと、
前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第１書き込み期間内に書き込まれたすべてのアドレスを前記第２キューから除去するステップと、
を備えたパケット破棄方法。
【請求項７】
転送対象のパケットを一時的に格納するためのパケットバッファと、
所定の単位期間毎の時刻を計測するタイマと、
前記パケットバッファのアドレスに対するパケットの書き込み順序を管理する第３キューと、
パケットの特性に応じて設けられる複数の第４キューであって、各第４キューは、前記パケットバッファのアドレスの内、書き込み済みのアドレスからのパケットの読み出し順序を、キュー内の各アドレスに対する書き込み期間とともに管理する、複数の第４キューと、
前記第３キューが示すアドレス順序に従ってパケットの書き込みを行い、書き込まれたアドレスを書き込み期間とともに当該パケットの特性に対応する第４キューに加える第３制御部と、
第４キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスに対する第１書き込み期間と、タイマが示す現在時刻とに基づいて算出し、前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第１書き込み期間内に書き込まれたすべてのアドレスを前記第４キューから除去する第４制御部と、
を備えたパケット転送装置。
【請求項８】
転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマとを備えたパケット転送装置、に対するパケット破棄方法であって、
前記パケットバッファのアドレスに対するパケットの書き込み順序を管理する第３キューを用意するステップと、
パケットの特性に応じた複数の第４キューを用意するステップと、
前記第３キューが示すアドレス順序に従ってパケットの書き込みを行うステップと、
パケットが書き込まれたアドレスを書き込み期間とともに、そのパケットの特性に対応する第４キューに加えるステップと、
第４キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスに対する第１書き込み期間と、タイマが示す現在時刻とに基づいて算出するステップと、
前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第１書き込み期間内に書き込まれたすべてのアドレスを前記第４キューから除去するステップと、
を備えたパケット破棄方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＩＰ（Internet Protocol）ネットワーク上に配置されるスイッチ等、パケットの転送処理を行うパケット転送装置に係り、より詳細には、パケット転送装置内のパケットバッファに所定期間を超えて滞留するパケットを破棄するための技術に関する。
【背景技術】
【０００２】
ＩＰネットワークにおいて、パケットを中継するルータやスイッチ等のパケット転送装置には、当該装置のデータ転送容量（帯域）を上回るトラフィックが入力することが予定されている。そのため、パケット転送装置にはパケットを一時的に格納するパケットバッファが設けられ、装置の転送可能容量を上回るトラフィックをパケットバッファに滞留させる制御が一般に行われる。
【０００３】
一方、音声、動画等のリアルタイム性の高いデータを含むパケットがパケットバッファ内に長期間滞留して転送された場合には、そのパケットは、パケット転送装置の後段にある受信端末側で破棄される場合がある。これは、リアルタイム性の高いデータを処理する受信端末では、遅延して到着したパケットに含まれるデータを再生する必要がないと上位のレイヤーにおいて判断される場合があるからである。このことは、パケット転送装置によって遅延を生じたパケットを送信したことにより、パケット転送装置から受信端末に至るネットワークの帯域が無駄に使用されたことを意味し、特に当該ネットワークが輻輳している場合には深刻な問題となる。
【０００４】
かかる問題を回避するため、パケット転送装置内でのパケットの滞留期間を測定し、滞留期間が所定の閾値を超えた場合に当該パケットを廃棄する制御が行われる。従来のパケット破棄制御方法として、特許文献１に開示されたパケット交換機（パケット転送装置）では、パケットの到着（入力）時刻と送信（出力）時刻との差分（すなわち、パケットの滞留期間）をパケットの制御フィールドに記述しておき、制御フィールドに基づいて、パケット交換機の後段の装置（特許文献１のＰＡＤ）が、所定期間遅延したパケットを廃棄するようにしている。
【特許文献１】特開平５−２０７０６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示されたパケット転送装置では、パケットバッファからパケットを読み出した後に、パケットの廃棄処理を行っている。つまり、このパケット転送装置では、後で破棄されるパケットが無駄にパケットバッファから読み出されるため、破棄されない有効パケットの読み出しが制限される。すなわち、この従来のパケット転送装置では、読み出しのためのデータ転送容量（帯域）を有効に利用できていない。
【０００６】
そこで本発明は、所定期間パケットバッファ内に滞留するパケットを、パケットバッファから読み出しを行うことなく実質的に破棄することを可能とするパケット転送装置およびパケット破棄方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するためのパケット転送装置は、転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマと、パケットバッファを構成する複数のアドレス群の各々に対応する複数の第１キューと、パケットの特性に応じて設けられる複数の第２キューと、パケットの書き込みを実行するための第１制御部と、パケットの破棄を実行するための第２制御部とを備える。
【０００８】
複数の第１キューの各々は、対応するアドレス群内のアドレスに対するパケットの書き込み順序を管理するキューである。複数の第２キューの各々は、パケットバッファのアドレスの内、書き込み済みのアドレスからのパケットの読み出し順序を管理するキューである。第１制御部は、書き込み対象のアドレス群を単位期間毎に切り替えることで各アドレス群と書き込み期間とを対応付け、書き込み対象のアドレス群に対し、そのアドレス群に対応する第１キューが示すアドレス順序に従ってパケットの書き込みを行い、書き込まれたアドレスを当該パケットの特性に対応する第２キューに加える。第２制御部は、第２キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、その最初のアドレスが属するアドレス群から特定される第１書き込み期間と、タイマが示す現在時刻とに基づいて算出し、滞留期間に基づいてパケットを破棄することを決定したときには、第１書き込み期間内に書き込まれたすべてのアドレスを第２キューから除去する。
【０００９】
上記の課題を解決するためのパケット破棄方法は、転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマとを備えたパケット転送装置、に対する方法であって、パケットバッファを構成する複数のアドレス群の各々に対応した複数の第１キューであって、各第１キューは、対応するアドレス群内のアドレスに対するパケットの書き込み順序を管理する、複数の第１キューを用意するステップと、パケットの特性に応じた複数の第２キューを用意するステップと、書き込み対象のアドレス群を単位期間毎に切り替え、書き込み対象のアドレス群に対し、そのアドレス群に対応する第１キューが示すアドレス順序に従ってパケットの書き込みを行うステップと、パケットが書き込まれたアドレスを、そのパケットの特性に対応する第２キューに加えるステップと、第２キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、最初のアドレスが属するアドレス群から特定される第１書き込み期間と、タイマが示す現在時刻とに基づいて算出するステップと、滞留期間に基づいてパケットを破棄することを決定したときには、第１書き込み期間内に書き込まれたすべてのアドレスを前記第２キューから除去するステップと、を備える。
【００１０】
上述したパケット転送装置およびパケット破棄方法によれば、第２キューが示す最初のアドレスのキュー内の滞留期間に基づいてパケットを破棄することを決定した場合に、その最初のアドレスと同一の書き込み期間（第１書き込み期間）内に書き込まれたすべてのアドレスが第２キューから除去される。そして、第２キューから除去されたアドレスは上書き可能な状態となる。
【００１１】
上記の課題を解決するための他のパケット転送装置は、転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマと、第３キューと、パケットの特性に応じて設けられる複数の第４キューと、パケットの書き込みを実行するための第３制御部と、パケットの破棄を実行するための第４制御部とを備える。
【００１２】
第３キューは、パケットバッファのアドレスに対するパケットの書き込み順序を管理するキューである。複数の第４キューの各々は、前記パケットバッファのアドレスの内、書き込み済みのアドレスからのパケットの読み出し順序を、キュー内の各アドレスに対する書き込み期間とともに管理するキューである。第３制御部は、前記第３キューが示すアドレス順序に従ってパケットの書き込みを行い、書き込まれたアドレスを書き込み時刻とともに当該パケットの特性に対応する第４キューに加える。第４制御部は、第４キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、その最初のアドレスに対する第１書き込み期間と、タイマが示す現在時刻とに基づいて算出し、滞留期間に基づいてパケットを破棄することを決定したときには、第１書き込み期間内に書き込まれたすべてのアドレスを第４キューから除去する。
【００１３】
上記の課題を解決するための他のパケット破棄方法は、転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマとを備えたパケット転送装置、に対する方法であって、パケットバッファのアドレスに対するパケットの書き込み順序を管理する第３キューを用意するステップと、パケットの特性に応じた複数の第４キューを用意するステップと、第３キューが示すアドレス順序に従ってパケットの書き込みを行うステップと、パケットが書き込まれたアドレスを書き込み期間とともに、そのパケットの特性に対応する第４キューに加えるステップと、第４キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、その最初のアドレスに対する第１書き込み期間と、タイマが示す現在時刻とに基づいて算出するステップと、滞留期間に基づいてパケットを破棄することを決定したときには、第１書き込み期間内に書き込まれたすべてのアドレスを前記第４キューから除去するステップと、を備える。
【００１４】
上述したパケット転送装置およびパケット破棄方法によれば、第４キューが示す最初のアドレスのキュー内の滞留期間に基づいてパケットを破棄することを決定した場合に、その最初のアドレスと同一の書き込み期間（第１書き込み期間）内に書き込まれたすべてのアドレスが第４キューから除去される。そして、第４キューから除去されたアドレスは上書き可能な状態となる。
【発明の効果】
【００１５】
このパケット転送装置およびパケット破棄方法によれば、所定期間パケットバッファ内に滞留するパケットを、パケットバッファから読み出しを行うことなく実質的に破棄することが可能となる。
【発明を実施するための最良の形態】
【００１６】
＜第１実施形態＞
以下、本発明のパケット転送装置の一実施形態を図面に関連付けて説明する。実施形態に係るパケット転送装置１は、例えばルータやスイッチ等のように、ネットワークの伝送路上に設けられ、ネットワーク上のあるノードから他のノードへパケットを転送するための装置である。
【００１７】
［パケット転送装置１の構成］
先ず、本実施形態に係るパケット転送装置１の構成について、図１に関連付けて説明する。図１は、実施形態に係るパケット転送装置１の概略構成を示すブロック図である。図１に示すように、このパケット転送装置１は、多重化部２、出力ポート設定部３、出力ポートテーブル４、パケットバッファ管理部５、パケットバッファ６およびスイッチング部７を備える。
なお、図１では入出力ポートを特定せずに、パケットのデータフロー（全体として図１の紙面上左から右の方向に太線で示す。）のみを表示してある。また、図１では、パケットがパケット転送装置１に設けられる出力ポートから出力される場合について示しているが、別の出力先、例えば、パケット転送装置１に装着される通信用カード、または、当該カード内に設定されている出力ポートである場合も同様の構成をとることが可能である。
【００１８】
このパケット転送装置１において、多重化部２は、ネットワークから複数のポート（図示せず）を介して入力されるパケットを多重化する。出力ポート設定部３は、出力ポートテーブル４を参照して、各パケットに含まれる宛先アドレスに対応する出力ポートを特定し、その特定した出力ポートの情報を各パケットに記録する。
【００１９】
パケットバッファ管理部５は、出力ポート設定部３から送出されるパケットを取り込み、パケットをパケットバッファ６に書き込む（格納する）ことで、パケットバッファ６内に滞留させる。
【００２０】
また、パケットバッファ管理部５は、定期的な、または、図示しない制御部からの読み出し要求に応じて、パケットバッファ６内のパケットを読み出し、スイッチング部７へ送出する。このとき、パケットバッファ管理部５は、パケットバッファ６内に一定期間滞留したパケットを破棄する。パケットバッファ６に対するパケットの書き込み、読み出しおよび破棄の処理については、後に詳細に説明する。
【００２１】
スイッチング部７では、パケットバッファ管理部５から送出されるパケットに記録された出力ポートの情報に基づいてスイッチングを行い、当該出力ポートからパケットを出力する。
【００２２】
［パケットバッファ管理部５］
以下、このパケット転送装置１のパケットバッファ管理部５について詳細に説明する。
パケットバッファ管理部５では、パケットバッファ６の書き込み可能なアドレスに対するパケットの書き込み順序を管理している。すなわち、パケットバッファ管理部５は、パケットバッファ６の空きアドレスと、到着したパケットを書き込むときの空きアドレスの順序とを管理している。また、パケットバッファ管理部５では、書き込み済みのアドレスからのパケットの読み出し順序を管理している。すなわち、パケットバッファ管理部５は、パケットバッファ６の書き込み済みアドレスと、パケットを読み出すときの書き込み済みアドレスの順序とを管理している。
上述したパケットの書き込み順序およびパケットの読み出し順序は、この実施形態では、ポインタによるキュー（後述する空きポインタキューおよびパケットキュー）によって管理される。
【００２３】
本実施形態に係るパケット転送装置１のパケットバッファ管理部５の構成について、図２を参照して説明する。図２は、パケットバッファ管理部５の構成をパケットバッファ６と関連付けて示すブロック図である。
図２に示すように、パケットバッファ管理部５は、書き込み制御部１０（第１制御部）と、読み出し制御部２０（第２制御部）と、ポインタ格納部３０と、遅延閾値テーブル２２（ＤＴＴ）と、タイマ４０と、書き込み管理テーブル５０（ＷＭＴ）とを備える。なお、図２では、パケットバッファ管理部５におけるパケットのデータフロー（入力パケットＰＫ＿ＩＮから出力パケットＰＫ＿ＯＵＴに至るフロー）を太線で示してある。また、この実施形態では、一例として、パケットに許容される最大遅延期間、すなわち、パケットバッファ６内に滞留可能な最長期間が１２８ｍｓである場合について説明する。
【００２４】
［タイマ４０］
図２において、タイマ４０は、所定の単位期間毎の時刻を計測する。
タイマ４０によって計測される時刻は、パケットの書き込み処理および読み出し処理のタイミングの基準となるほか、パケットのパケットバッファ６内の滞留期間の算出にも用いられる。タイマ４０の計測のための所定の単位期間（以下では適宜、「単位期間」と表記する。）は、遅延を許容できる期間が最も短いパケット、例えば音声や映像のリアルタイム再生のためのパケットの破棄判断を適切に行うことができる程度に短く設定される。この実施形態の説明では、一例として、タイマ４０の計測における単位期間を１ｍｓとする。
【００２５】
［ポインタ格納部３０（空きポインタキューおよびパケットキュー）］
ポインタ格納部３０には、パケットバッファ６の各アドレスに対応したポインタアドレスを有するポインタによるキュー（ポインタによるリンクリストで形成される待ち行列）として、空きポインタキューとパケットキューが格納されている。ポインタ格納部３０内の各キューは、パケットバッファ６とは独立したメモリで構成される。
ここで、空きポインタキューは、パケットバッファ６の書き込み可能なアドレスに対するパケットの書き込み順序を管理するキューである。パケットキューは、書き込み済みのアドレスからのパケットの読み出し順序を管理するキューである。
【００２６】
先ず、空きポインタキューについて説明する。
図３は、空きポインタキューの構成をパケットバッファ６と関連付けて説明するための図であって、（ａ）は空きポインタキュー、（ｂ）はパケットバッファ６の構成を示す。
【００２７】
ポインタ格納部３０には、パケットバッファ６の各アドレスに対応したポインタアドレスを備えたポインタが用意される。すなわち、図３に示すように、パケットバッファ６のアドレスＡ＿１，Ａ＿２，Ａ＿３，Ａ＿４，…，Ａ＿ｍ−３，Ａ＿ｍ−２，Ａ＿ｍ−１，Ａ＿ｍにそれぞれ対応したポインタアドレスに、ポインタＰ＿１,Ｐ＿２，Ｐ＿３，Ｐ＿４，…，Ｐ＿ｍ−３，Ｐ＿ｍ−２，Ｐ＿ｍ−１，Ｐ＿ｍが設けられている。
以下の説明では、パケットバッファ６の各アドレスは、「ポインタＰ＿ｘ（ｘ：１〜ｍ）に対応するアドレス」として適宜参照される。
【００２８】
また、この実施形態では、図３に示すように、ポインタアドレス順に複数のポインタ群からなる１２８個の空きポインタキューＱ１，Ｑ２，…Ｑ１２８（複数の第１キュー）が設けられる。これにより、各空きポインタキューが、パケットバッファ６の領域を仮想的に区画する複数のアドレス群の各々に対応して設けられることになる。
例えばポインタＰ＿１,Ｐ＿２，Ｐ＿３，Ｐ＿４を含む空きポインタキューＱ１は、パケットバッファ６のアドレスＡ＿１，Ａ＿２，Ａ＿３，Ａ＿４が属するアドレス群Ｇ１に対応して設けられ、ポインタＰ＿ｍ−３，Ｐ＿ｍ−２，Ｐ＿ｍ−１，Ｐ＿ｍを含む空きポインタキューＱ１２８は、パケットバッファ６のアドレスＡ＿ｍ−３，Ａ＿ｍ−２，Ａ＿ｍ−１，Ａ＿ｍが属するアドレス群Ｇ１２８に対応して設けられる。
【００２９】
空きポインタキューＱ１〜Ｑ１２８の各々では、ポインタのリンクリストによってキューが形成される。すなわち、各空きポインタキューでは、ポインタが次ポインタのポインタアドレスを指すことによって、全体として、ポインタのリンクリストが形成されている。さらに、各空きポインタキューに含まれるデータとして、各空きポインタキューのリンクリストの開始および終了をそれぞれ管理する、スタートポインタ（以下、適宜「ＳＰ」と略記する。）およびエンドポインタ（以下、適宜「ＥＰ」と略記する。）が設けられる。
【００３０】
例えば図３の空きポインタキューＱ１では、ポインタＰ＿１がポインタＰ＿４を指し、ポインタＰ＿４がポインタＰ＿３を指すことで、全体としてＰ＿１（スタートポインタ）→Ｐ＿４→Ｐ＿３（エンドポインタ）のリンクリストが形成された一例を示している。この場合、ポインタＰ＿１は４番目のポインタアドレスを指し、ポインタＰ＿４は３番目のポインタアドレスを指していることを意味する。この空きポインタキューＱ１の一例は、パケットバッファ６のアドレスＡ＿１，Ａ＿３，Ａ＿４が空きアドレスであって、パケットを書き込むときの空きアドレスの順序がＡ＿１→Ａ＿４→Ａ＿３であることを示している。
【００３１】
次に、パケットキューについて説明する。
後述するように、パケットバッファ管理部５では、パケットバッファ６に対するパケットの書き込みがある度に、空きポインタキューが示す順序に従って空きポインタキューのリンクリストからポインタが外される。そして、この外されたポインタが順にリンクリストを形成することによって、パケットキューが形成される。すなわち、パケットキューでは、書き込まれたパケットのアドレスに対応するポインタアドレスを有するポインタが順序付けられる。このパケットキューによって、書き込み済みのアドレスからのパケットの読み出し順序が管理される。
【００３２】
図４は、パケットキューの構成をパケットバッファ６と関連付けて説明するための図であって、（ａ）はパケットキュー、（ｂ）はパケットバッファ６の構成を示す。図４に示すように、ポインタ格納部３０は、複数のパケットキューＱａ，Ｑｂ，Ｑｃ，…（複数の第２キュー）を備える。複数のパケットキューは、それぞれ転送対象のパケットの特性に応じて設けられている。ここで、パケットの特性は、例えば、パケットに記述されるＶＬＡＮ制御情報に基づくクラスと関連付けられる。
【００３３】
パケットキューＱａ，Ｑｂ，Ｑｃ，…の各々では、ポインタのリンクリストによってキューが形成される。すなわち、各パケットキューでは、ポインタが次ポインタのポインタアドレスを指すことによって、全体として、ポインタのリンクリストが形成されている。さらに、各パケットキューに含まれるデータとして、各パケットキューのリンクリストの開始および終了をそれぞれ管理する、スタートポインタ（ＳＰ）およびエンドポインタ（ＥＰ）が設けられる。
【００３４】
例えば図４のパケットキューＱａでは、ポインタＰ＿２がポインタＰ＿４を指し、ポインタＰ＿４がポインタＰ＿１７を指すことで、全体としてＰ＿２（スタートポインタ）→Ｐ＿４→Ｐ＿１７（エンドポインタ）のリンクリストが形成された一例を示している。この場合、ポインタＰ＿２は４番目のポインタアドレスを指し、ポインタＰ＿４は１７番目のポインタアドレスを指していることを意味する。このパケットキューＱ１の一例は、パケットバッファ６の書き込み済みアドレスがアドレスＡ＿２，Ａ＿４，Ａ＿１７であって、パケットを読み出すときの書き込み済みアドレスの順序がＡ＿２→Ａ＿４→Ａ＿１７であることを示している。
【００３５】
パケットバッファ管理部５は、パケットバッファに対してパケットが書き込まれる度に、空きポインタキューからスタートポインタを借り受けることで、パケットキューのリンクリストを更新する。この実施形態の説明において、ポインタを「借り受ける」ことは、空きポインタキューのリンクリストからポインタを外し（除去し）、そのポインタをパケットキューのリンクリストに連結する（加える）ことを意味する。
【００３６】
また、パケットバッファ管理部５は、パケットバッファからパケットが読み出される度に、空きポインタキューに対して、読み出されたパケットのアドレスに対応するポインタを返却することで、パケットキューのリンクリストを更新する。この実施形態の説明において、ポインタを「返却する」ことは、いったん空きポインタキューから借り受けたポインタをパケットキューのリンクリストから外し（除去し）、そのポインタを空きポインタキューのリンクリストに再び連結する（加える）ことを意味する。
【００３７】
なお、この実施形態では、理解の容易のために、パケットバッファ６の各アドレスに単一のパケットが書き込まれ、または、読み出される場合について説明するが、単一のパケットがパケットバッファ６の複数のアドレスに書き込まれる場合もあり得る。その場合には、その複数のアドレスに対応する複数のポインタを、その複数のポインタ間のリンクを保持したまま借り受ける、または、返却するようにすればよい。
【００３８】
また、パケットバッファ６の各アドレスに単一のパケットが書き込まれる場合、各空きポインタキューに含まれるポインタの数（すなわち、パケットバッファにおいてアドレス群に含まれるアドレスの数）は、タイマ４０の計測における単位期間（この実施形態では、１ｍｓ）に書き込み可能なパケットの数と同等か、それ以上となるように設定される。
【００３９】
［書き込み制御部１０］
再び図２を参照して、書き込み制御部１０（第１制御部）について説明する。
書き込み制御部１０は、出力ポート設定部３から取り込むパケットＰＫ＿ＩＮの特性を判定して、そのパケットを、ポインタ格納部３０に含まれる複数のパケットキューの内、いずれかのパケットキューと対応付ける。
【００４０】
書き込み制御部１０は、タイマ４０から単位期間（この実施形態では、１ｍｓ）毎の時刻情報ＴＭを受信する。書き込み制御部１０では、この単位期間を書き込み期間として書き込み制御を行う。具体的には、書き込み制御部１０は、タイマ４０からの時刻情報ＴＭが変化しない場合、すなわち、ある書き込み期間内においては、同一のアドレス群内のアドレスに対してパケットの書き込みを行い、書き込み期間が変化する毎に、パケットを書き込むパケットバッファ６のアドレス群を順次切り替える。図３を参照すると、ある書き込み期間ではアドレス群Ｇ１に対してパケットが書き込まれ、その次の書き込み期間ではアドレス群Ｇ２に対してパケットが書き込まれることになる。
【００４１】
このように、書き込み制御部１０では、パケットの書き込み対象となるパケットバッファ６のアドレス群と、そのパケットの書き込み期間とを互いに対応付けるようにして、パケットの書き込みを行う。この実施形態では、パケットバッファ６のアドレス群と書き込み期間との対応付けが、各アドレス群に対応する空きポインタキューを用いて行われる。
【００４２】
具体的には、書き込み制御部１０は、ある書き込み期間におけるパケットの書き込みを、その書き込み期間に対応した空きポインタキューのリンクリストを参照して行う。すなわち、ある書き込み期間における書き込みは、対応する空きポインタキューからスタートポインタを借り受けるとともに、そのポインタに対応したアドレスを指定してパケットバッファ６にアクセスすることにより行われる。借り受けたポインタは、書き込み対象のパケットの特性に対応したパケットキューのリンクリストに連結される。従って、パケットバッファ管理部５では、空きポインタキューから借り受けたポインタのポインタアドレスを参照することで、そのポインタに対応するアドレスに書き込まれたパケットの書き込み期間を後で認識することが可能となっている。
【００４３】
書き込み制御部１０は、同一の書き込み期間内においてパケットバッファ６に書き込んだパケットの数をカウントするためのカウンタ１１（第１カウンタ）を備えている。このカウンタ１１は、タイマ４０から時刻情報ＴＭを受信する毎にリセットされる。
【００４４】
書き込み制御部１０では、書き込み期間毎に書き込み管理テーブル５０（ＷＭＴ）にアクセスし、各書き込み期間におけるパケット書き込み情報を記録する。このパケット書き込み情報について、図５を参照して説明する。図５は、書き込み管理テーブル５０に記録されるデータの内容を示す図である。
【００４５】
図５に示すように、各書き込み期間（ＷＰ１，ＷＰ２，…，ＷＰ１２８）におけるパケット書き込み情報は、各パケットキュー（Ｑａ，Ｑｂ，Ｑｃ，…）に対して記録される。そして、パケット書き込み情報は、対象となる書き込み期間（本期間）の先頭ポインタと、その１つ前の書き込み期間（前期間）の最終ポインタと、前期間で書き込まれたパケット数とを含む。
【００４６】
ここで、本期間の先頭ポインタ（以下、適宜「ＦＰ」と略記する。）とは、対象となる書き込み期間における最初のパケットの書き込み時に、空きポインタキューから借り受けてパケットキューに加えたポインタである。前期間の最終ポインタ（以下、適宜「ＬＰ」と略記する。）とは、１つ前の書き込み期間における最後のパケットの書き込み時に、空きポインタキューから借り受けてパケットキューに加えたポインタである。この最終ポインタ（ＬＰ）は、書き込み制御部１０に内蔵されるテンポラリレジスタに一時的に格納され、タイマ４０から時刻情報ＴＭを受信したとき（すなわち、次の書き込み期間に移行したとき）、テンポラリレジスタから取り出されて、書き込み管理テーブル５０に記録される。
【００４７】
例えば、書き込み期間ＷＰ１においてパケットキューＱａに対応するパケットがパケットバッファ６のアドレスＡ＿２，Ａ＿４に書き込まれ、書き込み期間ＷＰ２においてパケットキューＱａに対応するパケットがアドレスＡ＿１７から書き込みが開始された場合を想定する。この場合には、図５に例示するように、書き込み期間ＷＰ２のパケットキューＱａにおける先頭ポインタがＰ＿１７、最終ポインタがＰ＿４、書き込みパケット数が２として、書き込み管理テーブル５０に記録される。
【００４８】
［読み出し制御部２０］
次に、再び図２を参照して、読み出し制御部２０（第２制御部）について説明する。
読み出し制御部２０は、タイマ４０の単位期間（この実施形態では、１ｍｓ）毎の時刻情報ＴＭを受信する。読み出し制御部２０では、タイマ４０の単位期間を読み出し期間として管理する。読み出し制御部２０での読み出し処理は、パケットキュー毎の帯域などを管理するスケジューラ２５からパケットキューの読み出し要求があった場合、または、タイマからの時刻情報ＴＭの変化時（読み出し期間の変化時）に行われる。
この読み出し処理では、パケットバッファ６内に一定期間滞留したパケットの破棄も行われる。読み出し期間の変化時の読み出し処理は、パケットバッファ６内に一定期間滞留したパケットの破棄を目的に行われ、実際のパケットの読み出しおよび送出を行わない。
【００４９】
すでに説明したように、パケットキューを構成する各ポインタのポインタアドレスの値によって、各ポインタに対応するアドレスに書き込まれたパケットの書き込み期間を認識することができるため、読み出し制御部２０は、パケットの破棄判断を次のように行う。すなわち、読み出し制御部２０は先ず、各パケットキューのスタートポインタに対応する書き込み期間と、タイマ４０から受信する現在の時刻情報（現在時刻）との差分から、当該ポインタに対応するアドレスのパケットの滞留期間を算出する。次に読み出し制御部２０は、算出した滞留期間と、遅延閾値テーブル２２（ＤＴＴ）に格納されている遅延閾値とを比較し、滞留期間が遅延閾値を超えている場合に、そのパケットを破棄すべきと判断する。
【００５０】
図６は、遅延閾値テーブル２２に格納されるデータの内容を示す図である。図６に示すように、遅延閾値テーブル２２は、パケットキュー（Ｑａ，Ｑｂ，Ｑｃ，…）毎の遅延閾値［ｍｓ］を示すデータを含む。パケットキューに対応するパケットの特性に基づいて、Ｑａ，Ｑｂ，Ｑｃの順に優先度が高い場合には、各パケットキューに対応する遅延閾値は、Ｄ１＜Ｄ２＜Ｄ３を満足するように設定される。例えばリアルタイム性の高い情報を含むパケットは、その特性に基づいて優先度が高いと考えられるため、小さな遅延閾値が予め設定される。
【００５１】
読み出し制御部２０は、パケットを破棄すべきでないと判断した場合（すなわち、実際にパケットを読み出すべきであると判断した場合）には、パケットキューのスタートポインタに対応するパケットバッファ６のアドレスにアクセスしてパケットを読み出すとともに、そのポインタを空きポインタキューへ返却する。
【００５２】
逆に、読み出し制御部２０は、パケットを破棄すべきであると判断した場合には、パケットバッファ６にアクセスすることなく、パケットキューのスタートポインタと同一の書き込み期間内に借り受けたすべてのポインタを空きポインタキューへ返却する。このとき、読み出し制御部２０によって、書き込み管理テーブル５０が参照される。空きポインタキューへ返却されたポインタは、その後の書き込み期間において書き込み制御部１０によって借り受けられることが可能となるため、そのポインタに対応するアドレスには新たなパケットを上書きすることが可能となる。
【００５３】
読み出し制御部２０は、同一の書き込み期間内に書き込まれたパケットの内、パケットバッファ６から読み出されたパケットの数をカウントするためのカウンタ２１（第２カウンタ）を備えている。このカウンタ２１は、各書き込み期間に書き込まれた先頭のパケットのアドレスに対応するポインタが、パケットキューから読み出される度にリセットされる。
読み出し制御部２０は、読み出し期間毎に、書き込み管理テーブル５０に記録されている書き込みパケット数から、このカウンタ２１のカウント値（＝読み出しパケット数）を減算して、破棄したパケット数（破棄パケット数）を算出する。従って、このパケット転送装置１では、破棄すべきパケットをパケットバッファから読み出すことなく、破棄パケット数が得られる。
【００５４】
［パケットバッファ管理部の動作］
次に、本実施形態のパケット転送装置１におけるパケットバッファ管理部の動作について説明する。
【００５５】
［パケット書き込み処理］
先ず、パケット書き込み処理におけるパケットバッファ管理部５の動作について図２および図７〜９に関連付けて説明する。図７は、パケット書き込み処理におけるパケットバッファ管理部５の動作を示すフローチャートである。図８は、パケット書き込み前後のパケットキューおよび空きポインタキューの一例を示す図である。図９は、パケット書き込み前後の各キューのリンクリストの一例についてパケットバッファと関連付けて説明するための図である。
【００５６】
以下、図７のフローチャートについて、図２と関連付けながら説明する。
図７において、書き込み制御部１０が出力ポート設定部３からパケットＰＫ＿ＩＮを受信すると（ステップＳ１０１のＹＥＳ）、例えばそのパケットに記述されるＶＬＡＮ制御情報に基づくクラスによって、パケットの特性を判定する（ステップＳ１０２）。この特性判定により、受信したパケットが複数のパケットキューのいずれかと対応付けられる。そして、書き込み制御部１０は、前回のパケット書き込み時から書き込み期間が変化したか否かを判断する（ステップＳ１０３）。この判断は、タイマ４０からの時刻情報ＴＭが変化したか否かに基づく。書き込み期間が変化していない場合には（ステップＳ１０３のＮＯ）、書き込み制御部１０はカウンタ１１をカウントアップさせる（ステップＳ１０４）。
【００５７】
さらに、書き込み制御部１０はポインタ格納部３０を参照して、現時点の書き込み期間に対応した空きポインタキューのスタートポインタを借り受け、そのポインタに対応したパケットバッファ６のアドレスにパケットを書き込む。すなわち、書き込み制御部１０は先ず、空きポインタキューのスタートポインタに対応したパケットバッファ６のアドレスを指定してパケットバッファ６にアクセスし、ステップＳ１０１で受信したパケットを書き込む（ステップＳ１０５）。次に書き込み制御部１０は、借り受けたポインタを、ステップＳ１０２で対応付けられたパケットキューのリンクリストに連結する（ステップＳ１０６）。このとき、空きポインタキューにおいて、スタートポインタ（借り受けたポインタ）が指すポインタアドレスの次ポインタが新たなスタートポインタとして設定される。
【００５８】
最後に、書き込み制御部１０は、書き込み期間が変化した後の処理（後述するステップＳ１０９）のために、借り受けたポインタを内部のテンポラリレジスタに記録しておく（ステップＳ１０７）。同一の書き込み期間内に複数のパケットの書き込みが行われる場合には、上記のステップＳ１０１〜１０７が繰り返し行われることになるが、テンポラリレジスタに対しては逐次上書きで記録しておけばよい。
【００５９】
パケットを受信した後に書き込み期間が変化した場合には（ステップＳ１０３のＹＥＳ）、書き込み制御部１０は、書き込み管理テーブル５０（ＷＭＴ）にアクセスして、該当する書き込み期間（新たな書き込み期間）に対応するパケット書き込み情報を記録する（ステップＳ１０８〜Ｓ１１０）。
【００６０】
具体的には、ステップＳ１０８において、書き込み制御部１０はポインタ格納部３０を参照し、新たな書き込み期間に対応した空きポインタキューのスタートポインタを、その書き込み期間における先頭ポインタ（ＦＰ）として、書き込み管理テーブル５０（ＷＭＴ）に記録する。この先頭ポインタ（ＦＰ）は、ステップＳ１０２で対応付けられたパケットキューと対応付けられて記録される。そして、書き込み制御部１０は、テンポラリレジスタに記録されているポインタの値を、前期間（変化前の書き込み期間）の最終ポインタ（ＬＰ）として、書き込み管理テーブル５０（ＷＭＴ）に記録する。さらに、書き込み制御部１０は、カウンタ１１のカウント値を、前期間（変化前の書き込み期間）の書き込みパケット数（Ｗ＿ｎｕｍ）として、書き込み管理テーブル５０（ＷＭＴ）に記録する。
【００６１】
パケット書き込み情報の記録後、カウンタがリセットされ（ステップＳ１１１）、新たな書き込み期間としての処理が行われる（ステップＳ１０４以降）。
【００６２】
以上、パケット書き込み処理時のパケットバッファ管理部５の動作フローについて説明したが、さらに図８および図９に関連付けて、書き込み時の空きポインタキューおよびパケットキューのリンクリストの変化の例について具体的に説明する。
【００６３】
図８は、各キューとテンポラリレジスタのデータの一例について説明するための図であって、（ａ）１個のパケットを新たに書き込む前の状態と、（ｂ）書き込み後の状態とを示している。ここでは、パケットの書き込み前において、空きポインタキューのポインタによるリンクリストがＰ＿１８（ＳＰ）→Ｐ＿１９→Ｐ＿２０となっており、パケットキューのポインタによるリンクリストがＰ＿３をエンドポインタ（ＥＰ）として含む場合を想定する。この場合に、新たなパケットを書き込むときには、その時点の書き込み期間に対応する空きポインタキューのスタートポインタであるＰ＿１８を借り受ける。すなわち、図８（ｂ）に示すように、空きポインタキューのスタートポインタであるＰ＿１８をパケットキューのリンクリストに連結して、このＰ＿１８をパケットキューの新たなエンドポインタ（ＥＰ）とする。そして、空きポインタキューでは、書き込み前のスタートポインタＰ＿１８が指していたポインタアドレスのポインタＰ＿１９（次ポインタ）が新たなスタートポインタ（ＳＰ）となる。さらに、借り受けたポインタ（この場合、Ｐ＿１８）がテンポラリレジスタに記録される。この一連の処理の例は、図７のステップＳ１０５〜Ｓ１０７において行われる。
【００６４】
図９は、図８と同一の例において、各キューのリンクリストと、リンクリストに対応するパケットバッファのアドレスとの関係を、（ａ）１個のパケットを新たに書き込む前の状態と、（ｂ）書き込み後の状態とで示している。図９では、空きポインタキューのスタートポインタＰ＿１８を借り受ける場合の各キューのリンクリストに対する処理が、パケットバッファ６との関係で視覚的に理解しやすい形で記載されている。この例では、空きポインタキューから借り受けたポインタＰ＿１８に対応するパケットバッファのアドレスＡ＿１８に、パケットが書き込まれることになる。
【００６５】
［パケット読み出し処理］
次に、パケット読み出し処理におけるパケットバッファ管理部５の動作について図２および図１０〜１３に関連付けて説明する。以下で説明されるパケット読み出し処理は、（１）パケットを実際に読み出すときの処理と、（２）パケットを読み出さずに破棄するときの処理とを含む。なお、図１０および図１１は、パケット読み出し処理におけるパケットバッファ管理部５の動作を示すフローチャートである。図１２は、実際にパケットを読み出す場合において、パケット読み出し前後の各キューのリンクリストの一例についてパケットバッファと関連付けて説明するための図である。図１３は、パケットを破棄する場合において、パケットの破棄前後の各キューのリンクリストの一例についてパケットバッファと関連付けて説明するための図である。
【００６６】
（１）パケットを実際に読み出すときの処理
図１０のフローチャートについて、図２と関連付けながら説明する。
読み出し制御部２０での読み出し処理は、パケットキュー毎の帯域などを管理するスケジューラ２５からのパケットキューの読み出し要求をトリガとして実行される場合と、タイマ４０からの時刻情報ＴＭの変化時（読み出し期間の変化時）をトリガとして実行される場合がある。
【００６７】
図１０において、スケジューラ２５からのパケットキューの読み出し要求、または、タイマ４０からの時刻情報ＴＭの変化（読み出し期間の変化）に基づくトリガ入力が有る場合（ステップＳ２０１のＹＥＳ）、読み出し制御部２０は読み出し処理を実行する。この読み出し処理では、すべてのパケットキューに対してステップＳ２０２以降の処理が行われるが、以下では単一のパケットキューに対する処理のみについて説明する。
【００６８】
読み出し制御部２０は先ず、パケットバッファ６に最も長く滞留するパケットに対する破棄判断を行うため、パケットキューのスタートポインタ（ＳＰ）を読み出す（ステップＳ２０２）。そして、読み出し制御部２０は、ステップＳ２０２で読み出したスタートポインタ（ＳＰ）のアドレスが、そのスタートポインタ（ＳＰ）に対応する書き込み期間における先頭ポインタ（ＦＰ）であるか判定する（ステップＳ２０３）。そして、そのスタートポインタ（ＳＰ）が先頭ポインタ（ＦＰ）である場合は、カウンタ２１をリセットする（ステップＳ２０４）。
【００６９】
次に、読み出し制御部２０は遅延閾値テーブル２２（ＤＴＴ）を参照して、当該パケットキューに対応する遅延閾値を読み出し（ステップＳ２０５）、スタートポインタ（ＳＰ）に対応するパケットバッファ６のアドレスのパケットに対する破棄判断を行う（ステップＳ２０６）。
【００７０】
この破棄判断は、具体的には以下のように行われる。すなわち、先ず読み出し制御部２０は、パケットキューのスタートポインタ（ＳＰ）に対応する書き込み期間と、タイマ４０から受信する現在の時刻情報（現在時刻）との差分から、当該ポインタに対応するアドレスのパケットの滞留期間を算出する。次に読み出し制御部２０は、算出した滞留期間と、ステップＳ２０３で読み出された遅延閾値とを比較し、滞留期間が遅延閾値を超えていない場合には、そのパケットを破棄すべきでないと判断する（ステップＳ２０６のＮＯ）。
【００７１】
次に、読み出し制御部２０は、処理の実行が読み出し期間の変化をトリガとしてなされたのか否かを判断する（ステップＳ２０７）。ステップＳ２０７の判断がＮＯの場合には、スケジューラ２５からの読み出し要求をトリガとして実行されたことを意味するので、読み出し対象のパケットを実際に読み出すときの一連の処理（ステップＳ２０７〜Ｓ２１１）が行われる。逆に、ステップＳ２０７の判断がＹＥＳの場合には、パケットの読み出しは行われない。読み出し処理の実行が読み出し期間の変化時をトリガとしてなされるのは、パケットの破棄を目的とする場合のみであるためである。
【００７２】
ステップＳ２０７の判断がＮＯの場合には、読み出し制御部２０はカウンタ２１をカウントアップさせる（ステップＳ２０８）。カウンタ２１は、処理対象のパケットキューのスタートポインタ（ＳＰ）が、対応する書き込み期間における先頭ポインタ（ＦＰ）と一致するときにリセットさせられ（ステップＳ２０４）、パケットを実際に読み出す場合にカウントアップさせられるので、カウンタ２１のカウント値は、同一の書き込み期間内において読み出されたパケット数を示すことになる。
【００７３】
次に、読み出し制御部２０はポインタ格納部３０を参照して、パケットキューのスタートポインタ（ＳＰ）に対応したアドレスを指定してパケットバッファ６からパケットを読み出す（ステップＳ２０９）。この読み出したパケットは、パケットＰＫ＿ＯＵＴ（図２参照）としてパケットバッファ管理部５から出力される。
そして、読み出し制御部２０は、読み出したポインタを、そのポインタに対応する空きポインタキュー、すなわち借り受け元の空きポインタキューに返却する。これにより、返却されたポインタは、返却先の空きポインタキューのリンクリストに連結されて、その空きポインタキューのエンドポインタ（ＥＰ）となる（ステップＳ２１０）。さらに、パケットの読み出し後は、パケットキューのスタートポインタ（ＳＰ）をリンクリストから外す必要があるので、そのスタートポインタが指すポインタアドレスの次ポインタを当該パケットキューの新たなスタートポインタ（ＳＰ）とする（ステップＳ２１１）。
【００７４】
読み出し処理のためのトリガ入力が有る度に、ステップＳ２０２〜Ｓ２１１の一連の処理が繰り返し行われる。読み出されるパケットが同一の書き込み期間に書き込まれたものである間は、読み出したパケットの数がカウンタ２１にカウントされていく。
【００７５】
（２）パケットを読み出さずに破棄するときの処理
一方、ステップＳ２０６において、読み出し制御部２０は、滞留期間と遅延閾値とを比較し、滞留期間が遅延閾値を超えている場合に、そのパケットを破棄すべきであると判断する（ステップＳ２０６のＹＥＳ）。これにより、読み出し制御部２０は、図１１に示すステップＳ３０１〜Ｓ３０５の処理を実行する。
【００７６】
読み出し制御部２０は先ず、廃棄判断の対象となったスタートポインタ（ＳＰ）に対応する書き込み期間を特定し、書き込み管理テーブル５０（ＷＭＴ）にアクセスして、その特定した書き込み期間の次の期間(例えば、ＳＰが書き込み期間ＷＰ１に対応する場合は書き込み期間ＷＰ２；図５参照)における、処理対象のパケットキューの先頭ポインタ（ＦＰ）、最終ポインタ（ＬＰ）および書き込みパケット数（Ｗ＿ｎｕｍ）を読み出す（ステップＳ３０１）。
【００７７】
次に、パケットキューのスタートポインタ（ＳＰ）を、そのポインタに対応する空きポインタキューのリンクリストに連結し（ステップＳ３０２）、その空きポインタキューのエンドポインタ（ＥＰ）をステップＳ２１０で読み出した最終ポインタ（ＬＰ）にする（ステップＳ３０３）。これにより、パケットキューのリンクリスト上、スタートポインタと同一の書き込み期間内に借り受けたすべてのポインタが空きポインタキューへ返却されることになる。さらに、返却したポインタを処理対象のパケットキューのリンクリストから除去するため、パケットキューのスタートポインタ（ＳＰ）をステップＳ２１０で読み出した先頭ポインタ（ＦＰ）にする（ステップＳ３０４）。
【００７８】
さらに、読み出し制御部２０は、破棄パケット数を算出する（ステップＳ３０５）。破棄パケット数は、ステップＳ３０１で読み出した書き込みパケット数（Ｗ＿ｎｕｍ）から、カウンタ２１のカウント値（＝読み出しパケット数）を減算することで得られる。
【００７９】
以上、パケット読み出し処理時のパケットバッファ管理部５の動作フローについて説明したが、さらに図１２および図１３に関連付けて、読み出し処理時の空きポインタキューおよびパケットキューのリンクリストの変化の例について具体的に説明する。図１２はパケットを実際に読み出すときの処理を示し、図１３はパケットを読み出さずに破棄するときの処理を示している。図１２および図１３ともに、（ａ）が処理前の状態、（ｂ）が処理後の状態を表す。
【００８０】
図１２および図１３ともに、処理前の状態において、パケットキューの一例として、Ｐ＿２（ＳＰ）→Ｐ＿４→Ｐ＿５→Ｐ＿７→Ｐ＿８（ＥＰ）に示すポインタによるリンクリストが形成されている場合を想定する。さらに図１３では、廃棄判断の対象となったスタートポインタ（ＳＰ）に対応する書き込み期間の次の期間において、先頭ポインタ（ＦＰ）としてＰ＿７、最終ポインタ（ＬＰ）としてＰ＿５が、書き込み管理テーブル５０（ＷＭＴ）記録されている場合を想定する。この例では、最終ポインタ（ＬＰ）がＰ＿５であるので、Ｐ＿２（ＳＰ）とＰ＿４とＰ＿５とが同一の書き込み期間内に借り受けたことになる。
【００８１】
この場合、図１２に示すように、パケットを実際に読み出すときの処理では、図１０のステップＳ２０７〜Ｓ２０９の処理を行うことにより、パケットキューのスタートポインタ（ＳＰ）であるＰ＿２に対応するパケットバッファ６のアドレスＡ＿２のパケットが読み出される。そして、Ｐ＿２は、空きポインタキューに対して新たなエンドポインタ（ＥＰ）として返却される。
【００８２】
一方、図１３に示すように、パケットを読み出さずに破棄するときの処理では、図１１のステップＳ３０２〜Ｓ３０４の処理を行うことにより、パケットキューのリンクリスト上、スタートポインタＰ＿２から前期間の最終ポインタ（ＬＰ）であるＰ＿５までのすべてのポインタが空きポインタキューへ返却される。そして、返却したポインタをパケットキューから除去するため、本期間の先頭ポインタ（ＦＰ）であるＰ＿７をパケットキューの新たなスタートポインタ（ＳＰ）とする。これらの処理により、返却したポインタ（Ｐ＿２，Ｐ＿４，Ｐ＿５）に対応するパケットバッファ６のアドレス（Ａ＿２，Ａ＿４，Ａ＿５）のパケットは読み出されず、そのアドレスには、後のパケット書き込み処理において新たに受信したパケットが上書きされ得る。
【００８３】
［パケットの全体処理］
次に、パケットバッファ管理部５の全体処理について図１４と関連付けて説明する。図１４は、パケットバッファ管理部５の全体処理に伴う、時系列のパケットキューの変化一例を示す図であって、（ａ）は遅延閾値が小さいパケットキューの場合、（ｂ）は遅延閾値が大きいパケットキューの場合である。
なお、図１４では、書き込み期間（各１ｍｓ）がＷＰ１→ＷＰ２→ＷＰ３→ＷＰ４→…と経過し、読み出し期間（各１ｍｓ）がＲＰ１→ＲＰ２→ＲＰ３→ＲＰ４→…と経過している。「Ｎｅｗ」と表記されるポインタは、各書き込み期間での新たなパケット書き込みに伴って、その期間に新規に空きポインタキューから借り受けたポインタを示す。また、図１４では、各期間における先頭ポインタ（ＦＰ）と最終ポインタ（ＬＰ）の記録の際にパケットキューからポインタが反映される様子を、点線で示してある。
【００８４】
図１４の（ａ）に示すパケットキューに対する遅延閾値は、例えば１ｍｓに設定される。この例では、書き込まれたパケットが１ｍｓ以内に順次読み出されていくため、各期間のパケットキューには常に新規のパケットによるパケットキューがスタートポインタから形成されている。そのため、各期間において、パケットキューのスタートポインタに基づく滞留期間は常に遅延閾値以下となり、パケットは破棄されない。
【００８５】
一方、図１４（ｂ）に示すパケットキューに対する遅延閾値は、例えば２ｍｓに設定される。この例では、読み出し期間ＲＰ１〜ＲＰ３ではパケットの読み出しが行われず、書き込み期間ＷＰ１〜ＷＰ３では順次、新規のパケットの書き込みが行われる。これにより、書き込み期間ＷＰ１〜ＷＰ３では、パケットキューのリンクリストには、空きポインタキューから借り受けたポインタが順次連結されていく。
【００８６】
読み出し期間ＲＰ３では、パケットキューのスタートポインタ（ＳＰ）に基づく滞留期間が遅延閾値を超えることでパケットを破棄すべきである判断される。これにより、この期間のスタートポインタ（ＳＰ）に対応する書き込み期間（この場合、書き込み期間ＷＰ１）内に借り受けたすべてのポインタが返却される。そして、読み出し期間ＲＰ４におけるスタートポインタは、廃棄判断対象のスタートポインタ（ＳＰ）に対応する書き込み期間ＷＰ１の次の書き込み期間ＷＰ２の先頭ポインタ（ＦＰ）となる。
【００８７】
以上説明したように、本実施形態のパケット転送装置１では、パケットバッファ内に滞留するパケットを破棄するときに、実際にパケットバッファからの当該パケットの読み出しは行われず、当該パケットに対応するパケットキューを更新することによって行われる。具体的には、そのパケットのパケットバッファのアドレスに対応するポインタがパケットキューのリンクリストから外されて、空きポインタキューへ返却される。これにより、返却されたポインタに対応するアドレスに対するパケット書き込み（上書き）が可能な状態となる。従って、このパケット転送装置１では、破棄対象のパケットを無駄にパケットバッファから読み出すことがなく、読み出しのためのデータ転送容量（帯域）を有効に利用できる。
【００８８】
また、このパケット転送装置１では、パケット書き込み処理時において、書き込み期間と、複数の空きポインタキューの中からポインタの借り受け対象となる空きポインタキューとが対応付けられる。そのため、パケット読み出し処理時には、空きポインタキューから借り受けたポインタのポインタアドレスを参照することで、そのポインタに対応するアドレスに書き込まれたパケットの書き込み期間を後で認識することが可能となっている。そのため、このパケット転送装置１では、パケットの書き込み時刻を装置内のメモリ（または、パケット自体）に記憶させなくても、そのパケットのパケットバッファ内の滞留期間の算出が可能である。従って、このパケット転送装置１では、各パケットに対する時刻情報（書き込み時刻または受信時刻等）を記憶するためのメモリが必要ない。
【００８９】
＜第２実施形態＞
以下、本発明のパケット転送装置の他の実施形態に関し、特に第１実施形態のものと異なる点について図面に関連付けて説明する。本実施形態に係るパケット転送装置１’は、全体の構成は図２に示した第１実施形態のものと同様であるが、ポインタ格納部３０内の空きポインタキューおよびパケットキューの構成が第１実施形態のものと異なる。なお、第２実施形態において、書き込み制御部および読み出し制御部は、それぞれ本発明の第３制御部および第４制御部に対応する。
以下では、本実施形態におけるパケットバッファ管理部５の構成について、第１実施形態のものとの差異を中心に説明する。先ず、本実施形態における空きポインタキューおよびパケットキューの構成について、それぞれ図１５および図１６に関連付けて説明する。
【００９０】
［空きポインタキュー］
図１５は、第２実施形態における空きポインタキューの構成をパケットバッファ６と関連付けて説明するための図であって、（ａ）は空きポインタキュー、（ｂ）はパケットバッファ６の構成を示す。図３に示したものと同様に、第２実施形態のポインタ格納部３０の各ポインタアドレスはパケットバッファ６のアドレスと対応付けられている。図３に示したものと異なり、第２実施形態では、単一の空きポインタキュー（第３キュー）によって、パケットバッファ６のアドレスに対する書き込み順序が管理される。
【００９１】
［パケットキュー］
図１６は、第２実施形態におけるパケットキューの構成をパケットバッファ６と関連付けて説明するための図であって、（ａ）はパケットキュー、（ｂ）はパケットバッファ６の構成を示す。図１６に示すように、第２実施形態では、複数のポインタキューＱａ’，Ｑｂ’，Ｑｃ’，…（複数の第４キュー）が設けられる。パケットキューＱａ’，Ｑｂ’，Ｑｃ’，…の各々には、パケットの特性に応じて、パケットバッファの書き込み済みのアドレスに対する読み出し順序を示す、ポインタによるリンクリストが形成される点は、第１実施形態と同様である。一方、第１実施形態のものと異なり、本実施形態のパケットキューでは、ポインタによるリンクリストと共に、リンクリスト上のポインタを借り受けたとき（＝パケットを書き込んだとき）の書き込み期間の情報（ＷＰ１，ＷＰ２，…）が付加される。
【００９２】
次に、本実施形態におけるパケットバッファ管理部５の動作について、第１実施形態のものとの差異を中心に説明する。
［パケット書き込み処理］
書き込み制御部１０は、パケットの書き込み処理時において、空きポインタキューのリンクリスト上のポインタに対応するパケットバッファ６のアドレスにパケットを書き込む。このパケットの書き込みに当たって単一の空きポインタキューからのポインタの借り受けが逐次行われる。第１実施形態の場合と異なり、第２実施形態では、異なる書き込み期間において常に単一の空きポインタキューから、空きポインタキューの示す順序に従ってポインタを借り受ける。また、第１実施形態の場合と異なり、パケット書き込み処理において、パケットキューには、リンクリストと共に、リンクリスト上のポインタに関連付けて書き込み期間の情報が付加される（図１６参照）。
【００９３】
［パケット読み出し処理］
本実施形態におけるパケット読み出し処理は、滞留期間の算出方法が第１実施形態のものと異なる。具体的には、読み出し制御部２０は、パケット読み出し処理時に、パケットキューのスタートポインタに付加された書き込み期間（図１６参照）と現在時刻との差分からパケットの滞留期間を算出する。この滞留期間に基づくパケット破棄判断では、第１実施形態の場合と同様に、遅延閾値テーブル２２が参照される。
【００９４】
パケットを実際に読み出すときの処理と、パケットを読み出さずに破棄するときの処理は、第１実施形態の場合と同じである。すなわち、この第２実施形態のパケット転送装置１’においても、第１実施形態のものと同様に、パケットバッファ内に滞留するパケットを破棄するときに、実際にパケットバッファからの当該パケットの読み出しは行われず、当該パケットに対応するパケットキューを更新することによって行われる。このとき、パケットキューのスタートポインタと同一の書き込み期間内に借り受けたすべてのポインタが空きポインタキューへ返却されるが、この処理は、本実施形態においては、パケットキューに付加された各ポインタの書き込み期間の情報を参照することで容易に実行できる。
従って、この実施形態のパケット転送装置においても、破棄対象のパケットを無駄にパケットバッファから読み出すことがなく、読み出しのためのデータ転送容量（帯域）を有効に利用できる。
【００９５】
＜実施形態の変更例＞
上述した各実施形態に係るパケット転送装置は例示に過ぎず、これに基づいて以下に示すような改良・改変を行うことが可能である。
【００９６】
［パケットキューの時分割処理］
先ず図１７に関連付けて、各実施形態のパケット転送装置における好適な処理方法を説明する。図１７は、パケットキューに対する時系列の処理を示す図であって、（ａ）は書き込み処理、（ｂ）は読み出し処理の場合である。この図１７に示すように、各実施形態のパケット転送装置では、各書き込み期間または各読み出し期間において、複数のパケットキュー（図１７では、Ｑａ，Ｑｂ，Ｑｃ，…）を時分割処理することが好ましい。このような処理により、パケット書き込み処理とパケット読み出し処理（パケット破棄を含む）に伴う複数のパケットキューに対するポインタ処理が単位期間内で分散され、パケットバッファ管理部における処理負荷が軽減される。
【００９７】
［パケットキューの優先処理］
各実施形態のパケット転送装置では、パケット書き込み処理とパケット読み出し処理（パケット破棄を含む）に伴う複数のパケットキューに対するポインタ処理は、優先度が高いパケットキューから実行することが好ましい。例えばパケットの破棄判断は、複数のパケットキューの内、優先度の高いパケットキューのスタートポインタに基づいて順に実行されることが好ましい。
【００９８】
パケットキューの優先度に基づく処理を図１８に関連付けてさらに説明する。
図１８は、優先度テーブル２３を含むパケットバッファ管理部５の構成を示すブロック図である。この優先度テーブル２３には、複数のパケットキューと、各パケットキューの優先度との対応関係が記述されている。各パケットキューは、例えばパケットに記述されるＶＬＡＮ制御情報に基づくクラス等、パケットの特性と対応付けられているので、この優先度テーブルにはパケットの特性とその優先度との関係が記述されているに等しい。
【００９９】
一般的には、優先度テーブル２３における各パケットキューの優先度は、遅延閾値が小さいほど高く設定されるが、この設定に限られない。例えば２以上のパケットキューに対して同一の遅延閾値が設定されている場合には、パケットキューに対応付けられたパケットの特性の差異に基づいて優先度に差異を設けるようにしてもよい。
【０１００】
図１８に示す構成のパケットバッファ管理部５では、読み出し制御部２０が２以上のパケットキューに対してパケットを破棄すべきであるという判断を行った場合には、優先度テーブル２３が参照される。そして、読み出し制御部２０は、その２以上のパケットキューの内、優先度が高い順に従って処理（図１１に示した一連の処理）を行う。
【０１０１】
ここでは、パケット破棄時のパケットキューのリンクリストに対する処理（図１１および図１３参照）の負荷が大きく、かつ、この処理が終わらないとパケットキューのスタートポインタが更新されないため後続の処理ができない点に注意を要する。かかる点に鑑み、上述したような、優先度に従ったパケットキューの順に処理を行うことによって、優先度の高いパケットキューに対する処理が優先され、優先度の高いパケットキューに対応するパケットを素早く装置から出力（転送）することが可能となる。
【０１０２】
［その他の変更例］
各実施形態のパケット転送装置では、パケットの優先度に応じて、パケットを複数のパケットキューのいずれかと対応付ける場合について説明したが、これに限られない。単一のパケットキューを用いたパケット転送装置の場合であっても同様の作用および効果を奏する。
【０１０３】
第１実施形態のパケット転送装置では、パケットバッファ６の各アドレス群をアドレス順に構成した例について示したが、このような構成例に限られない。パケットを書き込むパケットバッファのアドレス群を単位期間毎に切り替えることができれば、各アドレス群を、昇順で複数のアドレスから構成させる必要はなく、予め設定された複数のアドレスから構成するようにすればよい。
【０１０４】
第１実施形態のパケット転送装置では、タイマ計測のための単位期間を１ｍｓとし、パケットに許容される最大遅延期間を１２８ｍｓとした場合を例に説明したが、これに限られない。より一般的には、タイマ計測のための単位期間をＴ１、パケットに許容される最大遅延期間をＴ２としたときに、空きポインタキューをＴ２／Ｔ１以上の数だけ設けるようにすればよい。これにより、ある書き込み期間において、当該期間に対応する空きポインタキューから借り受けたポインタが、その空きポインタキューを利用する次回の書き込み期間までに返却されることになる。そのため、空きポインタキューをＴ２／Ｔ１以上の数だけ設けるようにする限り、ポインタを空きポインタキューから借り受けることができないという状況が生じない。
【０１０５】
各実施形態のパケット転送装置では、書き込みおよび読み出しのためのパケットバッファのアドレスに対するキューを、ポインタによるリンクリストによって管理する場合について説明したが、これに限られない。ポインタによるリンクリストを用いることは、パケットバッファのアドレス順序（アドレスのキュー）を管理するための一方策に過ぎない。パケットバッファのアドレス順序を管理するために、ＦＩＦＯ（First In First Out）を実現するためのいかなる他の公知のデータ構造も利用され得る。
【０１０６】
＜付記の開示＞
以上の第１および第２実施形態に関し、さらに以下の付記を開示する。
（付記１）
転送対象のパケットを一時的に格納するためのパケットバッファと、
所定の単位期間毎の時刻を計測するタイマと、
前記パケットバッファを構成する複数のアドレス群の各々に対応した複数の第１キューであって、各第１キューは、対応するアドレス群内のアドレスに対するパケットの書き込み順序を管理する、複数の第１キューと、
パケットの特性に応じて設けられる複数の第２キューであって、各第２キューは、前記パケットバッファのアドレスの内、書き込み済みのアドレスからのパケットの読み出し順序を管理する、複数の第２キューと、
書き込み対象のアドレス群を前記単位期間毎に切り替えることで各アドレス群と書き込み期間とを対応付け、書き込み対象のアドレス群に対し、そのアドレス群に対応する第１キューが示すアドレス順序に従ってパケットの書き込みを行い、書き込まれたアドレスを当該パケットの特性に対応する第２キューに加える第１制御部と、
第２キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスが属するアドレス群から特定される第１書き込み期間と、タイマが示す現在時刻とに基づいて算出し、前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第１書き込み期間内に書き込まれたすべてのアドレスを前記第２キューから除去する第２制御部と、
を備えたパケット転送装置。（１）
【０１０７】
（付記２）
前記パケットバッファの各アドレスに対応したポインタアドレスを有するポインタを備え、
前記第１キューは、対応するアドレス群の中でパケットを書き込み可能なアドレスに対応するポインタによるリンクリストで構成され、
前記第１制御部は、パケットの書き込み時において、書き込み期間に応じた第１キューのリンクリスト上のポインタに対応する前記パケットバッファのアドレスにパケットを書き込むとともに、そのポインタを第１キューのリンクリストから外し、かつ、そのポインタによって前記第２キューをポインタによるリンクリストとして形成し、
前記第２制御部は、第２キューのスタートポインタに基づきパケットを破棄することを決定したときには、当該スタートポインタと同一の書き込み期間内に前記第２キューに連結されたすべてのポインタを当該第２キューから外し、前記第１キューへ連結する、
付記１に記載のパケット転送装置。（２）
【０１０８】
（付記３）
ある期間内に前記パケットバッファに書き込まれたパケットの数をカウントする第１カウンタと、
当該期間内に前記パケットバッファに書き込まれたパケットのうち、前記パケットバッファから読み出されたパケットの数をカウントする第２カウンタと、
をさらに備え、
前記第１カウンタのカウント値から前記第２カウンタのカウント値を減算することで、当該期間における破棄パケット数を算出する、
付記１または２に記載のパケット転送装置。（３）
【０１０９】
（付記４）
パケットの特性に基づいて、前記複数の第２キューの各々に対する優先度が予め設定されており、
ある期間におけるパケットの破棄の決定が２以上の第２キューに基づいて行われたときには、その期間の当該２以上の第２キューに対する処理は、前記優先度の順に従って行われる、
付記１または２に記載のパケット転送装置。（４）
【０１１０】
（付記５）
前記第１制御部および前記第２制御部の前記複数の第２キューに対する処理は、前記単位期間内において時分割で行われる、
付記１または２に記載のパケット転送装置。（５）
【０１１１】
（付記６）
パケットの破棄判断を行うときに前記滞留期間と比較される遅延閾値を、前記複数の第２キューの各々に対して予め設定される、
付記１または２に記載のパケット転送装置。
【０１１２】
（付記７）
前記所定の期間をＴ１、パケットに許容される最大遅延期間をＴ２としたときに、
前記第１キューがＴ２／Ｔ１以上の数だけ設けられる、
付記１または２に記載のパケット転送装置。
【０１１３】
（付記８）
転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマとを備えたパケット転送装置、に対するパケット破棄方法であって、
前記パケットバッファを構成する複数のアドレス群の各々に対応した複数の第１キューであって、各第１キューは、対応するアドレス群内のアドレスに対するパケットの書き込み順序を管理する、複数の第１キューを用意するステップと、
パケットの特性に応じた複数の第２キューを用意するステップと、
書き込み対象のアドレス群を前記単位期間毎に切り替え、書き込み対象のアドレス群に対し、そのアドレス群に対応する第１キューが示すアドレス順序に従ってパケットの書き込みを行うステップと、
パケットが書き込まれたアドレスを、そのパケットの特性に対応する第２キューに加えるステップと、
前記第２キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスが属するアドレス群から特定される第１書き込み期間と、タイマが示す現在時刻とに基づいて算出するステップと、
前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第１書き込み期間内に書き込まれたすべてのアドレスを前記第２キューから除去するステップと、
を備えたパケット破棄方法。（６）
【０１１４】
（付記９）
転送対象のパケットを一時的に格納するためのパケットバッファと、
所定の単位期間毎の時刻を計測するタイマと、
前記パケットバッファのアドレスに対するパケットの書き込み順序を管理する第３キューと、
パケットの特性に応じて設けられる複数の第４キューであって、各第４キューは、前記パケットバッファのアドレスの内、書き込み済みのアドレスからのパケットの読み出し順序を、キュー内の各アドレスに対する書き込み期間とともに管理する、複数の第４キューと、
前記第３キューが示すアドレス順序に従ってパケットの書き込みを行い、書き込まれたアドレスを書き込み期間とともに当該パケットの特性に対応する第４キューに加える第３制御部と、
第４キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスに対する第１書き込み期間と、タイマが示す現在時刻とに基づいて算出し、前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第１書き込み期間内に書き込まれたすべてのアドレスを前記第４キューから除去する第４制御部と、
を備えたパケット転送装置。（７）
【０１１５】
（付記１０）
前記パケットバッファの各アドレスに対応したポインタアドレスを有するポインタを備え、
前記第３キューは、対応するアドレス群の中でパケットを書き込み可能なアドレスに対応するポインタによるリンクリストで構成され、
前記第３制御部は、パケットの書き込み時において、前記第３キューのリンクリスト上のポインタに対応する前記パケットバッファのアドレスにパケットを書き込むとともに、そのポインタを第３キューのリンクリストから外し、かつ、そのポインタによって前記第４キューをポインタによるリンクリストとして形成し、第４キューの各ポインタと書き込み期間とを関連付け、
前記第４制御部は、第４キューのスタートポインタと関連付けられた書き込み期間に基づきパケットを破棄することを決定したときには、当該スタートポインタと同一の書き込み期間内に前記第４キューに連結されたすべてのポインタを第４キューから外し、第３キューへ連結する、
付記９記載のパケット転送装置。
【０１１６】
（付記１１）
転送対象のパケットを一時的に格納するためのパケットバッファと、所定の単位期間毎の時刻を計測するタイマとを備えたパケット転送装置、に対するパケット破棄方法であって、
前記パケットバッファのアドレスに対するパケットの書き込み順序を管理する第３キューを用意するステップと、
パケットの特性に応じた複数の第４キューを用意するステップと、
前記第３キューが示すアドレス順序に従ってパケットの書き込みを行うステップと、
パケットが書き込まれたアドレスを書き込み期間とともに、そのパケットの特性に対応する第４キューに加えるステップと、
第４キューが示す最初のアドレスのパケットのパケットバッファにおける滞留期間を、前記最初のアドレスに対する第１書き込み期間と、タイマが示す現在時刻とに基づいて算出するステップと、
前記滞留期間に基づいてパケットを破棄することを決定したときには、前記第１書き込み期間内に書き込まれたすべてのアドレスを前記第４キューから除去するステップと、
を備えたパケット破棄方法。（８）
【図面の簡単な説明】
【０１１７】
【図１】第１実施形態に係るパケット転送装置の概略構成を示すブロック図である。
【図２】パケットバッファ管理部の構成をパケットバッファと関連付けて示すブロック図である。
【図３】空きポインタキューの構成をパケットバッファと関連付けて説明するための図である。
【図４】パケットキューの構成をパケットバッファと関連付けて説明するための図である。
【図５】書き込み管理テーブルに記録されるデータの内容を示す図である。
【図６】遅延閾値テーブルに格納されるデータの内容を示す図である。
【図７】パケット書き込み処理におけるパケットバッファ管理部の動作を示すフローチャートである。
【図８】パケット書き込み前後のパケットキューおよび空きポインタキューの一例について説明するための図である。
【図９】パケット書き込み前後の各キューのリンクリストの一例についてパケットバッファと関連付けて説明するための図である。
【図１０】パケット読み出し処理におけるパケットバッファ管理部の動作を示すフローチャートである。
【図１１】パケット読み出し処理におけるパケットバッファ管理部の動作を示すフローチャートである。
【図１２】実際にパケットを読み出す場合において、パケット読み出し前後の各キューのリンクリストの一例についてパケットバッファと関連付けて説明するための図である。
【図１３】パケットを破棄する場合において、パケットの破棄前後の空きポインタキューおよびパケットキューのリンクリストの一例についてパケットバッファと関連付けて説明するための図である。
【図１４】パケットバッファ管理部の全体処理に伴う、時系列のパケットキューの変化一例を示す図である。
【図１５】第２実施形態に係るパケット転送装置における空きポインタキューの構成をパケットバッファと関連付けて説明するための図である。
【図１６】第２実施形態に係るパケット転送装置におけるパケットキューの構成をパケットバッファと関連付けて説明するための図である。
【図１７】パケットキューに対する時系列の処理を示す図である。
【図１８】優先度テーブルを含むパケットバッファ管理部の構成を示すブロック図である。
【符号の説明】
【０１１８】
２…多重化部
３…出力ポート設定部
４…出力ポートテーブル
５…パケットバッファ管理部
１０…書き込み制御部
１１…カウンタ
２０…読み出し制御部
２１…カウンタ
２５…スケジューラ
２２…遅延閾値テーブル
２３…優先度テーブル
３１，３２…ポインタ格納部
４０…タイマ
６…パケットバッファ
７…スイッチング部
【図１】
0004952642.tif 000002
【図２】
0004952642.tif 000003
【図３】
0004952642.tif 000004
【図４】
0004952642.tif 000005
【図５】
0004952642.tif 000006
【図６】
0004952642.tif 000007
【図７】
0004952642.tif 000008
【図８】
0004952642.tif 000009
【図９】
0004952642.tif 000010
【図１０】
0004952642.tif 000011
【図１１】
0004952642.tif 000012
【図１２】
0004952642.tif 000013
【図１３】
0004952642.tif 000014
【図１４】
0004952642.tif 000015
【図１５】
0004952642.tif 000016
【図１６】
0004952642.tif 000017
【図１７】
0004952642.tif 000018
【図１８】
0004952642.tif 000019