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 の状態を通信相手に通知する。