(57)【要約】【課題】  ログの解析が容易な伝送装置及びパケット制御方法を提供する。【解決手段】  伝送装置は、パケットをそれぞれ格納する複数の領域を有する格納部と、前記パケットを前記複数の領域のそれぞれに順次に書き込む書き込み部と、前記書き込み部により前記パケットが前記複数の領域に書き込まれた時刻を示す時刻情報を前記パケットごとに記録する記録部と、前記パケットを前記複数の領域のそれぞれから順次に読み出す読み出し部と、前記読み出し部により読み出された前記パケットごとの前記時刻情報に基づき、前記複数の領域のうち、前記パケットが読み出された各領域に、前記書き込み部が新たなパケットを書き込む順序を決定する決定部とを有する。【選択図】図５
2016208241.tif 000002
【特許請求の範囲】
【請求項１】
パケットをそれぞれ格納する複数の領域を有する格納部と、
前記パケットを前記複数の領域のそれぞれに順次に書き込む書き込み部と、
前記書き込み部により前記パケットが前記複数の領域に書き込まれた時刻を示す時刻情報を前記パケットごとに記録する記録部と、
前記パケットを前記複数の領域のそれぞれから順次に読み出す読み出し部と、
前記読み出し部により読み出された前記パケットごとの前記時刻情報に基づき、前記複数の領域のうち、前記パケットが読み出された各領域に、前記書き込み部が新たなパケットを書き込む順序を決定する決定部とを有することを特徴とする伝送装置。
【請求項２】
前記決定部は、前記読み出し部により読み出された前記パケットごとの前記時刻情報のうち、最も古い時刻を示す前記時刻情報の前記パケットが読み出された領域を、前記新たなパケットが最初に書き込まれる領域に決定することを特徴とする請求項１に記載された伝送装置。
【請求項３】
前記読み出し部は、前記パケットを読み出すたびに、前記複数の領域のうち、前記パケットが格納された領域を示すポインタ情報を、前記パケットの前記時刻情報とともに前記決定部に出力し、
前記決定部は、前記読み出し部から入力された前記ポインタ情報を前記パケットごとにバッファに格納し、前記ポインタ情報が格納されたバッファの個数が一定数に達したとき、最も古い時刻を示す前記時刻情報に応じた前記ポインタ情報を前記書き込み部に出力し、
前記書き込み部は、前記決定部から入力された前記ポインタ情報が示す領域に前記新たなパケットを書き込むことを特徴とする請求項１または２に記載の伝送装置。
【請求項４】
前記決定部は、前記バッファごとに、前記ポインタ情報が格納されてから経過した時刻を監視し、該経過した時刻が一定の時間を超えた前記バッファ内のポインタ情報を前記書き込み部に出力することを特徴とする請求項３に記載の伝送装置。
【請求項５】
前記記録部は、前記複数の領域に書き込まれる前記パケットに前記時刻情報を付与することを特徴とする請求項１乃至４の何れかに記載の伝送装置。
【請求項６】
前記読み出し部により前記パケットが前記複数の領域から読み出された時刻を示す読出時刻情報を前記パケットごとに付与する付与部を、さらに有することを特徴とする請求項１乃至５の何れかに記載の伝送装置。
【請求項７】
パケットを格納する格納部内の複数の領域のそれぞれにパケットを順次に書き込み、
前記パケットが前記複数の領域に書き込まれた時刻を示す時刻情報をパケットごとに記録し、
前記パケットを前記複数の領域のそれぞれから順次に読み出し、
読み出された前記パケットごとの前記時刻情報に基づき、前記複数の領域のうち、前記パケットが読み出された各領域に新たなパケットを書き込む順序を決定することを特徴とするパケット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、伝送装置及びパケット制御方法に関する。
【背景技術】
【０００２】
他装置からパケットを受信して一時的にバッファに格納する装置が知られている（例えば特許文献１）。この種の装置で障害が発生した場合、装置内で取集された警報やバッファに格納されたパケットのログを解析することにより、障害要因が特定される。とりわけパケットのログは、装置外の通信環境がわかるだけでなく、パケットの読み出し後もバッファ内の複数の領域にスナップショットとして残されるため、障害要因の特定に有用である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３００２０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
バッファに書き込まれるパケットの順序とバッファから読み出されるパケットの順序は、パケットごとに読み出しの優先度が設けられているため、相違する。このため、パケットは、バッファに格納された順序とは異なる順序でバッファから読み出される。
【０００５】
したがって、後着のパケットが先着のパケットより先にバッファから読み出された場合、後着のパケットが格納されたバッファ内の領域に新たなパケットが格納されると、後着のパケットのスナップショットが上書きされてしまう。このため、障害発生の時刻の前後のパケットのログを時系列に従って取得することができないので、ログの解析が困難である。
【０００６】
そこで本件は上記の課題に鑑みてなされたものであり、ログの解析が容易な伝送装置及びパケット制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本明細書に記載の伝送装置は、パケットをそれぞれ格納する複数の領域を有する格納部と、前記パケットを前記複数の領域のそれぞれに順次に書き込む書き込み部と、前記書き込み部により前記パケットが前記複数の領域に書き込まれた時刻を示す時刻情報を前記パケットごとに記録する記録部と、前記パケットを前記複数の領域のそれぞれから順次に読み出す読み出し部と、前記読み出し部により読み出された前記パケットごとの前記時刻情報に基づき、前記複数の領域のうち、前記パケットが読み出された各領域に、前記書き込み部が新たなパケットを書き込む順序を決定する決定部とを有する。
【０００８】
本明細書に記載のパケット制御方法は、パケットを格納する格納部内の複数の領域のそれぞれにパケットを順次に書き込み、前記パケットが前記複数の領域に書き込まれた時刻を示す時刻情報をパケットごとに記録し、前記パケットを前記複数の領域のそれぞれから順次に読み出し、読み出された前記パケットごとの前記時刻情報に基づき、前記複数の領域のうち、前記パケットが読み出された各領域に新たなパケットを書き込む順序を決定する方法である。
【発明の効果】
【０００９】
ログを容易に解析できる。
【図面の簡単な説明】
【００１０】
【図１】伝送装置の一例を示す構成図である。
【図２】トラフィック制御部とパケットバッファの比較例（パケット書き込み時）を示す構成図である。
【図３】パケットバッファのマップの一例を示す図である。
【図４】トラフィック制御部とパケットバッファの比較例（パケット読み出し時）を示す構成図である。
【図５】トラフィック制御部とパケットバッファの実施例を示す構成図である。
【図６】ポインタ制御部の一例を示す構成図である。
【図７】ポインタ情報の出力処理の一例を示すフローチャートである。
【図８】ポインタ情報の検索処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
図１は、伝送装置の一例を示す構成図である。本実施例において、伝送装置として、他装置から受信したパケットを宛先へと転送するレイヤ２スイッチを挙げるが、これに限定されず、レイヤ３スイッチなどの他種類の伝送装置であってもよい。また、本実施例において、パケットとしては、イーサネット（登録商標、以下同様）フレームを挙げるが、これに限定されず、ＩＰ（Internet Protocol）パケットやＡＴＭ（Asynchronous Transfer Mode）セルなどの他種類のパケットが用いられてもよい。
【００１２】
伝送装置は、通信回線を介したパケットの送受信を処理する複数の回線ユニット１と、複数の回線ユニット１の間でパケットを交換するスイッチユニット（ＳＷ）２とを有する。複数の回線ユニット１及びスイッチユニット２は、伝送装置の筐体の前面に設けられた複数のスロットにそれぞれ挿入される電気回路基板であって、その筐体の背面に設けられた配線基板と電気コネクタを介して電気的に接続される。これにより、複数の回線ユニット１及びスイッチユニット２は、互いにパケットを送受信できる。
【００１３】
なお、伝送装置には、複数の回線ユニット１及びスイッチユニット２を監視制御する制御ユニットがさらに備えられてもよい。この場合、制御ユニットは、例えばＬＡＮ（Local Area Network）を介して、ネットワークを管理するネットワーク管理装置との間で制御情報を送受信する。
【００１４】
伝送装置は、監視制御部１０と、光送受信器１１と、ＰＨＹ／ＭＡＣ部１２と、パケット処理部１３ａ，１３ｂと、トラフィック制御部１４ａ，１４ｂと、スイッチインターフェース（ＳＷ−ＩＦ）部１５と、ルックアップテーブル１６ａ，１６ｂと、パケットバッファ１７ａ，１７ｂとを有する。なお、ルックアップテーブル１６ａ，１６ｂ及びパケットバッファ１７ａ，１７ｂは、例えばメモリなどの記憶手段により構成される。
【００１５】
光送受信器１１は、パケット（ＰＫＴ）を含む光信号を、伝送路９ａを介して受信するレシーバと、パケット（ＰＫＴ）を含む光信号を、伝送路９ｂを介して送信するトランシーバとを含む。なお、伝送路９ａ，９ｂとしては、例えば光ファイバが挙げられる。光送受信器１１は、受信した光信号を光−電気変換することにより電気信号を生成してＰＨＹ／ＭＡＣ部１２に出力し、ＰＨＹ／ＭＡＣ部１２から入力された電気信号を電気−光変換することにより光信号を生成して光送受信器１１に出力する。
【００１６】
ＰＨＹ／ＭＡＣ部１２は、通信のＰＨＹ（Physical）レイヤ及びＭＡＣ（Media Access Control）レイヤの機能を有する。ＰＨＹ／ＭＡＣ部１２は、光送受信器１１から入力された電気信号からパケットを取り出してパケット処理部１３ａに出力し、トラフィック制御部１４ｂから入力されたパケットを電気信号として光送受信器１１に出力する。
【００１７】
パケット処理部１３ａ及びトラフィック制御部１４ａは、イングレス方向のパケット処理、つまり他装置から受信されスイッチユニット２へ出力されるパケットを処理する。一方、パケット処理部１３ｂ及びトラフィック制御部１４ｂは、イーグレス方向のパケット処理、つまりスイッチユニット２から入力され他装置へ送信されるパケットを処理する。
【００１８】
パケット処理部１３ａ，１３ｂは、ルックアップテーブル１６ａ，１６ｂをそれぞれ参照することにより、パケットの宛先を検索する。ルックアップテーブル１６ａ，１６ｂには、例えばパケットのＳＡ（Source Address）及びＤＡ（Destination Address）に対応するように回線ユニット１の識別子やポート番号などが登録されている。パケット処理部１３ａ，１３ｂは、例えばＭＡＣアドレス学習機能によるパケットの宛先の学習結果に基づいてルックアップテーブル１６ａ，１６ｂを構成する。
【００１９】
パケット処理部１３ａ，１３ｂは、検索したパケットの宛先に関する情報を装置内ヘッダ内に含め、パケットに付与する。パケット処理部１３ａ，１３ｂは、装置内ヘッダが付与されたパケットをトラフィック制御部１４ａ，１４ｂにそれぞれ出力する。
【００２０】
トラフィック制御部１４ａ，１４ｂは、それぞれ、パケットを一時的にパケットバッファ１７ａ，１７ｂに格納することによりパケットの出力レートを制御する。これにより、回線ユニット１及びスイッチユニット２に処理能力以上のレートでパケットが入力されてパケットが損失することが防止される。
パケットバッファ１７ａ，１７ｂは、格納部の一例であり、パケットをそれぞれ格納する複数の領域を有する。パケットバッファ１７ａ，１７ｂ内の領域は、アドレスにより特定される。
【００２１】
トラフィック制御部１４ａは、パケットバッファ１７ａから読み出したパケットをＳＷ−ＩＦ部１５に出力する。また、トラフィック制御部１４ｂは、パケットバッファ１７ｂから読み出したパケットをＰＨＹ／ＭＡＣ部１２に出力する。
【００２２】
ＳＷ−ＩＦ部１５は、トラフィック制御部１４ａから入力されたパケットをスイッチユニット２に出力し、スイッチユニット２から入力されたパケットをパケット処理部１３ｂに出力する。スイッチユニット２は、回線ユニット１から入力されたパケットの装置内ヘッダを参照することで、パケットの宛先に応じた回線ユニット１にパケットを転送する。
【００２３】
監視制御部１０は、例えばＣＰＵ（Central Processing Unit）を含む回路により構成され、パケット処理部１３ａ，１３ｂ及びトラフィック制御部１４ａ，１４ｂの監視制御を行う。監視制御部１０は、例えば一定の時間周期でパケット処理部１３ａ，１３ｂ及びトラフィック制御部１４ａ，１４ｂの警報を収集してネットワーク管理装置に送信する。
【００２４】
また、監視制御部１０は、伝送装置に障害が発生したとき、トラフィック制御部１４ａ，１４ｂから、パケットバッファ１７ａ，１７ｂに残ったパケットのログ（つまりスナップショット）を収集してネットワーク管理装置に送信する。ネットワーク管理装置において、警報及びパケットのログは、伝送装置の障害要因の特定に用いられる。
【００２５】
しかし、以下に述べる比較例の場合、障害発生の時刻の前後のパケットのログを時系列に従って取得することができないという問題がある。
【００２６】
図２は、トラフィック制御部１４ａ，１４ｂとパケットバッファ１７ａ，１７ｂの比較例（パケット書き込み時）を示す構成図である。トラフィック制御部１４ａ，１４ｂは、バッファ制御部１４０と、書き込み制御部１４１と、読み出し制御部１４２とを有する。
【００２７】
書き込み制御部１４１は、書き込み部の一例であり、パケットをパケットバッファ１７ａ，１７ｂ内の複数の領域に順次に書き込む。書き込み制御部１４１は、パケットを所定量のパケットデータＤごとに分割し、各パケットデータＤに装置内ヘッダＨを付与してパケットバッファ１７ａ，１７ｂに書き込む。例えば、６４（Ｂｙｔｅ）単位でパケットを分割する場合、１２８（Ｂｙｔｅ）長のパケットは２個のパケットデータＤに分割される。
【００２８】
装置内ヘッダＨが付与されたパケットデータＤは、パケットバッファ１７ａ，１７ｂ内に仮想的に設けられたパケットごとのキューＱ１，Ｑ２，Ｑ３，・・・，Ｑｍに格納される。図２の例において、キューＱ１には３個のパケットデータＤに分割されたパケットが格納され、キューＱ２，Ｑ３には２個のパケットデータＤに分割されたパケットがそれぞれ格納されている。図２では、ｍ個のキューＱ１〜Ｑｍにパケットがそれぞれ格納された例が示されているが、キューＱ１〜Ｑｍの個数は格納するパケットの個数に応じて変化する。
【００２９】
また、「＊０」，「＊１」，「＊２」，・・・，「＊ｎ」（ｎ：正の整数）は、パケットが格納されたパケットバッファ１７ａ，１７ｂ内の領域を示すポインタ情報を表す。より具体的には、ポインタ情報「＊０」，「＊１」，「＊２」，・・・，「＊ｎ」は、パケットバッファ１７ａ，１７ｂ内の領域のアドレスを示す。
【００３０】
図２の例において、キューＱ１内のパケットは、「＊０」，「＊１」，「＊２」がそれぞれ示す領域に格納され、キューＱ２内のパケットは、「＊５」，「＊６」がそれぞれ示す領域に格納されている。また、キューＱ３内のパケットは、「＊３」，「＊４」がそれぞれ示す領域に格納されている。
【００３１】
図３には、パケットバッファ１７ａ，１７ｂのマップの一例が示されている。パケットバッファ１７ａ，１７ｂは、アドレスごとに装置内ヘッダＨとパケットデータＤのデータが格納されている。アドレスは、１６進数により表記されている。「００００」〜「０００６」は、ポインタ情報「＊０」〜「＊６」がそれぞれ示す領域のアドレスである。
【００３２】
次ポインタは、パケットが複数の領域にわたって格納される場合に各領域のデータ同士をリンクさせるため、矢印で示されるように、次のデータが格納された領域のアドレスを示す。例えば、図２のキューＱ１のパケットは、ポインタ情報「＊０」〜「＊２」が示すアドレス「００００」〜「０００２」の領域にわたって格納される。このため、アドレス「００００」の次ポインタは「０００１」を示し、アドレス「０００１」の次ポインタは「０００２」を示す。
【００３３】
このため、キューＱ１に格納されたパケットが読み出される場合、アドレス「００００」〜「０００２」のデータが順次に参照される。なお、次ポインタが「−」は、リンク対象の次のデータがないことを示す。
【００３４】
また、キューＱ２のパケットは、ポインタ情報「＊５」，「＊６」が示すアドレス「０００５」，「０００６」の領域にわたって格納される。このため、アドレス「０００５」の次ポインタは「０００６」を示す。さらに、キューＱ３のパケットは、ポインタ情報「＊３」，「＊４」が示すアドレス「０００３」，「０００４」の領域にわたって格納される。このため、アドレス「０００３」の次ポインタは「０００４」を示す。
【００３５】
再び図２を参照すると、読み出し制御部１４２は、パケットバッファ１７ａ，１７ｂの各領域からパケットを順次に読み出す。読み出し制御部１４２は、パケットの読み出しが完了したパケットバッファ１７ａ，１７ｂのアドレスを示すポインタ情報を、読み出した順序でバッファ制御部１４０に出力する。
【００３６】
バッファ制御部１４０は、読み出し制御部１４２から入力されたポインタ情報を、その入力された順序で格納するポインタキュー１４０ａを有する。バッファ制御部１４０は、ポインタキュー１４０ａの先頭に格納されたポインタ情報であるヘッドポインタＨＰと、ポインタキュー１４０ａの最後尾に格納されたポインタ情報であるテールポインタＴＰと、ポインタキュー１４０ａに格納された全てのポインタ情報の長さ（データ量）Ｌを管理する。
【００３７】
バッファ制御部１４０は、書き込み制御部１４１の要求に応じて、ヘッドポインタＨＰのポインタ情報を書き込み制御部１４１に出力する。つまり、ポインタキュー１４０ａに格納されたポインタ情報は、先頭から順次に書き込み制御部１４１に出力される。このため、ポインタキュー１４０ａに格納されるポインタ情報の順序とポインタキュー１４０ａから出力されるポインタ情報の順序は同じである。書き込み制御部１４１は、バッファ制御部１４０から入力されたポインタ情報が示す領域にパケットを順次に書き込む。
【００３８】
本例において、ポインタキュー１４０ａにはポインタ情報「＊０」，「＊１」，「＊２」，・・・，「＊ｎ」が、この順で格納されている。このため、バッファ制御部１４０は、符号Ｊ１で示されるように、その格納順（「＊０」，「＊１」，「＊２」，・・・，「＊ｎ」）でポインタ情報を書き込み制御部１４１に出力する。したがって、書き込み制御部１４１は、ポインタ情報「＊０」，「＊１」，「＊２」，・・・，「＊ｎ」が示す領域、つまりアドレス「００００」，「０００１」，「０００２」，・・・の各領域に順次にパケットを格納する。
【００３９】
より具体的には、１個目のパケットは、ポインタ情報「＊０」〜「＊２」が示す領域（アドレス「００００」〜「０００２」）に書き込まれ、２個目のパケットは、ポインタ情報「＊３」，「＊４」が示す領域（アドレス「０００３」，「０００４」）に書き込まれる。また、３個目のパケットは、ポインタ情報「＊５」，「＊６」が示す領域（アドレス「０００５」，「０００６」）に書き込まれる。
【００４０】
このように、書き込み制御部１４１は、読み出し制御部１４２によるパケットの読み出しで解放されたアドレスの領域に、解放された順でパケットを書き込む。しかし、以下に述べるように、パケットバッファ１７ａ，１７ｂに書き込まれるパケットの順序とパケットバッファ１７ａ，１７ｂから読み出されるパケットの順序は、パケットごとに読み出しの優先度が設けられているため、相違する。
【００４１】
図４は、トラフィック制御部１４ａ，１４ｂとパケットバッファ１７ａ，１７ｂの比較例（パケット読み出し時）を示す構成図である。図４において、図２と共通する構成については同一の符号を付し、その説明を省略する。
【００４２】
読み出し制御部１４２は、パケットごとに、つまりキューＱ１〜Ｑｍごとに優先度を判定し、優先度が高い順にパケットを読み出す。優先度は、例えば、パケットの宛先やパケット内のＶＬＡＮ（Virtual LAN）タグの優先度に基づき判定される。このため、パケットは、パケットバッファ１７ａ，１７ｂに格納された順序とは異なる順序でバッファから読み出される。
【００４３】
本例において、キューＱ２の優先度はキューＱ１より低く、キューＱ３より高いと仮定すると、読み出し制御部１４２は、キューＱ１からパケットを読み出した後、キューＱ３より先にキューＱ２からパケットを読み出す。つまり、後着であるキューＱ２のパケットが、先着であるキューＱ３のパケットより先に読み出されることになる。このため、読み出し制御部１４２は、符号Ｊ２で示されるように、ポインタ情報「＊０」，「＊１」，「＊２」，「＊５」，「＊６」，「＊３」，「＊４」，・・・，「＊ｎ」を、この順でバッファ制御部１４０に出力する。
【００４４】
したがって、ポインタキュー１４０ａには、ポインタ情報「＊０」，「＊１」，「＊２」，「＊５」，「＊６」，「＊３」，「＊４」，・・・，「＊ｎ」が、この順で格納される。つまり、ポインタキュー１４０ａのポインタ情報の格納順が、図２の例とは異なる。このため、パケットバッファ１７ａ，１７ｂからの読み出しが行われるたび、パケットバッファ１７ａ，１７ｂ内の各領域に対するパケットの書き込み順序は、初期の順序からの差異が大きくなってしまう。
【００４５】
上記のように、後着のパケットが先着のパケットより先にバッファから読み出された場合、後着のパケットが格納されたパケットバッファ１７ａ，１７ｂ内の領域に新たなパケットが格納されると、後着のパケットのスナップショットが上書きされてしまう。このため、障害発生の時刻の前後のパケットのログを時系列に従って取得することができないので、ログの解析が困難である。
【００４６】
そこで、実施例では、パケットバッファ１７ａ，１７ｂ内の複数の領域に順次に書き込まれるパケットごとに書き込み時刻を記録し、各領域から順次に読み出されたパケットの時刻情報に基づき、新たなパケットが書き込まれる領域の順序を決定することで、ログ解析を容易とする。
【００４７】
図５は、トラフィック制御部１４ａ，１４ｂとパケットバッファ１７ａ，１７ｂの実施例を示す構成図である。図５において、図２と共通する構成については同一の符号を付し、その説明を省略する。
【００４８】
トラフィック制御部１４ａ，１４ｂは、バッファ制御部１４０と、書き込み制御部１４１と、読み出し制御部１４２ａと、書き込み時刻記録部１４３と、読み出し時刻記録部１４４と、ポインタ制御部１４５と、計時部１４６と、ログ取得部１４７とを有する。
【００４９】
ログ取得部１４７は、監視制御部１０からの要求に応じて、パケットバッファ１７ａ，１７ｂに格納されたパケットのログを、スナップショットとして取得する。監視制御部１０は、例えば伝送装置に障害が発生したとき、ログ取得を要求する。ログ取得部１４７は、取得したスナップショットを監視制御部１０に出力する。
【００５０】
計時部１４６は、例えば、外部から入力されるパルス信号に基づいて現在時刻ＣＴを計時する。計時部１４６は、現在時刻ＣＴを書き込み時刻記録部１４３、読み出し時刻記録部１４４、及びポインタ制御部１４５に通知する。
【００５１】
書き込み時刻記録部１４３は、記録部の一例であり、書き込み制御部１４１によりパケットがパケットバッファ１７ａ，１７ｂ内の領域に書き込まれた時刻を示す時刻情報（以下、「書き込み時刻」と表記）をパケットごとに記録する。より具体的には、書き込み時刻記録部１４３は、書き込み制御部１４１とパケットバッファ１７ａ，１７ｂの間に設けられ、書き込み制御部１４１から入力されたパケットの装置内ヘッダＨに、現在時刻ＣＴを書き込み時刻ＷＴとして記録する。書き込み時刻が記録されたパケットはパケットバッファ１７ａ，１７ｂに入力される。
【００５２】
このため、パケットバッファ１７ａ，１７ｂに格納されたパケットの装置内ヘッダＨには書き込み時刻ＷＴが記録されおり、パケットバッファ１７ａ，１７ｂからパケットのログを取得したときにパケットの書き込み時刻ＷＴの参照が可能である。なお、書き込み時刻記録部１４３は、装置内ヘッダＨに限らず、トラフィック制御部１４ａ，１４ｂの内部または外部に設けられたテーブルに書き込み時刻ＷＴを記録してもよい。
【００５３】
読み出し制御部１４２ａは、読み出し部の一例であり、パケットをパケットバッファ１７ａ，１７ｂ内の複数の領域のそれぞれから順次に読み出す。読み出し制御部１４２ａは、比較例の読み出し制御部１４２と同様に、優先度が高いパケットから順次に読み出す。
【００５４】
読み出し制御部１４２ａは、パケットを読み出すたびに、読み出したパケットが格納された領域を示すポインタ情報「＊ｉ」を、パケットの書き込み時刻ＷＴとともにポインタ制御部１４５に出力する。より具体的には、読み出し制御部１４２ａは、読み出されたパケットの装置内ヘッダＨから書き込み時刻ＷＴを取得して、そのパケットが格納されていた領域を示す全ポインタ情報とをまとめてポインタ制御部１４５に出力する。
【００５５】
読み出し時刻記録部１４４は、付与部の一例であり、読み出し制御部１４２ａによりパケットがパケットバッファ１７ａ，１７ｂ内の複数の領域から読み出された時刻を示す読出時刻情報（以下、「読み出し時刻」と表記）をパケットごとに付与する。より具体的には、読み出し時刻記録部１４４は、読み出し制御部１４２ａから入力されたパケットの装置内ヘッダＨに読み出し時刻を記録する。このため、トラフィック制御部１４ａ，１４ｂから読み出されたパケットのログを取得すると、そのパケットの読み出し時刻を参照することが可能となる。
【００５６】
ポインタ制御部１４５は、決定部の一例であり、読み出し制御部１４２ａにより読み出されたパケットごとの書き込み時刻ＷＴに基づき、パケットが読み出されたパケットバッファ１７ａ，１７ｂ内の各領域に、書き込み制御部１４１が新たなパケットを書き込む順序を決定する。このため、書き込み制御部１４１は、パケットバッファ１７ａ，１７ｂ内の各空き領域に対し、その空き領域に対応する書き込み時刻ＷＴの順序に従って新たなパケットを順次に書き込む。したがって、書き込み制御部１４１は、比較例とは異なり、パケットバッファ１７ａ，１７ｂ内の各領域に一定の順序でパケットを書き込むことができる。
【００５７】
これにより、後着のパケットが先着のパケットより先にバッファから読み出された場合でも、後着のパケットが格納された領域に新たなパケットが格納されることで後着のパケットのスナップショットが上書きされてしまうことが防止される。このため、ログ取得部１４７は、障害発生の時刻の前後のパケットのログを時系列に従ってパケットバッファ１７ａ，１７ｂから取得することができる。
【００５８】
より具体的には、ポインタ制御部１４５は、読み出し制御部１４２ａから入力されたポインタ情報を、各ポインタ情報に対応する書き込み時刻ＷＴに基づいて時系列に並び替えてバッファ制御部１４０に出力する。例えば符号Ｊ３で示されるように、読み出し制御部１４２ａが、ポインタ情報「＊０」，「＊１」，「＊２」，「＊５」，「＊６」，「＊３」，「＊４」，・・・，「＊ｎ」を、この順でポインタ制御部１４５に出力した場合を挙げる。この場合、ポインタ制御部１４５は、符号Ｊ４で示されるように、ポインタ情報を時系列に従って「＊０」，「＊１」，「＊２」，「＊３」，「＊４」，「＊５」，「＊６」，・・・，「＊ｎ」の順に並び替えてバッファ制御部１４０に出力する。
【００５９】
このため、ポインタキュー１４０ａには、ポインタ情報「＊０」，「＊１」，「＊２」，「＊５」，「＊６」，「＊３」，「＊４」，・・・，「＊ｎ」が、この順で格納される。したがって、書き込み制御部１４１は、ポインタ情報「＊０」，「＊１」，「＊２」，「＊５」，「＊６」，「＊３」，「＊４」，・・・，「＊ｎ」が示すパケットバッファ１７ａ，１７ｂ内の各領域に、この順で新たなパケットを書き込む。よって、パケットバッファ１７ａ，１７ｂ内の各領域には、常に一定の順序で新たなパケットが書き込まれる。
【００６０】
このように、ポインタ制御部１４５は、読み出し制御部１４２ａにより読み出されたパケットごとの書き込み時刻ＷＴのうち、最も古い書き込み時刻ＷＴのパケットが読み出された領域を、新たなパケットが最初に書き込まれる領域に決定する。したがって、パケットバッファ１７ａ，１７ｂに残されたパケットのスナップショットのうち、最も古いスナップショットを新たなパケットの上書きにより最初に消去できる。以下にポインタ制御部１４５の構成について述べる。
【００６１】
図６は、ポインタ制御部１４５の一例を示す構成図である。ポインタ制御部１４５は、整列処理部３０と、カウンタ部３１と、ポインタバッファ部３２とを有する。
【００６２】
整列処理部３０は、ポインタ情報の並び替えの処理を行う。整列処理部３０は、読み出し制御部１４２ｂから入力されたポインタ情報（「＊ｉ」）と書き込み時刻ＷＴをポインタバッファ部３２により管理する。ポインタバッファ部３２は、ポインタ情報を格納する複数のバッファ＃１〜＃Ｎｍａｘ（Ｎｍａｘ：正の整数）と、バッファ＃１〜＃Ｎｍａｘごとのポインタ情報の格納の有無を示す格納フラグ（「０」：未格納、「１」：格納済み）とを保持する。
【００６３】
整列処理部３０は、ポインタ情報及び書き込み時刻ＷＴが入力されると、各バッファ＃１〜＃Ｎｍａｘの識別番号（＃１〜＃Ｎｍａｘ）の若い順に格納フラグ＝「０」のバッファを検索し、検索されたバッファにポインタ情報を格納する。ポインタ情報の格納は、パケットごとに行われる。
【００６４】
例えば、最初に読み出されたパケットは、ポインタ情報「＊０」，「＊１」，「＊２」が示す領域（アドレス「００００」〜「０００２」）に格納されていたため、ポインタ情報「＊０」，「＊１」，「＊２」はバッファ＃１に格納される。２番目に読み出されたパケットは、ポインタ情報「＊５」，「＊６」が示す領域（アドレス「０００５」，「０００６」）に格納されていたため、ポインタ情報「＊５」，「＊６」はバッファ＃２に格納される。３番目に読み出されたパケットは、ポインタ情報「＊３」，「＊４」が示す領域（アドレス「０００３」，「０００４」）に格納されていたため、ポインタ情報「＊３」，「＊４」はバッファ＃３に格納される。なお、ポインタ情報の格納後、格納フラグは「１」に更新される。
【００６５】
また、ポインタバッファ部３２には、各バッファ＃１〜＃Ｎｍａｘのポインタ情報に対応するように書き込み時刻ＷＴ及び経過時刻が保持されている。整列処理部３０は、ポインタ情報を格納したバッファに対応して書き込み時刻ＷＴを登録する。経過時刻は、ポインタ情報がポインタバッファ部３２に保持されてかれ経過した時刻を示す。整列処理部３０は、計時部１４６から入力された現在時刻ＣＴに基づいて経過時刻を周期的に更新する。
【００６６】
また、カウンタ部３１は、パケットごとのポインタ情報が格納されたバッファの個数Ｎを計数する。カウンタ部３１は、整列処理部３０がポインタ情報をポインタバッファ部３２のバッファに格納するたびに、個数Ｎに１を加算する。整列処理部３０は、バッファの個数Ｎがバッファの一定の最大数Ｎｍａｘに達したとき、ポインタバッファ部３２に保持された書き込み時刻ＷＴのうち、最も古い書き込み時刻ＷＴに応じたポインタ情報を、バッファ制御部１４０を介して書き込み制御部１４１に出力する。
【００６７】
バッファの最大数Ｎｍａｘは、例えば以下のように、パケットバッファ１７ａ，１７ｂのキューＱ１〜Ｑｍのうち、優先度が最も低いキューのパケットの出力レートに基づいて設定される。パケットバッファ１７ａ，１７ｂに４個のキューＱ１〜Ｑ４が存在し、４個のキューＱ１〜Ｑ４の優先度をそれぞれ「４」（最高），「３」，「２」，「１」（最低）とする。そして、各キューＱ１〜Ｑ４のパケットの出力レートの比をＱ１：Ｑ２：Ｑ３：Ｑ４＝４：３：２：１とすると、回線ユニット１の伝送処理速度が１００（Ｇｂｐｓ）である場合、優先度が最も低いキューＱ４の出力レートは１０（Ｇｂｐｓ）（＝１００×１／１０）である。
【００６８】
パケットの長さが可変長である場合、キューＱ４に最大長のパケットが格納されたときに、そのパケットより後に他のキューＱ１〜Ｑ３に格納され先に読み出されるパケット数が最多となる。このため、パケットの最大長を９６００（Ｂｙｔｅ）とすると（ジャンボフレームなど）、キューＱ４に格納された最大長のパケットが読み出されるまでの所要時間は、７．６８（μｓｅｃ）（＝９６００×８÷１０）である。
【００６９】
また、キューＱ１〜Ｑ３に格納されたパケットが全て最短長である場合、キューＱ４に格納されたパケットより先に読み出される後着のパケット数が最多となる。このため、パケットの最短長を６４（Ｂｙｔｅ）とすると、キューＱ４に格納された最大長のパケットの読み出しの所要時間７．６８（μｓｅｃ）でキューＱ１〜Ｑ３から先に読み出されるパケット数は、１０３７（個）（＝１５０（ｐｐｓ）×９／１０×７．６８）となる。
【００７０】
したがって、本例において、ポインタバッファ部３２内のバッファの最大数Ｎｍａｘは１０３７（個）と設定される。なお、上記の算出式中の１５０（ｐｐｓ）は、伝送処理速度１００（Ｇｂｐｓ）を６４（Ｂｙｔｅ）長のパケットのレートに換算した値である。
【００７１】
この場合、整列処理部３０は、カウンタ部３１が計数する個数Ｎが１０３７になったとき、書き込み時刻ＷＴが最も古いポインタ情報を出力する。このため、整列処理部３０は、読み出し制御部１４２ａから入力されたポインタ情報を、各ポインタ情報に対応する書き込み時刻ＷＴに基づいて確実に時系列に並び替えてバッファ制御部１４０に出力することができる。
【００７２】
バッファ制御部１４０内のポインタキュー１４０ａには、バッファ制御部１４０が出力した順序でポインタ情報が格納される。このため、書き込み制御部１４１は、その出力順序に従って、ポインタ制御部１４５から出力されたポインタ情報が示す領域に新たなパケットを書き込む。
【００７３】
また、整列処理部３０は、バッファ＃１〜＃Ｎｍａｘごとに経過時刻を監視し、経過時刻が一定の時間を超えたバッファ内のポインタ情報を書き込み制御部１４１に出力する。このため、ポインタバッファ部３２にポインタ情報が長時間保持されることで、書き込み制御部１４１により新たなパケットを書き込む領域が不足することが防止される。
【００７４】
図７は、ポインタ情報の出力処理の一例を示すフローチャートである。本処理は、例えば一定の時間周期で行われる。
【００７５】
まず、整列処理部３０は、読み出し制御部１４２ａからポインタ情報が入力されたか否かを判定する（ステップＳｔ１）。次に、整列処理部３０は、ポインタ情報が入力された場合（ステップＳｔ１のＹｅｓ）、ポインタバッファ部３２のバッファ＃１〜＃Ｎｍａｘのうち、格納フラグ＝「０」のバッファを識別番号の若い順で検索する（ステップＳｔ２）。
【００７６】
次に、整列処理部３０は、検索したバッファ＃１〜＃Ｎｍａｘにポインタ情報を格納する（ステップＳｔ３）。次に、整列処理部３０は、格納したポインタ情報に対応する書き込み時刻ＷＴを登録する（ステップＳｔ４）。次に、整列処理部３０は、ポインタ情報を格納したバッファ＃１〜＃Ｎｍａｘに対応する格納フラグを「１」に更新する（ステップＳｔ５）。
【００７７】
次に、カウンタ部３１は、ポインタ情報が格納済みのバッファ＃１〜＃Ｎｍａｘの個数Ｎに１を加算する（ステップＳｔ６）。次に、整列処理部３０は、バッファ＃１〜＃Ｎｍａｘの個数Ｎが一定の最大数Ｎｍａｘに達したか否かを判定する（ステップＳｔ７）。
【００７８】
整列処理部３０は、Ｎ≠Ｎｍａｘの場合（ステップＳｔ７のＮｏ）、再びステップＳｔ１の処理を行う。また、整列処理部３０は、Ｎ＝Ｎｍａｘの場合（ステップＳｔ７のＹｅｓ）、ポインタバッファ部３２に登録された書き込み時刻ＷＴのうち、最も古い書き込み時刻ＷＴのポインタ情報を検索する（ステップＳｔ８）。なお、ステップＳｔ８の検索処理の詳細については後述する。
【００７９】
次に、整列処理部３０は、検索したポインタ情報をバッファ制御部１４０に出力する（ステップＳｔ９）。整列処理部３０から出力されたポインタ情報は、バッファ制御部１４０のポインタキュー１４０ａに格納される。
【００８０】
次に、整列処理部３０は、ポインタ情報が格納済みのバッファの個数Ｎから１を減算する（ステップＳｔ１０）。次に、整列処理部３０は、ポインタ情報を格納したバッファ＃１〜＃Ｎｍａｘに対応する格納フラグを「０」に更新する（ステップＳｔ１１）。
【００８１】
次に、バッファ制御部１４０は、ポインタキュー１４０ａのヘッドポインタＨＰ、テールポインタＴＰ、及び長さＬを更新し（ステップＳｔ１２）、処理を終了する。
【００８２】
また、整列処理部３０は、ポインタ情報の入力がない場合（ステップＳｔ１のＮｏ）、格納時間が一定の時間Ｔｍａｘを超えたバッファ＃１〜＃Ｎｍａｘの有無を判定する（ステップＳｔ１３）。なお、整列処理部３０は、本処理とは別に格納時間の更新を行っている。
【００８３】
整列処理部３０は、格納時間＞Ｔｍａｘのバッファ＃１〜＃Ｎｍａｘがない場合（ステップＳｔ１３のＮｏ）、処理を終了する。また、整列処理部３０は、格納時間＞Ｔｍａｘのバッファ＃１〜＃Ｎｍａｘが有る場合（ステップＳｔ１３のＹｅｓ）、そのバッファに格納されたポインタ情報をバッファ制御部１４０に出力する（ステップＳｔ９）。これにより、パケットを書き込むパケットバッファ１７ａ，１７ｂの領域の不足が防止される。その後、上述したステップＳｔ９〜Ｓｔ１２の処理が行われる。このようにして、ポインタ情報の出力処理は行われる。
【００８４】
図８は、ポインタ情報の検索処理（図７のステップＳｔ８参照）の一例を示すフローチャートである。まず、整列処理部３０は、変数Ｔｄに初期値の０をセットし、変数ｊに初期値の１をセットする（ステップＳｔ２１）。次に、整列処理部３０は、計時部１４６から現在時刻ＣＴを取得する（ステップＳｔ２２）。
【００８５】
次に、整列処理部３０は、バッファ＃ｊを選択する（ステップＳｔ２３）。次に、整列処理部３０は、選択したバッファ＃ｊに対応する書き込み時刻ＷＴと現在時刻ＣＴの差分（ＷＴ−ＣＴ）を変数Ｔｄと比較する（ステップＳｔ２４）。
【００８６】
次に、整列処理部３０は、Ｔｄ＜ＷＴ−ＣＴが成立する場合（ステップＳｔ２４のＹｅｓ）、変数Ｐ＝ｊとし、Ｔｄ＝ＷＴ−ＣＴとする（ステップＳｔ２５）。また、整列処理部３０は、Ｔｄ≧ＷＴ−ＣＴが成立する場合（ステップＳｔ２４のＮｏ）、ステップＳｔ２５の処理を行わない。
【００８７】
次に、整列処理部３０は、ｊ＝Ｎｍａｘであるか否かを判定する（ステップＳｔ２６）。整列処理部３０は、ｊ≠Ｎｍａｘである場合（ステップＳｔ２６のＮｏ）、ｊ＝ｊ＋１とする（ステップＳｔ２８）。その後、整列処理部３０は、再びステップＳｔ２３の処理を行う。
【００８８】
また、整列処理部３０は、ｊ＝Ｎｍａｘである場合（ステップＳｔ２６のＹｅｓ）、バッファ＃Ｐのポインタ情報を出力対象として選択し（ステップＳｔ２７）、処理を終了する。このようにして、ポインタ情報の検索処理は行われる。
【００８９】
これまで述べたように、実施例に係る伝送装置は、パケットバッファ１７ａ，１７ｂと、書き込み制御部１４１と、書き込み時刻記録部１４３と、読み出し制御部１４２ａと、ポインタ制御部１４５とを有する。パケットバッファ１７ａ，１７ｂは、パケットをそれぞれ格納する複数の領域を有する。
【００９０】
書き込み制御部１４１は、パケットを複数の領域のそれぞれに順次に書き込む。書き込み時刻記録部１４３は、書き込み制御部１４１によりパケットが複数の領域に書き込まれた書き込み時刻ＷＴをパケットごとに記録する。読み出し制御部１４２ａは、パケットを複数の領域のそれぞれから順次に読み出す。
【００９１】
ポインタ制御部１４５は、読み出し制御部１４２ａにより読み出されたパケットごとの書き込み時刻ＷＴに基づき、複数の領域のうち、パケットが読み出された各領域に、書き込み制御部１４１が新たなパケットを書き込む順序を決定する。
【００９２】
上記の構成によると、書き込み制御部１４１は、パケットバッファ１７ａ，１７ｂ内の各空き領域に対し、その空き領域に対応する書き込み時刻ＷＴの順序に従って新たなパケットを順次に書き込む。したがって、書き込み制御部１４１は、パケットバッファ１７ａ，１７ｂ内の各領域に一定の順序でパケットを書き込むことができる。
【００９３】
これにより、後着のパケットが先着のパケットより先にバッファから読み出された場合でも、後着のパケットが格納された領域に新たなパケットが格納されることで後着のパケットのスナップショットが上書きされてしまうことが防止される。このため、障害発生の時刻の前後のパケットのログを時系列に従ってパケットバッファ１７ａ，１７ｂから取得することが可能となる。
【００９４】
よって、実施例に係る伝送装置によると、ログを容易に解析できる。
【００９５】
また、実施例に係る伝送方法は、以下のステップを含む。
ステップ（１）：パケットを格納するパケットバッファ１７ａ，１７ｂ内の複数の領域のそれぞれにパケットを順次に書き込む。
ステップ（２）：パケットが複数の領域に書き込まれた書き込み時刻ＷＴをパケットごとに記録する。
ステップ（３）：パケットを複数の領域のそれぞれから順次に読み出す。
ステップ（４）：読み出されたパケットごとの書き込み時刻ＷＴに基づき、複数の領域のうち、パケットが読み出された各領域に新たなパケットを書き込む順序を決定する。
【００９６】
実施例に係る伝送方法は、上記の伝送装置と同様の構成を有するので、上述した内容と同様の作用効果を奏する。
【００９７】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００９８】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  パケットをそれぞれ格納する複数の領域を有する格納部と、
前記パケットを前記複数の領域のそれぞれに順次に書き込む書き込み部と、
前記書き込み部により前記パケットが前記複数の領域に書き込まれた時刻を示す時刻情報を前記パケットごとに記録する記録部と、
前記パケットを前記複数の領域のそれぞれから順次に読み出す読み出し部と、
前記読み出し部により読み出された前記パケットごとの前記時刻情報に基づき、前記複数の領域のうち、前記パケットが読み出された各領域に、前記書き込み部が新たなパケットを書き込む順序を決定する決定部とを有することを特徴とする伝送装置。
（付記２）  前記決定部は、前記読み出し部により読み出された前記パケットごとの前記時刻情報のうち、最も古い時刻を示す前記時刻情報の前記パケットが読み出された領域を、前記新たなパケットが最初に書き込まれる領域に決定することを特徴とする付記１に記載された伝送装置。
（付記３）  前記読み出し部は、前記パケットを読み出すたびに、前記複数の領域のうち、前記パケットが格納された領域を示すポインタ情報を、前記パケットの前記時刻情報とともに前記決定部に出力し、
前記決定部は、前記読み出し部から入力された前記ポインタ情報を前記パケットごとにバッファに格納し、前記ポインタ情報が格納されたバッファの個数が一定数に達したとき、最も古い時刻を示す前記時刻情報に応じた前記ポインタ情報を前記書き込み部に出力し、
前記書き込み部は、前記決定部から入力された前記ポインタ情報が示す領域に前記新たなパケットを書き込むことを特徴とする付記１または２に記載の伝送装置。
（付記４）  前記決定部は、前記バッファごとに、前記ポインタ情報が格納されてから経過した時刻を監視し、該経過した時刻が一定の時間を超えた前記バッファ内のポインタ情報を前記書き込み部に出力することを特徴とする付記３に記載の伝送装置。
（付記５）  前記記録部は、前記複数の領域に書き込まれる前記パケットに前記時刻情報を付与することを特徴とする付記１乃至４の何れかに記載の伝送装置。
（付記６）  前記読み出し部により前記パケットが前記複数の領域から読み出された時刻を示す読出時刻情報を前記パケットごとに付与する付与部を、さらに有することを特徴とする付記１乃至５の何れかに記載の伝送装置。
（付記７）  パケットを格納する格納部内の複数の領域のそれぞれにパケットを順次に書き込み、
前記パケットが前記複数の領域に書き込まれた時刻を示す時刻情報をパケットごとに記録し、
前記パケットを前記複数の領域のそれぞれから順次に読み出し、
読み出された前記パケットごとの前記時刻情報に基づき、前記複数の領域のうち、前記パケットが読み出された各領域に新たなパケットを書き込む順序を決定することを特徴とするパケット制御方法。
（付記８）  読み出された前記パケットごとの前記時刻情報のうち、最も古い時刻を示す前記時刻情報の前記パケットが読み出された領域を、前記新たなパケットが最初に書き込まれる領域に決定することを特徴とする付記７に記載されたパケット制御方法。
（付記９）  前記パケットを読み出すたびに、前記複数の領域のうち、前記パケットが格納された領域を示すポインタ情報を、前記パケットごとにバッファに格納し、
前記ポインタ情報が格納されたバッファの個数が一定数に達したとき、最も古い時刻を示す前記時刻情報に応じた前記ポインタ情報が示す領域に前記新たなパケットを書き込むことを特徴とする付記７または８に記載のパケット制御方法。
（付記１０）  前記バッファごとに、前記ポインタ情報が格納されてから経過した時刻を監視し、
該経過した時刻が一定の時間を超えた前記バッファ内のポインタ情報が示す領域に前記新たなパケットを書き込むことを特徴とする付記９に記載のパケット制御方法。
（付記１１）  前記複数の領域に書き込まれる前記パケットに前記時刻情報を付与することを特徴とする付記７乃至１０の何れかに記載のパケット制御方法。
（付記１２）  前記パケットが前記複数の領域から読み出された時刻を示す読出時刻情報を前記パケットごとに付与することを特徴とする付記７乃至１１の何れかに記載のパケット制御方法。
【符号の説明】
【００９９】
１       回線ユニット
１４ａ，１４ｂ     トラフィック制御部
１７ａ，１７ｂ     パケットバッファ
３２       ポインタバッファ部
１４０      バッファ制御部
１４０ａ      ポインタキュー
１４１      書き込み制御部
１４２，１４２ａ     読み出し制御部
１４３      書き込み時刻記録部
１４４      読み出し時刻記録部
１４５      ポインタ制御部
【図１】
2016208241.tif 000003
【図２】
2016208241.tif 000004
【図３】
2016208241.tif 000005
【図４】
2016208241.tif 000006
【図５】
2016208241.tif 000007
【図６】
2016208241.tif 000008
【図７】
2016208241.tif 000009
【図８】
2016208241.tif 000010