情報ネットワーク論i tcp 2/2 - naist

28
1 情報ネットワーク論I TCP 2/2 門林 雄基 奈良先端科学技術大学院大学

Upload: others

Post on 02-May-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 情報ネットワーク論I TCP 2/2 - NAIST

1

情報ネットワーク論I TCP 2/2

門林 雄基 奈良先端科学技術大学院大学

Page 2: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved.

トランスポートプロトコルの挑戦

n  未知のパラメータが多い ¨ 行われている通信の数 ¨ 帯域幅のボトルネック ¨ エラー率

n  我々はどうやってネットワークを壊さずにできるだけ多くの通信させるか?

2

1 1

n k

Key ideas: 調査, 判断, 自己警備, 大局的な安定

Page 3: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 3

ネットワーク資源の競合と調停

n  フロー制御 (flow control) ¨ 速度の違いを吸収 ¨ 配送順序の入れ替わりからの回復 ¨ 重複、パケット廃棄、ビット誤りからの回復

n  輻輳制御 (congestion control) ¨ 輻輳を抑えつつ帯域を共有 ¨ 帯域の公平分配

Page 4: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 4

フロー制御

n  Stop-and-Wait n  Go Back n

n  さまざまな方式が存在 ¨ ネットワーク側が速度等を申告するもの ¨ ホスト側で速度を推定しながら動くもの

¨ ARQ (Adaptive Repeat reQuest)

Page 5: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 5

Stop-and-Wait

0 1 2 3

ACK 0 ACK 1 ACK 2 ACK 3

Node A

Node B

Page 6: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 6

Go Back n

0 1 2 3

Node A

Node B

Page 7: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 7

TCP におけるフロー制御の特徴

n  End to end ¨ グローバルな資源割り当てはしない ¨ 各ホストが利用可能帯域を推定しながら動作 ¨ ルータは介在しない – パケット廃棄のみ

n  Scalable ¨ ホスト側のみで自律的に動く方式はネットワーク側での 状態管理を必要としないため、より大規模な運用が可能

n  Autonomous → Less state management → Scalable

Page 8: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 8

Questions?

Page 9: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 9

TCPから学ぶべき点

n  非常に単純なアルゴリズム ¨ マクロな自己安定性

n  Greedyなノードの存在を仮定していない ¨ グローバルな制御システムの排除

n  データリンクを選ばず、そこそこ動く ¨ 特定の環境で最適な性能を発揮するわけではない

n  30年にわたる段階的改善

Page 10: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 10

TCPにおけるフロー制御

n  利用帯域を調整 ¨ Sliding window

n  パケット番号ではなくシーケンス番号で ¨ Window size

n  パケット送出間隔を調整 ¨ ACK clocking

n  その他 ¨ 誤り検出 – TCP checksum ¨ パケット廃棄 – duplicate ACK, timeout

Page 11: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 11

パケット送出間隔の調整 (ACK clocking)

n  namによるデモ

n  ACK clocking のデモ n  Duplicate ACK のデモ

Page 12: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 12

Sliding window

Packets in flight

Sent but unacknowledged Sent and acknowledged

User data arrives

Sender

Receiver

Nara Institute of Science and Technology

Nara Insti

10

16

Window size Sequence number

Page 13: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 13

Questions?

Page 14: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 14

TCP における輻輳制御

n  Fair-share model: 帯域の公平分配 ¨ End to end

n  window size の増減 ¨ additive increase ¨ multiplicative decrease

¨ 自己安定的であることが知られている (R. Jain, et al., “Analysis of the increase and decrease algorithms for congestion avoidance in computer networks”, 1989)

n  window size 増加戦略の切り替え n  パケット廃棄で輻輳が起きたことを知る

Page 15: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 15

Fair-share: 帯域の公平分配

n  namによるデモ

Page 16: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 16

Window size の増やし方

n  slow start threshold (ssthresh) を基準としてcongestion window (cwnd) の増やし方を変える

(アルゴリズムの概要) n  On receiving an ACK:

if (cwnd < ssthresh) { /* slow start: exponential increase */ cwnd += 1; } else { /* congestion avoidance: additive increase */ cwnd += 1 / cwnd; }

Page 17: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 17

Window size の増やし方

n  Slow startの時 ¨ exponential increase

n  Congestion avoidanceの時 ¨ additive increase

n  (Illustrated p. 311)

n  効用: V. Jacobson, “Congestion Avoidance and Control”, SIGCOMM’88.

Source: TCP/IP Illustrated, Vol.1

Page 18: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 18

Window size の減らし方

n  (アルゴリズムの概要) n  On detecting packet drop:

ssthresh = cwnd / 2; if (timeout) { cwnd = 1; }

n  (Illustrated p. 315)

Source: TCP/IP Illustrated, Vol.1

Page 19: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 19

Questions?

Page 20: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 20

Packet drop

n  2つの方法で検出: ¨ Duplicate ACK ¨ Retransmission Time Out (RTO)

n  タイムアウトはどのように判定すればよいか? → RTO ~ RTT Estimator

Page 21: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 21

RTO Calculation

n  Err = M – A A <- A + gErr D <- D + h(|Err| - D) RTO = A + 4D ¨ A: smoothed RTT ¨ D: smoothed mean deviation ¨ g: gain for the average (1/8) ¨ h: gain for the deviation (1/4)

n  (Illustrated p. 304) n  (Illustrated p. 305)

Source: TCP/IP Illustrated, Vol.1

Page 22: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved.

RTO calculation

22

Source: A Quick Tour Around TCP, http://web.eecs.utk.edu/~dunigan/tcptour/

Page 23: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 23

Loss sensitivity

n  namによるデモ

n  Timeout n  Congestion avoidance

Page 24: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 24

More topics on TCP

n  Fast retransmit n  Fast recovery (RFC3782) n  Selective Acknowledgment (SACK) (RFC3517) n  TCP Friendly Rate Control (TFRC) (RFC3448) n  Explicit Congestion Notification (ECN) (RFC3168)

n  Interaction with RED n  TCP extensions for wireless links n  ...

Page 25: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 25

TCP enhancements

n  細かな実装の違いが存在 ¨ Reno ¨ NewReno ¨ SACK ¨  ...

n  拡張には2種類ある n  「特定の条件で最適な性能を発揮する」ような TCP拡張

¨ → たくさん論文が出続けているが無視してよい n  「幅広い条件でそれなりの性能を向上させる」ようなTCP拡張

¨ → IETFで標準化を検討

n  ベンダ独自の工夫が裏目に出ることも

Page 26: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 26

Questions?

Page 27: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 27

まとめ

n  フロー制御 ¨ Stop-and-Wait ¨ Go back n

n  TCPにおけるフロー制御 ¨ Sliding window

n  TCPにおける輻輳制御 ¨ Slow start ¨ Congestion avoidance

Page 28: 情報ネットワーク論I TCP 2/2 - NAIST

Copyright(C)2012 Youki Kadobayashi. All rights reserved. 28

課題

n  TAが用意する仮想マシンイメージを用いて遅いWebサイトを取り上げ、tcpdumpまたはwiresharkを用いて遅い理由を分析せよ。

n  提出期限 5/23(水) 17:00 n  提出先 A3F インターネット工学研究室