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

パケット対の RTT に着目した ネットワーク帯域測定手法に関する研究

N/A
N/A
Protected

Academic year: 2022

シェア "パケット対の RTT に着目した ネットワーク帯域測定手法に関する研究"

Copied!
61
0
0

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

全文

(1)

指導:

小松 尚久

教授

甲藤 二郎

教授

2012 年 2 月 6 日

早稲田大学理工学術院 基幹理工学研究科 情報理工学専攻

5110B020-0 今井 省吾

(2)
(3)

2.2 既存の帯域測定手法 . . . 6

2.2.1 受動的計測手法 . . . 6

2.2.2 能動的計測手法 . . . 6

2.2.3 能動的計測手法に求められる要件 . . . 11

2.2.4 帯域測定手法NEPRI . . . 12

3章 広帯域における精度評価 19 3.1 実験諸元 . . . 19

3.2 実験結果 . . . 20

3.3 測定誤差原因の特定 . . . 21

3.3.1 RTTの相関関係の確認 . . . 21

3.3.2 クロストラヒックによる影響 . . . 23

3.3.3 パケットキャプチャリング結果 . . . 27

3.4 考察. . . 31

4章 広帯域下での測定条件の検討 35 4.1 プロービングパケットサイズを大きくした際の実験 . . . 35

4.2 アルゴリズムの提案 . . . 39

4.3 処理コスト増大による影響 . . . 42

5章 結論 45 5.1 まとめ . . . 45

5.2 今後の検討 . . . 45

謝辞 47

参考文献 49

(4)

付録A 既存手法との比較 51

A.1 実験諸元 . . . 51

A.2 実験結果 . . . 52

A.2.1 測定精度での比較 . . . 52

A.2.2 測定精度以外での比較. . . 54

A.3 考察. . . 55

関連業績 57

(5)

近年のインターネットの普及に伴い,ITシステムはその使い方が大きく変化しており,ホーム ページの閲覧による情報検索や他人とのコミュニケーションから,チケット販売,インターネッ トショッピング,IP電話といった様々なサービス,更には基幹業務と呼ばれる銀行や証券会社の 取引等多岐に渡って我々の生活の基盤を支えている.また,ITシステムは元来の単一システム内 で稼働する単純な構成から,データセンタ運用によってサービスを提供する形態へと移行されて おり,大規模かつ複数な構成へと変化している.このような,基幹システムを,安定した品質で サービスを提供できるように運用することは,データセンタの重要な使命である.安定品質のた めには,システムの稼働状態を常に把握して,不具合をいち早く検出して,それを回避する手段 を実行することが必要である.ところが,現状のシステムは,ルーティング構成やサーバ構成を 仮想化技術により個別に制御,変更させるなどをしているために,End-to-Endでの性能の把握や 必要リソースの算出などが困難になっている.そこで本研究では,システムを制御するうえで必

須となるEnd-to-Endでのネットワークの稼働状態の測定手法について検討を行う.

システムを運用管理する際の技術体系は図1.1のようになっている[1][2][3].それぞれ応答時間 やCPU使用率,メモリ使用量などを計測する監視計測技術,資源不足や障害などの原因分析を行 う分析技術,性能不足を解消するための資源配置やシミュレーションなどによる性能事前検証を 行う設計検証技術,システムを再構成するための操作を行う操作技術,という四つの技術から構 成されている.本研究ではこの中でも監視計測技術の一要素である,ネットワークの可用帯域幅 の測定手法について研究を行う.

ネットワーク帯域測定手法には受動的計測手法と能動的計測手法がある.受動的計測手法とは,

ネットワーク上にいくつかの計測機器を設置することで,計測地点を通過するパケットの情報を 収集する手法である.これにより,局所的なネットワーク状態を推定することができる.能動的 計測手法はネットワーク上にプロービングパケットと呼ばれる計測用パケットを注入し,その応 答時間等からプロービングパケットが通過したネットワーク経路を計測する手法である.本研究 では,近年の複雑化,流動化しているネットワーク構成を考慮して,能動的計測手法に着目する.

その中でも,プロービングパケットのふるまいを個別に評価するのではなく,連続する複数のプ ロービングパケットのRTT(Round Trip Time)の相関関係から,経路の利用可能帯域を測定

(6)

1.1 システム運用管理における技術体系

する NEPRI と呼ばれる手法に着目する.このNEPRIを用いての帯域推定では,利用可能帯

域幅よりも早い速度でプロービングパケットを送出する必要がある.そのため,広帯域において 推定を行う際には,推定に用いる計測機のパケット処理性能が結果に大きな影響を及ぼす可能性 が考えられる.この問題に対して,検証実験からその確認を行い,その結果からプロービングパ ケットサイズに着目した新しい測定アルゴリズムを提案する.また,その際に考えられる計測機 への負荷についても評価を行う.

(7)

可用帯域について定義した後,エージェントを用いた受動的計測手法及び,エージェントレス型 の能動的計測手法の従来技術に関して説明を行う.また,これまでの本研究グループの取り組み についても述べる.

第3章「広帯域における精度評価」

帯域を1Gbpsまでの広帯域に変更した実験環境において従来の手法の精度評価を行う.また,そ

の際に測定に影響を与えた原因を様々な条件で実験を行う事で明らかとする.

第4章「広帯域下での測定条件の検討」

第3章までの実験結果から,広帯域において測定に求められる条件を明確にする.その後,その 条件を踏まえた新しい測定アルゴリズムを提案し,その評価を行う.また,提案手法による測定 系への影響を評価する.

第5章「結論」

本研究における結論と今後の検討について述べる.

(8)
(9)

以下に,本研究の測定対象となる可用帯域幅について定義し,それぞれの測定手法の特徴を述べ る.また,既存のネットワーク帯域測定手法や,本研究グループの取り組みについての説明を 行う.

2.1 可用帯域幅の定義

始めに本研究で取り扱う可用帯域幅について定義する.可用帯域幅とは,

ネットワークリンクにおける可用帯域幅

パスの可用帯域幅

の二つに分類される.ネットワークリンクにおける可用帯域幅とは,ある短い時間区間の通過ト ラヒックの平均レートをそのリンクの物理帯域幅から引いたものであり,その時点での使用帯域 幅に対する余剰帯域幅の事である[4].これを数式で表すと以下のようになる.

u(t−τt) = 1 τ

t tτ

u(x)dx (2.1)

u(x):時間xにおけるリンクの瞬間的な可用帯域幅

(t−τ, t):時間間隔 u(t−τ, t):平均使用率

例えば,図2.1のような例では,0からTまでの20の時間間隔のうち,8つの間でリンクが使 用されている.この場合の0からTまでの間のリンクの平均使用率は 208 ×100 = 40% となり,

可用帯域幅は(物理帯域幅)−(使用帯域幅)=(100)−(40)=60%となる.

また,パスの可用帯域幅とはその時間におけるパス全てのリンクの可用帯域幅のうち,最小の 可用帯域幅のことである.

(10)

例えば,図2.2のようなパスにリンクiがあったとする.ある時間t0から微小時間τ 変化した 際の可用帯域幅をAτi(t0),リンクの物理帯域幅をCi,リンクの利用率をuτi(t0)とすると

Ai ≡Ci(1−ui) (2.2)

 これを全てのパスで考えると,ホップ数がH のEnd-to-Endの可用帯域幅は Ai min

i=1...HCi(1−ui) (2.3)

と定義される.

2.2 既存の帯域測定手法 2.2.1 受動的計測手法

受動的計測手法とは,計測対象ネットワーク内のいくつかの地点に計測機器または計測ソフト ウェアを設置し,計測地点を通過するパケットの情報を収集して局所的なネットワーク状態を推 定するものである.

代表的な例として,ルータ等のネットワーク機器に実装されているSNMP(Simple Network Management Protocol) がある.SNMPはルータやコンピュータといったネットワークに接続 された通信機器をネットワーク経由で監視・制御するためのプロトコルであり,管理情報ベース

(MIB)からルータ上のトラヒック量などの情報を取得することが出来る.しかし,計測を行って

いる地点の情報しか取得することが出来ないため,End-to-Endの可用帯域幅を計測することが 難しい.また,対象ネットワーク内の全てのルータに実装を行うことは現実的でない,といった 問題点が挙げられる.

2.2.2 能動的計測手法

能動的計測手法とは,計測対象となるネットワークにプロービングパケットと呼ばれる計測用 パケットを注入し,その応答時間等からプロービングパケットが通過したネットワークの状態を

2.1 0からTまでのネットワークリンクの瞬間使用率

(11)

2.2 パスにおける可用帯域幅

計測する手法である.ネットワークの状態をEnd-to-Endで計測することが出来るほか,受動的 計測手法とは異なりネットワーク機器を追加したり,エージェントソフトウェアを入れる必要が 無いといったことから,容易に測定することが可能となっている.しかし,注入するプロービン グパケット数が多くなるとプロービングパケット自体がネットワークに負荷をかけてしまう可能 性がある.また,測定精度という観点では受動的計測手法には及ばない.測定精度を上げるため には,プロービングパケット数を増やさなくてはならないことから,測定精度とネットワーク負 荷がトレードオフの関係にあるという問題点がある.

 能動的計測手法は時代の流れと共にVPS(Variable Packet Size Probing)方式,PPTD(Packet- Pair/Train Dispersion)方式,SLoPS(Self Loading Periodic Streams)方式の3つに大きくわけ ることが出来る.[5][6] 以下,3つの測定手法の概要と代表的な既存提案について述べる.

VPS方式

VPS(Variable Packet Size Probing)方式は単独のUDPパケットもしくはICMPパケットを用 いて,様々なサイズのパケットのRTT(Round Trip Time)を複数回測定し、パケットサイズと 各サイズでの最小 RTTとの関係式からネットワークリンクの物理帯域幅を推定する.その際,

TTL(Time To Live)を1から増加させていくことによって,1ホップずつのRTTを測定する.

この結果を基にEnd-to-End経路上にある全てのリンク速度を推定することを実現している.こ こで,図2.3に示すようなRTTのモデルについて考えると,以下のようなパケットサイズと各サ イズでの最小RTTの関係式が得られる.

RTTは転送遅延(パケットサイズに依存する変数)と伝播遅延(固定値)とキューイング遅延

(確率的に変動する変数)の和である.

RT Tn(P) =

n

i=1

(P +Picmp

Bi +Li+Qi) (2.4)

(12)

2.3 VPSRTTモデル

RT Tn(P):サイズP のパケットがn番目のルータに到着するまでにかかる時間 Picmp:ICMP ECHO REPLYのパケットサイズ

Bii−1番目のリンクとi番目のルータに挟まれたリンクの物理速度 Lii番目のリンクで生じる伝播遅延(往復の和)

Qii番目のリンクで生じるキューイング遅延(往復の和)

ここで,測定された最小のRTTにはキューイング遅延が発生していないと仮定すると,その最 小RTTは転送遅延と伝播遅延のみで構成されているとみなすことが出来るため,図2.4のような グラフを作成することが出来る.

従って,RTTは以下のような1次関数に近似することが出来る.

RT Tn(P) =

n

i=1

( 1 Bi

)×P +A (2.5)

A:固定遅延の和 ここで得られた傾き

n

i=1

( 1

Bi)を基にして各リンクにおける物理帯域幅を測定する.

VPS方式が抱える問題点として,スイッチングハブなどIPアドレスを持たないようなネット ワーク機器(Invisible node) ではTTLが発見できないため,測定精度が低下してしまう可能性 がある.また,最小RTTを求めるために多量のプロービングパケットを送信しなければならず,

ネットワークへの負荷が大きくなってしまう.

(13)

2.4 パケットサイズとRTTの関係

 VPS方式を採用した既存提案としてPathchar[7],Clink[8]といったものが挙げられる.

PPTD方式

PPTD(Packet-Pair/Train Dispersion)方式は,連続した二個のプロービングパケットをペアと みなして送信し,それぞれの到着時間の差を測定する.二つ一組のプロービングパケットがボト ルネックリンクに連続した状態で入るならば,ボトルネックリンクを通過した後には2番目のプ ロービングパケットの転送遅延分だけ二つのパケットは離れることになる.パケットサイズと到 着時間の差には以下の式が成り立つ.

Tn2−Tn1 = P Bn

(2.6)  この式を解くことによって,対象となるパスの物理帯域幅もしくは可用帯域幅を測定する.図 2.5にPPTDの基本方式を示す.

2.5 PPTDの測定方式

PPTD方式が抱える問題点として,ペアになっているプロービングパケットの間に他のパケッ ト(以降クロストラヒックと呼ぶ)が入ってくることによって間隔が空き過ぎてしまう,もしく はペアの前にクロストラヒックが入ってしまうことで間隔が狭くなってしまう,といった影響を 受けることで測定精度が低下してしまう可能性がある.この現象を避けるためにはプロービング

(14)

回数を増やす必要が出てくるため,やはりネットワークに負荷をかけてしまう.

 PPTD方式を採用した既存提案として,Bprobe,Cprobe[9],Nettimer[10],Pathrate[11]と いったものが挙げられる.

SLoPS方式

先に挙げたVPS方式やPPTD方式では物理帯域幅を測定することは出来るが,可用帯域幅の推定 には必ずしも適していなかった.そこで可用帯域幅を推定するために提案されたのがSLoPS(Self Loading Periodic Streams)方式であり,近年ではこの手法が主流となっており,シミュレーショ ンによる評価などが行われている[12].この方式は定期的にトレイン(ストリーム)と呼ばれる 複数個のプロービングパケットを対象ネットワークに送信するもので,トレイン(ストリーム)内 のプローブ送信レートが可用帯域幅より大きくなる時,そのトレイン(ストリーム)を構成して いるプローブの片道遅延(One Way Delay:OWD)に増加傾向が見られることに着目して行う.

 SLoPS方式を採用した既存提案として,Pathload[13],pathChirp[14]といったものが挙げられ る.以下にこの二つの手法について述べる.

Pathload

 1つのストリームは複数のプロービングパケットで構成され,更にN個のストリームをフリー トとして扱う.フリートごとにOWDの変化を調べ,二分探索によって送信レートの設定を繰り 返しながら可用帯域幅に漸近させていく.Pathloadの仕組みを図2.6を示す.

2.6 Pathloadの測定方式

具体的な測定方法は,まず最初のフリートのプローブ送信レートをT1 とする.図2.7のよう にOWDが増加傾向にあれば対象リンクの可用帯域幅 AA < T1 とし,変化(増加)しなけ

ればA >=T1 と判断する.フリートは複数のストリームで構成されているので,フリート全体で

OWDが増加傾向かどうかを判断することで,次のフリートの送信レートT2T2 > T1 とする か,T2 < T1 とするか,を決定する.

 Pathloadの問題点として,可用帯域幅の推定に二分探索を行うことから推定値決定に要する

時間が大幅にかかる可能性がある.また,ある程度のパケットを必要とするため,ネットワーク への負荷も大きくなる可能性がある.

(15)

2.7 プロービング速度と片道遅延の関係

pathChirp

 Pathloadとは異なり,PPTD方式のようにトレイン内の隣り合うプロービングパケットでパ

ケットペアを構成し,そのプローブ転送間隔を指数関数的に減少させてプロービングパケットを 送信し,OWDの増加特性を利用し可用帯域幅を推定する.pathChirpの仕組みを図2.8に示す.

2.8 pathChirpの測定方式

Pathloadと比較すると隣り合うペア同士の間隔を変化させるためにパケット数を減らすことが

出来るが,PPTD方式の問題点であったクロストラヒックの変動によって速度を決定するための 臨界点を誤る可能性がある.

2.2.3 能動的計測手法に求められる要件

上記の3方式の能動的計測手法に共通する問題点として

クロストラヒックによる影響

プロービングパケットに対してクロストラヒックが間に入る,手前に入るなどの影響を受け ることでRTT,OWDなどの測定結果が過度に変化するといった影響を与える.

ルータ等によるキューイングの影響

パケットはルータを経由する際にランダムなキューイングを経て送出される.特にホップ数 が増えるほどその影響は大きくなる.

(16)

プロービングパケットによるネットワーク負荷

対象となるネットワークにパケットを送信するため,一時的に負荷を与えることになる.こ れは測定時間がかかればかかるほど,他のトラヒックに与える影響が大きくなる.

といったことが挙げられる.

 従って,能動的計測手法に求められる要件は

クロストラヒックによる影響を受けにくい

ルータ等によるランダムなキューイングを考慮に入れる

プロービング数は少なく,またそのサイズも小さいほどよい

測定にかかる時間が短い

となる.なお,VPS方式,PPTD方式では主に物理帯域幅について測定を実現しているが,IDC におけるオンデマンド運用においてはSLoPS方式のように可用帯域幅を推定することが求めら れる.

2.2.4 帯域測定手法 NEPRI

前節における能動的計測手法に求められる要件を満たす技術として,本研究では個々のプロー ビング間に見られる相関性を基に測定を行うNEPRIという技術[15][16]に着目した.NEPRIで は個々のプロービングパケットを独立に評価するのではなく,プロービング間に見られる相関性 に着目する.これにより,個々のプロービングに誤差が含まれていたとしても,その誤差による 影響を受けずに測定精度を上げることが可能となる.ボトルネックリンクにプロービングパケッ トがキューイングされた時に現れるプロービング間の相関を検出しさえすれば,ボトルネックの 性能を把握することが出来るので,プロービングの数を増やして漸近的に精度を向上させる必要 はなくなる.これにより,測定装置の精度が悪かったり,RTTにばらつきがあるような,実運用 中のネットワークにおいても,クロストラヒックといった外乱の影響を受けずに精度の良い測定 が可能となり,精度とオーバーヘッドのトレードオフの問題を解決している.

プロービング間の相関はプロービングパケットがボトルネックに同時にキューイングされた時 に現れる(図 2.9).これは,プロービングパケットが同時にキューイングされない場合,各プ ロービングは独立した事象になるが,プロービングパケットが同時にキューイングされた場合,

前のプロービングパケットが送出されてからでないと後のプロービングパケットは送出されない ため,必然的に前後のプロービング間で相関が現れるからである.

このプローブ間の相関を検出するために,NEPRIでは連続するプロービングパケットのRTT の変化に注目している.プロービングパケットの送信速度を徐々に上げていったときの,連続す る2つのプロービングパケットのRTTの差∆RTTが正になる割合の変化についてみてみる.

(17)

2.9 ボトルネックリンクの帯域幅とプロービング速度の関係

 まず,プロービング速度がボトルネックリンクの可用帯域幅よりも遅い場合はプロービングパ ケットのRTTはランダムな外乱の影響を受けるので,∆ RTTはほぼ等しい割合で正か負のいず れかになる.

一方,プロービング速度がボトルネックリンクの可用帯域幅よりも速い場合は,ボトルネック リンクで2つ以上のプロービングパケットが同時にキューイングされる.この場合,後にキュー イングされたプロービングパケットのRTTの方が先にキューイングされたプロービングパケッ トよりも大きくなるため,∆RTTが正になる割合が100%に近づく.この変化はプロービング速 度がボトルネックリンクの帯域幅を超えたときに急に不連続に起こるので,そのときのプロービ ング速度をボトルネックリンクの帯域幅,すなわち可用帯域幅に等しいと判断できる.

 このプロービング速度とRTTに見られる現象をより詳しく説明する[17].プロービングパケッ トを送信順にi = 1,2,…, nとし,プロービングパケットの RTTを RT Ti (i = 1,2,…, n)とす る.x=RT Ti,y=RT Ti+1 とおいて,RTTの時系列をxy平面にプロットする.

 プロービング速度がボトルネックリンクの帯域幅よりも十分に遅い場合は前後する 2つのプ ロービングパケットi,i+ 1がボトルネックリンクで同時にキューイングされることはないので,

プロービングパケットのRTTの間には何の相関も無く,クロストラヒック等によるランダムな外 乱の影響を独立に受ける.従ってそのときのRTT時系列は図2.10のように直線y= xに対して 均等に分布する.

 ところが,プロービング速度がボトルネックリンクの帯域幅に近くなり,前後する2つ以上の プロービングパケットがボトルネックリンクに同時にキューイングされ始めると,同時にキュー イングされたプロービング間にはっきりとした相関が現れ,RTTの時系列は図2.11に示したよ うに直線y= xに平行な直線の上に多く分布し,残りの点はその直線よりも上側に分布するよう

(18)

になる.

2.10 プロービングパケットがボトルネックに同時にキューイングされない場合のRTT時系列の分布

プロービングパケットのサイズを固定長でP(bit),プロービングパケットの送信間隔をδ(sec), 可用帯域幅をµ(bps)とする.今,プロービングパケットi, i+ 1が同時にキューイングされたと する.前後する2つのパケットi, i+ 1のRTTの差は,パケットi, i+ 1の送信時刻をそれぞれ si, si+1,受信時刻をそれぞれri, ri+1 とすると

RT Ti+1−RT Ti = (ri+1−si+1)(ri−si)

= (ri+1−ri)(si+1−si) (2.7) となる.ここで送信時刻の差si+1−si は送信間隔δ に等しく,受信時刻の差ri+1−riは1つの プロービングパケットがボトルネックリンクから送出される時間よりも小さくはならないから,

不等式ri+1−ri >=P/µが成立する.従って

RT Ti+1−RT Ti >=P/µ−δ (2.8) が成り立つ.この不等式においてRT Ti =x, RT Ti+1 =yとおくとy =x+P/µ−δとなり,等 号が成立する場合が図2.11に示した直線に相当する.他のトラヒックがプロービングパケットの 間に入らない場合は,この直線上にRTT時系列が分布する.他のトラヒックがランダムにプロー ビングパケットの間に入った場合は,この直線より上側にRTT時系列が分布する.

(19)

2.11 プロービングパケットがボトルネックに同時にキューイングされた場合のRTT時系列の分布

■測定アルゴリズムの概要と改善

NERPIは,プロービングパケットを送信間隔δを変えながらネットワークに送信し,プロービン

グパケットのRTTの変化を調べ,ボトルネックリンクにパケットがキューイングされたことを 検出し,可用帯域幅を求める手法である.ここでプロービング間のRTTの差∆RTTの下限を与 える直線y=x+P/µ−δy切片の値bを求めれば,P/µ−δ =bを解いて,帯域幅µを求め ることが出来る.しかし,この下限の直線を正確に近似するには,プロービングの数を十分に増 やさなければならない.少数のプロービングでy 切片の値bを正確に求めることは困難である.

そこで下限の直線を正確に求めるのではなく,下限の直線の上側に点が多数分布することを利用 する.つまり,プロービング速度を変化させたときに,∆RTTが正になる割合が50%から100

%に急に変化する時点の送信間隔δを求め,このときの送信間隔δから帯域幅µµ=P/δで求 める方法をとることにした.プロービング速度を変えたとき,∆ RTTが正になる割合が50%か ら100%に急に変化する時点とは,下限の直線y >=x+P/µ−δが直線y =xに一致する時点で あり,このときのプロービング速度と帯域幅が一致する.これを次の指標Φを用いて判定する.

Φ =

n1

i

Di/(n−1) (2.9)

(20)

Di =

{ 1 if RT Ti+1RT Ti

0 otherwise (2.10)

(2.9)式は∆RTTが正になる割合を示したものであり,NEPRIではΦが0.8以上になると,

パケットの送信速度と可用帯域幅が一致していると判定する.この判定結果を基にSLoPS方式と 同様二分探索を行い,帯域を推定する.具体的な測定アルゴリズムを図2.12に示す.

2.12 NEPRIのアルゴリズム

しかしながらこの測定アルゴリズムに基づいて実装したNEPRIにおいて,10Mbps 以上の帯 域において正確な測定が行えないという現象が確認された.これは,プロービング速度がボトル ネックリンクの帯域幅を上回った場合でも,以下の図2.13のようにクロストラヒックがプロービ ングパケットの間に入り込むことによって,∆RTTが必ずしも正にならないというケースが存在 するためだと考えられた.

この状態について詳しく説明をする.例として,i 番目のパケットの前にクロストラヒックが 入った場合を考える.この場合,i番目のパケットは詰まってしまい RTTが増加するのに対し て,i+ 1番目のパケットはクロストラヒックの影響を受けないため RTTの値に変化は起こら

(21)

2.13 クロストラヒックによる∆RTTの変動

ない.このため,送信間隔に対してパケットの間隔が狭まりRT T i+ 1< RT T となる,従って

∆RTTは負の値となる.

一方,クロストラヒックがi番目のパケットの後に入った場合を考える.この場合はi番目のパ ケットはその影響を受けずにRTTの値は変化しない.しかし,i+ 1番目のパケットは詰まって しまうことになるのでRTTは増加する.よって,今度は送信間隔に対してパケットの間隔が広が ることになるためRT T i+ 1>RT T となる.従って∆RTTは正の値となる.

この性質を基にすると,可用帯域幅と同等以下の速度でプロービングを行うと,i番目のパケッ トの前後どちらにクロストラヒックが入ろうが,その分だけ∆RTTの値が変化することになる.

よって,全てのプロービングパケットの送信間隔は変化しないことになるので,その和である

in−1δRT Ti は0となることになる.

可用帯域幅を超えた速度でプロービングを行うと,従来のNEPRIの原理通りキューイングに よって∆RTTが正の値になりやすくなる.よって,∑

in1δRT Ti の値も正になると考えた.

以上を基に,RTTの相関関係の検出条件

Φ =

n1

i

∆RT Ti (2.11)

を新たに設定した.これにより,100Mbpsまでの帯域において正確な測定が行えることを確認し た[18].また,この手法を測定精度,ネットワーク負荷などの点から既存手法であるPathloadと pathChirpと比較を行った(付録A).その結果,これら既存手法の中でもNEPRIの実用性が高 いということが示された.

(22)
(23)

NEPRIを用いて1Gbpsまでの広帯域において測定実験を行い,精度よく測定が行えるかどうか を確認する必要がある.

3.1 実験諸元

実験環境は1GbpsのEthernetにより構築され,クロストラヒックを発生させる負荷印加ホス ト,クロストラヒックによる負荷を受ける負荷用サーバ,NEPRIが実装されている計測用クライ アント,計測対象となるサーバによって構成される.また,今回は負荷印加ホストとNEPRIに よる監視クライアントは同じ測定器を用いて実験を行った.実際の実験のネットワーク構成を図 3.1に,その構築に用いた装置の諸元を表3.1に示す.

3.1 実験ネットワーク構成

(24)

3.1 実験装置の諸元

CPU メモリ OS

サーバ

Interl core2 Duo

4300 1.8GHz 1.5GB Ubuntu10.04 負荷印加ホスト

&NEPRI

Intel core2 quad

Q8400 2.66GHz 4GB Ubuntu10.04 負荷用サーバ

Intel corei3

M370 2.4GHz 3GB

Windows7 professional

3.2 実験結果

前節の実験環境において,1Gbpsまでの帯域における測定精度の評価実験を行った.クロスト ラヒックを発生させるツールとしては,UDPパケットを定常的に発生させるIperf[20] 用いた.

このツールを用いることで帯域を制限し,可用帯域幅を固定化させる.その状態でNEPRIによ る可用帯域幅推定が正しく行われるかどうかを確認する.また,物理帯域幅である1Gbpsを推定 できるかどうかを確認する際にはクロストラヒックを全く流さない状態での測定を行った.また,

測定に用いるプロービングパケット数nは21個,プロービングサイズは5000bitとした.これは 従来の検討によって測定に最適な値として判断されていた値である.なお測定の際には,プロー ビング速度の初期値を対象とする可用帯域を基準として(1)2/3の値(RTTの相関関係が検出で きる場合),(2)同等の値,(3)3/2の値(RTTの相関関係が検出できない場合)としてそれぞれ 10回ずつ測定を行い,平均と標準偏差の値を出力した.実験の測定結果を表3.2に示し,その中 でも可用帯域幅を500Mbpsとした際の測定結果の移り変わりを図3.2に示す.

3.2 従来のNEPRIによる測定結果[Mbps]:物理帯域1Gbps

可用帯域幅 100 200 300 400 500 600 700 800 900 1000 測定結果 34.1 196.0 281.4 403.6 579.5 762.8 888.2 1003.7 1003.2 1000.6 標準偏差 17.0 192.9 166.4 167.1 186.2 177.9 124.9 50.5 56.1 2.9

表3.2の結果を見ると,可用帯域400Mbpsまでの帯域においては平均測定値は実測値に近い値 を測定できていることが分かる.しかし,それ以降の帯域になると実際の値よりも高い測定値を 出す結果となり,標準偏差においても全体的に非常に大きな値となった.また,図3.2のように可 用帯域幅に対して測定値が非常に小さく取る場合もあれば,大きく取る場合も存在しており,安 定性に欠けるといった問題を抱えていることが分かった.

(25)

3.2 可用帯域幅:500Mbpsの場合の測定誤差

3.3 測定誤差原因の特定

前節の結果から,従来のNEPRIのままでは広帯域の測定精度に問題があることが分かった.

そこで,ここでは様々な条件にて実験を行い,測定が正確に行われなかった原因を特定する.

3.3.1 RTT の相関関係の確認

NEPRIによる帯域の測定は,RTTの相関関係の検出によって判定される.つまり,測定結果

が悪くなる場合というのは,RTTの相関関係が正しく測定できていない状態であると考えられ る.前節での実験結果から,200Mbps〜700Mbpsまでの帯域において測定結果の標準偏差が大き くなっており,精度が安定していないことが分かる.そこで,これらの帯域においてRTTの相 関関係が正確に観測出来ていたかどうかの確認を行う.対象としては,実験結果において測定値 の平均,標準偏差共に大きくなった600Mbps帯域を見る事とし,RTTの時系列分布をxy平面 にプロットし,図2.11のようなRTTの相関関係が発生しているかどうかの検証を行う.その中 でもプロービング速度がそれぞれ400Mbps,600Mbps,900Mbpsとした際の結果を図3.3,3.4, 3.5に示す.これは同時にキューイングが発生しない場合と,同時にキューイングが発生し始める 場合,同時にキューイングが発生する場合の3パターンについてそれぞれ確認を行うためである.

この結果から,図3.3,3.4,3.5の全ての図がほぼ同様の分布を示しており,yxの直線に 沿うような形になっていることが分かる.しかし,図3.3においてはプロービング速度<可用帯 域幅となるので,本来は図2.10のようにRTTがランダムに分布するはずである.つまり本来は RTTの相関関係が発生しない筈の場合でも同様の現象が見られてしまっており,これによって測 定が正しく行われなかったのではないかと考えられる.また,本来はキューイングが伸びて行く

(26)

ことによってRTTの値は大きくなっていく筈なのだが,今回の実験で得られた図はどれも分布 の変化が小さくなってしまっている.これにより,微小なRTTの値の差によって∑

in1δRT Ti が正負を取ることになってしまい,RTTの相関関係が正確に行われなかったのではないかと考え られる.

3.3 可用帯域600Mbpsとした際に400Mbpsでプロービングした場合のRTT時系列分布

3.4 可用帯域600Mbpsとした際に600Mbpsでプロービングした場合のRTT時系列分布

(27)

3.5 可用帯域600Mbpsとした際に900Mbpsでプロービングした場合のRTT時系列分布

3.3.2 クロストラヒックによる影響

能動的計測手法において測定結果に最も影響を及ぼすと考えられているのはクロストラヒック である.これまでの実験は広帯域を測定するために実験環境に大量のクロストラヒックを流して いる.ここでは,そのことが測定結果に影響を及ぼしているかどうかを確認する.

■クロストラヒックがない場合

まず,正常に測定が行われていたボトルネックリンクの物理帯域幅が100Mbps までの帯域につ いて従来通り RTTの時系列分布に加えて,RTTの測定値分布をヒストグラムの形で出力する こととする.実験環境は前章の図3.1と同様の構成で行い,スイッチ間のリンクを100Mbpsの 帯域へと変更することでボトルネックリンクとした.この実験環境において,RTTの相関関係 が発生する場合と発生しない場合それぞれについて計測を行う.この際に,プロービング速度は 150Mbps,66Mbpsとし,それぞれ10回ずつ測定を行った.RTTの時系列分布図と測定値分布 を図3.6,3.7に示す.

この結果から,図3.6,3.7双方において,yxの直線に沿うようなRTTの分布が見られる ことが分かる.この反応は RTTの相関関係が発生する条件を満たしている図 3.6に正常な反応 である.一方,図3.7においては理論通りならば,RTTはランダムに分布される筈であり,正し い結果であるとはいえない.しかし,今回の実験はクロストラヒックが無い状態での測定であり,

RTTは一定の値を取り続ける結果になる筈である.図3.7のヒストグラムからは一定の値付近に RTTの分布が偏っていることが確認できる.そのため,この場合はプロービングパケットが処理 される際の微細な誤差による影響が大きいと考えられる.

次に,広帯域においても同様の実験を行う.実験環境は上記と同様に図3.1の構成を用い,ボ

(28)

3.6 可用帯域幅:100Mbpsの時に150Mbpsでプロービングした場合

3.7 可用帯域幅:100Mbpsの時に66Mbpsでプロービングした場合

トルネックリンクを1Gbpsにした状態で実験を行った.測定の際には上記と同様の理由により,

1500Mbps,660Mbpsにて実験を行い,測定回数も10回ずつ測定を行った.RTTの時系列分布 図と測定値分布を図3.8,3.9に示す.

(29)

3.8 可用帯域幅:1Gbpsの時に1500Mbpsでプロービングした場合

3.9 可用帯域幅:1Gbpsの時に660Mbpsでプロービングした場合

この結果を見ると,前節での結果と同様にRTTの相関関係の発生条件に関わらずRTTの分布 がyxの直線に沿うような形になってしまっている.また,ヒストグラムからどちらの場合も ほぼ一定値を示していることが分かる.本来は100Mbps帯域と同様の反応を示す筈であること から,正常な結果が得られていないことが分かる.

(30)

■クロストラヒックがある場合

クロストラヒックが存在する場合において,前節と同様の実験を行った.この際に,ボトルネッ クリンクの物理帯域幅が100Mbpsの場合にはクロストラヒックを 50Mbpsとし,プロービング

速度を33Mbps,75MbpsとすることでRTTの相関関係の有無を表した.同様にボトルネック

リンクの物理帯域幅1Gbpsの場合にはクロストラヒックを500Mbpsとし,プロービング速度を 330Mbps,750Mbpsとした.100Mbpsでの実験結果を図3.10,3.11に,1Gbpsでの実験結果を 図3.12,3.13に示す.

3.10 物理帯域幅:100Mbpsの時に可用帯域幅を50Mbpsにして75Mbpsでプロービングした場合

3.11 物理帯域幅:100Mbpsの時に可用帯域幅を50Mbpsにして33Mbpsでプロービングした場合

(31)

3.12 物理帯域幅:1Gbpsの時に可用帯域幅を500Mbpsにして750Mbpsでプロービングした場合

3.13 物理帯域幅:1Gbpsの時に可用帯域幅を500Mbpsにして330Mbpsでプロービングした場合

これらの図を見ると,全体的には前節のクロストラヒックがない場合とほぼ同様の結果が得ら れていることが分かる.しかし,図 3.11のヒストグラム図を見るとクロストラヒックによって RTTの値がランダムに振れはじめているのに対して,図3.12,3.13のようなボトルネックリン

クが1Gbpsの場合には前節での実験とほぼ同様に,RTTの値がほぼ一定値を示し続ける分布に

なっていることが分かる.以上の実験から,クロストラヒックの有無に関わらず広帯域において は正常な測定結果が得られないということが確認された.

3.3.3 パケットキャプチャリング結果

ここで,パケットアナライズソフトの一つであるWireshark[21]を用いてパケットキャプチャ リングを行い,正しく測定が行われている場合と行われていない場合において,それぞれパケッ

(32)

トがどのように処理されているかを確認する.

Wiresharkでの観測結果を抽出し,パケットの到着間隔や処理時間についてまとめたものを

表3.3,3.4に示す.表 3.3 は物理帯域幅=可用帯域幅100Mbps に対してプロービング速度を

150Mbpsとしたものであり,RTTの相関関係が正常に観測できた場合の結果を表す.表3.4は

物理帯域幅=可用帯域幅1Gbpsに対してプロービング速度を500Mbpsとしたものであり,RTT の相関関係が正常に観測できなかった場合の結果を表している.ここで,表におけるTimeは一 つ前のキャプチャ結果との差分の時間を,送信間隔はあるrequestから次のrequest までの時間 を,処理時間はあるrequestに対してreply が送られるまでの時間を表している.なお,時間の 単位は全てsecとなっている.また,Infomationはそれぞれのパケットの内部情報を記述してお り,パケットを受信した場合にはrequestを,パケットを返信する場合にはreplyをそれぞれ発生 させている.

(33)

86 0.000035 ”Echo (ping) request〜中略〜=1280/5, ttl=64)” 0.000035 87 0.000035 ”Echo (ping) request〜中略〜=1536/6, ttl=64)” 0.000035 88 0.000035 ”Echo (ping) request〜中略〜=1792/7, ttl=64)” 0.000035 89 0.000034 ”Echo (ping) request〜中略〜=2048/8, ttl=64)” 0.000034 90 0.000034 ”Echo (ping) request〜中略〜=2304/9, ttl=64)” 0.000034 91 0.000034 ”Echo (ping) request〜中略〜=2560/10, ttl=64)” 0.000034 92 0.000035 ”Echo (ping) request〜中略〜=2816/11, ttl=64)” 0.000035

93 0.000025 ”Echo (ping) reply 〜中略〜=0/0, ttl=64)” 0.000407 94 0.00001 ”Echo (ping) request〜中略〜=3072/12, ttl=64)” 0.000035

95 0.000026 ”Echo (ping) reply 〜中略〜=256/1, ttl=64)” 0.00041 96 0.000009 ”Echo (ping) request〜中略〜=3328/13, ttl=64)” 0.000035

97 0.000035 ”Echo (ping) request〜中略〜=3584/14, ttl=64)” 0.000035

98 0.000013 ”Echo (ping) reply 〜中略〜=512/2, ttl=64)” 0.000432 99 0.000027 ”Echo (ping) request〜中略〜=3840/15, ttl=64)” 0.00004

100 0.000023 ”Echo (ping) reply 〜中略〜=768/3, ttl=64)” 0.000434 101 0.000007 ”Echo (ping) request〜中略〜=4096/16, ttl=64)” 0.00003

102 0.000035 ”Echo (ping) request〜中略〜=4352/17, ttl=64)” 0.000035

103 0.000014 ”Echo (ping) reply 〜中略〜=1024/4, ttl=64)” 0.000466 104 0.000023 ”Echo (ping) request〜中略〜=4608/18, ttl=64)” 0.000037

105 0.000034 ”Echo (ping) request〜中略〜=4864/19, ttl=64)” 0.000034

106 0.000003 ”Echo (ping) reply 〜中略〜=1280/5, ttl=64)” 0.000491 107 0.000037 ”Echo (ping) request〜中略〜=5120/20, ttl=64)” 0.00004

108 0.000013 ”Echo (ping) reply 〜中略〜=1536/6, ttl=64)” 0.000506 109 0.000056 ”Echo (ping) reply 〜中略〜=1792/7, ttl=64)” 0.000527 110 0.000056 ”Echo (ping) reply 〜中略〜=2048/8, ttl=64)” 0.000549

(34)

3.4 可用帯域幅1Gbpsに対して500Mbpsで計測したキャプチャ結果の一部

No Time information 送信間隔 処理時間

63 0.50028 ”Echo (ping) request〜中略〜=0/0, ttl=64)”

64 0.000017 ”Echo (ping) request〜中略〜=256/1, ttl=64)” 0.000017 65 0.000012 ”Echo (ping) request〜中略〜=512/2, ttl=64)” 0.000012 66 0.000012 ”Echo (ping) request〜中略〜=768/3, ttl=64)” 0.000012 67 0.000012 ”Echo (ping) request〜中略〜=1024/4, ttl=64)” 0.000012 68 0.000012 ”Echo (ping) request〜中略〜=1280/5, ttl=64)” 0.000012 69 0.000013 ”Echo (ping) request〜中略〜=1536/6, ttl=64)” 0.000013 70 0.000022 ”Echo (ping) request〜中略〜=1792/7, ttl=64)” 0.000022 71 0.000007 ”Echo (ping) request〜中略〜=2048/8, ttl=64)” 0.000007 72 0.000011 ”Echo (ping) request〜中略〜=2304/9, ttl=64)” 0.000011 73 0.000011 ”Echo (ping) request〜中略〜=2560/10, ttl=64)” 0.000011 74 0.000014 ”Echo (ping) request〜中略〜=2816/11, ttl=64)” 0.000014 75 0.000011 ”Echo (ping) request〜中略〜=3072/12, ttl=64)” 0.000011 76 0.00001 ”Echo (ping) request〜中略〜=3328/13, ttl=64)” 0.00001 77 0.000011 ”Echo (ping) request〜中略〜=3584/14, ttl=64)” 0.000011

78 0.000007 ”Echo (ping) reply 〜中略〜=0/0, ttl=64)” 0.000182 79 0.000005 ”Echo (ping) request〜中略〜=3840/15, ttl=64)” 0.000012

80 0.000008 ”Echo (ping) reply 〜中略〜=256/1, ttl=64)” 0.000178 81 0.000003 ”Echo (ping) reply 〜中略〜=512/2, ttl=64)” 0.000169 82 0.000002 ”Echo (ping) request〜中略〜=4096/16, ttl=64)” 0.000013

83 0.000002 ”Echo (ping) reply 〜中略〜=768/3, ttl=64)” 0.000161 84 0.000003 ”Echo (ping) reply〜中略〜=1024/4, ttl=64)” 0.000152 85 0.000005 ”Echo (ping) reply〜中略〜=1280/5, ttl=64)” 0.000145 86 0.000002 ”Echo (ping) request〜中略〜=4352/17, ttl=64)” 0.000012

87 0.000002 ”Echo (ping) reply〜中略〜=1536/6, ttl=64)” 0.000136 88 0.000003 ”Echo (ping) reply〜中略〜=1792/7, ttl=64)” 0.000117 89 0.000003 ”Echo (ping) reply〜中略〜=2048/8, ttl=64)” 0.000113 90 0.000003 ”Echo (ping) request〜中略〜=4608/18, ttl=64)” 0.000011

91 0.000001 ”Echo (ping) reply〜中略〜=2304/9, ttl=64)” 0.000106 92 0.000011 ”Echo (ping) request〜中略〜=4864/19, ttl=64)” 0.000012

93 0.000012 ”Echo (ping) request〜中略〜=5120/20, ttl=64)” 0.000012

(35)

まり,前のパケットが詰まった分だけ後のパケットの処理時間に遅延が生じている表3.3の場合 にはパケットは正常に処理されているが,表3.4においてはパケットの処理自体が正常に行われ ていないと推測することができる.

3.4 考察

前節での結果を受けて,RTTの相関関係が発生する条件以外においても,それと同様の反応が 見られることが分かった.そこでRTTの相関関係について再度考察を行い,その発生条件につい て改めて検討を行う.

RTTの相関関係の原理については前章の図2.9で述べたとおりであり,ボトルネックリンクに おいて連続する二つのパケットが同時にキューイングした際に表れる分布の変化である.ここで 二つのパケットに表れる相関関係について詳しく説明する.通常のLANインターフェースにお いてデフォルトで設定されているキューイングはFIFO(First-In First-Out)である.これは名前 の通り先に入ったパケットが先に処理されるという先着順のキューイングとなる.そのため二つ の連続するパケットが同時にキューイングされた場合には,先に入ったパケットが放出されない 限り,後に入ったパケットは処理されないということになる.つまり,二つの連続するパケット 間に表れる相関関係というのはパケットが詰まることによって発生する処理時間の遅延というこ とになる.ここでNEPRIにおいてプロービングパケットとして用いられているICMPパケット の処理の流れについて考える[19].IPパケットの受信処理では,ICMPやUDP,TCPなどの上 位のプロトコルにパケットを引き渡す前に,その正当性の評価やオプションの処理,分割処理な どが行われる.(図3.14)

(36)

3.14 パケットの受信処理

従来のRTTの相関関係の考え方においては,キューイングの発生箇所がボトルネックリンク=

ハードウェア部分における処理であるように考えられていた.しかし,ハードウェア部分にパ ケットが送られてからICMPやUDPなどの各種上位のプロトコルに処理が受け渡されるまでに も上記のように様々な処理が行われる.よってこれらのパケット処理部分においても図3.15のよ うにキューイングが発生してしまっていると考えられる.

3.15 パケット処理部分におけるキューイングの可能性

また,NEPRIの測定アルゴリズムは,可用帯域幅以上の帯域幅にてプロービングパケットを送

信した際のRTTの特異な反応を見るというものである.つまり,対象となるボトルネックリンク の物理帯域幅が大きくなり,可用帯域幅が大きくなってくると,それを推定するためのプロービン

(37)
(38)
(39)

ない状況においてはRTTの値も正確な値を測定することが出来ず,∆RTTの増加傾向を基に RTTの相関関係を判定する従来の手法が正常に機能していないことが分かる.そこで,この問題 を解決するために広帯域においてもプロービングパケットの送信間隔δを十分に確保する手法を 提案する.

NEPRIにおいて帯域を推定するためには,可用帯域幅以上の速度=帯域幅µ にてプロービン

グパケットを送信する必要がある.ここで,帯域幅µ=(パケットサイズP)/(パケット送信間隔 δ) で与えられることから,帯域幅µを一定に保ったまま送信間隔 δ を大きくしたい場合にはパ ケットサイズP の値を大きくすればいいことが分かる.よって,測定に用いるプロービングパ ケットサイズP に着目した検討を行う.

4.1 プロービングパケットサイズを大きくした際の実験

上記の考えから,広帯域における測定の際にプロービングパケットサイズP を様々な値に変 化させ,再度NEPRIの精度評価実験を行う.実験諸元や実験環境構成,実験方法は3章までで 用いていたものと同様のものを用い,プロービングパケットサイズを5000bitから25000bitま

で5000bitずつ変化させて実験を行った.またこれまでの実験と同様にプロービング速度の初期

値を,対象とする可用帯域を基準として (1)2/3の値(相転移が起きない場合),(2) 同等の値,

(3)3/2の値(相転移が起きる場合)としてそれぞれ10回ずつ測定を行い,平均と標準偏差の値を

出力した.なお,パケットサイズを5000bitにした際の実験結果は3章のものと同様である.

結果を以下の表4.1〜4.5に示し,各パケットサイズにおける可用帯域幅500Mbpsの時の測定 値の偏移を図4.1〜4.5に示す.

(40)

4.1 パケットサイズ:5000bitの際の測定値[Mbps]

可用帯域幅 100 200 300 400 500 600 700 800 900 1000 測定結果 34.1 196.0 281.4 403.6 579.5 762.8 888.2 1003.7 1003.2 1000.6 標準偏差 17.0 192.9 166.4 167.1 186.2 177.9 124.9 50.5 56.1 2.9

4.1 パケットサイズ5000bit,可用帯域500Mbpsの場合の測定誤差

4.2 パケットサイズ:10000bitの際の測定値[Mbps]

可用帯域幅 100 200 300 400 500 600 700 800 900 1000 測定結果 27.7 118.9 232.5 296.3 493.0 636.4 829.4 947.7 1048.9 1201.3 標準偏差 16.3 42.1 114.9 91.7 141.0 179.3 103.7 113.7 109.2 207.1

(41)

4.2 パケットサイズ10000bit,可用帯域500Mbpsの場合の測定誤差

4.3 パケットサイズ:15000bitの際の測定値[Mbps]

可用帯域幅 100 200 300 400 500 600 700 800 900 1000 測定結果 33.2 160.4 235.5 344.1 476.9 630.0 719.7 875.3 961.3 1014.3 標準偏差 10.6 52.9 64.4 72.5 78.8 71.7 96.3 57.3 41.1 49.5

4.3 パケットサイズ10000bit,可用帯域500Mbpsの場合の測定誤差

(42)

4.4 パケットサイズ:20000bitの際の測定値[Mbps]

可用帯域幅 100 200 300 400 500 600 700 800 900 1000 測定結果 32.9 145.8 254.6 337.1 449.2 609.4 744.2 846.1 870.0 923.9 標準偏差 10.8 89.6 46.0 62.4 124.3 47.7 56.1 63.5 128.1 30.7

4.4 パケットサイズ20000bit,可用帯域500Mbpsの場合の測定誤差

4.5 パケットサイズ:25000bitの際の測定値[Mbps]

可用帯域幅 100 200 300 400 500 600 700 800 900 1000 測定結果 34.2 134.3 227.5 331.7 424.3 543.2 634.5 747.4 838.2 899.3 標準偏差 10.9 36.2 41.6 21.5 31.7 70.3 86.0 38.3 30.4 78.1

(43)

4.5 パケットサイズ25000bit,可用帯域500Mbpsの場合の測定誤差

これらの結果から,パケットサイズを大きくするにつれて測定精度が向上していくことが確認 できる.また,これらの図を見ると,図4.3から急激に結果が安定してきていることが分かる.こ の原因について考察する.

今回の実験環境は 3 章の実験環境構成でも述べたとおり,Ethernet にて構成されている.

EthernetのMTU(Maximum Transfer Unit:最大転送単位)はデフォルトでは1500(byte)に 設定されており,この値以上の大きさのパケットが処理される場合には図3.14で示したようにパ ケットのフラグメンテーション(分割)処理が行われる.よって,フラグメンテーションが発生 する場合には,通常のパケット処理に比べてサーバ内部で参照される関数が増大する.つまりパ ケットの処理にかかるコストが増えることによって,単位時間あたりにICMPプロトコルで処理 されるパケット数が減少したことにより影響が大きいと考えられる.よって,パケットサイズが 10000bitから15000bitの間で急激に測定精度が向上したと考えられる.

4.2 アルゴリズムの提案

これまでの実験結果から,パケットサイズによるパケット送信間隔の変動とRTTの関係につい て以下の関係が分かる.

1. パケットサイズが小さく,送信間隔が短すぎる場合

プロービング速度と可用帯域幅との関係によらず,RTTはほぼ一定値を返し続ける.

2. パケットサイズが大きく,送信間隔が充分確保されている場合

従来の理論通り,プロービング速度が可用帯域幅を超えている場合にはボトルネックリンク のキューイングによりRT Ti+1 の値はRT Ti よりも大きくなる.一方,プロービング速度が 可用帯域以下の場合には,RTTはランダムな値を取る.

(44)

よって,プロービングパケットサイズが小さく,送信間隔が短すぎる場合にはRTT全体の変化 が少ないため∑

∆RTTの絶対値は小さくなり,逆にプロービングパケットが大きく,送信間隔 が充分に確保されている場合には,RTT全体の変化の割合が大きいため∑

∆RTTの絶対値は大 きくなると考えられる.

従来のアルゴリズムは,∑

∆RTTの正負によってのみRTTの相関関係の判定を行い,二分探 索によって次のプロービング速度を決定していた.そこで,上記のパケットサイズによる送信間 隔とRTTの関係を踏まえて,このアルゴリズムに∑

∆RTTの絶対値による判定を加える.予め 設定しておいた範囲を閾値thとして,∑

∆RTTがその範囲を超えていれば,RTT全体の変化が 大きいと判断する.その場合には測定に用いたパケットサイズは適切であるとして測定を続ける.

そうでない場合には測定に用いるにはパケットの送信間隔が短すぎると判断して,パケットサイ ズを変化させた後に測定をやり直すこととする.またこの際に「RTTの変化の度合いはプロービ ング速度と可用帯域幅が近付くと検出されにくくなる」,「二分探索で推定結果を漸近させていく ことから,序盤の計測ミスが結果に大きな影響を及ぼす」という点を考慮し,二分探索の序盤に おいてのみ上記の判定を追加することとする.以下の図4.6に提案手法のアルゴリズムを示す.

4.6 提案手法のアルゴリズム

またここで,閾値thを決定するために前節での実験結果から各パケットサイズにおいてRTT の相関関係が観測できていた場合とできていなかった場合について実際にどのような測定結果が 得られていたかを確認する.RTTの相関関係を正しく測定できていた場合の∑

∆RTTの平均値

を表4.6,誤って測定してしまっていた場合の∑

∆RTTの平均値を表4.7に示す.

(45)

Σ∆RTT(ms) -0.03 0.036 -0.051 0.044 -0.02 0.033 -0.006 0.018 該当なし 0.03

これらの表からパケットサイズが小さい場合においては,測定結果の成否に関わらず絶対値 が小さいことが確認できる.また,RTT の相関関係が正常に測定できた場合にはパケットサ イズ15000bitまでの場合は∑

∆RTTの値には大きな違いが見られないが,パケットサイズが 20000bitを超えると ∑

∆RTTの値は上昇を見せていることが分かる.このことや,前節での実 験結果からもこの値付近が今回の実験環境において適切なプロービングパケットの送信間隔を維 持できるパケットサイズであると推測することができる.

以上の実験結果から,今回は閾値thの範囲を-0.04<th<0.1と設定する.閾値の最大値は表 4.6においてRTTの相関関係が有ると判定された際に,∑

∆RTTの値が急激に大きくなったパ ケットサイズが20000bitの値を参考としている.同様に閾値の最小値は表4.6,表4.7において RTTの相関関係が正しく無いと判定されなかった場合と誤って有ると判定されてしまった場合そ れぞれの値を参考として決定した.

この閾値thを用いて,パケットサイズの増加値を5000bit,可用帯域幅を 500Mbpsと設定し て,図4.6のアルゴリズムを用いて測定を行った.初期パケットサイズを5000bitとし,20回測 定を行った結果を表4.8に示す.

4.8 可用帯域幅:500Mbpsに対して提案手法を用いた際のプロービングパケットサイズ

平均パケットサイズ(bit) 25200 平均測定帯域幅(Mbps) 492.3

この結果から,ほぼ推測した通りのパケットサイズが今回の実験系においては適しているという 結果を得ることができたため,∑

∆RTTの絶対値を用いるという本手法は有効であるといえる.

(46)

4.3 処理コスト増大による影響

提案手法は帯域に応じてパケットサイズを変化させていくという特徴がある.よって,プロー ビングパケットサイズが大きくなってしまうと測定に用いる処理コストが大きくなってしまうと いう問題が考えられる.ここで,ICMPパケットはカーネル空間のみで処理が行われるため,処 理コストが増えていくとカーネル空間にかかる負荷が大きくなっていくと考えられる.そこで,

カーネル空間に負荷がかかっている状態で測定を行った際にRTTにどのような影響が及ぼされる かを確認する.実験環境は3章の通りである.サーバ側において負荷発生ツールstress[22]を実 行し,CPU,IO,メモリ,ハードディスクにそれぞれ負荷を与えた際のRTTの変化を観測した.

stressは負荷発生時に大量のシステムコールを実行するため,カーネル空間に負荷がかけられる

ツールである.CPUに負荷をかける際にはsqrt()を,IOに負荷をかける際にはsync()を,メモ リに負荷をかける際にはmalloc()とfree()を,ハードディスクに負荷をかける際にはwrite()と

unlink()を実行する.また,fork()を用いることでこれらの負荷を複数かけることも可能である.

測定の際には,パケットサイズが小さい=負荷も小さい場合で正常に測定が行われていた場合 と,パケットサイズが大きい=負荷が大きい場合で正常に測定が行われていた場合の2種類にて 測定した.実験環境は前者が,可用帯域幅=物理帯域幅:100Mbps,プロービングパケットサイ ズ:5000bit 後者が,可用帯域幅=物理帯域幅:1Gbps,プロービングパケットサイズ25000bitと した.また,これまでの実験と同様にプロービング速度の初期値は,可用帯域幅に対して(1)2/3 倍した場合(2)同等の値(3)3/2倍した値としており,それぞれ10回ずつ測定し,その平均を取 得した.負荷をかける際には,CPU負荷の場合fork()数を8つに,その他の場合にはfork()数 を4つに設定し,サーバ負荷を発生させた.以上の条件にて測定を行い,結果は表4.9,4.10に示 すものとなった.

(47)

ハードディスク負荷 95.4 4.3

4.10 パケットサイズ:25000bitの際にカーネル負荷を与えた際の測定値[Mbps]

平均値 標準偏差

負荷なし 842.9 134.6

CPU負荷 874.9 78.4

IO負荷 895.1 21.6

メモリ負荷 911.7 18.8 ハードディスク負荷 842.9 134.6

この結果より,カーネルに負荷を与えた際にもおいても,RTTの測定値には大きな影響を与え ないことが分かる.よって,プロービングパケットサイズを大きくして内部処理コストが増えて いったとしても測定結果には大きな影響を及ぼさないと考えられる.

(48)

参照

関連したドキュメント

これから取り組む 自らが汚染原因者となりうる環境負荷(ムダ)の 自らが汚染原因者となりうる環境負荷(ムダ)の 事業者

小・中学校における環境教育を通して、子供 たちに省エネなど環境に配慮した行動の実践 をさせることにより、CO 2

小学校における環境教育の中で、子供たちに家庭 における省エネなど環境に配慮した行動の実践を させることにより、CO 2

・グリーンシールマークとそれに表示する環境負荷が少ないことを示す内容のコメントを含め

洋上環境でのこの種の故障がより頻繁に発生するため、さらに悪化する。このため、軽いメンテ

(1)  研究課題に関して、 資料を収集し、 実験、 測定、 調査、 実践を行い、 分析する能力を身につけて いる.

6 他者の自動車を利用する場合における自動車環境負荷を低減するための取組に関する報告事項 報  告  事  項 内    

運輸部門では 2020 年までに 2000 年比 40%程度の削減を目指します。.  東京都では、 「東京都環境基本計画」 (平成 20 年