Your ping spikes when you stream. That is your own router.
Idle ping is 12 ms. Start the stream and it is 400. Your provider did not change anything, and the device causing it is in your house.
You test your connection while idle. Latency looks great.
You start streaming and everything else in the house feels broken. Chat lags. Pages stall. Your ping to anywhere is measured in hundreds of milliseconds.
Your bandwidth did not drop. Your queue got long.
What is happening
Every device between you and the internet has a buffer for packets waiting to go out. Buffers exist so a burst does not become a loss.
Manufacturers made them large, on the theory that dropping packets is bad. Large buffers do not drop packets. They store them.
Fill your upload and the buffer fills too. Now a new packet joins the back of a queue that takes half a second to clear. Nothing was lost. Everything is late.
A stream saturates upload on purpose and holds it there for hours. That is the exact condition bufferbloat needs, sustained for your whole broadcast.
Measuring it takes a minute
Run a bufferbloat test. It measures latency while idle, then again while loading the link in each direction. The difference is your number.
| Latency increase under load | What it means |
|---|---|
| Under 30 ms | Healthy. Your queue is managed. |
| 30 to 100 ms | Noticeable. Voice chat suffers. |
| Over 200 ms | This is your problem. Fix it before touching anything else. |
The fix
Smart queue management. The common names are SQM, fq_codel and CAKE. All do the same job. They keep the queue short and share it out between flows.
The catch is that it only works where the bottleneck is. Enabling it on your router does nothing if the queue is inside your ISP modem. So you shape below your line rate on purpose. That moves the bottleneck to the device you control.
- Set the shaper to about 90% of your measured upload. Not your advertised upload.
- Do the same on download if the test showed a problem there.
- Re-test. If latency under load is still high, drop to 85% and try again.
You are giving up a tenth of your bandwidth. What you get back is a link that behaves the same at full load as it does at rest.
When the router will not do it
Plenty of ISP-supplied boxes have no such setting. Putting a small router you control between the modem and everything else is the standard answer, and it is the same box that gives you a bonding endpoint later.
Cap your stream bitrate below your upload either way. A stream that uses every bit you have leaves nothing for the packets that keep it alive.
Sources
The Rig Wire reports on streaming technology from public documentation, source repositories and vendor releases. We did not bench-test what is described here. When we have tested something, we say so.