Subject: Re: FW: ssthressh

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Tue, 12 Jul 2005 11:35:22 -0600

Mark,

On Tue, 12 Jul 2005, Mark Allman wrote:

> 
> > Soo... if I understand your point here its that:
> > 
> > a) a multi-homed SCTP flow, using both destinations to
> >     send data to would have two cwnds.. so if these two
> >     shared a bottleneck they get 2/Nths the b/w if following
> >     RFC2960 CC.
> > 
> > b) In contrast the other TCP flow gets 1/Nth the b/w since
> >     it uses the same algorithm but has only one set of
> >     cwnd parameters..
> > 
> > So, if there are three flows in this bottleneck, one from
> > a TCP flow, and two from a single SCTP association that
> > has the shared bottleneck dumb-bell... SCTP would get
> > as I expected 2/3 of the b/w vs 1/3 for the  TCP flow...
> > 
> > I think it basically centers around the fact that you
> > are keeping two sets of cwnd variables and applying
> > CC to each independantly.. 
> 
> Yes to all of the above.
> 
> > now I suppose if you were to have only ONE cwnd and apply a loss to
> > either destination as the same... then you would respond fairly.. 
> 
> Indeed.  And, I think this is what Brian is trying to say.

Not one cwnd, but favoring the best path.  That way 1 path has a growing
cwnd and the others stay fairly much knocked in half.  So, 1/(n+1) for
one destination, and 1/2(n+1) for the other (n-1) destinations,
equaling 1/2 of the available bandwidth.  When you favor the best
destination, the windows become coupled when they pass through a
bottleneck, but remain uncoupled when they do not.  The order of
transmission to the destinations is important.  If transmissions were
merely done in a deterministic splitting (such as round robin) then the
traffic loading to each destination would likely be equal, and the cwnds
would be fairly independent; but, because the lower cwnd destinations
are only transmitted to _after_ the high cwnd destination has been
saturated, the lower cwnd destinations stand a higher chance of not
growing (because the line has already been saturated by packets to the
high cwnd destination, and from the competing TCP flow, before the low
cwnd packets make it to the line).  Again, if you just make
transmissions round-robin, you will probably not experience this
coupling.

--brian

> 
> > but of course you would also do worse where you did not have the
> > shared bottle neck.. not exactly what you want :-D
> 
> Exactly.
> 
> allman
> 
> 
> 

-- 
Brian F. G. Bidulock    ¦ The reasonable man adapts himself to the ¦
[email-masked]    ¦ world; the unreasonable one persists in  ¦
http://www.openss7.org/ ¦ trying  to adapt the  world  to himself. ¦
                        ¦ Therefore  all  progress  depends on the ¦
                        ¦ unreasonable man. -- George Bernard Shaw ¦