特許第6198195号(P6198195)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧 ▶ 学校法人早稲田大学の特許一覧

<>
  • 特許6198195-推定装置、推定方法、及びプログラム 図000008
  • 特許6198195-推定装置、推定方法、及びプログラム 図000009
  • 特許6198195-推定装置、推定方法、及びプログラム 図000010
  • 特許6198195-推定装置、推定方法、及びプログラム 図000011
  • 特許6198195-推定装置、推定方法、及びプログラム 図000012
  • 特許6198195-推定装置、推定方法、及びプログラム 図000013
  • 特許6198195-推定装置、推定方法、及びプログラム 図000014
  • 特許6198195-推定装置、推定方法、及びプログラム 図000015
  • 特許6198195-推定装置、推定方法、及びプログラム 図000016
  • 特許6198195-推定装置、推定方法、及びプログラム 図000017
  • 特許6198195-推定装置、推定方法、及びプログラム 図000018
  • 特許6198195-推定装置、推定方法、及びプログラム 図000019
  • 特許6198195-推定装置、推定方法、及びプログラム 図000020
  • 特許6198195-推定装置、推定方法、及びプログラム 図000021
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6198195
(24)【登録日】2017年9月1日
(45)【発行日】2017年9月20日
(54)【発明の名称】推定装置、推定方法、及びプログラム
(51)【国際特許分類】
   H04L 12/70 20130101AFI20170911BHJP
【FI】
   H04L12/70 100A
【請求項の数】7
【全頁数】21
(21)【出願番号】特願2015-28744(P2015-28744)
(22)【出願日】2015年2月17日
(65)【公開番号】特開2016-152501(P2016-152501A)
(43)【公開日】2016年8月22日
【審査請求日】2016年11月1日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】899000068
【氏名又は名称】学校法人早稲田大学
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100124844
【弁理士】
【氏名又は名称】石原 隆治
(72)【発明者】
【氏名】下田 晃弘
(72)【発明者】
【氏名】石橋 圭介
(72)【発明者】
【氏名】佐藤 一道
(72)【発明者】
【氏名】井上 武
(72)【発明者】
【氏名】森 達哉
(72)【発明者】
【氏名】後藤 滋樹
【審査官】 宮島 郁美
(56)【参考文献】
【文献】 特開2013-157931(JP,A)
【文献】 特開2006-129533(JP,A)
【文献】 特開2006-13876(JP,A)
【文献】 特開2005-348416(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00−12/26,12/50−12/955
(57)【特許請求の範囲】
【請求項1】
ネットワークにおいて観測されるDNS応答に基づいて、ドメイン名ごとのDNS要求の数を計測する第一の計測部と、
ネットワークにおいて観測されるフローについて、IPアドレスが共通する単位ごとに、フロー数及びデータ量の合計を計測する第二の計測部と、
前記DNS応答に含まれるドメイン名又はIPアドレスをノードとし、前記ドメイン名及び前記IPアドレスの間の対応関係を枝とするグラフを生成する生成部と、
前記グラフのノードを構成する各IPアドレスに関して前記第二の計測部によって計測されたデータ量と、前記グラフの中間ノードを除くノードを構成するドメイン名に関して前記第一の計測部によって計測されたDNS要求の数との関係を示す変換行列を推定する行列推定部と、
前記ドメイン名ごとの要求数に前記各ドメイン名のフローごとのデータ量を乗じた値が、前記変換行列に前記IPアドレスごとのデータ量を乗じた値に等しいとする関係に基づいて、前記各ドメイン名のフローごとのデータ量を求め、当該データ量に、ドメイン名ごとのDNS要求の数を乗じて、ドメイン名ごとのデータ量の推定値を算出する算出部と、
を有することを特徴とする推定装置。
【請求項2】
前記行列推定部は、前記グラフを隣接行列に変換し、前記隣接行列を前記グラフの最大ホップ長の数だけ掛け合わせて得られる行列のうち、前記グラフの中間ノードを除くドメイン名のノードとIPアドレスのノードとの組み合わせに対応する成分を前記変換行列の初期値として抽出し、抽出された初期値と、前記グラフのノードを構成する各IPアドレスに関して前記第二の計測部によって計測されたデータ量と、前記グラフの中間ノードを除くノードを構成するドメイン名に関して前記第一の計測部によって計測されたDNS要求の数とに基づいて、前記変換行列を推定し、
前記隣接行列は、入次数が0であるノードの対角成分の値を1とし、入次数が1以上であるノードに入る枝に対応する成分の値を、当該枝の数で1を除すことにより得られる値とする、
ことを特徴とする請求項1記載の推定装置。
【請求項3】
前記生成部は、前記DNS応答に含まれるドメイン名又はIPアドレスをノードとし、前記ドメイン名及び前記IPアドレスの間の対応関係を枝とする1以上の連結グラフを生成し、
前記行列推定部は、前記連結グラフごとに、前記変換行列を推定し、
前記算出部は、前記連結グラフごとに、当該連結グラフの中間ノードを除くノードを構成するドメイン名ごとの推定値を算出する、
ことを特徴とする請求項1又は2記載の推定装置。
【請求項4】
ネットワークにおいて観測されるDNS応答に基づいて、ドメイン名ごとのDNS要求の数を計測する第一の計測部と、
ネットワークにおいて観測されるフローについて、IPアドレスが共通する単位ごとに、フロー数及びデータ量の合計を計測する第二の計測部と、
前記ドメイン名ごとの要求数に前記各ドメイン名のフローごとのデータ量を乗じた値が、前記IPアドレスごとのデータ量に等しいとする関係に基づいて、前記各ドメイン名のフローごとのデータ量を求め、当該データ量に、ドメイン名ごとのDNS要求の数を乗じて、ドメイン名ごとのデータ量の推定値を算出する算出部と、
を有することを特徴とする推定装置。
【請求項5】
コンピュータが、
ネットワークにおいて観測されるDNS応答に基づいて、ドメイン名ごとのDNS要求の数を計測する第一の計測手順と、
ネットワークにおいて観測されるフローについて、IPアドレスが共通する単位ごとに、フロー数及びデータ量の合計を計測する第二の計測手順と、
前記DNS応答に含まれるドメイン名又はIPアドレスをノードとし、前記ドメイン名及び前記IPアドレスの間の対応関係を枝とするグラフを生成する生成手順と、
前記グラフのノードを構成する各IPアドレスに関して前記第二の計測手順によって計測されたデータ量と、前記グラフの中間ノードを除くノードを構成するドメイン名に関して前記第一の計測手順によって計測されたDNS要求の数との関係を示す変換行列を推定する行列推定手順と、
前記ドメイン名ごとの要求数に前記各ドメイン名のフローごとのデータ量を乗じた値が、前記変換行列に前記IPアドレスごとのデータ量を乗じた値に等しいとする関係に基づいて、前記各ドメイン名のフローごとのデータ量を求め、当該データ量に、ドメイン名ごとのDNS要求の数を乗じて、ドメイン名ごとのデータ量の推定値を算出する算出手順と、
を実行することを特徴とする推定方法。
【請求項6】
コンピュータが、
ネットワークにおいて観測されるDNS応答に基づいて、ドメイン名ごとのDNS要求の数を計測する第一の計測手順と、
ネットワークにおいて観測されるフローについて、IPアドレスが共通する単位ごとに、フロー数及びデータ量の合計を計測する第二の計測手順と、
前記ドメイン名ごとの要求数に前記各ドメイン名のフローごとのデータ量を乗じた値が、前記IPアドレスごとのデータ量に等しいとする関係に基づいて、前記各ドメイン名のフローごとのデータ量を求め、当該データ量に、ドメイン名ごとのDNS要求の数を乗じて、ドメイン名ごとのデータ量の推定値を算出する算出手順と、
を実行することを特徴とする推定方法。
【請求項7】
請求項1乃至4いずれか一項記載の各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、推定装置、推定方法、及びプログラムに関する。
【背景技術】
【0002】
近年、動画配信サービスをはじめとする、多数のユーザを抱えるインターネット上のサービスにおいて、コンテンツの配信元サーバを地理的、又はネットワーク的に分散させることで、トラヒックの分散、サーバ負荷の分散、あるいは遅延時間の低減を図る仕組みが導入されている。特に、CDN(Contents Delivery Network)は、配信元サーバを分散させることに特化したサービスであり、現在、多くのインターネット・サービスが、CDNを利用してコンテンツの配信を行っている。
【0003】
一方で、CDNでは配信元サーバの各IPアドレスが複数のサービスで共用される場合がある。この運用形態により、CDN経由のトラヒックの統計情報を知りたい場合において、フロー情報に含まれるIPアドレスの情報では、そのIPアドレスに紐付く配信元サービスを一意に特定することが困難である。
【0004】
上記の課題を解決する方法の一つとして、DPI(Deep Packet Inspection)が存在する。DPIはパケットのペイロード領域(OSI(Open Systems Interconnection)参照モデルではレイヤ5から7に該当する領域)をも含めたパケット分析方式全般を指す。DPIを用いて、パケットのペイロード領域に含まれるサービス名や識別子を抽出することにより、そのパケットのサービス名の特定が可能である。例えば、HTTP(HyperText Transfer Protocol)パケットの場合は、HTTPリクエスト・パケットのHTTPヘッダに含まれる「HOSTフィールド」を参照することで、そのパケットのサービス名を特定できる。
【0005】
しかしながら、パケットのペイロード領域にサービスを特定する情報が含まれていない場合には、DPIを適用してサービス名を特定するのは困難である。また、パケットが暗号化されておりペイロード領域を参照できない場合においても、DPIの適用は困難である。更に、DPIでは、全てのパケットについて、ペイロード領域も含めてキャプチャを行い、なおかつ平行して分析を行うため、測定装置のコストと負荷が高く、大容量トラヒックへの適用は現実的には困難である。
【0006】
一方、DPIを用いずに、かつ、暗号化通信にも適用できる方式として、DNS(Domain Name System)ログとフロー情報とを突合してフローのサービスを識別する方式が提案されている(例えば、非引用文献4参照)。非引用文献4では、DNSログとフロー情報とが同一地点で収集される。その上で、あるユーザが送受信したフローと、該フローの直近に該ユーザが送受信したDNSパケットの問い合わせドメイン名とを紐付けることで、該フローのドメイン名(すなわち、サービスの識別名)が推定される。この方式はフロー情報とDNSログとを同一地点で収集するという条件において、HTTP通信では75%から97%の推定精度、暗号化通信(TLS(Transport Layer Security))では74%から96%の推定精度を示している。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Domain Names:Implementation and Specification,https://www.ietf.org/rfc/rfc1035.txt
【非特許文献2】Cisco Systems NetFlow Services Export Version9,http://www.ietf.org/rfc/rfc3954.txt
【非特許文献3】InMon Corporation's sFlow:A Method for Monitoring Traffic in Switched and Routed Networks,https://www.ietf.org/rfc/rfc3176.txt
【非特許文献4】Bermudez,Ignacio N.,et al,"DNS to the rescue: discerning content and services in a tangled web",In:Proceedings of the 2012 ACM conference on Internet measurement conference,ACM,2012,p.413-426,2012.
【非特許文献5】P.-A.Absil,et all,(2007),Optimization Algorithms on Matrix Manifolds,pp.10-14,ISBN 978-0-691-13298-3.
【非特許文献6】Russell,Stuart J.,Norvig Peter,(2003),Artificial Intelligence:A Modern Approach (3rd ed.),Upper Saddle River,New Jersey:Prentice Hall,pp.122-125,ISBN 978-0-13-604259-4.
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、フロー情報とDNSログとが異なる場所で収集される環境においては、フローと直近のDNSパケットの突合は困難である。したがって、引用文献4に記載された方式では、斯かる環境において収集されたフロー情報とDNSログとに基づいて、サービス名単位(例えば、ドメイン名単位)のトラヒック量を推定するのは困難である。
【0009】
本発明は、上記の点に鑑みてなされたものであって、ドメイン名ごとのトラヒック量の推定のための情報収集に関する制約を緩和することを目的とする。
【課題を解決するための手段】
【0010】
そこで上記課題を解決するため、推定装置は、ネットワークにおいて観測されるDNS応答に基づいて、ドメイン名ごとのDNS要求の数を計測する第一の計測部と、ネットワークにおいて観測されるフローについて、IPアドレスが共通する単位ごとに、フロー数及びデータ量の合計を計測する第二の計測部と、前記DNS応答に含まれるドメイン名又はIPアドレスをノードとし、前記ドメイン名及び前記IPアドレスの間の対応関係を枝とするグラフを生成する生成部と、前記グラフのノードを構成する各IPアドレスに関して前記第二の計測部によって計測されたデータ量と、前記グラフの中間ノードを除くノードを構成するドメイン名に関して前記第一の計測部によって計測されたDNS要求の数との関係を示す変換行列を推定する行列推定部と、前記ドメイン名ごとの要求数に前記各ドメイン名のフローごとのデータ量を乗じた値が、前記変換行列に前記IPアドレスごとのデータ量を乗じた値に等しいとする関係に基づいて、前記各ドメイン名のフローごとのデータ量を求め、当該データ量に、ドメイン名ごとのDNS要求の数を乗じて、ドメイン名ごとのデータ量の推定値を算出する算出部と、を有する。
【発明の効果】
【0011】
ドメイン名ごとのトラヒック量の推定のための情報収集に関する制約を緩和することができる。
【図面の簡単な説明】
【0012】
図1】第一の実施の形態における推定装置のハードウェア構成例を示す図である。
図2】第一の実施の形態における推定装置の機能構成例を示す図である。
図3】グラフ生成部が実行する処理手順の一例を説明するためのフローチャートである。
図4】DNSログ記憶部の構成例を示す図である。
図5】フロー情報記憶部の構成例を示す図である。
図6】DNS応答テーブルに基づく有向グラフの一例を示す図である。
図7】連結グラフの抽出を説明するための図である。
図8】連結グラフの各ノードへの属性情報の付与を説明するための図である。
図9】トラヒック量推定部が実行する処理手順の一例を説明するためのフローチャートである。
図10】連結グラフの各ノードへの番号の割り振りを説明するための図である。
図11】連結グラフに基づく隣接行列の一例を示す図である。
図12】フロー変換行列の初期値の抽出例を示す図である。
図13】ドメイン名ごとのトラヒック量の推定結果の出力例を示す図である。
図14】第三の実施の形態における推定装置の機能構成例を示す図である。
【発明を実施するための形態】
【0013】
以下、図面に基づいて本発明の実施の形態を説明する。図1は、第一の実施の形態における推定装置のハードウェア構成例を示す図である。図1の推定装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
【0014】
推定装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【0015】
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って推定装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
【0016】
図2は、第一の実施の形態における推定装置の機能構成例を示す図である。図2において、推定装置10は、DNS応答収集部11、DNS応答統計処理部12、フロー情報収集部13、フロー情報統計処理部14、グラフ生成部15、トラヒック量推定部16、及び推定値変換部17等を有する。これら各部は、推定装置10にインストールされる1以上のプログラムが、CPU104に実行させる処理により実現される。推定装置10は、また、DNSログ記憶部121、フロー情報記憶部122、及びグラフ情報記憶部123を利用する。DNSログ記憶部121、フロー情報記憶部122、及びグラフ情報記憶部123は、例えば、図1の補助記憶装置102、又は推定装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【0017】
DNS応答収集部11は、ネットワーク上において観測されるDNS(Domain Name System)応答パケットを収集する。DNS応答パケットの収集方法は、特定のものに限定されない。例えば、DNSキャッシュサーバ又はネットワーク中継装置(例えば、ルータ、スイッチ)より、パケットキャプチャによってDNS応答パケットが収集されてもよい。
【0018】
DNS応答統計処理部12は、一定期間において収集されたDNS応答パケットについて統計処理を実行する。統計処理の結果は、DNSログ記憶部121に記憶される。
【0019】
フロー情報収集部13は、ネットワーク上において観測される任意のフロー(例えば、クライアントとサーバとの間のフロー)に関する情報(以下、「フロー情報」という。)をネットワークを介してフロー情報を収集する。サーバとは、例えば、Webサーバやコンテンツを配信するサーバ等である。フローとは、一つの意味の有るメッセージ(例えば、要求又は応答等)を構成するパケットの集合をいう。したがって、一つのフローを構成するパケットの宛先、送信元のIPアドレス、及びポート番号は共通する。フロー情報は、例えば、ルータに搭載されたフロー情報収集機能を用いて収集されてもよい。又は、フロー情報収集部13がパケットをキャプチャして、フロー情報を生成してもよい。フロー情報の通信プロトコルとしてNetFlow(非特許文献2参照)やsFlow(非特許文献3参照)が挙げられるが、「送信元IPアドレス」、「宛先IPアドレス」、「フロー数」、「バイト数」の情報が取得可能であれば、フロー情報の収集方法やプロトコルは特定のものに限定されない。なお、本実施の形態では、フローが通信の最小単位として扱われるが、パケットが通信の最小単位として扱われてもよい。すなわち、以下の説明におけるフローは、パケットに置き換えられてもよい。
【0020】
フロー統計処理部は、一定期間において収集されたフロー情報について統計処理を実行する。統計処理の結果は、DNSログ記憶部121に記憶される。
【0021】
以上から明らかなように、本実施の形態における推定装置10は、DNS応答パケットとフロー情報との両方を収集可能なネットワークであれば、どのようなネットワークに接続されていてもよい。斯かるネットワークの一例として、ISP(Internet Service Provider)のバックボーン・ネットワーク、企業内ネットワーク、大学ネットワーク、データセンタ・ネットワーク等が挙げられる。
【0022】
グラフ生成部15は、グラフ変換部151、連結グラフ抽出部152、及び属性情報付与部153等を含む。グラフ変換部151は、DNSログ記憶部121に記憶されている情報を、有向グラフに変換する。より詳しくは、グラフ変換部151は、DNS応答パケットに含まれているドメイン名(別名をも含む。)又はIPアドレスをノードとし、当該ドメイン名とIPアドレス、又は当該ドメイン名同士の対応関係を枝とする有向グラフを生成する。
【0023】
連結グラフ抽出部152は、グラフ変換部151によって生成された有向グラフから、連結グラフを抽出する。すなわち、連結グラフ抽出部152は、グラフ変換部151によって生成された有向グラフを、1以上の連結グラフの単位に分解する。連結グラフとは、有向グラフの枝を辿ることで到達可能な各ノードと、当該各ノード間を接続する枝との集合である。有向グラフの分割アルゴリズムはグラフ理論の一般的な方式が適用可能である。
【0024】
属性情報付与部153は、各連結グラフの各ノードに属性情報を付与する。各ノードは、ドメイン名又はIPアドレスである。したがって、各ノードには、当該ノードのドメイン名又はIPアドレスに関して、DNSログ記憶部121又はフロー情報記憶部122に記憶されている情報が属性情報として付与される。
【0025】
なお、グラフ生成部15によって生成された有向グラフ(各連結グラフ)を示す情報は、グラフ情報記憶部123に記憶される。
【0026】
トラヒック量推定部16は、グラフ情報記憶部123に記憶されている情報が示す有向グラフに基づいて、サービスごとのトラヒック量を推定する。一般的に、ドメイン名によって各サービスを識別することができる。すなわち、サービスごとにドメイン名は異なる。但し、別名によってサービスを識別するのは困難である。一つのサービスに対して複数の別名が設定される可能性が有るからである。したがって、本実施の形態では、別名を除くドメイン名ごとに、トラヒック量が推定される。図2において、トラヒック量推定部16は、フロー数分配推定部161及びトラヒック量算出部162を含む。これら各部の機能の詳細については後述される。
【0027】
推定値変換部17は、トラヒック量推定部16で推定されたドメイン名ごとのトラヒック量の内部表現を、人間が確認可能なテキスト等の表現形式に変換する。例えば、推定値変換部17は、変換後の表現形式によって、ドメイン名ごとのトラヒック量を可視化する。
【0028】
以下、推定装置10が実行する処理手順について説明する。図3は、グラフ生成部が実行する処理手順の一例を説明するためのフローチャートである。図3の開始時において、ログ情報記憶部には、期間t11において収集されたDNS応答パケットに関してDNS応答統計処理部12によって計測された統計情報が記憶されており、フロー情報記憶部122には、期間t12において収集されたフロー情報に関してフロー情報統計処理部14によって計測された統計情報が記憶されている。ここで、期間t11と期間t12とは、同じであってもよいし、異なっていてもよい。期間t12と期間t12とが同じであるとは、それぞれの期間の開始時期及び終了時期が一致することをいう。期間t11と期間t12とが異なるとは、それぞれの期間の開始時期及び終了時期の少なくともいずれか一方が異なることをいう。
【0029】
ステップS101において、グラフ変換部151は、DNSログ記憶部121に記憶されている情報(以下、「DNSログ」という。)を読み出す。
【0030】
図4は、DNSログ記憶部の構成例を示す図である。図4に示されるように、DNSログ記憶部121には、DNS要求テーブルT1と、DNS応答テーブルT2とが記憶されている。
【0031】
DNS要求テーブルT1には、DNS応答のQuestionセクションに記述された情報(すなわち、DNS要求に関する情報)が記憶されている。具体的には、DNS要求テーブルT1には、観測されたドメイン名及びクエリタイプの組み合わせの単位ごとに、要求数及びユーザ数が記憶されている。
【0032】
ドメイン名(厳密にはFQDN(Fully Qualified Domain Name)であり、以下のドメイン名についても同じ。)は、DNS要求において問い合わせの対象とされたドメイン名(すなわち、名前解決の対象のドメイン名)である。クエリタイプは、当該DNS要求において問い合わせの対象とされたレコードである。「A」は、Aレコードを示す。図4には示されていないが、AAAAレコードが問い合わせの対象とされた場合のクエリタイプは、「AAAA」となる。要求数は、「ドメイン名」及び「クエリタイプ」に対応するQuestionセクションを含むDNS応答の数である。なお、1つのDNS応答は、複数のDNS応答パケットによって構成される場合も有るため、ここでは、DNS応答の数としている。ユーザ数は、「ドメイン名」及び「クエリタイプ」に対応するQuestionセクションを含むDNS応答に係るDNS応答パケットの宛先IPアドレスの種類数である。すなわち、ユーザ数は、DNS要求元の種類数である。「ドメイン名」及び「クエリタイプ」ごとの要求数及びユーザ数は、DNS応答統計処理部12によって計測される。なお、図4において、要求数及びユーザ数の値は、便宜上、記号によって示されているが、実際には数値である。
【0033】
一方、DNS応答テーブルT2には、DNS応答のAnswerセクションに記述されたAレコード、AAAAレコード、又はCNAMEレコード等に関する情報が記憶されている。具体的には、DNS応答テーブルT2には、観測されたドメイン名、レコードタイプ、及びレコードデータの組み合わせの単位ごとに、TTL(Time To Live)が記憶されている。
【0034】
ドメイン名は、名前解決の対象とされたドメイン名である。レコードタイプは、DNS応答に含まれているレコードのタイプである。レコードデータは、DNS応答に含まれているレコードの値(すなわち、ドメイン名に対して対応付けられている値)である。当該レコードがAレコード又はAAAAレコードである場合(すなわち、レコードタイプが「A」又は「AAAA」である場合)、レコードデータの値はIPアドレス(IPv4のIPアドレス又はIPv6のIPアドレス)である。当該レコードがCNAMEレコードである場合(すなわち、レコードタイプが「CNAME」である場合)、レコードデータの値は、別名である。TTLは、ドメイン名のキャッシュの有効期限の最大値の推定値である。有効期限の最大値とは、「DNS権威サーバ」のゾーンファイルの設定ファイルにおいて定義されている値であり、ネットワーク管理者等によって設定される。観測されるDNS応答パケット内の各レコードのTTLは、当該DNS応答パケットの観測時点での残り秒数であるため、必ずしも最大値ではない。そこで、DNS応答統計処理部12は、期間t11において観測されたDNS応答パケットに含まれているAレコード又はCNAMEレコードのうち、ドメイン名、レコードタイプ、及びレコードデータが重複するレコードごとに、観測されたTTLの中で最大の値を計測し、計測結果を、当該レコードのTTLの最大値として推定する。
【0035】
続いて、グラフ変換部151は、フロー情報記憶部122に記憶されているフロー情報の統計情報(以下、「フロー情報ログ」という。)を読み出す(ステップS102)。
【0036】
図5は、フロー情報記憶部の構成例を示す図である。図5に示されるように、フロー情報記憶部122には、観測されたフローのIPアドレスごとに(すなわち、観測されたフローについてIPアドレスが共通する単位ごとに)、フロー数、ユーザ数、バイト数が記憶されている。
【0037】
IPアドレスは、サーバ側のIPアドレスである。サーバ側のIPアドレスは、観測されたフローの送信元IPアドレス又は宛先IPアドレスである。推定装置10がISP等によって運用される場合、各クライアントのIPアドレスは、ISPによって割り当てられる。換言すれば、推定装置10は、クライアントのIPアドレスの一覧を保持することができる。フロー情報統計処理部14は、斯かる一覧に基づいて、送信元IPアドレス又及び宛先IPアドレスのいずれがサーバのIPアドレスであるのかを特定してもよい。
【0038】
フロー数は、「IPアドレス」に係るフローの数である。ユーザ数は、「IPアドレス」に係るフローのクライアント側のIPアドレスの数である。バイト数は、「IPアドレス」に係るフローのバイト数の総和(データ量)である。
【0039】
フロー数、ユーザ数、及びバイト数は、フロー情報統計処理部14によって計測される。なお、図5において、フロー数、ユーザ数、及びバイト数の値は、便宜上、記号によって示されているが、実際には数値である。
【0040】
続いて、グラフ変換部151は、DNS応答テーブルT2の内容を、有向グラフに変換する(ステップS103)。
【0041】
図6は、DNS応答テーブルに基づく有向グラフの一例を示す図である。図6のグラフg1は、図4に示したDNS応答テーブルT2に対応する。すなわち、グラフg1の各ノードは、DNS応答テーブルT2のドメイン名又はレコードデータ(IPアドレス若しくは別名)である。具体的には、ノードn1、ノードn2、及びノードn3は、ドメイン名のノードである。ノードn4及びノードn5は、IPアドレスのノードである。
【0042】
また、グラフg1は、DNS応答テーブルT2におけるドメイン名とレコードデータとの対応関係を示すと共に、ドメイン名からレコードデータへの向きを有する有向枝を含む。
【0043】
続いて、連結グラフ抽出部152は、グラフ変換部151によって生成された有向グラフを、連結グラフの単位に分解し、各連結グラフを抽出する(ステップS104)。
【0044】
図7は、連結グラフの抽出を説明するための図である。ステップS103において生成される有向グラフが、仮に、図7の左側の破線の矩形で囲まれたものである場合、図7の右側に示されるように、4つの連結グラフが抽出される。なお、本実施の形態では、グラフg1が、そのまま1つの連結グラフとして抽出される。
【0045】
続いて、属性情報付与部153は、各連結グラフの各ノードに対して属性情報を付与する(ステップS105)。
【0046】
図8は、連結グラフの各ノードへの属性情報の付与を説明するための図である。図8に示されるように、ドメイン名の各ノードに対しては、DNS要求テーブルT1において当該ノードに対応するレコードの要求数及びユーザ数と、DNS応答テーブルT2において当該ノードに対応するTTLとが付与される。図8では、「<要求数>/<ユーザ数>/<TTL>」の形式で、付与された属性情報が示されている。
【0047】
一方、IPアドレスの各ノードに対しては、フロー情報記憶部122において当該ノードに対応するレコードのフロー数、ユーザ数、及びバイト数が付与される。図8では、「<フロー数>/<ユーザ数>/<バイト数>」の形式で、付与された属性情報が示されている。
【0048】
なお、期間t11と期間t12との時間が相互に異なる場合、又は各期間の時間幅が相互に異なる場合、各IPアドレスのノード(ノードn4及びノードn5)に付与されたフロー数の合計と、中間ノードを除くドメイン名のノード(ノードn1及びノードn2)に付与された要求数の合計とが一致しなくなる可能性が有る。この場合、後述されるフロー数分配推定部161によって推定されるフロー変換行列Hの推定精度が劣化する可能性が有る。そこで、属性情報付与部153は、連結グラフごとに、中間ノードを除く各ドメイン名のノードの要求数の合計が1となるように、当該各ノードの要求数を正規化すると共に、IPアドレスの各ノードのフロー数の合計が1となるように、IPアドレスの各ノードのフロー数を正規化するようにしてもよい。
【0049】
なお、グラフ生成部15によって生成された各連結グラフを示す情報(以下、「グラフ情報」という。)は、グラフ情報記憶部123に記憶される。グラフ情報の生成周期は、DNS応答統計処理部12によるDNS応答パケットの統計処理の周期以上であり、かつ、フロー情報統計処理部14によるフロー情報の統計処理の周期以上であれば、どのような周期であってもよい。グラフ情報の生成時期(以下、「グラフ生成時期」という。)が訪れた時点において、DNSログ記憶部121に最後に記憶されたDNSログ(DNS要求テーブルT1及びDNS応答テーブルT2)と、フロー情報記憶部122に最後に記憶されたフロー情報ログとが用いられて、グラフ情報が生成されてもよい。
【0050】
各グラフ生成時期に生成されたグラフ情報は、当該グラフ生成時期に対応付けられてグラフ情報記憶部123に記憶される。例えば、期間t11と期間t12とに対応するグラフ生成時期をグラフ生成時期t1とすると、期間t11におけるDNSログと期間t12におけるフロー情報ログとに基づいて生成されたグラフ情報は、グラフ生成時期t1に対応付けられてグラフ情報記憶部123に記憶される。また、期間t11よりの後の一定期間である期間t12においてDNSログ記憶部121に記憶されたDNSログと、期間t21よりの後の一定期間である期間t22においてフロー情報記憶部122に記憶されたフロー情報ログとに基づいて生成される各連結グラフを示すグラフ情報は、期間t21及び期間t22とに対応するグラフ生成時期t2に対応付けられてグラフ情報記憶部123に記憶される。
【0051】
続いて、トラヒック量推定部16が実行する処理手順について説明する。図9は、トラヒック量推定部が実行する処理手順の一例を説明するためのフローチャートである。なお、図9は、各連結グラフについて実行されるが、本実施の形態では、図6のグラフg1が処理対象とされる。また、図9の処理の実行のタイミングは、図3の処理の実行タイミングと非同期であってもよい。
【0052】
ステップS201において、フロー数分配推定部161は、変数tに1を代入する。変数tは、処理対象とするグラフ生成時期と、ステップS202以降の実行回数とを識別するための変数である。
【0053】
続いて、フロー数分配推定部161は、グラフ情報記憶部123から、t番目のグラフ生成時期に対応するグラフ情報を取得する(ステップS202)。ここでは、グラフ生成時期t1における、図8のグラフg1を示すグラフ情報が取得される。続くステップS203〜ステップS207において、フロー数分配推定部161は、グラフg1の形状的特徴と、グラフg1の各ノードに付与された属性情報(すなわち、DNSログ及びフロー情報ログ)とに基づき、ドメイン名ごとの要求数とIPアドレスごとのフロー数との関係を示すフロー変換行列Hを推定する。本実施の形態では、グラフg1において、中間ノードを除くドメイン名のノード(すなわち、別名ではないノード)であるノードn1とノードn2とのそれぞれのトラヒック量を求めるためにそれぞれのフロー数を知りたいところ、フロー変換行列Hは、ノードn4とノードn5とにおいて既知であるフロー数が、ノードn1とノードn2とに対してどのように分配されるべきであるのかを推定するための行列である。なお、中間ノードを除くドメイン名のノードが1つである連結グラフ(例えば、図7の右側の上から2番目の連結グラフ及び上から4番目の連結グラフ)の場合、中間ノードを除くドメイン名のノードのフロー数は、IPアドレスのノードのフロー数を単純に合算することで求めることが可能であるため、以降の処理は実行されなくてもよい。
【0054】
ステップS203において、フロー数分配推定部161は、グラフg1の各ノードに番号を割り振る。各ノードの番号が1つの連結グラフ内で重複しなければ、番号の割り振り方には制限が無い。
【0055】
図10は、連結グラフの各ノードへの番号の割り振りを説明するための図である。図10においては、ノードn1、n2、n3、n4、n5の順に、(1)、(2)、(3)、(4)、(5)の番号が割り振られた例が示されている。
【0056】
続いて、フロー数分配推定部161は、グラフg1を隣接行列Aに変換する(S204)。隣接行列Aの行数と列数は等しく、かつ、その行数及び列数は、ステップS203において割り振られた番号の個数(すなわち、グラフg1のノードの数)に等しい。
【0057】
図11は、連結グラフに基づく隣接行列の一例を示す図である。図11に示される隣接行列Aにおいて、行方向がソース側(有向枝が出る側)であり、列方向がシンク側(有向枝が入る側)である。隣接行列Aへの変換方法は、基本的には、一般に知られている汎用的な方法が利用されてよい。但し、本実施の形態において、隣接行列Aは、一般的な隣接行列に対して以下の(a)及び(b)に示される拡張がなされる。
(a)ノードiからノードjに有向枝が存在し,ノードjの入次数がnの場合,Aij=1/nとする。
(b)ノードiの入次数が0の場合,ノードiの対角成分であるAii=1とする。
【0058】
なお、図11において、0である成分の値は、便宜上、空欄とされている。
【0059】
例えば、A13、A23、A34、及びA35の値は、上記(a)に基づいて割り当てられた値である。すなわち、A13、A23は、それぞれ、ノードn1からノードn3への有向枝、ノードn2からノードn3への有向枝に対応するが、ノードn3の入次数(ノードn3に入ってくる有向枝の数)は、2である。したがって、A13及びA23の値は、1/2=0.5となる。また、A34、A35は、それぞれ、ノードn3からノードn4への有向枝、ノードn3からノードn4への有向枝に対応するが、ノードn4及びノードn5のいずれについても入次数は1である。したがって、A13及びA23の値は、1/1=1となる。
【0060】
一方、A11及びA22の値は、上記(b)に基づいて割り当てられた値である。すなわち、ノードn1及びノードn2のいずれについても、入次数は0である。したがって、A11及びA22の値は1とされている。
【0061】
続いて、フロー数分配推定部161は、グラフg1の最大ホップ長の数だけ隣接行列Aを掛け合わせて、行列A'を求める(ステップS205)。すなわち、フロー数分配推定部161は、A'=Aを演算する(nはグラフg1の最大ホップ長)。なお、隣接行列Aをn乗ずる意義は、一般的なグラフ理論に詳しい。
【0062】
続いて、フロー数分配推定部161は、行列A'から、グラフg1における中間ノードを除くドメイン名のノードに対応する行と、IPアドレスのノードに対応する列との組み合わせに対応する成分を抽出する(SステップS206)。抽出された成分が構成する行列は、フロー変換行列Hの初期値Hinitとされる。
【0063】
図12は、フロー変換行列の初期値の抽出例を示す図である。図12では、行列A'における、(1)行及び(2)行と、(4)列及び(5)列との重複部分の成分が、初期値Hinitとして抽出される例が示されている。
【0064】
続いて、フロー数分配推定部161は、初期値Hinitと、グラフg1(図8)において初期値Hinitの各行に対応するドメイン名のノードに付与されている要求数と、グラフg1において初期値Hinitの各列に対応するIPアドレスに対応するノードに付与されているフロー数とに基づいて、フロー変換行列Hを推定する(ステップS207)。フロー変換行列Hは、当該要求数及び当該フロー数に含まれるノイズ等により一意に定まるものではないため、本実施の形態では、最適化問題を解くことにより、フロー変換行列Hの局所解が推定される。例えば、以下の式(1)は、最適化問題を解く場合の定式化の一例である。
【0065】
【数1】
ここで、||…||Fは、フロベニウス・ノルムを表す。
また、αは、初期状態(初期値Hinit)の重視度を決めるパラメータである。すなわち、フロー変換行列Hについて、初期値Hinitにできるだけ近い解を得たい場合に、αの値は大きくされる。
【0066】
更に、ベクトルXは、グラフg1において初期値Hinitの各列に対応するIPアドノード(ノードn4、ノードn5)に付与されているフロー数(F4、F5)である。ベクトルYは、グラフg1において初期値Hinitの各行に対応するドメイン名のノード(ノードn1、ノードn2)に付与されている要求数(Q1、Q2)である。
【0067】
すなわち、フロー変換行列Hは、IPアドレスごとのフロー数を、ドメイン名ごとのフロー数に変換するための行列である。
【0068】
なお、最適化問題を解く場合、フロー変換行列Hの初期値は、任意の値であってもよい。例えば、全ての成分の値が0である行列が初期値とされてもよい。この場合、ステップS203〜S206は実行されなくてもよい。但し、本実施の形態のように、初期値Hinitを求めることで、フロー変換行列Hについて、グラフg1の状態(すなわち、DNS応答パケットやフロー情報の観測状態)に即した解が得られる可能性を高めることができる。その結果、ドメイン名ごとのトラヒック量の推定精度の向上を期待することができる。
【0069】
なお、式(1)は、最適化問題として解く場合の定式化の一例であり、式(1)からフロー変換行列Hに関する更新式を導出することで局所解を求めることができる。他の例として、ヒルクライム法等の最適化問題を解く方式が適用されてもよい(例えば、非特許文献6参照)。
【0070】
続いて、フロー数分配推定部161は、変数tの値が、グラフg1の中間ノードを除くドメイン名のノードの数に達したか否かを判定する(ステップS208)。変数t1の値が該当ノードの数に達していない場合(ステップS208でNo)、フロー数分配推定部161は、変数tに1を加算して(ステップS209)、ステップS202以降を繰り返す。すなわち、次のグラフ生成時期に関して、ステップS202以降が実行される。本実施の形態において、該当ノードの数は、ノードn1とノードn2との2つである。したがって、例えば、生成時期t2に関してステップS202以降が実行され、生成時期t2に対するフロー変換行列Hが生成される。
【0071】
このように、フロー変換行列Hは、グラフg1の中間ノードを除くドメイン名のノードの数だけ、グラフ生成時期が相互に異なるグラフ情報に基づいて生成される。例えば、本実施の形態では、グラフ生成時期t1に対するフロー変換行列H1と、グラフ生成時期t2に対するフロー変換行列H2とが生成される。この理由については後述される。
【0072】
ステップS210以降では、フロー変換行列H等が用いられて、トラヒック量算出部162によって、ドメイン名ごとのトラヒック量の推定値が算出される。
【0073】
ステップS210において、トラヒック量算出部162は、値が未知であるデータ(すなわち、値が推定されるべきデータ)、及び値が既知のデータ(すなわち、グラフg1の各ノードに属性情報として付与されているデータ)のそれぞれについて変数を定義する。本実施の形態では、以下のように変数が定義される。
[既知のデータ]
Ra:各IPアドレスのフロー毎バイト数
Sa:各IPアドレスのフロー数
Ba:各IPアドレスのバイト数
Sd:各ドメイン名のフロー数
なお、各ドメイン名のフロー数Sdは、DNSログからは得られないものの、要求数で近似可能であるため、その値が代入される。
[未知のデータ]
Rd:各ドメイン名のフロー毎バイト数
Bd:各ドメイン名のバイト数
本実施の形態において、既知の各データの値は、以下の通りとなる。
Ra=(B4/F4,B5/F5)
Sa=(F4,F5)
Ba=(B4,Q5)
Sd=(Q1,Q2)
なお、グラフg1に関して、中間ノードを除くドメイン名のノードの数は2であるため、Rd及びBdの次元数は2である。
【0074】
続いて、トラヒック量算出部162は、各ドメインのフロー毎バイト数Rdを未知変数として、フロー変換行列Hを用いてトラヒック量の推定式(2)を生成する(ステップS211)。
【0075】
【数2】
Rdに含まれる未知変数の数は、各隣接行列の中間ノードを除くドメイン名の数と一致する。推定式(2)を展開することにより連立一次方程式が得られる。
【0076】
なお、連立一次方程式は、Rdの次元数分生成される。具体的には、中間ノードを除くドメイン名のノードの数だけ生成されているフロー変換行列Hのそれぞれが用いられて、連立一次方程式が生成される。したがって、本実施の形態では、グラフ生成時期t1とグラフ生成時期t2とに対する以下の2つの連立一次方程式(3)が生成される。
【0077】
【数3】
連立一次方程式(3)において、Sd1、H1、Ba1は、グラフ生成時期t1に対応するSd、フロー変換行列H、Baである。Sd2、H2、Ba2は、グラフ生成時期t2に対応するSd、フロー変換行列H、Baである。このように、フロー変換行列、Sd、及びBaは、グラフg1の中間ノードを除くドメイン名のノードの数分だけ必要となるため、ステップS202〜S207は、その数分繰り返されるのである。
【0078】
なお、ここでは、Rdが時刻に対して不変であること又は変化が小さいことが仮定されている。斯かる仮定は、一般的に妥当であるものと考えられる。フロー毎バイト数は、サービスに依存するものであり、時刻に対する依存度は小さいと考えられるからである。例えば、動画サイトと単なるテキスト情報のサイトとを比較すれば、動画サイトの方がフロー毎バイト数が大きいと考えられ、その関係は、時刻に対して不変である可能性が高いと考えられる。したがって、本実施の形態は、フロー毎バイト数について、時刻に対する依存度が低い環境に対して好適である。
【0079】
続いて、トラヒック量算出部162は、連立一次方程式(3)を解くことで、Rdを求める(ステップS212)。但し、観測されるDNS応答パケットやフロー情報のノイズの影響等によりRdは一意に定まらない場合が有る。その場合には、非特許文献6の局所解を求める方法が利用されてもよい。
【0080】
続いて、トラヒック量算出部162は、ステップS212において得られたRdに対して、Sdを乗算することにより、Bdを求める(ステップS213)。すなわち、以下の演算が実行される。
【0081】
【数4】
ここで、Bdは、目的とする、ドメイン名ごとのトラヒック量である。
【0082】
なお、ドメイン名ごとのトラヒック量の推定方法として、上記以外の方法が採用されてもよい。例えば、非特許文献5のような最適化アルゴリズム等の要素技術が用いられてもよい。
【0083】
推定値変換部17は、上記のように推定された、ドメイン名ごとのトラヒック量を、例えば、図13に示されるような形式で出力する。
【0084】
図13は、ドメイン名ごとのトラヒック量の推定結果の出力例を示す図である。図13では、グラフg1の他に、グラフg2が示されている。グラフg2は、グラフg1と共に抽出された連結グラフであるとする。この場合、非中間ノードの4つのドメイン名について、トラヒック量が得られる。推定値変換部17は、これらのトラヒック量を、例えば、テーブルT3に示される形式で可視化する。テーブルT3には、ドメイン名ごとに推定トラヒック量が示されている。なお、テーブルT3における行の配列順序は、推定トラヒック量によってソートされてもよい。すなわち、ドメイン名ごとの推定トラヒック量のランキングが出力されてもよい。出力形態は、所定のものに限定されない。例えば、表示装置に表示されてもよいし、プリンタに印刷されてもよい。又は、ネットワークを介して他のコンピュータに送信されてもよい。
【0085】
上述したように、第一の実施の形態によれば、統計化された入力データ(DNSログ及びフロー情報ログ)が、グラフ生成部15によって有向グラフに変換され、その有向グラフの特性を活かしつつ、トラヒック量推定部16によって、統計情報に基づいてドメイン名ごとのトラヒック量が推定される。これら一連の処理の中では、個々のユーザやパケット単位の紐付けは必要とされない。すなわち、本実施の形態では、各DNS応答パケットと各フロー情報とを一つずつ紐付けるのではなく、DNS応答パケットの統計情報と、フロー情報の統計情報とを関連付けることにより、ドメイン名ごとのトラヒック量が推定される。したがって、DNS応答パケット及びフロー情報のそれぞれの収集場所や収集時刻の違いによりDNSログとフロー情報のそれぞれの送信ユーザ群が異なるケースにおいても対応可能である。よって、ドメイン名ごとのトラヒック量の推定のための情報収集に関する制約を緩和することができる。
【0086】
その結果、例えば、DNS応答パケットとフロー情報とを異なる場所及び時間で収集せざるを得ない制約が有る大規模ネットワークにおいて、運用者は、サービス単位のトラヒック量を容易に把握することができ、ネットワーク監視・運用コストの削減、回線輻輳時の原因の切り分けの迅速化、あるいはネットワークの設備投資の最適化等の応用的な効果を期待することができる。
【0087】
次に、第二の実施の形態について説明する。第二の実施の形態では第一の実施の形態と異なる点について説明する。第二の実施の形態において特に言及されない点については、第一の実施の形態と同様でもよい。
【0088】
第二の実施の形態でのトラヒック量算出部162は、は、図9のステップS211において、以下の推定式(4)を生成する。
【0089】
【数5】
すなわち、第二の実施の形態では、フロー変換行列Hは利用されない。したがって、図9のステップS201〜S208は実行されなくてもよい。また、図3の処理も実行されなくてもよい。この場合、グラフ生成時期ごとの連立一次方程式は、以下の通りとなる。
【0090】
【数6】
その他については、第一の実施の形態と同様でよい。
【0091】
第二の実施の形態は、十分な観測データ(DNS応答パケット及びフロー情報)が蓄積されている場合に適用されることが好ましい。観測データが多ければ多いほど、フロー変換行列Hが利用されなくても、ドメイン名ごとのトラヒック量の推定精度の劣化が大きくなるのを回避できると可能性が高くなるからである。
【0092】
次に、第三の実施の形態について説明する。第三の実施の形態では第一又は第二の実施の形態と異なる点について説明する。第三の実施の形態において特に言及されない点については、第一又は第二の実施の形態と同様でもよい。
【0093】
図14は、第三の実施の形態における推定装置の機能構成例を示す図である。図14中、図2と同一部分には同一符号を付し、その説明は省略する。図14において、推定装置10は、更に、要求数補正部18及びフロー情報補正部19を有する。
【0094】
要求数補正部18は、DNSログに含まれる要求数とTTLとを用いて、クライアントによるサーバへのアクセス数又はフロー数を推定し、推定結果によって、DNSログ内の要求数を置き換える。すなわち、DNSログに含まれる要求数は、クライアントによるサーバへのアクセス数又はフロー数とは異なる。通常、ユーザがWebページを閲覧するなどして、あるURL(Uniform Resource Locator)にアクセスする際には、当該URLに含まれるドメイン名に対して名前解決が試みられる。但し、一般にユーザの端末にはDNS応答をキャッシュする仕組み(スタブリゾルバ)が存在するため、クライアントによるWebページへのアクセス数に対して、観測されるDNS応答パケットは大幅に少なくなる。
【0095】
そこで、要求数補正部18は、TTLと要求数とを用いて、実際のサーバへのアクセス数を推定する。例えば、TTLによって特定される期間において行われた名前解決の回数を推定し、推定結果を当初の要求数に加算することで、当該要求数が補正されてもよい。
【0096】
したがって、第三の実施の形態において、図4に示されるDNS要求テーブルT1の要求数は、補正後の値となる。
【0097】
一方、フロー情報補正部19は、フロー情報ログのフロー数、ユーザ数、及びバイト数を補正する。すなわち、ルータ等の一般的なネットワーク機器では、性能上の理由により定常的にサンプリングを行いながらフロー情報が収集される。例えば、1000パケットごとに1パケットに関するフロー情報が収集される。このようにサンプリングされたフロー情報に基づくフロー数、ユーザ数、及びバイト数は、実際の値よりも小さいものとなる。
【0098】
そこで、フロー情報補正部19は、サンプリング前のフロー数、ユーザ数、及びバイト数を推定し、推定結果によって、フロー情報ログの内容を補正する。例えば、サンプリングの割合に基づいて補正が行われてもよい。サンプリングの割合が1/1000であれば、フロー数、ユーザ数、及びバイト数の値を1000倍することにより、補正が行われてもよい。又は他の方法によって補正が行われてもよい。
【0099】
したがって、第三の実施の形態において、図4に示されるDNS応答テーブルT2の要求数は、補正後の値となる。
【0100】
上述したように、第三の実施の形態によれば、DNSログの要求数やフロー情報ログの値を実際の値に近づけることができるため、ドメイン名ごとのトラヒック量の推定精度の向上を期待することができる。
【0101】
なお、上記各実施の形態において、DNS応答統計処理部12は、第一の計測部の一例である。フロー情報統計処理部14は、第二の計測部の一例である。グラフ生成部15は、生成部の一例である。フロー数分配推定部161は、行列推定部の一例である。トラヒック量算出部162は、算出部の一例である。
【0102】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0103】
10 推定装置
11 DNS応答収集部
12 DNS応答統計処理部
13 フロー情報収集部
14 フロー情報統計処理部
15 グラフ生成部
16 トラヒック量推定部
17 推定値変換部
18 要求数補正部
19 フロー情報補正部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
121 DNSログ記憶部
122 フロー情報記憶部
123 グラフ情報記憶部
151 グラフ変換部
152 連結グラフ抽出部
153 属性情報付与部
161 フロー数分配推定部
162 トラヒック量算出部
B バス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14