From: Steve Ibanez <sibanez@stanford.edu>
To: Neal Cardwell <ncardwell@google.com>
Cc: Eric Dumazet <edumazet@google.com>,
Yuchung Cheng <ycheng@google.com>,
Daniel Borkmann <daniel@iogearbox.net>,
Netdev <netdev@vger.kernel.org>, Florian Westphal <fw@strlen.de>,
Mohammad Alizadeh <alizadeh@csail.mit.edu>,
Lawrence Brakmo <brakmo@fb.com>
Subject: Re: Linux ECN Handling
Date: Tue, 5 Dec 2017 11:36:44 -0800 [thread overview]
Message-ID: <CACJspmLaxdHoa63jCuD-mKJS35BZ69b9qw3tEZjFxbUNb3PSHg@mail.gmail.com> (raw)
In-Reply-To: <CADVnQynzhKngDM20YA-bGsLGq8k_5ikU3w0YDpdg8Pk5eMsssw@mail.gmail.com>
Hi Neal,
I've included a link to small trace of 13 packets which is different
from the screenshot I attached in my last email, but shows the same
sequence of events. It's a bit hard to read the tcptrace due to the
300ms timeout, so I figured this was the best approach.
slice.pcap: https://drive.google.com/open?id=1hYXbUClHGbQv1hWG1HZWDO2WYf30N6G8
Thanks for the help!
-Steve
On Tue, Dec 5, 2017 at 7:23 AM, Neal Cardwell <ncardwell@google.com> wrote:
> On Tue, Dec 5, 2017 at 12:22 AM, Steve Ibanez <sibanez@stanford.edu> wrote:
>> Hi Neal,
>>
>> Happy to help out :) And thanks for the tip!
>>
>> I was able to track down where the missing bytes that you pointed out
>> are being lost. It turns out the destination host seems to be
>> misbehaving. I performed a packet capture at the destination host
>> interface (a snapshot of the trace is attached). I see the following
>> sequence of events when a timeout occurs (note that I have NIC
>> offloading enabled so wireshark captures packets larger than the MTU):
>>
>> 1. The destination receives a data packet of length X with seqNo = Y
>> from the src with the CWR bit set and does not send back a
>> corresponding ACK.
>> 2. The source times out and sends a retransmission packet of length Z
>> (where Z < X) with seqNo = Y
>> 3. The destination sends back an ACK with AckNo = Y + X
>>
>> So in other words, the packet which the destination host does not
>> initially ACK (causing the timeout) does not actually get lost because
>> after receiving the retransmission the AckNo moves forward all the way
>> past the bytes in the initial unACKed CWR packet. In the attached
>> screenshot, I've marked the unACKed CWR packet with a red box.
>>
>> Have you seen this behavior before? And do you know what might be
>> causing the destination host not to ACK the CWR packet? In most cases
>> the CWR marked packets are ACKed properly, it's just occasionally they
>> are not.
>
> Thanks for the detailed report!
>
> I have not heard of an incoming CWR causing the receiver to fail to
> ACK. And in re-reading the code, I don't see an obvious way in which a
> CWR bit should cause the receiver to fail to ACK.
>
> That screen shot is a bit hard to parse. Would you be able to post a
> tcpdump .pcap of that particular section, or post a screen shot of a
> time-sequence plot of that section?
>
> To extract that segment and take screen shot, you could use something like:
>
> editcap -A "2017-12-04 11:22:27" -B "2017-12-04 11:22:30" all.pcap
> slice.pcap
> tcptrace -S -xy -zy slice.pcap
> xplot.org a2b_tsg.xpl &
> # take screenshot
>
> Or, alternatively, would you be able to post the slice.pcap on a web
> server or public drive?
>
> thanks,
> neal
next prev parent reply other threads:[~2017-12-05 19:36 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CACJspmLFdy9i8K=TkzXHnofyFMNoJf9HkYE7On8uG+PREc2Dqw@mail.gmail.com>
2017-10-19 12:43 ` Linux ECN Handling Florian Westphal
2017-10-23 22:15 ` Steve Ibanez
2017-10-24 1:11 ` Neal Cardwell
2017-11-06 14:08 ` Daniel Borkmann
2017-11-06 23:31 ` Steve Ibanez
2017-11-20 7:31 ` Steve Ibanez
2017-11-20 15:05 ` Neal Cardwell
[not found] ` <CADVnQy=q4qBpe0Ymo8dtFTYU_0x0q_XKE+ZvazLQE-ULwu7pQA@mail.gmail.com>
2017-11-20 15:40 ` Eric Dumazet
2017-11-21 5:58 ` Steve Ibanez
2017-11-21 15:01 ` Neal Cardwell
2017-11-21 15:51 ` Yuchung Cheng
2017-11-21 16:20 ` Neal Cardwell
2017-11-21 16:52 ` Eric Dumazet
2017-11-22 3:02 ` Steve Ibanez
2017-11-22 3:46 ` Neal Cardwell
2017-11-27 18:49 ` Steve Ibanez
2017-12-01 16:35 ` Neal Cardwell
2017-12-05 5:22 ` Steve Ibanez
2017-12-05 15:23 ` Neal Cardwell
2017-12-05 19:36 ` Steve Ibanez [this message]
2017-12-05 20:04 ` Neal Cardwell
2017-12-19 5:16 ` Steve Ibanez
2017-12-19 15:28 ` Neal Cardwell
2017-12-19 22:00 ` Steve Ibanez
2017-12-20 0:08 ` Neal Cardwell
2017-12-20 19:20 ` Steve Ibanez
2017-12-20 20:17 ` Neal Cardwell
2018-01-02 7:43 ` Steve Ibanez
2018-01-02 16:27 ` Neal Cardwell
2018-01-02 23:57 ` Steve Ibanez
2018-01-03 19:39 ` Neal Cardwell
2018-01-03 22:21 ` Steve Ibanez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CACJspmLaxdHoa63jCuD-mKJS35BZ69b9qw3tEZjFxbUNb3PSHg@mail.gmail.com \
--to=sibanez@stanford.edu \
--cc=alizadeh@csail.mit.edu \
--cc=brakmo@fb.com \
--cc=daniel@iogearbox.net \
--cc=edumazet@google.com \
--cc=fw@strlen.de \
--cc=ncardwell@google.com \
--cc=netdev@vger.kernel.org \
--cc=ycheng@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).