• 検索結果がありません。

インターネット計測とデータ解析第 2 回 前回のおさらい

N/A
N/A
Protected

Academic year: 2021

シェア "インターネット計測とデータ解析第 2 回 前回のおさらい"

Copied!
41
0
0

読み込み中.... (全文を見る)

全文

(1)

インターネット計測とデータ解析 第 2 回

長 健二朗

2011 年 5 月 18 日

(2)

前回のおさらい

本授業のテーマ

I いろいろな切口からインターネットの実態を考える

I

容易に計測できないものをどう計るか

I

大量データからいかに情報を抽出する

第 1 回 イントロダクション

I ネットワーク計測とインターネット計測

I ネットワーク管理ツール

I 計測ツール

I 演習 :ruby 入門

(3)

今日のテーマ

インターネットのサイズを計る

I ユーザ数、ホスト数

I ウェブページ数

I 精度 誤差 有効数字

I グラフによる可視化

I 演習 :gnuplot によるグラフ描画

3 / 41

(4)

インターネットのユーザ数 ( 日本 )

I 総務省 通信利用動向調査

I

9408 万人 人口普及率 78.0% (2009 年末)

I

無作為抽出アンケート方式

I 地域及び都市規模を層化基準とした層化二段抽出

I

世帯調査 サンプル数 6,256 世帯 有効回答数 4,547

I

ちなみに全国世帯数 5336 万 (2010/03)

I 総務省 ブロードバンド契約数

I

電気通信事業者からの報告

I

契約数 3402 万 (2010/09)

2000 2002 2004 2006 2008 2010 Year

0 10 20 30 40

Number of subscribers [million]

CATV DSL FTTH Total

出典:総務省 ブロードバンド契約数の推移

(5)

世界のインターネットユーザ数

I 世界 19.7 億人 人口比普及率 28.7% (2010/06)

出典: Internet World Stats http://www.internetworldstats.com/

5 / 41

(6)

アジアのインターネットユーザ数

I 中国が圧倒的 4.2 億人 人口比普及率 31.6% (2010/06)

出典: Internet World Stats http://www.internetworldstats.com/

(7)

インターネットに繋がっている端末数

インターネットに繋がっているという定義は?

I なんらかの形でインターネット上のデータにアクセスできる

I

web が見られる

I

電子メールが届く

I

技術的にはかるのは難しいが、

I

2010

年 世界の携帯電話契約数

: 50

I 米

IDC

社調査

2009

年 世界

PC

出荷台数 約

3

億台

I IP プロトコルで通信できる (NAT の裏側の端末を含む )

I グローバル IP アドレスを持つ ( 双方向で IP 通信可能 )

7 / 41

(8)

ホスト数をはかる

目的

I インターネットに繋がっているコンピュータ数の把握

I

NAT の普及で困難

I IP アドレス利用状況を把握する

I

IP アドレスは限られた資源

I

割り当て (回収) ポリシーへの反映

I

IPv4

アドレスの枯渇問題

方法

I DNS から網羅的に調べる

I IP アドレス空間 (2 32 ) を網羅的に調べる

I サンプリングして推測

I

アドレスブロックの利用形態の違いから容易ではない

(9)

Domain Name System(DNS) の仕組み (1/3)

JPNIC 「ドメイン名のしくみ」より

I http://www.nic.ad.jp/ja/dom/system.html

出典:JPNIC

9 / 41

(10)

Domain Name System(DNS) の仕組み (2/3)

DNS の構造

I root を頂点としたツリー構造

I 各ドメインには「ネームサーバー」がいてデータベースを分 散管理

I

配下のドメイン名と IP アドレスの関係を管理

I

下位ドメインのネームサーバーへの参照管理

ドメイン名空間 出典:JPNIC

(11)

Domain Name System(DNS) の仕組み (3/3)

DNS における名前解決の方法

I 名前解決 : ドメイン名を対応する IP アドレスに変換

I

逆引き: IP アドレスをドメイン名に変換 (逆引きツリー)

名前解決の流れ

(www.example.co.jp

の例)出典:JPNIC

11 / 41

(12)

IP アドレスの割り当て管理

I IANA RIR NIR LIR

IP

アドレス管理の階層構造 出典:JPNIC

(13)

IPv4 アドレス在庫の枯渇

I 2011/2/1 IANA の在庫が枯渇

I 2011/4/15 APNIC と JPNIC の在庫が枯渇

地域インターネットレジストリ

(RIR)

ごとの

IPv4

アドレス配分状況 出典:JPNIC 13 / 41

(14)

古典的なホスト数推計方法

The ISC Domain Survey (DNS による調査 )

I 6.8 億ホスト (2009/07)

出典: ISC domain survey http://www.isc.org/solutions/servey

(15)

The ISC Domain Survey

計測方法

I 1987-1997:DNS に登録されたホスト数をカウント (RFC1296)

I

DNS の委譲ツリーを辿って、各ゾーンからゾーンデータ転送 を試みる

I

ゾーンデータ中の「A レコード」を数える

I

ゾーンデータ転送を許可しない分を補正するため、ゾーン転 送の成功率を使う

I 1998-:DNS に登録されたユニークな IP アドレス数をカウント

I

逆引きの委譲ツリーを辿って、存在する /24 を見つける

I

見つかった /24 の全ての IP アドレス (1-254) を逆引きし

「PTR レコード」の登録があるか調べる

I

PTR レコードがあるが存在しないホストがあるため、発見し たアドレスの 1%をランダムサンプリングして ping、成功率 を補正に使う

制約

I DNS に登録されていないものはカウントされない

I DNS に登録だけされて存在しないホストの補正精度

I NAT の背後にいるホスト数はカウントできない

15 / 41

(16)

IP アドレス空間の網羅的調査

I Heidemann らの 2006/11 の計測データ

I 割り当て済みの IP アドレス全てに ping

I 調べたアドレスの 93% は応答なし (firewall, etc)

address type number % of addrs % of probed

IPv4 addresses 4,290M 100%

reserved 1,160M 27%

allocated 3,140M 73%

unprobed (mcast, etc) 342M 8%

probed 2,800M 65% 100%

replies 187M 4.4% 6.7%

positive replies 103M 3.6% 3.7%

negative replies 84M 2.0% 3.0%

non-replies 2,610M 61% 93%

J. Heidemann, Y. Pradkin, R. Govindan, C. Papadopoulos, G. Bartlett, J. Bannister.

Census and survey of the visible internet.

ACM IMC’08. pp169-182. Vouliagmeni, Greece. October 2008.

(17)

IP アドレス空間の利用状況の可視化

http://www.isi.edu/ant/address/

17 / 41

(18)

IP アドレス空間の利用状況の可視化 ( つづき )

可視化手法

I Hilbert Curve による空間表現 ( 連続空間が隣接する、再帰的 )

I 各点は /16 ブロック (64k addrs) の平均

I positive:green, negative:red, mix:yellow

Hilbert Curve

(19)

ウェブページ数をはかる

I ウェブページの定義 ? 動的ページ (calendar, etc) が増加

I crawling robot によりデータ収集可能

I

人気サイトから始めてリンクを辿る

I 大規模検索システムはある程度情報を持っている、公開はさ れていない

I netcraft: web server survey 227 million sites in 2010/09

I google: indexed 1 trillion (10 12 ) unique URLs in 2008

I

http://googleblog.blogspot.com/2008/07/

we-knew-web-was-big.html

19 / 41

(20)

正確度と精度、誤差

正確度 (accuracy): 測定値と真値とのずれ 精度 (precision): 測定値のばらつきの幅

誤差 (error): 真値からのずれ、その不確かさの範囲

f(x)

x accurate, not precise precise, not accurate

true mean

(21)

いろいろな誤差

測定誤差

I 系統誤差 ( 条件を把握できれば補正可能 )

I

器械的誤差、理論的誤差、個人的誤差

I 偶然誤差 ( ノイズ、観測を繰り返せば精度向上 ) 計算誤差

I まるめ誤差

I 打ち切り誤差

I 情報落ち

I 桁落ち

I 誤差の伝搬 サンプリング誤差

I 標本調査を行う場合、普通は真値は不明

I 標本誤差 : 真値との差の確率的なばらつきの幅

21 / 41

(22)

有効数字と有効桁数

1.23 の有効数字は 3 桁 (1.225 1.23 < 1.235) 表記

表記 有効桁数

12.3 3

12.300 5

0.0034 2

1200 4 (あいまい、1.200x10

3

)

2.34x10

4

3

計算

I 計算途中は桁数が大きいまま計算

I

筆算などの場合は 1 桁多く取ればよい

I 最終的な数字に有効桁数を適用 基本ルール

I 加減算 : 桁数が少ないものに合わせる

I

1.23 + 5.724 = 6.954 6.95

I 乗除算 : もとの有効数字が最も少ないものに合わせる

I

4.23 × 0.38 = 1.6074 1.6

(23)

コンピュータの計算精度

I integer (32/64bits)

I

32bit signed integer (2G までしかカウントできない)

I 32bit floating point (IEEE 754 single precision): 有効桁数 7

I

sign:1bit, exponent:8bits, mantissa:23bits

I

16, 000, 000 + 1 = 16, 000, 000!!

I 64bit floating point (IEEE 754 double precision): 有効桁数 15

I

sign:1bit, exponent:11bits, mantissa:52bits

23 / 41

(24)

グラフ描画

直観的にデータの性質を把握するには、いくつかの統計的手法を 用いてグラフを描画してみる

-4 -2 0 2 4

0 500 1000 1500 2000 2500 3000 3500

normalized traffic volume

time (sec)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

-4 -3 -2 -1 0 1 2 3 4

cdf

normalized traffic volume

-1.5 -1 -0.5 0 0.5 1 1.5

-1.5 -1 -0.5 0 0.5 1 1.5

(25)

グラフ描画のガイドライン

読み手の立場にたって、分かり易いグラフを描画する

I XY 軸のラベルを明確に

I XY 軸の目盛りと単位を明確に

I 個々の直線曲線にもラベルを付ける

I 適切なフォントとサイズを使う

I 慣習に従う : 0 を起点にする、数学シンボルや略称の使用など

I ばらつきを示す ( 平均値だけでは不十分 )

I グラフの範囲を適切か

I ひとつのグラフで多くを示さない

I 異なるデータを比較する場合は、適切な正規化を行う

I グラフ同士を比較する場合は、 XY 軸のスケールを合わせる

I 技術系は円グラフや 3D 効果グラフは使わない

I 色を使う場合

I

白黒印刷しても読めるように配慮

I

プロジェクタ投影も配慮 (例:黄色は避ける)

25 / 41

(26)

データ変数

I 一変数解析 (univariate analysis)

I

変数をひとつずつ独立して扱う

I 多変量解析 (multivariate analysis)

I

複数の変数を同時に扱う

(27)

生データのグラフ化

代表的なグラフ

I 時系列グラフ

I ヒストグラム

I 確率グラフ

I 散布図

27 / 41

(28)

時系列グラフ

変数の時間変化を見る

I X 軸に時間、 Y 軸に変数値

I 時系列グラフから分かること

I

位置の変化

I

ばらつきの変化

I

外れ値の存在

-4 -2 0 2 4

0 500 1000 1500 2000 2500 3000 3500

normalized traffic volume

time (sec)

(29)

ヒストグラム (1/2)

変数の分布の仕方を見る

I データを同じ幅のビンに分ける

I 各ビンのデータ数を数える

I X 軸 : ビンの値 Y 軸 : データ数

0 50 100 150 200 250

-4 -3 -2 -1 0 1 2 3 4

frequency

normalized traffic volume

29 / 41

(30)

ヒストグラム (2/2)

ヒストグラムから分かる事

I 分布の中心 ( 位置 )

I 分布の広がり

I 分布の偏り

I 外れ値の存在

I 複数のモードの存在 ( 山が複数あるか ) ヒストグラムの制約

I 適切なビン幅を選ぶ必要

I

小さ過ぎると各ビンのサンプル数が足りなくなる

I

大き過ぎると分布の詳細が分からない

I

偏りの大きい分布では適切なビン幅の選択は難しい

I 十分なサンプル数が必要

(31)

確率密度関数 (probability density function; pdf)

I 合計面積が 1 となるように出現数を正規化

I

出現数を (総データ数 x ビン幅) で割る

I 確率密度関数 : 確率変数 Xx という値をとる確率 f (x) = P [X = x]

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7

-4 -3 -2 -1 0 1 2 3 4

pdf

normalized traffic volume 31 / 41

(32)

累積分布関数 (cumulative distribution function; cdf)

I 密度関数 : x をいう値を観測する確率 f (x) = P [X = x]

I 累積分布関数 : x 以下の値を観測する確率 F (x) = P [X <= x]

I 分布の偏りが大きい、サンプル数が少ない、外れ値が無視で きない場合などは、ヒストグラムより有効

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

-4 -3 -2 -1 0 1 2 3 4

cdf

normalized traffic volume

(33)

ヒストグラムと CDF の比較

I CDF の場合、ビン幅やサンプル数不足を考慮しなくていい

0 200 400 600 800 1000 1200 1400 1600 1800

300 400 500 600 700 800 900 1000

histogram

response time (msec) ping rtt

0 2 4 6 8 10 12 14 16 18

300 400 500 600 700 800 900 1000

histogram

response time (msec) requests: 8640

replies: 8606

average: 251 ms

min: 194 ms

10th: 195 ms

50th: 196 ms

90th: 376 ms

max: 20481 ms

loss rate: 0.4%

ping rtt

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

300 400 500 600 700 800 900 1000

CDF

response time (msec) 8241 samples

100 samples

(左)

元データ

(右)100

サンプル

(下)CDF

33 / 41

(34)

散布図 (scatter plots)

I 2 つの変数の関係を見るのに有効

I

X 軸: 変数 X

I

Y 軸: それに対応する変数 Y の値

I 散布図で分かる事

I

X と Y に関連があるか

I 無相関、正の相関、負の相関

I

外れ値の存在があるか

-1.5 -1 -0.5 0 0.5 1 1.5

-1.5 -1 -0.5 0 0.5 1 1.5

-1.5 -1 -0.5 0 0.5 1 1.5

-1.5 -1 -0.5 0 0.5 1 1.5

-1.5 -1 -0.5 0 0.5 1 1.5

-1.5 -1 -0.5 0 0.5 1 1.5

例: (左)正の相関

0.7 (中)

無相関

0.0 (右)

負の相関

-0.5

(35)

グラフ描画ツール

I gnuplot

I

コマンドラインツール、スクリプトで自動化し易い

I

http://gnuplot.info/

I grace

I

使い易い GUI

I

細かい仕上げ調整が可能

I

http://plasma-gate.weizmann.ac.il/Grace/

35 / 41

(36)

演習 : gnuplot

I gnuplot を使って簡単なグラフを書く

I 例題 : P. K. Janert ”Gnuplot in Action” から転載

I

http://web.sfc.keio.ac.jp/

kjc/classes/

sfc2011s-measurement/marathon.txt

I

http://web.sfc.keio.ac.jp/

kjc/classes/

sfc2011s-measurement/prices.txt

(37)

ヒストグラム

I ある市民マラソンの完走タイムの分布

plot "marathon.txt" using 1:2 with boxes

グラフを見やすくする ( 右側 )

set title "marathon finish time distribution"

set boxwidth 1

set xlabel "finish time (minutes)"

set ylabel "count"

set yrange [0:180]

set grid y

plot "marathon.txt" using 1:2 with boxes notitle

0 20 40 60 80 100 120 140 160

120 140 160 180 200 220 240

"marathon.txt" using 1:2

0 20 40 60 80 100 120 140 160 180

120 140 160 180 200 220 240

count

finish time (minutes) marathon finish time distribution

37 / 41

(38)

時系列プロット

I PQR 社と XYZ 社の株価推移

set title "stock prices"

plot "prices.txt" using 1:2 title "PQR" with lines, \

"prices.txt" using 1:3 title "XYZ" with linespoints linetype 3

40 60 80 100 120 140 160 180

1975 1980 1985 1990 1995

stock prices

PQR XYZ

(39)

散布図

I PQR 社と XYZ 社の株価の相関

set title "correlation of PQR and XYZ"

set xlabel "PQR"

set ylabel "XYZ"

plot "prices.txt" using 2:3 notitle with points

40 60 80 100 120 140 160 180

40 60 80 100 120 140 160

XYZ

PQR correlation of PQR and XYZ

39 / 41

(40)

まとめ

インターネットのサイズを計る

I ユーザ数、ホスト数

I ウェブページ数

I 精度 誤差 有効数字

I グラフによる可視化

I 演習 :gnuplot によるグラフ描画

(41)

次回予定

第 3 回 データの記録とログ解析 (5/25)

I データフォーマット

I ログ解析手法

I 演習 : ログデータと正規表現

41 / 41

参照

関連したドキュメント

ハイデガーは,ここにある「天空を仰ぎ見る」から,天空と大地の間を測るということ

の変化は空間的に滑らかである」という仮定に基づいて おり,任意の画素と隣接する画素のフローの差分が小さ くなるまで推定を何回も繰り返す必要がある

ベクトル計算と解析幾何 移動,移動の加法 移動と実数との乗法 ベクトル空間の概念 平面における基底と座標系

今回の調壺では、香川、岡山、広島において、東京ではあまり許容されない名詞に接続する低接

・少なくとも 1 か月間に 1 回以上、1 週間に 1

[r]

接続対象計画差対応補給電力量は,30分ごとの接続対象電力量がその 30分における接続対象計画電力量を上回る場合に,30分ごとに,次の式

接続対象計画差対応補給電力量は,30分ごとの接続対象電力量がその 30分における接続対象計画電力量を上回る場合に,30分ごとに,次の式