"Auto-Bandwidth" Mode (Adaptive UDP Throttle)
Dytr Nova
Clarification Note: This is just for UDP side of the network in the viewer and isnt for the http network side which handles the actual downloading of assets at far higher speed than the actual legacy Max Bandwidth setting may Imply to us users.
The Problem:
The current Max Bandwidth setting is a legacy control that is difficult for users to tune correctly. Some suggest a "sweet spot" (often 700-1500 Kbps), as setting it too high may cause packet loss as it sent (at the viewers request) too many packets per second (pps) which some conusmer routers may struggle with, and setting it too low starves the the viewer of data.
This requires users to manually "guess" their router's stable processing limit, which is not user-friendly and leads to a poor experience (e.g., packet loss, slow rezzing).
Proposed Solution:
Introduce a new checkbox in Preferences → Network & Files called: [ ] Enable Auto-Bandwidth Management
When checked, this feature would automatically and dynamically manage the Max Bandwidth setting based on real-time network conditions. This automates the exact troubleshooting process support teams already recommend.
How It Works: The Algorithm (in plain English)
The algorithm's goal is to find the highest possible bandwidth setting that does not cause sustained packet loss. It does this by using the "Packet Loss" statistic the viewer already monitors.
- Steady-State Monitoring (When the network is calm):
Rule for "Good" Connection: If Packet Loss remains at 0.0% for a full 60 seconds, the connection is stable.
Action: Gently increase MaxBandwidth by 10% (e.g., from 1000 to 1100) to probe for more capacity.
Rule for "Bad" Connection: If Packet Loss is sustained at or above 0.5% over a 15-second period...
Action: The router is congested. Immediately decrease MaxBandwidth by 25% (e.g., from 1500 to 1125) to ease the load.
- The Critical "Teleport Grace Period" (Handling Network Spikes):
The algorithm must be smart enough to ignore the massive, normal packet loss "burst" that happens during a teleport or new region login. Reacting to this "false positive" would incorrectly throttle the connection.
Step 1: Detect Teleport. When the viewer initiates a teleport, the "Auto-Bandwidth" algorithm is SUSPENDED.
Step 2: Start "Settling" Timer. When the "Teleport complete" message is received, the algorithm starts a 30-second "Settling" timer but remains suspended.
Step 3: Ignore Burst Loss. During this 30-second "grace period," all packet loss is ignored. This gives the router time to process the initial data storm of the new region and for its queues to stabilize.
Step 4: Resume Monitoring. After the 30-second grace period ends, the algorithm RESUMES and begins "Steady-State Monitoring" (Rule 1) again.
Benefits:
Solves the Guesswork: Users would no longer need to manually tune their bandwidth and reduces confusion.
Improves Stability: The viewer would automatically defend itself from network congestion, reducing packet loss for users with consumer-grade routers.
Smarter Performance: It dynamically adapts, lowering the throttle during a crowded event and raising it in a quiet region, always seeking the best possible performance for that user's specific hardware.
Log In
Lucifera Morningstar
This isn't really going to have much of an impact. The whole bandwith setting/slider is a depreciated feature that became largely useless with the change to HTTP content delivery, as well as the plan to shift all remaining UDP stuff over to HTTP, which is a far more helpful use of the viewer dev time.
As per the Firestorm wiki:
"Most asset data is now sent via HTTP. Only some data is sent by UDP. The bandwidth setting in the viewer controls only UDP data. Formerly, most data was sent via UDP, so the bandwidth setting had a much greater effect on your experience.
Takeaways:
The viewer bandwidth setting will generally not have a very noticeable effect."
Dytr Nova
Lucifera Morningstar - Yeah, this is just for UDP side of the network and isnt for the http network side for the actual asset data which is downloaded and was added quite some time ago now.
The problem is that if the viewer requests too high amount of data, (via ye olde max bandwith setting which is just for UDP), then the packets per second (PPS) may be possibly be too much for some domestic routers and hence the packet loss shown in the viewer when the sim basically replies "okay, request recieved, now sending x number of packets which this viewer is requesting and they say they can handle Y kbps max."
i've edited/updated it to clarify its just releated to the UDP network side of the viewer, not HTTP.