330 likes | 441 Views
TranSwitch :ネットワークフロー毎における最適な TCP への動的切替機構. 総合政策学部 4 年 山下 勝司 親:政策・メディア研究科 高橋 ひとみ サブ親:政策・メディア研究科 斉藤 匡人. 発表概要. 研究背景・問題意識 TranSwitch 概要 設計、実装 評価 関連研究 今後の課題、まとめ. 研究背景・問題意識. 研究背景 1/2. ネットワーク環境の多様化 通信形態 有線通信 無線通信 帯域 狭帯域(数 10Kbps ~数 100Kbps ) ex. ISDN 、モバイル通信 広帯域(数 Mbps ~ 10Gbps )
E N D
TranSwitch:ネットワークフロー毎における最適な TCP への動的切替機構 総合政策学部4年 山下 勝司 親:政策・メディア研究科 高橋 ひとみ サブ親:政策・メディア研究科 斉藤 匡人
発表概要 • 研究背景・問題意識 • TranSwitch 概要 • 設計、実装 • 評価 • 関連研究 • 今後の課題、まとめ
研究背景 1/2 • ネットワーク環境の多様化 • 通信形態 • 有線通信 • 無線通信 • 帯域 • 狭帯域(数10Kbps~数100Kbps) • ex. ISDN、モバイル通信 • 広帯域(数Mbps~10Gbps) • ex. ADSL、FTTH、LAN 内通信
研究背景 2/2 • 特定環境に最適化された TCP • 無線ネットワーク用 TCP • ex. Westwood+、Mobile TCP、M-TCP • 広帯域ネットワーク用 TCP • ex. BIC、FAST、Highspeed TCP、Scalable TCP • etc. • ex. NewReno、Vegas、P-TCP、Hybla • 送信側の変更のみで利用可能な TCP の研究 • 送受信ホストに同一の TCP 導入は困難
問題意識 • 一つの TCP vs. 多様なネットワーク環境 • 遅延、帯域、通信形態が多様なネットワーク環境 • 通常の OS は TCP を一つしか所持できない • 汎用性を重視した TCP を利用する必要性 • 特定環境に特化した TCP の利用は難しい
TranSwitch の提案 • OS へ複数の TCP を導入 →汎用性を重視した TCP と特定環境に最適化された TCP が共存可能 • ネットワークフロー毎に TCP を選択 →ネットワークの特性を考慮した TCP の利用
TranSwitch 概要 • OS へ複数の TCP を導入 • ネットワークフロー毎に TCP の選択 • ユーザによるネットワークフローと TCP の関連付け • ユーザによる TCP の追加、削除
想定シナリオ • 特性が異なる複数のネットワークを同時に利用 • 各ネットワークの特性に合わせた TCP の選択 • 広帯域ネットワーク→広帯域ネットワーク用 TCP • 無線通信→無線ネットワーク用 TCP • 特性が不明→汎用性を重視した TCP 通常 TranSwitch を利用 ネットワーク フローA フローB フローC フローA フローB フローC フロー TranSwitch TCP TCP 汎用的TCP 広帯域用TCP 無線用TCP ネットワーク 無線 不明 広帯域 無線 不明 広帯域 環境
TranSwitch の設計 • TranSwitch 機能要件 • TCP 混在環境の実現 • ネットワークフローと TCP の関連付け • ネットワークフロー毎の TCP 切替処理 • 送信側変更のみで利用可能な TCP を想定 • 送受信両側で変更が必要な TCP への対応は今後の課題
設計 1/3 • TCP 混在環境の実現 • 追加 TCP はカーネルモジュールとして実装 • OS が当初から持つ TCP(オリジナル TCP)から追加 TCP へ差分の度に処理 を切替 • 差分は関数単位で実装 (置換関数) • 追加 TCP は TranSwitch 用 TCP フォーマット に 沿って実装
設計 • TranSwitch 用 TCP フォーマット • TCP 名の表記 • TranSwitch での一意の識別子 • 置換関数の実装 • カーネル内の関数と置換する関数の実装 • 置換対応の表記 • 関数の置換対応を表記 • TranSwitch への登録関数、削除関数の実装 • TranSwitch へ TCP を登録および削除
設計 2/3 • ネットワークフローと TCP の関連付け • ネットワークの特性(遅延、帯域、通信形態)はネットワークフロー毎に異なる • ネットワークの特性に最適化された TCP の開発 →ネットワークフロー毎の TCP 選択の必要性
設計 3/3 • TCP 切替処理 • TCP フロー生成の検知 • ネットワークフロー、TCP の関連付け情報(定義情報)の参照 • 該当ソケットへの TCP 関連付け • ソケットに関連付けられた TCP をもとに関数を置換
実装 • TranSwitch 実装項目 • TCP 混在環境(TranSwitch 用 TCP フォーマット) • ネットワークフローと TCP の関連付け(ユーザインタフェース) • TCP 切替処理 • 実装環境 • Linux 2.4.32 • Fedora Core 1 • 配布形式 • カーネルパッチ
TranSwitch 実装 1/3 • TCP 混在環境 • 追加 TCP の実装形式として LKM(Loadable Kernel Module)を利用 →簡易な TCP の追加、削除 • TCP の追加 • % insmod LKM名 • TCP の削除 • % rmmod LKM名 • TCP の参照 • % lsmod LKM名 • 追加 TCP は TranSwitch 用 TCP フォーマットに準拠
TranSwitch 用 TCP フォーマット • TranSwitch への TCP 追加・削除 • TCP名の表記 • 置換対応の表記 • 置換関数の実装 • TCP 関数の一部が置換可能 (プロトタイプでは25の関数)
TranSwitch 実装 2/3 • ネットワークフローと TCP の関連付け(ユーザインタフェース) • 定義情報の追加 • 送受信ホストの IP およびポート番号、定義情報 ID、TCP 名を用いて設定 • ex. % trasw_add –si 192.168.1.3 westwood • 定義情報の削除 • 削除する定義情報 ID を指定 • ex. % trasw_del 10 • 定義情報の参照 • ex. % trasw_list
TranSwitch 実装 3/3 • TCP 切替処理 • TCP フロー生成の検知 • 検知した TCP フローと一致する定義情報を検索 • TCP ソケット構造体に TCP への参照を登録 • 置換対応表を参照し、処理を置換
評価 1/3 • 評価項目 • TCP の切替えによるオーバヘッドの計測 • スループット • 30回計測時の平均値 • Iperf 2.0.2 • 評価対象 • 通常のOS • カーネル内に実装された Reno • 通常のOS + TranSwitch • カーネル実装の Reno → 同実装で LKM 化した Reno • 全ての置換関数において置換を実行
評価 2/3 • 評価環境 • 利用機器 • PC: IBM ThinkPadT42p • CPU: Intel Pentium M 2GHz • NIC: 1 Gigabit Ethernet • RAM: PC27002GByte • ネットワーク環境 • Dummynet による遅延エミュレート • RTT10ms
評価 3/3 • 評価結果 • TranSwitch の利用により 0.85 Mbps(2.1%)減少 →スループットの微小な減少はあるが、実用可能
関連研究 1/3 • X-Kernel • Norman C. Hutchinson and Larry L. Peterson(University of Arizona) • マイクロカーネルとして設計 • 各プロトコルをモジュールとしてユーザランドで管理 • モジュールの組み合わせによりプロトコルスタックを編集可能 →複数の TCP の導入が可能 • ネットワークアーキテクチャ全体のマイクロカーネル化 • X-Kernel 用 TCP 作成コスト
関連研究 2/3 • WAD(A TCP Tuning Daemon) • Tom. Dunigan(ORNL), Matt. Mathis(PSC), and Brian Tierney(LBNL) • ネットワークフロー毎にソケットの設定が可能 • 定義情報をユーザランドのデーモンで管理 • ソケットの設定以外は不可 →TCP 自体の切替えは不可
関連研究 3/3 • AS-TCP(Application Specific TCP) • 小野祐介、斉藤俊介、田中康弘、寺岡文男(慶應大学), DICOMO2005 • OS へ複数の TCP を導入 • アプリケーション毎に TCP を選択 →ネットワークの特性を考慮できない
今後の課題 • 通信途中での TCP 切替 →TCP 選択の修正、通信中のネットワークの状態変化への対応 • 定義情報の設定方法の向上 • ネットワークインタフェース、プロセス名、etc… →より柔軟な TCP の選択が可能 • 定義情報検索の高速化 →オーバヘッドの削減 • TCP 選択補助機構 →不適切な TCP 選択の防止
まとめ • 問題意識 • 通常の OS は TCP を一つしか所持できないため、特定環境に最適化された TCP の利用は難しい • 提案 • TranSwtich は OS に複数の TCP を導入可能にし、ネットワークフロー毎に異なる TCP が利用可能 • 評価 • 類似技術との比較では TranSwitch が優位 • オーバヘッドは存在するが微小
発表論文 • “TranSwitch:トランスポート層におけるプロトコル切替機構” • 山下 勝司, 高橋 ひとみ, 斉藤 匡人, 徳田 英幸 • 日本ソフトウェア科学会 第4回 SPA サマーワークショップ, Aug. 2005 • “TranSwitch:ネットワークフロー毎における最適な TCP への動的切替機構” • 山下 勝司, 高橋 ひとみ, 斉藤 匡人, 徳田 英幸 • 情報処理学会 第10回ユビキタスコンピューティング研究会, Feb. 2006