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

ソフトウェア構成

第 6 章 ユーザ品質統計情報のリアルタイム収集~パフォーマンスモニタ

6.4 詳細設計および実装

6.4.1 ソフトウェア構成

図6-1に,パフォーマンスモニタのソフトウェア構成を示す.本ソフトウェアは1台の マシンでも動作するが,図 6-1では,キャプチャサブシステム,蓄積サブシステム,オフ ライン解析サブシステムが別々のマシン上で動作する大規模な構成の場合を示している.

キャプチャサブシステムは,キャプチャモジュールとオンライン解析モジュールで構成 される.キャプチャモジュールは,カーネル空間上に実装され,一定時間内に受信したパ ケットのIPおよびTCPヘッダを保持するため,複数の8キロバイトの固定長のバッファ

を用意する.キャプチャモジュールとオンライン解析モジュール間では,カーネル・ユー ザ空間間でのコンテキストスイッチにおけるオーバヘッドを削減するため,バッファ単位 でデータ転送を行う.

オンライン解析モジュールは,リアルタイムにヘッダを読み取り,解析する.複数プロ セッサを持つマシン上での処理高速化を図るため,複数のスレッドで構成される.データ 収集スレッドは,カーネル空間上のバッファを読み,ユーザ空間にコピーする.プロトコ ルスレッドは,IPおよびTCPヘッダを解析することにより,統計情報を収集する.本ス レッドは,TCP コネクションテーブルを管理し,トラヒック量に関する統計情報や TCP の振舞いに関する統計情報を収集するため,シンプルなTCP手順のエミュレートを行う.

転送スレッドは,ソケットインターフェースを介して,統計情報を蓄積サブシステムに転 送する.本スレッドは,測定期間内の本スレッドの CPU 負荷ができる限り一定になるよ うに,時間をかけて統計情報の転送を行う.統計情報のデータサイズは生の IP パケット のバイト数に比べて十分小さいため,上記2つのサブシステム間のネットワークの速度は 監視するネットワークの回線速度よりも小さくても構わない.タイマ制御プロセスは,オ ンライン解析スレッドならびに転送スレッドに対し,タイムアウトイベントを通知する.

蓄積サブシステムは,蓄積モジュールと圧縮モジュールから構成される.蓄積モジュー ルは,キャプチャサブシステムから統計情報を受信し,統計情報ログとしてディスクに記 録する.蓄積期間毎の各統計情報の集合が,1 個のファイルとして統計情報ログに記録さ れる.圧縮モジュールは,1時間,1日,1週間,1ヶ月一定期間毎に,数値の合計,平均 などの処理により,複数の統計情報ログを集約する.

オフライン解析サブシステムは,ログアクセスモジュールとGUIモジュールから構成さ れる.ログアクセスモジュールは,オペレータが大規模な統計情報を解析するのに便利な 機能を提供する.例えば,オペレータは,特定のIPアドレス,特定のサブネットワーク,

特定の回線,特定のアプリケーションに対して,統計情報をフィルタすることができる.

また,トラヒック量,再送率の順序で IP アドレスの組毎の統計情報をソートすることが できる.GUIモジュールは,オペレータに統計情報にアクセスし,その結果を表示するた めのグラフィカルなインターフェースを提供する.解析結果は,テキスト形式の結果とと もに,グラフ形式でも表示可能である.

キャプチャサブシステム

タイマ制御スレッド オンライン解析モジュール

プロトコルスレッド データ収

集スレッド

転送 スレッド ユーザ

空間

カーネ ル空間

キャプチャ モジュール デバイス

ドライバ

ソケットイン ターフェース

TCP/IP NIC

蓄積サブシステム

蓄積 モジュール ソケットイン ターフェース

TCP/IP NIC 圧縮 モジュール

オフライン解析 サブシステム

ログアクセス モジュール

統計情報 ログ

GUI モジュール

10/100Mbpsイーサネット NIC

10/100Mbit/sイーサネットまたは 155Mbit/s ATM

図 6-1 ソフトウェア構成

本ソフトウェアは,多数の TCP コネクションとその統計情報を識別するために,TCP コネクションテーブルと統計情報テーブルを管理する.図 6-2は,本システムが管理する TCPコネクションテーブルと統計情報テーブルの構成を示す.

各TCPコネクションは,IPアドレスとポート番号の組で識別される.新しいSYNセ グメントや,ユーザデータを含むACKセグメントであるDTセグメントを検知したとき,

そのTCPコネクションに対し,TCPコネクションテーブルが用意される.コネクション テーブルは,発着(イニシエータ側およびレスポンダ側)のIPアドレスおよびにポート番号,

TCPの状態,内部変数,次のTCPコネクションテーブルへのポインタを含む.内部変数 には,以下のデータを含む.

z init-seq: イニシエータ側の現在のシーケンス番号 z resp-seq: レスポンダ側の現在のシーケンス番号 z init-iseq: イニシエータ側の初期シーケンス番号 z resp-iseq: レスポンダ側の初期シーケンス番号

z initial-time: コネクション開始時刻 (SYNセグメントが検知された時刻)

統計情報は,IPアドレスの組,アプリケーションに対応するウェルノウンポートの情報,

ならびに,IP層,TCP層,アプリケーション層毎の統計情報を持つ.

図 6-2 テーブルの構成