sbam: ソケット層における帯域統合機構 a socket-level bandwidth aggregation mechanism

49
SBAM: ソソソソソソソソソソソソソソソ A Socket-level Bandwidth Aggregation Mechanism ソソソソソソ ソソソソソソ ソソ ソ ソソ ソ ソソ ソソ ソソ ソソ [email protected] 17 Jan 2005 21 Jan 2005

Upload: salome

Post on 22-Jan-2016

43 views

Category:

Documents


0 download

DESCRIPTION

SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism. 慶應義塾大学 環境情報学部 榊原 寛 守分 滋 斉藤 匡人徳田 英幸. [email protected]. 21 Jan 2005. 17 Jan 2005. Outline. 無線環境のひろがりについて 本研究の目的 アプローチ SBAM の設計・実装 評価 まとめ 今後の課題. モバイル環境をターゲットとした様々な通信規格を利用したインターネット通信。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

SBAM: ソケット層における帯域統合機構A Socket-level Bandwidth Aggregation Mechanism

慶應義塾大学 環境情報学部榊原 寛 守分 滋

斉藤 匡人 徳田 英幸[email protected]

17 Jan 200521 Jan 2005

Page 2: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

Outline

• 無線環境のひろがりについて• 本研究の目的• アプローチ• SBAM の設計・実装• 評価• まとめ• 今後の課題

Page 3: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

無線環境の広がり• モバイル環境をターゲ

ットとした様々な通信規格を利用したインターネット通信。ex) 802.11abgn, Bluetooth,   UWB, PHS 網 , 2G ・ 3G  携帯電話網など

• 同時に複数の無線機器を利用可能な環境の増加。

すべての無線機器を利用し、効率よく帯域を利用したい。 ex) マルチメディアストリーム、 web の閲覧、ファイル  転送など

想定環境

Page 4: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

本研究の目的• ホスト上に搭載されている複数の無線イ

ンタフェースを同時に利用し、通信速度を向上させるシステムの構築。

送信ホスト

受信ホスト

Network1

Network 2

Page 5: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

帯域統合システムの機能要件• 別のネットワークに接続していても利用可

能– ネットワークの状況に応じて、動作する

• 容易なディプロメント• 既存アプリケーションの変更不要• ネットワークインタフェースの数に対する

スケーラビリティ• 既存のネットワークプロトコルへの親和性

Page 6: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

実現手法の比較検討(1/2)• アプリケーション層

– インタフェースの数に対する低いスケーラビリティ– 既存アプリケーションの変更が必要

• トランスポート層– PTCP, RCP/R2CP [Hung-Yung Hsieh, mobicom02,03], RMTP [Luiz ら , NOS

SDAV 2002 ]

– 既存アプリケーションの変更が必要– 多くのエンドホストへのディプロイが大変

• ネットワーク層/データリンク層 (IEEE 802.3ad)– エンドノード同士でネットワークの状態をやり取りできな

い。

ネットワークスタックでの実現は不適切

Page 7: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

実現手法の比較検討(2/2)• ソケット

– 既存アプリケーションの変更が不要。– End-to-End でネットワークの状態の把握が可能。– ネットワークインタフェースの数に対するスケーラビリティが

ある。– 新しいトランスポートプロトコルにも対応できる。– エンドホストへのディプロイが容易( socket library 使用時)

SBAM A Socket-level Bandwidth Aggregation Mechanism

の提案

Page 8: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

SBAM の設計• SBAM の概要• システム構成図

Page 9: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

SBAM の概要

アプリケーション

SBAM

TCP/UDP TCP/UDP

データ送信

ホストA

アプリケーション

SBAM

TCP/UDP

N/I

データ受信

ホストB

N/I N/I

• ソケット層において SBAM がデータを分割し、各ネットワークインタフェース (N/I) からデータを送信する。

• socket() に対する引数は変更しなくてよい

ユーザ空間カーネル空間

ユーザ空間カーネル空間

Page 10: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

SBAM内部構成

ネットワークモニタリング

機能

送信データスケジュール

機能

送信データ分割機能 受信データ

統合機能

ポリシー伝達機能

ユーザからの要求 アプリケーション ( ブラウザ , MUA)

SBAM

socket

送信データの流れ

受信データの流れ

TCP UDP

MIB

NIC 状態通知機構

コントロールデータの流れ

ProcessKernel

Transport Layer

帯域: Packet pair を利用

遅延: 定期的に ICMP パケットを送信して計測

Page 11: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

機能動作

ネットワークモニタリング

機能

送信データスケジュール

機能

送信データ分割機能

ポリシー伝達機能

ユーザからの要求 アプリケーション ( ブラウザ , MUA)

SBAM

socketMIB

送信ホスト 受信ホスト

送信データスケジュール

機能

送信データ分割機能 受信データ

統合機能

アプリケーション ( ブラウザ , MUA)

SBAM

socket

NIC NIC1 NIC2

NIC 状態通知機構

ユーザポリシ

ポリシの反映

NIC1 までのネットワーク状態をモニタNIC が2枚あることを通知

NIC1 、 NIC2 までのネットワーク状態をモニタ

データ

データ

データ統合後アプリケーションへ

NIC 状態通知機構

Page 12: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

SBAM プロトタイプ実装• カーネル内実装 (SBAM)• 比較用アプリケーション実装 (ABAM)

Page 13: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

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

Page 14: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

SBAM プロトタイプ実装送信

socket(AF_INET, SOCK_DGRAM, 0);sendto();

udp_output() udp_output()

N/I N/I

送信データ分割機能(sbam_send())

ユーザ空間

ルーティングテーブル

書き換えrtalloc()

カーネル空間socket layer

アプリケーション

Page 15: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

SBAM プロトタイプ実装受信

アプリケーションrecvfrom()

udp_input()

N/I

受信データ統合機能(sbam_input())

ユーザ空間カーネル空間socket layer

•Socket buffer 自体を並べ替える•SBAM ヘッダの内部を利用して re-order する

Page 16: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

ABAM 評価実装

マシン プログラム名 実装されている機能

送信ホスト sbam_server

ネットワークモニタリング機能 (packet train)送信データスケジュール機能送信データ分割機能NIC 状態通知機構

受信ホスト sbam_client 受信データ統合機能

• 実装環境FastEther

受信ホスト( sbam_client )

送信ホスト( sbam_server )FastEther

無線ルータB 無線ルータA

リンク2 リンク1NIC1

802.11b8 チャネル

NIC2802.11b11 チャネル

Page 17: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

SBAM の評価• カーネル内実装とアプリケーション実装の

性能比較• 送信データスケジュール機能の有効性評価

1. 帯域遅延積差計算部2. 帯域比例データ送信部

Page 18: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

カーネル内実装とアプリケーション実装の性能比較

• 経路の切り替えを行いデータ送信を行うアプリケーションと、 SBAM を用いて 5.5MB のデータを 50 回送信してスループットを計測。

受信ホスト

有線Network1

Network2

ルータ

送信ホスト <実験環境>802.11b11 チャネル 802.11b

2 チャネル

Page 19: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

N/I の枚数とスループット

・単体の場合と比べて 1.6 倍の帯域向上・ ABAM に対して 97.4% のスループット

0

5

10

15

20

802.11b 単体 ABAM SBAM計測方法

Th

rou

gh

pu

t(M

bp

s)

Page 20: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

0

2

4

6

8

10

12

14

16

N/ I 1 枚時 N/ I 2 枚時sbam_send() 実行にかかった時間

μs

sbam_send()rtalloc()

SBAM 送信時オーバヘッド

rtalloc() の呼び出しを抑えることで、オーバヘッドを抑えられる

※ rtalloc(): ルーティングテーブルを探索するための関数。

デフォルトゲートウェイの変更

ヘッダの付与など

Page 21: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

プログラミングインタフェースの比較

・アプリケーションは 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 を開き、変更先のアドレスを設定する必要がある。

Page 22: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

SBAM の評価• カーネル内における実装とアプリケーショ

ンでの実装の性能比較• 送信データスケジュール機能の有効性評価

1. 帯域遅延積差計算部2. 帯域比例データ送信部

Page 23: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

送信データスケジュール機能の有効性評価~実験環境~

• 27M のデータを送信して、それぞれ実験。

実験ネットワーク環境

FastEther

受信ホスト

送信ホストFastEther

無線ルータB 無線ルータA

リンク2 リンク1

NIC1802.11b

8 チャネル

NIC2802.11b11 チャネル

Page 24: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

送信データスケジュール機能の有効性評価~ 1. 帯域遅延積差計算部~

帯域計測 遅延計測 リンク1 リンク2

環境1 有 無 7Mbps, 遅延 1.38ms 2Mbps, 26.63ms

環境2 有 有 7Mbps, 遅延 1.38ms 2Mbps, 26.63ms

実験環境

• 受信ホストにおける SBAM キューの長さの比較

Page 25: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

送信データスケジュール機能 ~ 1. 帯域遅延積差計算部~

• 帯域遅延積差機能より、 SBAM キューの長さが大きくなった。

帯域遅延積差計算なし 帯域遅延積差計算あり

Page 26: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

送信データスケジュール機能の有効性評価 ~ 1. 帯域遅延積差計算部~

• 受信開始 100 パケット目までの受信ホスト上のシーケンス番号の伸び。

• 送信開始時のデータ送信アルゴリズムは結果的に、キューの長さに影響していない。

• データ量だけでなく、パケットシーケンスも考慮したアルゴリズムの必要性。

帯域遅延積差計算なし 帯域遅延積差計算あり

Page 27: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

送信データスケジュール機能の有効性評価~ 2. 帯域比例データ送信部~

帯域予測 リンク1 リンク2

環境3 無 7Mbps, 1.38ms 2Mbps, 1.60ms

環境4 有 7Mbps, 1.38ms 2Mbps, 1.60ms

環境5 有 7Mbps, 1.38ms 4Mbps, 1.60ms

実験環境

• 帯域予測値に比例したデータ送信– パケットロス率

Page 28: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

送信データスケジュール機能の有効性評価 ~ 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

計測した利用可能帯域値

Page 29: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

今後の課題• 性能改善

– スループットの改善。– 受信ホスト上のキューの長さの改善。

• 未実装部の実装– NIC 通知機構、ネットワークモニタリング機能、送

信データスケジュール機能、ポリシー伝達機能

• さまざまな環境での実験– TCP を利用した実験– 3 枚以上の NIC を利用した実験

Page 30: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

まとめ• 複数ネットワークインタフェースの帯域

を統合する SBAM を提案した。

• プロトタイプ実装の評価を行うことにより、帯域が向上することを確かめた。

• 送信アルゴリズムによって、異なるリンクの状態に適応できることを確認した。

Page 31: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

研究成果

• 榊原 寛 , 守分 滋 , 斉藤 匡人 , 徳田 英幸“複数ネットワークインタフェースの同時利用機構”日本ソフトウェア科学会 第 3 回 SPA サマーワークショップポスターセッション Aug. 2004

• 榊原 寛 , 守分 滋 , 斉藤 匡人 , 徳田 英幸“ SBAM: ソケット層における帯域統合機構”情報処理学会第 12 回マルチメディア通信と分散処理 (DPS), Vol. 2004, No.15 pp. 49-54

Page 32: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

以上

Page 33: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism
Page 34: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism
Page 35: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

Page 36: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

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

Page 37: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

ネットワークモニタリング

機能

送信データスケジュール

機能

送信データ分割機能 受信データ

統合機能

ポリシー伝達機能

ユーザからの要求

アプリケーション(ブラウザ, MUA)

SBAM

socket

process

kernel

送信データの流れ

受信データの流れ

TCP UDP

IP

TransportLayer

NetworkLayer

Network

MI B

NI C 状態通知機能

コントロールデータの流れ

Page 38: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

Old

Page 39: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism
Page 40: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

送信データスケジュール機能通信開始時:リンク間の帯域遅延差を埋める。

帯域に比例したデータ量を送信する。

式1

式2

Page 41: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

式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

Page 42: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

式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%

Page 43: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

ネットワークモニタリング

機能

送信データスケジュール

機能

送信データ分割機能 受信データ

統合機能

ポリシー伝達機能

ユーザからの要求 アプリケーション ( ブラウザ , MUA)

SBAM

socket

TCP UDP

MIB

NIC 状態通知機構

ProcessKernel

Transport Layer

Page 44: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

ネットワークモニタリング機能• 利用可能帯域の計測

– packet train を利用。• パケット数 : 5 • 1パケットの大きさ : 1400bytes

– 計測は受信ホスト側で行った。• RTT の計測

– ICMP を利用。

Page 45: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

送信データスケジュール機能• 送信開始時の送信パケット数の決定方法

– 帯域遅延積差の大きいリンクへ、差分データ量を送信。

• 各リンクへの送信パケット数の比の決定方法– 片方のリンクの比の値が 1 になるように丸

める– ex) 2:7 → 1:3

Page 46: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

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 内部構成

Page 47: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

ABAM構成図 (1/2)

Page 48: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

関連研究• トランスポート層

– PTCP, RCP/R2CP [Hung-Yung Hsieh, mobicom02,03]

– RMTP [Luiz ら , NOSSDAV 2002 ]

• リンク層– IEEE 802.3ad ( 通称トランク )

ネットワークスタックの変更による実現

Page 49: SBAM: ソケット層における帯域統合機構 A Socket-level Bandwidth Aggregation Mechanism

機能内容• ポリシ伝達機能

– ユーザポリシのやりとり。• ネットワークモニタリング機能

– 遅延、帯域を計測• 送信データスケジュール機能

– 遅延、帯域から各フローに対し送信するデータ量を決定

• 送信データ分割機能– SBAM ヘッダ付与

• 受信データ統合機能– SBAM ヘッダ内の情報よりデータの 再構築

• NIC 状態通知機構– NIC の状態を通信相手に通知する。

帯域: Packet pair を利用

遅延: 定期的に ICMP パケットを送信して計測