All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eddie Kohler <kohler@cs.ucla.edu>
To: dccp@vger.kernel.org
Subject: Re: [PATCH 2/25]: Avoid accumulation of large send credit
Date: Fri, 13 Apr 2007 23:43:40 +0000	[thread overview]
Message-ID: <462015AC.10909@cs.ucla.edu> (raw)
In-Reply-To: <200703211844.12007@strip-the-willow>

Hi David,

This might work, but I'd need to work it through.

The fact is that ALL TCP-like algorithms have rates that are inversely 
proportional to the RTT.  But in TCP and windowed protocols this happens 
naturally due to ack clocking.  In CCID3, there's no ack clocking.  Acks 
arrive much more seldom -- down to once per RTT, rather than once per 2 
packets.  Thus the RTT measurement is EXPLICITLY fed in to the throughput 
equation.  In TCP the RTT measurement mostly just feeds in to the RTO, which 
is why the protocol's behavior is less sensitive to the measurement.

DCCP *MIGHT* work just fine with the inflated RTT measurements (i.e. the RTT 
including IP processing) but there is yet another gerrit missive to work 
through to see how real that complaint is.

A less aggressive version of "turn off RTT for LANs" would be simply to 
subtract an estimate of the IP<->card path's cost from the measured coarse 
RTT.  This would fix the problem.  If you used a stable minimum estimate, the 
RTT would naturally "inflate" when the host was busy, which as Ian points out 
is what we actually want.  How to obtain an estimate?  Probably anything would 
do, including something derived at boot time from BogoMIPS.

-*-

As for coarse-grained timers, does DCCP CCID3 *only* send packets at timer 
granularity?  This would differ from TCP which sends packets as acks arrive. 
It should be relatively easy in CCID3 to likewise try to send packets as acks 
arrive.  There are fewer acks, of course, but still on LANs where RTT << 
timer_granularity this would reduce burstiness.  (All assuming CCID3 doesn't 
do this already.)

Eddie


David Miller wrote:
> From: Eddie Kohler <kohler@cs.ucla.edu>
> Date: Fri, 13 Apr 2007 13:37:57 -0700
> 
>> Gerrit.  I know the implementation is broken for high rates.  But you are 
>> saying that it is impossible to implement CCID3 congestion control at high 
>> rates.  I am not convinced.  Among other things, CCID3's t_gran section gives 
>> the implementation EXACTLY the flexibility required to smoothly transition 
>> from a purely rate-based, packet-at-a-time sending algorithm to a hybrid 
>> algorithm where periodic bursts provide a rate that is on average X.
>>
>> Your examples repeatedly demonstrate that the current implementation is 
>> broken.  Cool.
>>
>> If you were to just say this was an interim fix it would be easier, but I'd 
>> still be confused, since fixing tihs issue does not seem hard.  Just limit the 
>> accumulated send credit to something greater than 0, such as the RTT.
> 
> Eddie, this is an interesting idea, but would you be amicable to the
> suggestion I made in another email?  Basically if RTT is extremely
> low, don't do any of this limiting.
> 
> What sense is there to doing any of this for very low RTTs?  It is
> a very honest question.
> 
> If we hit some congestion in a switch on the local network, responding
> to that signal is pointless because the congestion event will pass
> before we even get the feedback showing us that there was congestion
> in the first place.
> -
> To unsubscribe from this list: send the line "unsubscribe dccp" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2007-04-13 23:43 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-21 18:44 [PATCH 2/25]: Avoid accumulation of large send credit Gerrit Renker
2007-03-26  2:33 ` Ian McDonald
2007-04-10 17:24 ` Eddie Kohler
2007-04-11 14:50 ` Gerrit Renker
2007-04-11 15:43 ` Eddie Kohler
2007-04-11 22:45 ` Ian McDonald
2007-04-12 11:40 ` Gerrit Renker
2007-04-12 12:55 ` Gerrit Renker
2007-04-12 14:39 ` Eddie Kohler
2007-04-13 18:27 ` Gerrit Renker
2007-04-13 20:37 ` Eddie Kohler
2007-04-13 20:58 ` David Miller
2007-04-13 21:45 ` Ian McDonald
2007-04-13 23:43 ` Eddie Kohler [this message]
2007-04-14  5:51 ` Eddie Kohler
2007-04-15 15:44 ` Gerrit Renker
2007-04-15 15:56 ` Gerrit Renker
2007-04-15 16:23 ` Gerrit Renker
2007-04-15 16:41 ` Gerrit Renker
2007-04-18 16:16 ` [dccp] " Colin Perkins
2007-04-18 16:48 ` Lars Eggert
2007-04-18 18:32 ` vlad.gm
2007-04-18 18:34 ` vlad.gm
2007-04-20  9:45 ` Gerrit Renker
2007-04-20 10:20 ` Ian McDonald
2007-04-20 10:56 ` Colin Perkins
2007-04-20 11:31 ` Gerrit Renker
2007-04-24 22:50 ` Colin Perkins

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=462015AC.10909@cs.ucla.edu \
    --to=kohler@cs.ucla.edu \
    --cc=dccp@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.