[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.00.1111201024080.22397@melkinpaasi.cs.helsinki.fi>
Date: Sun, 20 Nov 2011 10:38:33 +0200 (EET)
From: "Ilpo Järvinen" <ilpo.jarvinen@...sinki.fi>
To: Neal Cardwell <ncardwell@...gle.com>
cc: David Miller <davem@...emloft.net>,
Netdev <netdev@...r.kernel.org>,
Nandita Dukkipati <nanditad@...gle.com>,
Yuchung Cheng <ycheng@...gle.com>,
Tom Herbert <therbert@...gle.com>
Subject: Re: [PATCH 5/5] tcp: skip cwnd moderation in TCP_CA_Open in
tcp_try_to_open
On Sat, 19 Nov 2011, Neal Cardwell wrote:
> On Thu, Nov 17, 2011 at 12:14 AM, Ilpo Järvinen
> <ilpo.jarvinen@...sinki.fi> wrote:
>
> > I think it's intentional. Because of receiver lying bandwidth cheats all
> > unlimited undos are bit dangerous.
>
> If your concern is receivers lying, then there are other easy ways
> that a misbehaving receiver can get a sender to send too fast
> (e.g. cumulatively ACKing the highest sequence number seen,
> irrespective of holes). IMHO it would be a shame to penalize the vast
> majority of well-behaved users to plug one potential attack vector
> when there are other easy holes that an attacker would use.
I disagree... there is huge difference as the receiver then has to gamble
with the reliability of the flow. DSACK attack is nasty in that that it
allows maintaining reliability while cheating bw.
> > Wouldn't it be enough if tcp max burst is increased to match IW (iirc we
> > had 3 still there as a magic number)?
>
> Yes, tcp_max_burst() returns tp->reordering now. Changing it to return
> max(tp->reordering, TCP_INIT_CWND) sounds good to me. I think that's
> an excellent idea in any case, regardless of the outcome of this undo
> discussion.
Feel free to provide a patch then as I'm likely to forget :).
> However, I don't think this is sufficient for request-response
> protocols (e.g. RPC) running over long-lived connections over a path
> with a large bandwidth-delay product. In such cases, the cwnd will
> grow quite large (hundreds of packets). The DSACKs will often arrive
> after the entire response is sent, so that cwnd moderation will
> typically pull the cwnd down to 3 (or, with your proposal, 10)
> packets. IMHO that seems like an unnecessarily steep price to pay.
Sounds rather hypotetical scenario that you'd happen to get those DSACKs
in such scenario... DSACK would only be sent when receiver and sender were
out of sync due to heavy ACK loss that exceeds SACK redundancy or heavy
reordering... the later prevents large window in the first place (or
reordering has already adapted). Honestly I don't believe this is likely
scenario. ...And FRTO handles single unnecesary rexmit in case of spurious
RTO even before DSACK could be seen.
--
i.
Powered by blists - more mailing lists