同定装置、同定方法、及びプログラム
【課題】通信機器の同定を行う際、補助記憶装置の記憶容量を確保し、かつCPUへの負荷を低減させる。
【解決手段】プログラム管理部11は、所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムの追加指示または削除指示を受け付け、プログラム記憶部1への当該プログラムの追加又はプログラム記憶部1からのプログラムの削除を行う。レスポンス解析部4及びキャプチャ解析部6は、プログラム記憶部が記憶するプログラムを実行することでレスポンス受信部3及びパケットキャプチャ部5が受信したパケットを解析して通信装置の特性情報を抽出する。同定部15は、辞書記憶部14が記憶する特性情報とレスポンス解析部4及びキャプチャ解析部6が抽出した特性情報との間の距離を算出する。そして同定部は、距離が近い特性情報に関連付けられた型番情報の中から1つの型番情報をネットワークに接続された通信装置の型番情報として同定する。
【解決手段】プログラム管理部11は、所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムの追加指示または削除指示を受け付け、プログラム記憶部1への当該プログラムの追加又はプログラム記憶部1からのプログラムの削除を行う。レスポンス解析部4及びキャプチャ解析部6は、プログラム記憶部が記憶するプログラムを実行することでレスポンス受信部3及びパケットキャプチャ部5が受信したパケットを解析して通信装置の特性情報を抽出する。同定部15は、辞書記憶部14が記憶する特性情報とレスポンス解析部4及びキャプチャ解析部6が抽出した特性情報との間の距離を算出する。そして同定部は、距離が近い特性情報に関連付けられた型番情報の中から1つの型番情報をネットワークに接続された通信装置の型番情報として同定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークに接続された通信装置を同定する同定装置、同定方法、及びプログラムに関する。
【背景技術】
【0002】
近年、通信機能を有する電化製品が多く生産されている。
特許文献1には、ネットワークに接続された電化製品の種別を決定する方法が開示されている。具体的には、ネットワークに接続された電化製品に対して、レスポンスパケット及びリクエストパケットを受信し、予め電化製品毎に定義された辞書情報と比較して得点化し、最も高い得点の辞書情報に関連付けられた種別が、判定対象の電化製品の種別で有ると判定するものである。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−97587号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の方法を用いて通信装置の同定を行う場合、予め定められたプロトコルのパケットを解析して電化製品の特性を抽出するため、プロトコルによっては通信装置の同定に意味を成さない特性情報を抽出してしまうという問題がある。
また、同定装置を長期間使用していると、同定装置の使用開始時に存在しなかったプロトコルで通信を行う通信装置がネットワークに接続される可能性があるが、特許文献1に記載の方法を用いて通信装置の同定を行う場合、新たなプロトコルの解析を実行することができずに、特性情報が抽出できなくなる惧れがある。
【0005】
また、ネットワークに接続された通信装置を同定する同定装置は、主に補助記憶装置の記憶容量やCPUパワーがPC等の他の装置と比較して小さいホームゲートウェイ装置などに搭載される。そのため、辞書作成装置の機能を実行するプログラムの量をできる限り少なくすることで、補助記憶装置の記憶容量を確保し、かつCPUへの負荷を低減させることが望まれている。
【課題を解決するための手段】
【0006】
本発明は上記の課題を解決するためになされたものであり、ネットワークに接続された通信装置を同定する同定装置であって、前記通信装置からパケットを受信する受信部と、前記受信部が受信した所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムを1つ以上記憶するプログラム記憶部と、前記プログラムの追加指示または削除指示を受け付け、前記プログラム記憶部へのプログラムの追加または前記プログラム記憶部からのプログラムの削除を行うプログラム管理部と、前記プログラム記憶部が記憶するプログラムを実行することで前記受信部が受信したパケットを解析して前記通信装置の特性を示す特性情報を抽出する解析部と、通信装置の特性情報と当該通信機器の型番情報とを関連付けて記憶する辞書記憶部が記憶する特性情報と前記解析部が抽出した特性情報との類似度を算出する比較部と、前記比較部が算出した類似度が高い特性情報に関連付けられた型番情報の中から1つの型番情報が、ネットワークに接続された通信装置の型番情報であると同定する同定部とを備えることを特徴とする。
【0007】
また、本発明においては、前記記録部は、前記プログラム記憶部が記憶するプログラムが抽出できる特性情報のうち、前記解析部によって抽出されなかった特性情報を、情報が無いことを示す特性情報として前記辞書記憶部に記録することが好ましい。
【0008】
また、本発明においては、前記比較部は、前記辞書記憶部が同一の型番情報に関連付けて記憶する特性情報のうち、前記プログラム記憶部が記憶するプログラムが抽出できる特性情報に対して、前記類似度の算出を行うことが好ましい。
【0009】
また、本発明においては、前記辞書記憶部は、前記通信装置の型番情報と前記通信装置に固有の識別情報とを関連付けて格納する型番テーブルと、前記識別情報と前記装置情報とを関連付けて格納する前記詳細テーブルとを記憶し、前記記録部は、前記収集部が収集した特性情報を前記通信装置の識別情報に関連付けて前記型番テーブルに記録し、前記入力部が入力した型番情報を前記通信装置の識別情報に関連付けて前記詳細テーブルに記録することが好ましい。
【0010】
また、本発明においては、前記比較部が算出した類似度のうち、最も高い類似度に関連付けられた所定の数の型番情報を表示する表示部と、前記表示部が表示した型番情報の選択を受け付ける選択部とを備え、前記同定部は、前記選択部によって選択された型番情報が、ネットワークに接続された通信装置の型番情報であると同定することが好ましい。
【0011】
また、本発明は、ネットワークに接続された通信装置を同定する同定装置を用いた同定方法であって、受信部は、前記通信装置からパケットを受信し、プログラム管理部は、前記受信部が受信した所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムの追加指示または削除指示を受け付け、プログラム記憶部への当該プログラムの追加または前記プログラム記憶部からのプログラムの削除を行い、解析部は、前記プログラム記憶部が記憶するプログラムを実行することで前記受信部が受信したパケットを解析して前記通信装置の特性を示す特性情報を抽出し、比較部は、通信装置の特性情報と当該通信機器の型番情報とを関連付けて記憶する辞書記憶部が記憶する特性情報と前記解析部が抽出した特性情報との類似度を算出し、同定部は、前記比較部が算出した類似度が高い特性情報に関連付けられた型番情報の中から1つの型番情報が、ネットワークに接続された通信装置の型番情報であると同定することを特徴とする。
【0012】
また、本発明は、所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムを1つ以上記憶するプログラム記憶部を備え、ネットワークに接続された通信装置を同定する同定装置を、前記通信装置からパケットを受信する受信部、前記プログラムの追加指示または削除指示を受け付け、前記プログラム記憶部へのプログラムの追加または前記プログラム記憶部からのプログラムの削除を行うプログラム管理部、前記プログラム記憶部が記憶するプログラムを実行することで前記受信部が受信したパケットを解析して前記通信装置の特性を示す特性情報を抽出する解析部、通信装置の特性情報と当該通信機器の型番情報とを関連付けて記憶する辞書記憶部が記憶する特性情報と前記解析部が抽出した特性情報との類似度を算出する比較部、前記比較部が算出した類似度が高い特性情報に関連付けられた型番情報の中から1つの型番情報が、ネットワークに接続された通信装置の型番情報であると同定する同定部として機能させるためのプログラムである。
【発明の効果】
【0013】
本発明によれば、プログラム管理部は、プログラム記憶部に対して、所定のプロトコルのパケットを解析するプログラムを追加・削除することができる。これにより、補助記憶装置に記憶させるプログラムの量を適切なものとすることができ、適切なプロトコルを用いて同定処理を実行することができる。
【図面の簡単な説明】
【0014】
【図1】同定装置が用いる辞書情報を作成する辞書作成装置の構成を示す概略ブロック図である。
【図2】各記憶部が記憶するテーブルの構成を示す図である。
【図3】特性情報を抽出する動作を示すフローチャートである。
【図4】特性情報と型番情報とを関連付ける動作を示すフローチャートである。
【図5】特性情報の集合の一覧画面の表示例を示す図である。
【図6】型番情報の入力画面の表示例を示す図である。
【図7】特性名リストの生成処理のフローチャートである。
【図8】本発明の一実施形態による同定装置の構成を示す概略ブロック図である。
【図9】同定装置が通信装置の同定を行う動作を示すフローチャートである。
【図10】同定結果画面の表示例を示す図である。
【発明を実施するための形態】
【0015】
《辞書作成段階》
以下、図面を参照しながら本発明の一実施形態について詳しく説明する。
図1は、本発明による同定装置が用いる辞書情報を作成する辞書作成装置の構成を示す概略ブロック図である。
辞書作成装置は、ネットワークに接続された通信装置を特定するための辞書情報を作成するものである。なお、本実施形態において通信装置とは、ルータやネットワークHUBなどの通信機器だけではなく、通信機能を有する電化製品(PC、テレビ、ゲーム機器など)も含むものである。
辞書作成装置は、プログラム記憶部1、リクエスト送信部2、レスポンス受信部3、レスポンス解析部4(解析部)、パケットキャプチャ部5、キャプチャ解析部6(解析部)、特性記憶部7、表示部8、選択部9、入力部10、プログラム管理部11、プログラム情報記憶部12、記録部13、辞書記憶部14を備える。
【0016】
プログラム記憶部1は、リクエスト送信部2、レスポンス解析部4、キャプチャ解析部6が、パケットの送信及びパケットの解析に用いるプログラムを記憶する。具体的には、通信装置にリクエストパケットを送信し、当該リクエストパケットに対するレスポンスパケットの解析を行うアクティブ計測プログラムと、通信装置から受信したリクエストパケットの解析を行うパッシブ解析プログラムとを記憶する。なお、1つのプログラムは、1つのプロトコルに対する処理を実行することができ、プログラム記憶部1は、プロトコル毎に異なるプログラムを記憶している。
リクエスト送信部2は、プログラム記憶部1から所定のプロトコルのパケットを送信するプログラムを読み出し、当該プログラムが示すプログラムを実行することで、ネットワークに接続された通信装置に所定のプロトコルのパケットを送信することができる。
【0017】
レスポンス受信部3は、リクエスト送信部2が送信したリクエストパケットに対するレスポンスパケットを、通信装置から受信する。
レスポンス解析部4は、レスポンス受信部3が受信したレスポンスパケットに対応するプログラムをプログラム記憶部1から読み出し、当該プログラムが示すプログラムを実行することで、レスポンスパケットを解析する。また、レスポンス解析部4は、レスポンスパケットを解析することで、通信装置の特性を示す特性情報を抽出する。ここで、特性情報とは、通信装置が送信するパケットに含まれる情報を示し、例えば、通信ポートの開閉状態や、IPv4のオプション情報などが挙げられる。また、レスポンス解析部4は、抽出した特性情報を通信装置のMACアドレスに関連付けて特性記憶部7に記録する。
【0018】
パケットキャプチャ部5は、通信装置が送信したパケットをキャプチャする。なお、本実施形態においてパケットのキャプチャとは、通信装置から他の装置へ送信するパケットを中継する際や、同一セグメント内の通信でのグローバルアドレス・マルチキャストアドレスの受信パケット、ポートミラーリングなどによって受信した他装置宛のパケットを読み取ることを言う。
キャプチャ解析部6は、パケットキャプチャ部5がキャプチャしたパケットに対応するプログラムをプログラム記憶部1から読み出し、当該プログラムが示すプログラムを実行することで、パケットを解析する。また、キャプチャ解析部6は、パケットを解析することで、通信装置の特性を示す特性情報を抽出する。また、キャプチャ解析部6は、抽出した特性情報を通信装置のMACアドレスに関連付けて特性記憶部7に記録する。
【0019】
図2は、各記憶部が記憶するテーブルの構成を示す図である。
図2(A)は、特性記憶部7が記憶する特性蓄積テーブルの構成を示すものである。
特性蓄積テーブルは、レスポンス解析部4及びキャプチャ解析部6が抽出した特性情報を格納するテーブルであって、通信装置のMACアドレス、特性名、通信装置のIPアドレス、特性値、及び記録日時を関連付けて格納する。
特性蓄積テーブルが格納する特性名は、レスポンス解析部4及びキャプチャ解析部6が抽出した特性情報のパラメータ名である。
特性蓄積テーブルが格納する特性値は、レスポンス解析部4及びキャプチャ解析部6が抽出した特性情報の値である。
なお、特性蓄積テーブルは、MACアドレスと特性名との組み合わせを主キーとする。
【0020】
表示部8は、ディスプレイに情報を表示させる。具体的には、特性記憶部7が記憶する特性情報が示す通信装置毎に、特性情報の集合をディスプレイに表示させる処理や、選択部9が選択した特性情報が示す通信装置の型番情報の入力画面をディスプレイに表示させる処理を実行する。
選択部9は、ユーザから、表示部8が表示した特性情報の集合の選択を受け付ける。
入力部10は、表示部8が表示させた入力画面への型番情報の入力を受け付ける。
【0021】
プログラム管理部11は、新たなプログラムの追加指示または所定のプログラムの削除指示を受け付け、プログラム記憶部1へのプログラムの追加またはプログラム記憶部1からのプログラムの削除を行う。また、プログラム管理部11は、プログラム情報記憶部12にプログラム記憶部1が記憶するプログラムの状態を示す情報を記録する。
【0022】
図2(B)は、プログラム情報記憶部12が記憶するプログラム登録テーブルの構成を示す図である。
プログラム登録テーブルは、プログラム記憶部1が記憶するプログラムの状態を格納するテーブルであり、プログラム記憶部1が記憶するプログラムを識別するプログラムID、当該プログラムの使用が開始された時刻を示す開始時刻、当該プログラムの使用を終了した時刻を示す終了時刻を格納する。なお、プログラム登録テーブルは、プログラムIDと開始時刻との組み合わせを主キーとする。
図2(C)は、プログラム情報記憶部12が記憶するパラメータテーブルの構成を示す図である。
パラメータテーブルは、プログラムを用いて抽出できる特製情報を格納するテーブルであって、プログラムID、開始時刻、特性名を格納する。なお、パラメータテーブルは、プログラムIDと開始時刻との組み合わせを主キーとする。
記録部13は、プログラム情報記憶部12が記憶する情報を参照し、特性記憶部7が記憶する特性情報のうち選択部9が選択した特性情報と、入力部10が入力した型番情報とを関連付けて辞書情報として辞書記憶部14に記録する。
【0023】
図2(D)は、辞書記憶部14が記憶する型番テーブルの構成を示すものである。
型番テーブルは、通信装置の型番情報を格納するテーブルであって、辞書作成装置の識別情報である辞書作成装置ID、特性情報の抽出処理毎に生成される学習ID、通信装置の型番を示す型番情報、及び特性情報の抽出処理を実行した時刻を示す学習日時を関連付けて格納する。なお、型番テーブルは、辞書作成装置IDと学習IDとの組み合わせを主キーとする。また、型番情報は、通信装置のカテゴリ、製造会社名、装置名、型番、及びコメントを含む情報である。
【0024】
図2(E)は、辞書記憶部14が記憶する詳細テーブルの構成を示すものである。
詳細テーブルは、通信装置の特性情報を格納するテーブルであって、辞書作成装置ID、学習ID、特性名、特性値を関連付けて格納する。特性名及び特性値は、特性記憶部7が記憶する特性蓄積テーブルに格納された特性名及び特性値である。なお、詳細テーブルは、辞書作成装置IDと学習IDと特性名との組み合わせを主キーとする。
【0025】
図2(F)は、辞書記憶部14が記憶する学習パラメータテーブルの構成を示すものである。
学習パラメータテーブルは、レスポンス解析部4及びキャプチャ解析部6による解析に用いたプログラムが抽出する特性情報の特性名を格納するテーブルであって、辞書作成装置ID、学習ID、特性名を関連付けて格納する。なお、詳細テーブルは、辞書作成装置IDと学習IDとの組み合わせを主キーとする。
【0026】
次に、本実施形態による辞書作成装置の動作を説明する。
まず、辞書作成装置にプログラムの追加・削除を行う処理について説明する。
ユーザまたはシステム管理者が、辞書作成装置にプログラム追加指示及び追加対象のプログラムのデータを入力すると、プログラム管理部11は、プログラム追加指示及びプログラムのデータの入力を受け付け、当該プログラムのデータをプログラム記憶部1に記録する。これにより、リクエスト送信部2、レスポンス解析部4、キャプチャ解析部6は、新たなプログラムが有する機能を実行することができるようになる。
【0027】
また、プログラム管理部11は、プログラム情報記憶部12に、追加したプログラムのプログラムIDと現在時刻とを記録する。具体的には、プログラム情報記憶部12が記憶するプログラム登録テーブルのプログラムIDに、追加したプログラムのプログラムIDを、開始時刻に現在時刻を記録する。なお、プログラムの追加時は、プログラム登録テーブルの終了時刻はNULLにしておく。また、プログラム情報記憶部12が記憶するパラメータテーブルのプログラムIDに、追加したプログラムのプログラムIDを、開始時刻に現在時刻を記録する。そして、プログラム情報記憶部12の特性名に、追加したプログラムが抽出する特性情報の特性名を記録する。
以上が、辞書作成装置のプログラム追加時の動作である。
【0028】
他方、ユーザまたはシステム管理者が、辞書作成装置にプログラム削除指示及び削除対象のプログラムのプログラムIDを入力すると、プログラム管理部11は、プログラム削除指示及びプログラムIDの入力を受け付け、該当するプログラムIDを有するプログラムのデータをプログラム記憶部1から削除する。これにより、リクエスト送信部2、レスポンス解析部4、キャプチャ解析部6は、当該プログラムが有する機能を実行しなくなる。また、プログラム管理部11は、プログラム情報記憶部12が記憶するプログラム登録テーブルのうち、削除したプログラムのプログラムIDと同じプログラムIDに関連付けられた終了時刻に、現在時刻を記録する。
以上が、辞書作成装置のプログラム削除時の動作である。
【0029】
以下に、プログラムの追加・削除を行う利点について説明する。
辞書作成装置は、主にホームゲートウェイ装置などに搭載される。ホームゲートウェイ装置に搭載される補助記憶装置の記憶容量はPC等の他の装置と比較して小さいことが多い。そのため、補助記憶装置に記憶させる辞書作成装置の機能を実行するプログラムの量をできる限り少なくすることが望まれる。
そこで、本実施形態では、リクエスト送信部2、レスポンス受信部3、パケットキャプチャ部5が実行するプログラムを、必要なプロトコルに対応するものだけプログラム記憶部1に記憶させることで、補助記憶装置に記憶させるプログラムの量を適切なものとすることができる。これにより、補助記憶装置の記憶容量を確保し、かつCPUへの負荷を低減させることができる。
【0030】
また、辞書作成装置を長期間使用していると、辞書作成装置の使用開始時に存在しなかったプロトコルで通信を行う通信装置がネットワークに接続されることがある。このような場合にも、当該プロトコルに対応する新たなプログラムをプログラム記憶部1に記憶させることで、辞書作成装置は、適切なプロトコルを用いて辞書情報を作成することができる。
【0031】
次に、通信装置のパケットを解析して特性情報を抽出する動作について説明する。
図3は、特性情報を抽出する動作を示すフローチャートである。特性情報を抽出する動作は、辞書作成装置が、プログラム記憶部1が記憶するアクティブ計測プログラムを実行するか、パッシブ解析プログラムを実行するかによって動作が異なる。なお、辞書作成装置は、アクティブ計測プログラムとパッシブ解析プログラムのうち、何れか一方のみを実行しても良いし、両方を同時に実行しても良い。
ここではまず、辞書作成装置が、プログラム記憶部1が記憶するアクティブ計測プログラムを実行する場合の動作を説明する。
【0032】
リクエスト送信部2は、プログラム記憶部1が記憶するアクティブ計測プログラムを実行することで、所定のプロトコルのリクエストパケットを作成し、当該パケットを通信装置に送信する(ステップS1)。通信装置は、辞書作成装置からリクエストパケットを受信すると、当該パケットと同じプロトコルのレスポンスパケットを作成し、当該パケットを辞書作成装置に送信する。
【0033】
辞書作成装置のレスポンス受信部3が通信装置からレスポンスパケットを受信すると(ステップS2)、レスポンス解析部4は、プログラム記憶部1が記憶するアクティブ計測プログラムを実行し、受信したレスポンスパケットを、所定のプロトコルに基づいて解析する(ステップS3)。即ち、レスポンス解析部4は、レスポンスパケットのヘッダ情報から、複数の特性名とその特性値の組を読み出す。次に、レスポンス解析部4は、解析したレスポンスパケットから特性情報を抽出する(ステップS4)。即ち、読み出した特性名とその特性値の組のうち、通信装置の特性を示す組を抽出する。
【0034】
そして、レスポンス解析部4は、抽出した特性情報を特性記憶部7が記憶する特性蓄積テーブルに記録する(ステップS5)。具体的には、特性蓄積テーブルのMACアドレスに、レスポンス受信部3が受信したパケットの送信元の通信装置のMACアドレスを格納する。特性名に、レスポンス解析部4が解析した特性情報の特性名を格納する。IPアドレスに、レスポンス受信部3が受信したパケットの送信元の通信装置のIPアドレスを格納する。特性値に、レスポンス解析部4が解析した特性情報の特性値を格納する。記録日時に、現在時刻を格納する。
【0035】
次に、リクエスト送信部2は、ステップS1でリクエストパケットの送信を実行してから所定の時間(例えば、1時間)が経過したか否かを判定する(ステップS6)。所定の時間が経過したと判定した場合(ステップS6:YES)、ステップS1に戻り、通信装置に再度リクエストパケットを送信する。これにより、リクエスト送信部2は、定期的にリクエストパケットの送信をすることができる。
【0036】
他方、リクエスト送信部2が所定の時間が経過していないと判定した場合(ステップS6:NO)、辞書作成装置は、ユーザなどによる操作や割り込み処理などにより、外部から処理の終了要求を入力したか否かを判定する(ステップS7)。辞書作成装置は、外部から終了要求を入力していないと判定した場合(ステップS7:NO)、ステップS6に戻り、所定時間が経過したか否かの判定を行う。他方、辞書作成装置は、外部から終了要求を入力したと判定した場合(ステップS7:YES)、処理を終了する。
【0037】
次に、辞書作成装置が、プログラム記憶部1が記憶するパッシブ解析プログラムを実行する場合の動作を説明する。
パケットキャプチャ部5は、通信装置が送信したパケットをキャプチャする(ステップS8)。次に、キャプチャ解析部6は、プログラム記憶部1が記憶するパッシブ解析プログラムを実行し、キャプチャしたパケットを、所定のプロトコルに基づいて解析する(ステップS9)。次に、キャプチャ解析部6は、解析したパケットから特性情報を抽出する(ステップS10)。そして、キャプチャ解析部6は、抽出した特性情報を特性記憶部7が記憶する特性蓄積テーブルに記録する(ステップS11)。
【0038】
次に、辞書作成装置は、ユーザなどによる操作や割り込み処理などにより、外部から処理の終了要求を入力したか否かを判定する(ステップS12)。辞書作成装置は、外部から終了要求を入力していないと判定した場合(ステップS12:NO)、ステップS8に戻る。他方、辞書作成装置は、外部から終了要求を入力したと判定した場合(ステップS12:YES)、処理を終了する。
上記処理により、特性記憶部7には、通信装置の特性情報が蓄積される。
【0039】
次に、特性記憶部7が記憶した特性情報と通信装置の型番情報とを関連付ける動作を説明する。
図4は、特性情報と型番情報とを関連付ける動作を示すフローチャートである。
特性情報が特性記憶部7に蓄積された後に、ユーザの操作によって辞書作成装置が特性情報と型番情報とを関連付ける機能を実行すると、表示部8は、特性記憶部7が記憶する特性蓄積テーブルが記憶するレコードに記録されたMACアドレスを読み出し、MACアドレス毎にステップS13、S14の処理を行う(ステップS12)。表示部8は、特性記憶部7が記憶する特性蓄積テーブルから、あるMACアドレスに関連付けられたレコードから特性情報(特性名と特性値の組み合わせ)を読み出す(ステップS13)。次に、表示部8は、読み出した特性情報の集合をMACアドレスに関連付けてディスプレイに表示させる(ステップS14)。
【0040】
図5は、特性情報の集合の一覧画面の表示例を示す図である。
ステップS12〜ステップS14の処理を、全てのMACアドレスに対して実行すると、表示部8は、図5に示すように、各MACアドレスに関連付けて特性情報の集合をディスプレイに表示させる。このとき、表示部8は、MACアドレス毎に、通信装置の型番を入力するかを選択させる選択ボタンを表示させる。
【0041】
次に、選択部9は、特性情報の選択を受け付ける(ステップS15)。具体的には、ディスプレイに表示された選択ボタンをポインタデバイスを用いて押下することで、特性情報の選択がなされる。
選択部9が特性情報の選択を受け付けると、表示部8は、選択された特性情報が示す通信装置の型番情報の入力画面を表示させる(ステップS16)。
【0042】
図6は、型番情報の入力画面の表示例を示す図である。
ステップS16で、表示部8は、図6に示すような入力画面を表示させる。即ち、表示部8は、選択された通信装置のMACアドレスと特性情報とを表示し、当該通信装置のカテゴリ、製造会社名、装置名、型番、及びコメントの入力フォーム(型番情報の入力フォーム)を表示させる。また、表示部8は、入力フォームに入力された情報を確定するための登録ボタンを表示させる。なお、このとき、MACアドレスの上位3バイトから製造会社名を特定し、入力フォームに予め入力させておくことが好ましい。
次に、入力部10は、型番情報の入力を受け付ける(ステップS17)。具体的には、ディスプレイに表示された入力フォームに型番情報を入力し、登録ボタンを押下することで、型番情報の入力が確定し、入力部10によって型番情報の入力が受け付けられる。
【0043】
入力部10が型番情報の入力を受け付けると、記録部13は、入力部10が入力を受け付けた型番情報を辞書記憶部14の型番テーブルに記録する(ステップS18)。具体的には、型番テーブルの辞書作成装置IDに、予め定められた自装置の辞書作成装置IDを格納する。学習IDに、まだ型番テーブルに格納されていないユニークな学習IDを格納する。カテゴリ、製造会社名、装置名、型番、コメントに、入力部10が入力を受け付けたカテゴリ、製造会社名、装置名、型番、コメントをそれぞれ格納する。学習日時に、現在時刻を格納する。
【0044】
次に、記録部13は、プログラム情報記憶部12からプログラム記憶部1が記憶するプログラムによって収集処理がなされている特性名のリストである特性名リストを生成する(ステップS19)。特性名リストの生成は、以下の処理を実行することで行う。
【0045】
図7は、特性名リストの生成処理のフローチャートである。
まず、記録部13は、プログラム情報記憶部12が記憶するプログラム登録テーブルから、現在使用しているプログラム(終了時刻がNULL)のプログラムID及び開始時刻を読み出し(ステップS101)、当該プログラムID及び開始時刻に関連付けられた特性名をプログラム情報記憶部12が記憶するパラメータテーブルから読み出す(ステップS102)。次に、記録部13は、ステップS102で読み出した特性名を特性名リストに追加する(ステップS103)。
【0046】
また、記録部13は、ステップS15で選択された特性情報の記録日時のうち、最も古い記録日時を読み出す(ステップS104)。次に、記録部13は、プログラム情報記憶部12が記憶するプログラム登録テーブルから、終了時刻が最も古い記録日時より後の時刻を示すプログラムID及び開始時刻を読み出し(ステップS105)、当該プログラムID及び開始時刻に関連付けられた特性名をプログラム情報記憶部12が記憶するパラメータテーブルから読み出す(ステップS106)。次に、記録部13は、ステップS106で読み出した特性名を特性名リストに追加する(ステップS107)。
以上の処理により、記録部13は、特性名のリストを生成する。
【0047】
ステップS19で特性名リストを生成すると、記録部13は、特性名リストが示す特性名を、辞書記憶部14が記憶する学習パラメータテーブルに記録する(ステップS20)。具体的には、学習パラメータテーブルの辞書作成装置IDに、予め定められた自装置の辞書作成装置IDを格納する。学習IDに、ステップS18で型番テーブルに格納した学習IDを格納する。特性名に、ステップS19で生成した特性名リストが示す特性名を格納する。
【0048】
次に、記録部13は、ステップS19で生成した特性名リストから各特性名を読み出し、特性名毎に、ステップS22〜ステップS24の処理を実行する(ステップS21)。まず、記録部13は、特性名リストが示すある特性名に対応する特性情報が、ステップS15で選択された特性情報の集合の中にあるか否かを判定する(ステップS22)。当該特性名がステップS15で選択された特性情報の集合の中にある場合(ステップS22:YES)、特性記憶部7の特性蓄積テーブルから当該特性情報を読み出し、当該特性情報が示す特性値を、辞書記憶部14が記憶する詳細テーブルに記録する(ステップS23)。具体的には、詳細テーブルの辞書作成装置IDに、予め定められた自装置の辞書作成装置IDを格納する。学習IDに、ステップS18で型番テーブルに格納した学習IDを格納する。特性名に、ステップS21で読み出した特性名を格納する。特性値に、選択した特性情報の特性値を格納する。なお、ステップS23で特性情報を詳細テーブルに記録した後、記録部13は、当該特性情報を特性記憶部7が記憶する特性蓄積テーブルから削除することで、詳細テーブルへの登録が完了したことを示す情報を付与することで、特性情報が二重登録されることを防止することが望ましい。
【0049】
他方、ステップS21で読み出した特性名がステップS15で選択された特性情報の集合の中にない場合(ステップS22:NO)、特性値を「情報なし」を示す値として、辞書記憶部14が記憶する詳細テーブルに記録する(ステップS24)。具体的には、詳細テーブルの辞書作成装置IDに、予め定められた自装置の辞書作成装置IDを格納する。学習IDに、ステップS18で型番テーブルに格納した学習IDを格納する。特性名に、ステップS21で読み出した特性名を格納する。特性値に、「情報なし」を示す特性値を格納する。
【0050】
以上の処理により、辞書記憶部14には、通信装置のパケットの特性を示す特性情報と通信装置の型番情報とを関連付けた辞書情報が蓄積される。特に、新しく発売された装置や利用頻度の少ない装置に対しても辞書情報を作成することができるため、対応機器の網羅率を高くすることができる。
【0051】
なお、本実施形態では、辞書作成装置の辞書記憶部14は、型番テーブルと詳細テーブルと学習パラメータテーブルとを別個に記憶している。これにより、プログラム記憶部1にプログラムが新たに追加された場合、及び削除された場合にも、データベースのスキームの変更を行うことなく、辞書情報の蓄積を続けることができる。
【0052】
また、本実施形態においては、辞書作成装置のレスポンス解析部及びキャプチャ解析部は、パケットのヘッダ情報を用いて特性情報を抽出する。そのため、ユーザのプライバシーを侵害せずに辞書情報を作成することができる。
【0053】
《装置同定段階》
次に、本発明の一実施形態による同定装置について説明する。
図8は、本発明の一実施形態による同定装置の構成を示す概略ブロック図である。
同定装置は、プログラム記憶部1、リクエスト送信部2、レスポンス受信部3、レスポンス解析部4、パケットキャプチャ部5、キャプチャ解析部6、特性記憶部7、表示部8、選択部9、プログラム管理部11、プログラム情報記憶部12、辞書記憶部14、同定部15(比較部)を備える。
【0054】
同定部15は、辞書記憶部14が記憶する辞書情報とレスポンス解析部4及びキャプチャ解析部6が抽出した特性情報とを比較して、通信装置の型番の同定を行う。
なお、プログラム記憶部1、リクエスト送信部2、レスポンス受信部3、レスポンス解析部4、パケットキャプチャ部5、キャプチャ解析部6、特性記憶部7、表示部8、選択部9、プログラム管理部11、プログラム情報記憶部12、及び辞書記憶部14は、辞書作成装置の各処理部と同じ動作・構成であるため、同じ符号を用いて説明する。
また、辞書記憶部14には、辞書作成装置が作成した辞書情報が予め記憶されている。
【0055】
次に、同定装置の動作を説明する。
同定装置にプログラムの追加・削除を行う処理、及び通信装置のパケットを解析して特性情報を抽出する動作は、上述した辞書作成装置の動作と同じである。そのため、同定装置にプログラムの追加・削除を行う処理、及び通信装置のパケットを解析して特性情報を抽出する動作については、説明を省略する。
【0056】
次に、同定装置が通信装置の同定を行う動作を説明する。
図9は、同定装置が通信装置の同定を行う動作を示すフローチャートである。
新たに接続された通信装置の特性情報が特性記憶部7に蓄積された後に、ユーザの操作によって同定装置が通信装置の同定を行う機能を実行すると、同定部15は、プログラム情報記憶部12からプログラム記憶部1が記憶するプログラムによって収集処理がなされている特性名のリストである特性名リストを生成する(ステップS31)。特性名リストの生成は、辞書作成装置と同様に、図7の処理を実行することで行う。
【0057】
次に、同定部15は、ステップS31で生成した特性名リストから各特性名を読み出し、特性名毎に、ステップS33〜ステップS34の処理を実行する(ステップS32)。まず、同定部15は、特性名リストが示すある特性名に対応する特性情報が、特性記憶部7が記憶する特性情報の集合の中にあるか否かを判定する(ステップS33)。当該特性名が、特性記憶部7が記憶する特性情報の集合の中にない場合(ステップS33:NO)、当該特性名に対して、特性値が「情報なし」を示す特性情報を作成し、特性記憶部7に記録する(ステップS34)。
他方、ステップS32で読み出した特性名が、特性記憶部7が記憶する特性情報の集合の中にある場合は(ステップS33:YES)、処理を行わずに、次の特性名の判定処理に処理を移す。
【0058】
次に、同定部15は、辞書記憶部14の型番テーブルの各レコードから学習IDを読み出し、学習ID毎に、ステップS36〜ステップS39の処理を実行する(ステップS35)。まず、同定部15は、読み出した学習IDに関連付けられた学習パラメータテーブルのレコードを辞書記憶部14から読み出す。次に、当該レコードが示す特性名と特性記憶部7の特性蓄積テーブルのレコードとを比較し、比較対象とする特性名を決定する(ステップS36)。具体的には、特性蓄積テーブルと学習パラメータテーブルとの両方に格納されている特性名を比較対象に決定する。
【0059】
次に、同定部15は、ステップS36で比較対象に決定した特性名毎に(ステップS37)、当該特性名に関連付けられた、特性蓄積テーブルに格納された特性値と、辞書記憶部14の詳細テーブルに格納された特性値との間の距離を算出する(ステップS38)。なお、本実施形態において「距離」とは特性値間の差の大きさを示す。
距離の算出は、基本的には、特性値同士が同値であれば距離を「0」とし、異なる値であれば距離を「1」とする計算方法を用いるが、特性名毎に、適した距離の算出方法を用いても良い。なお、このとき、特性値が「情報なし」を示す特性情報に対しても、同様に距離の計算を行う。つまり、一方が「情報なし」を示し、他方が何らかの情報を有する場合、距離を「1」とし、双方が「情報なし」を示す場合、距離を「0」とする。
ある特性情報の特性値が「情報なし」を示すということは、辞書作成装置が当該特性情報に対するプログラムを備えていたにも関わらず、当該特性情報を有するパケットが通信装置から送信されなかったことを示す。あるプロトコルのパケットが送信されなかったということは、通信装置が、そのプロトコルに対応していないことを示す特性を有していることが分かる。そのため、本実施形態では、「情報なし」を示す特性値を有する情報も距離の算出に用いている。
【0060】
例えば、特性値がバージョン情報を示す場合、それぞれの特性値の差の絶対値を距離とすることが好ましい。また、特性値がウェブページのタイトル名(HTTPでアクセスしたときに得られるHTML文書の<title>タグ内の文字列)を示す場合、それぞれの特性値の編集距離を算出することが好ましい。編集距離とは、ある文字列を他の文字列に変形する際に行う、文字の挿入、削除及び置換の回数のことである。
なお、これらの計算方法を用いて算出された距離は、基本的な距離の算出方法によって算出された距離と重みが異なるものとなる。そのため、計算方法に応じて適切に重み付けを行うことが更に好ましい。
また、算出した距離は、それぞれ特性情報の重要度に応じて重み付けを行うことが好ましい。特性情報の重要度に応じた重み付けを行うことで、機器同定の精度を向上させることができる。
【0061】
ステップS36で決定した全ての特性名に対して距離を算出すると、同定部15は、算出した距離の平均値を算出し、当該平均値の逆数(類似度)を、ステップS35で読み出した学習IDにおける得点とする(ステップS39)。
辞書記憶部14の型番テーブルの各レコードから読み出した全ての学習IDに対して得点を算出すると、最も得点が高い型番情報を、新たにネットワークに接続された通信装置であると同定する(ステップS40)。これにより、同定装置は、新たにネットワークに接続された通信装置を同定することができる。
【0062】
このように、本実施形態によれば、プログラム管理部11は、プログラム記憶部1に対して、所定のプロトコルのパケットを解析するプログラムを追加・削除する。これにより、プログラム記憶部1に記憶させるデータ量を適切なものとすることができ、適切なプロトコルを用いて同定処理を実行することができる。
【0063】
また、本実施形態によれば、同定部15は、プログラム記憶部1が記憶するプログラムを用いて抽出できる特性情報のうち、レスポンス解析部4及びキャプチャ解析部6によって抽出されなかった特性情報を、「情報なし」を示す特性情報として比較処理を行う。これにより、通信装置が所定のプロトコルに対応していないことを示す特性を用いて比較処理を行うことができるため、同定の精度を高めることができる。
【0064】
また、本実施形態によれば、同定部15は、辞書記憶部14が同一の型番情報に関連付けて記憶する特性情報のうち、プログラム記憶部が記憶するプログラムが抽出できる特性情報に対して、距離の算出を行う。つまり、特性蓄積テーブルと学習パラメータテーブルとの両方に格納されている特性名に関連付けられた特性値を距離の算出対象とする。これにより、特性蓄積テーブルにのみ記憶されている特性名の特性情報や、学習パラメータテーブルにのみ記憶されている特性名の特性情報は、距離の算出対象とならない。したがって、辞書記憶部が記憶する特性情報の特性名とレスポンス解析部4及びキャプチャ解析部6が抽出できる特性情報の特性名とが完全に一致しない場合にも、通信装置の同定を行うことができる。
【0065】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、本実施形態では、辞書作成装置及び同定装置がそれぞれ別の装置として動作する場合を説明したが、これに限られず、辞書作成装置の機能と同定装置の機能とを備える装置を用いても良い。
【0066】
なお、本実施形態では、辞書作成装置及び同定装置がスタンドアロンで動作する場合を説明したが、これに限られない。例えば、辞書作成装置及び同定装置がインターネットを介して辞書情報管理サーバに接続され、辞書作成装置、同定装置、及び辞書情報管理サーバによって構成される同定システムとして設計しても良い。この場合、辞書作成装置が辞書情報管理サーバに辞書情報を送信することで辞書情報の登録を行い、同定装置が辞書情報管理サーバから辞書情報を受信することで同定処理を行うこととなる。本実施形態による辞書情報作成装置が作成した辞書情報は、あるホームネットワークに接続された通信装置のみから生成された辞書情報である。他方、上記同定システムを用いて作成した辞書情報は、複数のホームネットワークの通信装置から収集された辞書情報となるため、同定装置は、より高い精度で同定することができる。
【0067】
なお、本実施形態では、プログラム情報記憶部12がプログラム登録テーブルとパラメータテーブルを記憶し、これらの情報を用いて特性名リストを生成する場合を説明したが、これに限られない。例えば、プログラム管理部11が、プログラムの追加・削除処理を行う際、プログラム登録テーブルとパラメータテーブルへの登録の代わりに、当該プログラムが抽出する特性名を示す特性名リストをプログラム情報記憶部12に記録することで、図7に示す手順を実行せずにプログラム情報記憶部12が記憶する特性名リストを用いて、上記処理を実行するようにしても良い。
また、プログラム記憶部1が記憶するプログラムが、自身が抽出する特性名を返す関数を備える場合、各プログラムに対して当該関数を実行させることで、プログラム情報記憶部12を用いずに特性名リストを生成することができる。
【0068】
なお、本実施形態において辞書記憶部14には、異なる学習IDに対して同一の通信装置の情報が格納されることがある。この場合、同定装置がステップS40で、単純に各学習IDに対して算出した得点が高い順に通信装置の型番情報を表示させると、同じ型番情報だけが表示部8に表示されることとなる。これを防ぐために、同定装置の同定部15は、ステップS40において、同一の型番情報を有する学習IDの得点の平均値同士を比較し、当該平均点の高い順に型番情報を表示させるようにしても良い。
【0069】
他の方法としては、同定装置の同定部15は、ステップS36において、予め同一の型番情報を有する学習IDに関連付けられた特性値の平均と標準偏差を算出し、平均から3σより乖離した情報を無視して、再度特性値の平均を算出する。そして、2回目に求めた平均と、新たにネットワークに接続された通信装置との特性値を比較し、最も高い得点のものを採用するようにしても良い。また、標準偏差の算出と平均から乖離した情報を無視する処理は、収束するまで繰り返すようにしても良い。
【0070】
他の方法としては、同定装置の同定部15は、ステップS40において、同一の型番情報を有する学習IDの得点のうち最も高い得点だけ比較し、当該得点の高い順に型番情報を表示させるようにしても良い。
【0071】
なお、本実施形態では、機器同定の実行がディスプレイに表示された選択ボタンを契機に実行される場合を説明したが、これに限られず、例えば一定期間経過後や一定個数の特性抽出後に、特定していない通信機器を対象に機器同定を実行するようにしても良い。
【0072】
また、本実施形態では、ステップS40で、最も得点が高い型番情報を、新たにネットワークに接続された通信装置であると同定する場合を説明したが、これに限られず、ステップS40において得点が高い複数の型番情報を表示し、その中から1つ選択させることで同定処理を行うようにしても良い。具体的には、以下のように処理を実行することができる。
【0073】
図10は、他の実施形態による同定結果画面の表示例を示す図である。
表示部8は、図10に示すように、各学習IDに対して算出した得点が高い順に通信装置の型番情報を表示させる。即ち、表示部8は、新たにネットワークに選択された通信装置のMACアドレスとIPアドレスとを表示し、得点が高い複数(図10の例では4つ)の型番情報を、得点と共に並べて表示させる。また、表示部8は、これらの型番情報の中から通信装置の型番情報と等しいものを選択させる決定ボタンを表示させる。
次に、選択部9は、ディスプレイに表示された型番情報の中から1つの型番情報の選択を受け付ける。具体的には、ディスプレイに表示された何れかの決定ボタンを押下することで、型番情報の選択が受け付けられる。これにより、同定装置は、新たにネットワークに接続された通信装置を同定することができる。
【0074】
上述の辞書作成装置及び同定装置は、内部にコンピュータシステムを有している。そして、上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0075】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0076】
また、本実施形態による辞書作成装置及び同定装置の実装は、OSGiフレームワークによって実装することができるが、これに限られず、他のフレームワークを用いても実装することができる。
【符号の説明】
【0077】
1…プログラム記憶部 2…リクエスト送信部 3…レスポンス受信部 4…レスポンス解析部5…パケットキャプチャ部 6…キャプチャ解析部 7…特性記憶部 8…表示部 9…選択部 10…入力部 11…プログラム管理部 12…プログラム情報記憶部 13…記録部 14…辞書記憶部 15…同定部
【技術分野】
【0001】
本発明は、ネットワークに接続された通信装置を同定する同定装置、同定方法、及びプログラムに関する。
【背景技術】
【0002】
近年、通信機能を有する電化製品が多く生産されている。
特許文献1には、ネットワークに接続された電化製品の種別を決定する方法が開示されている。具体的には、ネットワークに接続された電化製品に対して、レスポンスパケット及びリクエストパケットを受信し、予め電化製品毎に定義された辞書情報と比較して得点化し、最も高い得点の辞書情報に関連付けられた種別が、判定対象の電化製品の種別で有ると判定するものである。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2010−97587号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の方法を用いて通信装置の同定を行う場合、予め定められたプロトコルのパケットを解析して電化製品の特性を抽出するため、プロトコルによっては通信装置の同定に意味を成さない特性情報を抽出してしまうという問題がある。
また、同定装置を長期間使用していると、同定装置の使用開始時に存在しなかったプロトコルで通信を行う通信装置がネットワークに接続される可能性があるが、特許文献1に記載の方法を用いて通信装置の同定を行う場合、新たなプロトコルの解析を実行することができずに、特性情報が抽出できなくなる惧れがある。
【0005】
また、ネットワークに接続された通信装置を同定する同定装置は、主に補助記憶装置の記憶容量やCPUパワーがPC等の他の装置と比較して小さいホームゲートウェイ装置などに搭載される。そのため、辞書作成装置の機能を実行するプログラムの量をできる限り少なくすることで、補助記憶装置の記憶容量を確保し、かつCPUへの負荷を低減させることが望まれている。
【課題を解決するための手段】
【0006】
本発明は上記の課題を解決するためになされたものであり、ネットワークに接続された通信装置を同定する同定装置であって、前記通信装置からパケットを受信する受信部と、前記受信部が受信した所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムを1つ以上記憶するプログラム記憶部と、前記プログラムの追加指示または削除指示を受け付け、前記プログラム記憶部へのプログラムの追加または前記プログラム記憶部からのプログラムの削除を行うプログラム管理部と、前記プログラム記憶部が記憶するプログラムを実行することで前記受信部が受信したパケットを解析して前記通信装置の特性を示す特性情報を抽出する解析部と、通信装置の特性情報と当該通信機器の型番情報とを関連付けて記憶する辞書記憶部が記憶する特性情報と前記解析部が抽出した特性情報との類似度を算出する比較部と、前記比較部が算出した類似度が高い特性情報に関連付けられた型番情報の中から1つの型番情報が、ネットワークに接続された通信装置の型番情報であると同定する同定部とを備えることを特徴とする。
【0007】
また、本発明においては、前記記録部は、前記プログラム記憶部が記憶するプログラムが抽出できる特性情報のうち、前記解析部によって抽出されなかった特性情報を、情報が無いことを示す特性情報として前記辞書記憶部に記録することが好ましい。
【0008】
また、本発明においては、前記比較部は、前記辞書記憶部が同一の型番情報に関連付けて記憶する特性情報のうち、前記プログラム記憶部が記憶するプログラムが抽出できる特性情報に対して、前記類似度の算出を行うことが好ましい。
【0009】
また、本発明においては、前記辞書記憶部は、前記通信装置の型番情報と前記通信装置に固有の識別情報とを関連付けて格納する型番テーブルと、前記識別情報と前記装置情報とを関連付けて格納する前記詳細テーブルとを記憶し、前記記録部は、前記収集部が収集した特性情報を前記通信装置の識別情報に関連付けて前記型番テーブルに記録し、前記入力部が入力した型番情報を前記通信装置の識別情報に関連付けて前記詳細テーブルに記録することが好ましい。
【0010】
また、本発明においては、前記比較部が算出した類似度のうち、最も高い類似度に関連付けられた所定の数の型番情報を表示する表示部と、前記表示部が表示した型番情報の選択を受け付ける選択部とを備え、前記同定部は、前記選択部によって選択された型番情報が、ネットワークに接続された通信装置の型番情報であると同定することが好ましい。
【0011】
また、本発明は、ネットワークに接続された通信装置を同定する同定装置を用いた同定方法であって、受信部は、前記通信装置からパケットを受信し、プログラム管理部は、前記受信部が受信した所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムの追加指示または削除指示を受け付け、プログラム記憶部への当該プログラムの追加または前記プログラム記憶部からのプログラムの削除を行い、解析部は、前記プログラム記憶部が記憶するプログラムを実行することで前記受信部が受信したパケットを解析して前記通信装置の特性を示す特性情報を抽出し、比較部は、通信装置の特性情報と当該通信機器の型番情報とを関連付けて記憶する辞書記憶部が記憶する特性情報と前記解析部が抽出した特性情報との類似度を算出し、同定部は、前記比較部が算出した類似度が高い特性情報に関連付けられた型番情報の中から1つの型番情報が、ネットワークに接続された通信装置の型番情報であると同定することを特徴とする。
【0012】
また、本発明は、所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムを1つ以上記憶するプログラム記憶部を備え、ネットワークに接続された通信装置を同定する同定装置を、前記通信装置からパケットを受信する受信部、前記プログラムの追加指示または削除指示を受け付け、前記プログラム記憶部へのプログラムの追加または前記プログラム記憶部からのプログラムの削除を行うプログラム管理部、前記プログラム記憶部が記憶するプログラムを実行することで前記受信部が受信したパケットを解析して前記通信装置の特性を示す特性情報を抽出する解析部、通信装置の特性情報と当該通信機器の型番情報とを関連付けて記憶する辞書記憶部が記憶する特性情報と前記解析部が抽出した特性情報との類似度を算出する比較部、前記比較部が算出した類似度が高い特性情報に関連付けられた型番情報の中から1つの型番情報が、ネットワークに接続された通信装置の型番情報であると同定する同定部として機能させるためのプログラムである。
【発明の効果】
【0013】
本発明によれば、プログラム管理部は、プログラム記憶部に対して、所定のプロトコルのパケットを解析するプログラムを追加・削除することができる。これにより、補助記憶装置に記憶させるプログラムの量を適切なものとすることができ、適切なプロトコルを用いて同定処理を実行することができる。
【図面の簡単な説明】
【0014】
【図1】同定装置が用いる辞書情報を作成する辞書作成装置の構成を示す概略ブロック図である。
【図2】各記憶部が記憶するテーブルの構成を示す図である。
【図3】特性情報を抽出する動作を示すフローチャートである。
【図4】特性情報と型番情報とを関連付ける動作を示すフローチャートである。
【図5】特性情報の集合の一覧画面の表示例を示す図である。
【図6】型番情報の入力画面の表示例を示す図である。
【図7】特性名リストの生成処理のフローチャートである。
【図8】本発明の一実施形態による同定装置の構成を示す概略ブロック図である。
【図9】同定装置が通信装置の同定を行う動作を示すフローチャートである。
【図10】同定結果画面の表示例を示す図である。
【発明を実施するための形態】
【0015】
《辞書作成段階》
以下、図面を参照しながら本発明の一実施形態について詳しく説明する。
図1は、本発明による同定装置が用いる辞書情報を作成する辞書作成装置の構成を示す概略ブロック図である。
辞書作成装置は、ネットワークに接続された通信装置を特定するための辞書情報を作成するものである。なお、本実施形態において通信装置とは、ルータやネットワークHUBなどの通信機器だけではなく、通信機能を有する電化製品(PC、テレビ、ゲーム機器など)も含むものである。
辞書作成装置は、プログラム記憶部1、リクエスト送信部2、レスポンス受信部3、レスポンス解析部4(解析部)、パケットキャプチャ部5、キャプチャ解析部6(解析部)、特性記憶部7、表示部8、選択部9、入力部10、プログラム管理部11、プログラム情報記憶部12、記録部13、辞書記憶部14を備える。
【0016】
プログラム記憶部1は、リクエスト送信部2、レスポンス解析部4、キャプチャ解析部6が、パケットの送信及びパケットの解析に用いるプログラムを記憶する。具体的には、通信装置にリクエストパケットを送信し、当該リクエストパケットに対するレスポンスパケットの解析を行うアクティブ計測プログラムと、通信装置から受信したリクエストパケットの解析を行うパッシブ解析プログラムとを記憶する。なお、1つのプログラムは、1つのプロトコルに対する処理を実行することができ、プログラム記憶部1は、プロトコル毎に異なるプログラムを記憶している。
リクエスト送信部2は、プログラム記憶部1から所定のプロトコルのパケットを送信するプログラムを読み出し、当該プログラムが示すプログラムを実行することで、ネットワークに接続された通信装置に所定のプロトコルのパケットを送信することができる。
【0017】
レスポンス受信部3は、リクエスト送信部2が送信したリクエストパケットに対するレスポンスパケットを、通信装置から受信する。
レスポンス解析部4は、レスポンス受信部3が受信したレスポンスパケットに対応するプログラムをプログラム記憶部1から読み出し、当該プログラムが示すプログラムを実行することで、レスポンスパケットを解析する。また、レスポンス解析部4は、レスポンスパケットを解析することで、通信装置の特性を示す特性情報を抽出する。ここで、特性情報とは、通信装置が送信するパケットに含まれる情報を示し、例えば、通信ポートの開閉状態や、IPv4のオプション情報などが挙げられる。また、レスポンス解析部4は、抽出した特性情報を通信装置のMACアドレスに関連付けて特性記憶部7に記録する。
【0018】
パケットキャプチャ部5は、通信装置が送信したパケットをキャプチャする。なお、本実施形態においてパケットのキャプチャとは、通信装置から他の装置へ送信するパケットを中継する際や、同一セグメント内の通信でのグローバルアドレス・マルチキャストアドレスの受信パケット、ポートミラーリングなどによって受信した他装置宛のパケットを読み取ることを言う。
キャプチャ解析部6は、パケットキャプチャ部5がキャプチャしたパケットに対応するプログラムをプログラム記憶部1から読み出し、当該プログラムが示すプログラムを実行することで、パケットを解析する。また、キャプチャ解析部6は、パケットを解析することで、通信装置の特性を示す特性情報を抽出する。また、キャプチャ解析部6は、抽出した特性情報を通信装置のMACアドレスに関連付けて特性記憶部7に記録する。
【0019】
図2は、各記憶部が記憶するテーブルの構成を示す図である。
図2(A)は、特性記憶部7が記憶する特性蓄積テーブルの構成を示すものである。
特性蓄積テーブルは、レスポンス解析部4及びキャプチャ解析部6が抽出した特性情報を格納するテーブルであって、通信装置のMACアドレス、特性名、通信装置のIPアドレス、特性値、及び記録日時を関連付けて格納する。
特性蓄積テーブルが格納する特性名は、レスポンス解析部4及びキャプチャ解析部6が抽出した特性情報のパラメータ名である。
特性蓄積テーブルが格納する特性値は、レスポンス解析部4及びキャプチャ解析部6が抽出した特性情報の値である。
なお、特性蓄積テーブルは、MACアドレスと特性名との組み合わせを主キーとする。
【0020】
表示部8は、ディスプレイに情報を表示させる。具体的には、特性記憶部7が記憶する特性情報が示す通信装置毎に、特性情報の集合をディスプレイに表示させる処理や、選択部9が選択した特性情報が示す通信装置の型番情報の入力画面をディスプレイに表示させる処理を実行する。
選択部9は、ユーザから、表示部8が表示した特性情報の集合の選択を受け付ける。
入力部10は、表示部8が表示させた入力画面への型番情報の入力を受け付ける。
【0021】
プログラム管理部11は、新たなプログラムの追加指示または所定のプログラムの削除指示を受け付け、プログラム記憶部1へのプログラムの追加またはプログラム記憶部1からのプログラムの削除を行う。また、プログラム管理部11は、プログラム情報記憶部12にプログラム記憶部1が記憶するプログラムの状態を示す情報を記録する。
【0022】
図2(B)は、プログラム情報記憶部12が記憶するプログラム登録テーブルの構成を示す図である。
プログラム登録テーブルは、プログラム記憶部1が記憶するプログラムの状態を格納するテーブルであり、プログラム記憶部1が記憶するプログラムを識別するプログラムID、当該プログラムの使用が開始された時刻を示す開始時刻、当該プログラムの使用を終了した時刻を示す終了時刻を格納する。なお、プログラム登録テーブルは、プログラムIDと開始時刻との組み合わせを主キーとする。
図2(C)は、プログラム情報記憶部12が記憶するパラメータテーブルの構成を示す図である。
パラメータテーブルは、プログラムを用いて抽出できる特製情報を格納するテーブルであって、プログラムID、開始時刻、特性名を格納する。なお、パラメータテーブルは、プログラムIDと開始時刻との組み合わせを主キーとする。
記録部13は、プログラム情報記憶部12が記憶する情報を参照し、特性記憶部7が記憶する特性情報のうち選択部9が選択した特性情報と、入力部10が入力した型番情報とを関連付けて辞書情報として辞書記憶部14に記録する。
【0023】
図2(D)は、辞書記憶部14が記憶する型番テーブルの構成を示すものである。
型番テーブルは、通信装置の型番情報を格納するテーブルであって、辞書作成装置の識別情報である辞書作成装置ID、特性情報の抽出処理毎に生成される学習ID、通信装置の型番を示す型番情報、及び特性情報の抽出処理を実行した時刻を示す学習日時を関連付けて格納する。なお、型番テーブルは、辞書作成装置IDと学習IDとの組み合わせを主キーとする。また、型番情報は、通信装置のカテゴリ、製造会社名、装置名、型番、及びコメントを含む情報である。
【0024】
図2(E)は、辞書記憶部14が記憶する詳細テーブルの構成を示すものである。
詳細テーブルは、通信装置の特性情報を格納するテーブルであって、辞書作成装置ID、学習ID、特性名、特性値を関連付けて格納する。特性名及び特性値は、特性記憶部7が記憶する特性蓄積テーブルに格納された特性名及び特性値である。なお、詳細テーブルは、辞書作成装置IDと学習IDと特性名との組み合わせを主キーとする。
【0025】
図2(F)は、辞書記憶部14が記憶する学習パラメータテーブルの構成を示すものである。
学習パラメータテーブルは、レスポンス解析部4及びキャプチャ解析部6による解析に用いたプログラムが抽出する特性情報の特性名を格納するテーブルであって、辞書作成装置ID、学習ID、特性名を関連付けて格納する。なお、詳細テーブルは、辞書作成装置IDと学習IDとの組み合わせを主キーとする。
【0026】
次に、本実施形態による辞書作成装置の動作を説明する。
まず、辞書作成装置にプログラムの追加・削除を行う処理について説明する。
ユーザまたはシステム管理者が、辞書作成装置にプログラム追加指示及び追加対象のプログラムのデータを入力すると、プログラム管理部11は、プログラム追加指示及びプログラムのデータの入力を受け付け、当該プログラムのデータをプログラム記憶部1に記録する。これにより、リクエスト送信部2、レスポンス解析部4、キャプチャ解析部6は、新たなプログラムが有する機能を実行することができるようになる。
【0027】
また、プログラム管理部11は、プログラム情報記憶部12に、追加したプログラムのプログラムIDと現在時刻とを記録する。具体的には、プログラム情報記憶部12が記憶するプログラム登録テーブルのプログラムIDに、追加したプログラムのプログラムIDを、開始時刻に現在時刻を記録する。なお、プログラムの追加時は、プログラム登録テーブルの終了時刻はNULLにしておく。また、プログラム情報記憶部12が記憶するパラメータテーブルのプログラムIDに、追加したプログラムのプログラムIDを、開始時刻に現在時刻を記録する。そして、プログラム情報記憶部12の特性名に、追加したプログラムが抽出する特性情報の特性名を記録する。
以上が、辞書作成装置のプログラム追加時の動作である。
【0028】
他方、ユーザまたはシステム管理者が、辞書作成装置にプログラム削除指示及び削除対象のプログラムのプログラムIDを入力すると、プログラム管理部11は、プログラム削除指示及びプログラムIDの入力を受け付け、該当するプログラムIDを有するプログラムのデータをプログラム記憶部1から削除する。これにより、リクエスト送信部2、レスポンス解析部4、キャプチャ解析部6は、当該プログラムが有する機能を実行しなくなる。また、プログラム管理部11は、プログラム情報記憶部12が記憶するプログラム登録テーブルのうち、削除したプログラムのプログラムIDと同じプログラムIDに関連付けられた終了時刻に、現在時刻を記録する。
以上が、辞書作成装置のプログラム削除時の動作である。
【0029】
以下に、プログラムの追加・削除を行う利点について説明する。
辞書作成装置は、主にホームゲートウェイ装置などに搭載される。ホームゲートウェイ装置に搭載される補助記憶装置の記憶容量はPC等の他の装置と比較して小さいことが多い。そのため、補助記憶装置に記憶させる辞書作成装置の機能を実行するプログラムの量をできる限り少なくすることが望まれる。
そこで、本実施形態では、リクエスト送信部2、レスポンス受信部3、パケットキャプチャ部5が実行するプログラムを、必要なプロトコルに対応するものだけプログラム記憶部1に記憶させることで、補助記憶装置に記憶させるプログラムの量を適切なものとすることができる。これにより、補助記憶装置の記憶容量を確保し、かつCPUへの負荷を低減させることができる。
【0030】
また、辞書作成装置を長期間使用していると、辞書作成装置の使用開始時に存在しなかったプロトコルで通信を行う通信装置がネットワークに接続されることがある。このような場合にも、当該プロトコルに対応する新たなプログラムをプログラム記憶部1に記憶させることで、辞書作成装置は、適切なプロトコルを用いて辞書情報を作成することができる。
【0031】
次に、通信装置のパケットを解析して特性情報を抽出する動作について説明する。
図3は、特性情報を抽出する動作を示すフローチャートである。特性情報を抽出する動作は、辞書作成装置が、プログラム記憶部1が記憶するアクティブ計測プログラムを実行するか、パッシブ解析プログラムを実行するかによって動作が異なる。なお、辞書作成装置は、アクティブ計測プログラムとパッシブ解析プログラムのうち、何れか一方のみを実行しても良いし、両方を同時に実行しても良い。
ここではまず、辞書作成装置が、プログラム記憶部1が記憶するアクティブ計測プログラムを実行する場合の動作を説明する。
【0032】
リクエスト送信部2は、プログラム記憶部1が記憶するアクティブ計測プログラムを実行することで、所定のプロトコルのリクエストパケットを作成し、当該パケットを通信装置に送信する(ステップS1)。通信装置は、辞書作成装置からリクエストパケットを受信すると、当該パケットと同じプロトコルのレスポンスパケットを作成し、当該パケットを辞書作成装置に送信する。
【0033】
辞書作成装置のレスポンス受信部3が通信装置からレスポンスパケットを受信すると(ステップS2)、レスポンス解析部4は、プログラム記憶部1が記憶するアクティブ計測プログラムを実行し、受信したレスポンスパケットを、所定のプロトコルに基づいて解析する(ステップS3)。即ち、レスポンス解析部4は、レスポンスパケットのヘッダ情報から、複数の特性名とその特性値の組を読み出す。次に、レスポンス解析部4は、解析したレスポンスパケットから特性情報を抽出する(ステップS4)。即ち、読み出した特性名とその特性値の組のうち、通信装置の特性を示す組を抽出する。
【0034】
そして、レスポンス解析部4は、抽出した特性情報を特性記憶部7が記憶する特性蓄積テーブルに記録する(ステップS5)。具体的には、特性蓄積テーブルのMACアドレスに、レスポンス受信部3が受信したパケットの送信元の通信装置のMACアドレスを格納する。特性名に、レスポンス解析部4が解析した特性情報の特性名を格納する。IPアドレスに、レスポンス受信部3が受信したパケットの送信元の通信装置のIPアドレスを格納する。特性値に、レスポンス解析部4が解析した特性情報の特性値を格納する。記録日時に、現在時刻を格納する。
【0035】
次に、リクエスト送信部2は、ステップS1でリクエストパケットの送信を実行してから所定の時間(例えば、1時間)が経過したか否かを判定する(ステップS6)。所定の時間が経過したと判定した場合(ステップS6:YES)、ステップS1に戻り、通信装置に再度リクエストパケットを送信する。これにより、リクエスト送信部2は、定期的にリクエストパケットの送信をすることができる。
【0036】
他方、リクエスト送信部2が所定の時間が経過していないと判定した場合(ステップS6:NO)、辞書作成装置は、ユーザなどによる操作や割り込み処理などにより、外部から処理の終了要求を入力したか否かを判定する(ステップS7)。辞書作成装置は、外部から終了要求を入力していないと判定した場合(ステップS7:NO)、ステップS6に戻り、所定時間が経過したか否かの判定を行う。他方、辞書作成装置は、外部から終了要求を入力したと判定した場合(ステップS7:YES)、処理を終了する。
【0037】
次に、辞書作成装置が、プログラム記憶部1が記憶するパッシブ解析プログラムを実行する場合の動作を説明する。
パケットキャプチャ部5は、通信装置が送信したパケットをキャプチャする(ステップS8)。次に、キャプチャ解析部6は、プログラム記憶部1が記憶するパッシブ解析プログラムを実行し、キャプチャしたパケットを、所定のプロトコルに基づいて解析する(ステップS9)。次に、キャプチャ解析部6は、解析したパケットから特性情報を抽出する(ステップS10)。そして、キャプチャ解析部6は、抽出した特性情報を特性記憶部7が記憶する特性蓄積テーブルに記録する(ステップS11)。
【0038】
次に、辞書作成装置は、ユーザなどによる操作や割り込み処理などにより、外部から処理の終了要求を入力したか否かを判定する(ステップS12)。辞書作成装置は、外部から終了要求を入力していないと判定した場合(ステップS12:NO)、ステップS8に戻る。他方、辞書作成装置は、外部から終了要求を入力したと判定した場合(ステップS12:YES)、処理を終了する。
上記処理により、特性記憶部7には、通信装置の特性情報が蓄積される。
【0039】
次に、特性記憶部7が記憶した特性情報と通信装置の型番情報とを関連付ける動作を説明する。
図4は、特性情報と型番情報とを関連付ける動作を示すフローチャートである。
特性情報が特性記憶部7に蓄積された後に、ユーザの操作によって辞書作成装置が特性情報と型番情報とを関連付ける機能を実行すると、表示部8は、特性記憶部7が記憶する特性蓄積テーブルが記憶するレコードに記録されたMACアドレスを読み出し、MACアドレス毎にステップS13、S14の処理を行う(ステップS12)。表示部8は、特性記憶部7が記憶する特性蓄積テーブルから、あるMACアドレスに関連付けられたレコードから特性情報(特性名と特性値の組み合わせ)を読み出す(ステップS13)。次に、表示部8は、読み出した特性情報の集合をMACアドレスに関連付けてディスプレイに表示させる(ステップS14)。
【0040】
図5は、特性情報の集合の一覧画面の表示例を示す図である。
ステップS12〜ステップS14の処理を、全てのMACアドレスに対して実行すると、表示部8は、図5に示すように、各MACアドレスに関連付けて特性情報の集合をディスプレイに表示させる。このとき、表示部8は、MACアドレス毎に、通信装置の型番を入力するかを選択させる選択ボタンを表示させる。
【0041】
次に、選択部9は、特性情報の選択を受け付ける(ステップS15)。具体的には、ディスプレイに表示された選択ボタンをポインタデバイスを用いて押下することで、特性情報の選択がなされる。
選択部9が特性情報の選択を受け付けると、表示部8は、選択された特性情報が示す通信装置の型番情報の入力画面を表示させる(ステップS16)。
【0042】
図6は、型番情報の入力画面の表示例を示す図である。
ステップS16で、表示部8は、図6に示すような入力画面を表示させる。即ち、表示部8は、選択された通信装置のMACアドレスと特性情報とを表示し、当該通信装置のカテゴリ、製造会社名、装置名、型番、及びコメントの入力フォーム(型番情報の入力フォーム)を表示させる。また、表示部8は、入力フォームに入力された情報を確定するための登録ボタンを表示させる。なお、このとき、MACアドレスの上位3バイトから製造会社名を特定し、入力フォームに予め入力させておくことが好ましい。
次に、入力部10は、型番情報の入力を受け付ける(ステップS17)。具体的には、ディスプレイに表示された入力フォームに型番情報を入力し、登録ボタンを押下することで、型番情報の入力が確定し、入力部10によって型番情報の入力が受け付けられる。
【0043】
入力部10が型番情報の入力を受け付けると、記録部13は、入力部10が入力を受け付けた型番情報を辞書記憶部14の型番テーブルに記録する(ステップS18)。具体的には、型番テーブルの辞書作成装置IDに、予め定められた自装置の辞書作成装置IDを格納する。学習IDに、まだ型番テーブルに格納されていないユニークな学習IDを格納する。カテゴリ、製造会社名、装置名、型番、コメントに、入力部10が入力を受け付けたカテゴリ、製造会社名、装置名、型番、コメントをそれぞれ格納する。学習日時に、現在時刻を格納する。
【0044】
次に、記録部13は、プログラム情報記憶部12からプログラム記憶部1が記憶するプログラムによって収集処理がなされている特性名のリストである特性名リストを生成する(ステップS19)。特性名リストの生成は、以下の処理を実行することで行う。
【0045】
図7は、特性名リストの生成処理のフローチャートである。
まず、記録部13は、プログラム情報記憶部12が記憶するプログラム登録テーブルから、現在使用しているプログラム(終了時刻がNULL)のプログラムID及び開始時刻を読み出し(ステップS101)、当該プログラムID及び開始時刻に関連付けられた特性名をプログラム情報記憶部12が記憶するパラメータテーブルから読み出す(ステップS102)。次に、記録部13は、ステップS102で読み出した特性名を特性名リストに追加する(ステップS103)。
【0046】
また、記録部13は、ステップS15で選択された特性情報の記録日時のうち、最も古い記録日時を読み出す(ステップS104)。次に、記録部13は、プログラム情報記憶部12が記憶するプログラム登録テーブルから、終了時刻が最も古い記録日時より後の時刻を示すプログラムID及び開始時刻を読み出し(ステップS105)、当該プログラムID及び開始時刻に関連付けられた特性名をプログラム情報記憶部12が記憶するパラメータテーブルから読み出す(ステップS106)。次に、記録部13は、ステップS106で読み出した特性名を特性名リストに追加する(ステップS107)。
以上の処理により、記録部13は、特性名のリストを生成する。
【0047】
ステップS19で特性名リストを生成すると、記録部13は、特性名リストが示す特性名を、辞書記憶部14が記憶する学習パラメータテーブルに記録する(ステップS20)。具体的には、学習パラメータテーブルの辞書作成装置IDに、予め定められた自装置の辞書作成装置IDを格納する。学習IDに、ステップS18で型番テーブルに格納した学習IDを格納する。特性名に、ステップS19で生成した特性名リストが示す特性名を格納する。
【0048】
次に、記録部13は、ステップS19で生成した特性名リストから各特性名を読み出し、特性名毎に、ステップS22〜ステップS24の処理を実行する(ステップS21)。まず、記録部13は、特性名リストが示すある特性名に対応する特性情報が、ステップS15で選択された特性情報の集合の中にあるか否かを判定する(ステップS22)。当該特性名がステップS15で選択された特性情報の集合の中にある場合(ステップS22:YES)、特性記憶部7の特性蓄積テーブルから当該特性情報を読み出し、当該特性情報が示す特性値を、辞書記憶部14が記憶する詳細テーブルに記録する(ステップS23)。具体的には、詳細テーブルの辞書作成装置IDに、予め定められた自装置の辞書作成装置IDを格納する。学習IDに、ステップS18で型番テーブルに格納した学習IDを格納する。特性名に、ステップS21で読み出した特性名を格納する。特性値に、選択した特性情報の特性値を格納する。なお、ステップS23で特性情報を詳細テーブルに記録した後、記録部13は、当該特性情報を特性記憶部7が記憶する特性蓄積テーブルから削除することで、詳細テーブルへの登録が完了したことを示す情報を付与することで、特性情報が二重登録されることを防止することが望ましい。
【0049】
他方、ステップS21で読み出した特性名がステップS15で選択された特性情報の集合の中にない場合(ステップS22:NO)、特性値を「情報なし」を示す値として、辞書記憶部14が記憶する詳細テーブルに記録する(ステップS24)。具体的には、詳細テーブルの辞書作成装置IDに、予め定められた自装置の辞書作成装置IDを格納する。学習IDに、ステップS18で型番テーブルに格納した学習IDを格納する。特性名に、ステップS21で読み出した特性名を格納する。特性値に、「情報なし」を示す特性値を格納する。
【0050】
以上の処理により、辞書記憶部14には、通信装置のパケットの特性を示す特性情報と通信装置の型番情報とを関連付けた辞書情報が蓄積される。特に、新しく発売された装置や利用頻度の少ない装置に対しても辞書情報を作成することができるため、対応機器の網羅率を高くすることができる。
【0051】
なお、本実施形態では、辞書作成装置の辞書記憶部14は、型番テーブルと詳細テーブルと学習パラメータテーブルとを別個に記憶している。これにより、プログラム記憶部1にプログラムが新たに追加された場合、及び削除された場合にも、データベースのスキームの変更を行うことなく、辞書情報の蓄積を続けることができる。
【0052】
また、本実施形態においては、辞書作成装置のレスポンス解析部及びキャプチャ解析部は、パケットのヘッダ情報を用いて特性情報を抽出する。そのため、ユーザのプライバシーを侵害せずに辞書情報を作成することができる。
【0053】
《装置同定段階》
次に、本発明の一実施形態による同定装置について説明する。
図8は、本発明の一実施形態による同定装置の構成を示す概略ブロック図である。
同定装置は、プログラム記憶部1、リクエスト送信部2、レスポンス受信部3、レスポンス解析部4、パケットキャプチャ部5、キャプチャ解析部6、特性記憶部7、表示部8、選択部9、プログラム管理部11、プログラム情報記憶部12、辞書記憶部14、同定部15(比較部)を備える。
【0054】
同定部15は、辞書記憶部14が記憶する辞書情報とレスポンス解析部4及びキャプチャ解析部6が抽出した特性情報とを比較して、通信装置の型番の同定を行う。
なお、プログラム記憶部1、リクエスト送信部2、レスポンス受信部3、レスポンス解析部4、パケットキャプチャ部5、キャプチャ解析部6、特性記憶部7、表示部8、選択部9、プログラム管理部11、プログラム情報記憶部12、及び辞書記憶部14は、辞書作成装置の各処理部と同じ動作・構成であるため、同じ符号を用いて説明する。
また、辞書記憶部14には、辞書作成装置が作成した辞書情報が予め記憶されている。
【0055】
次に、同定装置の動作を説明する。
同定装置にプログラムの追加・削除を行う処理、及び通信装置のパケットを解析して特性情報を抽出する動作は、上述した辞書作成装置の動作と同じである。そのため、同定装置にプログラムの追加・削除を行う処理、及び通信装置のパケットを解析して特性情報を抽出する動作については、説明を省略する。
【0056】
次に、同定装置が通信装置の同定を行う動作を説明する。
図9は、同定装置が通信装置の同定を行う動作を示すフローチャートである。
新たに接続された通信装置の特性情報が特性記憶部7に蓄積された後に、ユーザの操作によって同定装置が通信装置の同定を行う機能を実行すると、同定部15は、プログラム情報記憶部12からプログラム記憶部1が記憶するプログラムによって収集処理がなされている特性名のリストである特性名リストを生成する(ステップS31)。特性名リストの生成は、辞書作成装置と同様に、図7の処理を実行することで行う。
【0057】
次に、同定部15は、ステップS31で生成した特性名リストから各特性名を読み出し、特性名毎に、ステップS33〜ステップS34の処理を実行する(ステップS32)。まず、同定部15は、特性名リストが示すある特性名に対応する特性情報が、特性記憶部7が記憶する特性情報の集合の中にあるか否かを判定する(ステップS33)。当該特性名が、特性記憶部7が記憶する特性情報の集合の中にない場合(ステップS33:NO)、当該特性名に対して、特性値が「情報なし」を示す特性情報を作成し、特性記憶部7に記録する(ステップS34)。
他方、ステップS32で読み出した特性名が、特性記憶部7が記憶する特性情報の集合の中にある場合は(ステップS33:YES)、処理を行わずに、次の特性名の判定処理に処理を移す。
【0058】
次に、同定部15は、辞書記憶部14の型番テーブルの各レコードから学習IDを読み出し、学習ID毎に、ステップS36〜ステップS39の処理を実行する(ステップS35)。まず、同定部15は、読み出した学習IDに関連付けられた学習パラメータテーブルのレコードを辞書記憶部14から読み出す。次に、当該レコードが示す特性名と特性記憶部7の特性蓄積テーブルのレコードとを比較し、比較対象とする特性名を決定する(ステップS36)。具体的には、特性蓄積テーブルと学習パラメータテーブルとの両方に格納されている特性名を比較対象に決定する。
【0059】
次に、同定部15は、ステップS36で比較対象に決定した特性名毎に(ステップS37)、当該特性名に関連付けられた、特性蓄積テーブルに格納された特性値と、辞書記憶部14の詳細テーブルに格納された特性値との間の距離を算出する(ステップS38)。なお、本実施形態において「距離」とは特性値間の差の大きさを示す。
距離の算出は、基本的には、特性値同士が同値であれば距離を「0」とし、異なる値であれば距離を「1」とする計算方法を用いるが、特性名毎に、適した距離の算出方法を用いても良い。なお、このとき、特性値が「情報なし」を示す特性情報に対しても、同様に距離の計算を行う。つまり、一方が「情報なし」を示し、他方が何らかの情報を有する場合、距離を「1」とし、双方が「情報なし」を示す場合、距離を「0」とする。
ある特性情報の特性値が「情報なし」を示すということは、辞書作成装置が当該特性情報に対するプログラムを備えていたにも関わらず、当該特性情報を有するパケットが通信装置から送信されなかったことを示す。あるプロトコルのパケットが送信されなかったということは、通信装置が、そのプロトコルに対応していないことを示す特性を有していることが分かる。そのため、本実施形態では、「情報なし」を示す特性値を有する情報も距離の算出に用いている。
【0060】
例えば、特性値がバージョン情報を示す場合、それぞれの特性値の差の絶対値を距離とすることが好ましい。また、特性値がウェブページのタイトル名(HTTPでアクセスしたときに得られるHTML文書の<title>タグ内の文字列)を示す場合、それぞれの特性値の編集距離を算出することが好ましい。編集距離とは、ある文字列を他の文字列に変形する際に行う、文字の挿入、削除及び置換の回数のことである。
なお、これらの計算方法を用いて算出された距離は、基本的な距離の算出方法によって算出された距離と重みが異なるものとなる。そのため、計算方法に応じて適切に重み付けを行うことが更に好ましい。
また、算出した距離は、それぞれ特性情報の重要度に応じて重み付けを行うことが好ましい。特性情報の重要度に応じた重み付けを行うことで、機器同定の精度を向上させることができる。
【0061】
ステップS36で決定した全ての特性名に対して距離を算出すると、同定部15は、算出した距離の平均値を算出し、当該平均値の逆数(類似度)を、ステップS35で読み出した学習IDにおける得点とする(ステップS39)。
辞書記憶部14の型番テーブルの各レコードから読み出した全ての学習IDに対して得点を算出すると、最も得点が高い型番情報を、新たにネットワークに接続された通信装置であると同定する(ステップS40)。これにより、同定装置は、新たにネットワークに接続された通信装置を同定することができる。
【0062】
このように、本実施形態によれば、プログラム管理部11は、プログラム記憶部1に対して、所定のプロトコルのパケットを解析するプログラムを追加・削除する。これにより、プログラム記憶部1に記憶させるデータ量を適切なものとすることができ、適切なプロトコルを用いて同定処理を実行することができる。
【0063】
また、本実施形態によれば、同定部15は、プログラム記憶部1が記憶するプログラムを用いて抽出できる特性情報のうち、レスポンス解析部4及びキャプチャ解析部6によって抽出されなかった特性情報を、「情報なし」を示す特性情報として比較処理を行う。これにより、通信装置が所定のプロトコルに対応していないことを示す特性を用いて比較処理を行うことができるため、同定の精度を高めることができる。
【0064】
また、本実施形態によれば、同定部15は、辞書記憶部14が同一の型番情報に関連付けて記憶する特性情報のうち、プログラム記憶部が記憶するプログラムが抽出できる特性情報に対して、距離の算出を行う。つまり、特性蓄積テーブルと学習パラメータテーブルとの両方に格納されている特性名に関連付けられた特性値を距離の算出対象とする。これにより、特性蓄積テーブルにのみ記憶されている特性名の特性情報や、学習パラメータテーブルにのみ記憶されている特性名の特性情報は、距離の算出対象とならない。したがって、辞書記憶部が記憶する特性情報の特性名とレスポンス解析部4及びキャプチャ解析部6が抽出できる特性情報の特性名とが完全に一致しない場合にも、通信装置の同定を行うことができる。
【0065】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、本実施形態では、辞書作成装置及び同定装置がそれぞれ別の装置として動作する場合を説明したが、これに限られず、辞書作成装置の機能と同定装置の機能とを備える装置を用いても良い。
【0066】
なお、本実施形態では、辞書作成装置及び同定装置がスタンドアロンで動作する場合を説明したが、これに限られない。例えば、辞書作成装置及び同定装置がインターネットを介して辞書情報管理サーバに接続され、辞書作成装置、同定装置、及び辞書情報管理サーバによって構成される同定システムとして設計しても良い。この場合、辞書作成装置が辞書情報管理サーバに辞書情報を送信することで辞書情報の登録を行い、同定装置が辞書情報管理サーバから辞書情報を受信することで同定処理を行うこととなる。本実施形態による辞書情報作成装置が作成した辞書情報は、あるホームネットワークに接続された通信装置のみから生成された辞書情報である。他方、上記同定システムを用いて作成した辞書情報は、複数のホームネットワークの通信装置から収集された辞書情報となるため、同定装置は、より高い精度で同定することができる。
【0067】
なお、本実施形態では、プログラム情報記憶部12がプログラム登録テーブルとパラメータテーブルを記憶し、これらの情報を用いて特性名リストを生成する場合を説明したが、これに限られない。例えば、プログラム管理部11が、プログラムの追加・削除処理を行う際、プログラム登録テーブルとパラメータテーブルへの登録の代わりに、当該プログラムが抽出する特性名を示す特性名リストをプログラム情報記憶部12に記録することで、図7に示す手順を実行せずにプログラム情報記憶部12が記憶する特性名リストを用いて、上記処理を実行するようにしても良い。
また、プログラム記憶部1が記憶するプログラムが、自身が抽出する特性名を返す関数を備える場合、各プログラムに対して当該関数を実行させることで、プログラム情報記憶部12を用いずに特性名リストを生成することができる。
【0068】
なお、本実施形態において辞書記憶部14には、異なる学習IDに対して同一の通信装置の情報が格納されることがある。この場合、同定装置がステップS40で、単純に各学習IDに対して算出した得点が高い順に通信装置の型番情報を表示させると、同じ型番情報だけが表示部8に表示されることとなる。これを防ぐために、同定装置の同定部15は、ステップS40において、同一の型番情報を有する学習IDの得点の平均値同士を比較し、当該平均点の高い順に型番情報を表示させるようにしても良い。
【0069】
他の方法としては、同定装置の同定部15は、ステップS36において、予め同一の型番情報を有する学習IDに関連付けられた特性値の平均と標準偏差を算出し、平均から3σより乖離した情報を無視して、再度特性値の平均を算出する。そして、2回目に求めた平均と、新たにネットワークに接続された通信装置との特性値を比較し、最も高い得点のものを採用するようにしても良い。また、標準偏差の算出と平均から乖離した情報を無視する処理は、収束するまで繰り返すようにしても良い。
【0070】
他の方法としては、同定装置の同定部15は、ステップS40において、同一の型番情報を有する学習IDの得点のうち最も高い得点だけ比較し、当該得点の高い順に型番情報を表示させるようにしても良い。
【0071】
なお、本実施形態では、機器同定の実行がディスプレイに表示された選択ボタンを契機に実行される場合を説明したが、これに限られず、例えば一定期間経過後や一定個数の特性抽出後に、特定していない通信機器を対象に機器同定を実行するようにしても良い。
【0072】
また、本実施形態では、ステップS40で、最も得点が高い型番情報を、新たにネットワークに接続された通信装置であると同定する場合を説明したが、これに限られず、ステップS40において得点が高い複数の型番情報を表示し、その中から1つ選択させることで同定処理を行うようにしても良い。具体的には、以下のように処理を実行することができる。
【0073】
図10は、他の実施形態による同定結果画面の表示例を示す図である。
表示部8は、図10に示すように、各学習IDに対して算出した得点が高い順に通信装置の型番情報を表示させる。即ち、表示部8は、新たにネットワークに選択された通信装置のMACアドレスとIPアドレスとを表示し、得点が高い複数(図10の例では4つ)の型番情報を、得点と共に並べて表示させる。また、表示部8は、これらの型番情報の中から通信装置の型番情報と等しいものを選択させる決定ボタンを表示させる。
次に、選択部9は、ディスプレイに表示された型番情報の中から1つの型番情報の選択を受け付ける。具体的には、ディスプレイに表示された何れかの決定ボタンを押下することで、型番情報の選択が受け付けられる。これにより、同定装置は、新たにネットワークに接続された通信装置を同定することができる。
【0074】
上述の辞書作成装置及び同定装置は、内部にコンピュータシステムを有している。そして、上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0075】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0076】
また、本実施形態による辞書作成装置及び同定装置の実装は、OSGiフレームワークによって実装することができるが、これに限られず、他のフレームワークを用いても実装することができる。
【符号の説明】
【0077】
1…プログラム記憶部 2…リクエスト送信部 3…レスポンス受信部 4…レスポンス解析部5…パケットキャプチャ部 6…キャプチャ解析部 7…特性記憶部 8…表示部 9…選択部 10…入力部 11…プログラム管理部 12…プログラム情報記憶部 13…記録部 14…辞書記憶部 15…同定部
【特許請求の範囲】
【請求項1】
ネットワークに接続された通信装置を同定する同定装置であって、
前記通信装置からパケットを受信する受信部と、
前記受信部が受信した所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムを1つ以上記憶するプログラム記憶部と、
前記プログラムの追加指示または削除指示を受け付け、前記プログラム記憶部へのプログラムの追加または前記プログラム記憶部からのプログラムの削除を行うプログラム管理部と、
前記プログラム記憶部が記憶するプログラムを実行することで前記受信部が受信したパケットを解析して前記通信装置の特性を示す特性情報を抽出する解析部と、
通信装置の特性情報と当該通信機器の型番情報とを関連付けて記憶する辞書記憶部が記憶する特性情報と前記解析部が抽出した特性情報との類似度を算出する比較部と、
前記比較部が算出した類似度が高い特性情報に関連付けられた型番情報の中から1つの型番情報が、ネットワークに接続された通信装置の型番情報であると同定する同定部と
を備えることを特徴とする同定装置。
【請求項2】
前記比較部は、前記プログラム記憶部が記憶するプログラムを用いて抽出できる特性情報のうち、前記解析部によって抽出されなかった特性情報を、情報が無いことを示す特性情報として比較処理を行う
ことを特徴とする請求項1に記載の同定装置。
【請求項3】
前記比較部は、前記辞書記憶部が同一の型番情報に関連付けて記憶する特性情報のうち、前記プログラム記憶部が記憶するプログラムが抽出できる特性情報に対して、前記類似度の算出を行う
ことを特徴とする請求項1または請求項2に記載の同定装置。
【請求項4】
前記辞書記憶部は、
前記通信装置の型番情報と前記通信装置に固有の識別情報とを関連付けて格納する型番テーブルと、
前記識別情報と前記装置情報とを関連付けて格納する前記詳細テーブルとを記憶し、
前記記録部は、前記収集部が収集した特性情報を前記通信装置の識別情報に関連付けて前記型番テーブルに記録し、前記入力部が入力した型番情報を前記通信装置の識別情報に関連付けて前記詳細テーブルに記録する
ことを特徴とする請求項1から請求項3の何れか1項に記載の同定装置。
【請求項5】
前記比較部が算出した類似度のうち、最も高い類似度に関連付けられた所定の数の型番情報を表示する表示部と、
前記表示部が表示した型番情報の選択を受け付ける選択部と
を備え、
前記同定部は、前記選択部によって選択された型番情報が、ネットワークに接続された通信装置の型番情報であると同定する
ことを特徴とする請求項1から請求項4の何れか1項に記載の同定装置。
【請求項6】
ネットワークに接続された通信装置を同定する同定装置を用いた同定方法であって、
受信部は、前記通信装置からパケットを受信し、
プログラム管理部は、前記受信部が受信した所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムの追加指示または削除指示を受け付け、プログラム記憶部への当該プログラムの追加または前記プログラム記憶部からのプログラムの削除を行い、
解析部は、前記プログラム記憶部が記憶するプログラムを実行することで前記受信部が受信したパケットを解析して前記通信装置の特性を示す特性情報を抽出し、
比較部は、通信装置の特性情報と当該通信機器の型番情報とを関連付けて記憶する辞書記憶部が記憶する特性情報と前記解析部が抽出した特性情報との類似度を算出し、
同定部は、前記比較部が算出した類似度が高い特性情報に関連付けられた型番情報の中から1つの型番情報が、ネットワークに接続された通信装置の型番情報であると同定する
ことを特徴とする同定方法。
【請求項7】
所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムを1つ以上記憶するプログラム記憶部を備え、ネットワークに接続された通信装置を同定する同定装置を、
前記通信装置からパケットを受信する受信部、
前記プログラムの追加指示または削除指示を受け付け、前記プログラム記憶部へのプログラムの追加または前記プログラム記憶部からのプログラムの削除を行うプログラム管理部、
前記プログラム記憶部が記憶するプログラムを実行することで前記受信部が受信したパケットを解析して前記通信装置の特性を示す特性情報を抽出する解析部、
通信装置の特性情報と当該通信機器の型番情報とを関連付けて記憶する辞書記憶部が記憶する特性情報と前記解析部が抽出した特性情報との類似度を算出する比較部、
前記比較部が算出した類似度が高い特性情報に関連付けられた型番情報の中から1つの型番情報が、ネットワークに接続された通信装置の型番情報であると同定する同定部
として機能させるためのプログラム。
【請求項1】
ネットワークに接続された通信装置を同定する同定装置であって、
前記通信装置からパケットを受信する受信部と、
前記受信部が受信した所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムを1つ以上記憶するプログラム記憶部と、
前記プログラムの追加指示または削除指示を受け付け、前記プログラム記憶部へのプログラムの追加または前記プログラム記憶部からのプログラムの削除を行うプログラム管理部と、
前記プログラム記憶部が記憶するプログラムを実行することで前記受信部が受信したパケットを解析して前記通信装置の特性を示す特性情報を抽出する解析部と、
通信装置の特性情報と当該通信機器の型番情報とを関連付けて記憶する辞書記憶部が記憶する特性情報と前記解析部が抽出した特性情報との類似度を算出する比較部と、
前記比較部が算出した類似度が高い特性情報に関連付けられた型番情報の中から1つの型番情報が、ネットワークに接続された通信装置の型番情報であると同定する同定部と
を備えることを特徴とする同定装置。
【請求項2】
前記比較部は、前記プログラム記憶部が記憶するプログラムを用いて抽出できる特性情報のうち、前記解析部によって抽出されなかった特性情報を、情報が無いことを示す特性情報として比較処理を行う
ことを特徴とする請求項1に記載の同定装置。
【請求項3】
前記比較部は、前記辞書記憶部が同一の型番情報に関連付けて記憶する特性情報のうち、前記プログラム記憶部が記憶するプログラムが抽出できる特性情報に対して、前記類似度の算出を行う
ことを特徴とする請求項1または請求項2に記載の同定装置。
【請求項4】
前記辞書記憶部は、
前記通信装置の型番情報と前記通信装置に固有の識別情報とを関連付けて格納する型番テーブルと、
前記識別情報と前記装置情報とを関連付けて格納する前記詳細テーブルとを記憶し、
前記記録部は、前記収集部が収集した特性情報を前記通信装置の識別情報に関連付けて前記型番テーブルに記録し、前記入力部が入力した型番情報を前記通信装置の識別情報に関連付けて前記詳細テーブルに記録する
ことを特徴とする請求項1から請求項3の何れか1項に記載の同定装置。
【請求項5】
前記比較部が算出した類似度のうち、最も高い類似度に関連付けられた所定の数の型番情報を表示する表示部と、
前記表示部が表示した型番情報の選択を受け付ける選択部と
を備え、
前記同定部は、前記選択部によって選択された型番情報が、ネットワークに接続された通信装置の型番情報であると同定する
ことを特徴とする請求項1から請求項4の何れか1項に記載の同定装置。
【請求項6】
ネットワークに接続された通信装置を同定する同定装置を用いた同定方法であって、
受信部は、前記通信装置からパケットを受信し、
プログラム管理部は、前記受信部が受信した所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムの追加指示または削除指示を受け付け、プログラム記憶部への当該プログラムの追加または前記プログラム記憶部からのプログラムの削除を行い、
解析部は、前記プログラム記憶部が記憶するプログラムを実行することで前記受信部が受信したパケットを解析して前記通信装置の特性を示す特性情報を抽出し、
比較部は、通信装置の特性情報と当該通信機器の型番情報とを関連付けて記憶する辞書記憶部が記憶する特性情報と前記解析部が抽出した特性情報との類似度を算出し、
同定部は、前記比較部が算出した類似度が高い特性情報に関連付けられた型番情報の中から1つの型番情報が、ネットワークに接続された通信装置の型番情報であると同定する
ことを特徴とする同定方法。
【請求項7】
所定のプロトコルのパケットを解析して所定の特性情報を抽出するプログラムを1つ以上記憶するプログラム記憶部を備え、ネットワークに接続された通信装置を同定する同定装置を、
前記通信装置からパケットを受信する受信部、
前記プログラムの追加指示または削除指示を受け付け、前記プログラム記憶部へのプログラムの追加または前記プログラム記憶部からのプログラムの削除を行うプログラム管理部、
前記プログラム記憶部が記憶するプログラムを実行することで前記受信部が受信したパケットを解析して前記通信装置の特性を示す特性情報を抽出する解析部、
通信装置の特性情報と当該通信機器の型番情報とを関連付けて記憶する辞書記憶部が記憶する特性情報と前記解析部が抽出した特性情報との類似度を算出する比較部、
前記比較部が算出した類似度が高い特性情報に関連付けられた型番情報の中から1つの型番情報が、ネットワークに接続された通信装置の型番情報であると同定する同定部
として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2012−104054(P2012−104054A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−254159(P2010−254159)
【出願日】平成22年11月12日(2010.11.12)
【出願人】(397065480)エヌ・ティ・ティ・コムウェア株式会社 (187)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願日】平成22年11月12日(2010.11.12)
【出願人】(397065480)エヌ・ティ・ティ・コムウェア株式会社 (187)
[ Back to top ]