Transcript ppt
SBAM:ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism 慶應義塾大学 環境情報学部 榊原 寛 守分 滋 斉藤 匡人 徳田 英幸 [email protected] 21 Jan 2005 17 Jan 2005 Outline • • • • • • • 無線環境のひろがりについて 本研究の目的 アプローチ SBAMの設計・実装 評価 まとめ 今後の課題 無線環境の広がり • モバイル環境をターゲット とした様々な通信規格を 利用したインターネット通 信。 ex) 802.11abgn, Bluetooth, UWB, PHS 網, 2G・3G 携帯電話網など • 同時に複数の無線機器を 利用可能な環境の増加。 想定環境 すべての無線機器を利用し、効率よく帯域を利用したい。 ex) マルチメディアストリーム、web の閲覧、ファイル 転送など 本研究の目的 • ホスト上に搭載されている複数の無線インタ フェースを同時に利用し、通信速度を向上さ せるシステムの構築。 Network1 受信ホスト Network2 送信ホスト 帯域統合システムの機能要件 • 別のネットワークに接続していても利用可能 – ネットワークの状況に応じて、動作する • 容易なディプロメント • 既存アプリケーションの変更不要 • ネットワークインタフェースの数に対するスケー ラビリティ • 既存のネットワークプロトコルへの親和性 実現手法の比較検討(1/2) • アプリケーション層 – インタフェースの数に対する低いスケーラビリティ – 既存アプリケーションの変更が必要 • トランスポート層 – PTCP, RCP/R2CP [Hung-Yung Hsieh, mobicom02,03], RMTP [Luiz ら, NOSSDAV 2002 ] – 既存アプリケーションの変更が必要 – 多くのエンドホストへのディプロイが大変 • ネットワーク層/データリンク層(IEEE 802.3ad) – エンドノード同士でネットワークの状態をやり取りできない。 ネットワークスタックで の実現は不適切 実現手法の比較検討(2/2) • ソケット – – – – – 既存アプリケーションの変更が不要。 End-to-End でネットワークの状態の把握が可能。 ネットワークインタフェースの数に対するスケーラビリティがある。 新しいトランスポートプロトコルにも対応できる。 エンドホストへのディプロイが容易(socket library 使用時) SBAM A Socket-level Bandwidth Aggregation Mechanism の提案 SBAMの設計 • SBAM の概要 • システム構成図 SBAM の概要 • ソケット層において SBAM がデータを分割し、各ネットワーク インタフェース(N/I)からデータを送信する。 • socket() に対する引数は変更しなくてよい ホストA ホストB アプリケーション ユーザ空間 アプリケーション データ送信 ユーザ空間 データ受信 カーネル空間 カーネル空間 SBAM SBAM TCP/UDP TCP/UDP TCP/UDP N/I N/I N/I ユーザからの要求 S B A M 内 部 構 成 アプリケーション(ブラウザ, MUA) MIB socket Process Kernel SBAM ポリシー 伝達機能 ネットワーク モニタリング 機能 送信データの流れ 送信データ スケジュール 機能 送信データ 分割機能 NIC状態 通知機構 受信データの流れ 遅延: 定期的に ICMP パケットを送信 受信データ コントロール して計測 統合機能 データの流れ 帯域: Packet pair を利用 TCP UDP Transport Layer 機能動作 受信ホスト 送信ホスト ユーザからの要求 アプリケーション(ブラウザ, MUA) アプリケーション(ブラウザ, MUA) MIB ユーザポリシ データ socket socket SBAM SBAM ポリシー 伝達機能 ポリシの 反映 NIC状態 通知機構 送信データ スケジュール 機能 送信データ スケジュール 機能 送信データ 分割機能 送信データ 分割機能 データ統合後 アプリケー ションへ 受信データ 統合機能 NIC状態 通知機構 ネットワーク モニタリング 機能 NIC NIC1 NIC2 NIC が2枚あることを通知 NIC1 までのネットワーク状態をモニタ NIC1、NIC2 までのネットワーク状態をモニタ データ SBAM プロトタイプ実装 • カーネル内実装(SBAM) • 比較用アプリケーション実装(ABAM) SBAMプロトタイプ実装 • SBAM 実装環境 – FreeBSD 5.1 Release – 802.11b (Melco WLI-PCM-L11) – 802.11b (Intersil Prism 2.5) ユーザからの要求 アプリケーション(ブラウザ, MUA) MIB socket Process Kernel SBAM ポリシー 伝達機能 ネットワーク モニタリング 機能 NIC状態 通知機構 送信データ スケジュール 機能 送信データ 分割機能 受信データ 統合機能 • 実装手段 – socket ライブラリ – カーネル内部 TCP UDP Transport Layer SBAMプロトタイプ実装 送信 アプリケーション socket(AF_INET, SOCK_DGRAM, 0); sendto(); socket layer ユーザ空間 カーネル空間 送信データ分割機能 (sbam_send()) udp_output() udp_output() N/I N/I 書き換え rtalloc() ルーティング テーブル SBAMプロトタイプ実装 受信 アプリケーション recvfrom() socket layer ユーザ空間 カーネル空間 受信データ統合機能 (sbam_input()) udp_input() N/I •Socket buffer 自体を並 べ替える •SBAM ヘッダの内部を利 用して re-order する ABAM 評価実装 • 実装環境 無線ルータB 送信ホスト (sbam_server) 無線ルータA FastEther FastEther リンク2 リンク1 NIC1 802.11b 8 チャネル NIC2 802.11b 11 チャネル 受信ホスト(sbam_client) マシン プログラム名 実装されている機能 送信ホスト sbam_server ネットワークモニタリング機能(packet train) 送信データスケジュール機能 送信データ分割機能 NIC 状態通知機構 受信ホスト sbam_client 受信データ統合機能 SBAM の評価 • • カーネル内実装とアプリケーション実装の性能 比較 送信データスケジュール機能の有効性評価 1. 帯域遅延積差計算部 2. 帯域比例データ送信部 カーネル内実装とアプリケーション実装の性能 比較 • 経路の切り替えを行いデータ送信を行うアプリケー ションと、SBAM を用いて 5.5MB のデータを 50 回 送信してスループットを計測。 有線 Network1 ルータ 802.11b 11チャネル 送信ホスト 802.11b 2チャネル Network2 受信ホスト <実験環境> N/Iの枚数とスループット Th ro u g h p u t(M b p s ) 20 15 10 5 0 8 0 2 .1 1 b 単体 A BA M 計測方法 ・単体の場合と比べて 1.6 倍の帯域向上 ・ABAM に対して 97.4% のスループット SBA M SBAM 送信時オーバヘッド 16 14 12 ヘッダの付与など μs 10 8 6 デフォルトゲート ウェイの変更 4 2 0 N/I 1 枚時 N/I 2 枚時 sb a m _ sen d () 実行にかかっ た時間 sbam_send() rtalloc() ※ rtalloc(): ルーティングテーブルを探索するための関数。 ・ rtalloc() の呼び出しを抑えることで、オーバヘッドを抑 えられる プログラミングインタフェースの比較 ・SBAM 利用時 int main() { socket(SOCK_DGRAM); send_data; } ・ アプリケーション実装の場合 int main() { socket(SOCK_DGRAM); append_header; change_default_route; send_data; } default route を変更する には、raw socket を開き、 変更先のアドレスを設定す る必要がある。 ・アプリケーションは SBAM を利用するだけでいい。 SBAM の評価 • • カーネル内における実装とアプリケーションで の実装の性能比較 送信データスケジュール機能の有効性評価 1. 帯域遅延積差計算部 2. 帯域比例データ送信部 送信データスケジュール機能の有効性評価 ~実験環境~ • 27M のデータを送信して、それぞれ実験。 無線ルータB 無線ルータA 送信ホスト FastEther FastEther リンク2 リンク1 NIC2 802.11b 11 チャネル NIC1 802.11b 8 チャネル 受信ホスト 実験ネットワーク環境 送信データスケジュール機能の有効性評価 ~1. 帯域遅延積差計算部~ • 受信ホストにおける SBAM キューの長さの比較 実験環境 帯域計測 遅延計測 リンク1 リンク2 環境1 有 無 7Mbps, 遅延1.38ms 2Mbps, 26.63ms 環境2 有 有 7Mbps, 遅延1.38ms 2Mbps, 26.63ms 送信データスケジュール機能 ~1. 帯域遅延積差計算部~ • 帯域遅延積差機能より、SBAM キューの長さ が大きくなった。 帯域遅延積差計算なし 帯域遅延積差計算あり 送信データスケジュール機能の有効性評価 ~1. 帯域遅延積差計算部~ • 受信開始 100 パケット目までの受信ホスト上のシーケンス 番号の伸び。 • 送信開始時のデータ送信アルゴリズムは結果的に、キュー の長さに影響していない。 • データ量だけでなく、パケットシーケンスも考慮したアルゴリ ズムの必要性。 帯域遅延積差計算なし 帯域遅延積差計算あり 送信データスケジュール機能の有効性評価 ~2. 帯域比例データ送信部~ • 帯域予測値に比例したデータ送信 – パケットロス率 実験環境 帯域予測 リンク1 リンク2 環境3 無 7Mbps, 1.38ms 2Mbps, 1.60ms 環境4 有 7Mbps, 1.38ms 2Mbps, 1.60ms 環境5 有 7Mbps, 1.38ms 4Mbps, 1.60ms 送信データスケジュール機能の有効性評価 ~2. 帯域比例データ送信部~ 計測した利用可能帯域値 リンク1 リンク2 環境3 6770Kbps 1978Kbps 環境4 7021Kbps 1882Kbps 環境5 7082Kbps 3634Kbps • Packet train を利 用し、利用可能帯 域を計測し、その 予測した帯域値に 比例して投げるこ とで、各リンクの帯 域を効率的に利 用できる。 各環境におけるパケットロス率 45 41.9 40 ロス率(%) 35 30 25 20 15 10 5 0 0.3 環境3 0 0 環境4 0 0 環境5 リンク1 リンク2 今後の課題 • 性能改善 – スループットの改善。 – 受信ホスト上のキューの長さの改善。 • 未実装部の実装 – NIC 通知機構、ネットワークモニタリング機能、送信デー タスケジュール機能、ポリシー伝達機能 • さまざまな環境での実験 – TCP を利用した実験 – 3 枚以上のNICを利用した実験 まとめ • 複数ネットワークインタフェースの帯域を統合 する SBAM を提案した。 • プロトタイプ実装の評価を行うことにより、帯 域が向上することを確かめた。 • 送信アルゴリズムによって、異なるリンクの状 態に適応できることを確認した。 研究成果 • 榊原 寛, 守分 滋, 斉藤 匡人, 徳田 英幸 “複数ネットワークインタフェースの同時利用機構” 日本ソフトウェア科学会 第 3 回 SPA サマーワークショップポス ターセッション Aug. 2004 • 榊原 寛, 守分 滋, 斉藤 匡人, 徳田 英幸 “SBAM: ソケット層における帯域統合機構” 情報処理学会第 12 回マルチメディア通信と分散処理 (DPS), Vol. 2004, No.15 pp. 49-54 以上 絵 絵 2000 1800 1600 1400 1200 1000 800 600 400 200 NIC1 NIC2 0 0 0.5 1 1.5 2 2.5 tim e since first packet(seconds) 3 ユーザからの 要求 アプリケーション (ブラウザ , MUA) pr ocess MI B ker nel socket SBAM ポリシー 伝達機能 ネットワーク モニタリング 機能 NI C 状態 通知機能 送信データの流れ 送信データ スケジュール 機能 送信データ 分割機能 TCP UDP IP 受信データの流れ 受信データ 統合機能 Tr anspor t Layer Net wor k Layer コントロールデータの流れ Old 送信データスケジュール機能 通信開始時:リンク間の帯域遅延差を埋める。 式1 帯域に比例したデータ量を送信する。 式2 式1に関しての評価 リンク1(7.5Mbps,1.38ms), リンク2(2Mbps, 1.60ms) リンク1(7.5Mbps, 1.38ms), リンク2(4Mbps, 1.60ms) パケットロス率 パケットロス率 0% 0% リンク1の予測帯域 7082Kbps リンク1の予測帯域 7021Kbps リンク2の予測帯域 3634Kbps リンク2の予測帯域 1882Kbps 式1に関しての評価 リンク1(7.5Mbps,1.38ms), リンク2(2Mbps, 1.60ms), 帯域予測に基づくデータ送信: 無 予測帯域 パケットロス率 リンク1 6770Kbps 0.3% リンク2 1978Kbps 41.9% リンク1(7.5Mbps,1.38ms), リンク2(2Mbps, 1.60ms), 帯域予測に基づくデータ送信: 有 リンク1(7.5Mbps, 1.38ms), リンク2(4Mbps, 1.60ms), 帯域予測に基づくデータ送信: 有 予測帯域 パケットロス率 リンク1 7021Kbps 0% リンク2 1882Kbps 0% 予測帯域 パケットロス率 リンク1 7082Kbps 0% リンク2 3634Kbps 0% ユーザからの要求 アプリケーション(ブラウザ, MUA) MIB socket SBAM ポリシー 伝達機能 ネットワーク モニタリング 機能 送信データ スケジュール 機能 送信データ 分割機能 NIC状態 通知機構 TCP UDP 受信データ 統合機能 Transport Layer Process Kernel ネットワークモニタリング機能 • 利用可能帯域の計測 – packet train を利用。 • パケット数: 5 • 1パケットの大きさ: 1400bytes – 計測は受信ホスト側で行った。 • RTT の計測 – ICMP を利用。 送信データスケジュール機能 • 送信開始時の送信パケット数の決定方法 – 帯域遅延積差の大きいリンクへ、差分データ量を 送信。 • 各リンクへの送信パケット数の比の決定方法 – 片方のリンクの比の値が 1 になるように丸める – ex) 2:7 → 1:3 ABAM構成図 (1/2) データ送信アプリケーション SBAM 送信データの流れ 送信データ スケジュール 機能 ネットワーク モニタリング 機能 コントロール データの流れ • パケット数: 5 – 帯域遅延積差の大きいリンクへ、差 • 1パケットの大きさ: 1400bytes 分データ量を送信。 – 計測は受信ホスト側で行った。 各リンクへの送信パケット数の比 送信データ 分割機能 NI C 状態 通知機能 ユーザ空間 カーネル空間 TCP 送信データスケジュール機能 ネットワークモニタリング機能 送信開始時の送信パケット数の • 利用可能帯域の計測 決定方法 – packet train を利用。 UDP NI C sbam_server 内部構成 • • RTT の計測 の決定方法 – ICMP を利用。 片方のリンクの比の値が 1 になるよ うに丸める – ex) 2:7 → 1:3 ABAM構成図 (1/2) 関連研究 • トランスポート層 – PTCP, RCP/R2CP [Hung-Yung Hsieh, mobicom02,03] – RMTP [Luiz ら, NOSSDAV 2002 ] • リンク層 – IEEE 802.3ad (通称トランク) ネットワークスタックの変更による実現 機能内容 • ポリシ伝達機能 – ユーザポリシのやりとり。 • ネットワークモニタリング機能 – 遅延、帯域を計測 • 送信データスケジュール機能 – 遅延、帯域から各フローに対し送信するデータ量を 決定 • 送信データ分割機能 – SBAMヘッダ付与 遅延: 定期的に ICMP パケットを送信 して計測 • 受信データ統合機能 – SBAMヘッダ内の情報よりデータの再構築 帯域: Packet pair を利用 • NIC 状態通知機構 – NIC の状態を通信相手に通知する。