画像情報特論 (3) - TCP/IP (2) TCP (Transport Control Protocol)

Slides:



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

画像情報特論 (7) - アダプテーション (1) 同期再生 電子情報通信学科 甲藤二郎
Step.5 パケットダンプ Wiresharkでパケットをキャプチャする PC 1 PC 2 PC 3 PC 4 ネットワーク
画像情報特論 (12) - インターネット放送の実際 (1) インターネット放送全般 マルチキャスト放送
Timeout と再送 往復時間 予知が困難 他のトラフィックに依存 適応再送アルゴリズム データの採取.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
大阪大学 長谷川 剛 インターネットフローの公平性 大阪大学 長谷川 剛 2001年10月19日 IN研究会.
Webプロキシサーバにおける 動的資源管理方式の提案と実装
ネットワークと コミュニケーション技法 第7回 - インターネット(1) -.
第1回.
前回の課題 IPv6アドレス IP ARP ICMP NAT インターネット層 2003年12月4日 情報ネットワーク論 新村太郎.
ネットワーク層.
TCP Timeout and Retransmission
詳解TCP/IP TCPタイムアウトと再転送 れにうむ.
TCP (Transmission Control Protocol)
TCP Tahoeのウインドウ制御 (復習)
ネットワーク コミュニケーション トランスポート層 TCP/UDP 6/28/07.
TCPデータ通信との公平性を考慮した 輻輳適応能力を有する MPEG動画像通信のための品質調整機構
画像情報特論 (7) アダプテーション (2) パケット廃棄対策、TCPフレンドリ 情報ネットワーク専攻 甲藤二郎
詳解TCP/IP ACE B2 mewtwo.
ファイル送信機能付きマルチキャストチャット
画像情報特論 (10) - シグナリング - インターネット電話の実際 (1) ITU-T H
トランスポート層.
Telnet, rlogin などの仮想端末 ftp などのファイル転送 rpc, nfs
コンテンツ配信 エンコード (符号化) CBR (Constant Bit Rate) VBR (Variable Bit Rate)
画像情報特論 (6) アダプテーション (1) RTP/RTCP、メディア同期 情報ネットワーク専攻 甲藤二郎
画像情報特論 (2) - TCP/IP (1) インターネットプロトコル (IP) インターネットQoS 情報ネットワーク専攻 甲藤二郎
画像情報特論 (2) - TCP/IP (1) インターネットプロトコル (IP) インターネットQoS
Ibaraki Univ. Dept of Electrical & Electronic Eng.
IPv6 ネットワークにおける エニーキャスト通信実現のための プロトコル設計と実装
第11章 UDPユーザ・データグラム・プロトコル
TCP/UDP プロセス間の通信のためのプロトコル TCP:信頼性高、処理時間大 UDP:信頼性低、処理時間小 ftp SMTP HTTP
インターネットの基礎知識 その3 ~TCP・UDP層編~
第9章 Error and Control Messages (ICMP)
第15章 TFTP:トリビアル・ファイル転送プロトコル
岡村耕二 トランスポート層 ソケットプログラミング 岡村耕二 情報ネットワーク.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
岡村耕二 トランスポート層 岡村耕二 情報ネットワーク.
ネットワーク技術II 第9.1課 TCP/IPプロトコルスイート
画像情報特論 (3) - TCP/IP (2) TCP (Transport Control Protocol)
画像情報特論 (3) - マルチメディアインフラとしてのTCP/IP (2)
画像情報特論 (3) - TCP/IP (2) TCP (Transport Control Protocol)
画像情報特論 (8) - アダプテーション (2) パケット廃棄対策 電子情報通信学科 甲藤二郎
岡村耕二 トランスポート層 岡村耕二 情報ネットワーク.
超高速ネットワークの弱点 光は速い 光は遅い 300km / 1msec (真空中) 180km / 1msec (光ファイバ中)
Ibaraki Univ. Dept of Electrical & Electronic Eng.
UDPマルチキャストチャット    空川幸司.
演習第6回 情報通信技術論 インターネット工学
岡村耕二 トランスポート層 岡村耕二 情報ネットワーク.
TCP制御フラグの解析による ネットワーク負荷の推測
画像情報特論 (2) - TCP/IP (1) インターネットプロトコル (IP) インターネットQoS
画像情報特論 (2) - マルチメディアインフラとしてのTCP/IP (1) インターネットプロトコル (IP)
画像情報特論 (1) - インターネット電話とインターネット放送 はじめに 電子情報通信学科 甲藤二郎
P2P ネットワーク上で 実時間ストリーミングを実現するための 分散制御プロトコルの提案
画像情報特論 (7) アダプテーション (2) パケット廃棄対策、TCPフレンドリ 電子情報通信学科 甲藤二郎
情報実験 第五回 最低限 internet ~ネットワークの仕組みを知ろう~
画像情報特論 (1) - インターネット電話とインターネット放送 はじめに 情報ネットワーク専攻 甲藤二郎
GbEにおける TCP/IP の研究について
画像情報特論 (6) アダプテーション (1) 概要、RTP/RTCP、メディア同期 電子情報通信学科 甲藤二郎
7月13日の演習問題・解答例 について ネットワーク長が 18、22、26、28 の場合の
画像情報特論 (3) - TCP/IP (2) TCP (Transport Control Protocol)
画像情報特論 (1) - インターネット電話とインターネット放送 はじめに 電子情報通信学科 甲藤二郎
画像情報特論 (2) - TCP/IP (1) インターネットプロトコル (IP) インターネットQoS (diffserv / MPLS)
SMTPプロトコル 2001年8月7日 龍 浩志.
情報ネットワーク 岡村耕二.
TCP/IPの通信手順 (tcpdump)
UDPデータグラムヘッダ 牧之内研究室 修士1年 久保正明.
ソケットの拡張によるJava用分散ミドルウエアの高信頼化
プロトコル番号 長野 英彦.
Presentation transcript:

画像情報特論 (3) - TCP/IP (2) TCP (Transport Control Protocol) UDP (User Datagram Protocol)  DCCP (Datagram Congestion Control Protocol) 情報ネットワーク専攻 甲藤二郎 E-Mail: katto@waseda.jp

インターネットの基礎 プロトコルスタック アプリケーション HTTP, RTSP, FTP, Telnet, ... RTP: 実時間メディア用途 トランスポート 端末・端末間 TCP: 誤り訂正、順序制御、フロー制御 … 信頼性重視 UDP: オーバーヘッド少 … 低遅延、高速性重視 DCCP: TCP フレンドリ ネットワーク ネットワーク インターフェース 端末・ルータ間、ルータ・ルータ間 IP: 経路制御、フラグメンテーション ICMP: エラー通知 IGMP: マルチキャスト (mbone) 端末 端末 T T R R 個別リンク イーサーネット, PPP, X.25, ATM, … ルータ

IP データグラム IP データグラム 可変長 TCP: 最小 20 byte UDP: 8 byte IP: 20-60 byte RTP: 12 byte NW ヘッダ IP TCP/UDP RTP データ (ビデオ、音声) ネットワーク インタネット トランスポート アプリケーション

Transport Control Protocol TCP Transport Control Protocol

TCP ヘッダ 4 byte 送信元ポート番号 受信先ポート番号 シーケンス番号 (SEQ) 確認応答番号 (ACK) オフセット reserved URG ACK PSH RST SYM FIN ウィンドウ (rwnd) チェックサム 緊急データポインタ (オプション) (パディング) データ ポート番号: アプリケーションの識別 シーケンス番号: パケット廃棄、順序逆転を検出 (バイト単位でカウント) 確認応答番号: 次パケットで受信予定のシーケンス番号、あるいは重複 ACK の通知 ウィンドウ: 受信者が求める最大セグメントサイズ

TCP の機能 End-to-End の確認応答による誤り制御とフロー制御 ポート番号によるアプリケーションの識別 パケット エンドホスト ACKパケット ルータ ポート番号によるアプリケーションの識別 後述するUDPも同じ、トランスポート層の機能 いわゆる well-known port など エンドホスト

セルフ・クロッキング self clocking ACK の受信間隔 (ボトルネック速度) に合わせてパケットを送信 送信者 受信者 帯域使い切り 受信者 セグメント 次セグメント T ボトルネック リンク T ACK ACK T T T V.Jacobson: “Congestion Avoidance and Control,” SIGCOM’88.

最小最大フロー制御 最も少ない帯域割り当てを受けているユーザに対し、最大の帯域割り 当てを行う動作を、すべてのユーザに対して繰り返す (最小最大公平)。 (例) すべてのリンク容量が 1 の場合の以下 (5 セッション) の最小最大公平は? ③ ボトルネックリンク → 帯域 1 を割り当て 1 4 ② ボトルネックリンク → 残りの 2/3 割り当て 5 ① ボトルネックリンク → 公平に 1/3 割り当て 2 3 D.Bertsekas and R.Gallager: “Data Networks,” Prentice Hall.

TCPにおけるフロー制御 理想: TCP: スロースタート + ふくそう回避 *集中型の帯域管理装置 (電話に近い) 使用帯域 セッション開始 別のセッション開始 最小最大公平 時間 TCP: スロースタート + ふくそう回避 *端末毎の分散制御 使用帯域 セッション開始 別のセッション開始 TCP Reno の場合 時間

いろいろなTCP 要点 TCP Tahoe スロースタート + ふくそう回避 + 高速再送 TCP Reno Tahoe + 高速回復 TCP Vegas RTT (round trip delay) ベースのふくそう制御 TCP SACK Reno + 選択的再送 (selective repeat) スロースタート: slow start ふくそう回避: congestion avoidance 高速再送: fast retransmission 高速回復: fast recovery * 広く用いられているのは TCP Reno

古典的なTCP Go-Back-N ARQ (スライディング・ウィンドウ): 送信者は ACK を待たずに N 個のパケットを送信する しばしば n 個のパケット毎に1つの ACK を返す (累積応答) 送信 スライディング・ウィンドウ スライド 1 2 3 4 5 6 1 2 3 4 5 6 ACK ウィンドウ制御: rwnd: 広告ウィンドウ (advertizement window) 受信者が要求するセグメント (パケット) サイズ、あるいは受信可能なセグ メントサイズを通知し、スライディングウィンドウ (送信パケット数) を制御 欠点: ボトルネックリンクに非常に弱い

TCP Tahoe (1) 送信側パラメータを三つ追加: cwnd: ふくそうウィンドウ (congestion window: 初期値1) ssthresh: スロースタートとふくそう回避のモード選択閾値 (初期値大) tcprecvthresh: 高速再送を行う重複ACK数 (通常は3) スロースタート (指数増加: スループット探索モード): if ( cwnd < ssthresh )   --- ACK 毎にパケットを2個送出 ---   cwnd += 1; ふくそう回避 (加法増加: スループット安定モード): else if ( cwnd >= ssthresh )   --- ACK 毎にパケットを1個送出、cwnd 個送出後1個追加 ---   cwnd += 1/cwnd; V.Jacobson: “Congestion Avoidance and Control,” SIGCOM’88.

TCP Tahoe (2) 二通りのパケット廃棄の検出: (1) 重複 ACK の受信 (TCP ヘッダの ACK ナンバが更新されない場合) (2) タイムアウト (ACK が返って来ない場合) 高速再送 (軽いふくそう): ACK が返って来るということは深刻なふくそうではない (仮定) if ( 重複 ACK 数 == tcprecvthresh )   --- パケットを再送 ---   ssthresh = cwnd/2; cwnd = 1; スロースタートから再開 (ssthresh > cwnd) タイムアウト値の更新 (重いふくそう): タイムアウトが起こるということは深刻なふくそう (仮定) if ( タイムアウト )   --- パケットを再送 ---   timeout *= 2; 指数的バックオフ

TCP Tahoe (3) パケット数 時間 送信パケット ACK パケット廃棄 重複ACK & 高速再送 スロースタート(1) スロースタート(2) ふくそう回避 NS (Network Simulator) によるシミュレーション例

TCP Reno (1) Tahoe の問題点: 高速再送後、スロースタートに戻る必要は無い パケット廃棄前の cwnd の値は安全 (仮定: 現在の cwnd の半分) 高速回復: if ( 重複 ACK 数 == tcprecvthresh )   --- パケットを再送 (高速再送) ---   ssthresh = cwnd/2;   cwnd = cwnd/2 + tcprecvthresh; ふくそう回避モードから再開 (ssthresh < cwnd) 安全な値 重複 ACK 分 (ACK が正しく返っている) if ( 重複 ACK 数 > cwnd/2 )   --- 重複 ACK 毎に新しいパケットを一つ送信 --- if ( 再送パケットの確認応答 )   cwnd = ssthresh;   これが妥当な理由を考えよ (ヒント: cwnd の値が廃棄検出 直前の cwnd よりも大きくなる) 通常のふくそう回避へ

TCP Reno (2) パケット数 時間 送信パケット 高速回復 ACK パケット廃棄 重複ACK & 高速再送 スロースタート 高速回復 ふくそう回避 NS (Network Simulator) によるシミュレーション例

TCP Vegas (1) Reno の問題点: 故意にパケット廃棄を発生させて最適なスループットを探っている。 パケット廃棄を起こさなければ、スループットはもっと上がるはず。 ラウンドトリップ遅延 (RTT) に基づくふくそう回避: ネットワーク内バッファの見積もり (未到達セグメント量) 最大送信レート 実際の送信レート ネットワーク内バッファの使用量が 一定になるように制御 一定時間毎 (≒RTT) に cwnd の値を更新 ラウンドトリップ遅延 (RTT) に基づくスロースタート:

TCP Vegas (2) パケット数 時間 重複ACK & 高速再送 パケット廃棄 送信パケット ACK スロースタート ふくそう回避 NS (Network Simulator) によるシミュレーション例

直感的な比較 Tahoe セッション開始 別のセッション開始 Reno Vegas

TCPのまとめ 再送による信頼性のあるデータ転送: 反面、転送遅延は増加する。 → 遅延に敏感なインターネット電話にとっては大きな欠点。遅延が気になら ないオンデマンドのインターネット放送では許容範囲。 インテリジェントなふくそう制御: 加法増加 (additive increase) と乗法減少 (multiplicative decrease) を繰り 返しながら、それなりのデータ転送速度を実現。 → できるかぎり速く送りたいオンデマンドのインターネット放送では望ましい 特徴。 (注) インターネット放送の二形態: ライブ放送とオンデマンド放送

User Datagram Protocol UDP User Datagram Protocol

UDP ヘッダ 4 byte 送信元ポート番号 受信先ポート番号 UDP パケット長 チェックサム データ (+ RTPヘッダ) ポート番号: アプリケーションの識別 パケットの紛失、重複、順序逆転などについてまったく関知しない → アプリケーションで対処

UDP の機能 ポート番号によるアプリケーションの識別、のみ TCP の簡略化 (低遅延性): 再送なし、フロー制御なし パケット エンドホスト ルータ TCP の簡略化 (低遅延性): 再送なし、フロー制御なし ふくそう制御 (アプリケーションレベル): エンドホスト TCP フレンドリ (後述) 低遅延 (UDP) 信頼性 (TCP)

UDPのまとめ 再送を行なわない信頼性のないデータ転送: 転送遅延は抑えられる。 → 遅延に敏感なインターネット電話にとっては大きな利点。ACK 爆発が発 生しないため、マルチキャストにも適している。 アプリケーションレベルの誤り制御とふくそう制御 (アダプテーション): パケット廃棄やネットワークの輻輳に対して UDP は何も行なわないため、 アプリケーションレベルで対処する必要がある。 → 再同期 (パケット廃棄対策)、TCP フレンドリ (輻輳制御)、信頼性マルチ キャスト (NACK あるいは FEC)、等

TCP と UDP: まとめ インターネット電話 TCP UDP メディア情報 △ ◎ 制御情報 ◎ △ インターネット放送 TCP UDP オンデマンド放送 ○ ○ ライブ放送 × ◎ マルチキャスト × ◎ (クラスD) 制御情報 ◎ ○ (カルーセル) 低遅延性と信頼性のトレードオフ

Datagram Congestion Control Protocol DCCP Datagram Congestion Control Protocol

(シーケンスナンバ (low bits) … if X=“1”) DCCP ヘッダ 4 byte 送信者ポート番号 受信者ポート番号 シーケンスナンバ (high bits) オフセット(ヘッダ長) タイプ CsCov CCVal チェックサム (オプション) データ (シーケンスナンバ (low bits) … if X=“1”) 予約 X CCVal (Congestion Control Value) : 別途既定されるプロファイルに応じて、送信者が輻輳制御情報を通知 するために使用。 CsCov (Checksum Coverage):チェックサムがパケットのどの部分までカバーするかを通知。通常 UDP では 1ビットでも誤ったらパケットを廃棄するが、CsCov は無線応用を想定してデータ部のビット誤りを許容 … UDP-Lite (RFC 3828) の考えを踏襲。

DCCP パケット タイプフィールドと DCCP パケット データの送受信 セットアップ タイプ DCCPパケット 目的 DCCP-Request クライアントによる接続要求 1 DCCP-Response 接続要求に対するサーバの応答 2 DCCP-Data アプリケーションデータの送信 3 DCCP-Ack アプリケーションデータを伴わないACK 4 DCCP-DataAck アプリケーションデータを伴うACK 5 DCCP-CloseReq サーバからの接続終了要求 6 DCCP-Close クライアントからの接続終了要求 7 DCCP-Reset 接続の終了通知 8 DCCP-Sync 障害発生時の同期回復要求 9 DCCP-SyncAck 同期回復要求に対するACK 終了処理 障害対策

DCCP 手順 Client Server DCCP-Request DCCP-Response Session setup by 3-way handshake DCCP-ACK DCCP-Data DCCP-ACK Data transfer DCCP-Data DCCP-ACK DCCP-CloseReq DCCP-Close Session termination DCCP-Reset

DCCP 輻輳制御 CCID と DCCP の輻輳制御手段 CCID=2: 2個のパケットを受信するたびにACKを返す ⇒ AIMD制御 Reserved 1 Unspecified Sender-based Congestion Control 2 TCP-like Congestion Control (TCP と同様の AIMD 制御: オンラインゲーム用) 3 TFRC Congestion Control (TCPフレンドリ制御:AV系アプリケーション用) CCID=2: 2個のパケットを受信するたびにACKを返す ⇒ AIMD制御 CCID=3: RTTごとにACKを返す ⇒ TFRC制御 (後日、説明)