(57)【要約】【課題】廃棄カウンタで計数されるパケット廃棄数を収集するための制御パケットがデータパケットの伝送帯域を圧迫することを軽減する。【解決手段】パケット中継装置１の第１パケット処理回路６０ｖ、６０ｓ、６０ｍは、何れかのデータパケットを廃棄する処理と、データパケットの廃棄数が閾値以上であるか否かを判定する処理と、廃棄数が閾値以上である場合に、廃棄数を通知する制御パケットを第２パケット処理回路６０ｓｈへ向けて転送する処理を実行し、パケット中継装置１の第２パケット処理回路６０ｓｈは、フローに属するデータパケットの何れかを廃棄する処理と、データパケットの廃棄数を計数する処理と、第２パケット処理回路６０ｓｈが計数した廃棄数と制御パケットが通知する廃棄数とを収集する処理を実行する。【選択図】図４
2013187616.tif 000002
【特許請求の範囲】
【請求項１】
第１パケット処理回路と第２パケット処理回路とを備え、
前記第１パケット処理回路は、
データパケットのうちの、何れかのデータパケットを廃棄し他のデータパケットを前記第２パケット処理回路へ向けて転送する処理と、
前記データパケットの廃棄数を計数する処理と、
前記廃棄数が閾値以上であるか否かを判定する処理と、
前記廃棄数が閾値以上である場合に、前記廃棄数を示す廃棄数情報を含む廃棄数情報パケットを前記第２パケット処理回路へ向けて転送する処理と、を実行し、
前記第２パケット処理回路は、
前記データパケットのうち何れかのデータパケットを廃棄する処理と、
前記データパケットの廃棄数を計数する処理と、
前記第２パケット処理回路が計数した廃棄数と前記廃棄数情報パケットに含まれる廃棄数情報が示す廃棄数とを収集する処理と、を実行することを特徴とするパケット中継装置。
【請求項２】
前記廃棄数情報パケットは、前記廃棄数を示す廃棄数情報を前記データパケットに付加したパケットであることを特徴とする請求項１に記載のパケット中継装置。
【請求項３】
前記第１パケット処理回路は、前記データパケットとは別に生成されて前記廃棄数を示す廃棄数情報を含むパケットである廃棄数情報パケットを廃棄せずに、前記第２パケット処理回路へ向けて転送することを特徴とする請求項１〜２のいずれか一項に記載のパケット中継装置。
【請求項４】
前記第１パケット処理回路は、
所定期間を繰り返し計時する処理と、
前記所定期間の計時が完了した場合に前記廃棄数が閾値未満でも前記廃棄数情報パケットを送信する処理と、を実行することを特徴とする請求項１〜３のいずれか一項に記載のパケット中継回路。
【請求項５】
前記フローについて前記廃棄数情報パケットを一定周期で生成して、前記第１パケット処理回路へ入力する処理を実行する制御回路を備え、
前記第１パケット処理回路は、該第１パケット処理回路が前記フローについて計数した廃棄数を加算することにより前記廃棄数情報パケットにより通知される廃棄数を更新した後に、該廃棄数情報パケットを前記第２パケット処理回路に向けて転送する処理を実行することを特徴とする請求項１〜４のいずれか一項に記載のパケット中継装置。
【請求項６】
前記廃棄数情報パケットを生成するコマンドを受け付ける処理と、該コマンドを受け付けた場合に前記廃棄数情報パケットを生成して、前記第１パケット処理回路へ入力する処理を実行する制御回路を備え、
前記第１パケット処理回路は、該第１パケット処理回路が前記フローについて計数した廃棄数を加算することにより前記廃棄数情報パケットにより通知される廃棄数を更新した後に、該廃棄数情報パケットを前記第２パケット処理回路へ転送する処理を実行することを特徴とする請求項１〜４のいずれか一項に記載のパケット中継装置。
【請求項７】
前記データパケットはユニキャストパケットであることを特徴とする請求項１〜６のいずれか一項に記載のパケット中継装置。
【請求項８】
前記第１パケット処理回路と前記第２パケット処理回路との間にパケット複製回路を備え、
前記データパケットがマルチキャストパケットである場合に前記第１パケット処理装置は、
前記マルチキャストパケットのマルチキャストグループ毎に前記マルチキャストパケットの廃棄数を計数する処理と、
前記廃棄数が閾値以上であるか否かを判定する処理と、
前記廃棄数が閾値以上である場合に、前記マルチキャストグループ毎に前記廃棄数を通知する廃棄数情報パケットを前記パケット複製回路へ向けて転送する処理と、を実行し、
前記パケット複製回路は、マルチキャストグループ毎に転送される廃棄数情報パケットを、前記マルチキャストパケットの宛先分複製してそれぞれ前記第２パケット処理回路に向けて転送する処理を実行することを特徴とする請求項１〜６のいずれか一項に記載のパケット中継装置。
【請求項９】
パケット中継装置によるデータパケットの廃棄数の測定方法であって、
前記パケット中継装置が、第１パケット処理回路と第２パケット処理回路とを備え、
前記測定方法は、
データパケットのうちの、何れかのデータパケットを廃棄し他のデータパケットを前記第２パケット処理回路へ向けて転送する処理と、
前記データパケットの廃棄数を計数する処理と、
前記廃棄数が閾値以上であるか否かを判定する処理と、
前記廃棄数が閾値以上である場合に、前記廃棄数を示す廃棄数情報を含む廃棄数情報パケットを前記データパケットの転送経路と同じ経路で前記第２パケット処理回路へ向けて転送する処理と、前記第１パケット処理回路に実行させ、
前記データパケットのうち何れかのデータパケットを廃棄する処理と、
前記データパケットの廃棄数を計数する処理と、
前記第２パケット処理回路が計数した廃棄数と前記廃棄数情報パケットに含まれる廃棄数情報が示す廃棄数とを収集する処理と、を前記第２パケット処理回路に実行させることを特徴とするデータパケットの廃棄数の測定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で論じられる実施態様は、データパケットの廃棄数の測定に関する。
【背景技術】
【０００２】
パケット通信における通信品質を監視するために、パケット装置にてデータパケットの廃棄数の収集が行われる。例えば、パケット装置は、パケットの廃棄が発生するバッファにそれぞれ廃棄カウンタを有し、パケット装置内に設けられたプロセッサは、ソフトウエア処理により各廃棄カウンタに順番に照会して各廃棄カウンタが計数した廃棄数を収集する。なお、関連する技術として以下のような技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−５１７３６
【特許文献２】特開２００５−２１０７５６
【特許文献３】特開２０１０−２１３２３９
【特許文献４】特開２００４−３２０４５８
【特許文献５】特開平８−２１４００２
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ソフトウエア処理により各廃棄カウンタに順番に照会する場合の廃棄数の収集周期は、ハードウエア処理で廃棄数を収集する場合に比べてより長くなる。収集周期が比較的長くてもオーバーフローを生じないようにパケット装置がより多くの廃棄数を計数できるカウンタを使用すると、使用メモリが増大する。
【０００５】
収集周期を短縮するためにハードウエア処理で廃棄数の収集を補助することが考えられる。例えば、パケット装置は、イングレス側からデータパケットの伝送経路と同じ経路に、各廃棄カウンタが計数した廃棄数を収集する制御パケットを送出する。制御パケットが伝送経路上の各バッファを経由する際に、パケット装置は、各バッファにおける廃棄カウンタが計数した廃棄数を制御パケットが記憶する廃棄数に累積する。制御パケットが最終段のバッファに到着すると、パケット装置は、制御パケットが計数した廃棄数を最終段の廃棄カウンタが計数した廃棄数に加算する。この結果、パケット廃棄数は最終段の廃棄カウンタに集約されるので、ソフトウエア処理により廃棄数を照会するカウンタの数が削減され収集周期が短縮される。
【０００６】
しかしながら、制御パケットがデータパケットの伝送経路に流れることにより、データパケットの伝送帯域が圧迫されるおそれがある。開示の装置及び方法は、廃棄カウンタで計数されるパケット廃棄数を収集する制御パケットがデータパケットの伝送経路に流れることによるデータパケットの伝送帯域の圧迫を軽減することを目的とする。
【課題を解決するための手段】
【０００７】
装置の一観点によれば、パケット中継装置が与えられる。パケット中継装置は、第１パケット処理回路と第２パケット処理回路とを備る。第１パケット処理回路は、データパケットのうちの、何れかのデータパケットを廃棄し他のデータパケットを第２パケット処理回路へ向けて転送する処理と、データパケットの廃棄数を計数する処理と、廃棄数が閾値以上であるか否かを判定する処理と、廃棄数が閾値以上である場合に廃棄数を示す廃棄数情報を含む廃棄数情報パケットを第２パケット処理回路へ向けて転送する処理を実行する。第２パケット処理回路は、データパケットのうち何れかのデータパケットを廃棄する処理と、データパケットの廃棄数を計数する処理と、第２パケット処理回路が計数した廃棄数と廃棄数情報パケットに含まれる廃棄数情報が示す廃棄数とを収集する処理を実行する。
【０００８】
方法の一観点によれば、第１パケット処理回路と第２パケット処理回路を備えるパケット中継装置によるデータパケットの廃棄数の測定方法が与えられる。測定方法は、データパケットのうちの、何れかのデータパケットを廃棄し他のデータパケットを第２パケット処理回路へ向けて転送する処理と、データパケットの廃棄数を計数する処理と、廃棄数が閾値以上であるか否かを判定する処理と、廃棄数が閾値以上である場合に、廃棄数を示す廃棄数情報を含む廃棄数情報パケットをデータパケットの転送経路と同じ経路で第２パケット処理回路へ向けて転送する処理を第１パケット処理回路に実行させる。測定方法は、データパケットのうち何れかのデータパケットを廃棄する処理と、データパケットの廃棄数を計数する処理と、第２パケット処理回路が計数した廃棄数と廃棄数情報パケットに含まれる廃棄数情報が示す廃棄数とを収集する処理と、を第２パケット処理回路に実行させる。
【発明の効果】
【０００９】
本件開示の装置又は方法によれば、廃棄カウンタで計数されるパケット廃棄数を収集する制御パケットがデータパケットの伝送経路に流れることによるデータパケットの伝送帯域の圧迫を軽減される。
【図面の簡単な説明】
【００１０】
【図１】パケット装置のハードウエア構成例を示す図である。
【図２】インタフェースカードのハードウエア構成例を示す図である。
【図３】スイッチカードのハードウエア構成例を示す図である。
【図４】パケット装置におけるパケット廃棄箇所の一例の説明図である。
【図５】パケット装置内で転送される装置内パケットのフォーマットの第１例を示す図である。
【図６】廃棄制御部の第１例の機能ブロック図である。
【図７】廃棄数テーブルの第１例を示す図である。
【図８】（Ａ）及び（Ｂ）は廃棄数情報パケットのフォーマットの第１例及び第２例を示す図である。
【図９】廃棄制御部の動作の第１例の説明図である。
【図１０】廃棄制御部の動作の第２例の説明図である。
【図１１】廃棄制御部の第２例の機能ブロック図である。
【図１２】廃棄制御部の動作の第３例の説明図である。
【図１３】廃棄数テーブルの値の一例を示す図である。
【図１４】廃棄制御部の第３例の機能ブロック図である。
【図１５】廃棄数テーブルの第２例を示す図である。
【図１６】フラグ設定部の動作の一例の説明図である。
【図１７】廃棄制御部の動作の第４例の説明図である。
【図１８】廃棄制御部の第４例の機能ブロック図である。
【図１９】廃棄数情報パケット生成部の動作の第１例の説明図である。
【図２０】廃棄制御部の第５例の機能ブロック図である。
【図２１】廃棄数情報パケット生成部の動作の第２例の説明図である。
【図２２】装置内パケットのフォーマットの第２例を示す図である。
【図２３】（Ａ）〜（Ｃ）は、パケット複製部によるパケット複製動作の説明図である。
【図２４】廃棄制御部の第６例の機能ブロック図である。
【図２５】（Ａ）及び（Ｂ）は廃棄数情報パケットのフォーマットの第３例及び第４例を示す図である。
【図２６】廃棄制御部の動作の第５例の説明図である。
【図２７】（Ａ）〜（Ｄ）は、廃棄数テーブルの値の変化の説明図である。
【発明を実施するための形態】
【００１１】
＜１．ハードウエア構成＞
＜１．１  パケット装置＞
以下、添付する図面を参照して好ましい実施例について説明する。図１は、パケット装置のハードウエア構成例を示す。パケット装置１は、制御カード１０と、インタフェースカード２０−１〜２０−ｎと、スイッチカード３０を備える。なお、以下の説明においてインタフェースカード２０−１〜２０−ｎを総称して「インタフェースカード２０」と表記することがある。また、図１に示すハードウエア構成は、パケット装置１を実現するハードウエア構成の例示の１つである。本明細書において以下に説明される動作を行うものであれば、どのようなハードウエア構成が採用されてもよい。
【００１２】
制御カード１０は、パケット装置１全体の動作を制御し、また、そのための制御情報をインタフェースカード２０及びスイッチカード３０との間で授受する。制御カード１０は、プロセッサ１１と、メモリ１２と、ＬＡＮ（Local Area Network）ポート１３…１３を備える。プロセッサ１１は、メモリ１２に格納されるコンピュータプログラムを実行することで、パケット装置１の制御、ユーザからのコマンド受付、コマンドの処理のための情報処理を実行する。また、プロセッサ１１は、インタフェースカード２０やスイッチカード３０との制御情報の授受のための情報処理を実行する。インタフェースカード２０やスイッチカード３０との制御情報は、プロセッサ１１に接続されたＬＡＮポート１３…１３を経由して入出力される。
【００１３】
メモリ１２は、コンピュータプログラム及びその実行に使用されるデータを記憶するための不揮発性記憶装置を備えてよい。不揮発性記憶装置は、例えば、フラッシュメモリやハードディスクやＲＯＭ（Read Only Memory：読み出し専用メモリ）であってよい。また、メモリ１２は、プロセッサ１１の動作時に使用されるデータを格納するためのＲＡＭ（Random Access Memory：ランダムアクセスメモリ）を含んでいてよい。
【００１４】
＜１．２  インタフェースカード２０＞
次にインタフェースカード２０について説明する。インタフェースカード２０−１〜２０−ｎは、それぞれ通信回線４０−１〜４０−ｎを介してユーザデータを運ぶパケットデータの入出力を行う。以下の説明において通信回線４０−１〜４０−ｎを総称して通信回線４０と表記することがある。
【００１５】
図２は、インタフェースカード２０のハードウエア構成例を示す。インタフェースカード２０は、送受信回路２１−１〜２１−ｍと、制御回路２２と、メモリ２３と、ＬＡＮポート２４と、シリアライザ／デシリアライザ２５を備える。なお、添付図面及び以下の説明において送受信回路及びシリアライザ／デシリアライザ２５をそれぞれ「ＰＨＹ」及び「ＳｅｒＤｅｓ」と表記する。また、以下の説明においてＰＨＹ２１−１〜２１−ｍを総称してＰＨＹ２１と表記することがある。また、図２に示すハードウエア構成は、インタフェースカード２０を実現するハードウエア構成の例示の１つである。本明細書において以下に説明される動作を行うものであれば、どのようなハードウエア構成が採用されてもよい。
【００１６】
ＰＨＹ２１は、通信回線４０を介して送受信される信号の光／電気変換、信号レベル変換及び符号変換を行うことにより物理層における終端処理を行う。制御回路２２は、インタフェースカード２０が入出力するパケットの優先制御、帯域制御及びバッファリング制御、パケット廃棄処理及びパケット廃棄数情報などの統計情報の収集処理を行う。制御回路２２はＬＳＩ（Large Scale Integration）２７を備え、上記の制御回路２２の動作はＬＳＩ２７によって実行される。ＬＳＩ２７は、例えばＦＰＧＡ（Field-Programming Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）などであってよい。制御回路２２は、ＦＰＧＡやＡＳＩＣ等に代えて又は加えてネットワークプロセッサ２６を備えてもよい。ネットワークプロセッサ２６は、上記の制御回路２２の動作の一部又は全部を実行してよい。
【００１７】
メモリ２３には、インタフェースカード２０が入出力するパケットをバッファリングするためのキューが格納される。制御回路２２がネットワークプロセッサ２６を備える場合には、ネットワークプロセッサ２６により実行されるコンピュータプログラム及びその実行に使用されるデータがメモリ２３に格納される。メモリ２３は、コンピュータプログラム及びその実行に使用されるデータを格納するための不揮発性記憶装置を備えていてよい。またメモリ２３は、ＬＳＩ２７やネットワークプロセッサ２６の動作時に使用されるデータ及びキューを格納するためのＲＡＭを含んでいてよい。ＬＡＮポート２４は、制御カード１０のプロセッサ１１との間の制御信号を入出力する。ＳｅｒＤｅｓ２５は、スイッチカード３０へ送信されるパケットデータのパラレルシリアル変換及びスイッチカード３０から受信するパケットデータのシリアルパラレル変換を行う。
【００１８】
＜１．３  スイッチカード３０＞
次にスイッチカード３０について説明する。スイッチカード３０は、インタフェースカード２０から受信したパケットデータの宛先を識別し、宛先に応じたインタフェースカード２０へパケットを出力する。図３は、スイッチカード３０のハードウエア構成例を示す。スイッチカード３０は、ＳｅｒＤｅｓ３１−１〜３１−ｎと、ＬＳＩ３２と、メモリ３３と、ＬＡＮポート３４を備える。なお、図３に示すハードウエア構成は、スイッチカード３０を実現するハードウエア構成の例示の１つである。本明細書において以下に説明される動作を行うものであれば、どのようなハードウエア構成が採用されてもよい。
【００１９】
ＳｅｒＤｅｓ３１−１〜３１−ｎは、インタフェースカード２０−１〜２０−ｎから受信したパケットデータのシリアルパラレル変換を行う。ＳｅｒＤｅｓ３１−１〜３１−ｎは、インタフェースカード２０−１〜２０−ｎへ出力するパケットデータのパラレルシリアル変換を行う。ＬＳＩ３２は、インタフェースカード２０から受信したパケットのスイッチング、パケット廃棄処理及び統計情報収集処理を行う。
【００２０】
メモリ３３には、スイッチカード３０がスイッチングするパケットをバッファリングするためのキューが格納される。メモリ３３は、キュー及びＬＳＩ３２の動作時に使用されるデータを格納するためのＲＡＭを含んでいてよい。ＬＡＮポート３４は、制御カード１０のプロセッサ１１との間の制御信号を入出力する。
【００２１】
＜２．  パケット廃棄箇所＞
続いて、パケット装置１におけるパケットの廃棄と、パケットの廃棄数情報の収集について説明する。図４は、パケット装置１におけるパケット廃棄箇所の一例の説明図である。参照符号２は、注目するデータパケットを示す。参照符号２０ｉ及び２０ｅは、インタフェースカード２０のうち注目するデータパケット２が入力及び出力されるイングレス側及びイーグレス側のカードを示す。また、参照符号４０ｉ及び４０ｅは、通信回線４０のうち注目するデータパケット２が入力及び出力されるイングレス側及びイーグレス側の通信回線を示す。
【００２２】
イングレス側のインタフェースカード２０ｉ及びスイッチカード３０は、それぞれ仮想出力キュー７０ｖ及びスイッチキュー７０ｓと、それぞれのキューに蓄積されたパケットを読み出す読出部７１ｖ及び７１ｓを備える。また、イーグレス側のインタフェースカード２０ｅは、マルチキャストキュー７０ｍ及びシェイパーキュー７０ｓｈと、それぞれのキューに蓄積されたパケットを読み出す読出部７１ｍ及び７１ｓｈを備える。
【００２３】
仮想出力キュー７０ｖは、インタフェースカード２０ｉからスイッチカード３０への出力を待つパケットを蓄積するバッファであり、図２に示すメモリ２３に格納される。スイッチキュー７０ｓは、スイッチカード３０からインタフェースカード２０ｅへの出力を待つパケットを蓄積するバッファであり、図３に示すメモリ３３に格納される。
【００２４】
マルチキャストキュー７０ｍは、パケットコピー処理を待つマルチキャストパケットを蓄積するために使用される。シェイパーキュー７０ｓｈは、シェイピングにより帯域が制限された出力パケットを蓄積するためのバッファである。マルチキャストキュー７０ｍ及びシェイパーキュー７０ｓｈは、図２に示すメモリ２３に格納される。
【００２５】
インタフェースカード２０ｉは、仮想出力キュー７０ｖに到着したパケットを廃棄する廃棄制御部６０ｖを備える。インタフェースカード２０ｉは、例えば、仮想出力キュー７０ｖのキュー長、すなわちパケットがキューを占める占有量が閾値を超えた場合にパケットを廃棄する。スイッチカード３０は、スイッチキュー７０ｓに到着したパケットを廃棄する廃棄制御部６０ｓを備える。
【００２６】
インタフェースカード２０ｅは、それぞれマルチキャストキュー７０ｍ及びシェイパーキュー７０ｓｈに到着したパケットを廃棄する廃棄制御部６０ｍ及び廃棄制御部６０ｓｈを備える。なお、以下の説明において、廃棄制御部６０ｖ、６０ｓ、６０ｍ及び６０ｓｈを総称して「廃棄制御部６０」と表記することがある。また、仮想出力キュー７０ｖ、スイッチキュー７０ｓ、マルチキャストキュー７０ｍ及びシェイパーキュー７０ｓｈを総称して「キュー７０」と表記することがある。
【００２７】
データパケット２がインタフェースカード２０ｉに入力されると、宛先指定部５０は、データパケット２が属するフローを識別する。例えば宛先指定部５０は、データパケット２のヘッダに格納されたフロー識別子ＦＩＤを検出する。フロー識別子ＦＩＤは、データパケット２が属するフローの識別子である。
【００２８】
宛先情報保持部５１には、各フローの宛先のイーグレス側のインタフェースカード２０ｅの情報が格納されている。宛先指定部５０は、宛先情報保持部５１を参照して、フロー識別子ＦＩＤに関連付けて記憶されたデータパケット２の宛先のインタフェースカード２０ｅを特定する。宛先指定部５０は、データパケット２に装置内ヘッダを付加したパケットを出力する。装置内ヘッダは、宛先のインタフェースカード２０ｅの指定子を含む。以下の説明において、装置内ヘッダが付加されたパケットを「装置内パケット」と表記することがある。
【００２９】
図５は、パケット装置内で転送される装置内パケット３のフォーマット例を示す。装置内パケット３は、データパケット本体とこれに付加された装置内ヘッダを含む。データパケット２は、パケットヘッダ及びペイロードを含む。例えば、装置内ヘッダは、宛先カード指定子と、フロー識別子ＦＩＤと、クラス指定子を含んでよい。宛先カード指定子は、データパケットの宛先のインタフェースカード２０ｅを指定する。クラス指定子は、パケット装置１内において装置内パケット３が分類分けされたクラスを指定する。なお、図１０に示すフォーマットは例示であり、他の実施例の装置内パケット３は他のフォーマットを有していてもよい。
【００３０】
図４を参照する。宛先指定部５０は、装置内パケット３を廃棄制御部６０ｖへ出力する。廃棄制御部６０ｖは、受信した装置内パケット３を仮想出力キュー７０ｖに蓄積するか否かを判断する。廃棄制御部６０ｖは、仮想出力キュー７０ｖに蓄積すると判断した装置内パケット３を仮想出力キュー７０ｖに格納し、それ以外の装置内パケット３を廃棄する。廃棄制御部６０ｖは、廃棄したパケットの廃棄数を計数する。読出部７１ｖは、仮想出力キュー７０ｖに蓄積された装置内パケット３を読み出してスイッチカード３０のパケット複製部５２ｓへ出力する。
【００３１】
装置内パケット３が運ぶデータパケット２がマルチキャストパケットである場合には、パケット複製部５２ｓは装置内パケット３を複製して、フローの宛先のイーグレス側のインタフェースカード２０ｅの個数分の装置内パケット３を用意する。パケット複製部５２ｓは、装置内パケット３を廃棄制御部６０ｓに出力する。なお、以下の「３．第１実施例」〜「６．第４実施例」では、ユニキャストパケットに対する廃棄処理及び廃棄数情報の収集を説明し、以下の「７．第５実施例」では、マルチキャストパケットに対する廃棄処理及び廃棄数情報の収集を説明する。
【００３２】
廃棄制御部６０ｓは、受信した装置内パケット３をスイッチキュー７０ｓに蓄積するか否かを判断する。廃棄制御部６０ｓは、スイッチキュー７０ｓに蓄積すると判断した装置内パケット３をスイッチキュー７０ｓに格納し、それ以外の装置内パケット３を廃棄する。廃棄制御部６０ｓは、廃棄した装置内パケット３の廃棄数を計数する。読出部７１ｓは、スイッチキュー７０ｓに蓄積された装置内パケット３を読み出してインタフェースカード２０ｅの廃棄制御部６０ｍへ出力する。
【００３３】
スイッチキュー７０ｓから出力される装置内パケット３は、インタフェースカード２０ｅの廃棄制御部６０ｍに入力される。廃棄制御部６０ｍは、受信した装置内パケット３をマルチキャストキュー７０ｍに蓄積するか否かを判断する。廃棄制御部６０ｍは、マルチキャストキュー７０ｍに蓄積すると判断した装置内パケット３をマルチキャストキュー７０ｍに格納し、それ以外の装置内パケット３を廃棄する。廃棄制御部６０ｍは、廃棄したパケットの廃棄数を計数する。読出部７１ｍは、マルチキャストキュー７０ｍに蓄積された装置内パケット３を読み出してパケット複製部５２ｍへ出力する。
【００３４】
装置内パケット３が運ぶデータパケット２がマルチキャストである場合には、パケット複製部５２ｍは、装置内パケット３を複製して、マルチキャストパケットの宛先毎に分岐するユニキャストのフローの数の装置内パケット３を用意する。パケット複製部５２ｍは、装置内パケット３を廃棄制御部６０ｓｈに出力する。
【００３５】
廃棄制御部６０ｓｈは、受信した装置内パケット３をシェイパーキュー７０ｓｈに蓄積するか否かを判断する。廃棄制御部６０ｓｈは、シェイパーキュー７０ｓｈに蓄積すると判断した装置内パケット３に含まれるデータパケット２をシェイパーキュー７０ｓｈに格納し、それ以外の装置内パケット３を廃棄する。廃棄制御部６０ｓｈは、廃棄したパケットの廃棄数を計数する。読出部７１ｓｈは、シェイパーキュー７０ｓｈに蓄積されたデータパケット２を読み出して通信回線４０ｅへ出力する。
【００３６】
なお、宛先指定部５０、廃棄制御部６０ｖ、６０ｍ及び６０ｓｈ、パケット複製部５２ｍ、並びに読出部７１ｖ、７１ｍ及び７１ｓｈの上記動作は、図２に示すＬＳＩ２７により実行される。また、他の実施例ではこれらの動作の一部又は全部は、図２に示すネットワークプロセッサ２６により実行されてよい。また宛先情報保持部５１のための記憶領域は、図２に示すメモリ２３内に用意される。また、廃棄制御部６０ｓ、パケット複製部５２ｓ及び読出部７１ｓの上記動作は、図３２に示すＬＳＩ２７により実行される。
【００３７】
＜３．第１実施例＞
＜３．１  廃棄制御部６０ｖの機能構成例＞
続いて、廃棄制御部６０の実施例を以下に説明する。図６は、廃棄制御部６０ｖの第１例の機能ブロック図である。廃棄制御部６０ｖは、識別子抽出部６１と、廃棄数計数部６２と、キュー長検出部６３と、判定部６４と、閾値保持部６５と、廃棄数情報処理部６６と、パケット廃棄部６７を備える。なお、図６は、以下の説明に関係する機能を中心として示している。廃棄制御部６０ｖは、図示の構成要素以外の他の構成要素を含んでいてよい。廃棄制御部６０ｓ及び６０ｍも、廃棄制御部６０ｖと同様の構成を有していてよい。廃棄制御部６０ｖの他の実施例の機能ブロック図についても同様である。
【００３８】
識別子抽出部６１は、仮想出力キュー７０ｖに到来した装置内パケット３の装置内ヘッダから、データパケット２のフローを識別するフロー識別子ＦＩＤを抽出する。識別子抽出部６１は、このフロー識別子ＦＩＤのフローに属するパケットの廃棄数Ｃを廃棄数計数部６２から取得する。廃棄数計数部６２は、各フロー毎に、廃棄制御部６０ｖがそれぞれのフローのパケットを廃棄した廃棄数を格納する廃棄数テーブルを保持する。
【００３９】
図７は、廃棄数テーブルの第１例を示す。廃棄数テーブルは、情報要素「ＦＩＤ」と「廃棄数」を有する。情報要素「ＦＩＤ」は、パケット装置１が送受信するフローのフロー識別子ＦＩＤを示す。情報要素「廃棄数」は、それぞれのフロー識別子ＦＩＤのフローに属するパケットの廃棄数を示す。図７の例では、フロー識別子ＦＩＤがそれぞれ「１」、「２」、「３」、「４」…「Ｎ」であるフローに属するパケットの廃棄数は、それぞれ「０個」、「１個」、「５個」、「１０個」…「３個」である。
【００４０】
図６を参照する。識別子抽出部６１は、廃棄数計数部６２から取得した廃棄数Ｃを判定部６４へ出力する。キュー長検出部６３は、仮想出力キュー７０ｖのキュー長Ｌを監視して仮想出力キュー７０ｖのキュー長情報を判定部６４へ出力する。判定部６４は、閾値保持部６５に保持される廃棄数通知閾値Ｃｔｈ及び優先キュー長閾値Ｌｔｈを取得する。
【００４１】
判定部６４は、キュー長Ｌが仮想出力キュー７０ｖのバッファサイズ、すなわち仮想出力キュー７０ｖに蓄積可能な最大データ量と等しいか否かを判断する。キュー長Ｌが仮想出力キュー７０ｖのバッファサイズと等しい場合には、判定部６４はパケットを廃棄すると判断する。
【００４２】
キュー長Ｌが仮想出力キュー７０ｖのバッファサイズ未満である場合には、判定部６４は、次に廃棄数Ｃが廃棄数通知閾値Ｃｔｈ以上であるか否かを判断する。廃棄数Ｃが廃棄数通知閾値Ｃｔｈ以上である場合には、判定部６４は、廃棄数Ｃを示す廃棄数情報をパケットに格納して後段のスイッチカード３０へ送出すると判断する。この場合に判定部６４は、廃棄数情報を廃棄数情報処理部６６に出力し、廃棄数テーブルに格納されるフロー識別子ＦＩＤのフローのパケット廃棄数Ｃをリセットする。
【００４３】
廃棄数情報を送出すると判定部６４が判断する場合には、廃棄数情報処理部６６は、装置内パケット３が伝送される主信号のデータストリーム上で伝送されるパケットに廃棄数情報を格納する。廃棄数情報が格納されるパケットを「廃棄数情報パケット」と表記する。廃棄数情報処理部６６は、廃棄数情報パケットを仮想出力キュー７０ｖに格納する。仮想出力キュー７０ｖに格納されたパケットは、図４に示す読出部７１によって読み出されて後段のスイッチカード３０へ出力される。
【００４４】
図８の（Ａ）及び図８の（Ｂ）は、廃棄数情報パケットのフォーマットの第１例及び第２例を示す図である。廃棄数情報パケットに含まれる情報要素「宛先カード指定子」、「ＦＩＤ」及び「クラス指定子」の内容は図５の例と同様である。フロー識別子ＦＩＤは、廃棄数情報パケットに格納される廃棄数がいずれのフローの廃棄数であるかを識別する。
【００４５】
図８の（Ａ）の廃棄数情報パケットは、データパケット２に付加された装置内ヘッダ内にオプションフィールドを持ち、オプションフィールド内に廃棄数情報が格納される。廃棄数情報処理部６６は、到来した装置内パケット３の装置内ヘッダ内に廃棄数情報を格納する。
【００４６】
図８の（Ｂ）の廃棄数情報パケットの例は、データパケット２を含む装置内パケットとは別個に廃棄数情報を伝送するために新たに生成される制御パケットである。廃棄数情報処理部６６は、到来した装置内パケット３の装置内ヘッダを複製し、装置内ヘッダ内に廃棄数情報を格納することにより図８の（Ｂ）の制御パケットを生成する。
【００４７】
図８の（Ａ）及び図８の（Ｂ）の廃棄数情報パケットは、仮想出力キュー７０ｖに到来した装置内パケット３と同じ装置内ヘッダを持つため、装置内パケット３が運ぶデータパケット２が属するフローと同じ伝送経路で伝送される。したがって、あるフローのデータパケット２の廃棄数情報を運ぶ廃棄数情報パケットは、このフローのデータパケット２の廃棄数を計数する廃棄制御部６０ｓ、６０ｍ及び６０ｓｈへ転送される。
【００４８】
図６を参照する。廃棄数情報を送出すると判断しない場合には、判定部６４は、次にキュー長Ｌが優先キュー長閾値Ｌｔｈ以上であるか否かを判断する。キュー長Ｌが優先キュー長閾値Ｌｔｈ以上である場合に、判定部６４は装置内パケットを廃棄すると判断する。装置内パケットを廃棄する場合に判定部６４は、到来した装置内パケット３をパケット廃棄部６７へ出力する。パケット廃棄部６７は、この装置内パケット３を廃棄するとともに装置内パケット３が属するフローについて廃棄数テーブルに格納された廃棄数Ｃの値を、１つ増加させる。装置内パケット３を廃棄しない場合には、判定部６４は装置内パケット３を仮想出力キュー７０ｖに格納する。
【００４９】
なお、識別子抽出部６１、廃棄数計数部６２、キュー長検出部６３、判定部６４、廃棄数情報処理部６６及びパケット廃棄部６７の上記の動作は、図２に示すＬＳＩ２７により実行される。また、他の実施例ではこれらの動作の一部又は全部は、図２に示すネットワークプロセッサ２６により実行されてよい。また、廃棄数計数部６２が廃棄数テーブルの保持するための記憶領域と、閾値保持部６５が上記閾値Ｃｔｈ及びＬｔｈを保持するための記憶領域は、図２に示すメモリ２３内に用意される。
【００５０】
＜３．２  廃棄制御部６０ｖの動作説明＞
続いて、廃棄制御部６０ｖの動作について説明する。図９は、廃棄制御部６０ｖの動作の第１例の説明図である。なお、以下、図９を参照して説明する一連の動作は複数の手順を含む方法と解釈してよい。この場合に「オペレーション」を「ステップ」と読み替えてもよい。図１０、図１２、図１６、図１７、図１９、図２１及び図２６の場合も同様である。
【００５１】
オペレーションＡＡにおいて廃棄制御部６０ｖは、仮想出力キュー７０ｖに到来した装置内パケット３を受信する。オペレーションＡＢにおいて識別子抽出部６１は、装置内パケット３の装置内ヘッダから、データパケット２のフローを識別するフロー識別子ＦＩＤを抽出する。オペレーションＡＣにおいて識別子抽出部６１は、フロー識別子ＦＩＤのフローに属するパケットの廃棄数Ｃを廃棄数計数部６２から取得する。識別子抽出部６１は、廃棄数計数部６２から取得した廃棄数Ｃを判定部６４へ出力する。
【００５２】
オペレーションＡＤにおいてキュー長検出部６３は、仮想出力キュー７０ｖのキュー長Ｌを検出し、そのキュー長情報を判定部６４へ出力する。オペレーションＡＥにおいて、判定部６４はキュー長Ｌが仮想出力キュー７０ｖのバッファサイズであるか否かを判断する。キュー長Ｌがバッファサイズと等しい場合（オペレーションＡＥ：Ｙ）に処理はオペレーションＡＦに進む。キュー長Ｌがバッファサイズ未満の場合（オペレーションＡＥ：Ｎ）に処理はオペレーションＡＧに進む。
【００５３】
オペレーションＡＦにおいて、判定部６４は、装置内パケット３をパケット廃棄部６７へ出力する。パケット廃棄部６７は、装置内パケット３を廃棄し、フロー識別子ＦＩＤについて廃棄数テーブルに格納された廃棄数Ｃの値を１つ増加させる。その後処理は終了する。
【００５４】
オペレーションＡＧにおいて判定部６４は、廃棄数Ｃが廃棄数通知閾値Ｃｔｈ以上であるか否かを判断する。廃棄数Ｃが廃棄数通知閾値Ｃｔｈ以上である場合（オペレーションＡＧ：Ｙ）に処理はオペレーションＡＨへ進む。廃棄数Ｃが廃棄数通知閾値Ｃｔｈ以上でない場合（オペレーションＡＧ：Ｎ）に処理はオペレーションＡＩへ進む。
【００５５】
オペレーションＡＨにおいて廃棄数情報処理部６６は、廃棄数Ｃを示す廃棄数情報パケットを仮想出力キュー７０ｖに格納する。廃棄数情報パケットは、読出部７１によって後段のスイッチカード３０へ出力される。また判定部６４は、廃棄数テーブルに格納されるフロー識別子ＦＩＤのフローのパケット廃棄数Ｃをリセットする。その後処理はオペレーションＡＪへ進む。
【００５６】
オペレーションＡＩにおいて判定部６４は、キュー長Ｌが優先キュー長閾値Ｌｔｈ以上であるか否かを判断する。キュー長Ｌが優先キュー長閾値Ｌｔｈ以上である場合（オペレーションＡＩ：Ｙ）に処理はオペレーションＡＦに進む。ここで装置内パケットは廃棄される。キュー長Ｌが優先キュー長閾値Ｌｔｈ以上でない場合（オペレーションＡＩ：Ｎ）に処理はオペレーションＡＪへ進む。オペレーションＡＪにおいて判定部６４は、装置内パケットを仮想出力キュー７０ｖに格納する。装置内パケット３は、読出部７１ｖによって後段のスイッチカード３０へ出力される。
【００５７】
以上の説明から判るように、キュー長Ｌが仮想出力キュー７０ｖのバッファサイズ未満である限り、キュー長Ｌが優先キュー長閾値Ｌｔｈ以上でも廃棄数情報パケットは、仮想出力キュー７０ｖに格納される。一方で、廃棄数情報パケット以外のパケットは、キュー長Ｌが優先キュー長閾値Ｌｔｈ以上であれば廃棄される。このように廃棄数情報パケットは、他のパケットよりも優先して仮想出力キュー７０ｖにバッファリングされ、後段の回路に送信される。このため、輻輳時でも廃棄数情報パケットを後段に送りやすくなる。
【００５８】
＜３．３  廃棄制御部６０ｓ及び６０ｍの動作説明＞
続いて、廃棄制御部６０ｓ及び６０ｍの動作を以下に説明する。廃棄制御部６０ｓ及び廃棄制御部６０ｍの動作は、廃棄制御部６０ｖの動作に類似しており、以下、両者の相違点について説明する。
【００５９】
廃棄制御部６０ｓは、前段の廃棄制御部６０ｖが送信した廃棄数情報パケットを受信することがある。また、廃棄制御部６０ｍは、前段の廃棄制御部６０ｖ又は６０ｓが送信した廃棄数情報パケットを受信することがある。同様に、廃棄制御部６０ｓｈは、前段の廃棄制御部６０ｖ、６０ｓ又は６０ｍが送信した廃棄数情報パケットを受信することがある。一方で、上記の「３．１  廃棄制御部６０ｖの機能構成例」で説明したように、あるフローの廃棄数情報を含む廃棄数情報パケットは、同じフローのデータパケット２と同じ経路で伝送される。したがって、廃棄制御部６０ｓ、６０ｍ及び６０ｓｈは、受信した廃棄数情報パケットに含まれる廃棄数情報が計数されたフローと同一フローのデータパケット２の廃棄処理を行い、その廃棄数情報を有している。
【００６０】
廃棄制御部６０ｓの廃棄数情報処理部６６は、あるフローに関する廃棄数情報を含んだ廃棄数情報パケットを受信した場合に、このフローのデータパケット２について計数した廃棄数Ｃを、廃棄数情報パケットの廃棄数情報が示す廃棄数に加算する。廃棄数情報処理部６６は、廃棄数情報が加算された廃棄数情報パケットをスイッチキュー７０ｓへ格納する。読出部７１ｓにより廃棄数情報パケットは廃棄制御部６０ｍに転送される。廃棄制御部６０ｍも、同様の処理によって廃棄数情報パケットの廃棄数情報の加算と廃棄数情報パケットの転送を行う。
【００６１】
図１０は、廃棄制御部６０ｓの動作の一例の説明図である。オペレーションＢＡ〜ＢＦの動作は、図９を参照して説明した廃棄制御部６０ｖによるオペレーションＡＡ〜ＡＦの動作と同様である。オペレーションＢＧにおいて判定部６４は、受信した装置内パケット３が廃棄数情報パケットであるか否かを判断する。装置内パケット３が廃棄数情報パケットである場合（オペレーションＢＧ：Ｙ）に処理はオペレーションＢＨへ進む。装置内パケット３が廃棄数情報パケットでない場合（オペレーションＢＧ：Ｎ）に処理はオペレーションＢＩへ進む。
【００６２】
オペレーションＢＨにおいて判定部６４は、廃棄数情報パケットに含まれるフロー識別子ＦＩＤのフローに属するパケットの廃棄数Ｃを示す廃棄数情報を廃棄数情報処理部６６に出力する。また、また判定部６４は、廃棄数テーブルに格納されるフロー識別子ＦＩＤのフローのパケット廃棄数Ｃをリセットする。廃棄数情報処理部６６は、廃棄数Ｃを、廃棄数情報パケットの廃棄数情報が示す廃棄数に加算する。その後、処理はオペレーションＢＬへ進む。
【００６３】
オペレーションＢＬにおいて廃棄数情報処理部６６は、廃棄数情報が加算された廃棄数情報パケットをスイッチキュー７０ｓへ格納する。オペレーションＢＩ〜ＢＬの動作は、図９を参照して説明した廃棄制御部６０ｖによるオペレーションＡＧ〜ＡＪの動作と同様である。
【００６４】
なお、キュー長Ｌがスイッチキュー７０ｓのバッファサイズ未満である限り（オペレーションＢＥ：Ｎ）、キュー長Ｌが優先キュー長閾値Ｌｔｈ以上でも受信した廃棄数情報パケットもスイッチキュー７０ｓに格納される。一方で、廃棄数情報パケット以外のパケットは、キュー長Ｌが優先キュー長閾値Ｌｔｈ以上であれば廃棄される（オペレーションＢＫ：Ｙ）。このように廃棄数情報パケットは、他のパケットよりも優先してスイッチキュー７０ｓにバッファリングされ、後段の回路に送信される。このため、輻輳時でも廃棄数情報パケットを後段に送りやすくなる。
【００６５】
なお、廃棄制御部６０ｓにおける識別子抽出部６１、廃棄数計数部６２、キュー長検出部６３、判定部６４、廃棄数情報処理部６６及びパケット廃棄部６７の動作は、図３に示すＬＳＩ３２により実行される。
【００６６】
＜３．５  廃棄制御部６０ｓｈの機能構成例＞
続いて、廃棄制御部６０ｓｈの実施例を以下に説明する。図１１は、廃棄制御部６０ｓｈの一例の機能ブロック図である。なお、図１１は、以下の説明に関係する機能を中心として示している。廃棄制御部６０ｓｈは、図示の構成要素以外の他の構成要素を含んでいてよい。また、廃棄制御部６０ｓｈの構成は、廃棄制御部６０ｖの構成に類似しており、以下、両者の相違点について説明する。
【００６７】
判定部６４は、あるフローに関する廃棄数情報パケットを受信した場合に、このフローについて廃棄数テーブルに格納された廃棄数Ｃの値に、廃棄数情報パケットの廃棄数情報が示す廃棄数を加えて廃棄数テーブルを更新する。また、廃棄制御部６０ｓｈはコマンド受付部８６を備える。コマンド受付部８６は、制御カード１０のプロセッサ１１から送信される廃棄数要求コマンドを受け付ける。コマンド受付部８６は、廃棄数要求コマンドに応答して、廃棄数テーブルに格納された廃棄数Ｃの値を制御カード１０のプロセッサ１１へ送信する。
【００６８】
なお、廃棄制御部６０ｓｈにおける識別子抽出部６１、廃棄数計数部６２、キュー長検出部６３、判定部６４、パケット廃棄部６７及びコマンド受付部８６の動作は、図２に示すＬＳＩ２７により実行される。また、他の実施例ではこれらの動作の一部又は全部は、図２に示すネットワークプロセッサ２６により実行されてよい。
【００６９】
＜３．５  廃棄制御部６０ｓｈの動作説明＞
図１２は、廃棄制御部６０ｓｈの動作の一例の説明図である。オペレーションＣＡ〜ＣＤの動作は、図９を参照して説明した廃棄制御部６０ｖによるオペレーションＡＡ〜ＡＤの動作と同様である。オペレーションＣＥにおいて判定部６４はキュー長Ｌが仮想出力キュー７０ｖのバッファサイズであるか否かを判断する。キュー長Ｌがバッファサイズと等しい場合（オペレーションＣＥ：Ｙ）に処理はオペレーションＡＦに進む。キュー長Ｌがバッファサイズ未満の場合（オペレーションＣＥ：Ｎ）に処理はオペレーションＣＧに進む。
【００７０】
オペレーションＣＦにおいて判定部６４は、装置内パケット３をパケット廃棄部６７へ出力する。パケット廃棄部６７は、装置内パケット３を廃棄し、フロー識別子ＦＩＤについて廃棄数テーブルに格納された廃棄数Ｃの値を１つ増加させる。その後処理はオペレーションＣＫへ進む。オペレーションＣＧにおいて判定部６４は、受信した装置内パケット３が廃棄数情報パケットであるか否かを判断する。装置内パケット３が廃棄数情報パケットである場合（オペレーションＣＧ：Ｙ）に処理はオペレーションＣＨへ進む。装置内パケット３が廃棄数情報パケットない場合（オペレーションＣＧ：Ｎ）に処理はオペレーションＣＩへ進む。
【００７１】
オペレーションＣＨにおいて判定部６４は、識別子抽出部６１が抽出したフロー識別子ＦＩＤのフローについて廃棄数テーブルに格納された廃棄数Ｃの値に、廃棄数情報パケットの廃棄数情報が示す廃棄数を加えて廃棄数テーブルを更新する。その後処理はオペレーションＣＪへ進む。
【００７２】
オペレーションＣＩにおいて判定部６４は、所定の優先制御や帯域制御の条件に応じて、装置内パケット３を廃棄するか否かを判断する。装置内パケット３が廃棄される場合（オペレーションＣＩ：Ｙ）に処理はオペレーションＣＦに進む。装置内パケット３が廃棄されない場合（オペレーションＣＩ：Ｎ）に処理はオペレーションＣＪに進む。オペレーションＣＪにおいて判定部６４は、受信した装置内パケット３に格納されているデータパケット２をシェイパーキュー７０ｓｈに格納する。データパケット２は、読出部７１ｓｈによって通信回線４０ｅへ出力される。その後処理はオペレーションＣＫに進む。
【００７３】
オペレーションＣＫにおいてコマンド受付部８６は、制御カード１０のプロセッサ１１から廃棄数要求コマンドを受信したか否かを判断する。廃棄数要求コマンドが受信された場合（オペレーションＣＫ：Ｙ）に処理はオペレーションＣＬへ進む。廃棄数要求コマンドが受信されていない場合（オペレーションＣＫ：Ｎ）に処理は終了する。オペレーションＣＬにおいてコマンド受付部８６は、廃棄数テーブルに格納された廃棄数Ｃの値をプロセッサ１１へ送信する。
【００７４】
＜３．６  廃棄制御部６０ｓの動作の一例＞
続いて、想定された状況下での廃棄制御部６０の動作例を説明する。廃棄制御部６０ｓの動作を例にする。いま、ＦＩＤ＝「１」、「２」、「３」及び「４」のフローが存在する場合を想定する。図１３は、廃棄数テーブルの値の一例を示す。フロー識別子ＦＩＤがそれぞれ「１」、「２」、「３」及び「４」であるフローに属するパケットの廃棄数は、それぞれ「０個」、「１個」、「０個」及び「３個」である。
【００７５】
また、廃棄数通知閾値Ｃｔｈ、優先キュー長閾値Ｌｔｈ、バッファサイズの値は、それぞれ「３個」、「５個」及び「１０個」であり、現在のキュー長Ｌは「６個」である。なお、この例では、優先キュー長閾値Ｌｔｈ、バッファサイズ及びキュー長Ｌの単位は、仮想出力キュー７０ｖ格納されるパケット数である。
【００７６】
まず、初めにフロー識別子ＦＩＤ＝「１」の廃棄数情報パケットでない装置内パケットが到来すると、識別子抽出部６１は、廃棄数計数部６２から廃棄数Ｃ＝「０個」を取得する。判定部６４は、キュー長Ｌがバッファサイズに達しているか否かを判断する（図１０のオペレーションＢＥ）。この場合、キュー長Ｌ＝「６個」は、バッファサイズ＝「１０個」に達していないので、パケット廃棄部６７による装置内パケットの廃棄と廃棄数の計数は行われない。
【００７７】
次に、判定部６４は、到来したパケットが廃棄数情報パケットであるか否かを判断する（図１０のオペレーションＢＧ）。この場合、パケットは廃棄数情報パケットでないため、廃棄数情報パケットの廃棄数情報が示す廃棄数の加算処理とスイッチキュー７０ｓへの廃棄数情報パケットの格納は行われない。
【００７８】
次に、判定部６４は、廃棄数Ｃが廃棄数通知閾値Ｃｔｈ以上であるか否かを判断する（図１０のオペレーションＢＩ）。この場合、廃棄数Ｃ＝「０個」は廃棄数通知閾値Ｃｔｈ＝「３個」よりも小さい。したがって廃棄数情報パケットは送信されない。また、判定部６４は、廃棄数テーブルに格納されるフロー識別子ＦＩＤ＝「１」の廃棄数Ｃをリセットしない。
【００７９】
次に、判定部６４は、キュー長Ｌが優先キュー長閾値Ｌｔｈ以上であるか否かを判断する（図１０のオペレーションＢＫ）。キュー長Ｌ＝「６個」は、優先キュー長閾値Ｌｔｈ＝「５個」よりも大きいので、パケット廃棄部６７による装置内パケットの廃棄と、廃棄数の計数が行われる。この結果、廃棄数テーブルに格納されるフロー識別子ＦＩＤ＝「１」の廃棄数Ｃは「０」から「１」へ増加する。
【００８０】
次に、フロー識別子ＦＩＤ＝「２」の廃棄数情報パケットが到来する場合を想定する。識別子抽出部６１は、廃棄数計数部６２から廃棄数Ｃ＝「１個」を取得する。判定部６４は、キュー長Ｌがバッファサイズに達しているか否かを判断する（図１０のオペレーションＢＥ）。この場合、キュー長Ｌ＝「６個」は、バッファサイズ＝「１０個」に達していないので、装置内パケットの廃棄と廃棄数の計数は行われない。
【００８１】
次に、判定部６４は、到来したパケットが廃棄数情報パケットであるか否かを判断する（図１０のオペレーションＢＧ）。この場合、パケットは廃棄数情報パケットであるため、廃棄数Ｃ＝「１個」が廃棄数通知閾値Ｃｔｈ＝「３個」以上でなくても、廃棄数情報処理部６６は、廃棄数情報パケットの廃棄数情報が示す廃棄数に廃棄数Ｃ＝「１個」を加算する。また、廃棄数情報処理部６６は、スイッチキュー７０ｓへ廃棄数情報パケットを格納する。この結果、キュー長Ｌは「６個」から「７個」に増加する。スイッチキュー７０ｓに格納された廃棄数情報パケットは、後段の廃棄制御部６０ｍへ送信される。また、判定部６４は、廃棄数テーブルに格納されるフロー識別子ＦＩＤ＝「２」の廃棄数Ｃを「０」にリセットする。
【００８２】
次に、フロー識別子ＦＩＤ＝「４」の廃棄数情報パケットでない装置内パケットが到来する場合を想定する。識別子抽出部６１は、廃棄数計数部６２から廃棄数Ｃ＝「３個」を取得する。判定部６４は、キュー長Ｌがバッファサイズに達しているか否かを判断する（図１０のオペレーションＢＥ）。この場合、キュー長Ｌ＝「６個」は、バッファサイズ＝「１０個」に達していないので、パケット廃棄部６７による装置内パケットの廃棄と、廃棄数の計数は行われない。
【００８３】
次に、判定部６４は、到来したパケットが廃棄数情報パケットであるか否かを判断する（図１０のオペレーションＢＧ）。この場合、パケットは廃棄数情報パケットでないため、廃棄数情報パケットの廃棄数情報が示す廃棄数の加算処理と、スイッチキュー７０ｓへの廃棄数情報パケットの格納は行われない。
【００８４】
次に、判定部６４は、廃棄数Ｃが廃棄数通知閾値Ｃｔｈ以上であるか否かを判断する（図１０のオペレーションＢＩ）。この場合、廃棄数Ｃ＝「３個」は廃棄数通知閾値Ｃｔｈ＝「３個」以上である。この結果、廃棄数情報処理部６６は、廃棄数Ｃ＝「３個」の廃棄数情報を含む廃棄数情報パケットをスイッチキュー７０ｓに格納する。スイッチキュー７０ｓに格納された廃棄数情報パケットは、後段の廃棄制御部６０ｍへ送信される。また、判定部６４は、廃棄数テーブルに格納されるフロー識別子ＦＩＤ＝「２」の廃棄数Ｃを「０」にリセットする。
【００８５】
＜３．７  実施例の効果＞
次に、実施例の効果について説明する。本実施例によれば、パケット装置１内のいずれかのパケット廃棄箇所であるフローについて計数した廃棄数が閾値を超えた場合にのみ、廃棄数を収集するための廃棄数情報パケットがデータストリーム上に流される。このため、一定の周期で廃棄数情報パケットを送信することに比べると、不要に廃棄数情報パケットを流すことによるデータストリームの帯域圧迫が軽減される。
【００８６】
また本実施例では、廃棄数情報パケットは、廃棄数情報パケット以外の装置内パケット３よりも優先してキュー７０に格納され、後段の回路に送信される。このため、輻輳時に廃棄数情報パケットが伝送途中で廃棄される機会を低減することができる。
【００８７】
また、図８の（Ａ）に示す廃棄数情報パケットのように、データパケット２を格納する装置内パケット３に廃棄数情報を格納することで、廃棄数情報の伝送に使用される宛先カード指定子やＦＩＤをデータパケット２と共用することができる。この結果、廃棄数情報の伝送が占めるデータストリームの伝送帯域量を低減することができる。
【００８８】
一方で、図８の（Ｂ）に示す廃棄数情報パケットのように、データパケット２を格納する装置内パケット３を分けることで、データパケット２と廃棄数情報パケットを個別に処理することが容易になる。例えばある実施例では、データパケット２を運ぶ装置内パケット３のクラス指定子が示す優先度よりも、廃棄数情報パケットのクラス指定子が示す優先度を高くしてよい。この結果、廃棄数情報パケットは、データパケット２よりも優先して後段に伝送される。
【００８９】
＜４．第２実施例＞
続いて、他の実施例について説明する。図１４は、廃棄制御部６０ｖの第２例の機能ブロック図である。以下、第１実施例の廃棄制御部６０ｖとの相違点について説明する。廃棄制御部６０ｖは、タイマ８０と、フラグ設定部８１を備える。タイマ８０は、一定期間の経過を繰り返し計時する。
【００９０】
廃棄数計数部６２が保持する廃棄数テーブルは、情報要素「収集フラグ」を有する。図１５は、廃棄数テーブルの第２例を示す。情報要素「収集フラグ」は、それぞれのフロー識別子ＦＩＤのフローに属するパケットの廃棄数を収集する時期が到来したか否かを示すフラグである。例えば、値「１」は収集する時期が到来したことを示し、値「０」は現在が収集する時期でないことを示す。図１５の例では、ＦＩＤ＝１及び３のフローに属するパケットの廃棄数の収集時期が到来しており、現在はＦＩＤ＝２、４及びＮのフローに属するパケットの廃棄数の収集時期ではない。
【００９１】
図１４を参照する。フラグ設定部８１は、タイマ８０が一定期間の計時を完了すると廃棄数テーブルの収集フラグの値を「１」にセットする。タイマ８０の計時及び収集フラグのセットは、各フロー毎に個別に行っても、複数のフローや全フローについて同時に行ってもよい。
【００９２】
図１６は、フラグ設定部８１の動作の一例の説明図である。オペレーションＤＡにおいてフラグ設定部８１は、タイマ８０を起動する。オペレーションＤＢにおいてフラグ設定部８１は、タイマ８０が満期になったか否かを判断する。タイマ８０が満期になった場合（オペレーションＤＢ：Ｙ）に処理はオペレーションＤＣへ進む。タイマ８０が満期でない場合（オペレーションＤＢ：Ｎ）に処理はオペレーションＤＢに戻る。オペレーションＤＣにおいてフラグ設定部８１は、収集フラグの値を「１」にセットする。その後処理はオペレーションＤＡに戻る。
【００９３】
図１４を参照する。判定部６４は、識別子抽出部６１が抽出したフロー識別子ＦＩＤについて廃棄数テーブルに記憶されている収集フラグの値を取得する。判定部６４は、廃棄数Ｃが「０」より大きく且つ収集フラグの値が「１」にセットされている場合には、廃棄数Ｃが廃棄数通知閾値Ｃｔｈ未満でも廃棄数情報パケットを送出すると判断する。
【００９４】
図１７は、廃棄制御部６０ｖの動作の第２例の説明図である。オペレーションＥＡ〜ＥＧの動作は、図９を参照して説明したオペレーションＡＡ〜ＡＧの動作と同様である。オペレーションＥＩにおいて判定部６４は、受信した装置内パケット３のフローについて廃棄数テーブルに記憶されている収集フラグの値を取得する。判定部６４は、廃棄数Ｃが「０」より大きく且つ収集フラグの値が「１」にセットされているか否かを判断する。
【００９５】
廃棄数Ｃが「０」より大きく且つ収集フラグの値が「１」にセットされている場合（オペレーションＥＩ：Ｙ）に処理はオペレーションＥＨに進む。廃棄数Ｃが「０」であるか収集フラグの値が「０」である場合（オペレーションＥＩ：Ｎ）に処理はオペレーションＥＪに進む。オペレーションＥＨでは、廃棄数情報処理部６６は、廃棄数Ｃを示す廃棄数情報パケットを仮想出力キュー７０ｖに格納し、廃棄数情報パケットは、後段のスイッチカード３０へ出力される。また、判定部６４は、装置内パケット３のフローの収集フラグの値を「０」にリセットする。その後処理は、オペレーションＥＬへ進む。
【００９６】
オペレーションＥＪにおいて判定部６４は、装置内パケット３のフローの収集フラグの値を「０」にリセットする。その後に処理はオペレーションＥＫに進む。オペレーションＥＫ〜ＥＬの動作は、図９を参照して説明したオペレーションＡＩ〜ＡＪの動作と同様である。
【００９７】
なお、廃棄制御部６０ｓ及び廃棄制御部６０ｍも同様にタイマ８０及びフラグ設定部８１を備えてよい。同様に、廃棄制御部６０ｓ及び廃棄制御部６０ｍの判定部６４も、廃棄数テーブルの収集フラグの値に応じて廃棄数情報を送出するか否かを判定してよい。
【００９８】
なお、タイマ８０及びフラグ設定部８１の上記の動作は、図２に示すＬＳＩ２７により実行される。また、他の実施例ではこれらの動作の一部又は全部は、図２に示すネットワークプロセッサ２６により実行されてよい。
【００９９】
本実施例によれば、廃棄制御部６０が廃棄数情報を有している少なくとも一定間隔毎に、廃棄制御部６０が保有する廃棄数情報を収集することが可能となる。したがって、パケット装置１内の伝送路の途中のパケット廃棄箇所で、廃棄数情報が長期間滞留してしまう可能性を低減できる。
【０１００】
＜５．第３実施例＞
続いて、他の実施例について説明する。図１８は、廃棄制御部６０ｖの第３例の機能ブロック図である。以下、第１実施例の廃棄制御部６０ｖとの相違点について説明する。廃棄制御部６０ｖは、タイマ８２と、廃棄数情報パケット生成部８３を備える。
【０１０１】
タイマ８２は、一定期間の経過を繰り返し計時する。廃棄数情報パケット生成部８３は、タイマ８２が一定期間の計時を完了する度に、パケット装置１が入出力するフローの全部の廃棄数をそれぞれ収集する廃棄数情報パケットを生成する。廃棄数情報パケット生成部８３は、それぞれ廃棄数情報パケットの情報要素「ＦＩＤ」に値を設定することによって廃棄数を収集するフローを指定する。
【０１０２】
廃棄数情報パケット生成部８３は、生成したパケットをパケット装置１内のパケットの廃棄箇所のいずれよりも上流に設けられた宛先指定部５０に入力する。宛先指定部５０は、情報要素「ＦＩＤ」に基づいて宛先のイーグレス側のインタフェースカード２０ｅとクラスを特定し、これらを廃棄数情報パケットに格納してから廃棄制御部６０ｖへ入力する。
【０１０３】
図１９は、廃棄数情報パケット生成部８３の動作の第１例の説明図である。オペレーションＦＡにおいて廃棄数情報パケット生成部８３は、タイマ８２を起動する。オペレーションＦＢにおいて廃棄数情報パケット生成部８３は、タイマ８２が満期になったか否かを判断する。タイマ８２が満期になった場合（オペレーションＦＢ：Ｙ）に処理はオペレーションＦＣへ進む。タイマ８２が満期でない場合（オペレーションＦＢ：Ｎ）に処理はオペレーションＦＢに戻る。オペレーションＦＣにおいて廃棄数情報パケット生成部８３は、廃棄数情報パケットを生成して宛先指定部５０へ送信する。その後処理はオペレーションＦＡに戻る。
【０１０４】
なお、本実施例の廃棄制御部６０ｖは、廃棄数情報パケット生成部８３が生成した廃棄数情報パケットを受信する。このため、廃棄制御部６０ｖの廃棄数情報処理部６６は、「３．３  廃棄制御部６０ｓ及び６０ｍの動作説明」で説明した廃棄制御部６０ｓの動作と同様に、廃棄数情報パケットの廃棄数情報の加算と廃棄数情報パケットの転送を行う。以下の第４実施例においても同様である。
【０１０５】
なお、タイマ８２と、廃棄数情報パケット生成部８３の上記の動作は、図２に示すＬＳＩ２７により実行される。また、他の実施例ではこれらの動作の一部又は全部は、図２に示すネットワークプロセッサ２６により実行されてよい。
【０１０６】
本実施例では、一定周期毎に全てのフローの廃棄数情報パケットが流れる。廃棄数情報パケットには、最前段の廃棄制御部６０ｖから順に全ての廃棄制御部６０で計数された廃棄数が収集される。このため、パケット装置１内の伝送路の途中のパケット廃棄箇所で、廃棄数情報が長期間滞留してしまうことを防止することができる。
【０１０７】
＜６．第４実施例＞
続いて、他の実施例について説明する。図２０は、廃棄制御部６０ｖの第４例の機能ブロック図である。以下、第３実施例の廃棄制御部６０ｖとの相違点について説明する。廃棄制御部６０ｖは、コマンド受付部８６を備える。コマンド受付部８６は、制御カード１０のプロセッサ１１から送信される廃棄数情報パケット送信コマンドを受け付ける。制御カード１０のプロセッサ１１は、例えば、ユーザからのコマンド受付によって廃棄数情報パケット送信コマンドを発行する。
【０１０８】
コマンド受付部８６は、廃棄数情報パケット送信コマンドに応答して、廃棄数情報パケット生成部８３に廃棄数情報パケットを生成させる指示信号を出力する。廃棄数情報パケット生成部８３は指示信号に応答して、パケット装置１が入出力するフローの全部の廃棄数をそれぞれ収集する廃棄数情報パケットを生成し、宛先指定部５０に入力する。
【０１０９】
図２１は、廃棄数情報パケット生成部８３の動作の第２例の説明図である。オペレーションＧＡにおいてコマンド受付部８６は、廃棄数情報パケット送信コマンドを受信したか否かを判断する。廃棄数情報パケット送信コマンドが受信された場合（オペレーションＧＡ：Ｙ）に処理はオペレーションＧＢへ進む。廃棄数情報パケット送信コマンドが受信されない場合（オペレーションＧＡ：Ｎ）に処理はオペレーションＧＡへ戻る。コマンドＧＢにおいて廃棄数情報パケット生成部８３は、廃棄数情報パケットを生成して宛先指定部５０へ送信する。その後処理はオペレーションＧＡに戻る。
【０１１０】
なお、第３実施例も第４実施例と同様にコマンド受付部８６を備え、廃棄数情報パケット送信コマンドに応じて、廃棄数情報パケット生成部８３が廃棄数情報パケットを宛先指定部５０へ送信してもよい。
【０１１１】
なお、コマンド受付部８６と、廃棄数情報パケット生成部８３の上記の動作は、図２に示すＬＳＩ２７により実行される。また、他の実施例ではこれらの動作の一部又は全部は、図２に示すネットワークプロセッサ２６により実行されてよい。
【０１１２】
本実施例によれば、制御カード１０のプロセッサ１１がコマンドを出力した時点で、パケット装置１内に廃棄数情報パケットを流すことができる。廃棄数情報パケットには、最前段の廃棄制御部６０ｖから順に全ての廃棄制御部６０で計数された廃棄数が収集される。このため、このため、制御カード１０のプロセッサ１１は、コマンド出力時点における、パケット装置１内の伝送路上の全てのパケット廃棄箇所で計数された廃棄数の最新情報を取得することができる。また、ユーザからのコマンド受付に応答して廃棄数情報パケット送信コマンドを発行することにより、ユーザは、パケット装置１内の伝送路上の全てのパケット廃棄箇所で計数された廃棄数の最新情報を取得することができる。
【０１１３】
＜７．第５実施例＞
続いて、他の実施例について説明する。パケット装置１は、マルチキャストパケットについても、マルチキャストパケットのデータを送るフロー毎に、経路上の全廃棄数の和をカウントする。この機能は、例えばＭＥＦ（Metro Ethernet Forum）１５の使用に準拠する。マルチキャストパケットについても各フロー上の廃棄数を集計することで、例えば、マルチキャストサービスのユーザの一部のみについてサービス障害が発生した場合に、各ユーザ毎の障害状況を把握することができる。
【０１１４】
図４を参照して、パケット装置１内におけるマルチキャストパケットの転送処理を説明する。データパケット２が到来すると、宛先指定部５０は、データパケット２がマルチキャストパケットであるかユニキャストパケットであるか否かを判断する。宛先指定部５０は、判断結果に応じた装置内ヘッダをデータパケット２に付加した装置内パケット３を出力する。
【０１１５】
図２２は、装置内パケット３のフォーマットの第２例を示す。装置内ヘッダは、情報要素「宛先カード指定子」、「ＦＩＤ」、「クラス指定子」、「ＭＣフラグ」及び「ＭＩＤ」を含む。情報要素「宛先カード指定子」及び「クラス指定子」の内容は、図５の例と同様である。情報要素「ＭＣフラグ」は、データパケット２がマルチキャストパケットであるかユニキャストパケットであるか否かを示す。
【０１１６】
データパケット２がユニキャストである場合に、情報要素「ＦＩＤ」にはデータパケット２のフローを識別するフロー識別子が格納される。データパケット２がマルチキャストパケットである場合に、宛先指定部５０は、データパケット２のマルチキャストグループを検出し、マルチキャストグループを識別するマルチキャスト識別子を情報要素「ＭＩＤ」に格納する。以下の説明において、マルチキャスト識別子ＭＩＤで識別されるマルチキャストグループのパケットを、単に、マルチキャスト識別子ＭＩＤのマルチキャストパケットと表現することがある。
【０１１７】
パケット複製部５２ｓに、マルチキャストパケットを運ぶ装置内パケット３が到着すると、パケット複製部５２ｓは装置内パケット３を転送するイーグレス側のインタフェースカード２０ｅを特定する。ある実施例では、パケット複製部５２ｓは、図２３の（Ａ）に示すビットマップテーブルを参照して転送先のインタフェースカード２０ｅを特定する。ビットマップテーブルは、情報要素「ＭＩＤ」と「ビットマップ」を有する。
【０１１８】
情報要素「ＭＩＤ」は、マルチキャスト識別子を示す。情報要素「ビットマップ」は、イーグレス側のインタフェースカード２０ｅの個数に対応する桁のビットマップである。本例では、ビットマップの桁数は「６４」である。ビットマップの各桁の値はそれぞれ「１」又は「０」のいずれかを持ち、値「１」のビット位置によって各マルチキャスト識別子を転送先のインタフェースカード２０ｅを示す。例えば図２３の（Ａ）の例では、情報要素「ＭＩＤ」＝１に対応するビットマップは、第１位、第２位及び第６４位のビットが値「１」を有する。このため、マルチキャスト識別子＝「１」のマルチキャストパケットの転送先として、第１番目、第２番目及び第６４番目のインタフェースカード２０ｅが指定される。
【０１１９】
パケット複製部５２ｓは、装置内パケット３を複製して、宛先のイーグレス側のインタフェースカード２０ｅの個数分の装置内パケット３を用意する。パケット複製部５２ｓは、それぞれの装置内パケット３の装置内ヘッダに、宛先のインタフェースカード２０ｅの指定子を格納する。この結果、マルチキャストパケットを格納する装置内パケット３は、ビットマップテーブルにて指定されるそれぞれのインタフェースカード２０ｅへ転送される。
【０１２０】
マルチキャストパケットが、宛先のインタフェースカード２０ｅのうちの何れかのパケット複製部５２ｍに到着すると、パケット複製部５２ｍは、到着したマルチキャストパケットのデータを送信するユニキャストフローを特定する。ある実施例では、パケット複製部５２ｍは、図２３の（Ｂ）及び図２３の（Ｃ）に示すリスト構造を示すテーブルを参照してユニキャストフローを特定する。
【０１２１】
図２３の（Ｂ）のテーブルは、情報要素「ＭＩＤ」と「開始ＦＩＤ」を有する。情報要素「ＭＩＤ」は、マルチキャスト識別子を示す。情報要素「開始ＦＩＤ」は、各マルチキャスト識別子のマルチキャストのデータを送信するユニキャストフローのフロー識別子のリストの先頭のフロー識別子を示す。
【０１２２】
図２３の（Ｃ）のテーブルは、情報要素「ＦＩＤ」と「次ＦＩＤ」と「終了フラグ」を有する。情報要素「ＦＩＤ」は、フロー識別子のリストに含まれるいずれかのフロー識別子を示す。情報要素「次ＦＩＤ」は、フロー識別子のリスト中の情報要素「ＦＩＤ」のフロー識別子の次のフロー識別子を示す。情報要素「終了フラグ」は、情報要素「次ＦＩＤ」のフロー識別子が、フロー識別子のリストの最後の要素であるか否かを示す。情報要素「終了フラグ」が「１」であるとき、情報要素「次ＦＩＤ」のフロー識別子はリストの最後の要素であり、情報要素「終了フラグ」が「０」であるとき、情報要素「次ＦＩＤ」のフロー識別子に続く次のフロー識別子が存在する。
【０１２３】
例えば図２３の（Ｂ）及び図２３の（Ｃ）の例では、情報要素「ＭＩＤ」＝１に対応するユニキャストフローのフロー識別子のリストの先頭のフロー識別子は「３」である。また、フロー識別子「３」にはフロー識別子「４」が続き、フロー識別子「４」にはフロー識別子「５」が続く。フロー識別子「５」は、フロー識別子のリストの最後の要素である。このため、図２３の（Ｂ）及び図２３の（Ｃ）のリスト構造は、マルチキャスト識別子＝「１」のマルチキャストパケットのデータを送信するユニキャストフローのフロー識別子が、「３」、「４」及び「５」であることを示す。
【０１２４】
パケット複製部５２ｍは、装置内パケット３を複製して、特定したユニキャストのフローの数の装置内パケット３を用意する。パケット複製部５２ｍは、それぞれの装置内パケット３の情報要素「ＦＩＤ」に特定したフロー識別子を格納する。この結果、それぞれの装置内パケット３を流すユニキャストフローが特定される。パケット複製部５２ｍは、装置内パケット３を廃棄制御部６０ｓｈへ入力する。なお、上記のパケット複製部５２ｓ及びパケット複製部５２ｍによるマルチキャストパケットの転送動作は、実施例の説明のための例示である。本実施例は他の転送動作を採用してもよい。
【０１２５】
図２４は、廃棄制御部６０ｖの第５例の機能ブロック図である。以下、第１実施例の廃棄制御部６０ｖとの相違点について説明する。廃棄制御部６０ｖは、種別判別部９０と、第２廃棄数計数部９１を備える。種別判別部９０は、仮想出力キュー７０ｖに到来した装置内パケット３の装置内ヘッダから、情報要素「ＭＣフラグ」を抽出する。種別判別部９０は、情報要素「ＭＣフラグ」に応じて装置内パケット３がマルチキャストパケットを格納しているかユニキャストパケットを格納しているかを判断する。
【０１２６】
装置内パケット３がユニキャストパケットを格納している場合の動作は、上記の「３．第１実施例」で記載した動作と同様である。装置内パケット３がマルチキャストパケットを格納している場合に、識別子抽出部６１は、装置内ヘッダからマルチキャスト識別子ＭＩＤを抽出する。識別子抽出部６１は、このマルチキャスト識別子ＭＩＤのマルチキャストパケットの廃棄数Ｃを第２廃棄数計数部９１から取得する。
【０１２７】
第２廃棄数計数部９１は、マルチキャスト識別子ＭＩＤ毎に、廃棄制御部６０ｖがそれぞれの識別子ＭＩＤのマルチキャストパケットを廃棄した廃棄数を格納する廃棄数テーブルを保持する。廃棄数テーブルの構造は、図７に示す廃棄数テーブルの構造と同様である。
【０１２８】
識別子抽出部６１は、廃棄数計数部６２から取得した廃棄数Ｃを判定部６４へ出力する。キュー長検出部６３は、仮想出力キュー７０ｖのキュー長Ｌを監視して仮想出力キュー７０ｖのキュー長情報を判定部６４へ出力する。判定部６４は、閾値保持部６５に保持される廃棄数通知閾値Ｃｔｈ及び優先キュー長閾値Ｌｔｈを取得する。
【０１２９】
判定部６４は、検出したキュー長Ｌ、仮想出力キュー７０ｖのバッファサイズ及び優先キュー長閾値Ｌｔｈに基づいて、装置内パケット３を廃棄するか否かを判断する。判定部６４は、廃棄数計数部６２から得た廃棄数Ｃと廃棄数通知閾値Ｃｔｈに基づき、識別子ＭＩＤのマルチキャストパケットの廃棄数情報を後段のスイッチカード３０へ送出するか否かを、マルチキャスト識別子ＭＩＤ毎に判断する。廃棄の可否判断動作及び廃棄数情報の送信可否判断動作は、上記の「３．第１実施例」で記載した動作と同様である。
【０１３０】
廃棄数情報を送出すると判定部６４が判断する場合には、廃棄数情報処理部６６は、マルチキャスト識別子ＭＩＤ毎に、廃棄数情報パケットに廃棄数情報を格納する。図２５の（Ａ）及び図２５の（Ｂ）は廃棄数情報パケットのフォーマットの第３例及び第４例を示す図である。廃棄数情報パケットに含まれる情報要素「宛先カード指定子」、「ＦＩＤ」及、「クラス指定子」、「ＭＣフラグ」、「ＭＩＤ」の内容は図２２の例と同様である。マルチキャスト識別子ＭＩＤは、廃棄数情報パケットに格納される廃棄数が、どのマルチキャスト識別子ＭＩＤのマルチパケットの廃棄数であるかを識別する。
【０１３１】
図２５の（Ａ）の廃棄数情報パケットは、データパケット２に付加された装置内ヘッダ内にオプションフィールド内に廃棄数情報が格納される。図２５の（Ｂ）の廃棄数情報パケットの例は、データパケット２を含む装置内パケットとは別個に廃棄数情報を伝送するために新たに生成される。廃棄数情報処理部６６は、マルチキャスト識別子ＭＩＤ毎に用意した廃棄数情報パケットを、仮想出力キュー７０ｖに格納する。仮想出力キュー７０ｖに格納されたパケットは、図４に示す読出部７１によって読み出されて後段のスイッチカード３０へ出力される。
【０１３２】
図２６は、廃棄制御部６０ｖの動作の第５例の説明図である。オペレーションＨＡにおいて、廃棄制御部６０ｖは、仮想出力キュー７０ｖに到来した装置内パケット３を受信する。オペレーションＨＢにおいて種別判別部９０は、装置内パケット３がマルチキャストパケットを格納しているか否かを判断する。装置内パケット３がユニキャストパケットを格納している場合（オペレーションＨＢ：Ｎ）には、以降の動作は、図９に示すオペレーションＡＢ以下の動作と同様である。装置内パケット３がマルチキャストパケットを格納している場合（オペレーションＨＢ：Ｙ）には、処理はオペレーションＨＣへ進む。
【０１３３】
オペレーションＨＣにおいて識別子抽出部６１は、装置内ヘッダからマルチキャスト識別子ＭＩＤを抽出する。オペレーションＨＤにおいて識別子抽出部６１は、このマルチキャスト識別子ＭＩＤのマルチキャストパケットの廃棄数Ｃを第２廃棄数計数部９１から取得する。
【０１３４】
オペレーションＨＥ〜ＨＧの動作は、図９に示すオペレーションＡＤ〜ＡＦの動作と同様である。オペレーションＨＨにおいて判定部６４は、廃棄数Ｃが廃棄数通知閾値Ｃｔｈ以上であるか否かを判断する。廃棄数Ｃが廃棄数通知閾値Ｃｔｈ以上である場合（オペレーションＨＨ：Ｙ）に処理はオペレーションＨＩへ進む。廃棄数Ｃが廃棄数通知閾値Ｃｔｈ以上でない場合（オペレーションＨＨ：Ｎ）に処理はオペレーションＨＪへ進む。
【０１３５】
オペレーションＨＩにおいて廃棄数情報処理部６６は、マルチキャスト識別子ＭＩＤ毎に、廃棄数Ｃを示す廃棄数情報パケットを仮想出力キュー７０ｖに格納する。廃棄数情報パケットは、読出部７１によって後段のスイッチカード３０へ出力される。また判定部６４は、廃棄数テーブルに格納される、マルチキャスト識別子ＭＩＤのマルチキャストパケットの廃棄数Ｃをリセットする。その後処理はオペレーションＨＫへ進む。オペレーションＨＪ及びオペレーションＨＫの動作は、図９に示すオペレーションＡＩ及びＡＪの動作と同様である。
【０１３６】
なお、種別判別部９０及び第２廃棄数計数部９１の上記の動作は、図２に示すＬＳＩ２７により実行される。また、他の実施例ではこれらの動作の一部又は全部は、図２に示すネットワークプロセッサ２６により実行されてよい。
【０１３７】
また、廃棄制御部６０ｓ及び廃棄制御部６０ｍも同様に、種別判別部９０及び第２廃棄数計数部９１を備え、廃棄制御部６０ｖと同様に、マルチキャスト識別子毎に廃棄数情報パケットを送信する。廃棄制御部６０ｓ及び廃棄制御部６０ｍは、マルチキャスト識別子毎に送信された廃棄数情報パケットについても、上記「３．４  廃棄制御部６０ｓの動作説明」で説明した動作と同様に、廃棄数情報の加算と廃棄数情報パケットの転送を行う。
【０１３８】
続いて、想定された状況下におけるマルチキャストパケットの廃棄数を集計する廃棄制御部６０の動作例を説明する。いま、図２３を参照して説明した例と同様に、マルチキャスト識別子ＭＩＤ＝１のマルチキャストパケットは、第１番目、第２番目及び第６４番目のイーグレス側のインタフェースカード２０ｅに転送されると想定する。また、第６４番目のインタフェースカード２０ｅは、マルチキャスト識別子ＭＩＤ＝１のマルチキャストパケットを複製して、フロー識別子ＦＩＤ＝「３」、「４」及び「５」のユニキャストフロー用のパケットを用意する。
【０１３９】
図２７の（Ａ）は、図４に示す廃棄制御部６０ｖに保持される廃棄数テーブルの状態を示す。図２７の（Ｂ）は、６４番目のインタフェースカード２０ｅへ出力するパケットを蓄積するスイッチキュー７０ｓでパケット廃棄処理を行う廃棄制御部６０ｓに保持される廃棄数テーブルの状態を示す。図２７の（Ｃ）及び図２７の（Ｄ）は、それぞれ、６４番目のインタフェースカード２０ｅの廃棄制御部６０ｍ及び６０ｓｈに保持される廃棄数テーブルの状態を示す。
【０１４０】
廃棄数情報パケットが流れる前は、廃棄制御部６０ｖ、６０ｓ及び廃棄制御部６０ｍに保持されるマルチキャスト識別子ＭＩＤ＝１のマルチキャストパケットの廃棄数は、それぞれ「２００」、「１００」及び「５０」である。また、廃棄数情報パケットが流れる前は、６０ｓｈに保持されるフロー識別子ＦＩＤ＝「３」、「４」及び「５」のパケットの廃棄数は、それぞれ「ｃ１」、「ｃ２」及び「ｃ３」である。
【０１４１】
廃棄制御部６０ｖで保持される廃棄数＝「２００」が廃棄数通知閾値Ｃｔｈ以上であると、廃棄制御部６０ｖは、マルチキャスト識別子ＭＩＤ＝１のマルチキャストパケットの廃棄数情報を格納した廃棄数情報パケットを送信する。この結果、廃棄制御部６０ｖで保持される廃棄数は「０」にリセットされる。廃棄数情報パケットが保有する廃棄数情報の値は「２００」である。
【０１４２】
廃棄数情報パケットがパケット複製部５２ｓに到着すると、パケット複製部５２ｓは廃棄数情報パケットを複製して、第１番目、第２番目及び第６４番目のインタフェースカード２０ｅにそれぞれ転送するための廃棄数情報パケットを用意する。廃棄数情報パケットは、第１番目、第２番目及び第６４番目のインタフェースカード２０ｅへの出力されるパケットを蓄積するスイッチキュー７０ｓへ送られる。
【０１４３】
廃棄制御部６０ｓに到着すると、廃棄制御部６０ｓは保持しているマルチキャスト識別子ＭＩＤ＝１のマルチキャストパケットの廃棄数「１００」を、廃棄数情報パケットの廃棄数情報に加える。この結果、廃棄数情報パケットが保有する廃棄数情報の値は「３００」に増加する。また、廃棄制御部６０ｓで保持される廃棄数「０」にリセットされる。この廃棄数情報パケットは、第６４番目のインタフェースカード２０ｅへ送られる。
【０１４４】
廃棄制御部６０ｍに到着すると、廃棄制御部６０ｍは保持しているマルチキャスト識別子ＭＩＤ＝１のマルチキャストパケットの廃棄数「５０」を、廃棄数情報パケットの廃棄数情報に加える。この結果、廃棄数情報パケットが保有する廃棄数情報の値は「３５０」に増加する。また、廃棄制御部６０ｍで保持される廃棄数「０」にリセットされる。
【０１４５】
廃棄数情報パケットがパケット複製部５２ｍに到着すると、パケット複製部５２ｍは廃棄数情報パケットを複製して、フロー識別子ＦＩＤ＝「３」、「４」及び「５」を持つ廃棄数情報パケットを用意する。パケット複製部５２ｍは、廃棄数情報パケットを、廃棄制御部６０ｓｈに送信する。
【０１４６】
廃棄制御部６０ｓｈに到着すると、廃棄制御部６０ｓｈは受信した廃棄数情報パケットの廃棄数情報の値「３５０」を、６０ｓｈに保持されるフロー識別子ＦＩＤ＝「３」、「４」及び「５」のパケットの廃棄数に加える。この結果、それぞれの廃棄数は、「ｃ１＋３５０」、「ｃ２＋３５０」及び「ｃ３＋３５０」に更新される。
【０１４７】
このようにパケットの伝送経路においてマルチキャストパケットの廃棄が発生すると、マルチキャスト識別子毎に廃棄数情報パケットが伝送され、マルチキャストのコピー処理によってフロー毎の廃棄数情報パケットが生成される。このためマルチキャストパケットの廃棄が発生すると、その廃棄数は、廃棄制御部６０ｓｈにおいてマルチキャストパケットのデータを送るフロー毎の廃棄数に加算される。したがって本実施例によれば、マルチキャストパケットの廃棄が発生すると、マルチキャストパケットのデータを送るフロー毎にその廃棄数を集計することができる。
【０１４８】
また、本実施例では、マルチキャストパケットの廃棄数を、そのマルチキャストパケットのデータが送られるフロー毎の廃棄数として運ぶフロー毎の廃棄数情報パケットを、パケットパケット装置１のマルチキャストのコピー処理を利用して生成する。このため、パケット装置１に大きな変更を加えることなくマルチキャストパケットの廃棄数をフロー毎に集計することが可能となる。
【０１４９】
また、本第５実施例の廃棄制御部６０においても上述の第２実施例と同様にタイマ８０とフラグ設定部８１を備えてよい。また、本第５実施例の廃棄制御部６０ｖにおいても、上述の第３実施例及び第４実施例と同様に、タイマ８２、廃棄数情報パケット生成部８３及びコマンド受付部８６を備えてもよい。
【０１５０】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
第１パケット処理回路と第２パケット処理回路とを備え、
前記第１パケット処理回路は、
データパケットのうちの、何れかのデータパケットを廃棄し他のデータパケットを前記第２パケット処理回路へ向けて転送する処理と、
前記データパケットの廃棄数を計数する処理と、
前記廃棄数が閾値以上であるか否かを判定する処理と、
前記廃棄数が閾値以上である場合に、前記廃棄数を示す廃棄数情報を含む廃棄数情報パケットを前記第２パケット処理回路へ向けて転送する処理と、を実行し、
前記第２パケット処理回路は、
前記データパケットのうち何れかのデータパケットを廃棄する処理と、
前記データパケットの廃棄数を計数する処理と、
前記第２パケット処理回路が計数した廃棄数と前記廃棄数情報パケットに含まれる廃棄数情報が示す廃棄数とを収集する処理と、を実行することを特徴とするパケット中継装置。
（付記２）
前記廃棄数情報パケットは、前記廃棄数を示す廃棄数情報を前記データパケットに付加したパケットであることを特徴とする付記１に記載のパケット中継装置。
（付記３）
前記第１パケット処理回路は、前記データパケットとは別に生成されて前記廃棄数を示す廃棄数情報を含むパケットである廃棄数情報パケットを廃棄せずに、第２パケット処理回路へ向けて転送することを特徴とする付記１又は２に記載のパケット中継装置。
（付記４）
前記データパケット及び前記廃棄数情報パケットを蓄積するためのキューが記憶される記憶部を備え、
前記第１パケット処理回路は、
前記キューのキュー長を検出する処理と、
前記キュー長が第１閾値よりも長い場合に前記廃棄数情報パケット以外のデータパケットを廃棄する処理と、
前記キュー長が前記第１閾値よりも大きな第２閾値よりも短い場合に前記廃棄数情報パケットを前記キューに蓄積する処理と、
前記キューに蓄積されているパケットを前記第２パケット処理回路へ向けて転送する処理と、を実行することを特徴とする付記３に記載のパケット中継回路。
（付記５）
前記第１パケット処理回路は、
所定期間を繰り返し計時する処理と、
前記所定期間の計時が完了した場合に前記廃棄数が閾値未満でも前記廃棄数情報パケットを送信する処理と、を実行することを特徴とする付記１〜４のいずれか一項に記載のパケット中継回路。
（付記６）
前記フローについて前記廃棄数情報パケットを一定周期で生成して、前記第１パケット処理回路へ入力する処理を実行する制御回路を備え、
前記第１パケット処理回路は、該第１パケット処理回路が前記フローについて計数した廃棄数を加算することにより前記廃棄数情報パケットにより通知される廃棄数を更新した後に、該廃棄数情報パケットを前記第２パケット処理回路に向けて転送する処理を実行することを特徴とする付記１〜５のいずれか一項に記載のパケット中継装置。
（付記７）
前記廃棄数情報パケットを生成するコマンドを受け付ける処理と、該コマンドを受け付けた場合に前記廃棄数情報パケットを生成して、前記第１パケット処理回路へ入力する処理を実行する制御回路を備え、
前記第１パケット処理回路は、該第１パケット処理回路が前記フローについて計数した廃棄数を加算することにより前記廃棄数情報パケットにより通知される廃棄数を更新した後に、該廃棄数情報パケットを前記第２パケット処理回路へ転送する処理を実行することを特徴とする付記１〜５のいずれか一項に記載のパケット中継装置。
（付記８）
前記第１パケット処理回路が多段接続され、
前記制御回路は、多段接続された前記第１パケット処理回路のうち最前段のものに前記廃棄数情報パケットを入力することを特徴とする付記６又は７に記載のパケット中継装置。
（付記９）
前記データパケットはユニキャストパケットであることを特徴とする付記１〜８のいずれか一項に記載のパケット中継装置。
（付記１０）
前記第１パケット処理回路と前記第２パケット処理回路との間にパケット複製回路を備え、
前記データパケットがマルチキャストパケットである場合に前記第１パケット処理回路は、
前記マルチキャストパケットのマルチキャストグループ毎に前記マルチキャストパケットの廃棄数を計数する処理と、
前記廃棄数が閾値以上であるか否かを判定する処理と、
前記廃棄数が閾値以上である場合に、前記マルチキャストグループ毎に前記廃棄数を通知する廃棄数情報パケットを前記パケット複製回路へ向けて転送する処理と、を実行し、
前記パケット複製回路は、マルチキャストグループ毎に転送される廃棄数情報パケットを、前記マルチキャストパケットの宛先分複製してそれぞれ前記第２パケット処理回路に向けて転送する処理を実行することを特徴とする付記１〜８のいずれか一項に記載のパケット中継装置。
（付記１１）
パケット中継装置によるデータパケットの廃棄数の測定方法であって、
前記パケット中継装置が、第１パケット処理回路と第２パケット処理回路とを備え、
前記測定方法は、
データパケットのうちの、何れかのデータパケットを廃棄し他のデータパケットを前記第２パケット処理回路へ向けて転送する処理と、
前記データパケットの廃棄数を計数する処理と、
前記廃棄数が閾値以上であるか否かを判定する処理と、
前記廃棄数が閾値以上である場合に、前記廃棄数を示す廃棄数情報を含む廃棄数情報パケットを前記第２パケット処理回路へ向けて転送する処理と、前記第１パケット処理回路に実行させ、
前記データパケットのうち何れかのデータパケットを廃棄する処理と、
前記データパケットの廃棄数を計数する処理と、
前記第２パケット処理回路が計数した廃棄数と前記廃棄数情報パケットに含まれる廃棄数情報が示す廃棄数とを収集する処理と、を前記第２パケット処理回路に実行させることを特徴とするデータパケットの廃棄数の測定方法。
【符号の説明】
【０１５１】
１    パケット装置
１０    制御カード
２０、２０−１、２０−２、２０−ｎ、２０ｉ、２０ｅ    インタフェースカード
３０    スイッチカード
５２ｓ、５２ｍ    パケット複製部
６０、６０ｖ、６０ｓ、６０ｍ、６０ｓｈ    廃棄制御部
７０ｖ    仮想出力キュー
７０ｓ    スイッチキュー
７０ｍ    マルチキャストキュー
７０ｓｈ    シェイパーキュー
【図１】
2013187616.tif 000003
【図２】
2013187616.tif 000004
【図３】
2013187616.tif 000005
【図４】
2013187616.tif 000006
【図５】
2013187616.tif 000007
【図６】
2013187616.tif 000008
【図７】
2013187616.tif 000009
【図８】
2013187616.tif 000010
【図９】
2013187616.tif 000011
【図１０】
2013187616.tif 000012
【図１１】
2013187616.tif 000013
【図１２】
2013187616.tif 000014
【図１３】
2013187616.tif 000015
【図１４】
2013187616.tif 000016
【図１５】
2013187616.tif 000017
【図１６】
2013187616.tif 000018
【図１７】
2013187616.tif 000019
【図１８】
2013187616.tif 000020
【図１９】
2013187616.tif 000021
【図２０】
2013187616.tif 000022
【図２１】
2013187616.tif 000023
【図２２】
2013187616.tif 000024
【図２３】
2013187616.tif 000025
【図２４】
2013187616.tif 000026
【図２５】
2013187616.tif 000027
【図２６】
2013187616.tif 000028
【図２７】
2013187616.tif 000029