• 沒有找到結果。

Network Protocols: Design and Analysis-TCP Papers

N/A
N/A
Protected

Academic year: 2021

Share "Network Protocols: Design and Analysis-TCP Papers"

Copied!
39
0
0

加載中.... (立即查看全文)

全文

(1)

Network Protocols:

Design and Analysis

Polly Huang EE NTU

http://cc.ee.ntu.edu.tw/~phuang [email protected]

(2)

TCP Papers

[Jacobson88a]

[Fall96a]

(3)

Key ideas

• [Jacboson88a]:

– implementation of transport layer TCP

– theory behind TCP congestion control: packet conserva

tion

– congestion control alg and how it relates to other TCP a lgorithms

• [Fall96a]:

– benefits of SACK (selective acknowledgements) – compares several loss recovery algorithms

(4)

Agenda

• connection setup and teardown • flow control

• congestion control theory

• congestion control practice (in TCP)

– slow start – congestion avoidance • loss recovery • putting it together • security • performance

(5)

TCP Congestion Control

• two mechanisms:

– slow start

– congestion avoidance

• interacts very closely with loss repair:

– good retransmit timeout (RTO) estimation – fast retransmit and recovery

– why?

• packet loss is the signal for congestion

• packet loss recovery can cause redundant work during times of conge stion

• but need to recover from loss reasonably quickly or goodput drops to zero

(6)

TCP Congestion Principals

• underlying principle: packet conservation

– at equilibrium, inject packet into network only when one is removed

– basis for stability of physical systems

• components:

– how to get there: slow start

(7)

TCP Congestion Control

Mechanisms

• new congestion window cwnd

– what the network can handle

– vs. flow control window (wnd): what the other end can handle

• sender limits tx

– min (wnd, cwnd)

(8)

TCP Self-clocking

Pr Pb Ar Ab receiver sender As

depends on ACK stream to keep packets flowing (Redrawn from [Jacobson88a]) packet spacing at receiver xxx pck spacing at botteneck xxx ACK spacing at sender

(9)

Slow Start

• How do we get the ACK clock started?

– Initialize cwnd = 1

– Upon receipt of every ACK, cwnd = cwnd + 1

• Implications

– how much in each RTT? increase multipliciati vely (doubles each rtt)

– Will overshoot window and cause packet loss (but remember, packet loss is part of the plan)

(10)

Polly Huang, NTU EE 10

Slow Start Example

1 one RTT one pkt time 0R 2 1R 3 4 2R 5 67 8 3R 9 1011 1213 1415 1 2 3 4 5 6 7 (redrawn from [Jacobson88a] Fig 2)

(11)

Slow Start Time-Sequence Plot

time Data (KB)

(12)

When to End Slow-Start?

• Want to end when the pipe is full

– do end when cwnd > ssthresh

– start with large ssthresh, but then refine it

• On packet loss

– cwnd=1 and go back to slow start – ssthresh = cwnd / 2

• assume that pipe size was somewhere between last good windo w (cwnd/2) and current window (cwnd)

• Eventually, ssthresh is right and transition to cong

(13)

Congestion Avoidance

• upon receiving ACK

– Increase cwnd by 1/cwnd

– This is additive increase (over 1 RTT it adds up to increasing by 1 segment)

• why not multiplicative increase?

(14)

Congestion Window

time Congestion

(15)

Problems So Far

• have way to fill pipe (slow start)

• have way to run at equilibrium (congestion

avoidance)

• but tough transition

– no good initial ssthresh

– large ssthresh causes packet loss, every time

 need approaches to quickly recover from pack et loss (or explicit signal of congestion)

(16)

Agenda

• connection setup and teardown

• flow control

• congestion control

• loss recovery

• security

(17)

TCP Loss Recovery

• timeout and retransmit

• fast retransmit

• fast recovery

• New-Reno partial ACKs

• SACK

(18)

Fallback Mechanism: Timeout

• retransmission timer (RTO)

– if no ACK after RTO fires,

reset cwnd and resend lowest unACK’ed segment

• but they’re very crude

– completely stop the ACK clock – force slow-start again

– are often slow—a long time with no traffic

(19)

Digression: RTO Calculation

• Must estimate RTO

– don’t know it at start

– may change due to congestion or path change

• But need a good estimate

– too low => unnecessary retransmits

(20)

Initial Round-trip Estimator

Round trip times exponentially averaged:

• New RTT =  (old RTT) + (1 - ) (new

sample)

• Recommended value for : 0.8 - 0.9

• Retransmit timer set to  RTT, where  = 2

• Every RTO expiration, increase it

(21)

Retransmission Ambiguity

A B ACK Sample RTT A B Original transmission retransmission Sample RTT Original transmission retransmission ACK RTO RTO

(22)

Karn’s Retransmission Timeout

Estimator

• Accounts for retransmission ambiguity

• If a segment has been retransmitted:

– Don’t count RTT sample on ACKs for this seg ment

– Keep backed off time-out for next packet

– Reuse RTT estimate only after one successful tr ansmission

(23)

Jacobson’s Retransmission

Timeout Estimator

• Key observation:

– Using  RTT for timeout doesn’t work

(not adaptive enough with fixed : at high loads, variance is high)

• Solution:

– If D denotes mean variation (measured) – Timeout = RTT + 4D

– is now adaptive

(24)

TCP Loss Recovery

• timeout and retransmit

• fast retransmit

• fast recovery

• New-Reno partial ACKs

• SACK

(25)

Fast Retransmit

• Interpret n duplicate ACKs as loss indicatio

n

– in fact, send a dup ACK for every packet you g et after a missing one

– but beware: now packet re-ordering causes pro blems

• Goal: avoid RTO by fixing the one missing

segment

(26)

Fast Retransmit Example

fast retransmit after 3 dup ACKs from [Fall96a] figure 2

fast retx helps a lot,

(27)

Fast Recovery

• Problem: fast retx still forces slow-start, breaking t he ACK clock

• Fast Recovery Solution: artificially inflate the cwn

d as more dup ACKs come in

– cut cwnd, but instead of slow start, do additive increase for each ACK

– justification: each dup ACK represents a packet leaving the network, so we can increase cwnd

(28)

Fast Retransmit and Recovery

• If we get 3 duplicate ACKs for segment N

– Retransmit segment N – Set ssthresh to 0.5*cwnd

– Set cwnd to ssthresh + 3 [why?]

• For every subsequent duplicate ACK

– Increase cwnd by 1 segment

• When new ACK received

(29)

Fast Recovery Example

fast retransmit after 3 dup ACKs

fast recovery due to add’tl dup ACKs

(30)

New-Reno Partial ACKs

• But fast retx and recovery only repair one lo

st segment per RTT

• New-Reno idea: use partial ACKs to stay in

fast recovery and fix more lost segments

(31)

New-Reno Example

fast retransmit after 3 dup ACKs

fast recovery due to add’tl dup ACKs

additional fast retx and recovery from New Reno

(32)

SACK

• Forget these hacks, have receiver just tell

sender what’s missing

 SACK: selective acknowledgement

– use TCP options to encode some info about

multiple losses and avoid all of this guess work – but why is SACK deployment so much slower

(33)

Agenda

• connection setup and teardown • flow control

• congestion control theory

• congestion control practice (in TCP) • loss recovery

• putting it together

• security

(34)

Jacobson Observations

• Compare Figure 3 vs. Figure 4

• Compare Figure 8 vs. Figure 9

(35)
(36)
(37)
(38)
(39)

Other questions/observations?

參考文獻

相關文件

command line, he specifies an arbitrary (but specific; in this case, 9989) local port that ssh should forward through the secure tunnel to the remote Windows ma- chine’s port

• makes a locally optimal choice in the hope that this choice will lead to a globally optimal solution.. • not always yield optimal solution; may end up at

Textbook Chapter 33.4 – Finding the closest pair of points.. Closest Pair of

✓ Combining an optimal solution to the subproblem via greedy can arrive an optimal solution to the original problem. Prove that there is always an optimal solution to the

✓ Combining an optimal solution to the subproblem via greedy can arrive an optimal solution to the original problem.. Prove that there is always an optimal solution to the

Textbook Chapter 4.3 – The substitution method for solving recurrences Textbook Chapter 4.4 – The recursion-tree method for solving recurrences Textbook Chapter 4.5 – The master

Calculate the amortized cost of each operation based on the potential function 4. Calculate total amortized cost based on

jobs