Apologies for the long post, it is a complex issue, which affects some
hosting providers in a hard way.


The situation, as I gathered it (corrections welcomed):
-------------------------------------------------------
When a srcds is launched, it contacts Steam's master servers, which adds
the IP:port to a database.

Then, when a Steam browser asks for a list of servers in the "Internet"
tab, Steam master servers return the full list it has in its database to
the Steam client, where IP addresses are ordered from the lowest to the
highest.

As the Steam browser starts receiving this ordered list, it checks for
the latency of each IP:port, one after the other. This leads to hundred
of packets per second being sent and received (in my case, 150 packets/s
sent, 90 packets/s received).

The Steam browser shows the servers for which it receives latencies
results back.




The problem:
------------
Most home modems/routers/ethernet interfaces and DSL connections are
unable to process this large amount of packets per second and as a result:
- servers with a low IP address are queried first and are more likely to:
   a. reply
   b. and with a low latency
- server with a high IP address are queried last and are more likely to:
   a. see their reply packet dropped
   b. or have the query or reply packet stay in output queues somewhere
along the way, which leads to high latencies

Note I am not speaking about bit/s, here, but about packets/s - changing
the "Internet speed" in the Steam browser has, therefore, no impact
whatsoever.

Note also I am not the only one affected by this issue, which is
reported on many Steam/Source games forums.



The solutions:
--------------
1. for Source games hostings providers: make sure you are being
allocated low IP addresses ranges. Unfortunately, this is not practical,
since IP ranges are allocated by Local Internet Registries, which get
them from Regional Internet Registries (RIPE, ARIN, AfriNIC, APNIC,
LACNIC), which have their own ranges from already depleted IPv4 blocks.
To summarize, allocations to a given Provider are not random, yet
Providers cannot request addresses in a "low" range.

In other words, providers of Public Source servers do not have much
choice: either they are being allocated low IP ranges and their servers
will fill more easily (whether it is a good thing or not to them), or
they are allocated high IP ranges, and their public servers will
struggle filling up.


2. for people wishing to rent/own a Public Source game server, filling
up easily: just make sure its IP address is as low as possible. You may
ask the provider which IP ranges he uses/has, before spending your money.


3. for Valve: this situation gives unfair advantages to some providers
over others. As I see it, there are two relatively easy ways Valve could
address this:
* on Steam's master servers, have a scheduled job (every 10 minutes,
for instance) than randomly reorders the lists that are sent to Steam
browsers.
* in Steam's browsers, throttle the outputing of packets that check for
latency, to a low default value that do not cause problem with most home
hardware (50 packets/s?). Either hide this, or make it a parameter in
the "Internet" tab.


Thoughts?

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux

Reply via email to