Prioritizing certain kinds of data, can help a lot in general on Linux. Here’s the FireQOS configuration I just set up on this 802.11g-wireless laptop:
DEVICE=wlan0 INPUT_SPEED=54000kbit OUTPUT_SPEED=54000kbit LINKTYPE="ethernet" interface $DEVICE world-in input rate $INPUT_SPEED interface $DEVICE world-out output rate $OUTPUT_SPEED interface $DEVICE world-in input rate $INPUT_SPEED $LINKTYPE balanced class priority commit 10% match tcp port 22,3389,53,444 # SSH, RDP, DNS, SSL VPN match proto GRE match icmp match tcp syn match tcp ack interface $DEVICE world-out output rate $OUTPUT_SPEED $LINKTYPE balanced class priority commit 10% match tcp port 22,3389,53,444 match proto GRE match icmp match tcp syn match tcp ack