netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Joris van Rantwijk <joris@jorisvr.nl>
To: netdev@vger.kernel.org
Subject: Question about LRO/GRO and TCP acknowledgements
Date: Sat, 11 Jun 2011 21:59:19 +0200	[thread overview]
Message-ID: <20110611215919.5fc29c27@konijn> (raw)

Hi,

I'm trying to understand how Linux produces TCP acknowledgements
for segments received via LRO/GRO.

As far as I can see, the network driver uses GRO to collect several
received packets into one big super skb, which is then handled
during just one call to tcp_v4_rcv(). This will eventually result
in the sending of at most one ACK packet for the entire GRO packet.

Conventional wisdom (RFC 5681) says that a receiver should send at
least one ACK for every two data segments received. The sending TCP
needs these ACKs to update its congestion window (e.g. slow start).

It seems to me that the current implementation in Linux may send
just one ACK for a large number of received segments. This would
be a deviation from the standard. As a result the congestion
window of the sender would grow much slower than intended.

Maybe I misunderstand something in the network code (likely).
Could someone please explain me how this ACK issue is handled?

Thanks,
Joris van Rantwijk.

             reply	other threads:[~2011-06-11 20:12 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-11 19:59 Joris van Rantwijk [this message]
2011-06-12  3:43 ` Question about LRO/GRO and TCP acknowledgements 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
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=20110611215919.5fc29c27@konijn \
    --to=joris@jorisvr.nl \
    --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;
as well as URLs for NNTP newsgroup(s).