Thanks for the input, to all who answered my questions. Always nice to have some different views on a certain subject. Having said that, and I don't mean to be ungrateful for your help, the different opinions haven't really made it easier although I am more familiar with the several definitions. Now all I need is some low-traffic network quality time with my router for some trial and error to see what works out best in my situation... To be continued
(you'll still be here, right?
)
So check this explanation out.
View bandwidth limiting / QOS as a funnel. We we pour water inside this funnel. Once we start pouring water inside the funnel faster than it can spill out, it will spill out over the top. The spills are dropped packets which causes terrible bufferbloat.
Your ISP uses this funnel and pipe size to limit your speed according to the plan you pay for. You pay for XX mbits. What adaptive QOS is doing is that it creates our own smaller funnel so the ISP funnel doesn't overflow. When our smaller funnel overflows, we choose non-important traffic to drop, instead of allowing the ISP to randomly drop traffic it chooses. This way we do not receive bufferbloat on priority traffic.
Now diving deeper.
Packets can have various sizes. The largest frame is 1538 bytes (ignoring jumbo packets).
Note this is 1500 packet payload once ethernet overhead is subtracted, or 1460 data payload once IP/TCP overhead is subtracted.
The first 38 bytes is the ETHERNET header.
The next 20 bytes is the IP header (present on every packet).
The next 20 bytes is the TCP header (or 8 bytes if its a UDP header).
This 78 byte per packet is present for everyone. Packet payload can be up to 1500 bytes, but not all packets are that large.
Example1:
Sending TCP packets, total frame size 1538 bytes each, at 100 kB/s
-Sending 65 packets per second.
-Total transfer rate is 100 kB/s
-Data rate is 95 kB/s
-5% bandwidth is used for packet headers
Example2:
Sending TCP packets, total frame size 200 bytes each, at 100 kB/s
-Sending 500 packets per second
-Total transfer rate is 100 kB/s
-Data rate is 61 kB/s
-39% bandwidth is used for packet headers
This 78 bytes per packet overhead IS seen at the router. Our QOS IS calculating for this per packet overhead due to IP/TCP as part of the throughput it is rate limiting.
This per packet overhead is the SAME for every connection since all packets are standard.
Remember the funnel from earlier. On some internet connections the ISP funnel is before the modem. On others the ISP funnel is after the modem.
Now when the modem encodes the the ethernet traffic into the COAX cable (or whatever you may be using), that procedure adds more per packet overhead.
This overhead will be in addition to the ethernet, ip header, tcp header mentioned previously.
This additional overhead, is stripped or added, when traffic leaves or enters the modem respectively.
It is an invisible amount that the router CANNOT see. Even though the router cannot see it, it will still fill up the ISP funnel.
As you can see packet overhead can vary between 5 or 40% of total bandwidth depending on the packet rate. This means it would be inappropriate just to reduce bandwidth by a percent to account for it.
To prevent that, we use WAN overhead to add a byte value to each packet transversing our router to make sure our estimates are accurate. Overall we want to traffic to spill over router side where we can control the spillover in the funnel, instead of spillover ISP side. If extra stuff if being added to the ISP funnel, we have to account for that so it doesn't spillover.
Now when I mention comcast, I claim that comcast placed their ISP funnel after the overhead is stripped for incoming traffic, or before overhead is added at the modem. It is appropriate for me to use ZERO for ISP overhead. Not all providers do the same with their funnels, so with some, you gotta account for the invisible to the router overheads with the WAN OVERHEAD setting.
So its not conflicting opinions, its just different behaviors depending on the ISP. If someone could create/host a speedtest program that tests throughput with both small and large packets (instead of just large packets), WAN OVERHEAD could be tested.
Note:
If you pay for 30mbps, and you speedtest exactly at 30mbps, it is clear that there is ZERO overhead present, since it would have to eat some of that 30mbps.
Funfact:
When you run a speedtest it counts the standard ~78byte per packet overhead as part of the total available bandwidth result.
Yet when you download a file, it will only counts data throughput, as headers have nothing to do with the file.
So speedtest correctly shows 30mbps of available bandwidth, a max possible file (data) transfer speed is 28.5mbps due to required overheads.
@strangeluck
I take my statement back about DSLReports bufferbloat being inaccurate.
Under DSLReports settings they have an
"Hi-Res BufferBloat" toggle.
After turning that on, my results are exactly inline with a webUI or command prompt ping test.
Without that checked, the results weren't really that accurate.