From: Eric Dumazet <eric.dumazet@gmail.com>
To: Piotr Sawuk <a9702387@unet.univie.ac.at>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: resurrecting tcphealth
Date: Sat, 14 Jul 2012 10:27:03 +0200 [thread overview]
Message-ID: <1342254423.3265.9028.camel@edumazet-glaptop> (raw)
In-Reply-To: <cc6495b92f1df180c1ad43057ceb0b98.squirrel@webmail.univie.ac.at>
On Sat, 2012-07-14 at 09:56 +0200, Piotr Sawuk wrote:
> On Sa, 14.07.2012, 03:31, valdis.kletnieks@vt.edu wrote:
> > On Fri, 13 Jul 2012 16:55:44 -0700, Stephen Hemminger said:
> >
> >> >+ /* Course retransmit inefficiency- this packet has been received
> >> twice. */
> >> >+ tp->dup_pkts_recv++;
> >> I don't understand that comment, could you use a better sentence please?
> >
> > I think what was intended was:
> >
> > /* Curse you, retransmit inefficiency! This packet has been received at
> least twice */
> >
>
> LOL, no. I think "course retransmit" is short for "course-grained timeout
> caused retransmit" but I can't be sure since I'm not the author of these
> lines. I'll replace that comment with the non-shorthand version though.
> however, I think the real comment here should be:
>
> /*A perceived shortcoming of the standard TCP implementation: A
> TCP receiver can get duplicate packets from the sender because it cannot
> acknowledge packets that arrive out of order. These duplicates would happen
> when the sender mistakenly thinks some packets have been lost by the network
> because it does not receive acks for them but in reality they were
> successfully received out of order. Since the receiver has no way of letting
> the sender know about the receipt of these packets, they could potentially
> be re-sent and re-received at the receiver. Not only do duplicate packets
> waste precious Internet bandwidth but they hurt performance because the
> sender mistakenly detects congestion from packet losses. The SACK TCP
> extension speci\fcally addresses this issue. A large number of duplicate
> packets received would indicate a signi\fcant bene\ft to the wide adoption of
> SACK. The duplicatepacketsreceived metric is computed at the
> receiver and counts these packets on a per-connection basis.*/
>
> as copied from his thesis at [1]. also in the thesis he writes:
>
> In our limited experiment, the results indicated no duplicate packets were
> received on any connection in the 18 hour run. This leads us to several
> conclusions. Since duplicate ACKs were seen on many connections we know that
> some packets were lost or reordered, but unACKed reordered packets never
> caused a /coursegrainedtimeouts/ on our connections. Only these timeouts
> will cause duplicate packets to be received since less severe out-of-order
> conditions will be resolved with fast retransmits. The lack of course
> timeouts
> may be due to the quality of UCSD's ActiveWeb network or the paucity of
> large gaps between received packet groups. It should be noted that Linux 2.2
> implements fast retransmits for up to two packet gaps, thus reducing the
> need for course grained timeouts due to the lack of SACK.
>
> [1] https://sacerdoti.org/tcphealth/tcphealth-paper.pdf
Not sure how pertinent is this paper today in 2012
I would prefer you add global counters, instead of per tcp counters that
most applications wont use at all.
Example of a more useful patch : add a counter of packets queued in Out
Of Order queue ( in tcp_data_queue_ofo() )
"netstat -s" will display the total count, without any changes in
userland tools/applications.
next prev parent reply other threads:[~2012-07-14 8:27 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-14 7:56 resurrecting tcphealth Piotr Sawuk
2012-07-14 8:27 ` Eric Dumazet [this message]
2012-07-14 19:29 ` David Miller
2012-07-16 13:32 ` Ben Hutchings
2012-07-16 15:12 ` Piotr Sawuk
2012-07-16 15:24 ` Christoph Paasch
2012-07-19 10:37 ` Piotr Sawuk
-- strict thread matches above, loose matches on Subject: below --
2012-07-13 7:33 Piotr Sawuk
2012-07-13 23:55 ` Stephen Hemminger
2012-07-14 1:31 ` valdis.kletnieks
2012-07-16 11:33 ` Piotr Sawuk
2012-07-16 11:46 ` Eric Dumazet
2012-07-16 13:03 ` Piotr Sawuk
2012-07-20 14:06 ` Yuchung Cheng
2012-07-21 10:34 ` Piotr Sawuk
2012-07-12 20:55 Piotr Sawuk
2012-07-12 21:35 ` Stephen Hemminger
2012-07-12 22:29 ` Randy Dunlap
2012-07-14 21:48 ` Stephen Hemminger
2012-07-14 23:43 ` Piotr Sawuk
2012-07-15 7:16 ` Eric Dumazet
2012-07-15 9:17 ` Piotr Sawuk
2012-07-15 9:53 ` Eric Dumazet
2012-07-15 22:17 ` Piotr Sawuk
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=1342254423.3265.9028.camel@edumazet-glaptop \
--to=eric.dumazet@gmail.com \
--cc=a9702387@unet.univie.ac.at \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/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