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