AltQ + ng_iface

Chuck Swiger cswiger at mac.com
Fri Jul 29 02:46:01 GMT 2005


Daniel O'Connor wrote:
> On Friday 29 July 2005 11:02, Chuck Swiger wrote:
>> Either the "established" or the "tcpflags !syn,ack" keywords in a rule
>> adding matching packets to a high-priority queue ought to do it...?  Or
>> perhaps you meant something more specific than just "TCP packets with
>> TH_ACK" set?  :-)
> 
> Hmm, I guess you could make those skip the pipe..
> 
>> Anyway, I'm not convinced that trying to classify packets within an
>> established TCP connection in order to place them on different queues is a
>> really good idea, since you're quite likely to reorder the packets by doing
>> so.  I'd expect both latency and bandwidth of a TCP connection to suffer
>> very noticably if more than 10% or so of the packets arrive out of order...
> 
> The theory is that by prioritising outgoing ACKs you don't cause downstream 
> delays when your upstream is full. eg
> http://www.benzedrine.cx/ackpri.html

Ah.  OK, it makes sense that delaying outgoing ACKs too much would slow things 
down.  So you want to send dataless ACKs at a higher priority than generic big 
packets full of data, maybe via the "iplen" keyword with "established", look 
for packets smaller than ~100 bytes?

My other thought on this is to wonder about window size and whether that was 
scaling properly up to a reasonable value, and whether both sides implement a 
sane network stack, or whether the other side was a windows box looking for 
quick responses and usage of SACK, rather than BSD (new-reno?) delayed ACKs...

>> [ Hmm.  I suppose that one could make an exception to the above
>> generalization if URG was set, but the TCP stack already makes an effort to
>> prioritize and deliver out-of-band urgent stuff as quickly as possible,
>> anyway, right? ]
> 
> Maybe, but it doesn't appear to do a particularly good job for a lot of 
> situations :)

I guess.  :-)  Getting 25% of the hoped-for max performance under a problematic 
case isn't so horrible, either, but I suspect other factors were involved, too.

A tcpdump would've been informative....

-- 
-Chuck



More information about the freebsd-net mailing list