lkml.org 
[lkml]   [1999]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: select()/socket has problems under 2.2.x.
Andi Kleen wrote:

> Alan writes:
> > Umm not quite. We always have to honour the _ack_ data provided
>
> It could be nice though to send an ack when out of order data arrived, even
> when the data is dropped (to kick fast retransmit on the other side and to
> get the window update there).

Speaking of which... Could this (an out-of-order condition) be the cause of the
dropped packets on the sending side which I have seen? I.e. one portion assuming
this can't happen so not cleaning up, but another portion of the substrate
reordering, perhaps as the result of MRU/MTU (over PPP) not being easily
divisible into the internal size of SKB's and such? This is not an educted
guess, just a random musing. But the problem is real.

For DaveM and other folks who have not heard my reports of this before, a quick
recap:

I have demonstrated with simultaneous tcpdump output from both ends of a Linux
2.2 <--> Linux 2.2 connection that under certain circumstances (large
transport-layer latency with sender perceiving shrunk window sizes as a result of
delays in getting acks back to sender) the sender will simply forget to send a
particular packet. Repeated acks from receiver get things going again, but not
until (sometimes multi-second) latency lets those acks get though.

The trivially-reproducible test case is when both boxes communicate using ppp0
via error-correcting modems. Verbose byte-level dumps of the ppp/lcp packets
shows no loss or misframing of bytes/packets due to serial errors; this is
confirmed by tcpdump on the sending side, which clearly shows lost packets before
they ever go out over the interface (or wherever tcpdump hooks into the layer).
Throughput is roughly 50% or slightly better with 36Kb modems (for example).

Kris



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:50    [W:0.631 / U:0.080 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site