説明

データ制御装置、データ制御装置におけるデータ制御方法およびプログラム

【課題】障害パケットの解析における効率性を向上させるデータ制御装置を提供する。
【解決手段】予め定められた期間においてネットワークから取得した複数のパケットデータを格納する。その複数のパケットデータをデータ処理装置を宛先としてネットワークに送信し、障害を検出したかを判定する。障害を検出したと判定された場合、予め定められた期間を更新し、更新された期間に対応する複数のパケットデータをネットワークに送信する。障害を検出しなかったと判定された場合、障害の原因となるパケットデータを含む複数のパケットデータを抽出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、障害解析を行うデータ制御装置、データ制御装置におけるデータ制御方法およびプログラムに関する。
【背景技術】
【0002】
従来、ネットワーク通信機器で障害が発生した場合に、ネットワーク通信路を流れるパケットを採取して障害の原因を調査する手法が知られている。その一般的な方法として、パケット取得を行う専用の機器をHUB等の集線機器に接続し、LAN等のネットワーク上を流れるパケットを採取する。そして、その採取したパケットから、調査対象となるネットワーク通信機器が送受信しているパケットのデータの内容を解析して、規定外のデータを受信している箇所や、受信パケットに対する応答遅延が発生している箇所を特定するというものである。その方法においては、それらの箇所が傷害の原因であるか否かを切り分けるために、同一のパケットをネットワーク機器に送信することによる障害の再現確認や、ネットワーク機器の通信を司るソースコードの解析等により原因調査が行われる。
【0003】
近年、そのようなパケット取得機能を備えたネットワーク通信機器も普及し始めている。これによって、パケットの採取を行うための専用の機器を使用しなくても、パケットの取得が可能となっている。その結果、スイッチングHUBが導入された環境において専用機器を接続してパケットの採取を正しく行うことができない場合においてもパケット採取が可能となり、パケットの情報調査を行うことが可能となってきている。
【0004】
しかしながら、顧客に納入した機器に障害が発生した場合に、取得したパケット全てを納入元に持ち帰って障害解析を行うことは、セキュリティや情報保護の観点からして極めて難しい。その結果、発生した障害が顧客の操作ミスや設定ミスに起因するのか、機器の故障やソフトバグに起因するのかの判断が困難となっている。
【0005】
これに対する改善策として、例えばパケット取得時に取得パケット量を最小化するという方法を用いて、より少ない情報を納入元に持ち帰って詳細解析することが考えられる(特許文献1)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2001−103090号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
パケット取得時に取得パケット量を最小化するという方法では、障害とは関係のないパケットのみを持ち帰り、解析結果が不明のまま再度パケットを取得し直さなければならない場合もある。従って、障害に関連するパケットを特定するために、障害発生時に機器が受信したパケットと同様の条件でパケットをジェネレートし、発生した障害に関連しているかを判定する作業が必要となる。
【0008】
しかしながら、そのような作業を納入先で行うためには、一般にパケットジェネレータ機能を搭載している機器が必要となる。また、パケットジェネレータを使用した場合であっても、障害に関連するパケットを特定する作業は手作業となり障害解析の効率性を低減してしまう。
【0009】
本発明の目的は、このような従来の問題点を解決することにある。本発明は、上記の点に鑑み、障害パケットの解析における効率性を向上させるデータ制御装置、データ制御装置におけるデータ制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するため、本発明に係るデータ制御装置は、ネットワークに接続可能なデータ処理装置であって、
予め定められた期間において前記ネットワークから取得した複数のパケットデータを格納する格納手段と、
前記格納手段により格納された複数のパケットデータを、前記データ処理装置を宛先として前記ネットワークに送信する送信手段と、
前記送信手段により送信された複数のパケットデータを受信し、当該受信において障害を検出したか否かを判定する判定手段と、
前記判定手段により障害を検出したと判定された場合に、前記予め定められた期間を更新し、当該更新された期間に対応する複数のパケットデータを前記ネットワークに送信するように前記送信手段を制御する制御手段と、
前記判定手段により障害を検出しなかったと判定された場合に、障害の原因となるパケットデータを含む複数のパケットデータを抽出する抽出手段とを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、障害パケットの解析における効率性を向上させることができる。
【図面の簡単な説明】
【0012】
【図1】画像形成装置を含むシステムの全体構成を示す図である。
【図2】画像形成装置のハードウェア構成を示すブロック図である。
【図3】画像形成装置のソフトウェア構成を示すブロック図である。
【図4】パケットジェネレートアプリケーションの構成を示す図である。
【図5】フィルタ条件の一例を示す図である。
【図6】本実施例におけるパケットジェネレート処理の手順を示す図である。
【図7】S614の処理の詳細な手順を示す図である。
【図8】S717の処理の詳細な手順を示す図である。
【図9】ユーザインタフェースの一例を示す図である。
【発明を実施するための形態】
【0013】
以下、添付図面を参照して本発明の好適な実施例を詳しく説明する。尚、以下の実施例は特許請求の範囲に係る本発明を限定するものでなく、また本実施例で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【0014】
[実施例1]
図1は、本発明に係る画像形成装置101を含むシステムの全体構成を示す図である。画像形成装置101とPC102とがネットワーク103を介して接続可能であり、相互に通信可能となっている。画像形成装置101は例えばプリンタであり、本実施例においてはパケットデータ(以下、単にパケットという)をジェネレートしてネットワーク103に送信するデータ制御装置として機能する。
【0015】
図2は、画像形成装置101のハードウェア構成を示すブロック図である。画像形成装置101は、情報処理部210及びNIC220を含む。情報処理部210は、NIC220を介してネットワーク103に接続されている。CPU211は、情報処理部210のソフトウェアプログラムを実行し、画像形成装置101全体の制御を行う。RAM214は、ランダム・アクセス・メモリであり、CPU211が本装置を制御する際に、一時的なデータの格納などに使用される。ROM213は、リード・オンリー・メモリであり、装置のブートプログラムや固定パラメータ等を格納する。HDD215は、ハードディスク・ドライブであり、様々なデータの格納に使用される。NVRAM216は、不揮発性のメモリであり、情報処理部210の各種設定値を保存する。操作部I/F(インタフェース)217は操作部230を制御し、操作部230に備えられた液晶パネルに各種操作画面を表示させるとともに、操作画面を介して入力されたユーザからの指示をCPU211に伝達する。スキャナI/F218は、スキャナ240を制御する。スキャナ240は、原稿上の画像を読み取って画像データを生成する。プリンタI/F219は、プリンタ250を制御する。プリンタ250は、画像データに基づく画像を記録媒体上に印刷する。拡張I/F212は、NIC220を介してネットワーク103上の外部装置(PC102)とにおいて行われるデータ通信を制御する。
【0016】
図3は、画像形成装置101の主要部分に関する主なソフトウェア構成を示すブロック図である。画像形成装置101は汎用OSで構成されている。ネットワークドライバ301は、NIC220のデバイスドライバである。ネットワークスタック302は、プロトコルスタック群である。SocketI/F303は、OSによって提供されるSocketI/Fプログラムである。アプリケーション304は、画像形成装置101上で動作するネットワーク・アプリケーションの集合である。アプリケーション304に含まれるネットワークアプリケーションが通信を行う場合、SocketI/F303を呼び出すことによって、データの送受信の処理が可能となる。SocketI/F303はネットワークアプリケーションが通信を行う際に必ずしも必要なプログラムではない。しかしながら、OSの種類によらず汎用的なプログラム命令と処理フローを用いることができるので、アプリケーションの開発工数を削減することができる。そのために、ネットワークアプリケーションがSocketI/F303を呼び出してデータの送受信を行うことが一般的に行われている。
【0017】
パケット取得アプリケーション305は、NIC220が送受信するネットワークパケットを取得し、HDD215に格納するアプリケーションである。パケット取得アプリケーション305は、ネットワークドライバ301からデータ取得を行うことによって、NIC220が受信した全てのパケットと、NIC220がネットワーク上に送信する全てのパケットを取得する。また、パケット取得アプリケーション305は、ネットワークパケットを取得した際、取得時のタイムスタンプと併せてネットワークパケットをHDD215に格納する。パケットジェネレートアプリケーション306は、パケット取得アプリケーション305が取得してHDD215に格納したネットワークパケットを読み出し、SocketI/F303を通じてネットワーク103に送信する機能を有する。アプリケーション304、パケット取得アプリケーション305及びパケットジェネレートアプリケーション306はアプリケーションスペースで動作する。また、SocketI/F303、ネットワークスタック302及びネットワークドライバ301は、カーネルスペースで動作する。
【0018】
図4は、パケットジェネレートアプリケーション306の詳細なソフトウェア構成を示す図である。パケットジェネレート管理部401は、パケットジェネレート処理を行うために種々の処理を各処理部に命令し、また、画像形成装置101の操作部230上のユーザインタフェースからパケットジェネレート処理の命令と設定とを受け取り管理する。ユーザインタフェースについては、図9において後述する。さらに、パケットジェネレート管理部401は、障害発生時にOSや各アプリケーションからのコールバック関数呼出しやイベントシグナル、メッセージ通信等により通知を受けることが可能である。例えば、パケットジェネレート管理部401は、OSや各アプリケーションからExceptionやSIGSEGV等により障害が発生した場合における通知を受けることができる。パケット解析/フィルタ部402は、パケットジェネレート管理部401からパケット解析/フィルタ命令を受けるとその命令に応じたパケット解析/フィルタ処理を行う。ジェネレートパケット生成部403は、パケットジェネレート管理部401からパケット生成命令を受けると、パケット解析/フィルタ部402でフィルタしたパケットを使用して画像形成装置101自身に送信するためのパケットを生成する。パケットジェネレート部404は、パケットジェネレート管理部401からパケットジェネレート命令を受けると、ジェネレートパケット生成部403が生成したパケットを送信する。送信するパケットは、PF_PACKET用のSocketを生成して送信することによって、ジェネレートパケット生成部403が生成したパケットをネットワークスタック302で処理させずに送信する。
【0019】
図5は、パケット解析/フィルタ部402において行われるフィルタ条件の一例を示す図である。条件Aは、パケット取得アプリケーション305が取得している全てのパケットのうち、特定の日時と日時との間に画像形成装置101が受信した全てのネットワークパケットのみを抽出し、それ以外のネットワークパケットをフィルタする。特定の日時の設定は、画像形成装置101のユーザインタフェース等を介して外部から指定されるとする。条件Bは、パケット取得アプリケーション305が取得している全てのパケットのうち、特定の日時から特定の時間分、画像形成装置101が受信した全てのネットワークパケットのみを抽出し、それ以外のネットワークパケットをフィルタする。特定の日時と特定の時間の設定は、画像形成装置101のユーザインタフェース等を介して外部から指定されるとする。
【0020】
条件Cは、パケット取得アプリケーション305が取得している全てのパケットのうち、特定の送信元MACアドレスが同一であるネットワークパケットのみを抽出し、それ以外のネットワークパケットをフィルタする。特定の送信元MACアドレスの設定は、画像形成装置101のユーザインタフェース等を介して外部から指定されるとする。条件Dは、パケット取得アプリケーション305が取得している全てのパケットのうち、特定の送信元IPアドレスが同一であるネットワークパケットのみを抽出し、それ以外のネットワークパケットをフィルタする。特定の送信元IPアドレスの設定は、画像形成装置101のユーザインタフェース等を介して外部から指定されるとする。条件Eは、パケット取得アプリケーション305が取得している全てのパケットのうち、特定のネットワークプロトコルが同一であるネットワークパケットのみを抽出し、それ以外のネットワークパケットをフィルタする。実際にフィルタ処理を行う場合には、パケット内のTCPポート番号、もしくはUDPポート番号をチェックして行う。特定のネットワークプロトコルの設定は、画像形成装置101のユーザインタフェース等を介して外部から指定されるとする。
【0021】
条件Fは、パケット取得アプリケーション305が取得している全てのパケットのうち、ブロードキャストパケットデータ(以下、単にブロードキャストパケットという)のみを抽出し、それ以外のネットワークパケットをフィルタする。実際にフィルタ処理を行う場合には、送信先MACアドレスや送信先IPアドレスがブロードキャストアドレスか否かをチェックして行う。条件Gは、パケット取得アプリケーション305が取得している全てのパケットのうち、マルチキャストパケットデータ(以下、単にマルチキャストパケットという)のみを抽出し、それ以外のネットワークパケットをフィルタする。実際にフィルタ処理を行う場合には、送信先MACアドレスや送信先IPアドレスがマルチキャストアドレスか否かをチェックして行う。パケット解析/フィルタ部402は、パケットジェネレート管理部401からの指示によって上記の各条件を組み合わせてフィルタ処理を行う。
【0022】
図6は、本実施例におけるデータ処理(パケットジェネレート処理)の手順を示すフローチャートである。本図における各処理は、例えば、画像形成装置101のCPU211により実行される。画像形成装置101のユーザインタフェースを介してパケットジェネレート処理の指示を受付けると、本処理が開始される。S601において、パケットジェネレート管理部401は、設定された各種フィルタ条件や、パケットジェネレート処理に関連する各種設定が正しく行われているかをチェックする。S602において、各種フィルタ条件や各種設定が正常でない場合には、パケットジェネレート管理部401は、本処理を終了する。一方、各種フィルタ条件や各種設定が正常の場合には、S603において、パケットジェネレート管理部401は、HDD215に格納されているパケットを取得する。そして、パケット解析/フィルタ部402に対して、パケットのフィルタ処理(条件Aもしくは条件B)を要求する。その場合に、パケットジェネレート管理部401は、たとえユーザインタフェースから設定されたフィルタ条件が複数設定されていたとしても、条件Aもしくは条件Bのみによるフィルタ処理を要求する。これは、パケットジェネレート管理部401は、多数格納しているパケットに対して日時、時間を基にしたフィルタ処理を他のフィルタ条件よりも優先して行うからである。本例においては、まず条件Aによってフィルタ処理を行うとする。
【0023】
本実施例においては、パケットジェネレート管理部401は、まず日時及び時間を基にしたフィルタ処理を行った結果として抽出されたパケットに対して、その他の詳細なフィルタ処理を要求する。パケット解析/フィルタ部402は、パケットジェネレート管理部401からの指示に合わせて、フィルタ条件Aのみによってフィルタ処理を行う。S604において、パケットジェネレート管理部401は、パケット解析/フィルタ部402によるそのフィルタ処理の結果として予め定められた期間に絞り込んだパケットがあるか否かを判定する。ここで、ないと判定された場合には、パケットジェネレート管理部401は、S610の処理を行う。一方、絞り込んだパケットがあると判定された場合には、S605において、パケットジェネレート管理部401は、ジェネレートパケット生成部403に対して、ネットワークパケットの生成要求を行う。そして、ジェネレートパケット生成部403は、パケット解析/フィルタ部402が行ったフィルタ処理の結果として絞り込まれたパケットを使用して画像形成装置101自身に送信するためのネットワークパケットを生成する。S606において、パケットジェネレート管理部401は、パケットジェネレート部404に対してパケット送信を要求する。パケットジェネレート部404は、ジェネレートパケット生成部403が生成したネットワークパケットをネットワーク103に順に送信する。
【0024】
S607において、パケットジェネレート管理部401は、パケット送信された結果として障害が発生したか否かを判定する。その障害の発生有無は、ExceptionやSIGSEGV等の障害発生時にその通知を受けるための仕組みを使用することによってパケットジェネレート管理部401により判定される。障害が発生したと判定された場合に、S608において、パケットジェネレート管理部401は、パケットジェネレート部404にパケット送信の停止を要求する。そして、パケットジェネレート部404は、自身がパケット送信を停止したパケットに対して、パケット取得アプリケーション305が本パケットを取得した時のタイムスタンプをパケット送信終了位置(終了日時)として設定する。また、パケットジェネレート管理部401は、S606において最初に送信したパケットに対して、パケット取得アプリケーション305がそのパケットを取得した時のタイムスタンプをパケット送信開始位置(開始日時)として設定する。パケットジェネレート管理部401は、送信終了位置と送信開始位置との差分を2で割った時間を送信開始位置に加算することによってパケット送信開始位置を更新する。本実施例においては、以上のようにして障害検出に起因するパケットを含む複数のパケットを時間的に絞り込んでいく。
【0025】
S609において、パケットジェネレート管理部401は、その更新したパケット送信開始位置が送信終了位置を超えていないか否かを判定する。その更新したパケット送信開始位置が送信終了位置を超えていると判定された場合、パケットジェネレート管理部401は、送信終了位置と更新したパケット開始位置との差分を2で割った時間を送信開始位置から減算することでパケット送信開始位置を更新する。一方、更新したパケット送信開始位置が送信終了位置を超えていないと判定された場合に、パケットジェネレート管理部401は、更新したパケット送信開始位置をフィルタ条件Aの新たな送信開始位置として設定し、S603以降の処理を行う。S603以降においては、新たな送信開始位置と送信終了位置との間に対応するパケットについて処理を行っていく。
【0026】
S607において障害が検知されなかった場合に、S610において、パケットジェネレート管理部401は、前回のパケット送信時に障害を検出したか否かを判定する。ここで、前回のパケット送信時に障害を検出していると判定された場合には、前回送信したパケットは、今回のS603〜S609の処理により、日時、時間的な条件で最低減の絞り込みが行われたということである。その場合には、さらに詳細なフィルタ処理を行うために、S614に進む。以下、一例を説明する。例えば、S602において1/1〜1/31について、S605、S606の処理を行ったとする。S607において、1/20に対応するパケットが障害検出されたとする。その際に、S608において、期間が1/10〜1/20に更新されて再び、S603からの処理を行う。そのように繰り返していくうちに、期間が1/19〜1/20となったとする。ここで、障害検出されるパケットは1/20に対応するパケットであっても、動作的には1/18、1/19に対応するパケットと組み合わされることにより障害が検出される場合がある。そのような場合には、1/19〜1/20に期間が更新されると、S607の判定は、「障害検出なし」となる。そのような場合に、1/19〜1/20のパケットのうち障害の原因であり障害検出されるべきパケット(即ち、1/19分のパケット)と1/18に対応するパケットとについて、他のフィルタ処理(S614)を使って絞り込んでいく。以上のような場合が、S607で検出されないと判定されてS610に進む一例である。
【0027】
再び、S610を説明する。前回のパケット送信時に障害を検出していないと判定された場合には、S611においてパケットジェネレート管理部401は、まだ実行されていないフィルタ条件Bがユーザインタフェースにおいて設定されているか否かを判定する。フィルタ条件AとBは、相互に排他的な設定であり、いずれか1つのみが有効な設定となる。ユーザインタフェースにおいてフィルタ条件Bが設定されていないと判定された場合には、条件Aで指定された期間の日時では障害が検出できなかったので、パケットジェネレート管理部401は、本処理を終了する。また、まだ実行されていないフィルタ条件Bが設定されていないと判定された場合にも本処理を終了する。これは、例えば、条件AによりS603以降の処理を行い、S611からS603を介して条件Bを行い、再び、S611の処理に進んだ場合である。
【0028】
S611においてまだ実行されていないフィルタ条件Bが設定されていると判定された場合、S612において、パケットジェネレート管理部401は、ユーザインタフェースから設定された単位時間を送信開始時間に加算してパケット送信開始位置を更新する。S613において、パケットジェネレート管理部401は、その更新した送信開始位置が、パケット取得アプリケーション305が取得した最後のパケットのタイムスタンプであるパケット取得終了日時を超えていないか否かを判定する。ここで、更新した送信開始位置がパケット取得終了日時を超えていると判定された場合には、フィルタ条件Bを使用しても障害検出ができないということである。従って、パケットジェネレート管理部401は、本処理を終了する。一方、更新した送信開始位置がパケット取得終了日時を超えていないと判定された場合に、パケットジェネレート管理部401は、更新したパケット送信開始位置をフィルタ条件Bにおける送信開始位置としてS603以降の処理を行う。
【0029】
S614において、パケットジェネレート管理部401は、最後に更新される前のパケット送信開始位置からパケット送信終了位置までのパケットを取得する。そしてパケットジェネレート管理部401は、その取得したパケットを使用して日時及び時間以外のフィルタ条件を基にして、より詳細な絞り込み処理を行う。
【0030】
図7(a)は、図6に示すS614の処理の詳細な手順を示すフローチャートである。本処理においては、フィルタ条件C、D、E、F、Gに関するフィルタ処理とパケット送信処理が行われる。S701において、パケットジェネレート管理部401は、ユーザインタフェースから設定されたフィルタ条件FもしくはGがあるか否かを判定する。後述するが、フィルタ条件FとGは排他的に設定され、いずれか1つのみが有効な設定となる。ここで、フィルタ条件FもGもないと判定された場合には、S705に進む。一方、フィルタ条件FもしくはGがあると判定された場合には、S702において、パケットジェネレート管理部401は、フィルタ条件FもしくはGに基づきフィルタ設定する。ここで、前回フィルタ処理を行ったフィルタ条件AもしくはBのいずれかに追加する形によりフィルタ条件FもしくはGに基づきフィルタ設定する。S703において、パケットジェネレート管理部401は、その設定されたフィルタ条件を使用してパケットフィルタ及び送信処理を行う。S704において、パケットジェネレート管理部401は、パケットフィルタ及び送信処理の結果、障害が検出されたか否かを判定する。ここで、障害が検出されなかったと判定された場合には、これまでの複数回によるパケットフィルタ及び送信処理において障害が検知されたにも関わらず、今回のパケットフィルタ及び送信処理では検知されなかったことを意味する。つまり、S703の処理によって、障害に起因するパケットがフィルタされたということが分かる。従って、前回送信時のパケットの中に障害に起因するパケットが存在していることになるので、パケットジェネレート管理部401は前回送信時のパケットを最終的な絞り込みパケットとして保存し、S614の処理を終了する。一方、障害が検出されたと判定された場合には、S705に進む。
【0031】
S705において、パケットジェネレート管理部401は、ユーザインタフェースから設定されたフィルタ条件Eがあるか否かを判定する。ここで、フィルタ条件Eがないと判定された場合には、S709に進む。一方、フィルタ条件Eがあると判定された場合には、S706において、パケットジェネレート管理部401は、フィルタ条件Eに基づきフィルタ設定する。ここで、前回フィルタ処理を行ったフィルタ条件に追加する形によりフィルタ条件Eに基づきフィルタ設定する。S707において、パケットジェネレート管理部401は、その設定されたフィルタ条件を使用してパケットフィルタ及び送信処理を行う。S708において、パケットジェネレート管理部401は、パケットフィルタ及び送信処理の結果、障害が検出されたか否かを判定する。ここで、障害が検出されなかったと判定された場合には、これまでの複数回によるパケットフィルタ及び送信処理において障害が検出されたにも関わらず、今回のパケットフィルタ及び送信処理では検出されなかったことを意味する。つまり、S707の処理によって、障害に起因するパケットがフィルタされたということが分かる。従って、前回送信時のパケットの中に障害に起因するパケットが存在していることになるので、パケットジェネレート管理部401は前回送信時のパケットを最終的な絞り込みパケットとして保存し、S614の処理を終了する。一方、障害が検出されたと判定された場合には、S709に進む。
【0032】
S709において、パケットジェネレート管理部401は、ユーザインタフェースから設定されたフィルタ条件Dがあるか否かを判定する。ここで、フィルタ条件Dがないと判定された場合には、S713に進む。一方、フィルタ条件Dがあると判定された場合には、S710において、パケットジェネレート管理部401は、フィルタ条件Dに基づきフィルタ設定する。ここで、前回フィルタ処理を行ったフィルタ条件に追加する形によりフィルタ条件Dに基づきフィルタ設定する。S711において、パケットジェネレート管理部401は、その設定されたフィルタ条件を使用してパケットフィルタ及び送信処理を行う。S712において、パケットジェネレート管理部401は、パケットフィルタ及び送信処理の結果、障害が検出されたか否かを判定する。ここで、障害が検出されなかったと判定された場合には、これまでの複数回によるパケットフィルタ及び送信処理において障害が検出されたにも関わらず、今回のパケットフィルタ及び送信処理では検出されなかったことを意味する。つまり、S711の処理によって、障害に起因するパケットがフィルタされたことが分かる。従って、前回送信時のパケットの中に障害に起因するパケットが存在していることになるので、パケットジェネレート管理部401は前回送信時のパケットを最終的な絞り込みパケットとして保存し、S614の処理を終了する。一方、障害が検出されたと判定された場合には、S713に進む。
【0033】
S713において、パケットジェネレート管理部401は、ユーザインタフェースから設定されたフィルタ条件Cがあるか否かを判定する。ここで、フィルタ条件Cがないと判定された場合には、S614の処理を終了する。一方、フィルタ条件Cがあると判定された場合には、S714において、パケットジェネレート管理部401は、フィルタ条件Cに基づきフィルタ設定する。ここで、前回フィルタ処理を行ったフィルタ条件に追加する形によりフィルタ条件Cに基づきフィルタ設定する。S715において、パケットジェネレート管理部401は、その設定したフィルタ条件を使用してパケットフィルタ及び送信処理を行う。ここで、障害が検出されなかった場合には、これまでの複数回によるパケットフィルタ及び送信処理において障害が検出されたにも関わらず、今回のパケットフィルタ及び送信処理では検出されなかったことを意味する。つまり、S715の処理によって、障害に起因するパケットがフィルタされたことが分かる。従って、前回送信時のパケットの中に障害に起因するパケットが存在していることになるので、パケットジェネレート管理部401は前回送信時のパケットを最終的な絞り込みパケットとして保存し、S614の処理を終了する。
【0034】
図7(b)は、S703、S707、S711の処理の手順を示すフローチャートである。S716において、パケットジェネレート管理部401は、S703、S707、S711それぞれで設定したフィルタ条件を使用してパケット解析/フィルタ部402にパケットフィルタ処理を要求する。パケット解析/フィルタ部402は、パケットジェネレート管理部401から指定されたフィルタ条件とフィルタ元パケットを使用してパケットのフィルタ処理を行う。S717において、パケットジェネレート管理部401は、パケットフィルタ処理の結果、送信するパケットがあるか否かを判定する。ここで、送信するパケットがないと判定された場合には、本処理を終了する。一方、送信するパケットがあると判定された場合には、S718において、パケットジェネレート管理部401は、フィルタ処理したパケットを使用してジェネレートパケット生成部403にジェネレートパケットの生成要求を行う。ジェネレートパケット生成部403は、パケットジェネレート管理部401から指定されたパケットから実際にジェネレートするためのパケットを生成する。S719において、パケットジェネレート管理部401は、ジェネレートパケット生成部403によって生成されたパケットを使用してパケットジェネレート部404にパケット送信要求を行う。パケットジェネレート部404は、パケットジェネレート管理部401から指定されたパケットを送信する。
【0035】
図8は、パケット解析/フィルタ部402が行うS716の詳細な処理の手順を示すフローチャートである。S801において、パケット解析/フィルタ部402は、パケットジェネレート管理部401から指定されたネットワークパケットに、画像形成装置101から送信されたパケットが存在するかをチェックする。ここで、画像形成装置101から送信されたパケットが存在する場合にはそれらのパケットをフィルタしてそれら以外のパケットに絞り込む。本処理を行う理由は、例えば、画像形成装置101から他の送信先に送信したパケットがその送信先に届かずに返信されたPORT−UNREACHABLEパケットを除外するためである。PORT−UNREACHABLEパケットは、送信先が受信ポートを開くことによりパケット受信待ちになっていない場合に、画像形成装置101に返信するパケットである。PORT−UNREACHABLEパケットは、障害再現時の対象でないパケットであるので本処理により除外する。
【0036】
S802において、パケット解析/フィルタ部402は、パケットジェネレート管理部401から指定されたフィルタ条件をチェックする。ここで、フィルタ条件Aが指定されている場合には、パケット解析/フィルタ部402は、ユーザインタフェースで指定された開始日時から終了日時までのパケット以外をフィルタして(除外して)パケットを絞り込む。また、フィルタ条件Bが指定されている場合には、パケット解析/フィルタ部402は、ユーザインタフェースで指定された開始日時から単位時間までのパケット以外をフィルタしてパケットを絞り込む。本実施例においては、フィルタ条件AとBは、排他的に設定する。日時や時間的にフィルタする場合には、フィルタ条件AとBの両方を同時設定可能にすることは意味がないからである。フィルタ条件AまたはBでパケットを絞り込んだ後もしくはフィルタ条件AとBのいずれも設定されていない場合には、S805に進む。
【0037】
S805において、パケット解析/フィルタ部402は、パケットジェネレート管理部401から指定されたフィルタ条件Cが設定されているか否かを判定する。フィルタ条件Cが設定されていないと判定された場合には、S807に進む。一方、フィルタ条件Cが設定されていると判定された場合、S806において、パケット解析/フィルタ部402は、ユーザインタフェースで指定された送信元MACアドレスと異なる送信元MACアドレスからのパケットをフィルタしてパケットを絞り込む。
【0038】
S807において、パケット解析/フィルタ部402は、パケットジェネレート管理部401から指定されたフィルタ条件Dが設定されているか否かを判定する。フィルタ条件Dが設定されていないと判定された場合には、S809に進む。一方、フィルタ条件Dが設定されていると判定された場合、S808において、パケット解析/フィルタ部402は、ユーザインタフェースにおいて指定された送信元IPアドレスと異なる送信元IPアドレスからのパケットをフィルタしてパケットを絞り込む。
【0039】
S809において、パケット解析/フィルタ部402は、パケットジェネレート管理部401から指定されたフィルタ条件Eが設定されているか否かを判定する。フィルタ条件Eが設定されていないと判定された場合には、S811に進む。一方、フィルタ条件Eが設定されていると判定された場合には、S810において、パケット解析/フィルタ部402は、ユーザインタフェースにおいて指定されたネットワークプロトコルと異なるプロトコルに関するパケットをフィルタしてパケットを絞り込む。ここで、ネットワークプロトコルが異なっているか否かについては、パケット内の宛先ポート番号をチェックすることで判定する。
【0040】
S811において、パケット解析/フィルタ部402は、パケットジェネレート管理部401から指定されたフィルタ条件Fもしくは条件Gが設定されているか否かを判定する。フィルタ条件Fが設定されていると判定された場合には、S812において、パケット解析/フィルタ部402は、ブロードキャスト以外のパケットをフィルタしてパケットを絞り込む。また、フィルタ条件Gが設定されていると判定された場合には、S813において、パケット解析/フィルタ部402は、マルチキャスト以外のパケットをフィルタしてパケットを絞り込む。また、フィルタ条件FとGのいずれも設定されていないと判定された場合もしくはS812/S813での絞り込み処理が終了した場合には、全てのパケットフィルタ処理が完了したことになるので、本処理を終了する。
【0041】
図9は、パケットジェネレート処理において用いられるユーザインタフェースを示す図である。表示901は、フィルタが行われた結果絞り込まれたパケットの出力先を入力するための画面を表示するためのボタンである。表示902は、その絞り込まれたパケットの出力先を表示する。ここで、本画面のユーザが表示901(出力先ボタン)を押下して入力したフィルタパケットの出力先が表示される。表示903は、パケットフィルタ開始日時を入力する画面を表示するためのボタンである。表示904は、パケットフィルタ開始日時を表示する。ここで、本画面のユーザが表示903(開始日時入力ボタン)を押下して入力したパケットフィルタ開始日時が表示される。開始日時は、必須入力項目である。表示905は、パケットフィルタ終了日時を入力する画面を表示するためのボタンである。表示906は、パケットフィルタ終了日時を表示する。ここで、本画面のユーザが表示905(終了日時入力ボタン)を押下して入力したパケットフィルタ終了日時が表示される。
【0042】
表示907は、フィルタ開始日時からフィルタ処理を終了するまでの単位時間を入力する画面を表示するためのボタンである。表示908は、単位時間を表示する。ここで、本画面のユーザが表示907(単位時間入力ボタン)を押下して入力した単位時間が表示される。表示909は、送信元MACアドレスを入力する画面を表示するためのボタンである。表示910は、送信元MACアドレスを表示する。ここで、本画面のユーザが表示909(送信元MACアドレス入力ボタン)を押下して入力した送信元MACアドレスが表示される。表示911は、送信元IPアドレスを入力する画面を表示するためのボタンである。表示912は、送信元IPアドレスを表示する。ここで、本画面のユーザが表示911(送信元IPアドレス入力ボタン)を押下して入力した送信元IPアドレスが表示される。表示913は、ネットワークプロトコルを入力する画面を表示するためのボタンである。表示914は、ネットワークプロトコルを表示する。ここで、本画面のユーザが表示913(ネットワークプロトコル入力ボタン)を押下して入力したネットワークプロトコルがポート番号と合わせて表示される。
【0043】
表示915は、パケットフィルタのためのフィルタ条件Aを設定するためのボタンである。本画面のユーザが本ボタンを押下してフィルタ処理を開始すると、パケットジェネレート管理部401は、設定されたパケットフィルタ開始日時からパケットフィルタ終了日時までのパケット以外をフィルタしてパケットを絞り込む。表示916は、パケットフィルタのためのフィルタ条件Bを設定するためのボタンである。本画面のユーザが本ボタンを押下してフィルタ処理を開始すると、パケットジェネレート管理部401は、設定されたパケットフィルタ開始日時から単位時間分までのパケット以外をフィルタしてパケットを絞り込む。フィルタAボタンとフィルタBボタンは排他的となっており、いずれか1つのみを押下可能である。
【0044】
表示917は、パケットフィルタのためのフィルタ条件Cを設定するためのボタンである。本画面のユーザが本ボタンを押下してフィルタ処理を開始すると、パケットジェネレート管理部401は、設定された送信元MACアドレスを持つパケット以外をフィルタしてパケットを絞り込む。表示918は、パケットフィルタのためのフィルタ条件Dを設定するためのボタンである。本画面のユーザが本ボタンを押下してフィルタ処理を開始すると、パケットジェネレート管理部401は、設定された送信元IPアドレスを持つパケット以外をフィルタしてパケットを絞り込む。表示919は、パケットフィルタのためのフィルタ条件Eを設定するためのボタンである。本画面のユーザが本ボタンを押下してフィルタ処理を開始すると、パケットジェネレート管理部401は、設定されたネットワークプロトコルのパケット以外をフィルタしてパケットを絞り込む。表示920は、パケットフィルタのためのフィルタ条件Fを設定するためのボタンである。本画面のユーザが本ボタンを押下してフィルタ処理を開始すると、パケットジェネレート管理部401は、ブロードキャストパケット以外をフィルタしてパケットを絞り込む。表示921は、パケットフィルタのためのフィルタ条件Gを設定するためのボタンである。本画面のユーザが本ボタンを押下してフィルタ処理を開始すると、パケットジェネレート管理部401は、マルチキャストパケット以外をフィルタしてパケットを絞り込む。フィルタFボタンとフィルタGボタンは排他的となっており、いずれか1つのみを押下可能である。
【0045】
上記の各フィルタボタンは、一部の排他的に指定するボタンを除き、複数種類を押下することが可能である。本画面のユーザが複数種類のフィルタボタンを押下した場合には、パケットジェネレート管理部401は、各フィルタ条件をAND条件としてパケットフィルタ処理する。ボタン922は、本画面のユーザによって押下された各フィルタ条件に基づきフィルタ処理とパケットジェネレート処理を開始するためのボタンである。本画面のユーザが本ボタンを押下すると、パケットジェネレート管理部401は、各フィルタ条件に基づいてフィルタ処理及びパケットジェネレート処理を開始する。表示923は、ジェネレート処理の終了後に実際にパケットジェネレートを行ったパケットを保存するためのボタンである。本画面のユーザが本ボタンを押下するとパケットジェネレート管理部401は、フィルタして絞り込んだパケットの出力先に対してパケットジェネレートを行ったパケットを保存する。表示924は、表示922(パケットジェネレート開始ボタン)と表示923(フィルタパケット保存ボタン)を押下時の処理結果やエラーのメッセージを表示する。ここで、本画面のユーザがパケットジェネレート処理やフィルタパケット保存処理を行った際の結果やエラーのメッセージが表示される。
以上説明したように、本実施例によれば、特殊な機器(例えばパケットジェネレータ)が無くてもパケットデータのパケットジェネレートが可能になる。また、自装置が送出したパケットの削除を機器内で行うため、パケット編集の時間の短縮が可能であり、また専門知識を持った技術者がいなくても再現試験の実施が可能となる。更には、障害の現象を再現させることができ、且つパケットデータを最小化することが可能となる。
【0046】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
ネットワークに接続可能なデータ処理装置であって、
予め定められた期間において前記ネットワークから取得した複数のパケットデータを格納する格納手段と、
前記格納手段により格納された複数のパケットデータを、前記データ処理装置を宛先として前記ネットワークに送信する送信手段と、
前記送信手段により送信された複数のパケットデータを受信し、当該受信において障害を検出したか否かを判定する判定手段と、
前記判定手段により障害を検出したと判定された場合に、前記予め定められた期間を更新し、当該更新された期間に対応する複数のパケットデータを前記ネットワークに送信するように前記送信手段を制御する制御手段と、
前記判定手段により障害を検出しなかったと判定された場合に、障害の原因となるパケットデータを含む複数のパケットデータを抽出する抽出手段と
を備えることを特徴とするデータ処理装置。
【請求項2】
前記抽出手段により抽出された複数のパケットデータのうち、予め定められた条件を満たすパケットデータを抽出するパケットフィルタ手段をさらに備えることを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記予め定められた条件とは、(a)予め定められたMACアドレス又はIPアドレスが設定されたパケットデータであるか、(b)予め定められたネットワークプロトコルが設定されたパケットデータであるか、(c)予め定められたブロードキャストパケットデータ又はマルチキャストパケットデータであるか、のいずれかであることを特徴とする請求項2に記載のデータ処理装置。
【請求項4】
ネットワークに接続可能なデータ処理装置において実行されるデータ処理方法であって、
前記データ処理装置の格納手段が、予め定められた期間において前記ネットワークから取得した複数のパケットデータを格納する格納工程と、
前記データ処理装置の送信手段が、前記格納工程において格納された複数のパケットデータを、前記データ処理装置を宛先として前記ネットワークに送信する送信工程と、
前記データ処理装置の判定手段が、前記送信工程において送信された複数のパケットデータを受信し、当該受信において障害を検出したか否かを判定する判定工程と、
前記データ処理装置の制御手段が、前記判定工程において障害を検出したと判定された場合に、前記予め定められた期間を更新し、当該更新された期間に対応する複数のパケットデータを前記ネットワークに送信するように前記送信工程を制御する制御工程と
前記データ処理装置の抽出手段が、前記判定工程において障害を検出しなかったと判定された場合に、障害の原因となるパケットデータを含む複数のパケットデータを抽出する抽出工程と
を有することを特徴とするデータ処理方法。
【請求項5】
請求項4に記載の方法の各工程をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate