[crossbow-discuss] Traffic shaping in Solaris
Jason J. W. Williams
jasonjwwilliams at gmail.com
Tue Feb 20 17:05:59 PST 2007
Hi Guys,
Just thought I'd inject my two cents. Pro-actively adjusting the TCP
window and MSS size are much better way of doing traffic shaping. The
ack-floods you can get from hard dropping packets (a la QoS) can be
just of much of a headache as the bandwidth surge you're trying to
quell.
Doing a Packeteer-style traffic shaping in the Solaris network stack
would absolutely rock! Completely unbiased here...I wouldn't happen to
have an app that would benefit or anything... ;-)
-J
On 2/20/07, Thomas Rampelberg <rampelbergt at digitar.com> wrote:
> Roch - PAE wrote:
> > Paul Durrant writes:
> > > On 2/19/07, Thomas Rampelberg <rampelbergt at digitar.com> wrote:
> > > >
> > > > Pure packet dropping or queuing wouldn't work in this instance, I
> > > > believe, because the bandwidth would get reclaimed to some level but
> > > > you'd loose a lot still and in the case of a false positive, the service
> > > > would be completely unusable based on how many dropped packets would be
> > > > occurring.
> > > >
> > > > Therefore, after looking through my networking books again here, I
> > > > believe the solution to this problem is fixed by reaching down into the
> > > > guts of TCP itself. Because TCP has to handle limited connections all
> > > > the time, the protocol has some allowances for finding the optimal
> > > > bandwidth of a connection a reshaping the incoming packets so that it's
> > > > filled correctly. It does this through the TCP window, the MSS header
> > > > option and TCP congestion avoidance. From everything I've been able to
> > > > find about the network stack in S10, there aren't any hooks for me to be
> > > > able to edit these settings on the fly at a per-connection level.
> > > >
> > > > So, the first obvious question, is this possible at all? And/or has
> > > > someone already done something like this?
> > > >
> > >
> > > But that's the entire point of packet dropping. If you drop packets
> > > from a TCP connection, preferably not using tail-drop then the sender
> > > should start to close down the window due to the re-transmissions that
> > > start to occur. The window will close down until the re-transmission
> > > rate drops (i.e. the receiver stops dropping packets because the b/w
> > > has fallen sufficiently low).
> > >
> > > Paul
> > >
> >
> > While drops are a necessity where hard resources are
> > contended, I think we can open the debate when the said
> > resources are managed/controlled.
> >
> > Peer's behavior will transmit as much as can fit in the
> > smallest of the congestion window and received socket buffer
> > size. In the absence of drops, the cwnd just grows but it
> > would seems to me that, by tweaking the advertised receive
> > window and assuming the round trip time is stable (?), we
> > can control the incoming bandwidth. That BW should never
> > exceed (advertised socket buffer / rtt).
> >
> > -r
> >
> >
> I'd not thought about the exact repercussions of packet dropping on
> actual incoming bandwidth but from my experiments, pure packet dropping
> does not provide the QOS that I would like/need for this application.
>
> Roch, you've got the idea ..... of course, as I'm coming to find out,
> none of the hooks for this are in the kernel atm and adding them would
> theoretically add a performance hit to something that's extremely
> performance sensitive. However, what if something along the lines of
> DTrace probes were added? The idea being that only when the extra
> functionality was needed, a module could be loaded and the performance
> hit realized. For servers handling this task specifically, the
> performance hit would be more than acceptable for me.
>
> If no one's seen the similarity yet, I'm proposing something along the
> lines of a programmatic Packeteer interface for that kind of in depth
> shaping that occurs without the QOS implications of queuing or dropping
> packets.
>
> _______________________________________________
> crossbow-discuss mailing list
> crossbow-discuss at opensolaris.org
> http://opensolaris.org/mailman/listinfo/crossbow-discuss
>
More information about the crossbow-discuss
mailing list