All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leonardo Balliache <leoball@opalsoft.net>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] HTB burstable for 2 interface , how ?
Date: Wed, 09 Jul 2003 03:22:48 +0000	[thread overview]
Message-ID: <marc-lartc-105772110229380@msgid-missing> (raw)
In-Reply-To: <marc-lartc-105722285902235@msgid-missing>

Hi, Don:

At 08:34 p.m. 07/07/03 -0700, you wrote:

>The point is that if X sends 1024 and Y tries to send 1 but fails,
>the firewall cannot tell and therefore can't do anything about it.

Which firewall? In case of having it doesn't have anything to do
here. Let's put aside any coercive device to concentrate in TCP
behavior.

>I'm not nearly as confident as you in the tcp mechanisms.  First,
>the upstream routers might favor one flow over another for whatever
>reason.  Second, even if tcp works as you'd like, the convergence will
>be much faster if there's some unused bandwidth.

Perhaps you are right, perhaps you are not. Who knows? TCP behavior
is a funny game with very clear rules. One of them is: first one that
loses a packet has to cut its rate by half. Who's lucky? Do you know?
Packets are dropped by routers in a random selection process. TCP
flows are always fighting to increase their shares. Sometime one of
them is ahead, but, it loses a packet. Like Monopoly. Walk back seven
step, man!! you are castigated.

>But I think that things really are stacked against the new flow.

Why? Are the routers conspiring against it?

>First the old one is going fast, and if it happens to lose a packet
>to the new one, it will probably barely notice, just receiving a sack
>and not slowing down.

** to the new one **

I going to understand ** to the old one **. Is not as easy. In fact TCP
congestion algorithms are far away for being easy. Simplifying, the game
is: if you lose a packet you have to cut your sending window by a half.
Check your new congestion window, check your outstanding packets, check
your peer advertising window, and depending of this, calculate how many
packets you can send, if you can send any, at all.

>However, in the reverse case, the new flow is
>starting slow, and if it loses a packet it waits for a timeout to send
>another one, then if it loses another it waits a longer timeout.
>Eventually, when the new flow tries to speed up it's always bumping
>against the old one, causing it to slow down again.

Probably the first flow has a higher probability to lose a packet because
it has more packets flowing out there. And if it happens, it has to cut
its window by a half. At this moment the second flow is at slow-start,
its window is increasing almost geometricaly (it doubles each time it
receives an ack). Again, who knows? The fight is fighting.

Timeout is an extreme case. Probably a duplicate ack advertises the flow
that one packet has been lost. Then slow-start is not the answer, just
fast retransmit and fast recovery and then congestion avoidance.

What about if the routers are RED routers. RED routers conspire (they
if fact are designed to conspire!!) against stronger flows, those that
maintain more packets in the router queue. Then the first flow has to
walk with care. Someone out there is tring to kill one of its packets.

>Are you really sure the system is guaranteed to converge to 50-50, or
>even to converge at all?  I'm not.  Please convince me.
>In any case, the firewall here is clearly not contributing to this
>since it's not dropping any packets, or even slowing them down.

Again any firewall doesn't matter.

I did some work to try to convince you. Have a look at
http://opalsoft.net/qos/TCPvsTCP.htm.

Finally, to close this pleasing conversation, don't forget that when
you configure your "controller devices" you are not controlling TCP,
you are just conspiring against it by killing some packets and using
the simple rule, "if you lose a packet, cut your window", to put under
control the average throughput.

Best regards,

Leonardo Balliache



_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

      parent reply	other threads:[~2003-07-09  3:22 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-03  8:56 [LARTC] HTB burstable for 2 interface , how ? rio
2003-07-03  9:12 ` Stef Coene
2003-07-03  9:12 ` ???????? ?????
2003-07-03  9:18 ` Martin Devera
2003-07-03  9:38 ` rio
2003-07-03  9:50 ` Stef Coene
2003-07-03 11:45 ` Joel
2003-07-04 16:39 ` Don Cohen
2003-07-07  3:54 ` Leonardo Balliache
2003-07-09  3:22 ` Leonardo Balliache [this message]

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=marc-lartc-105772110229380@msgid-missing \
    --to=leoball@opalsoft.net \
    --cc=lartc@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.