自律分散協調システム論 第13回「TCPと輻輳制御/QoS制御」

Slides:



Advertisements
Similar presentations
TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
Advertisements

NetAgent P2P検知技術 NetAgent.
Timeout と再送 往復時間 予知が困難 他のトラフィックに依存 適応再送アルゴリズム データの採取.
インターネットの仕組み 例) Web閲覧 インターネット サーバ リクエスト データ 携帯電話 一般家庭 インターネットサービス
Ibaraki Univ. Dept of Electrical & Electronic Eng.
大阪大学 長谷川 剛 インターネットフローの公平性 大阪大学 長谷川 剛 2001年10月19日 IN研究会.
Webプロキシサーバにおける 動的資源管理方式の提案と実装
最新ファイルの提供を保証する代理FTPサーバの開発
第1回.
不特定多数の発信者を考慮した ストリーミングシステムの実現
仮想ブロードキャストリンクを利用した 片方向通信路の透過的経路制御 藤枝 俊輔(慶應義塾大学)
ネットワーク層.
TCP Timeout and Retransmission
詳解TCP/IP TCPタイムアウトと再転送 れにうむ.
TCP (Transmission Control Protocol)
TCP Tahoeのウインドウ制御 (復習)
「コンピュータと情報システム」 07章 インターネットとセキュリティ
ネットワーク コミュニケーション トランスポート層 TCP/UDP 6/28/07.
詳解TCP/IP ACE B2 mewtwo.
i-Pathルータのフロー情報を用いたDoS攻撃検知法
第13回 今日の目標 §4.3 情報セキュリティー 情報化社会の特徴を社会的な面から概観する 情報に関わる危険の要因を示す
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
IPマルチキャスト通信とXcast 早稲田大学後藤研究室 Xcast班.
トランスポート層.
コンテンツ配信 エンコード (符号化) CBR (Constant Bit Rate) VBR (Variable Bit Rate)
ノードの情報を動的に反映したオーバレイネットワークの構築
ノードの情報を動的に反映したオーバレイネットワークの構築
認証と負荷分散を考慮した ストリーミングシステムに関する研究
伝送特性に応じた 適応型映像・音声配信機構の構築
第2章 第1節 情報通信の仕組み 1 ネットワークの仕組み 2 通信プロトコル 3 認証と情報の保護
第8章 Web技術とセキュリティ   岡本 好未.
Copyright Yumiko OHTAKE
画像情報特論 (2) - TCP/IP (1) インターネットプロトコル (IP) インターネットQoS
Linux リテラシ 2006 第4回 ネットワーク CIS RAT.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
IPv6 ネットワークにおける エニーキャスト通信実現のための プロトコル設計と実装
第11章 UDPユーザ・データグラム・プロトコル
TCP/UDP プロセス間の通信のためのプロトコル TCP:信頼性高、処理時間大 UDP:信頼性低、処理時間小 ftp SMTP HTTP
インターネットの基礎知識 その3 ~TCP・UDP層編~
DiffServにおけるクラスの新しい設定方法の提案
i-Pathルータのフロー情報を用いたDoS攻撃検知法
第9章 Error and Control Messages (ICMP)
2009年度卒業論文発表 CDNコンテンツサーバの動的負荷分散
Ibaraki Univ. Dept of Electrical & Electronic Eng.
画像情報特論 (3) - TCP/IP (2) TCP (Transport Control Protocol)
画像情報特論 (3) - マルチメディアインフラとしてのTCP/IP (2)
画像情報特論 (3) - TCP/IP (2) TCP (Transport Control Protocol)
超高速ネットワークの弱点 光は速い 光は遅い 300km / 1msec (真空中) 180km / 1msec (光ファイバ中)
各種ルータに対応する P2P通信環境に関する研究
Ibaraki Univ. Dept of Electrical & Electronic Eng.
ネットワークの性能 牧野ゼミ3年 足立龍哉.
演習第6回 情報通信技術論 インターネット工学
超高速ネットワークの弱点 光は速い 光は遅い 300km / 1msec (真空中) 180km / 1msec (光ファイバ中)
2003年6月17日 早稲田大学大学院理工学研究科 情報科学専攻 修士2年 水野 宏樹
Diffservにおける 絶対的な品質保証法
TCP制御フラグの解析による ネットワーク負荷の推測
演習第4回 情報通信技術論 インターネット工学
片方向通信路を含む ネットワークアーキテクチャに於ける 動的な仮想リンク制御機構の設計と実装
画像情報特論 (2) - TCP/IP (1) インターネットプロトコル (IP) インターネットQoS
最低限インターネット ネットワークにつなぎましょ!
P2P ネットワーク上で 実時間ストリーミングを実現するための 分散制御プロトコルの提案
仮想環境を用いた 侵入検知システムの安全な構成法
トラフィックプロファイラAGURIの設計と実装
GbEにおける TCP/IP の研究について
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
7月13日の演習問題・解答例 について ネットワーク長が 18、22、26、28 の場合の
画像情報特論 (3) - TCP/IP (2) TCP (Transport Control Protocol)
画像情報特論 (2) - TCP/IP (1) インターネットプロトコル (IP) インターネットQoS (diffserv / MPLS)
P2P & JXTA Memo For Beginners
TCP/IPの通信手順 (tcpdump)
Presentation transcript:

自律分散協調システム論 第13回「TCPと輻輳制御/QoS制御」 中村 修 osamu@sfc.wide.ad.jp

TCPと輻輳制御 輻輳制御の重要性 輻輳制御の困難さ TCPによる輻輳制御

輻輳制御の重要性 (1/2) 輻輳は悪化していく傾向がある 三次災害 玉突き事故 二次災害 輻輳発生

輻輳制御の重要性 (2/2) ネットワークに自律的な輻輳回復機能がない エンドノードが輻輳を回避する必要がある ネットワークはできるだけ仕事をしない エンドノードが輻輳を回避する必要がある エンドノードは故意に輻輳を起こせる DoSアタック

輻輳制御技術の大まかな歴史 初期のインターネット:輻輳制御技術なし 1980年初 輻輳崩壊の発生が指摘される 1980年初 輻輳崩壊の発生が指摘される 1980年後半 エンドノード主体による輻輳制御技術の出現 1990年後半 中継ノード主体による輻輳制御技術の出現 現在 広帯域・低遅延要求アプリケーションの台頭 インターネット速度記録(TCP高速化技術)

輻輳制御の困難さ (1/2) エンドノードはネットワークの状態が分からない IPネットワーク 自分で推測してネットワークに送出するだけ パケットを多く出すのか? パケットを少なく出すのか? ネットワークは教えてくれない

輻輳制御の困難さ (2/2) なぜインターネットの状態は分かりにくい? IPの特徴 ネットワークの許容量が不明 ネットワークの混雑度が不明 様々な通信媒体の性質を抽象化 上位プロトコルから通信媒体の性質が見えにくい 中継システムの簡素化 ネットワークの許容量が不明 ネットワークの混雑度が不明

アプリケーションとトラフィックパターン TCP UDP それぞれが異なるトラフィックパターンを有する インタラクティブデータフロー パケットを直ちに送出 アプリケーション例:SSH, Telnet などコンソールアプリケーション バルクデータフロー フロー制御によってパケットを送出 アプリケーション例:http, ftp, メール など UDP フロー制御・輻輳制御を行わない アプリケーション例:ストリーミング, VoIP など それぞれが異なるトラフィックパターンを有する

ポート番号からサービス 特定がしにくい時代 アプリケーショントレンドの推移 ポート番号からサービス 特定がしにくい時代 P2P登場 WWW全盛 出典: WIDE報告書(1994-1999) 2000-2005はdaily sampling

15年前のアプリケーションモデル サーバ・クライアントモデル 情報(データ)のありか 情報(データ)の集まり方 サービスを提供する側と受ける側に役割を分担 情報(データ)は「提供する側」に存在 情報(データ)のありか 情報(データ)が格納されているサーバは「何らかの方法」で探し出す archie プログラム サーバ数が多くない上、有名なサーバには様々な種類の情報(データ)が大量に存在 情報(データ)の集まり方 情報(データ)が一箇所に集まるので、利用者も一箇所に集中してアクセスする 利用者 巨大なサーバ: A インターネット クライアント ドキュメントファイル サーバAから ソフトウェアを ダウンロードしよう サーバAから ドキュメントを ダウンロードしよう ソフトウェアファイル

10年~5年前のアプリケーションモデル サーバ・クライアントモデル 情報の分散化 情報(データ)のありか: 情報(データ)の集まり方 「置き場所」としてのサーバは変化せず 能動的なクライアントも変化せず 情報の分散化 情報(データ)は、「リンク」が含むようになり、分散したサーバ間で情報が有機的に結びつけられるようになった 情報提供者はリンクを意識して情報(データ)を作成 情報利用者はリンクを辿り新たな情報(データ)を取得 情報(データ)のありか: 情報(データ)が格納されているサーバは「何らかの方法」で探す cf. 検索エンジン、ディレクトリサービス サーバの数が多く、大量の情報(データ)が分散して存在 情報(データ)の集まり方 インターネット中に分散して存在するが、利用者の増加に伴い人気のある情報(データ)を持つサーバにアクセスは集中 インターネット Webサーバ リンク アドレスを指定

最近のアプリケーションモデル P2Pモデル 情報(データ)単位の分散化から、分割した情報(データ)の分散化 情報(データ)のありか あらかじめ役割を決めない (サーバ・クライアントの両方の役割を担う) 対等な関係 情報(データ)単位の分散化から、分割した情報(データ)の分散化 ファイル単位のやり取りから、ファイルの分割を前提とした断片単位のやり取りへ 情報(データ)のありか 断片化した情報(データ)はネットワーク上の任意のホストに存在 情報理論を応用した検索手法(分散ハッシュ etc…) P2Pのピアになるホストの数だけ分散する可能性がある 情報(データ)の集まり方 完全な情報(データ)は、それをリクエストした人のところに存在 ネットワーク上には、断片化されたもの、完全なもの様々な形で存在 ファイルA ファイルの断片化(6分割の例)

メディア通信と遅延 デッドライン バッファ 再生を行うために間に合わせなければならないタイミング これに遅れると映像や音声が乱れる パケットロスや遅延などでデッドラインオーバーが頻繁に起こらないようにデータを一時的に蓄積

TCPによる インターネット最高速度 Interne2 Land Speed Record 東京大学、WIDEプロジェクト、JGN2(NICT)、NTTコミュニケーションズ などによる 2006年12月30日 30000km(実際には32372km)のネットワーク 7.67Gbpsのデータ転送速度 230100 terabit-meters per second (Tb-m/s) 2006年12月31日 同一ネットワーク 9.08Gbpsのデータ転送速度 272400 terabit-meters per second (Tb-m/s)

TCPにおけるフロー制御

フローコントロール ② ③ ① もちょっとゆっくり 送って。 送信者 受信者 もちょっとゆっくり 送るか。 キュー(バッファ) 早すぎてバッファがあふれる

フローコントロール ② もっとはやく 送って。 送信者 受信者 キュー(バッファ) ③ じゃはやくおくるか ① 遅いから余裕があるな

ウィンドウ制御 ウィンドウ広告 = 受信バッファ残量 ウィンドウ更新 ACKを待たずに、複数セグメントを転送 ACKセグメントによる ウィンドウ広告 = 受信バッファ残量 ウィンドウ更新 ACKセグメントによる ACKを待たずに、複数セグメントを転送 転送効率の向上

スライディングウィンドウ 1 2 3 4 5 6 7 8 直ちに 転送可能 広告 ウィンドウ

スライディングウィンドウ 転送されたが 確認応答されていない 1 2 3 4 5 6 7 8 広告 ウィンドウ 直ちに 転送可能

スライディングウィンドウ 転送されて 確認応答済み 1 2 3 4 5 6 7 8 転送されたが 確認応答されていない 直ちに 転送可能

スライディングウィンドウ 転送されて 確認応答済み 8 1 7 2 転送されたが 確認応答されていない 6 3 新たに広告された ウィンドウ 4 5 6 7 8 転送されたが 確認応答されていない 新たに広告された ウィンドウ 直ちに 転送可能

TCPにおける輻輳制御

TCPの輻輳制御機能 ② ① もちょっとゆっくり 送ろう。 送信者 受信者 輻輳 受信者からしばらく応答がない 輻輳が発生してパケットが届いて なさそうだ

輻輳制御の重要性 輻輳は悪化していく傾向がある 輻輳発生 二次災害 玉突き事故 なんらかの対処をしなければ 悪化する一方 (輻輳崩壊)

TCPの輻輳制御アルゴリズム 非常に多くのアルゴリズムが存在 代表的な例 OSによって実装されているアルゴリズムがことなることも TCP Tahoe スロースタートアルゴリズム,輻輳回避アルゴリズム,高速再転送アルゴリズム TCP Reno (TCP NewReno) 高速再転送アルゴリズム TCP Vegas RTTをベースとしたウィンドウサイズの調整 OSによって実装されているアルゴリズムがことなることも

TCPの輻輳制御アルゴリズム(時代別) 1988年頃 1990年頃 1996年頃 Tahoe Reno NewReno スロースタート、輻輳回避アルゴリズムの採用 高速再転送アルゴリズムの採用 1990年頃 Reno 高速リカバリ・アルゴリズムの採用 1996年頃 NewReno 高速リカバリ・アルゴリズムの修正

Linux Kernel の持つ アルゴリズム (Kernel 2. 6 Linux Kernel の持つ アルゴリズム (Kernel 2.6.18の例, /usr/src/linux/net/ipv4/tcp_*.c) Binary Increase Congestion control for TCP (BICTCP) Lison-Xu, Kahaled Harfoush, and Injong Rhee. TCP Reno / TCP NewReno BSD系OSのデフォルト Binary Increase Congestion control for TCP v2.0 (TCP CUBIC) Injong Rhee, Lisong Xu. High Speed TCP Sally Floyd. H-TCP R.N.Shorten, D.J.Leith. TCP HYBLA C.Caini, R.Firrincieli. TCP Low Priority (TCP-LP) Scalable TCP Tom Kelly TCP Vegas Lawrence S. Brakmo and Larry L. Peterson. TCP Veno C. P. Fu, S. C. Liew. TCP Westwood+: end-to-end bandwidth estimation for TCP Angelo Dell'Aera. Linuxにおけるデフォルトアルゴリズム (変更可能)

TCPの輻輳制御アルゴリズム (1/2) ネットワークの状態推測機構 単純なアルゴリズム ネットワークの情報は直接手に入らない エンド間の通信から得られる情報で推察 単純なアルゴリズム パケットが落ちない 転送量を上げる パケットが落ちた 転送量を落とす

TCPの輻輳制御アルゴリズム (2/2) ウィンドウサイズを増減させ転送制御 2段階の通信状態 送信者の輻輳ウィンドウ 受信者のウィンドウサイズ広告 2段階の通信状態 スロースタート 輻輳回避

スロー・スタート スロー・スタート 輻輳ウインドウ(cwnd) エンドノード間の回線状態はわからない 回線の許容量以下に送信量を制御する必要がある ネットワークへの突発的なトラフィック流入を防止可能 輻輳ウインドウ(cwnd) 送信者が送信可能なセグメント数を決定 送信者が管理するウィンドウ (注)受信者の管理するウィンドウとは別

スロー・スタートの仕組み スロー・スタートのアルゴリズム 通信開始時 Ack受信時 輻輳ウィンドウサイズを1で初期化 輻輳ウィンドウは幾何級数的に増加

スロー・スタートの概要 送信者 受信者 1,2,4,8,,,,と幾何級数的にウィンドウサイズを大きくする 初期windowサイズは1で送信 1に対してAckを返す 送信者 受信者 windowサイズを2で送信 2に対してAckを2つ返す windowサイズを4で送信 1,2,4,8,,,,と幾何級数的にウィンドウサイズを大きくする

輻輳回避状態 スロースタートを開始し、輻輳ウィンドウが増加 送信者は、パケットロスを検知しスロースタートを停止 輻輳回避状態へ移行 輻輳が発生したときの輻輳ウィンドウを記憶 輻輳ウィンドウを1に戻しスロースタートを再初期化 輻輳回避状態へ移行 記憶した輻輳ウィンドウまでは通常のスロースタート 記憶した輻輳ウィンドウに達すると Ack受信ごとに輻輳ウィンドウを上げていかない 輻輳ウィンドウ分のAckを受信して輻輳ウィンドウを開く

TCP Tahoe におけるウィンドウサイズの変化 スロースタート 輻輳回避 ネットワーク の限界 最適な ウィンドウサイズ スロースタート 閾値 t

TCP Reno におけるウィンドウサイズの変化 スロースタート 輻輳回避 ネットワーク の限界 最適な ウィンドウサイズ スロースタート 閾値 t

往復時間の測定 RTTから分かること RTTは非線形に変化 平滑化することでRTTを評価(RTT評価値) 輻輳の度合い パケットロスの指標 外れ値の可能性 平滑化することでRTTを評価(RTT評価値) RはRTT評価値 Mは新しい測定値 αは平滑化係数(推奨値は0.9) R = αR+(1-α)M

再転送タイムアウト値の算出 再転送タイムアウト値(RTT) 再転送タイムアウトするごとに増加 βは遅延分散係数(推奨値は2) 指数バックオフ 最大値64秒 RTO = Rβ (RFC793推奨式)

高速再転送アルゴリズム 受信者のTCPが順番の違うセグメントを受信 確認応答(重複ACK)を生成する必要 高速再転送アルゴリズム 受信者はセグメントを並び替えて上位層に渡す パケットロスが発生した … (b) 送信者は該当するセグメントを再送する必要 高速再転送アルゴリズム (a)、(b)をいち早く調べる方法 以下の場合、パケット損失の可能性高と判断 重複ACKを3つ受信した場合 再送タイマを待たずに直ちに再送する

高速再転送アルゴリズム 再送タイムアウトを待たずに再送 迅速な再送による転送効率の向上 2番のパケットが 届いていない! 5 4 5   2番のパケットが 届いていない! 5 発信元 宛て先 インターネット 4 Packet loss 5 3 2番パケットを転送 4 2 3 1 1 3が届いた時点で1番へのACK 1番へのACKが 3が届いた時、4が届いた時、5が通ったとき の合計3回届く

セルフクロッキング (1/3) 経路の一番細い部分がボトルネックとなり、パケットギャップが発生する ボトルネック ボトルネック 送信者 受信者 ルータ ルータ 帯域が広い 帯域が狭い 帯域が広い

セルフクロッキング (2/3) 受信者はパケットギャップの間隔でAckを返してくる 送信者 受信者 ルータ ルータ 帯域が広い 帯域が狭い

セルフクロッキング (3/3) Ackの受信間隔に合わせてパケットを送出する 通信のバースト性が抑えられる 送信者 受信者 ルータ ルータ 帯域が広い 帯域が狭い 帯域が広い

まとめ:TCPにおける輻輳制御 ネットワークの状態を動的に推測 輻輳が発生すれば転送速度を落とす 輻輳が起きないギリギリまで転送速度を上げる できるだけ早く最適なウィンドウサイズに到達する ウィンドウサイズが安定すると通信も安定する

エンドノードによる輻輳制御の限界 エンドノードだけでは、ネットワークの状態を完全に把握することは不可能 ネットワーク全体の安定が各エンドノードの自律的な動作に掛かっている 悪意のあるユーザの攻撃や、無知なユーザの無秩序な利用に対して脆弱 中間ノードでも制御を行う必要性 QoS技術

ネットワークによる輻輳制御 - QoS機構 -

QoSとは? Quality of Service 利用するサービスに対して品質を考慮 特にインターネットでは、通信品質 スループット レスポンスタイム 到着揺らぎ幅(ジッタ) 自律分散協調型のインターネットでは困難

エンドノードとネットワーク ネットワークでの制御 エンドノードでの制御 ネットワークの状態を把握できる ネットワークの状態は分からない 処理が集中しやすい 重い処理は避けたい ネットワーク全体へ設定が反映される エンドノードでの制御 ネットワークの状態は分からない 重い処理もできる ネットワーク全体に影響を及ぼせない

QoSの必要性 全ての通信をスムーズには行えない サービスの平滑化・差別化 リアルタイムアプリケーションの優先 料金格差 放送(音楽・動画) 対戦型ゲーム IP電話 緊急の電話・緊急でない電話

QoSの実現例 専用の回線を用意する 中間ノードでの優先制御 IPアドレス・ポート番号などヘッダの情報で区別 ヘッダに特別な情報を負荷 問題点 既存のインターネットの概念と反する スケーラビリティとの兼ね合い

輻輳が発生したら ルータはキューを備えている 輻輳が発生 = キューが溢れる キューから溢れたパケットは破棄される ルータ キュー 輻輳が発生 = キューが溢れる キューから溢れたパケットは破棄される ルータ キュー 入りきらず,破棄される

パケットの優先制御 優先したいパケットは優先QUEUEに入れる ここでは、青いパケットを優先したいとする 水色のQUEUEが優先QUEUEとする

QoSの実現に必要な構成要素 サービスの記述 中間ノードでの優先制御機構 制御情報の伝播 管理者による手動設定では対処できない 多種多様な要求がある 中間ノードでの優先制御機構 制御情報の伝播 シグナリング技術 管理者による手動設定では対処できない

QoS機構(1): Intserv + RSVP サービスの記述 フローごとの帯域予約 Intserv 予約メッセージフォーマット FF(Fixed Filter)方式 SE(Shared Explicit)方式 WF(Wildcard Filter)方式

QoS機構(1): Intserv + RSVP 優先制御機構 RSVP対応ルータ フローの状態を常に監視 フローごとに予約帯域を確保 フローに適合するパケットを優先転送

QoS機構(1): Intserv + RSVP 制御情報の伝播 RSVPメッセージ エンド間のルータ全てに伝播させる 送信者→受信者:パスメッセージ 受信者→送信者:予約メッセージ

Intserv + RSVPの問題点 エンド間にRSVP対応ルータが不可欠 各ルータがフローの状態を保持 マッチングするヘッダフィールドが様々 管理する情報が膨大 トラフィックが急増すると破綻 ルータの負荷を軽減する必要性

QoS機構(2): Diffserv + BB サービスの記述 PHB(Per-HOP Behavior) EF(Expedited Forwarding) AF(Assured Forwarding) DSCP(Diffserv Code Point) IPヘッダのTOSフィールド(→DSフィールド)中に記述 DS対応ノードはDSCPとPHBのテーブルを保持 DSエッジが記述 DSドメインに入る際

QoS機構(2): Diffserv + BB Diffservとスケーラビリティ Intservではルータの負荷が問題 DSCPはヘッダ中のビット列 固定長 処理が軽い

QoS機構(2): Diffserv + BB 優先制御機構 DS対応ルータ(DSコア) トラフィック分類機能 BA(Behavior Aggregate)Classifier MF(Multi Field)Classifier TCA(Traffic Conditioning Agreement)

QoS機構(2): Diffserv + BB 制御情報の伝播 BB(Bandwidth Broker) DSドメイン内のリソース割り当て 詳細な挙動までは決まっていない 主流となるソフトウェアは未だ無い 研究ベース

MPLSによるトラフィック制御 MPLS(Multi Protocol Label Switching) MPLSを応用したトラフィック制御 パケット転送技術のひとつ パケットにラベルヘッダを付加 ラベルスイッチング MPLSを応用したトラフィック制御 ラベルに通信品質制御情報を付加 RSVP-extension Diffservに類似したモデル ラベル IPヘッダ

通常のIPネットワークからMPLSネットワークへパケットが転送 エッジ 外部ネットワーク LSR ラベルが変更される ラベルが付加される パスが張られる ラベルが削除される ラベルが変更される

まとめ:QoSと輻輳制御 管理ドメイン内での制御 ユーザのニーズを適切に記述 記述された要求に従い制御情報を伝播 中間ノードが優先制御 特定の通信が輻輳を回避