* 200 millisecond timeouts in TCP
@ 2010-06-03 22:37 Ivan Novick
2010-06-03 22:51 ` Mitchell Erblich
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Ivan Novick @ 2010-06-03 22:37 UTC (permalink / raw)
To: netdev
Hello,
Using tcpdump and systemtap I am seeing that sometimes retransmission
of data is sent after waiting 200 milliseconds. However sometimes
retransmissions happen quicker.
Is there a specifc event that causes these 200 milisec delays to kick
in? Are those events identifiable in netstat -s output?
Also do you know if the timeout numbers for TCP are configurable parameters?
I am testing on RHEL5 with this kernel: 2.6.18-164.15.1.el5.
Cheers,
Ivan Novick
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 200 millisecond timeouts in TCP
2010-06-03 22:37 200 millisecond timeouts in TCP Ivan Novick
@ 2010-06-03 22:51 ` Mitchell Erblich
2010-06-03 23:10 ` Hagen Paul Pfeifer
2010-06-04 6:58 ` Ryousei Takano
2 siblings, 0 replies; 10+ messages in thread
From: Mitchell Erblich @ 2010-06-03 22:51 UTC (permalink / raw)
To: Ivan Novick; +Cc: netdev
On Jun 3, 2010, at 3:37 PM, Ivan Novick wrote:
> Hello,
>
> Using tcpdump and systemtap I am seeing that sometimes retransmission
> of data is sent after waiting 200 milliseconds. However sometimes
> retransmissions happen quicker.
>
> Is there a specifc event that causes these 200 milisec delays to kick
> in? Are those events identifiable in netstat -s output?
>
> Also do you know if the timeout numbers for TCP are configurable parameters?
>
> I am testing on RHEL5 with this kernel: 2.6.18-164.15.1.el5.
>
> Cheers,
> Ivan Novick
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
Ivan Novick,
There is a public Linux TCP paper that I think covers this.
Mitchell Erblich
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 200 millisecond timeouts in TCP
2010-06-03 22:37 200 millisecond timeouts in TCP Ivan Novick
2010-06-03 22:51 ` Mitchell Erblich
@ 2010-06-03 23:10 ` Hagen Paul Pfeifer
2010-06-04 0:05 ` Ivan Novick
` (2 more replies)
2010-06-04 6:58 ` Ryousei Takano
2 siblings, 3 replies; 10+ messages in thread
From: Hagen Paul Pfeifer @ 2010-06-03 23:10 UTC (permalink / raw)
To: Ivan Novick; +Cc: netdev
* Ivan Novick | 2010-06-03 15:37:24 [-0700]:
>Using tcpdump and systemtap I am seeing that sometimes retransmission
>of data is sent after waiting 200 milliseconds. However sometimes
>retransmissions happen quicker.
Quicker as 200ms? Conservatively the minimum TCP RTO should be 1s (rfc2988),
Linux differs from this default and define the minimum RTO to 200ms:
#define TCP_RTO_MIN ((unsigned)(HZ/5))
Can you post the tcpdump traces where the relevant retransmission is recognizable?
>Also do you know if the timeout numbers for TCP are configurable parameters?
Some values are documented in Documentation/networking/ip-sysctl.txt, you can
find the relevant timer implementation in ipv4/tcp_input.c and the definition
of TCP_RTO_MIN in include/net/tcp.h.
Hagen Paul Pfeifer
--
Hagen Paul Pfeifer <hagen@jauu.net> || http://jauu.net/
Telephone: +49 174 5455209 || Key Id: 0x98350C22
Key Fingerprint: 490F 557B 6C48 6D7E 5706 2EA2 4A22 8D45 9835 0C22
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 200 millisecond timeouts in TCP
2010-06-03 23:10 ` Hagen Paul Pfeifer
@ 2010-06-04 0:05 ` Ivan Novick
2010-06-04 0:11 ` Ivan Novick
2010-06-04 1:13 ` Mitchell Erblich
2 siblings, 0 replies; 10+ messages in thread
From: Ivan Novick @ 2010-06-04 0:05 UTC (permalink / raw)
To: Hagen Paul Pfeifer; +Cc: netdev
On Thu, Jun 3, 2010 at 4:10 PM, Hagen Paul Pfeifer <hagen@jauu.net> wrote:
> * Ivan Novick | 2010-06-03 15:37:24 [-0700]:
>
>>Using tcpdump and systemtap I am seeing that sometimes retransmission
>>of data is sent after waiting 200 milliseconds. However sometimes
>>retransmissions happen quicker.
>
> Quicker as 200ms? Conservatively the minimum TCP RTO should be 1s (rfc2988),
> Linux differs from this default and define the minimum RTO to 200ms:
>
> #define TCP_RTO_MIN ((unsigned)(HZ/5))
>
> Can you post the tcpdump traces where the relevant retransmission is recognizable?
Here is the tcpdump, below.
Cheers,
Ivan Novick
tcpdump on machine dell-s1-1:
000005 IP dell-s1-1.46799 > dell-s2-1.47500: .
168771588:168787516(15928) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000052 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168749868 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000086 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168754212 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000026 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168757108 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000040 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168762900 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000013 IP dell-s1-1.46799 > dell-s2-1.47500: .
168787516:168803444(15928) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000046 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168768692 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000059 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168775932 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000006 IP dell-s1-1.46799 > dell-s2-1.47500: .
168803444:168817924(14480) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000049 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168781724 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000444 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168786068 win 16200
<nop,nop,timestamp 2077240629 1375977402>
000025 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168804892}>
000020 IP dell-s1-1.46799 > dell-s2-1.47500: .
168817924:168819372(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168806340}>
000006 IP dell-s1-1.46799 > dell-s2-1.47500: .
168819372:168820820(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168809236}>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: .
168820820:168822268(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000002 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168812132}>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: .
168822268:168823716(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000002 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168815028}>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: .
168823716:168825164(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000005 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168817924}>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: .
168825164:168826612(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000412 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168819372}>
000007 IP dell-s1-1.46799 > dell-s2-1.47500: .
168787516:168788964(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168822268}>
000004 IP dell-s1-1.46799 > dell-s2-1.47500: .
168788964:168790412(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168825164}>
000003 IP dell-s1-1.46799 > dell-s2-1.47500: .
168790412:168791860(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168826612}>
000004 IP dell-s1-1.46799 > dell-s2-1.47500: .
168791860:168793308(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000383 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168788964 win 16188
<nop,nop,timestamp 2077240629 1375977403,nop,nop,sack 1
{168801996:168826612}>
000006 IP dell-s1-1.46799 > dell-s2-1.47500: .
168793308:168794756(1448) ack 1 win 46 <nop,nop,timestamp 1375977404
2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168790412 win 16177
<nop,nop,timestamp 2077240629 1375977403,nop,nop,sack 1
{168801996:168826612}>
000004 IP dell-s1-1.46799 > dell-s2-1.47500: .
168794756:168796204(1448) ack 1 win 46 <nop,nop,timestamp 1375977404
2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168793308 win 16154
<nop,nop,timestamp 2077240629 1375977403,nop,nop,sack 1
{168801996:168826612}>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: .
168796204:168797652(1448) ack 1 win 46 <nop,nop,timestamp 1375977404
2077240629>
000132 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168794756 win 16143
<nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1
{168801996:168826612}>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: .
168797652:168799100(1448) ack 1 win 46 <nop,nop,timestamp 1375977404
2077240630>
000018 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168797652 win 16120
<nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1
{168801996:168826612}>
000006 IP dell-s1-1.46799 > dell-s2-1.47500: .
168799100:168800548(1448) ack 1 win 46 <nop,nop,timestamp 1375977404
2077240630>
000198 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168799100 win 16109
<nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1
{168801996:168826612}>
000006 IP dell-s1-1.46799 > dell-s2-1.47500: .
168800548:168801996(1448) ack 1 win 46 <nop,nop,timestamp 1375977404
2077240630>
000024 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168800548 win 16098
<nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1
{168801996:168826612}>
000007 IP dell-s1-1.46799 > dell-s2-1.47500: .
168826612:168828060(1448) ack 1 win 46 <nop,nop,timestamp 1375977404
2077240630>
203979 IP dell-s1-1.46799 > dell-s2-1.47500: .
168800548:168801996(1448) ack 1 win 46 <nop,nop,timestamp 1375977608
2077240630>
000110 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168828060 win 16200
<nop,nop,timestamp 2077240834 1375977404,nop,nop,sack 1
{168800548:168801996}>
tcpdump on machine dell-s2-1:
000032 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168746972 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000022 IP dell-s1-1.46799 > dell-s2-1.47500: .
168746972:168748420(1448) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240627>
000023 IP dell-s1-1.46799 > dell-s2-1.47500: .
168748420:168749868(1448) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240627>
000013 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168749868 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000037 IP dell-s1-1.46799 > dell-s2-1.47500: .
168749868:168751316(1448) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240627>
000027 IP dell-s1-1.46799 > dell-s2-1.47500: .
168751316:168754212(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240627>
000021 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168754212 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: .
168754212:168755660(1448) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240627>
000002 IP dell-s1-1.46799 > dell-s2-1.47500: .
168755660:168757108(1448) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000004 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168757108 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000019 IP dell-s1-1.46799 > dell-s2-1.47500: .
168757108:168760004(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000026 IP dell-s1-1.46799 > dell-s2-1.47500: .
168760004:168762900(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000011 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168762900 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000014 IP dell-s1-1.46799 > dell-s2-1.47500: .
168762900:168765796(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000026 IP dell-s1-1.46799 > dell-s2-1.47500: .
168765796:168768692(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000011 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168768692 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000016 IP dell-s1-1.46799 > dell-s2-1.47500: .
168768692:168773036(4344) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000026 IP dell-s1-1.46799 > dell-s2-1.47500: .
168773036:168775932(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000017 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168775932 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000008 IP dell-s1-1.46799 > dell-s2-1.47500: .
168775932:168778828(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000025 IP dell-s1-1.46799 > dell-s2-1.47500: .
168778828:168781724(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000012 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168781724 win 16200
<nop,nop,timestamp 2077240628 1375977402>
000014 IP dell-s1-1.46799 > dell-s2-1.47500: .
168781724:168784620(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000024 IP dell-s1-1.46799 > dell-s2-1.47500: .
168784620:168786068(1448) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000025 IP dell-s1-1.46799 > dell-s2-1.47500: .
168786068:168787516(1448) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000091 IP dell-s1-1.46799 > dell-s2-1.47500: .
168801996:168804892(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000009 IP dell-s1-1.46799 > dell-s2-1.47500: .
168804892:168806340(1448) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000026 IP dell-s1-1.46799 > dell-s2-1.47500: .
168806340:168809236(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000027 IP dell-s1-1.46799 > dell-s2-1.47500: .
168809236:168812132(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000024 IP dell-s1-1.46799 > dell-s2-1.47500: .
168812132:168815028(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000029 IP dell-s1-1.46799 > dell-s2-1.47500: .
168815028:168817924(2896) ack 1 win 46 <nop,nop,timestamp 1375977402
2077240628>
000077 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168786068 win 16200
<nop,nop,timestamp 2077240629 1375977402>
000006 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168804892}>
000002 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168806340}>
000001 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168809236}>
000002 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168812132}>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168815028}>
000001 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168817924}>
000203 IP dell-s1-1.46799 > dell-s2-1.47500: .
168817924:168819372(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000028 IP dell-s1-1.46799 > dell-s2-1.47500: .
168819372:168822268(2896) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000025 IP dell-s1-1.46799 > dell-s2-1.47500: .
168822268:168825164(2896) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000024 IP dell-s1-1.46799 > dell-s2-1.47500: .
168825164:168826612(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000312 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168819372}>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168822268}>
000002 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168825164}>
000002 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200
<nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1
{168801996:168826612}>
000074 IP dell-s1-1.46799 > dell-s2-1.47500: .
168787516:168788964(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000013 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168788964 win 16188
<nop,nop,timestamp 2077240629 1375977403,nop,nop,sack 1
{168801996:168826612}>
000013 IP dell-s1-1.46799 > dell-s2-1.47500: .
168788964:168790412(1448) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000013 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168790412 win 16177
<nop,nop,timestamp 2077240629 1375977403,nop,nop,sack 1
{168801996:168826612}>
000014 IP dell-s1-1.46799 > dell-s2-1.47500: .
168790412:168793308(2896) ack 1 win 46 <nop,nop,timestamp 1375977403
2077240629>
000015 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168793308 win 16154
<nop,nop,timestamp 2077240629 1375977403,nop,nop,sack 1
{168801996:168826612}>
000333 IP dell-s1-1.46799 > dell-s2-1.47500: .
168793308:168794756(1448) ack 1 win 46 <nop,nop,timestamp 1375977404
2077240629>
000016 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168794756 win 16143
<nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1
{168801996:168826612}>
000010 IP dell-s1-1.46799 > dell-s2-1.47500: .
168794756:168797652(2896) ack 1 win 46 <nop,nop,timestamp 1375977404
2077240629>
000013 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168797652 win 16120
<nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1
{168801996:168826612}>
000111 IP dell-s1-1.46799 > dell-s2-1.47500: .
168797652:168799100(1448) ack 1 win 46 <nop,nop,timestamp 1375977404
2077240630>
000021 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168799100 win 16109
<nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1
{168801996:168826612}>
000004 IP dell-s1-1.46799 > dell-s2-1.47500: .
168799100:168800548(1448) ack 1 win 46 <nop,nop,timestamp 1375977404
2077240630>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168800548 win 16098
<nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1
{168801996:168826612}>
000258 IP dell-s1-1.46799 > dell-s2-1.47500: .
168800548:168801996(1448) ack 1 win 46 <nop,nop,timestamp 1375977404
2077240630>
000036 IP dell-s1-1.46799 > dell-s2-1.47500: .
168826612:168828060(1448) ack 1 win 46 <nop,nop,timestamp 1375977404
2077240630>
000030 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168826612 win 16077
<nop,nop,timestamp 2077240630 1375977404>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168828060 win 16066
<nop,nop,timestamp 2077240630 1375977404>
203890 IP dell-s1-1.46799 > dell-s2-1.47500: .
168800548:168801996(1448) ack 1 win 46 <nop,nop,timestamp 1375977608
2077240630>
000042 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168828060 win 16200
<nop,nop,timestamp 2077240834 1375977404,nop,nop,sack 1
{168800548:168801996}>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 200 millisecond timeouts in TCP
2010-06-03 23:10 ` Hagen Paul Pfeifer
2010-06-04 0:05 ` Ivan Novick
@ 2010-06-04 0:11 ` Ivan Novick
2010-06-04 0:45 ` Hagen Paul Pfeifer
2010-06-04 1:13 ` Mitchell Erblich
2 siblings, 1 reply; 10+ messages in thread
From: Ivan Novick @ 2010-06-04 0:11 UTC (permalink / raw)
To: Hagen Paul Pfeifer; +Cc: netdev
[-- Attachment #1: Type: text/plain, Size: 666 bytes --]
On Thu, Jun 3, 2010 at 4:10 PM, Hagen Paul Pfeifer <hagen@jauu.net> wrote:
> * Ivan Novick | 2010-06-03 15:37:24 [-0700]:
>
>>Using tcpdump and systemtap I am seeing that sometimes retransmission
>>of data is sent after waiting 200 milliseconds. However sometimes
>>retransmissions happen quicker.
>
> Quicker as 200ms? Conservatively the minimum TCP RTO should be 1s (rfc2988),
> Linux differs from this default and define the minimum RTO to 200ms:
>
> #define TCP_RTO_MIN ((unsigned)(HZ/5))
>
> Can you post the tcpdump traces where the relevant retransmission is recognizable?
resending tcpdump output as attachments.
Cheers,
Ivan Novick
[-- Attachment #2: dell1.tcpdump --]
[-- Type: application/octet-stream, Size: 6295 bytes --]
000005 IP dell-s1-1.46799 > dell-s2-1.47500: . 168771588:168787516(15928) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000052 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168749868 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000086 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168754212 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000026 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168757108 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000040 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168762900 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000013 IP dell-s1-1.46799 > dell-s2-1.47500: . 168787516:168803444(15928) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000046 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168768692 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000059 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168775932 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000006 IP dell-s1-1.46799 > dell-s2-1.47500: . 168803444:168817924(14480) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000049 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168781724 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000444 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168786068 win 16200 <nop,nop,timestamp 2077240629 1375977402>
000025 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168804892}>
000020 IP dell-s1-1.46799 > dell-s2-1.47500: . 168817924:168819372(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168806340}>
000006 IP dell-s1-1.46799 > dell-s2-1.47500: . 168819372:168820820(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168809236}>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: . 168820820:168822268(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000002 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168812132}>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: . 168822268:168823716(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000002 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168815028}>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: . 168823716:168825164(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000005 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168817924}>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: . 168825164:168826612(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000412 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168819372}>
000007 IP dell-s1-1.46799 > dell-s2-1.47500: . 168787516:168788964(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168822268}>
000004 IP dell-s1-1.46799 > dell-s2-1.47500: . 168788964:168790412(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168825164}>
000003 IP dell-s1-1.46799 > dell-s2-1.47500: . 168790412:168791860(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168826612}>
000004 IP dell-s1-1.46799 > dell-s2-1.47500: . 168791860:168793308(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000383 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168788964 win 16188 <nop,nop,timestamp 2077240629 1375977403,nop,nop,sack 1 {168801996:168826612}>
000006 IP dell-s1-1.46799 > dell-s2-1.47500: . 168793308:168794756(1448) ack 1 win 46 <nop,nop,timestamp 1375977404 2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168790412 win 16177 <nop,nop,timestamp 2077240629 1375977403,nop,nop,sack 1 {168801996:168826612}>
000004 IP dell-s1-1.46799 > dell-s2-1.47500: . 168794756:168796204(1448) ack 1 win 46 <nop,nop,timestamp 1375977404 2077240629>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168793308 win 16154 <nop,nop,timestamp 2077240629 1375977403,nop,nop,sack 1 {168801996:168826612}>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: . 168796204:168797652(1448) ack 1 win 46 <nop,nop,timestamp 1375977404 2077240629>
000132 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168794756 win 16143 <nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1 {168801996:168826612}>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: . 168797652:168799100(1448) ack 1 win 46 <nop,nop,timestamp 1375977404 2077240630>
000018 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168797652 win 16120 <nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1 {168801996:168826612}>
000006 IP dell-s1-1.46799 > dell-s2-1.47500: . 168799100:168800548(1448) ack 1 win 46 <nop,nop,timestamp 1375977404 2077240630>
000198 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168799100 win 16109 <nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1 {168801996:168826612}>
000006 IP dell-s1-1.46799 > dell-s2-1.47500: . 168800548:168801996(1448) ack 1 win 46 <nop,nop,timestamp 1375977404 2077240630>
000024 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168800548 win 16098 <nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1 {168801996:168826612}>
000007 IP dell-s1-1.46799 > dell-s2-1.47500: . 168826612:168828060(1448) ack 1 win 46 <nop,nop,timestamp 1375977404 2077240630>
203979 IP dell-s1-1.46799 > dell-s2-1.47500: . 168800548:168801996(1448) ack 1 win 46 <nop,nop,timestamp 1375977608 2077240630>
000110 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168828060 win 16200 <nop,nop,timestamp 2077240834 1375977404,nop,nop,sack 1 {168800548:168801996}>
[-- Attachment #3: dell2.tcpdump --]
[-- Type: application/octet-stream, Size: 8679 bytes --]
000032 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168746972 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000022 IP dell-s1-1.46799 > dell-s2-1.47500: . 168746972:168748420(1448) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240627>
000023 IP dell-s1-1.46799 > dell-s2-1.47500: . 168748420:168749868(1448) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240627>
000013 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168749868 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000037 IP dell-s1-1.46799 > dell-s2-1.47500: . 168749868:168751316(1448) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240627>
000027 IP dell-s1-1.46799 > dell-s2-1.47500: . 168751316:168754212(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240627>
000021 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168754212 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000005 IP dell-s1-1.46799 > dell-s2-1.47500: . 168754212:168755660(1448) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240627>
000002 IP dell-s1-1.46799 > dell-s2-1.47500: . 168755660:168757108(1448) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000004 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168757108 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000019 IP dell-s1-1.46799 > dell-s2-1.47500: . 168757108:168760004(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000026 IP dell-s1-1.46799 > dell-s2-1.47500: . 168760004:168762900(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000011 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168762900 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000014 IP dell-s1-1.46799 > dell-s2-1.47500: . 168762900:168765796(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000026 IP dell-s1-1.46799 > dell-s2-1.47500: . 168765796:168768692(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000011 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168768692 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000016 IP dell-s1-1.46799 > dell-s2-1.47500: . 168768692:168773036(4344) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000026 IP dell-s1-1.46799 > dell-s2-1.47500: . 168773036:168775932(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000017 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168775932 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000008 IP dell-s1-1.46799 > dell-s2-1.47500: . 168775932:168778828(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000025 IP dell-s1-1.46799 > dell-s2-1.47500: . 168778828:168781724(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000012 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168781724 win 16200 <nop,nop,timestamp 2077240628 1375977402>
000014 IP dell-s1-1.46799 > dell-s2-1.47500: . 168781724:168784620(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000024 IP dell-s1-1.46799 > dell-s2-1.47500: . 168784620:168786068(1448) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000025 IP dell-s1-1.46799 > dell-s2-1.47500: . 168786068:168787516(1448) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000091 IP dell-s1-1.46799 > dell-s2-1.47500: . 168801996:168804892(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000009 IP dell-s1-1.46799 > dell-s2-1.47500: . 168804892:168806340(1448) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000026 IP dell-s1-1.46799 > dell-s2-1.47500: . 168806340:168809236(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000027 IP dell-s1-1.46799 > dell-s2-1.47500: . 168809236:168812132(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000024 IP dell-s1-1.46799 > dell-s2-1.47500: . 168812132:168815028(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000029 IP dell-s1-1.46799 > dell-s2-1.47500: . 168815028:168817924(2896) ack 1 win 46 <nop,nop,timestamp 1375977402 2077240628>
000077 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168786068 win 16200 <nop,nop,timestamp 2077240629 1375977402>
000006 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168804892}>
000002 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168806340}>
000001 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168809236}>
000002 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168812132}>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168815028}>
000001 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168817924}>
000203 IP dell-s1-1.46799 > dell-s2-1.47500: . 168817924:168819372(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000028 IP dell-s1-1.46799 > dell-s2-1.47500: . 168819372:168822268(2896) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000025 IP dell-s1-1.46799 > dell-s2-1.47500: . 168822268:168825164(2896) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000024 IP dell-s1-1.46799 > dell-s2-1.47500: . 168825164:168826612(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000312 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168819372}>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168822268}>
000002 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168825164}>
000002 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168787516 win 16200 <nop,nop,timestamp 2077240629 1375977402,nop,nop,sack 1 {168801996:168826612}>
000074 IP dell-s1-1.46799 > dell-s2-1.47500: . 168787516:168788964(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000013 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168788964 win 16188 <nop,nop,timestamp 2077240629 1375977403,nop,nop,sack 1 {168801996:168826612}>
000013 IP dell-s1-1.46799 > dell-s2-1.47500: . 168788964:168790412(1448) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000013 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168790412 win 16177 <nop,nop,timestamp 2077240629 1375977403,nop,nop,sack 1 {168801996:168826612}>
000014 IP dell-s1-1.46799 > dell-s2-1.47500: . 168790412:168793308(2896) ack 1 win 46 <nop,nop,timestamp 1375977403 2077240629>
000015 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168793308 win 16154 <nop,nop,timestamp 2077240629 1375977403,nop,nop,sack 1 {168801996:168826612}>
000333 IP dell-s1-1.46799 > dell-s2-1.47500: . 168793308:168794756(1448) ack 1 win 46 <nop,nop,timestamp 1375977404 2077240629>
000016 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168794756 win 16143 <nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1 {168801996:168826612}>
000010 IP dell-s1-1.46799 > dell-s2-1.47500: . 168794756:168797652(2896) ack 1 win 46 <nop,nop,timestamp 1375977404 2077240629>
000013 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168797652 win 16120 <nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1 {168801996:168826612}>
000111 IP dell-s1-1.46799 > dell-s2-1.47500: . 168797652:168799100(1448) ack 1 win 46 <nop,nop,timestamp 1375977404 2077240630>
000021 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168799100 win 16109 <nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1 {168801996:168826612}>
000004 IP dell-s1-1.46799 > dell-s2-1.47500: . 168799100:168800548(1448) ack 1 win 46 <nop,nop,timestamp 1375977404 2077240630>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168800548 win 16098 <nop,nop,timestamp 2077240630 1375977404,nop,nop,sack 1 {168801996:168826612}>
000258 IP dell-s1-1.46799 > dell-s2-1.47500: . 168800548:168801996(1448) ack 1 win 46 <nop,nop,timestamp 1375977404 2077240630>
000036 IP dell-s1-1.46799 > dell-s2-1.47500: . 168826612:168828060(1448) ack 1 win 46 <nop,nop,timestamp 1375977404 2077240630>
000030 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168826612 win 16077 <nop,nop,timestamp 2077240630 1375977404>
000003 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168828060 win 16066 <nop,nop,timestamp 2077240630 1375977404>
203890 IP dell-s1-1.46799 > dell-s2-1.47500: . 168800548:168801996(1448) ack 1 win 46 <nop,nop,timestamp 1375977608 2077240630>
000042 IP dell-s2-1.47500 > dell-s1-1.46799: . ack 168828060 win 16200 <nop,nop,timestamp 2077240834 1375977404,nop,nop,sack 1 {168800548:168801996}>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 200 millisecond timeouts in TCP
2010-06-04 0:11 ` Ivan Novick
@ 2010-06-04 0:45 ` Hagen Paul Pfeifer
0 siblings, 0 replies; 10+ messages in thread
From: Hagen Paul Pfeifer @ 2010-06-04 0:45 UTC (permalink / raw)
To: Ivan Novick; +Cc: netdev
* Ivan Novick | 2010-06-03 17:11:07 [-0700]:
>resending tcpdump output as attachments.
Thank you, but where did you see a spurious retransmission? I looked over the
trace and didn't find any. (it is late here, so most likely I missed it ;-)
HGN
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 200 millisecond timeouts in TCP
2010-06-03 23:10 ` Hagen Paul Pfeifer
2010-06-04 0:05 ` Ivan Novick
2010-06-04 0:11 ` Ivan Novick
@ 2010-06-04 1:13 ` Mitchell Erblich
2 siblings, 0 replies; 10+ messages in thread
From: Mitchell Erblich @ 2010-06-04 1:13 UTC (permalink / raw)
To: Hagen Paul Pfeifer; +Cc: Ivan Novick, netdev
On Jun 3, 2010, at 4:10 PM, Hagen Paul Pfeifer wrote:
> * Ivan Novick | 2010-06-03 15:37:24 [-0700]:
>
>> Using tcpdump and systemtap I am seeing that sometimes retransmission
>> of data is sent after waiting 200 milliseconds. However sometimes
>> retransmissions happen quicker.
>
> Quicker as 200ms? Conservatively the minimum TCP RTO should be 1s (rfc2988),
> Linux differs from this default and define the minimum RTO to 200ms:
>
> #define TCP_RTO_MIN ((unsigned)(HZ/5))
>
> Can you post the tcpdump traces where the relevant retransmission is recognizable?
>
>> Also do you know if the timeout numbers for TCP are configurable parameters?
>
> Some values are documented in Documentation/networking/ip-sysctl.txt, you can
> find the relevant timer implementation in ipv4/tcp_input.c and the definition
> of TCP_RTO_MIN in include/net/tcp.h.
>
>
> Hagen Paul Pfeifer
>
>
> --
> Hagen Paul Pfeifer <hagen@jauu.net> || http://jauu.net/
> Telephone: +49 174 5455209 || Key Id: 0x98350C22
> Key Fingerprint: 490F 557B 6C48 6D7E 5706 2EA2 4A22 8D45 9835 0C22
Group, from page 7 of the Linux TCP Congestion Control doc.
"Linux TCP deviates from the IETF specification by al- lowing a minimum limit of 200 ms for the RTO."
Mitchell Erblich
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 200 millisecond timeouts in TCP
2010-06-03 22:37 200 millisecond timeouts in TCP Ivan Novick
2010-06-03 22:51 ` Mitchell Erblich
2010-06-03 23:10 ` Hagen Paul Pfeifer
@ 2010-06-04 6:58 ` Ryousei Takano
2010-06-04 15:02 ` Satoru SATOH
2 siblings, 1 reply; 10+ messages in thread
From: Ryousei Takano @ 2010-06-04 6:58 UTC (permalink / raw)
To: Ivan Novick; +Cc: netdev
On Fri, Jun 4, 2010 at 7:37 AM, Ivan Novick <novickivan@gmail.com> wrote:
> Hello,
>
> Using tcpdump and systemtap I am seeing that sometimes retransmission
> of data is sent after waiting 200 milliseconds. However sometimes
> retransmissions happen quicker.
>
> Is there a specifc event that causes these 200 milisec delays to kick
> in? Are those events identifiable in netstat -s output?
>
> Also do you know if the timeout numbers for TCP are configurable parameters?
>
The minimum RTO value is fixed to 200 ms. It is useful to make the min/max
RTO values tunable. For example, reducing the minimum RTO value is effective
for TCP incast problem [1]. Of course, it may occur spurious retransmissions.
[1] Vijay Vasudevan, et al, Safe and Effective Fine-grained TCP Retransmissions
for Datacenter Communication, SIGCOMM2009
In Solaris, there are two tunable parameters: tcp_rexmit_interval_min/max.
Do you have plan to introduce sysctl parameters like these to the Linux.
Thanks,
Ryousei
> I am testing on RHEL5 with this kernel: 2.6.18-164.15.1.el5.
>
> Cheers,
> Ivan Novick
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 200 millisecond timeouts in TCP
2010-06-04 6:58 ` Ryousei Takano
@ 2010-06-04 15:02 ` Satoru SATOH
2010-06-04 22:55 ` Ryousei Takano
0 siblings, 1 reply; 10+ messages in thread
From: Satoru SATOH @ 2010-06-04 15:02 UTC (permalink / raw)
To: Ryousei Takano; +Cc: Ivan Novick, netdev
It's possible to tune the RTO min value (rto_min) per route since
2.6.23+. (see also the manual of iproute2, ip(8) )
- satoru
On Fri, Jun 04, 2010 at 03:58:57PM +0900, Ryousei Takano wrote:
> On Fri, Jun 4, 2010 at 7:37 AM, Ivan Novick <novickivan@gmail.com> wrote:
> > Hello,
> >
> > Using tcpdump and systemtap I am seeing that sometimes retransmission
> > of data is sent after waiting 200 milliseconds. However sometimes
> > retransmissions happen quicker.
> >
> > Is there a specifc event that causes these 200 milisec delays to kick
> > in? Are those events identifiable in netstat -s output?
> >
> > Also do you know if the timeout numbers for TCP are configurable parameters?
> >
> The minimum RTO value is fixed to 200 ms. It is useful to make the min/max
> RTO values tunable. For example, reducing the minimum RTO value is effective
> for TCP incast problem [1]. Of course, it may occur spurious retransmissions.
>
> [1] Vijay Vasudevan, et al, Safe and Effective Fine-grained TCP Retransmissions
> for Datacenter Communication, SIGCOMM2009
>
> In Solaris, there are two tunable parameters: tcp_rexmit_interval_min/max.
>
> Do you have plan to introduce sysctl parameters like these to the Linux.
>
> Thanks,
> Ryousei
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: 200 millisecond timeouts in TCP
2010-06-04 15:02 ` Satoru SATOH
@ 2010-06-04 22:55 ` Ryousei Takano
0 siblings, 0 replies; 10+ messages in thread
From: Ryousei Takano @ 2010-06-04 22:55 UTC (permalink / raw)
To: Satoru SATOH; +Cc: Ivan Novick, netdev
Hi satoru,
On Sat, Jun 5, 2010 at 12:02 AM, Satoru SATOH <satoru.satoh@gmail.com> wrote:
> It's possible to tune the RTO min value (rto_min) per route since
> 2.6.23+. (see also the manual of iproute2, ip(8) )
>
Yeah, I forgot it. Per route configuration is a nice idea compared
with global sysctls.
Thanks!
Ryousei
> - satoru
>
> On Fri, Jun 04, 2010 at 03:58:57PM +0900, Ryousei Takano wrote:
>> On Fri, Jun 4, 2010 at 7:37 AM, Ivan Novick <novickivan@gmail.com> wrote:
>> > Hello,
>> >
>> > Using tcpdump and systemtap I am seeing that sometimes retransmission
>> > of data is sent after waiting 200 milliseconds. However sometimes
>> > retransmissions happen quicker.
>> >
>> > Is there a specifc event that causes these 200 milisec delays to kick
>> > in? Are those events identifiable in netstat -s output?
>> >
>> > Also do you know if the timeout numbers for TCP are configurable parameters?
>> >
>> The minimum RTO value is fixed to 200 ms. It is useful to make the min/max
>> RTO values tunable. For example, reducing the minimum RTO value is effective
>> for TCP incast problem [1]. Of course, it may occur spurious retransmissions.
>>
>> [1] Vijay Vasudevan, et al, Safe and Effective Fine-grained TCP Retransmissions
>> for Datacenter Communication, SIGCOMM2009
>>
>> In Solaris, there are two tunable parameters: tcp_rexmit_interval_min/max.
>>
>> Do you have plan to introduce sysctl parameters like these to the Linux.
>>
>> Thanks,
>> Ryousei
>
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2010-06-04 22:55 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-03 22:37 200 millisecond timeouts in TCP Ivan Novick
2010-06-03 22:51 ` Mitchell Erblich
2010-06-03 23:10 ` Hagen Paul Pfeifer
2010-06-04 0:05 ` Ivan Novick
2010-06-04 0:11 ` Ivan Novick
2010-06-04 0:45 ` Hagen Paul Pfeifer
2010-06-04 1:13 ` Mitchell Erblich
2010-06-04 6:58 ` Ryousei Takano
2010-06-04 15:02 ` Satoru SATOH
2010-06-04 22:55 ` Ryousei Takano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).