(58)【調査した分野】(Int.Cl.,DB名)
前記判定規則は、当該照会名毎に、当該照会名を含む当該クエリの発生する時間間隔の平均であるクエリ発生周期と、当該クエリの発生する当該時間間隔の分布における分散、尖度及び歪度から決定される周期安定度とを記録していることを特徴とする請求項1に記載の端末情報推定装置。
前記判定規則は、当該照会名毎に、当該照会名に対応する端末種別と、当該クエリの発生する時間間隔であるクエリ発生周期と、少なくとも当該クエリの発生する時間間隔の分布における分散から決定される周期安定度とを更に記録したものであって、該判定規則において少なくとも1組の複数の照会名の各々に同一の端末種別が対応しており、
前記種別識別・計数手段は、さらに、収集された各クエリに含まれる照会名を抽出して、当該照会名に対応する端末種別を識別し、当該照会名毎に、所定時間内に収集された当該照会名を含むクエリの数をカウントし、
前記総数推定手段は、さらに、前記1組に含まれる複数の照会名の各々について、対応するクエリ発生周期とカウントされたクエリ数とから対応する当該端末種別の仮総数を算出し、算出された複数の当該仮総数を、当該複数の照会名の各々に対応する周期安定度をもって加重平均して当該端末種別の総数を推定する
ことを特徴とする請求項1から3のいずれか1項に記載の端末情報推定装置。
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、上述したような従来技術を用いても、ISPレベルの大規模なネットワーク全体における、端末種別や端末に搭載されたソフトウェア種別(OS種別及びアプリケーション種別)といった端末情報を推定することは、非常に困難である。
【0012】
例えば、非特許文献1及び3の技術では、基本的にネットワーク上の通信を全て取得する必要がある。その結果、これらの技術を広帯域である基幹回線に適用する場合、導入コストが莫大となり実現性が低下する。一方、大規模ネットワークの末端部に適用する場合、末端部での監視箇所の数が膨大となってしまう。
【0013】
また、非特許文献1及び2の技術では、TCP/IPの特徴を利用するので、OS種別を識別することしかできず、OS上で発動するアプリケーション種別までは識別できない。一方、非特許文献3の技術では、HTTPヘッダの特徴を利用するので、アプリケーションのうちウェブブラウザ種別を識別することしかできない。
【0014】
さらに、非特許文献4の技術では、IPv4とIPv6とが混在している通信環境であることが前提となるため、IPv4又はIPv6単独の環境では、OS種別を識別することができない。従って、IPv6への全面移行の際には、当該技術は適用不可能となる。
【0015】
また、特に、非特許技術2の技術では、管理者が自らパケットを送信するといった能動的な検査を実施する必要がある。その結果、自身の管理下にはないネットワークの利用者に検査用のパケットを送信しようとしても、受け入れられない可能性が高い。さらに、利用者側のネットワークにファイアウォール(Firewall)、又はNAT(Network Address Translation)等のフィルタリング機構が設けられている場合、非特許技術2の技術は、適用不可能である。
【0016】
また、端末が携帯電話等のモバイル機器の場合、端末が数分間乃至数時間のオーダで別の通信エリアに移動してしまう可能性が生じる。このため、上述したような従来技術では、実際の端末情報を適宜取得することが更に困難となってしまう。従って、端末種別、ソフトウェア種別、並びにこれらに対応する端末の総数といった端末情報を推定するためには、通信ネットワーク上でのパケット監視・解析を、適切な判定基準に基づいて、できるだけ短時間で行う必要がある。
【0017】
そこで、本発明は、ネットワーク全体におけるソフトウェア種別毎の総数を含む端末情報を、受動的に、短時間で高い精度をもって推定することができる端末情報推定装置、サーバ、プログラム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0018】
本発明によれば、DNSサーバに、ネットワークを介し
、照会名を含むクエリ
であって、搭載されたソフトウェアで使用される名前を解決するためのクエリを発信する複数の端末における端末情報を推定する端末情報推定装置であって、
当該照会名毎に、当該照会名に対応するソフトウェア種別と、当該クエリの発生する時間間隔であるクエリ発生周期と、少なくとも当該クエリの発生する時間間隔の分布における分散から決定される周期安定度とを記録した判定規則であって、少なくとも1組の複数の照会名の各々に同一のソフトウェア種別が対応した判定規則を登録する判定規則登録手段と、
当該端末から発信された当該クエリを収集するクエリ収集手段と、
収集された各クエリに含まれる照会名を抽出して、判定規則登録手段を用いて当該照会名に対応するソフトウェア種別を識別し、当該照会名毎に、所定時間内に収集された当該照会名を含むクエリの数をカウントする種別識別・計数手段と、
上記1組に含まれる複数の照会名の各々について、対応するクエリ発生周期とカウントされたクエリ数とから対応する当該ソフトウェア種別の仮総数を算出し、算出された複数の当該仮総数を、当該複数の照会名の各々に対応する周期安定度をもって加重平均して当該ソフトウェア種別の総数を推定する総数推定手段と
を有する端末情報推定装置が提供される。
【0019】
この本発明の端末情報推定装置として、照会名毎に、当該照会名を含む当該クエリの発生する時間間隔の平均であるクエリ発生周期と、少なくとも当該クエリの発生する当該時間間隔の分布における分散から決定される周期安定度とを記録していることも好ましい。
【0020】
また、本発明の端末情報推定装置として、ソフトウェア種別は、OS種別及び/又はアプリケーション種別であり、照会名は、当該OS種別及び/又はアプリケーション種別におけるソフトウェア更新確認時の、又は処理実行に必要な情報要求時の接続先アドレスを含むことも好ましい。
【0021】
さらに、本発明の端末情報推定装置における一実施形態として、判定規則は、当該照会名毎に、当該照会名に対応する端末種別と、当該クエリの発生する時間間隔であるクエリ発生周期と、少なくとも当該クエリの発生する時間間隔の分布における分散から決定される周期安定度とを更に記録したものであって、この判定規則において少なくとも1組の複数の照会名の各々に同一の端末種別が対応しており、
種別識別・計数手段は、さらに、収集された各クエリに含まれる照会名を抽出して、当該照会名に対応する端末種別を識別し、当該照会名毎に、所定時間内に収集された当該照会名を含むクエリの数をカウントし、
総数推定手段は、さらに、前記1組に含まれる複数の照会名の各々について、対応するクエリ発生周期とカウントされたクエリ数とから対応する当該端末種別の仮総数を算出し、算出された複数の当該仮総数を、当該複数の照会名の各々に対応する周期安定度をもって加重平均して当該端末種別の総数を推定することも好ましい。
【0022】
また、本発明の端末情報推定装置における他の実施形態として、
ソフトウェア種別は、OS種別及びアプリケーション種別であり、
本端末情報推定装置は、
1つの端末内で
、当該端末に搭載可能なOS種別と、当該端末に搭載されたOS種別上で動作可能なアプリケーション種別とを含むソフトウェア種別の組合せを、共存可能な複数のソフトウェア種別の組合せ
として登録する共存種別登録手段と、
クエリの発信元アドレス毎に、異なるソフトウェア種別を含む複数のクエリが受信された際に、共存種別登録手段を用いてこれら異なるソフトウェア種別が共存し得る関係にあるか否かを判定する共存種別判定手段と
を更に有しており、
種別識別・計数手段は、共存種別判定手段が真の判定を行った際、当該発信元アドレスを含んでおり当該ソフトウェア種別に対応するクエリをカウント対象とすることも好ましい。
【0023】
さらに、本発明の端末情報推定装置における他の実施形態として、複数の端末の発信元アドレスにおける所定アドレス範囲毎に、ネットワーク種別を予め登録するネットワーク種別登録手段を更に有し、
種別識別・計数手段は、識別対象となるクエリについて、ネットワーク種別登録手段を用いて、当該クエリの発信元アドレスからネットワーク種別を更に識別することも好ましい。
【0024】
本発明によれば、さらに、照会名を含むクエリ
であって、搭載されたソフトウェアで使用される名前を解決するためのクエリを発信する複数の端末における端末情報を推定する機能を搭載したDNSサーバであって、
当該照会名毎に、当該照会名に対応するソフトウェア種別と、当該クエリの発生する時間間隔であるクエリ発生周期と、少なくとも当該クエリの発生する時間間隔の分布における分散から決定される周期安定度とを記録した判定規則であって、少なくとも1組の複数の照会名の各々に同一のソフトウェア種別が対応した判定規則を登録する判定規則登録手段と、
当該端末から発信された当該クエリを収集するクエリ収集手段と、
収集された各クエリに含まれる照会名を抽出して、判定規則登録手段を用いて当該照会名に対応するソフトウェア種別を識別し、当該照会名毎に、所定時間内に収集された当該照会名を含むクエリの数をカウントする種別識別・計数手段と、
上記1組に含まれる複数の照会名の各々について、対応するクエリ発生周期とカウントされたクエリ数とから対応する当該ソフトウェア種別の仮総数を算出し、算出された複数の当該仮総数を、当該複数の照会名の各々に対応する周期安定度をもって加重平均して当該ソフトウェア種別の総数を推定する総数推定手段と
を有するDNSサーバが提供される。
【0025】
本発明によれば、さらにまた、DNSサーバに、ネットワークを介し
、照会名を含むクエリ
であって、搭載されたソフトウェアで使用される名前を解決するためのクエリを発信する複数の端末における端末情報を推定するようにコンピュータを機能させる端末情報推定プログラムであって、
当該照会名毎に、当該照会名に対応するソフトウェア種別と、当該クエリの発生する時間間隔であるクエリ発生周期と、少なくとも当該クエリの発生する時間間隔の分布における分散から決定される周期安定度とを記録した判定規則であって、少なくとも1組の複数の照会名の各々に同一のソフトウェア種別が対応した判定規則を登録する判定規則登録手段と、
当該端末から発信された当該クエリを収集するクエリ収集手段と、
収集された各クエリに含まれる照会名を抽出して、判定規則登録手段を用いて当該照会名に対応するソフトウェア種別を識別し、当該照会名毎に、所定時間内に収集された当該照会名を含むクエリの数をカウントする種別識別・計数手段と、
上記1組に含まれる複数の照会名の各々について、対応するクエリ発生周期とカウントされたクエリ数とから対応する当該ソフトウェア種別の仮総数を算出し、算出された複数の当該仮総数を、当該複数の照会名の各々に対応する周期安定度をもって加重平均して当該ソフトウェア種別の総数を推定する総数推定手段と
してコンピュータを機能させる端末情報推定プログラムが提供される。
【0026】
本発明によれば、さらに、DNSサーバに、ネットワークを介し
、照会名を含むクエリ
であって、搭載されたソフトウェアで使用される名前を解決するためのクエリを発信する複数の端末における端末情報を推定する端末情報推定方法であって、
当該照会名毎に、当該照会名に対応するソフトウェア種別と、当該クエリの発生する時間間隔であるクエリ発生周期と、当該クエリの発生する当該時間間隔の分布における分散、尖度及び歪度から決定される周期安定度とを記録した判定規則であって、少なくとも1組の複数の照会名の各々に同一のソフトウェア種別が対応した判定規則を登録する判定規則登録手段を用い、
当該端末から発信された当該クエリを収集する第1のステップと、
収集された各クエリに含まれる照会名を抽出して、判定規則登録手段を用いて当該照会名に対応するソフトウェア種別を識別し、当該照会名毎に、所定時間内に収集された当該照会名を含むクエリの数をカウントする第2のステップと、
上記1組に含まれる複数の照会名の各々について、対応するクエリ発生周期とカウントされたクエリ数とから対応する当該ソフトウェア種別の仮総数を算出し、算出された複数の当該仮総数を、当該複数の照会名の各々に対応する周期安定度をもって加重平均して当該ソフトウェア種別の総数を推定する第3のステップと
を有する端末情報推定方法が提供される。
【発明の効果】
【0027】
本発明の端末情報推定装置、DNSサーバ、プログラム及び方法によれば、ネットワーク全体におけるソフトウェア種別(OS種別及び/又はアプリケーション種別)毎の総数を含む端末情報を、受動的に、短時間で高い精度をもって推定することができる。
【発明を実施するための形態】
【0029】
以下では、本発明の実施形態について、図面を用いて詳細に説明する。
【0030】
[端末情報推定装置が接続されるネットワーク]
図1は、本発明による端末情報推定装置が接続されるネットワークの構成図である。
【0031】
図1によれば、端末情報推定装置1は、多数の端末2に搭載されたソフトウェア種別(OS種別、アプリケーション種別)及びこれら端末2の端末種別(端末メーカー、型番)といった端末情報を識別し、各種別の総数を推定する装置である。端末情報推定装置1は、後に説明する判定規則生成装置8によって生成された「判定規則」を受信又は取得し、この端末情報の推定に利用する。
【0032】
ここで、端末2は、スマートフォン、タブレット型コンピュータ、又はパーソナルコンピュータ等の情報機器であり、アクセスネットワーク30〜32を含むプロバイダネットワーク3を介してインターネット7に接続される。
【0033】
また、アクセスネットワーク30〜32はそれぞれ、例えば、固定系ネットワーク、Wi−Fi(登録商標)等の無線LAN、及び3G(3rd Generation)である。このうち、固定系ネットワークとして、光ファイバ網、及びADSL(Asymmetric Digital Subscriber Line)等を採用することができる。さらに、アクセスネットワークとして、WiMAX(Worldwide Interoperability for Microwave Access)、及びLTE(Long Term Evolution)等の他の無線系ネットワークを採用することも可能である。また、プロバイダネットワーク3は、例えばIMS(IP Multimedia Subsystem)4によって、これらアクセスネットワーク30〜32を介した通信を制御する事業者ネットワークである。
【0034】
DNSサーバ5は、プロバイダネットワーク3に接続された端末2からの名前解決要求を受け付ける。具体的に、各端末2は、OS及びアプリケーション等のソフトウェアで使用されている名前を解決する必要がある場合に、DNSクエリ(query)をDNSサーバ5に送信する。DNSサーバ5は、DNSクエリを受け取ると、他のDNSサーバと通信して又は自ら名前を解決して、応答(リソースレコード)をクエリ発信元の端末2に送信する。
【0035】
ここで、各端末2に搭載されたOS、及びウェブブラウザ等の多くのアプリケーションは、通常、インターネット7を通して自らの更新を行う。このため、そのソフトウェア種別固有のドメイン名のサイトに定期的に接続を試みる。従って、各端末2は、そのソフトウェア種別固有の時間間隔をもって、この固有のドメイン名を照会名として含むDNSクエリを、DNSサーバ5宛てに送信する。
【0036】
例えば、OS種別毎の更新確認時の照会名は、以下の通りである。
《OS種別OS
r》 《照会名N
d》
Windows OS(Microsoft社) download.windowsupdate.com
Android(Google社) android.clients.google.com
Mac OS(Apple社) swscan.apple.com
iOS(Apple社) push.apple.com、phobos.apple.com、
iphone-ld.apple.com
OS更新確認の時間間隔は、OS種別にもよるが、例えばApple社のiOSでは、12時間となる。
【0037】
また、アプリケーション種別の例として、代表的なウェブブラウザ毎の更新確認時の照会名は、例えば、以下の通りである。
《ウェブブラウザ》 《照会名N
d》
Mozilla Firefox(Mozilla Foundation) www.mozilla.com
Chrome(Google社) www.google.com
Opera(Opera Software社) autoupdate.opera.com
アプリケーション更新確認の時間間隔は、アプリケーション種別にもよるが、例えばアップル(Apple)社の「iCloud」では、1.5時間となる。
【0038】
さらに、各端末2に搭載されたソフトウェアに関連するDNSクエリの発信は、上述したようなソフトウェア更新確認時のみならず、ソフトウェア処理の実行に必要な情報要求時にも実施される。例えば、時刻合わせのための時刻情報の要求時、電子メールでのメールボックスの確認時、各種ソーシャルネットワーク・サービスにおける他者情報のチェック時等にも、DNSクエリが発信される。即ち、多くのソフトウェアでは、DNSサーバ3を利用して名前を解決してから通信を開始することが1つのパターンとなっている。
【0039】
この際の照会名(接続先のドメイン名)には、ソフトウェア種別(OS種別、アプリケーション種別)、更には端末種別(端末メーカー、型番)に固有のものが多く存在する。さらに、例えば、1つのOS種別(例えば、Google社の提供するAndroidOS)であっても、異なる端末メーカーに搭載される場合が多く存在する。また、端末2に搭載された多くのソフトウェア種別は、立ち上げ毎に端末メーカーのサイトへアクセスする。ここで、同じ端末メーカーの端末でも型番によって、アクセスするサイトが異なる場合も生じる。従って、各端末2は、ソフトウェア種別に固有の照会先だけでなく、端末種別に固有の照会先をもって、DNSクエリをDNSサーバ3宛に送信する場合が多く存在する。
【0040】
同じく
図1において、判定規則生成装置8は、端末情報を推定するのに利用される「判定規則」を生成し、端末情報推定装置1に送信する。判定規則生成装置8は、例えば、自身に接続された複数の端末9による、いずれかのアクセスネットワーク(
図1ではアクセスネットワーク32)を介した通信を仲介する位置に設置される。次いで、後に(
図9を用いて)説明するように、これら複数の端末9から発信されるDNSクエリを解析して「判定規則」を生成する。この際、判定規則生成装置8は、接続された複数の端末9に係る情報(付与されたIP(Internet Protocol)アドレス、端末種別、搭載されたOS種別及びアプリケーション種別等)を予め登録し、「判定規則」の生成に利用する。
【0041】
このような「判定規則」を生成するために、端末9は、例えば搭載された1つのOS種別及びアプリケーション種別につき10〜100台程度、判定規則生成装置8に接続されることも好ましい。当然に更に多くの端末9を接続することによって、より精度の高い「判定規則」を生成することも可能となる。また、信頼性の高い「判定規則」を得るために、端末9は、DNSクエリが収集される判定規則生成期間中、常時、接続が確立した状態に置かれることも好ましい。
【0042】
判定規則生成装置8は、例えば24時間〜数ヶ月間連続して、端末9から発信されたDNSクエリの収集を行って「判定規則」を生成する。その際、判定規則生成装置8は、DNSクエリの発信元IPアドレス(端末9に付与されたIPアドレス)に対応付けて登録されたソフトウェア種別(OS種別又はアプリケーション種別)をこのDNSクエリの照会名に対応付けた上で、照会名毎に、「クエリ発生周期」と、「周期安定度」とを逐次算出し更新する。
【0043】
ここで、本願発明者等は、多くのソフトウェア種別(OS種別、アプリケーション種別)において、ソフトウェア更新確認のためのDNSクエリに限らず、種々のDNSクエリの発信タイミングが、ソフトウェア種別固有の「クエリ発生周期」を有し得ることを見出した。
【0044】
この「クエリ発生周期」は、対象となっているDNSクエリの発生時間間隔の平均値である。DNSクエリは、定期的なOS更新確認等、対応するソフトウェア種別(照会名)固有の時間間隔(周期)をもって発信される場合が多く、ソフトウェア種別(照会名)毎に「クエリ発生周期」が決定可能である。
【0045】
但し、実際の名前解決の際には、前回のDNSクエリに対する応答としてキャッシュされたリソースレコードのTTL(Time To Live)に応じて所定の時間が指定され、この時間内にはクエリは発信されない(このリソースレコードで回答されたドメイン名が再利用される)。このような事情等があって、クエリ発生の時間間隔(周期)には変動が生じる。「周期安定度」は、この変動の少なさに相当し、後述するように、少なくとも「クエリ発生周期」の分布における分散から決定される。
【0046】
判定規則生成装置8は、以上のようにして最終的に、照会名毎に、ソフトウェア種別を対応付けた上で、「クエリ発生周期」及び「周期安定度」を記載した「判定規則」を生成する。この判定規則生成装置8は、例えば、企業内ネットワークのルータの位置に設置可能である。さらに、判定規則生成装置8は、実際に運用されるネットワークから独立した実験系ネットワークと複数の端末9とを仲介するものであってもよい。いずれにしても、判定規則生成装置8は、複数の端末9全ての端末情報を管理・登録可能な環境に設置される。
【0047】
一方、同じく
図1に示すように、端末情報推定装置1は、プロバイダネットワーク3内におけるDNSサーバ5への回線に設けられたネットワークタップ(又はミラーリングハブ)6を介してネットワークに接続される。端末情報推定装置1は、通信インタフェース100と、クエリ収集部110と、種別識別・計数部111と、総数推定部117と、種別分布蓄積部118と、出力部101とを有している。
【0048】
具体的に、端末情報推定装置1は、
(a)照会名毎に、後に説明する「クエリ発生周期」と「周期安定度」とを記録した「判定規則」であって、少なくとも1組の複数の照会名の各々に同一のソフトウェア種別が対応した「判定規則」である判定規則112tを登録し、
(b)クエリ収集部110によって、端末2から発信されたDNSクエリを、通信インタフェース100を介して収集し、
(c)種別識別・計数部111によって、収集された各DNSクエリに含まれる照会名を抽出して、判定規則112tを用いて当該照会名に対応するソフトウェア種別を識別し、照会名毎に、所定時間内に収集された当該照会名を含むDNSクエリの数をカウントし、
(d)総数推定部117によって、上述した1組に含まれる複数の照会名の各々について、対応する「クエリ発生周期」とカウントされたクエリ数とから、対応する当該ソフトウェア種別の仮総数を算出し、算出された複数の当該仮総数を、照会名の組における各照会名に対応する「周期安定度」をもって加重平均することによって、より高い精度で当該ソフトウェア種別の総数を推定する。
【0049】
尚、端末情報推定装置1は、アクセスネットワーク30〜32のゲートウェイ位置に設置されることも可能である。この場合、設置されたアクセスネットワーク内の端末種別及びソフトウェア種別、並びにこれら種別毎の総数を推定することになる。
【0050】
[判定規則]
図2は、判定規則の一実施形態を示す構成図である。
【0051】
図2によれば、判定規則112tでは、照会名N
d毎に、ソフトウェア種別(OS種別及びアプリケーション種別)SW
j、クエリタイプt
q、クエリ発生周期T
q、及び周期安定度S
Tが記録されている。また、照会名N
d毎に、端末種別TM
i、クエリタイプt
q、クエリ発生周期T
q、及び周期安定度S
Tが記録されている。
【0052】
ここで、クエリ発生周期T
qは、判定規則生成装置8において、端末9から受信したDNSクエリのうち、対象とする照会名N
dを有するクエリの数をカウントする際に測定される、当該クエリ発生の時間間隔の平均値(後述する式(10))である。また、周期安定度S
Tは、これらクエリ発生の時間間隔の分布における分散V
q、尖度K
q及び歪度S
qの所定の平均値から求められる量(後述する式(14a)及び(14b))であり、クエリ発生の時間間隔(周期)に生じる変動の少なさに相当する。
【0053】
この判定規則112tにおいて、OS種別の1つであるjOSは、3つの照会名N
d(abc.xxxupdate.com、efg.clients.com、及びhij.klmno.com)からなる組の各照会名N
dに対応している。従って、jOSを搭載した端末2からは、これら3つの照会名N
dをそれぞれ含む3種のDNSクエリが、それぞれのクエリ発生周期T
q及び周期安定度S
Tをもって発生する。このように、判定規則112tでは、少なくとも1組の複数の照会名N
dの各々に、同一のソフトウェア種別SW
jが対応して記録されている。
【0054】
ここで、後に(
図7のステップS701及びS702を用いて)詳述するように、いずれの照会名N
dに対応するデータ(クエリ発生周期T
q)を用いても、jOSを搭載した端末数(仮総数)を算出することができる。しかしながら、本発明による周期安定度S
Tを用いることによって、算出された3つの端末数から、より精度の高い端末数を推定することができるのである。
【0055】
このような理由から、判定規則112tにおいては、少なくとも1組の複数の照会名N
dに同一のソフトウェア種別が対応している。さらに、照会名N
dのいずれもが複数の照会名N
dからなる組をなしていてこれらの組の各々に同一のソフトウェア種別が対応していることが好ましい。即ち、1つのソフトウェア種別が必ず複数の照会名N
dに対応した形で記録されていて、それぞれの照会名N
d毎に独立したクエリ発生周期T
q及び周期安定度S
Tが規定されていることが好ましい。
【0056】
尚、最近の傾向では、移動端末に搭載されたOSにおいて、ポーリング系のアプリケーションを採用するケースが増加している。このため、1つのソフトウェア種別に対して複数個の照会名を規定し易くなっている。
【0057】
また、判定規則112tには、照会名N
d毎にクエリ発生周期T
q及び周期安定度S
Tが規定されるので、周期性の信頼度が高い(周期のばらつきが小さい)照会名N
dを、見出し、確認し、更には選別することも可能となる。例えば、周期安定度S
Tが所定値以下(例えば0.2以下)である照会名N
dは、端末情報の算出・推定に使用しないとすることも可能である。実際、端末情報の推定においては、精度の高い端末情報(端末数)を得るために、どの照会名N
dを(どの程度)採用するが非常に重要となる。この点、周期安定度S
Tは、その判断のための強力な指標となる。
【0058】
尚、照会名N
dによっては、この照会名N
dがある特定のソフトウェア種別に固有の文字列である、と見なすことはできず、この照会名N
dに複数のソフトウェア種別が対応する場合も存在する。例えば、
図2に示した判定規則112tによれば、照会名N
d:klm.bqq.comに対して2つのOS種別:NbdOS及びOSyyが対応している。この場合、照会名N
d:klm.bqq.comを含むクエリ数をカウントしても、本来そのカウント数が、NbdOSに係る端末数なのか又はOSyyに係る端末数なのかを判定することはできない。
【0059】
しかしながら、NbdOSの場合のクエリ発生周期が538.7秒であるのに対し、OSyyの場合のクエリ発生周期は171850.1秒であり桁違いに長くなっている。その結果、NbdOSを搭載した端末2の台数とOSyyを搭載した端末2の台数との比が所定範囲内であるとの見込みの下、照会名N
d:klm.bqq.comを含むクエリのカウント数を、概ねNbdOSに係る端末数に対応すると近似することが可能となる。これにより、特定のソフトウェア種別に固有の文字列とはなっていない照会名N
dをも、総数(端末数)の推定に有効利用することができる場合が存在する。
【0060】
[端末情報推定装置]
図3は、本発明による端末情報推定装置1の一実施形態を示す機能構成図である。また、
図4は、端末情報推定に使用する各種テーブルの一実施形態を示す構成図である。
【0061】
図3に示すように、端末情報推定装置1は、通信インタフェース100と、出力部101と、クエリ収集部110と、種別識別・計数部111と、判定規則登録部112と、共存種別登録部113と、TTL範囲登録部114と、ネットワーク(NW)種別登録部115と、共存種別判定部116と、総数推定部117と、種別分布蓄積部118とを有する。端末情報推定装置1は、例えばパーソナルコンピュータやサーバのようなものであって、この装置1に搭載されたコンピュータを機能させるプログラムを実行することによって、端末情報の推定に係る機能が実現される。
【0062】
通信インタフェース100は、DNSサーバ5宛のパケットを全て受け取る入力部の役割を果たす。また、この通信インタフェース100を介して、判定規則生成装置8によって生成された判定規則(112t)が受信される。
【0063】
クエリ収集部110は、通信インタフェース100を介して入力したパケットのうち、DNSサーバ5宛のDNSクエリを識別して収集し、蓄積する。
【0064】
種別識別・計数部111は、収集された各DNSクエリに含まれる照会名N
dを抽出し、通信インタフェース100を介して入力した判定規則112t(
図2)を予め登録した照会名登録部112を用いて、この照会名N
dに対応するソフトウェア種別SW
jを識別する。さらに、照会名N
d毎に、所定時間内に収集されたこの照会名N
dを含むクエリの数をカウントする。尚、種別識別・計数部111は、収集された各DNSクエリからクエリタイプも抽出し、クエリタイプが(ホストアドレスを要求するDNSクエリであることを示す)タイプAである場合にのみ、クエリ数のカウントを行うことも好ましい。
【0065】
種別識別・計数部111は、照会名抽出部111qと、端末種別識別部111mと、SW種別識別部111sと、クエリカウント部111cと、IPアドレス抽出部111dと、ネットワーク(NW)種別識別部111nとを有する。
【0066】
照会名抽出部111qは、収集された各DNSクエリに含まれる照会名N
dを抽出する。端末種別識別部111mは、判定規則登録部112を用いて、抽出された照会名N
dに対応した端末種別TM
iを識別する。SW種別識別部111sは、判定規則登録部112を用いて、抽出された照会名N
dに対応したソフトウェア種別SW
jを識別する。クエリカウント部111cは、照会名N
d毎に、所定のカウント時間t
co内に収集された、この照会名N
dを含むDNSクエリの数をカウントする。
【0067】
IPアドレス抽出部111dは、識別対象となるDNSクエリに含まれる発信元IPアドレスを抽出する。また、NW種別識別部111nは、ネットワークテーブル115t(
図4(C))を登録したネットワーク種別登録部115を用いて、このDNSクエリの発信元IPアドレスからネットワーク種別NW
kを識別する。
【0068】
共存種別登録部113は、共存可能テーブル113t(
図4(A))を予め登録する。この共存可能テーブル113tを利用することによって、DNSクエリの発信元IPアドレス毎に、異なるソフトウェア種別を含む複数のDNSクエリが受信された際に、これら異なるソフトウェア種別が共存し得る関係にあるか否かが判定可能となる。
【0069】
TTL範囲登録部114は、TTLテーブル114t(
図4(B))を予め登録する。このTTLテーブル114tを利用することによって、DNSクエリに含まれるIPヘッダのTTLの値が、識別されたソフトウェア種別SW
jに対応する測定値可能範囲に含まれる場合にのみ、ソフトウェア種別を識別したものとすることができる。
【0070】
NW種別登録部115は、ネットワークテーブル115tを予め登録する。このネットワークテーブル115tを利用することによって、このDNSクエリの発信元IPアドレスから、ネットワーク種別及びその数を更に識別・算出することが可能となる。
【0071】
図4(A)〜(C)に、これら共存可能テーブル113t、TTLテーブル114t及びネットワークテーブル115tを示す。
【0072】
図4(A)によれば、共存可能テーブル113tには、1つの端末2内で共存可能な複数のソフトウェア種別の組合せが登録されている。具体的には、識別され得るソフトウェア種別SW
j(OS種別OS
r及びアプリケーション種別AP
s)毎に、1つの端末2内で共存可能な複数のソフトウェア種別が登録されている。
【0073】
例えば、あるアプリケーション種別は、特定のOS種別上でのみ動作する。この場合、このアプリケーション種別に対応するテーブル欄に、このOS種別が登録され、また、このアプリケーション種別は、他のOS種別に対応するテーブル欄から除外される。さらに、1つの端末2内で互いに共存できないアプリケーション種別も存在する。この場合、この一方のアプリケーション種別は、他方のアプリケーション種別に対応するテーブル欄から除外される。
【0074】
さらに、共存可能テーブル113tには、識別され得るソフトウェア種別SW
j(OS種別OS
r及びアプリケーション種別AP
s)毎に、そのソフトウェア種別SW
jを搭載可能な端末種別TM
iが登録されている。
【0075】
図4(B)によれば、TTLテーブル114tには、識別され得るOS種別OS
r毎に、TTLの測定値可能範囲TR
rが予め登録されている。ここで、TTLは、パケットの有効期間を表すための数値であり、IPヘッダ内に格納されている。
【0076】
TTLの初期値は、OSに固有の値となっている。例えば、
Microsoft社のWindows OS:TTLの初期値=128
LinuxのKernel 2.6:TTLの初期値=64
であり、互いに異なっている。
【0077】
このTTLは、ルータを通過する毎に値が1だけ減少する。従って、パケットを収集してTTLを測定した場合、初期値よりも小さな測定値が得られるが、この測定値の範囲を予測することができる。この範囲が、測定値可能範囲TR
rとなる。
【0078】
図4(C)によれば、ネットワークテーブル115tには、発信元IPアドレスにおけるネットワークアドレスレンジ、即ち、IPアドレス及びネットマスク毎に、ネットワーク種別NW
kと、AS番号(Autonomous System Number)と、国名と、サービス名と、回線種別とが予め登録されている。
【0079】
一般に、ネットワーク種別NW
kは、それぞれに固有のネットワークアドレスレンジを有する。例えば、DNSクエリの発信元IPアドレスが192.168.248.35である場合、
図4(C)のネットワークテーブル115tによれば、このクエリが「A社内の固定回線」を介して送信されたものである、と識別される。
【0080】
図3に戻って、共存種別判定部116は、DNSクエリの発信元IPアドレス毎に、異なるソフトウェア種別を含む複数のDNSクエリが受信された際に、これら異なるソフトウェア種別が共存し得る関係にあるか否かを判定する。ここで、共存種別判定部116は、この判定を行うため、共存可能テーブル113tを登録した共存種別登録部113を用いる。さらに、共存種別判定部116は、発信元IPアドレス毎に、識別されたソフトウェア種別SW
j(OS種別OS
r又はアプリケーション種別AP
s)を記憶するソフトウェア(SW)種別記録部116sを有している。
【0081】
総数推定部117は、端末2の端末種別TM
i及び端末2に搭載されたソフトウェア種別SW
j毎の総数を推定する。具体的には、仮総数算出部117cと、総数推定部117aと、ネットワーク(NW)推定部117nとを有する。
【0082】
仮総数算出部117cは、照会名N
d毎に、対応するクエリ発生周期T
qとカウントされたクエリ数とから当該端末種別TM
i及びソフトウェア種別SW
jの仮総数を算出する。ここで、判定規則112tにおいて、複数の照会名N
dからなる1つの組に、同一のソフトウェア種別SW
j(端末種別TM
i)が対応して記録されている場合、この組の照会名N
d毎に、ソフトウェア種別SW
j(端末種別TM
i)の仮総数が算出されることになる。
【0083】
総数推定部117aは、1つのソフトウェア種別SW
j(端末種別TM
i)に複数の仮総数が算出された場合に、これら複数の仮総数を、複数の当該照会名N
dの各々に対応する周期安定度S
Tをもって加重平均して、ソフトウェア種別SW
j(端末種別TM
i)の総数を推定する。NW推定部117nは、各ネットワーク種別NW
kにおける、各ソフトウェア種別(端末種別)の数(又は割合)を推定する。
【0084】
種別分布蓄積部118は、総数推定部117で推定された端末種別及びソフトウェア種別毎の総数と、端末2が接続された各ネットワーク種別NW
kにおける端末種別及びソフトウェア種別の数(又は割合)とを蓄積し、取り纏めて、種別分布テーブル118tを作成する。種別分布テーブル118tの構成は、後に
図8を用いて説明される。出力部101は、種別分布蓄積部118で形成された種別分布テーブル118tを受け取り、この内容をディスプレイ表示し、紙等の媒体として出力し、又はデータとして外部装置に出力する。
【0085】
[DNSサーバ]
図5は、本発明によるDNSサーバの一実施形態を示す機能構成図である。
【0086】
図5によれば、DNSサーバ1’は、DNSサーバとしてプロバイダネットワーク3に接続された端末2からの名前解決要求を処理する名前解決機能を有すると共に、プロバイダネットワーク3に接続された多数の端末2における、搭載された端末種別及びソフトウェア種別を識別し、さらに各種別の総数を推定する。
【0087】
DNSサーバ1’は、通信インタフェース100’と、出力部101’と、端末情報推定部11’と、名前解決機能部12’とを有する。ここで、端末情報推定部11’は、クエリ収集部110’と、種別識別・計数部111’と、共存種別判定部116’と、総数推定部117’と、種別分布蓄積部118’とを有しており、
図3で説明された端末情報推定装置1と同様の機能を果たす。
【0088】
[端末情報推定方法]
図6は、本発明の端末情報推定方法のうち、端末2の端末種別及び端末2に搭載されたソフトウェア種別の識別・計数方法の一実施形態を示すフローチャートである。
【0089】
(S600)生成された判定規則(112t)を入力し、登録する。
(S601)OS種別OS
i毎に、TTLの測定値可能範囲TR
iを予め登録する。
(S602)所定アドレスレンジAR
k毎に、ネットワーク種別{NW
1,NW
2,・・・,NW
k,・・・,NW
nw}を予め登録する。
【0090】
(S603)端末種別TM
iのカウント数ntm
iの初期値、ソフトウェア種別SW
jのカウント数nsw
jの初期値、ネットワーク種別NW
kに係る端末種別TM
iのカウント数ntm(NW
k)
iの初期値、及びネットワーク種別NW
kに係るソフトウェア種別SW
jのカウント数nsw(NW
k)
jの初期値をそれぞれゼロとする。
ntm
i=0(i=1,2,・・・,tm)
nsw
j=0(j=1,2,・・・,sw)、
ntm(NW
k)
i=0(i=1,2,・・・,tm、k=1,2,・・・,nw)
nsw(NW
k)
j=0(j=1,2,・・・,sw、k=1,2,・・・,nw)
【0091】
(S604)収集したDNSクエリを解析しつつDNSクエリ数をカウントするループを開始する。ここで、クエリ数のカウント時間をt
coとする。t
coは、例えば数分〜10分間程度とすることができる。
(S605)DNSサーバ5宛のパケットを収集する。
(S606)収集したパケットが、端末種別又はソフトウェア種別に対応した照会名N
dを有するDNSクエリであるか否かを判定する。この際、判定規則112tを用いて、このクエリに含まれる照会名N
dに対応する端末種別又はソフトウェア種別が存在するか否かを判定する。
【0092】
(S607a)ステップS606において、収集したパケットがソフトウェア種別に対応した照会名N
dを有するDNSクエリであるとの判定がなされた際、ソフトウェア種別を、このクエリに含まれる照会名N
dに対応したSW
jと識別する。一方、ステップS606で偽の判定、即ち登録された端末種別及びソフトウェア種別のいずれに係るDNSクエリでもないとの判定がなされた際、ステップS615に移行し、カウント時間の経過を確認しつつ、クエリ数カウントループを繰り返す。
【0093】
(S608a)このDNSクエリのIPヘッダにおけるTTL値を測定する。
(S609a)測定されたTTL値が、TTLテーブル114tに登録された、識別されたOS(ソフトウェア)種別OS
rに対応するTTL測定値可能範囲TR
rに含まれるか否かを判定する。ここで、偽の判定がなされた際、ステップS615に移行し、カウント時間の経過を確認しつつ、クエリ数カウントループを繰り返す。また、TTL測定値可能範囲が規定できないアプリケーション種別等の場合、このステップの判定を行わず、次のステップS610aに移行する。
【0094】
(S610a)ステップS609aで真の判定がなされた際、このOS種別OS
iを識別したものとする。次いで、ソフトウェア種別SW
jが、同一の発信元IPアドレスを含む他のDNSクエリの照会名N
dから識別されたソフトウェア種別と、1つの端末2内で共存し得るか否かを判定する。
【0095】
尚、プロバイダネットワーク3の構成として、端末2側に、1つのIPアドレスを複数の端末で共有可能なNAT(Network Address Translation)が設置されている場合、同一の発信元IPアドレスのパケットが同一の端末2から発信されたものと断定することはできない。実際、(クエリ発生周期T
qよりも十分に小さい)所定時間t
co内に、1つのIPアドレスから複数のソフトウェア種別SW
jに係るDNSクエリが収集された場合、このIPアドレスは複数の端末2に対応して使用されている、と判断される。このような場合、ステップS610aでの判定条件を緩和するか、又はステップS610aを省略することが好ましい。緩和された判定条件としては、例えば、1つのIPアドレスにおけるあるOS種別OS
r更新確認の為のDNSクエリの数が、所定の閾値以下であるか否か、とすることが可能である。
【0096】
(S611a)ステップS610aで真の判定がなされた際、SW種別SW
jのカウント数nsw
jを1だけ増加させる。
nsw
j=nsw
j+1
一方、ステップS610aで偽の判定がなされた際、ステップS615に移行し、カウント時間の経過を確認しつつ、クエリ数カウントループを繰り返す。
【0097】
(S607b)ステップS606において、収集したパケットが端末種別に対応した照会名N
dを有するDNSクエリであるとの判定がなされた際、端末種別を、このクエリに含まれる照会名N
dに対応したTM
iと識別する。
【0098】
(S608b)識別された端末種別TM
iが、同一の発信元IPアドレスを含む他のDNSクエリの照会名N
dから識別されたソフトウェア種別SW
jを搭載し得るか否かを判定する。尚、端末2側に、1つのIPアドレスを複数の端末で共有可能なNATが設置されている場合に、ステップS608bでの判定条件を緩和するか、又はステップS608bを省略することが好ましいことは、ステップS610aと同様である。
【0099】
(S609b)ステップS608bで真の判定がなされた際、端末種別TM
iのカウント数ntm
iを1だけ増加させる。
ntm
i=ntm
i+1
一方、ステップS608bで偽の判定がなされた際、ステップS615に移行し、カウント時間の経過を確認しつつ、クエリ数カウントループを繰り返す。
【0100】
(S612)発信元IPアドレス毎に、照会名N
dと、識別された端末種別TM
i及びソフトウェア種別SW
jとを記録する。
(S613)識別対象であるDNSクエリのIPアドレス値から、ネットワークテーブル115tを用いて、ネットワーク種別をNW
kと識別する。
(S614)識別されたネットワーク種別NW
kに係る識別された端末種別TM
i又はソフトウェア種別SW
jのカウント数ntm(NW
k)
i又はnsw(NW
k)
jを、1だけ増加させる。
ntm(NW
k)
i=ntm(NW
k)
i+1、又は
nsw(NW
k)
j=nsw(NW
k)
j+1
ここで、TM
iは、現時点の解析対象であるDNSクエリにおいて識別された端末種別である。また、SW
jは、現時点の解析対象であるDNSクエリにおいて識別されたソフトウェア種別である。
【0101】
(S615)ステップS610の開始からの時間を計測し、予め設定された所定時間t
co未満であれば、ステップS604に戻って、クエリ数カウントループを繰り返す。一方、所定時間t
coが経過しているのであれば、クエリ数カウントループを終了する。
【0102】
(S616)端末種別(照会名)毎のクエリ数ntm
ip及びntm(NW
k)
ip、並びにソフトウェア種別(照会名)毎のクエリ数nsw
jq及びnsw(NW
k)
jqを蓄積する。ここで、クエリ数における添え字p(q)は、1つの端末種別(ソフトウェア種別)が異なる複数の照会名N
dに対応している場合における、照会名N
d毎のクエリ数の区別を表す。
【0103】
尚、以上に説明したソフトウェア(OS)種別の識別方法のうち、TTLに関するステップS608a及びステップS609aは、省略することができる。また、ソフトウェア種別の共存判断に関するステップS610a及びステップS608bも省略可能である。但し、これらのステップを採用することによって、アプリケーション種別をより高い精度で識別することができる。実際、照会名N
dに表れるソフトウェア種別の特徴は、端末の改造等によって改変される可能性がゼロではない。従って、端末2のアプリケーション種別情報の取得・推定においては、TTL情報及び共存可能情報も考慮し、さらに以下に説明する統計手法を取り入れて、総合的な判断を行うことが好ましい。
【0104】
図7は、本発明の端末情報推定方法のうち、端末2の端末種別及び端末2に搭載されたソフトウェア種別の総数を推定する方法の一実施形態を示すフローチャートである。
【0105】
尚、以下に示す方法は、ステップS616(
図6)で蓄積された端末種別(照会名)毎のクエリ数ntm
ip及びntm(NW
k)
ip、並びにソフトウェア種別(照会名)毎のクエリ数nsw
jq及びnsw(NW
k)
jqの情報を用いて実施される。
【0106】
(S700)各端末種別TM
i及び各ソフトウェア種別SW
jの総数を算出・推定する総数推定ループに入る。このループでは、i=1,2,・・・,tm、及びj=1,2,・・・,swを順次指定することになる。
(S701)クエリ発生周期Tq
ip及びTq
jqを用いて、照会名N
d(TM
ip)及びN
d(SW
jq)毎に、当該端末種別TM
i及びソフトウェア種別SW
jの仮総数Mを、
(1) Mtm
ip=ntm
ip×Tq
ip/(60×t
co)
(2) Msw
jq=nsw
jq×Tq
jq/(60×t
co)
(3) Mtm(NW
k)
ip=ntm(NW
k)
ip×Tq
ip/(60×t
co)
(4) Msw(NW
k)
jq=nsw(NW
k)
jq×Tq
jq/(60×t
co)
として算出する。
【0107】
ここで、Tq
ip(秒)は、端末種別TM
iの対応する照会名N
d(TM
ip)(p:1つの端末種別が対応する1つ以上の照会名を区別する添え字)に対応付けられたクエリ発生周期である。また、Tq
jq(秒)は、ソフトウェア種別SW
jの対応する照会名N
d(SW
jq)(q:1つのソフトウェア種別が対応する1つ以上の照会名を区別する添え字)に対応付けられたクエリ発生周期である。また、t
coの単位は、分である。
【0108】
例えば、1つの例として、Apple社のiOS(=SW
j)では、クエリ発生周期(更新確認時間間隔)Tq
jq=12(時間)=43200(秒)である。ここで、t
co=10(分間)の下、iOSの更新確認先であるiphone-ld.apple.comを照会先N
d(SW
jq)としたDNSクエリのカウント数が、n=100(回)であったとすると、iOSの仮総数(iOSを搭載した端末の仮総数)Mは、
Msw
jq=100×43200/(60×10)=7200
となる。即ち、プロバイダネットワーク4に接続されたiOSを搭載した端末の仮総数は、7200台であると算出される。
【0109】
さらに、別の例として、
図2の判定規則112tに示したように、1つのOS種別jOS(=SW
1)に対応する照会名N
d(SW
1q)が3つ(q=1,2,3)存在する場合、即ち、N
d(SW
11)={abc.xxxupdate.com}、N
d(SW
12)={efg.clients.com}、及びN
d(SW
13)={hij.klmno.com}が存在する場合を考える。クエリ数カウントのカウント時間t
coを10(分間)とし、照会名N
d(SW
11)に係るカウント数nsw
11=1672、照会名N
d(SW
12)に係るカウント数nsw
12=7、及び照会名N
d(SW
13)に係るカウント数nsw
13=8とすると、jOS(SW
1)の仮総数は、
Msw
11=1672×350.7/(60×10)=約977.28
Msw
12=7×86405.5/(60×10)=約1008.06
Msw
13=8×86389.2/(60×10)=約1151.86
と3つ算出される。
【0110】
因みに、このステップで算出される端末数は、プロバイダネットワーク3に接続される端末2のうち、電源がON状態であって通信機能が起動した状態のものを対象にした数である。
【0111】
(S702)周期安定度ST
ip及びST
jqを用いて、端末種別TM
i毎及びソフトウェア種別SW
j毎に、当該種別の総数Nを、
(5) Ntm
i=Σ(Mtm
ip×ST
ip)/ΣST
ip
(6) Nsw
j=Σ(Msw
jq×ST
jq)/ΣST
jq
として算出・推定する。
【0112】
ここで、ST
ipは、端末種別TM
iの対応する照会名N
d(TM
ip)に対応付けられた周期安定度である。また、ST
jqは、ソフトウェア種別SW
jの対応する照会名N
d(SW
jq)に対応付けられた周期安定度である。さらに、式(5)のΣはいずれもp=1,2,・・・についての総和(summation)である。また、式(6)のΣはいずれもq=1,2,・・・についての総和である。
【0113】
式(5)及び(6)から理解されるように、端末種別毎及びソフトウェア種別毎の当該種別の総数Nは、当該種別に係る少なくとも1つの仮総数Mを、対応する周期安定度をもって加重平均した値となっている。
【0114】
(S703)ネットワーク種別NW
kの配下にある端末の端末種別TM
i及びソフトウェア種別SW
jの総数を、
(7) Ntm(NW
k)
i=Σ(Mtm(NW
k)
ip×ST
ip)/ΣST
ip
(8) Nsw(NW
k)
j=Σ(Msw(NW
k)
jq×ST
jq)/ΣST
jq
として算出・推定する。ここで、k=1,2,・・・,nwの全てについて、式(7)及び式(8)の算出がなされる。さらに、式(7)のΣはいずれもp=1,2,・・・についての総和(summation)である。また、式(8)のΣはいずれもq=1,2,・・・についての総和である。
【0115】
(S704)識別された全ての端末種別TM
i及びソフトウェア種別SW
jについて総数を推定するまで、総数推定ループを繰り返す。
【0116】
(S705)端末種別毎の総数
{Ntm
1,Ntm
2,・・・,Ntm
i,・・・,Ntm
tm}、
ソフトウェア種別毎の総数
{Nsw
1,Nsw
2,・・・,Nsw
j,・・・,Nsw
sw}、及び
各ネットワーク種別NW
kに係る端末種別TM
i及びソフトウェア種別SW
jの各々の数
Ntm(NW
k)
i(i=1,2,・・・,tm、k=1,2,・・・,nw)
Nsw(NW
k)
j(j=1,2,・・・,sw、k=1,2,・・・,nw)
を蓄積する。
【0117】
(S706)ステップS705で蓄積されたデータを表示又は出力する。
【0118】
[種別分布テーブル]
図8は、種別分布テーブル118tの一実施形態を示す構成図である。種別分布テーブル118tは、
図7のステップS705において、種別分布蓄積部118(
図3)が作成するテーブルである。
【0119】
図8によれば、種別分布テーブル118tでは、ソフトウェア種別SW
j(OS種別OS
r及びアプリケーション種別AP
s)毎に、当該ソフトウェア種別SW
jの総数が記載されている。これにより、プロバイダネットワーク3に接続された端末2に搭載された各SW種別SW
jの総数、従ってこのOS
r又はAP
sを搭載した端末数、を推定することができる。また、プロバイダネットワーク3内でのOS種別OS
rの分布及びアプリケーション種別AP
sの分布を得ることができる。
【0120】
また、端末種別TM
i(端末メーカー、型番)毎に、当該端末種別TM
iの総数が記載されている。これにより、プロバイダネットワーク3に接続された端末2の端末種別TM
iの総数、従ってこの端末種別TM
iの端末数、を推定することができる。また、プロバイダネットワーク3内での端末種別TM
iの分布を得ることができる。
【0121】
さらに、種別分布テーブル118tでは、ネットワーク種別NW
k毎に、このネットワーク種別NW
kの配下にある各ソフトウェア種別SW
jの総数が記載されている。これにより、各ネットワーク種別NW
kの配下では、どのようなソフトウェア種別SW
j(OS種別OS
r及びアプリケーション種別AP
s)がどの程度利用されているかを把握することができる。即ち、ネットワーク種別NW
k毎に、当該ソフトウェア種別SW
jの分布を得ることができる。
【0122】
[判定規則生成方法の例]
図9は、本発明による判定規則生成方法の一例を示すフローチャートである。ここで、本方法は、例えば
図1の判定規則生成装置8で実施される。この際、複数の端末9が装置8に接続され、これら複数の端末9にIPアドレスが付与される。
【0123】
(S900)最初に、複数の端末9に付与された発信元IPアドレス毎に、端末9に搭載されたソフトウェア種別SW
j(OS種別OS
r、アプリケーション種別AP
s)を予め登録する。
【0124】
(S901)DNSクエリ情報収集ループ(ステップS901〜S908)を開始する。総観測時間(収集時間)はT
meとする。T
meは、例えば24時間〜数ヶ月間に設定することができる。
(S902)端末9から発信されたDNSクエリを収集する。
(S903)収集されたDNSクエリに含まれる照会名N
d及び発信元IPアドレスを抽出する。
【0125】
(S904)このDNSクエリの発生時刻を、抽出された照会名N
d及び発信元アドレスに対応付けて記録する。尚、この発生時刻は、DNSクエリから抽出された時刻情報とすることができる。
(S905)抽出された照会名N
dが、新規であるか否かを判定する。
(S906a)抽出された照会名N
dが新規である場合、この照会名N
dを新たにクエリ周期テーブルにエントリする。
【0126】
ここで、クエリ周期テーブルは、エントリされた照会名N
d毎に、当該クエリが発生する時間間隔の平均値であるクエリ発生周期T
qと、周期安定度S
Tとを記録するものである。この周期安定度S
Tは、後述するようにクエリ発生の時間間隔の分布における分散V
q、尖度K
q及び歪度S
qから算出される。
(S907a)次いで、この照会名N
dに対応する値として、クエリ発生周期T
q及び周期安定度S
Tを算出し、クエリ周期テーブルに記録する。これらの値の算出は以下の通りに実行される。
【0127】
最初に、照会名N
d毎に、各発信元IPアドレスについて、対応するDNSクエリの発生時刻の間隔Δt
n(n番目の発生時間間隔)の算出式
(9) Δt
n=t
n+1−t
n (t
n:DNSクエリのn番目の発生時刻)
を用いてΔt
1をまず算出し、このΔt
1を、照会名N
d毎に、クエリ発生周期T
qとしてクエリ周期テーブルに記録する。
【0128】
次いで、逐次入力されるデータを用いて、発生時間間隔Δt
n(n≧1)を順次算出し、その都度、
(10) T
q=Σ(Δt
m)/n
として、クエリ周期テーブルのクエリ発生周期T
qを更新する。ここで、Σはm=1,2,・・・,nについての総和(summation)である。即ち、クエリ発生周期T
qは、発生時間間隔Δt
1、Δt
2、・・・、Δt
nの平均値として順次更新される。
【0129】
さらに、発生時間間隔Δt
1、Δt
2、・・・、Δt
nの分布における分散V
qを次式
(11) V
q=Σ(Δt
m−T
q(n))
2/n
を用いて順次算出し、クエリ周期テーブルにおいて逐次記録・更新する。ここで、Σはm=1,2,・・・,nについての総和である。また、T
q(n)は、発生時間間隔Δt
nまで考慮して算出されたクエリ発生周期である。
【0130】
次いで、発生時間間隔Δt
1、Δt
2、・・・、Δt
nの分布における尖度K
qを次式
(12) K
q=Σ(Δt
m−(T
q(n))
4)/(nV
q2)−3
を用いて順次算出し、クエリ周期テーブルにおいて逐次記録・更新する。ここで、Σはm=1,2,・・・,nについての総和である。一般に、正規分布よりも尖った(扁平な)分布の尖度K
qは、ゼロより大きく(小さく)なる。正規分布相当の分布の尖度はゼロである。
【0131】
また、発生時間間隔Δt
1、Δt
2、・・・、Δt
nの分布における歪度S
qを次式
(13) S
q=Σ(Δt
m−T
q(n))
3/(nV
q1.5)
を用いて順次算出し、クエリ周期テーブルにおいて逐次記録・更新する。ここで、Σはm=1,2,・・・,nについての総和である。一般に、左側(右側)に偏った分布の歪度S
qは、ゼロより大きく(小さく)なる。左右対称な分布の歪度はゼロである。
【0132】
さらに、算出された分散V
q、尖度K
q及び歪度S
qを用いて、発生時間間隔Δt
1、Δt
2、・・・、Δt
nの周期安定度S
Tを次式
(14a) S
T=1−AS
T
(14b) AS
T=N[(V
q2+K
q2+S
q2)
0.5]
を用いて順次算出し、クエリ周期テーブルにおいて逐次記録・更新する。ここで上式(14b)の関数N[X]は、ゼロ又は正値をとる変数Xを0から1までの値に規格化する関数であり、例えば、
(15) N[X]=−(X+1)
−1+1
とすることができる。これにより、AS
Tは、発生時間間隔Δt
1、Δt
2、・・・、Δt
nの分布における平均値(クエリ発生周期T
q)の不安定度(不確からしさ)に相当し、分布がより分散していて、より正規分布から逸脱しており、より偏りが大きいほど、大きな値をとる。
【0133】
その結果、周期安定度S
Tの値は、クエリ発生時間間隔が最も安定している場合(不安程度AS
Tがゼロの場合)、1となる。一方、クエリ発生時間間隔がクエリ発生周期T
qから変動しがちになるにつれて、ゼロに近づく。このような周期安定度S
Tの値を導入して端末情報(端末数等)の推定を行うことによって、より精度の高い推定が可能となる。
【0134】
尚、周期安定度S
Tは、(14a)及び(14b)で規定されるものに限らない。分散V
q、尖度K
q及び歪度S
qについての上記以外の所定の平均から決定されることも好ましく、又は、分散V
qのみから決定される(例えばS
T=1−N[V
q])ことも可能である。
【0135】
(S906b)一方、抽出された照会名N
dが新規ではない場合、既にエントリされている当該照会名N
dを参照する。
(S907b)次いで、この照会名N
d毎に、上述したようにクエリ発生周期T
q及び周期安定度S
Tを算出し、クエリ周期テーブルに記録されたこれらの値を更新する。
【0136】
(S908)DNSクエリ情報収集ループを開始してから、設定された総観測時間T
meが経過したか否かを判定し、経過していれば、本ループ(DNSクエリの収集・解析)を終了する。一方、経過していなければ、S901に戻って本ループを継続して行う。
【0137】
(S909)照会名N
d毎に、ソフトウェア種別SW
jを対応付けた上で、最終的に決定されたクエリ発生周期T
q及び周期安定度S
Tを記録した判定規則(112t)を生成する。
(S910)生成した判定規則(112t)を出力する。この際、この判定規則を、端末情報推定装置1に送信してもよく、又はディスプレイ表示し、紙等の媒体として出力し、若しくはデータとして外部装置に出力することもできる。
【0138】
尚、判定規則生成方法の本実施形態(ステップS900〜S910)において、「ソフトウェア種別」に代えて「端末種別」を採用すれば、複数の端末2の端末種別TM
iに係る判定規則を生成することができる。この場合、判定規則は、照会名N
d毎に、端末種別TM
iを対応付けた上で、最終的に決定されたクエリ発生周期T
q及び周期安定度S
Tを記録したものとなる。
【0139】
以上、本発明によれば、判定規則を利用することによって、照会名N
dに対応したクエリ発生周期T
qから、ネットワーク全体における端末種別、ソフトウェア種別及び各種別の仮総数を算出することができる。また、照会名に対応した周期安定度S
Tを用いることによって、算出された仮総数からより高い精度で総数(端末数)を推定することが可能となる。即ち、本発明によれば、ネットワーク全体における端末種別、ソフトウェア種別及び各種別の総数を含む端末情報をより高い精度をもって推定することができる。
【0140】
ここで、特に、周期安定度S
Tを考慮して端末数を推定することができるので、より短時間で(より少ないクエリ観測数から)、精度の高い端末数を推定することができる。実際、DNSクエリを収集する時間t
coは、クエリ発生周期T
qに比べて非常に短い時間(例えばt
co=数分〜10分)とすることが可能である。従って、本発明によれば、例えば、移動端末の通信エリア間又は通信エリア内外への移動による影響を受けにくい端末情報の推定が可能となる。
【0141】
また、このように短時間での総数の推定が可能であるので、あるソフトウェア種別における異なる時間帯での総数を比較したり、あるソフトウェア種別における各時刻での総数の推移を得たり、さらには、各時刻における異なるソフトウェア種別間の総数比を比較したりすることができる。例えば、午前10時からの10分間についての、あるOS種別OS
rの総数N
10と、午後10時からの10分間についてのこのOS種別OS
rの総数N
22とを推定して比較することが可能となる。
【0142】
さらに、本発明によれば、大規模なネットワーク全体における端末種別、ソフトウェア種別を、全通信を取得することなく識別することができる。また、識別した各端末種別、各ソフトウェア種別の総数を、全通信を取得することなく高い精度で推定することができる。
【0143】
また、本発明によれば、自らパケットを送信するといった能動的な検査を必要としない。即ち、ソフトウェア種別情報の識別・推定を受動的に実施することができる。その結果、例えば、端末側に設けられたフィルタリング機構によって検査不能となる事態を引き起こすことがない。
【0144】
さらに、以上に説明した本発明によって推定される端末情報は、例えば、ネットワーク管理者にとって、ネットワークの安定した運用を維持するために非常に重要となる。即ち、これら端末情報の把握によって、通信障害の原因となる利用者の行為を未然に防止したり、トラフィックのオフロード状況を把握したり、将来の通信量増加の程度を予測し必要な通信設備の増強を図ったりすることが可能となる。
【0145】
しかしながら、ネットワーク内では、常に、新たなアプリケーションやOSが次々と利用され、各種ソフトウェアの利用者数も大きく変動する。このような状況でも、本発明によれば、適宜、現在の通信状況・利用状況に適合した判定規則を活用して端末情報を推定することができる。その結果、ネットワーク管理者は、より適切な精度の高い端末情報を入手することができ、より適切な対策を講じることができる。
【0146】
尚、以上に述べた本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。