  WhatsTehBeef
@kaballero.com
from: MemphisPCGuy 
| Shaping packets
My shaper just classifies packets by size and then prioritizes them by size.
There are three kinds of packets on a network, little bitty packets, middle size packets, and great big packets.
About 45 percent of packets are less than 400 bytes and about 45 percent of packets are bigger than 1000 bytes. The other 10 percent are middle sized packets.
Programmers who are worried about latency form little bitty packets and use UDP. Programmers who are worried about reliable bulk data transfer use TCP and great big packets.
VoIP, Gamers, etc. UDP and little bitty. Web, Streaming Audio, Streaming Video, TCP and great big. Torrents... great big packets.
Classify your packets by size. Stick them in three queues and encourage the little packets to go first and the big packets to go last. If something gets dropped on the floor, it should always be a big packet.
It don't get any more efficient than that. |
|
  espaeth Digital Plumber Premium,MVM join:2001-04-21 Minneapolis, MN
·voip.ms
·Vitelity VOIP
·Callcentric
·VoiceStick
·ViaTalk
·Comcast
·Embarq
| said by WhatsTehBeef :
Classify your packets by size. Stick them in three queues and encourage the little packets to go first and the big packets to go last. If something gets dropped on the floor, it should always be a big packet. Speaking as someone who has implemented this very QoS method for a major retailer once, this is actually a really bad idea. Do a few packet captures after you set this up and really start moving traffic. You'll find that this method actually leads to out of order delivery because the last packet at the end of a data push (usually tiny) will end up getting delivered before the rest of the large data packets. Out of sequence builds up until your TCP performance goes to hell. |
|
  funchords Hello Premium,MVM join:2001-03-11 Washington, DC
·Verizon Online DSL
·Skype
| reply to WhatsTehBeef said by WhatsTehBeef :
My shaper just classifies packets by size and then prioritizes them by size.
There are three kinds of packets on a network, little bitty packets, middle size packets, and great big packets.
About 45 percent of packets are less than 400 bytes and about 45 percent of packets are bigger than 1000 bytes. The other 10 percent are middle sized packets.
Programmers who are worried about latency form little bitty packets and use UDP. Programmers who are worried about reliable bulk data transfer use TCP and great big packets.
VoIP, Gamers, etc. UDP and little bitty. Web, Streaming Audio, Streaming Video, TCP and great big. Torrents... great big packets.
Classify your packets by size. Stick them in three queues and encourage the little packets to go first and the big packets to go last. If something gets dropped on the floor, it should always be a big packet.
It don't get any more efficient than that. This works for most things except for video conferencing. It's close, though, and truly does work for most. -- Robb Topolski -= funchords.com =- Hillsboro, Oregon More features, more fun, Join BroadbandReports.com, it's free...
|
|
  funchords Hello Premium,MVM join:2001-03-11 Washington, DC
·Verizon Online DSL
·Skype
| reply to espaeth I hadn't thought of that.
said by espaeth : You'll find that this method actually leads to out of order delivery because the last packet at the end of a data push (usually tiny) will end up getting delivered before the rest of the large data packets. Out of sequence builds up until your TCP performance goes to hell. I think the way that Ubicom does this is to prioritize the flow rather than to prioritize the packet, but adjust the flow's prioritization label based on the average size and frequency of the packet. -- Robb Topolski -= funchords.com =- Hillsboro, Oregon More features, more fun, Join BroadbandReports.com, it's free...
|
|
 mikebabcock
join:2008-12-01 Peterborough, ON
·Nexicom
·Cogeco Cable
| reply to WhatsTehBeef For one thing, it really doesn't work well unless you only do it for UDP (due to trailing small TCP packets at the ends of transfers) and for another, its easily defeated by software.
One D-Link router I've seen specifically has the option to break apart large packets into smaller chunks to help latency issues for example. Its called fragmentation.
No, you're much better off prioritizing by type and with a little extra thought. I prioritize ICMP and NTP packets up to say 2kbit/s, followed by SSH up to 32kbit/s, and so on. If someone starts ICMP bombing me, the replies won't get priority over other work. If I'm transferring a large file by SCP, SSH won't slow down my gaming. Etc. -- Michael T. Babcock { network geek | programmer | sysadmin } »mikebabcock.ca |
|