ソフトウェアによる 精 密 ペーシング 方 式 を 用 いたTCP 通 信 性 能 の 改 善 高 野 了 成 1,2, 工 藤 知 宏 1, 児 玉 祐 悦 1, 松 田 元 彦 1, 岡 崎 史 裕 1, 石 川 裕 3,1 1) 産 業 技 術 総 合 研 究 所, グリッド 研 究 センター 2) 株 式 会 社 アックス 3) 東 京 大 学 2006 年 1 月 27 日 電 子 情 報 通 信 学 会 ネットワークシステム 研 究 会 @ 大 阪 工 業 大 学
発 表 の 流 れ 2/24 背 景 高 速 長 距 離 ネットワークにおけるTCPの 問 題 既 存 のペーシング 実 装 の 問 題 ギャップパケットを 用 いたペーシングの 実 現 PSPacerの 実 装 方 法 評 価 まとめ
TCPのフロー 制 御 3/24 ウィンドウ 制 御 RTT(Round Trip Time) 内 に 送 出 するパケット 量 の 決 定 輻 輳 ウィンドウ(cwnd)がネットワークの 帯 域 遅 延 積 (BDP)に 一 致 することが 理 想 バースト 制 御 パケット 送 出 タイミングの 決 定 ACK 受 信 をパケット 送 信 のトリガとすることで,RTT 内 で 均 等 にパケットを 送 出 する(ACKクロッキング)
ACKクロッキングとバースト 送 信 4/24 ACKクロッキングによりバースト 送 信 を 平 滑 化 する 1 Gbps 入 出 力 帯 域 の 差 分 が,ボトルネックルータのバッファ サイズを 超 えると,パケットが 破 棄 される 単 純 で 効 果 的 な 方 法 だが, 常 に 有 効 とは 限 らない 例 えば,スロースタート,ACK 圧 縮 ON-OFFトラフィック 3.125MB バースト 送 信 が 平 滑 化 されたトラフィック 500 Mbps 500 Mbps 平 均 帯 域 500 Mbps 平 均 帯 域 500 Mbps RTT(100ms) Time (GbE,ボトルネック 帯 域 500Mbps,RTT 100msの 場 合 ) Time
ペーシング 5/24 ACKクロッキングの 代 わりに, 目 標 帯 域 に 基 づいて パケット 送 信 間 隔 (IPG)を 調 整 する TCPでは,RTT/cwndごとにパケット 送 信 すればよい 精 密 なIPG 制 御 には 高 精 度 タイマが 必 要 GbEの 場 合,1500バイトのパケット 送 信 に12us 要 する タイマ 割 込 みの 負 荷 増 大 により, 実 現 は 困 難 ペーシングなし: RTT RTT ペーシングあり: RTT/cwnd
発 表 の 流 れ 6/24 背 景 ギャップパケットを 用 いたペーシングの 実 現 PSPacerの 実 装 方 法 評 価 まとめ
ギャップパケット(1) 7/24 タイマ 割 込 みを 利 用 しない,ソフトウェアによる 精 密 なパケットスケジューリングを 実 現 したい 実 パケット 間 にギャップパケット(ダミーパケット)を 挿 入 することでIPGを 調 整 する 物 理 的 なパケット 送 信 時 間 は 正 確 なので,パケット サイズを 変 更 することで,IPGを 精 密 に 制 御 可 能 ペーシングなし RTT RTT RTT/cwnd ペーシングあり ギャップパケット
ギャップパケット(2) 8/24 ギャップパケットは 実 際 に 送 信 PCから 送 信 する 必 要 がある PAUSEフレーム(IEEE 802.3x)を 利 用 する 直 近 のスイッチ/ルータの 入 力 ポートで 破 棄 されるので, 外 部 ネットワークへの 影 響 はない 送 信 PC ( 普 通 の)スイッチ 実 パケット ギャップパケット
ギャップパケットサイズの 計 算 9/24 基 本 アルゴリズム 物 理 帯 域 に 占 める 目 標 帯 域 の 割 合 を 基 にIPGを 調 整 max_rate ipg = 1 packet_size target_rate IPGがMTUより 大 きい 場 合 は, 複 数 のギャップパケットを 挿 入 する 例 えば, max_rate = 1 Gbps target_rate = 500 Mbps packet_size = 1500 Byte 1000 ipg = 1 1500= 1500 500
目 標 帯 域 の 見 積 り 10/24 静 的 ペーシング 静 的 に 固 定 値 を 設 定 する ボトルネック 帯 域 が 既 知 で, 一 定 の 場 合 に 有 効 動 的 ペーシング ウィンドウ 制 御 の 情 報 (cwnd,rtt)を 基 に 目 標 帯 域 を 計 算 し,ギャップパケットサイズを 決 定 する ボトルネック 帯 域 が 不 明 の 場 合 に 有 効 target_rate = packet_size cwnd RTT
発 表 の 流 れ 11/24 背 景 ギャップパケットを 用 いたペーシングの 実 現 PSPacerの 実 装 方 法 評 価 まとめ
PSPacerの 実 装 12/24 Iproute2フレームワーク Qdiscモジュールとして 実 装 tcコマンドで 設 定 可 能 カーネル 再 構 築 不 要 ドライバ 非 依 存 プロトコル 非 依 存 enqueue クラスごとの 送 信 キュー ソケット 層 プロトコルスタック クラシファイア 送 信 バッファ PSPacer パケット スケジューラ 実 パケット dequeue デバイスドライバ ギャップパケット
PSPacerの 使 用 例 13/24 # tc qdisc add dev eth0 root handle 1: psp default 2 # tc class add dev eth0 parent 1: classid 1:1 psp rate 500mbit # tc class add dev eth0 parent 1: classid 1:2 psp mode 0 # tc qdisc add dev eth0 parent 1:1 handle 10: pfifo # tc qdisc add dev eth0 parent 1:2 handle 20: pfifo # tc filter add dev eth0 parent 1: protocol ip pref 1 u32 / match ip dport 80 0xffff classid 1:1 dport=80 1: default root qdisc 1:1 1:2 10: 20: sub classes sub qdiscs 500 Mbps
発 表 の 流 れ 14/24 背 景 ギャップパケットを 用 いたペーシングの 実 現 PSPacerの 実 装 方 法 評 価 ギャップパケットによる 帯 域 制 御 高 遅 延 環 境 でのTCP 通 信 におけるペーシングの 効 果 まとめ
実 験 環 境 (1) 15/24 目 標 帯 域 を 変 えながら,1 対 1 通 信 の 帯 域 をGtrcNET-1で 計 測 Dell 5224 GtrcNET-1 Iperf PC 環 境 CPU: Intel Xeon/2.4GHz dual Memory: 2GB (DDR266) PCI Bus: PCI-X 133MHz/64bit NIC: Intel PRO/1000 (82545EM) OS: Fedora Core 3 Linux 2.6.14.2 + Web100 2.5.6 BIC TCP Socket Buffer: 12.5MB txqueuelen: 10000 GtrcNET-1 帯 域 測 定
GtrcNET-1:プログラマブル ギガビットネットワークテストベッド 16/24 SSRAM 1 Gbps read and write simultaneously 144Mbits/port FPGA SERDES 1000Base-SX Transceiver Xilinx XC2V6000 (76K logic cells) 4 GbE ports
ギャップパケットによる 帯 域 制 御 17/24 8Kbps~930Mbpsでの 帯 域 制 御 に 対 応 得 られた 帯 域 (Mbps) 1000 800 600 400 200 0 目 標 値 実 測 値 下 限 :8 Kbps 上 限 :930 Mbps* 0 100 200 300 400 500 600 700 800 900 1000 目 標 帯 域 (Mbps) *) ギャップパケットが 最 小 フレームサイズである64バイトの 場 合 ( 評 価 には 静 的 ペーシングを 用 いた)
実 験 環 境 (2) 18/24 GtrcNET-1 で 高 遅 延 環 境 をエミュレートし, 帯 域 とパケットロスを 計 測 Dell 5224 GtrcNET-1 Iperf PC 環 境 CPU: Intel Xeon/2.4GHz dual Memory: 2GB (DDR266) PCI Bus: PCI-X 133MHz/64bit NIC: Intel PRO/1000 (82545EM) OS: Fedora Core 3 Linux 2.6.14.2 + Web100 2.5.6 BIC TCP Socket Buffer: 12.5MB txqueuelen: 10000 GtrcNET-1 往 復 遅 延 : 100ms 帯 域 : 500Mbps Drop Tail ルータ (FIFO 1MB) 帯 域 測 定 (500us)
( 参 考 ) BIC TCP 19/24 帯 域 のスケーラビリティとTCP-Friendlinessを 両 立 cwnd Additive Increase/Binary Search Increaseモード パケットロス 時 のcwndをW max に 設 定 する Additive Increase Binary Search Increase BIC W max Max Probing W min Reno Time (RTT)
高 遅 延 環 境 でのTCP 通 信 における 20/24 ペーシングの 効 果 ( 帯 域 は1 分 間 の 平 均 値 ) 平 均 帯 域 (Mbps) Iperf (TCP) GrtcNET-1 (Ethernet) パケットロス 数 nopsp 200 206.8 1455 PSPD 315 321.7 285 PSPS 433 447.7 0 nopsp: ペーシングなし PSPD: 動 的 ペーシング PSPS: 静 的 ペーシング (BW max =500Mbps)
平 均 帯 域 と 輻 輳 ウィンドウサイズ(1) 21/24 1000 800 平 均 帯 域 : 206.8 Mbps Bandwidth Window Size 10 8 1000 パケットロス 後 の 挙 動 が 異 なる 800 平 均 帯 域 : 321.7 Mbps Bandwidth Window Size 10 8 Bandwidth (Mbps) 600 400 6 4 Window Size (MB) Bandwidth (Mbps) 600 400 6 4 Window Size (MB) 200 2 200 2 0 0 10 20 30 40 50 60 Time (Sec) 0 0 0 10 20 30 40 50 60 Time (Sec) 0 (a) nopsp (b) PSPD ( 帯 域 は100msの 平 均 値,cwndは100ms 間 隔 で 取 得 )
パケットロス 直 後 の 挙 動 22/24 1000 スロースタート 後 にパケットロスが 発 生 し,W max が 縮 退 するため, cwndの 回 復 に 時 間 がかかる 1000 スロースタート 後 にパケットロスが 発 生 しない 800 800 Bandwidth (Mbps) 600 400 Bandwidth (Mbps) 600 400 200 200 0 27 28 29 30 31 32 Time (Sec) (a) nopsp 0 25 26 27 28 29 30 Time (Sec) (b) PSPD ( 帯 域 は500us 間 隔 で 取 得 )
平 均 帯 域 と 輻 輳 ウィンドウサイズ(2) 23/24 送 信 帯 域 がボトルネック 帯 域 を 超 え ないので,パケットロスが 発 生 しない 1000 800 平 均 帯 域 : 447.7 Mbps Bandwidth Window Size 10 8 cwndが 約 10MBまで 上 昇 しているの は, 送 信 PCのインタフェースキュー 遅 延 が 増 加 したため Bandwidth (Mbps) 600 400 6 4 Window Size (MB) 200 2 0 0 10 20 30 40 50 60 Time (Sec) (c) PSPS 0 ( 帯 域 は100msの 平 均 値,cwndは100ms 間 隔 で 取 得 )
まとめ 24/24 パケット 送 信 間 隔 を 精 密 にスケジューリングできる ギャップパケットを 提 案 した イーサネット 上 での 実 現 にPAUSEフレームを 利 用 する ギャップパケットを 用 いてソフトウェアによる 精 密 な ペーシング 方 式 を 実 現 した ペーシングを 適 用 した 結 果, 高 遅 延 環 境 において, TCP 通 信 性 能 が 向 上 することを 示 した スロースタート 時 のパケットロスを 削 減 できた
25/24 PSPacerはGNU GPLライセンスにて 公 開 GridMPI: http://www.gridmpi.org/ なお, 本 研 究 の 一 部 は 文 部 科 学 省 経 済 活 性 化 のための 重 点 技 術 開 発 プロジェクト の 一 環 として 実 施 している 超 高 速 コンピュータ 網 形 成 プロジェクト(NAREGI: National Research Grid Initiative)による.
今 後 の 課 題 26/24 BIC TCP 以 外 の 輻 輳 制 御 アルゴリズムを 用 いた 評 価 FAST TCP ペーシングによる 同 期 ロス 問 題 の 検 証 [Aggarwal00]