Re: TCP Connection times out

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



   From: Martin Zielinski <mz@seh.de>
   Date: Mon, 10 Feb 2003 09:44:21 +0100
   
   There seems to be a bug in net/ipv4/tcp_output.c - tcp_send_probe0(...):
   During a tcp write the receiver can hold the connection by respondig with ACKs 
   window size 0. In this situation the sender (linux) has timeouts between 
   sending ACKs to test, if the connection is still valid.
   This timeout is controlled by "min(tp->rto << tp->backoff, TCP_RTO_MAX)".
   tp->backoff is allways increased by 1.
   On a 32 bit machine at least a tp->backoff value of 32 results in a 0 for this 
   expression.

For retransmits it can never reach the value 32 bacause the
backoff bumping there is capped by sysctl_tcp_retries2 which by
default is TCP_RETR2 or 16.

And for the probe case, it is limited also by the same value.
See the tests in tcp_probe_timer(), where 'max_probes' is assigned
to sysctl_tcp_retries2, and tcp_send_probe0() is only invoked
if "tp->probes_out" is less than this.  Every time tcp_send_probe0()
increases "tp->probes_out" it also increases "tp->backoff".

So I don't think tp->backoff can ever reach 32.  Did you add debugging
statements to tcp_send_probe0() to find this out?  What exactly did
these debugging statements print out for you?

-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux