sFlowは,トラフィック情報をサンプリングしたパケットから統計的な処理によって推定します。「統計的」などと聞くといかにも難しい技術のように聞こえますが,テレビのニュース番組や新聞などでよく見かける世論調査と基本原理は同じです。

 世論調査では,「全国から無作為(ランダム)に抽出(サンプリング)した2500人を対象として調査を行い,内閣の支持率は40%です」などという具合に結果を伝えます。これは,調査した2500人中の1000人が「支持する」と答えたというデータから,総人口が1億人とすると(子供も含んでしまいますが),4000万人が支持していると推定しているわけです。

 sFlowによるネットワーク・トラフィック調査の場合も同様に,「対象のネットワーク上を流れるトラフィック(パケット)から無作為に2500パケットを抽出した結果,Webアクセスのパケットが占める割合は40%だった」という感じでトラフィック情報を調べます。このように,全部のパケットについて調査を行わなくても,プロトコルごとのトラフィックについておおよその傾向がつかめるのが統計調査のメリットです(図3)。

図3●サンプリングによって統計的にトラフィックを処理する
図3●サンプリングによって統計的にトラフィックを処理する  [画像のクリックで拡大表示]

 ただし,ネットワーク・トラフィック調査の場合,世論調査とは異なる点が一つあります。それは,母集団の数(総パケット数)に上限がなく,時間経過とともにいくらでも増えていくという点です。このため,推定値は「ある期間内におけるトラフィック情報」ということになります。

 例えば,2500パケットを抽出した時点で,Webアクセスのパケットのサンプル数が1000パケットだったとしましょう。もし調査開始時点からこの時点までにやりとりした全パケット数が100万パケットだった場合,この期間に流れていたWebアクセスのパケットは40万パケットだったと推定できるわけです。

 具体的な計算式は,総パケット数=Na,総サンプル数=n,クラス(プロトコル別など)のサンプル数=c,推定値=Ncとすると

Nc=(c/n)×Na

で求められます(図3参照)。