mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Re: What is TCPRenoRecoveryFail ?
@ 2002-02-27 17:03 Nivedita Singhvi
  2002-02-27 17:06 ` David S. Miller
  0 siblings, 1 reply; 10+ messages in thread
From: Nivedita Singhvi @ 2002-02-27 17:03 UTC (permalink / raw)
  To: bjorn.wesen; +Cc: linux-kernel


> I have a TCP connection that is sending bulk data from
> a Linux 2.4.17 machine to a client. At some point, one of
> the packets from the Linux machine is lost, so the client
> asks for a retransmit by acking the last received correct
> packet. Then the Linux machine just keeps filling the
> clients open window, ignoring that and subsequent
> retransmit requests, never retransmitting any data.

Windows and Linux dont agree on DSACK options in some
situations, leading to symptoms you describe sometimes..

You can try echoing 0 into /proc/sys/net/ipv4/tcp_dsack
and see if that avoids the stall (just to identify the problem,
this is not the real way to go..).

Stats and a trace would be useful..

> /BW

thanks,
Nivedita


^ permalink raw reply	[flat|nested] 10+ messages in thread
* Re: What is TCPRenoRecoveryFail ?
@ 2002-02-28  0:14 Nivedita Singhvi
  0 siblings, 0 replies; 10+ messages in thread
From: Nivedita Singhvi @ 2002-02-28  0:14 UTC (permalink / raw)
  To: bjorn.wesen; +Cc: linux-kernel


The retansmit from the Linux box should have been triggered
where that long timeout at the end begins, see below

> 1] 23:46:43.009000 10.13.18.46.http > dh10-13-18-213.axis.se.squid: .
> [tcp sum ok] 4269884068:4269885528(1460) ack 7148250 win 5840
> (DF) (ttl 64, id 37958, len 1500)

      linux -> win      send 1460 bytes

> 2] 23:46:43.009000 dh10-13-18-213.axis.se.squid > 10.13.18.46.http: .
> [tcp sum ok] ack 1460 win 8760 (DF) (ttl 128, id 54605, len 40)

      win -> linux      ack

> 3] 23:46:43.009000 10.13.18.46.http > dh10-13-18-213.axis.se.squid: .
> [tcp sum ok] 1460:2920(1460) ack 1 win 5840 (DF)
> (ttl 64, id 37959, len 1500)

      linux -> win      send 1460 bytes

> 4] 23:46:43.009000 dh10-13-18-213.axis.se.squid > 10.13.18.46.http: .
> [tcp sum ok] ack 2920 win 8760 (DF) (ttl 128, id 54861, len 40)

      win -> linux      ack

> 5] 23:46:43.010000 10.13.18.46.http > dh10-13-18-213.axis.se.squid: .
> [tcp sum ok] 2920:4380(1460) ack 1 win 5840 (DF)
> (ttl 64, id 37960, len 1500)

      linux -> win      send 1460 bytes (upto rel seq #  4380)

> 6] 23:46:43.010000 10.13.18.46.http > dh10-13-18-213.axis.se.squid: .
> [tcp sum ok] 5840:7300(1460) ack 1 win 5840 (DF)
> (ttl 64, id 37962, len 1500)

      linux -> win      send 1460 bytes (upto rel seq # 7300)

> 7] 23:46:43.010000 dh10-13-18-213.axis.se.squid > 10.13.18.46.http: .
> [tcp sum ok] ack 4380 win 8760 (DF) (ttl 128, id 55117, len 40)

      win -> linux      ack 4380 #1

> 8] 23:46:43.011000 10.13.18.46.http > dh10-13-18-213.axis.se.squid: .
> [tcp sum ok] 7300:8760(1460) ack 1 win 5840 (DF)
> (ttl 64, id 37963, len 1500)

      linux -> win      send 1460 bytes (upto rel seq # 8760)

> 9] 23:46:43.011000 dh10-13-18-213.axis.se.squid > 10.13.18.46.http: .
>  [tcp sum ok] ack 4380 win 8760 (DF) (ttl 128, id 55373, len 40)

      win -> linux      ack 4380 #2 (dup ack #1)

> 10] 23:46:43.011000 10.13.18.46.http > dh10-13-18-213.axis.se.squid: .
> [tcp sum ok] 8760:10220(1460) ack 1 win 5840 (DF)
> (ttl 64, id 37964, len 1500)

      linux -> win      send 1460 bytes (upto rel seq # 10220)

> 11] 23:46:43.011000 dh10-13-18-213.axis.se.squid > 10.13.18.46.http: .
> [tcp sum ok] ack 4380 win 8760 (DF) (ttl 128, id 55629, len 40)

      win -> linux      ack 4380 #3 (dup ack #2)

> 12] 23:46:43.012000 10.13.18.46.http > dh10-13-18-213.axis.se.squid: P
> [tcp sum ok] 10220:11680(1460) ack 1 win 5840 (DF)
> (ttl 64, id 37965, len 1500)

      linux -> win      send 1460 bytes (upto rel seq # 11680)

> 13] 23:46:43.012000 dh10-13-18-213.axis.se.squid > 10.13.18.46.http: .
> [tcp sum ok] ack 4380 win 8760 (DF) (ttl 128, id 55885, len 40)

      win -> linux      ack 4380 #4 (dup ack #3)

      !! This ack should trigger fast retransmit from the
      linux box.  Apparently the linux box didnt generate
      it, or the windows box never got it.

      Do the statistics indicate a retransmission went out?

> .. long timeout here until the server finally gives up the connection ..

> 14] 23:56:46.111000 10.13.18.46.http > dh10-13-18-213.axis.se.squid: F
> [tcp sum ok] 11680:11680(0) ack 1 win 5840 (DF) (ttl 64, id 37966, len
40)

thanks,
Nivedita



^ permalink raw reply	[flat|nested] 10+ messages in thread
* Re: What is TCPRenoRecoveryFail ?
@ 2002-02-27 17:25 Nivedita Singhvi
  0 siblings, 0 replies; 10+ messages in thread
From: Nivedita Singhvi @ 2002-02-27 17:25 UTC (permalink / raw)
  To: David S. Miller; +Cc: bjorn.wesen, linux-kernel




> There are no options to negotiate DSACK,

Didnt mean option negotiation, the SACK permitted
works fine

> SACK implies DSACK will cause no harm.  An
> pre-DSACK implementation of SACK should
> effectively treat the DSACKs as nops, ie.
> they are harmless.

You would hope ;), but there is some bug in some Windoze I suspect
that gets confused by a duplicate SACK in some situation. I havent
been able to reproduce this on my hw, but have seen a strange trace
a while ago that was pretty similar.

thanks,
Nivedita



^ permalink raw reply	[flat|nested] 10+ messages in thread
[parent not found: <Pine.LNX.3.96.1020227144128.18713E-100000@fafner.axis.se.suse.lists.linux.kernel>]
* What is TCPRenoRecoveryFail ?
@ 2002-02-27 13:45 Bjorn Wesen
  2002-02-27 14:27 ` bert hubert
  0 siblings, 1 reply; 10+ messages in thread
From: Bjorn Wesen @ 2002-02-27 13:45 UTC (permalink / raw)
  To: linux-kernel

I have a TCP connection that is sending bulk data from a Linux 2.4.17
machine to a client. At some point, one of the packets from the Linux
machine is lost, so the client asks for a retransmit by acking the last
received correct packet. Then the Linux machine just keeps filling the
clients open window, ignoring that and subsequent retransmit requests,
never retransmitting any data.

Around the time of the packet loss happened, the counter
TCPRenoRecoveryFail increased by one, but I'm not sufficiently into the
TCP code to figure out why that happens and if that is the reason why
Linux stop retransmitting anything.. any ideas ?

The client is a Windows machine, but the packets it sends does not seem
broken in any way. 

/BW


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2002-02-28  0:16 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-02-27 17:03 What is TCPRenoRecoveryFail ? Nivedita Singhvi
2002-02-27 17:06 ` David S. Miller
  -- strict thread matches above, loose matches on Subject: below --
2002-02-28  0:14 Nivedita Singhvi
2002-02-27 17:25 Nivedita Singhvi
     [not found] <Pine.LNX.3.96.1020227144128.18713E-100000@fafner.axis.se.suse.lists.linux.kernel>
2002-02-27 14:46 ` Andi Kleen
2002-02-27 13:45 Bjorn Wesen
2002-02-27 14:27 ` bert hubert
2002-02-27 18:22   ` Bjorn Wesen
2002-02-27 23:00     ` bert hubert
2002-02-27 23:13       ` Bjorn Wesen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®