広帯域高遅延ネットワーク 伝送技術 核融合科学研究所 計算機・情報ネットワークセンター 山本 孝志 2006年2月28日 「核融合実験のデータ処理に関する次世代システム技術の検討」 自己紹介 • 核融合科学研究所 – 計算機・情報ネットワークセンター – 1997年10月に赴任 – 業務:ネットワーク管理とセキュリティ管理 • ワクチン、ファイヤウォール、DHCP登録、同講習会 – 4年前から非常勤講師を始める • 大同工大 情報工学科 – やっとC言語がわかってきた 確認君1号 近影 2 概要 • 何が問題なのか • どのような対策が開発されたか – TCP base – UDP base • では、どうやって研究を進めるか – 実機、シュミレーション 3 世界記録 • Internet 2 Land Speed Record – 8 Gbps – 32,000km, RTT = 500ms • Seattle - Tokyo - Chicago - Amsterdam - Seattle – 東大, WIDE, Chelcio Comm., … http://data-reservoir.adm.s.u-tokyo.ac.jp/lsr-20051110/ 4 距離・速度積の比較 (データレゼボワール プロジェクトより) 2005年12月 NIFS-京都大 180km x 630Mbps = 113.4Tbm/s http://data-reservoir.adm.s.u-tokyo.ac.jp/press/lsr-20041225-j/graph-j.png http://data-reservoir.adm.s.u-tokyo.ac.jp/lsr-20051110/ 5 問題点 • SuperSINET 1Gbpsの回線を生かしきれな い。 – SNET 100Mbp以下? – ルータには何の問題もありませんよ (by NII) • TCP/IPのAck応答に起因する普遍的な問題。 – Long Fat pipe Network: LFN 6 ACK (LAN) スライディングウインドウ 傾きは光速 7 ACK (WAN) NIFS – Kyoto Univ.: RTT=10ms, 1Gbps*10ms /8 = 1.25MB Window=10 良 好 ス カ ス カ 8 TCP/IP のオプション • Window Scale – 2^16(64kB)以上に対応させる。 • SACK – 欠落データを個別に指定 • Timestamp ACK SACK op. – RTTの計測 最近のOSは、ほぼ対応済み。 9 Window Size • Window Sizeを大きくしましょう。 – Linux • /etc/sysctl.conf – Windows • Dr. TCP # increase TCP max buffer size net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 # increase Linux autotuning TCP buffer limits # min, default, and max number of bytes to use net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 # turn on window scale and timestamp option HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Tcp1323=3 # set default TCP window size (default = 16KB) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpWindowSize=131400 # and maybe set this too: (default = not set ) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\GlobalMaxTcpWindowSize=16777216 • でも、だめじゃない。 10 ウィンドウサイズ • 告知ウィンドウサイズ (awin) • 輻輳ウィンドウサイズ (cwin) 実際のWindow = min(awin, cwin) % sudo tcpdump tcp port smtp 07:39:18.686 IP A.49110 > B.smtp: S 0:0(0) win 8760 <mss 1460> 07:39:18.689 IP B.smtp > A.49110: S 0:0(0) ack 1 win 5840 <mss 1460> ジャンボフレームMTU: 9000バイト 11 輻輳回避 • TCPは、他との通信の公平性を保つため、ウ インドウサイズを調整して輻輳回避を行う。 – Tahoe – Reno – New Reno – Vegas P. loss 12 輻輳回避(WAN) 1.Gigabitクラスのバーストに耐えられない 2. 回復に予想以上の時間がかかる。 1時間以上との報告例もあり。 13 バースト対策 • レートコントロールをする。 – PAUSEパケットを入れてデータの転送速度を抑 制する。 • PAUSEパケットは HUBで捨てられる。 • 7Gbps (8.2Gbps, RTT=350ms, 24,000km, 日米1往復半) @ SC2003 cf. Comet Project http://www.comet-can.jp/ 14 輻輳制御の開発 • 輻輳回避アルゴリズムの改良 – AIDM; additive increases multiplicative decreases α β 1/x 0.5 Scalable TCP 0.01 0.125 HighSpeed TCP Ta(x) Tb(x) Hamilton TCP fa(x) fb(x) Bic TCP slow startの改良 Standard (Reno) Vegas Fast TCP RTTで調節 Vegasの改良 x = cwin • x = x + α(x) 順調なとき • x = (1 – β)x パケットロス発生 テーブル: Ta(x), Tb(x) 関数: fa(x), fb(x) 15 輻輳制御アルゴリズムの比較例 • JGNテストベット – SABUL > FAST > Scalable, HS-TCP, p-Standard > Standard • 鶴他、ITRC-14, 2003年11月 • SLAC – Bic-TCPがよい。FASTは最もよいが、逆向きの流れによ る劣化が激しい。 • Hadrien Bullot, et. at, J. Grid Computing, Dec 2003 16 UDPの例 • UDPを使う? – 「結局TCPの焼き直しになる」と言われているが • UDT (UDP-Based Data Transfer Protocol) – SABULの後継 – 汎用的な開発環境 (Configurable Congestion Control; CCC)も公開。 – 900Mbps (1Gbp, RTT=100ms) Applications UDT Socket API UDT Socket API UDP 17 UDT – レートコントロール • 連続した2つのパケットより帯域幅を推測 – パケット単位に番号を打ち、ACK, NAKを受ける。 • いずれもUDPを利用。 Sender 21 2 1 データ Sender 2 1 Receiver 制御 UDT A Receiver UDT B TCPへの影響が若干大きい (帯域を奪う) 18 その他 • 複数のTCPセッションを利用する。 • bbftp • GridFTP (socket sizeの自動交渉も行う?) • PSockets (並列TCPのAPI, C++) • ルータの変更が必要 – TCPプロトコルの置き換え • XCP; eXplicit Congestion control Protocol – ECNを出す(らしい) – ジャンボフレーム 19 今後の研究について 20 目的 • SuperSINETの有効利用 – SNET: LHD実験データ、シュミレーション • 世界標準 21 何を対象にするか • 輻輳制御方式を比較する – TCP base & UDP base • 当面、開発の容易さから Linux。 • Windows Server 2003 ? • FreeBSD, Mac OS X • UDT/CCC 22 Linux? • Linux kernelのソースを読む – ネットワークのところだけでも • 実装する際には必須 – 何かつかめるはず。 • つかめなければ、… • • • • • • • • kernel >= 2.6.13で対応済み Reno Vegas BIC-TCP HSTCP; HighSpeed TCP HTCP; Hamilton TCP STCP; Scalable TCP Hybla Westwood 23 計測・実測環境 • 実環境での測定 – SuperSINETを利用する • PCルータで遅延を模擬する • dummynet on FreeBSD – Google: dummynet gigabit 11件 • 自分でソケットプログラミングをする on Linux – 本当にできるの? • シュミレーション – Network Simulator 2: NS-2 cf. http://www.isi.edu/nsnam/ns/ C++ & Otcl 24 LFN L ab Long Fat Pipe Network Backborn Short Fat Pipe Network LAN T. Yamamoto 25 LFN研究室 端末 A PCルータ 端末 B Mother: CPU: Memory: HD: NIC: Intel(R) Server Board SE7520JR2 2.80DGHz X2 2.0GB SATA 120GB, 7200rpm on board X2 細々と構築中 26 計画は? 3年計画 • 18年度 前半 実装、模擬実験 • • • 19年度? SuperSINETのどこかと実験 • • ラック装荷から遅延エミュレータの開発まで Which is best ? 全くの未定 20年度? 新方式の開発、実装。 • やはり全くの未定 27 御清聴ありがとうございました。 28 参考:一般的なテクニック • TCP Tuning Guide – http://dsd.lbl.gov/TCP-tuning/ 29 参考:評価方法 • もちろん、帯域を有効に使っているかどうか • あと、公平性 – 特定のストリームが有利になっていないか – RTTの違い, 同じ方式内、他の方式の違い • Ethernetはベストエフォート • FDDI (Token方式)は原理的に公平。 30 Linuxの対応(詳細) • アルゴリズムを簡単に切り替えられます。 (kernel >= 2.6.13) sysctl -w net.ipv4.tcp_congestion_control = htcp reno: bic: highspeed: htcp: hybla: scalable: vegas: westwood: Traditional TCP used by almost all other OSes. (default) BIC-TCP HighSpeed TCP: Sally Floyd's suggested algorithm Hamilton TCP For satellite links Scalable TCP TCP Vegas optimized for lossy networks 31
© Copyright 2024 ExpyDoc