I run a small Linux webserver and NAT router from my cable modem at home. Whenever someone starts an http download, all other traffic from my LAN is starved. Bandwidth is not really an issue, but latency is particularly horrible -- pings that usually come back in 20ms can take up to 600ms while the web server is active! I set up QoS (netfilter+iproute2) on the NAT machine in an attempt to give priority to non-web traffic. At first I tried the "prio" packet scheduler, which maintains three outgoing queues. I put everything but web traffic in queue zero, and the http packets in queue two (the scheduler will only transmit packets from a queue if the lower queues are empty, thus giving precedence to the lower-numbered queues). I verified using printk's in the kernel modules that packets were indeed being prioritized and queued in the manner I describe. HOWEVER, this QoS setup does not reduce my latency problems at all!! Despite the packet prioritization, pings still shoot up into the 500ms range and UDP round-trip latency still becomes awful during a long http upload. Was I wrong in assuming that priority-band scheduling would fix my problem? I looked at using full CBQ, but I have no idea what options would be correct for my setup. Does anyone else have experience with solving problems like this? I just wish I could see the same 20ms pings even during a modest amount of web traffic... Many thanks, Dan