Consider the situation where you have a set of Wi-Fi networks (access points/routers) in range and a computer can access more than 1 of them. All of them are "extremely unreliable", formally defined as:
- Connection will randomly drop for no discernible reason OR suffer bursts of extreme signal "noise" causing massive rates of lost packets at least once every 12 hours, in the absence of interference or power/infrastructure outages.
- A dropped connection will not fix itself automatically via the Wi-Fi protocol; normally it would require manual intervention (which the software I'm looking for is supposed to remedy), either switching networks, reconnecting, or renewing the DHCP lease.
- Unreliability may be due to bad Wi-Fi access points, a bad network card/antenna, bad infrastructure, bad ISP, or a combination of any of the above. At no time is the power shut off to any of them, however, and there are no hard irreversible malfunctions where a piece of the connection dies and stays dead.
What the tool needs to do:
Run in the background and preferably monitor the network for dropped connections or extreme lost packet rates and run an automatic reconnect/repair routine. A simpler implementation would have a key or key combination ("panic button") where the user manually triggers the repair tool.
Repair routine outline (suggested, actual implementation can be similar and doesn't need to be identical):
- Do everything to reconnect ASAP with a minimum of fuss. Assume that every second of dropped connectivity costs the user dearly. The end-user shouldn't have to enter more than 1 key combination. The tool is only allowed to fail with no repaired connection if all of the available Wi-Fi access points in range are unusable for all practical purposes.
- First, attempt to reset the current failed Wi-Fi connection. Renew the DHCP lease; if that fails, then disconnect and reconnect.
- If this fails, sweep through all locked Wi-Fi networks that the computer has access to (for example, a nearby or home network where you have already entered an access code) from strongest signal to weakest signal and test connecting to each one. If any of these produce a working connection, then the repair is done.
- If that fails, sweep through all open (unencrypted) Wi-Fi networks in range from strongest signal to weakest signal, testing each one as quickly as possible and stopping once an access point produces a working connection.
- If no working connections are produced from the above sweeps, then the repair routine is allowed to fail with an error since no available access points are usable.
In short, such a tool makes the best effort possible to create a logical "reliable" connection running on top of unreliable Wi-Fi connections and possibly unreliable hardware or infrastructure.
Special note: The context of this question is for a tool to maintain connectivity for online games. Therefore, it should not require the user to "alt-tab out", and the tool must not engage in any behavior that could reasonably be flagged as cheating, hacking, or botting. This means that the tool must not:
- generate automated keystrokes, mouse movements, or mouse clicks - this will get the user flagged for botting in most online games and probably banned.
- modify or manipulate data packets - this will get flagged as packet editing ("hacking"), also grounds for a ban.
- attempt to read the memory space of regular user-started applications. Some anti-cheat tools monitor for such activity.