All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joris van Rantwijk <joris@jorisvr.nl>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: netdev@vger.kernel.org
Subject: Re: Question about LRO/GRO and TCP acknowledgements
Date: Sun, 12 Jun 2011 11:30:04 +0200	[thread overview]
Message-ID: <20110612113004.79f48f40@konijn> (raw)
In-Reply-To: <1307869632.2872.106.camel@edumazet-laptop>

On 2011-06-12, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> > As far as I can see, current code will send just one ACK per
> > coalesced GRO bundle, while the sender expects one ACK per two
> > segments.

> One ACK carries an implicit ack for _all_ previous segments. If sender
> only 'counts' ACKs, it is a bit dumb...

It may be dumb, but it's what the RFCs recommend and it's what Linux
implements.

RFC 5681:
  "During slow start, a TCP increments cwnd by at most SMSS bytes for
   each ACK received that cumulatively acknowledges new data."

In Linux, each incoming ACK causes one call to tcp_cong_avoid(),
which causes one call to tcp_slow_start() - assuming the connection is
in slow start - which increases the congestion window by one MSS.
Am I mistaken?

Please note I'm talking about managing the congestion window.
Of course I agree that each ACK implicitly covers all previous segments
for the purpose of retransmission management. But congestion
management is a different story.

Joris.

  reply	other threads:[~2011-06-12  9:30 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-11 19:59 Question about LRO/GRO and TCP acknowledgements Joris van Rantwijk
2011-06-12  3:43 ` Ben Hutchings
2011-06-12  7:51   ` Joris van Rantwijk
2011-06-12  9:07     ` Eric Dumazet
2011-06-12  9:30       ` Joris van Rantwijk [this message]
2011-06-12 10:48         ` Eric Dumazet
2011-06-12 11:24           ` Joris van Rantwijk
2011-06-12 12:01             ` Alexander Zimmermann
2011-06-12 14:57             ` Eric Dumazet
2011-06-12 19:37               ` Joris van Rantwijk
2011-06-14 10:53                 ` Ilpo Järvinen
2011-06-14 19:37                   ` Joris van Rantwijk
2011-06-13 17:55               ` Rick Jones
2011-06-13 17:34 ` Rick Jones

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=20110612113004.79f48f40@konijn \
    --to=joris@jorisvr.nl \
    --cc=eric.dumazet@gmail.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.