TranSwitch:ネットワークフロー毎にお ける最適な TCP への動的切替機構 総合政策学部4年 山下 勝司 親:政策・メディア研究科 高橋 ひとみ サブ親:政策・メディア研究科 斉藤 匡人 発表概要 研究背景・問題意識 TranSwitch 概要 設計、実装 評価 関連研究 今後の課題、まとめ 研究背景・問題意識 研究背景 1/2 ネットワーク環境の多様化 通信形態 有線通信 無線通信 帯域 狭帯域(数10Kbps~数100Kbps) ex. ISDN、モバイル通信 広帯域(数Mbps~10Gbps) ex. ADSL、FTTH、LAN 内通信 研究背景 2/2 特定環境に最適化された TCP 無線ネットワーク用 TCP 広帯域ネットワーク用 TCP ex. BIC、FAST、Highspeed TCP、Scalable TCP etc. ex. Westwood+、Mobile TCP、M-TCP ex. NewReno、Vegas、P-TCP、Hybla 送信側の変更のみで利用可能な TCP の研究 送受信ホストに同一の TCP 導入は困難 問題意識 一つの TCP vs. 多様なネットワーク環境 遅延、帯域、通信形態が多様なネットワーク環境 通常の OS は TCP を一つしか所持できない 汎用性を重視した TCP を利用する必要性 特定環境に特化した TCP の利用は難しい TranSwitch の提案 OS へ複数の TCP を導入 →汎用性を重視した TCP と特定環境に最適化された TCP が共存可能 ネットワークフロー毎に TCP を選択 →ネットワークの特性を考慮した TCP の利用 TranSwitch 概要 TranSwitch 概要 OS へ複数の TCP を導入 ネットワークフロー毎に TCP の選択 ユーザによるネットワークフローと TCP の関連 付け ユーザによる TCP の追加、削除 想定シナリオ 特性が異なる複数のネットワークを同時に利用 各ネットワークの特性に合わせた TCP の選択 広帯域ネットワーク→広帯域ネットワーク用 TCP 無線通信→無線ネットワーク用 TCP 特性が不明→汎用性を重視した TCP 通常 フローA フローB TranSwitch を利用 フローC ネットワーク フロー フローA フローB フローC TranSwitch TCP TCP 広帯域 無線 不明 ネットワーク 環境 広帯域用TCP 無線用TCP 広帯域 無線 汎用的TCP 不明 設計・実装 TranSwitch の設計 TranSwitch 機能要件 1. 2. 3. 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 切替処理 1. 2. 3. 4. TCP フロー生成の検知 ネットワークフロー、TCP の関連付け情報(定義情報)の参照 該当ソケットへの TCP 関連付け ソケットに関連付けられた TCP をもとに関数を置換 実装 TranSwitch 実装項目 1. 2. 3. TCP 混在環境(TranSwitch 用 TCP フォーマット) ネットワークフローと TCP の関連付け(ユーザインタフェース) TCP 切替処理 実装環境 Linux 2.4.32 Fedora Core 1 配布形式 カーネルパッチ TranSwitch 実装 1/3 TCP 混在環境 追加 TCP の実装形式として LKM(Loadable Kernel Module) を利用 →簡易な TCP の追加、削除 TCP の追加 TCP の削除 % rmmod LKM名 TCP の参照 % insmod LKM名 % 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 切替処理 1. 2. 3. 4. TCP フロー生成の検知 検知した TCP フローと一致する定義情報を検索 TCP ソケット構造体に TCP への参照を登録 置換対応表を参照し、処理を置換 評価 評価 1/3 評価項目 TCP の切替えによるオーバヘッドの計測 スループット 30回計測時の平均値 Iperf 2.0.2 評価対象 通常のOS カーネル内に実装された Reno 通常のOS + TranSwitch カーネル実装の Reno → 同実装で LKM 化した Reno 全ての置換関数において置換を実行 評価 2/3 評価環境 利用機器 PC: IBM ThinkPad T42p CPU: Intel Pentium M 2GHz NIC: 1 Gigabit Ethernet RAM: PC2700 2GByte ネットワーク環境 Dummynet による遅延エミュレート RTT10ms 評価 3/3 評価結果 平均スループット(Mbps) 45 40 39.96 39.01 35 30 25 20 ^ 15 10 5 0 通常 TranSwitch 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
© Copyright 2024 ExpyDoc