The TCP Minimum RTO Revisited - Electrical engineeringuceeips/minrto-networking07-psaras.pdf · The...

23
The TCP Minimum RTO Revisited Ioannis Psaras and Vassilis Tsaoussidis (ipsaras, vtsaousi)@ee.duth.gr COMputer NETworks (COMNET) Group Democritus University of Thrace, Xanthi, Greece http://comnet.ee.duth.gr/ The TCP Minimum RTO Revisited – s.1/23

Transcript of The TCP Minimum RTO Revisited - Electrical engineeringuceeips/minrto-networking07-psaras.pdf · The...

The TCP Minimum RTO Revisited

Ioannis Psaras and Vassilis Tsaoussidis

(ipsaras, vtsaousi)@ee.duth.gr

COMputer NETworks (COMNET) Group

Democritus University of Thrace, Xanthi, Greece

http://comnet.ee.duth.gr/

The TCP Minimum RTO Revisited – s.1/23

Introductory Notes

According to RFC 2988 (Computing TCP’sRetransmission Timer):

1. RTO = SRTT + 4 × RTTV AR,

2. RTO ≥ 1 second (i.e., Minimum RTO)

The Minimum RTO protects TCP against spurioustimeouts caused by:

1. coarse-grained clocks (500ms for most OSs at thattime, i.e., Nov. 2000)

2. the Delayed Acknowledgments (usually set to 200ms), RFC1122

The TCP Minimum RTO Revisited – s.2/23

Our Contribution

• We re-examine the two reasons for theconservative 1-second Minimum TCP-RTO:1. the OS clock granularity, and2. the Delayed ACKs.

• We find that reason 1 is canceled in modern OSs,• We carefully design a mechanism to deal with

reason 2.• We show (through simulations) that in next

generation’s high-speed, wireless-accessnetworks, TCP-RTO should not be limited by afixed, conservative lower bound.

The TCP Minimum RTO Revisited – s.3/23

Cost Function

We define a Cost Function to capture the impact of theMinimum RTO to TCP’s performance:

C(f) = RTOmin

RTOcurrent

• If C(f) ≤ 1, the Minimum RTO adds no extrawaiting time.

• Otherwise, the Minimum RTO will negativelyimpact TCP Throughput.

The TCP Minimum RTO Revisited – s.4/23

Clock Granularity (1/5): Motivation

We simulate a coarse-grained flow (i.e., G=500ms)over a 500ms Round-Trip Propagation Delay (RTPD)path, to observe:

1. the rationale behind the conservative 1-secondMinimum RTO setting, and

2. the impact of the Minimum RTO value relativelywith the actual TCP-RTO value.

The TCP Minimum RTO Revisited – s.5/23

Clock Granularity (2/5): Observations

We observe that:

1. C(f) < 1 (no negative impact on TCP Throughput),

2. the Minimum RTO is only needed as a safetymargin.

10

12

14

16

18

20

22

24

9.5 10 10.5 11 11.5 12 12.5 13 13.5 14

Seq

uenc

e N

umbe

r

Time (s)

DATA pktACK

RTOmin RTO

(a) G = 500ms, RTPD = 500ms

420

425

430

435

440

15 15.5 16 16.5 17 17.5

Seq

uenc

e N

umbe

r

Time (s)

DATA pktACK

RTOmin RTO

(b) G = 500ms, RTPD = 6ms

Figure 1: 500ms Clock GranularityThe TCP Minimum RTO Revisited – s.6/23

Clock Granularity (3/5): OS Details

Table 1: Details on Modern OSsOS Clock Granularity Delayed ACKWindows 15-16ms 200msSolaris 10ms 50-100msLinux ≤ 25ms Dynamically Set

• We repeat the above experiment using, this time, afiner-grained clock of 10ms.

The TCP Minimum RTO Revisited – s.7/23

Clock Granularity (4/5): Impact

• C(f) ≈ RTOmin

T (ACK Arr) ≤RTOmin

RCG+RTPD+QD≈ 62.5

1450

1455

1460

1465

1470

1475

1480

7.2 7.4 7.6 7.8 8 8.2 8.4 8.6

Seq

uenc

e N

umbe

r

Time (s)

DATA pktACK

RTOmin RTO

Figure 2: G = 10ms, RTPD = 6ms

The TCP Minimum RTO Revisited – s.8/23

Clock Granularity (5/5): Conclusions

We conclude that:

1. the clock granularity should not be a matter ofconcern for the setting of the Minimum RTO, and

2. the conservative 1-second Minimum RTO will havemajor impact on TCP’s performance, in case ofpacket losses.

The TCP Minimum RTO Revisited – s.9/23

Delayed ACKs (1/6): Notes

• TCP sends D back-to-back packets, according toRFC 2581:D = snd.una + min(cwnd, rwnd) -snd.nxt.

• TCP does not know the application’s sendingpattern.

• Only the ACK of the last packet of the "train" ofback-to-back packets may be delayed.

• Every 2nd packet will always be ACKed.

The TCP Minimum RTO Revisited – s.10/23

Delayed ACKs (2/6): An Example

• At time t0 all previously transmitted packets arealready ACKed.

• D = 4: (or generally D: even)• The client will ACK the 2nd and 4th packets.• No Delayed ACKs ⇒ no need for extended

Minimum RTO.• D = 3: (or generally D: odd)

• Client will ACK the 2nd packet and will triggerthe DelACK timer for the 3rd packet.

• The 3rd packet’s ACK may be Delayed ⇒ extendthe Minimum RTO, for the 3rd packet only.

The TCP Minimum RTO Revisited – s.11/23

Delayed ACKs (3/6): Algorithm States

The proposed mechanism operates in one of thefollowing States:

• State 1: "noMINRTO". Do not apply extendedMinimum RTO to any outgoing packet (i.e., thereceiver will always ACK the last packet of theback-to-back train of packets); set set_odd tofalse.

• State 2: "extended MINRTO". Apply extendedMinimum RTO to the last packet of the next train ofback-to-back packets; set set_odd to true.

The TCP Minimum RTO Revisited – s.12/23

Delayed ACKs (4/6): State Diagram

1st packet of the Slow-Start phase

extend MINRTOset_odd:false

noMINRTOset_odd:false

extend MINRTO for last pkt of trainset_odd:true

D:even D:odd

D:odd

D:odd

D:evenD:even

Figure 3: State Diagram

The TCP Minimum RTO Revisited – s.13/23

Delayed ACKs (5/6): Example

1476

1478

1480

1482

1484

1486

1488

1490

7 7.2 7.4 7.6 7.8 8

Seq

uenc

e N

umbe

r

Time (s)

2 pkts b2b

2 pkts b2b

3 pkts b2b

2 pkts b2b

2 pkts b2b

2 pkts b2b

The ACK of the last b2bpkt may be delayed.

Extend the Minimum RTO

DATA pktACK

RTOmin RTO

Figure 4: Modeling ACKs ArrivalThe TCP Minimum RTO Revisited – s.14/23

Delayed ACKs (6/6): Impact

RTOmin =

{

R ms, for the last pkt if set_odd = 1,

RTOcur, otherwise,

where R is a fixed, extended value for the MinimumRTO.

C(f) =

{

R msRTOcur

, for the last pkt if set_odd = 1,

1, otherwise.

The TCP Minimum RTO Revisited – s.15/23

Performance Evaluation (1/2)

• TCP version: Reno• SACK: enabled• Timestamps: enabled• Spurious response: enabled• Delayed ACK Timer: 200ms• Granularity: 10ms• Buffers use RED, Buffer size = BDP• We measure the System Goodput:

Goodput = Original_DataConnection_time

The TCP Minimum RTO Revisited – s.16/23

Performance Evaluation (2/2)

We compare the proposed algorithm with threedifferent TCP implementations:

1. Linux TCP: Minimum RTO = 200ms

2. Solaris TCP: Minimum RTO = 400ms

3. IETF Proposal (RFC 2988): Minimum RTO = 1s(probably Windows TCP)

The TCP Minimum RTO Revisited – s.17/23

Results (1/4): The Need for aStandard Mechanism (1/2)

IfSrv′s Min RTO < RTPD + QD + Clnt′s DelACK Timer

andMinimum RTO > RTOcur,then the TCP server will spuriously timeout every timean ACK is delayed and D = 1.

The TCP Minimum RTO Revisited – s.18/23

Results (2/4): The Need for aStandard Mechanism (2/2)

596

598

600

602

604

606

608

36 36.1 36.2 36.3 36.4 36.5 36.6 36.7 36.8

Seq

uenc

e N

umbe

r

Time (s)

Spurious Retransmission

DATA pktACK

RTOmin RTO

(a) Linux Server - 200ms Delayed

ACK Client (e.g., Windows client)

596

598

600

602

604

606

608

36 36.1 36.2 36.3 36.4 36.5 36.6 36.7 36.8

Seq

uenc

e N

umbe

r

Time (s)

Extended Minimum RTOto avoid spurious Timeout

DATA pktACK

RTOmin RTO

(b) Modified Linux Server - 200ms

Delayed ACK Client (e.g., Win-

dows client)

Figure 5: The Need for a Standard Mechanism

The TCP Minimum RTO Revisited – s.19/23

Results (3/4): Long FTP Flows (1/2)

Figure 6: Simulation Topology

Table 2: Experiment DetailsPER TCP Flows bw_bb

Fig. 7(a) see Fig. 3 6 MbpsFig. 7(b) 3% see Fig. 100 MbpsFig. 7(c) 3% 500 see Fig.

The TCP Minimum RTO Revisited – s.20/23

Results (4/4): Long FTP Flows (2/2)

Packet Error Rate (%)2 3 4 5

Goo

dput

(B

/s)

050000

100000150000200000250000300000350000400000

IETF Solaris Linux noMINRTO

(a) Increasing PER

Number of Participating Flows20 40 60 80 100

Goo

dput

(B

/s)

0

2e+06

4e+06

6e+06

8e+06

1e+07

IETF Solaris Linux noMINRTO

(b) Increasing TCP Contention

Backbone Bandwidth Capacity (Gbps)2 4 6 8 10

Goo

dput

(B

/s)

01e+072e+073e+074e+075e+076e+077e+07

IETF Solaris Linux noMINRTO

(c) Increasing Bandwidth Capacity

Figure 7: Impact on Long FTP FlowsThe TCP Minimum RTO Revisited – s.21/23

Conclusions

1. The conservative 1-second Minimum RTO settingcauses severe TCP performance degradation.

2. The Minimum RTO setting is not needed, since:• modern OSs use fine-grained clocks, and• the proposed algorithm deals with the Delayed

ACK response.

3. The proposed algorithm:• may improve TCP performance up to 50%,• effectively avoids spurious timeouts, and• overcomes communication inconsistencies,

caused by the absense of official instructionsregarding the Minimum RTO setting.

The TCP Minimum RTO Revisited – s.22/23

Thank you!Questions?

Ioannis Psarashttp://utopia.duth.gr/~ipsaras

The TCP Minimum RTO Revisited – s.23/23