(57)【特許請求の範囲】
【請求項１】
ネットワーク上の機器と通信可能であって、当該機器から送信されるパケットのキャプチャを行うことが可能な通信装置であって、
前記通信装置に関連するパケットをキャプチャする設定を行う設定手段と、
前記設定手段により前記通信装置に関連するパケットをキャプチャする設定が行われた場合、前記通信装置のアドレスに加えて、ブロードキャストアドレス及び／又はマルチキャストアドレスを含んだフィルタ条件を有効にする制御手段と、
前記通信装置がマルチキャストグループへの参加を示すパケットを送信した場合に、対応するマルチキャストアドレスを前記フィルタ条件に追加する追加手段と、
前記ネットワークを介して受信したパケットが、前記フィルタ条件を満たすか否か判定する第１の判定手段と、
前記第１の判定手段によって前記フィルタ条件を満たすと判定された場合に、前記受信したパケットをキャプチャするキャプチャ手段と、
を有することを特徴とする通信装置。
【請求項２】
前記通信装置がマルチキャストグループからの離脱を示すパケットを送信したかどうかを判定する第２の判定手段と、
前記第２の判定手段がマルチキャストグループからの離脱を示すパケットを送信したことを判定した場合に、対応するマルチキャストアドレスを前記フィルタ条件から削除する削除手段と、
を更に有することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記受信したパケットが特定のプロトコルと一致するかどうかを判別する判別手段と、
前記判別手段によって前記特定のプロトコルと一致すると判別した場合、当該パケットがマルチキャストグループへの参加を示すパケットか、離脱を示すパケットかを識別する識別手段とを更に有し、
前記識別手段が前記受信したパケットがマルチキャストグループへの参加を示すパケットであることを識別した場合に、前記追加手段が、対応するマルチキャストアドレスを前記フィルタ条件に追加することを特徴とする請求項１に記載の通信装置。
【請求項４】
前記フィルタ条件は優先度の情報を含み、前記第１の判定手段は、当該優先度の順に、前記受信したデータのアドレスと、前記フィルタ条件に含まれるアドレスとを照合して前記フィルタ条件を満足するか否かを判定することを特徴とする請求項１乃至３のいずれか１項に記載の通信装置。
【請求項５】
プロトコルとマルチキャストアドレスとの対応を保存する保存手段を更に有し、
前記制御手段は、前記保存手段に保存されたマルチキャストアドレスを含んだフィルタ条件を有効にすることを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
前記設定手段は、前記通信装置のアドレスが指定されたパケットのみをキャプチャする設定が可能であることを特徴とする請求項１乃至５のいずれか１項に記載の通信装置。
【請求項７】
ネットワーク上の機器と通信可能であって、当該機器から送信されるパケットのキャプチャを行うことが可能な通信装置の制御方法であって、
前記通信装置に関連するパケットをキャプチャする設定を行う設定ステップと、
前記設定ステップで前記通信装置に関連するパケットをキャプチャする設定が行われた場合、前記通信装置のアドレスに加えて、ブロードキャストアドレス及び／又はマルチキャストアドレスを含んだフィルタ条件を有効にする制御ステップと、
前記通信装置が、マルチキャストグループへの参加を示すパケットを送信した場合に、対応するマルチキャストアドレスを前記フィルタ条件に追加する追加ステップと、
前記ネットワークを介して受信したパケットが、前記フィルタ条件を満たすか否か判定する判定ステップと、
前記判定ステップで前記フィルタ条件を満たすと判定された場合に、前記受信したパケットをキャプチャするキャプチャステップと、
を有することを特徴とする通信装置の制御方法。
【請求項８】
請求項７に記載の制御方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信したデータに対するフィルタ処理を行う通信装置とその制御方法とプログラムに関する。
【背景技術】
【０００２】
近年、ネットワーク環境の複雑化やトラフィックの増加、新しいプロトコルの出現に伴い、ネットワークに関連する障害も増加している。このような障害として、例えば、ネットワークに接続できない、速度が遅い、瞬断が発生する等の障害が挙げられる。
【０００３】
このようなネットワークの障害時には、ＰＣでネットワークパケットを取得するアプリケーションツールを実行し、ネットワークパケットを監視して障害の原因を究明するのが一般的であった。しかし、ある機器で送受信しているネットワークパケットをＰＣが取得するためには、ネットワークの構成を変更したり、スイッチの設定を変更する必要があった。そのため手間がかかり、かつ操作ミスも発生しやすく、また、ネットワーク構成を変更した場合は障害の現象が変わってしまうこともあり、必ずしも障害の原因となるパケットを取得できるという保証がなかった。
【０００４】
そこでＰＣだけではなく、複合機などの組込み機器にもパケット取得アプリを搭載してネットワークパケットを取得することで、この問題を解決する手法が考えられている（例えば、特許文献１）。この手法により、組込み機器が不正なパケットを送受信している等の情報は、ＰＣ等を使用せずに、組込み機器内で判断することが可能となっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１５２７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、一般的な組込み機器はＰＣと異なり、保存できるパケットデータの保存領域が限定されている。そのため、「フィルタなしモード」でパケット取得を動作させた場合は、組込み機器が取得するネットワークパケットの全てを取得して保存してしまうため、直ぐに保存領域がフルになってしまうという問題があった。
【０００７】
また「自機宛ＭＡＣアドレスを含むパケットのみを取得するモード」でパケットを取得した場合は、マルチキャストパケット等はフィルタ条件に合致しないため破棄していた。つまり、このフィルタモードを使用すると、実際は受信して処理しているマルチキャストパケットを取得できなくなるという問題があった。つまり、「フィルタなしモード」では、取得したパケットのサイズが大きくなり、「フィルタありモード」にすると、自機に関連のあるパケットを取得できないという問題があった。
【０００８】
本発明の目的は、上記従来技術の問題点を解決することにある。
【０００９】
本発明の特徴は、マルチキャストグループへの参加を示すパケットを送信すると、対応するマルチキャストアドレスをフィルタ条件に反映することにより、フィルタモードであっても自機に関連のあるパケットを取得できる技術を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明の一態様に係る通信装置は以下のような構成を備える。即ち、
ネットワーク上の機器と通信可能であって、当該機器から送信されるパケットのキャプチャを行うことが可能な通信装置であって、
前記通信装置に関連するパケットをキャプチャする設定を行う設定手段と、
前記設定手段により前記通信装置に関連するパケットをキャプチャする設定が行われた場合、前記通信装置のアドレスに加えて、ブロードキャストアドレス及び／又はマルチキャストアドレスを含んだフィルタ条件を有効にする制御手段と、
前記通信装置がマルチキャストグループへの参加を示すパケットを送信した場合に、対応するマルチキャストアドレスを前記フィルタ条件に追加する追加手段と、
前記ネットワークを介して受信したパケットが、前記フィルタ条件を満たすか否か判定する第１の判定手段と、
前記第１の判定手段によって前記フィルタ条件を満たすと判定された場合に、前記受信したパケットをキャプチャするキャプチャ手段と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、フィルタモードであっても、自機に関連のあるパケットを取得できる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態に係る組込み機器である画像形成装置を使用したネットワークシステムの構成を示す図。
【図２】本実施形態に係るＭＦＰのハードウェア構成を説明するブロック図。
【図３】ＭＦＰのソフトウェア構成を説明するブロック図。
【図４】実施形態に係るキャプチャフィルタテーブルの一例を示す図。
【図５】ＩＰフィルタテーブルの一例を示す図。
【図６】ＷＯＬテーブルの一例を示す図。
【図７】本発明の実施形態１に係るパケットキャプチャ制御部による処理を説明するフローチャート。
【図８】プロトコルと、マルチキャストアドレスとの対応を示すテーブルの一例を示す図。
【図９】実施形態１に係るパケットキャプチャ処理部の処理を説明するフローチャート。
【図１０】実施形態１に係るＭＦＰのフィルタモードでのシーケンス例を説明する図。
【図１１】実施形態２に係るパケットキャプチャ処理を説明するフローチャート。
【図１２】実施形態２に係るＭＦＰのフィルタモードにおける処理シーケンスの一例を説明する図。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、本実施形態では、組込み機器が設定値から取得するマルチキャストパケットを算出し、動的に反映する場合について説明する。
【００１４】
図１は、本実施形態に係る組込み機器である画像形成装置１０１を使用したネットワークシステムの構成を示す図である。
【００１５】
画像形成装置１０１とホストコンピュータ１０２とがネットワーク（ＮＥＴ）を介して接続され、相互に送受信処理が可能となっている。尚、この画像形成装置１０１は、コピー機能、ファクシミリ機能、印刷機能、ストレージ機能などを備えた多機能処理装置（以下、ＭＦＰ）である。
【００１６】
図２は、本実施形態に係るＭＦＰ１０１のハードウェア構成を説明するブロック図である。
【００１７】
ＭＦＰ１０１は、ＣＰＵ２０９を有するユニット２２０と、ＣＰＵ２２１を有するユニット２２１の２つを有している。尚、ここでは、ユニット２２０はＭＦＰ１０１のコントローラ、ユニット２２１はＭＦＰ１０１のＮＩＣ（Network Interface Card）として記載している。ＭＦＰ２０１は省電力機能を保持し、「スリープ状態」の場合は、ユニット２２１のみに電源が供給され、それ以外への電源供給を停止することで、消費電力の低減を実現する。
【００１８】
まず最初にユニット２２０について説明する。ＲＯＭ２０３のプログラム用ＲＯＭは、ＣＰＵ２０９が実行可能な制御プログラム等を記憶している。ＲＯＭ２０３のデータ用ＲＯＭは、ユニット２２０で利用される情報等を記憶している。ＣＰＵ２０９は、ＲＯＭ２０３のプログラム用ＲＯＭに記憶された制御プログラムに従って、システムバス２１０に接続される各種のデバイスとのアクセスを総括的に制御する。また、プリンタＩ／Ｆ２０６を介して接続されるプリンタエンジン２２２に、出力情報としての画像信号を出力したり、スキャナＩ／Ｆ２０１を介して接続されるスキャナ２１８から入力される画像信号を制御する。ＲＡＭ２０４は、主としてＣＰＵ２０９の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭにより、そのメモリ容量を拡張できるように構成されている。ハードディスク（HDD）２０５は、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶したり、プリントジョブを一時的にスプールし、スプールされたジョブを外部から制御するためのジョブ格納領域として使用される。また更に、スキャナ２１８から入力した画像データやプリントジョブの画像データをボックスデータとして保持し、ネットワークから参照したり、印刷を行うためのデータ格納領域としても使用される。不揮発性メモリ（ＮＶＲＡＭ）２０７は、操作パネル２１９を使用して設定される各種設定情報を、パネル制御部２０８経由で受け取って記憶している。
【００１９】
次にユニット２２１について説明する。ＲＯＭ２１３のプログラム用ＲＯＭは、ＣＰＵ２１１が実行可能な制御プログラム等を記憶している。ＲＯＭ２１３のデータ用ＲＯＭは、ユニット２２１上で利用される情報等を記憶している。ＣＰＵ２１１は、ＲＯＭ２１３のプログラム用ＲＯＭに記憶された制御プログラムに従って、システムバス２１６に接続される各種のデバイスとのアクセスを総括的に制御する。ＲＡＭ２１４は、主としてＣＰＵ２１１の主メモリ，ワークエリア等として機能する。ＣＰＵ２１１は、ネットワークＩ／Ｆ２１５を介してネットワーク上のホストコンピュータや画像形成装置との通信処理が可能となっている。
【００２０】
また、これらユニット２２０とユニット２２１は、拡張Ｉ／Ｆ２１７を介して接続されており、ユニット２２０上のＣＰＵ２０９は、拡張Ｉ／Ｆ２１７、拡張Ｉ／Ｆ制御部２０２を経由して、ユニット２２１とデータの送受信を行うことができる。同様に、ユニット２２１のＣＰＵ２１１は、拡張Ｉ／Ｆ２１７、拡張Ｉ／Ｆ制御部２１２を経由して、ユニット２２０とデータの送受信を行うことができる。
【００２１】
図３は、ＭＦＰ１０１のソフトウェア構成を説明するブロック図である。尚、図３に示すメインＣＰＵファーム３０１の各処理部及び制御部は、ＣＰＵ２０９がプログラムＲＯＭに記憶されたプログラムを実行することにより実現される。
【００２２】
このＭＦＰ１０１のソフトウェア構成は、大きく非スリープ状態で動作するメインＣＰＵファーム３０１と、スリープ状態で動作するサブＣＰＵファーム３０２とに分けられる。まず、メインＣＰＵファーム３０１について説明する。
【００２３】
外部からネットワークパケットを受信した場合、まずパケットキャプチャ処理部３０５で、受信したデータが処理される。「フィルタなしモード」で動作している場合、パケットキャプチャ処理部３０５は、受信した全てのパケットデータをキャプチャデータ保存領域３０８に保存する。一方、「フィルタモード」で動作している場合、パケットキャプチャ処理部３０５は、キャプチャフィルタテーブル３０６を参照し、フィルタ条件を満足するパケットデータのみを保存領域に保存していく。いずれの動作モードでも、受信したパケットデータをそのままＩＰフィルタ処理部３０９に転送する。パケットキャプチャ制御部３０７は、ＵＩ部３１１を介してユーザが指示することにより、キャプチャフィルタテーブル３０６を更新するための処理を実行する。
【００２４】
図４は、実施形態に係るキャプチャフィルタテーブル３０６の一例を示す図である。
【００２５】
優先度が「１」のポリシーから条件を照合していき、条件を満足した時点で「挙動」に示されている動作（図４では「保存する」、「保存しない」）をする。
【００２６】
ＩＰフィルタ処理部３０９は、ＩＰフィルタテーブル３１０を参照し、受信した全てのパケットデータに対してフィルタ条件に合致するかどうかを判別する。もし「破棄」のフィルタ条件に合致した場合は、受信したパケットデータを速やかに破棄し、その受信データをアプリケーション層まで転送しない。また「許可」のフィルタ条件に合致した場合は、受信したパケットデータをそのまま上位のアプリ層に転送する。
【００２７】
図５は、ＩＰフィルタテーブル３１０の一例を示す図である。
【００２８】
優先度が「１」のポリシーから条件を照合していき、条件を満足した時点で「挙動」に示されている動作（図５では、「破棄」、「許可」）をする。
【００２９】
アプリケーション３１２及び３１３は、このＭＦＰ１０１で動作するアプリケーションであり、受信したパケットに対して返送パケットを送信したり、自らパケットを送信したりする。尚、アプリケーションが自発的にパケットを送信する場合も、受信時と逆のシーケンスとなり、まずＩＰフィルタ処理部３０９でフィルタ処理され、次にパケットキャプチャ処理部３０５でキャプチャ処理される。
【００３０】
ＵＩ部３１１により、ユーザは操作パネル２１９を介して、ＭＦＰ１０１に対する各種設定を行うことができる。例えば、ＭＦＰ１０１のＷＳＤ設定の有効、無効や、ＳＬＰ設定の有効、無効が設定可能である。
【００３１】
次にサブＣＰＵファーム３０２について説明する。
【００３２】
サブＣＰＵファーム３０２は、メインＣＰＵファーム３０１がスリープ状態の場合でのみ起動する。サブＣＰＵファーム３０２は、受信したネットワークデータを２種に分類する。ここで２種とは、「破棄」と「メインＣＰＵファームへ転送」である。「メインＣＰＵファームへ転送」は、受信したネットワークデータに対して何らかの処理が必要であるが、電源が供給されているユニット２２１だけでは処理を行えないネットワークデータを受信した場合を示す。ＷＯＬ（Wake On LAN）処理部３１４は、受信したパケットをＷＯＬテーブル３１５を参照し、メインＣＰＵファーム３０１を復帰させるパターンかどうかを判断する。復帰させる場合は復帰処理を行い、ＭＦＰ１０１を「スリープ状態」から「非スリープ状態」へ移行し、受信したパケットをメインＣＰＵファーム３０１へ転送する。また復帰させない場合は、受信したネットワークデータに対する処理は何も行わずに、受信したパケットを破棄し、メインＣＰＵファーム３０１へ転送しない。
【００３３】
ＣＰＵ間通信部３０３，３０４はそれぞれ、メインＣＰＵファーム３０１、サブＣＰＵファーム３０２に設けられ、メインＣＰＵファーム３０１とサブＣＰＵファーム３０２との間の通信を制御する。
【００３４】
図６は、ＷＯＬテーブル３１５の一例を示す図である。
【００３５】
優先度が「１」のポリシーから条件を照合していき、条件を満足した時点で「挙動」に示されている動作（図６では、「ＷＯＬする」、「ＷＯＬしない」）をする。
【００３６】
［実施形態１］
図７は、本発明の実施形態１に係るパケットキャプチャ制御部３０７による処理を説明するフローチャートである。尚、この処理は、ＣＰＵ２０９がプログラムＲＯＭに記憶されているプログラムを実行することにより実現される。
【００３７】
ＭＦＰ１０１の電源が入れられるとまずＳ７０１で、パケットキャプチャ制御部３０７は、設定されているフィルタ設定モードを読み込む。フィルタ設定モードは、全ての受信パケットを保存する「フィルタなしモード」と、フィルタ条件に合致した受信パケットのみ保存する「フィルタありモード」に大別され、ユーザが任意の設定値を選択することができる。例えば、「フィルタありモード」は更に「自機ＭＡＣアドレスを含むパケットのみ」や「自機に関連するパケットのみ」など、どのようなフィルタ条件で動作するかを詳細に設定できるようにしてもよい。本実施形態１では、「自機に関連するパケットのみ」を取得して保存するモードが設定できる場合で説明する。
【００３８】
「フィルタなしモード」の場合はＳ７１０に進み、パケットキャプチャ制御部３０７は特に処理を行わずに、ユーザが設定値を変更するまで待機する。一方、「フィルタありモード」の場合はＳ７０２に進み、パケットキャプチャ制御部３０７は、各設定値を参照して、パケットキャプチャフィルタテーブル３０６を生成する。
【００３９】
「自機に関連するパケットのみ」は、つまり自機ＭＡＣアドレスを含むパケットと捉えられる。よってＳ７０２で、パケットキャプチャ制御部３０７は、自機のＭＡＣアドレスを取得する。そして「パケットの送信元ＭＡＣアドレス、或いは送信先ＭＡＣアドレスのフィールドが自機ＭＡＣアドレスと一致する」という条件をパケットキャプチャフィルタテーブル３０６に追加する。次にＳ７０３に進み、ブロードキャストアドレスやサブネットブロードキャストアドレスも自機に関係のあるパケットの可能性が高いため、ここではフィルタ対象に追加する。ここで、サブネットブロードキャストアドレスは、自機のＩＰアドレス及びサブネットマスクから算出する。
【００４０】
次に、各プロトコルの設定値を参照してパケットキャプチャフィルタテーブル３０６に条件を追加するかどうかを判断する。まずＳ７０４で、「ＷＳＤ設定」を参照し、もし有効である場合はＳ７０５に進み、「送信先ＩＰアドレスのフィールドが239.255.255.250と一致」という条件を追加する。この時、各プロトコルに対応するマルチキャストアドレスは、図８のような対応テーブルをデバイスに内部に保持しておき、このテーブルに基づき決定する。
【００４１】
図８は、プロトコルと、マルチキャストアドレスとの対応を示すテーブルの一例を示す図である。
【００４２】
このテーブルの内容はユーザがＵＩなどで変更可能としてもよい。
【００４３】
次にＳ７０６で「ＳＬＰ設定」を参照し、もし有効である場合はＳ７０７に進み、「送信先ＩＰアドレスのフィールドが239.255.255.253と一致」という条件を追加する。次にＳ７０８で「IPv6設定」を参照し、もし有効である場合はＳ７０９に進んで、「送信先ＩＰアドレスのフィールドがff02::1:ff00:0/104と一致」という条件を追加する。尚、図７、図８では、各プロトコル設定に対するIPv6マルチキャストアドレスしか記載していないが、対応するIPv4マルチキャストも同様に追加してもよい。
【００４４】
このようにして、各プロトコルの参照が終了した時点で、例えば、図４に示すようなパケットキャプチャフィルタテーブル３０６が生成される。その後、パケットキャプチャ制御部３０７は、Ｓ７１０で、ユーザが設定値を変えるまで待機し、ＵＩ部３１１から設定値の変更が指示されるとＳ７０１に進み、前述した処理を実行する。
【００４５】
図９は、本発明の実施形態１に係るパケットキャプチャ処理部３０５の処理を説明するフローチャートである。尚、この処理は、ＣＰＵ２０９がプログラムＲＯＭに記憶されているプログラムを実行することにより実現される。
【００４６】
まずＳ９０１で、パケットキャプチャ処理部３０５はパケットを受信するとＳ９０２に処理を進め、フィルタモードの設定値を読み込む。そして、フィルタモードの設定が「フィルタなしモード」である場合はＳ９０５に進み、受信データをキャプチャデータ保存領域（例えば、ＨＤＤ２０５）に保存する。
【００４７】
一方、フィルタモード設定が「フィルタありモード」の場合はＳ９０３に進み、パケットキャプチャフィルタテーブル３０６を参照する。ここでは優先度の数字が小さいポリシー内容から順番に（優先度１から順に）参照していき、Ｓ９０４で条件に一致するかどうかを判定する。そして条件に一致した場合はＳ９０５に進み、受信したパケットを保存領域（例えば、ＨＤＤ２０５）に保存する。
【００４８】
図１０は、本発明の実施形態１に係るＭＦＰ１０１のフィルタモードでのシーケンス例を説明する図である。
【００４９】
パケットキャプチャ機能を搭載しているＭＦＰ１０１のＩＰアドレスを「192.168.0.2」、外部ホスト１０１０のＩＰアドレスを「192.168.0.1」とする。例えば、ＭＦＰ１０１が外部ホスト１０１０からＳＬＰマルチキャストパケットを受信した場合、キャプチャフィルタテーブル３０６を参照する。パケットの送信先ＩＰアドレスが「239.255.255.253」であること、プロトコルがＳＬＰであることより、図４の優先度が「３」のポリシーの条件と一致する。これにより、その受信したパケットを保存領域に保存する（１０２０）。
【００５０】
また、ＭＦＰ１０１が外部ホスト１０１０からpingリクエストパケットを受信した場合は、パケットの送信先ＭＡＣアドレスが自機ＭＡＣアドレスである「00-00-44-33-22-11」と一致する。即ち図４の優先度が「２」のポリシーの条件と一致する。このため、その受信したパケットを保存する（１０２１）。
【００５１】
またＭＦＰ１０１が外部ホスト１０１０からＨＳＲＰマルチキャストパケットを受信した場合、図４のキャプチャフィルタテーブル３０６のどのポリシーとも一致する条件がないため、最終的に受信パケットを保存しない（１０２２）。
【００５２】
従来は、「フィルタなしモード」の場合、受信した全パケットを保存していたので、ＨＳＲＰのような無関係のパケットも保存してしまい、無駄に保存領域を浪費していた。これに対して本実施形態１では、ＨＳＲＰのような無関係のパケットを保存しない。また「フィルタありモード」の場合、ＭＦＰ１０１に関連するパケットのみを保存するので、保存領域を効率的に活用でき、かつ保存後のキャプチャデータの解析なども行いやすくなるという効果がある。
【００５３】
［実施形態２］
前述の実施形態１では、例えば図８に示すようなプロトコルと、マルチキャストアドレスの対応テーブルで管理していた。そのため、例えばＭＦＰ１０１に追加のアプリケーションをインストールした場合に、そのアプリケーションが、そのテーブルに存在しないマルチキャストアドレスを使用しているとする。このような場合は、そのマルチキャストパケットはフィルタ条件に一致しないため受信パケットを取得できない。そこで実施形態２では、図８のようなテーブルを参照せず、新規のマルチキャストパケットなどが現れても、もれなく取得できるような技術について説明する。尚、実施形態２に係るシステム構成及びＭＦＰの構成は、前述の実施形態１と同様であるため、その説明を省略する。
【００５４】
図１１は、本発明の実施形態２に係るパケットキャプチャ処理を説明するフローチャートである。尚、この処理は、ＣＰＵ２０９がプログラムＲＯＭに記憶されているプログラムを実行することにより実現される。
【００５５】
フィルタモード設定の読み込み処理、フィルタモードが有効であれば自機ＭＡＣアドレス、ブロードキャストアドレスをキャプチャフィルタテーブルに追加する処理（Ｓ１１０１〜Ｓ１１０３）は、前述の実施形態１（図７のＳ７０１〜Ｓ７０３)と同じである。
【００５６】
そしてＳ１１０４で、パケット受信を監視する処理を開始する。パケットキャプチャ処理部３０５がパケットを受信した場合はＳ１１０５に進み、受信パケットの送信元ＩＰアドレスフィールドの値が、自機のＩＰアドレスと一致するかどうかを判別する。つまり、自機が送信したパケットかどうかを判別する。一致した場合は自機が送信したパケットである。一致しないときはＳ１１０４に進むが、一致したと判別した場合はＳ１１０６に進み、受信したパケットのプロトコルフィールドを参照し、そのパケットがＩＧＭＰプロトコルかどうかを判別する。具体的には、そのパケットのプロトコルフィールドがＩＧＭＰを示す「0x02」の値になっているかどうかで判別する。ＩＧＭＰは特定のマルチキャストパケットを受信するためにホストがルータに登録できる制御を示したプロトコルである。このプロトコルパケットを監視することにより、ＭＦＰ１０１がいつマルチキャストグループにjoin（参加）したか、leave（離脱）したかを判別することができる。
【００５７】
Ｓ１１０６で、そのパケットがＩＧＭＰパケットであると判別した場合はＳ１１０７に進み、次にそのＩＧＭＰパケットのタイプがjoinかleaveのいずれかと一致するか否かを識別する。ＩＧＭＰは大きく３つのバージョンが存在し、各バージョンによって参照するフィールドが異なる。例えば、バージョンIGMPv3の場合、Record Typeフィールドが「0x04」（Change to Exclude Mode）の場合はjoinと判別する。またフィールドが「0x03（Change to Include Mode）の場合はleaveと判別する。
【００５８】
またバージョンIGMPv2の場合は、Message Typeフィールドが「0x11」（メンバーシップクエリ）の場合はjoinと判別する。またフィールドが「0x17」（リーブレポート）の場合はleaveと判別する。ＩＧＭＰの詳細はＲＦＣを参照されたい。
【００５９】
Ｓ１１０７で、joinパケットであると識別した場合はＳ１１０８に進み、joinするマルチキャストアドレスをキャプチャフィルタテーブル３０６に追加する。またＳ１１０９で、leaveパケットであると識別した場合はＳ１１１０に進み、leaveするマルチキャストアドレスをキャプチャフィルタテーブル３０６から削除する。
【００６０】
図１２は、実施形態２に係るＭＦＰ１０１のフィルタモードにおける処理シーケンスの一例を説明する図である。ここでは、パケットキャプチャ機能を搭載しているＭＦＰ１０１のＩＰアドレスを「192.168.0.2」、外部ホスト１２００のＩＰアドレスを「192.168.0.1」とする。
【００６１】
パケットキャプチャ処理部３０７は、常にＭＦＰ１０１が送受信するパケットを監視しているものとする。ＭＦＰ１０１がＩＰアドレス「239.255.255.253」にjoinパケット１２０１を送信した場合、パケットキャプチャ処理部３０７は、そのパケットを検知できる。そして送信先ＩＰアドレス「239.255.255.253」を、フィルタ対象としてキャプチャフィルタテーブル３０６に追加する（１２０２）。その後、送信先ＩＰアドレスが「239.255.255.253」のＳＬＰマルチキャストパケット１２０３を受信すると、キャプチャフィルタテーブル３０６の条件と一致する。このため、その受信したパケットを記憶領域（ＨＤＤ２０５）に保存する（１２０４）。
【００６２】
同様に、ＭＦＰ１０１がＩＰアドレス「239.255.255.250」にjoinパケット１２０５を送信した場合、パケットキャプチャ処理部３０７は、そのパケットを検知することができる。そして、その送信先ＩＰアドレス「239.255.255.250」をキャプチャフィルタテーブル３０６にフィルタ対象として追加する（１２０６）。その後、送信先ＩＰアドレスが「239.255.255.250」のＷＳＤマルチキャストパケット１２０７を受信した場合は、キャプチャフィルタテーブル３０６の条件と一致する。このため、その受信したパケットは記憶領域（ＨＤＤ２０５）に保存される（１２０８）。
【００６３】
また、ＭＦＰ１０１がＩＰアドレス「239.255.255.253」に対するleaveパケット１２０９を送信した場合、パケットキャプチャ処理部３０５は、そのパケットを検知するができる。そして、そのＩＰアドレス「239.255.255.253」をキャプチャフィルタテーブル３０６のフィルタ対象から削除する（１２１０）。その後、送信先ＩＰアドレスが「239.255.255.253」のＳＬＰマルチキャストパケット１２１１を受信した場合は、キャプチャフィルタテーブル３０６の条件と一致しないので、その受信したパケットを保存しない（１２１２）。
【００６４】
このようにＭＦＰ１０１が送信するＩＧＭＰパケットを常に監視し、joinとleaveに応じてフィルタ対象の追加及び削除を行うことにより、動的に最適なフィルタ条件を常に保持することができる。これにより、自機に関連のあるパケットのみを効率的に保存できるだけでなく、新規にＭＦＰ１０１にインストールされたアプリケーションなどが新しいマルチキャストパケットを扱っても、漏れなく対応することが可能となる。
【００６５】
尚、本実施例では、ＩＧＭＰパケットを監視することによってマルチキャストグループへの参加や離脱を検知した。しかし、マルチキャストグループへの参加や離脱を検知できるパケットであれば、ＩＧＭＰ以外のパケットを監視することによって同様の処理を行ってもよい。即ち、マルチキャストグループへの参加や離脱を検知するための特定のプロトコルはＩＧＭＰに限定されない。
【００６６】
（その他の実施例）
上記実施形態の説明では、通信装置の一例としてＭＦＰをあげて説明したが、本発明はＭＦＰに限らず、ネットワークを介してデータを送受信可能なあらゆる通信装置に適用可能である。
【００６７】
また、上記第１の実施形態と第２の実施形態とを適宜組み合わせて本発明を実施することも可能である。
【００６８】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005735853.tif 000002
【図２】
0005735853.tif 000003
【図３】
0005735853.tif 000004
【図４】
0005735853.tif 000005
【図５】
0005735853.tif 000006
【図６】
0005735853.tif 000007
【図７】
0005735853.tif 000008
【図８】
0005735853.tif 000009
【図９】
0005735853.tif 000010
【図１０】
0005735853.tif 000011
【図１１】
0005735853.tif 000012
【図１２】
0005735853.tif 000013