Jump to content

DCS Updater HTTP downloader LAN connection sharing


Worrazen

Recommended Posts

Hello

 

While on the P2P mode it was possible for LAN peers to share data at very high speeds using the physical LAN ports, which would speed up the update process significantly if another machine was to join in at a later time while the first one was still downloading, this isn't possible on what looks like now to be a HTTP download by default. Could something like this be made available.

 

I think P2P was removed no? Because it doesn't say anymore "hitting cancel will switch to HTTP download" so P2P isn't the default anymore, and I think I hit cancel sometime before and it stopped doing anything, but don't want to do it right now to double-check, to avoid any messups as I want to test the new beta right away, I'll do it next time if I don't get the answer by the time.

 

Or a different kind of an approach where the downloading/patching part would be kept intact to not complicate it, but have a manual separate option to launch DCS updater manually and host the whole DCS build on LAN, and you could have your other DCS Updater LAN Clients check for LAN hosts (by default?) on startup and automatically connect to your DCS LAN host as a HTTP or raw TCP connection (no need to be bittorrent, if the feature and it's code was really removed) and update through that as if it was the ED server. In the beginning and end the LAN client would still contact ED servers for metadata and several checks, like to see if the LAN host is up to date or if there's some other issue as well as verify for integrity with the ED server if necessary, but that would take a fraction of the bandwidth IMO.

 

However I can see it can not be so simple, installations are unpacked and do not have only the differences that are usually prepared for such patching processes, so the data to transfer would be more if not twice more than from an ED server, but the LAN speeds are really fast so it may not matter.

 

 

Thanks


Edited by Worrazen
  • Like 1

Modules: A-10C I/II, F/A-18C, Mig-21Bis, M-2000C, AJS-37, Spitfire LF Mk. IX, P-47, FC3, SC, CA, WW2AP, CE2. Terrains: NTTR, Normandy, Persian Gulf, Syria

 

Link to comment
Share on other sites

Oh hehe, my personal case isn't as a serious network shortage, I do have ~23 MB/s down, ... and I guess why would I even need to update both machines at once, not like I could play both at the same time, so I'm not the best example, but it would help for others in a similar situation if there's more actual people on a LAN that might also have a slower internet, and to avoid splitting that bandwidth to all the LAN clients.

 

But some of my builds I did not update for a while so I got a 30 gig update, which isn't abnormal, patch sizes, but also new module/terrains are going to get bigger and bigger and this isn't that far fetched of an idea down the line. Realistically this would help in less popular situations, but when it does, it may relieve the official servers and save bandwidth there, which most likely isn't free I would think, and the returns start piling up the more LAN clients there are trying to get the latest patch down roughtly at the same time/day.

 

What about the student dorms, university, apartment complexes, those most likely have a single cable to the building and one internet plug, there might be (exaggerating to prove my point) a 100 people on the same LAN there that would be all doing their own direct connection to the official patch servers, on the other hand perhaps not so popular scenario again, not the kind of demographic that is big for DCS but it's still a good argument in terms of how much savings this feature theoretically brings when you have a lot of LAN clients.

 

For simulatneous LAN updating, the implementation idea that first pops in my mind is: DCS updater which starts first would become the primary one by default if there's no other DCS updater instance detected on LAN, basically DCS updater would do such a listen check for a few seconds every time it starts and then proceed according to the results, if it detects one it switches to client mode for LAN reception, if nothing is detected it's going to direct download but also into host mode and keeps broadcasting it's presence on LAN while subsequent other LAN clients would detect a primary already exists and let him download at full speed from the WAN, with an option/button to switch over to direct mode if the user so wishes, in case of issue.

 

Simulatenous LAN updating has a benefit over the "offline" manual idea that I had in the first post, because the DCS Updater in Host mode could (and probably already does, and cleanup at finish) cache the downloaded patch data (which is a compressed and probably also difference-data which avoid replacing whole assets but don't hold me work if DCS actually does this, I don't know, but many games do) so any other LAN client in DCS Updater client mode would ofcourse get this cached data really fast and then receive the remainder at pretty much the same speed the Host is receiving it from WAN.

 

Another feature/behavior of the Host mode DCS updater would be, when the Host finished it's download, but senses there's LAN clients still connected and did not finish, it should wait and keep transferring to them until they're finished ofcourse. This actually is more of an odd case, the clients would most likely finish nearly simultaneously with the host, except if a DCS Updater LAN Client joins in very late and even at the very high LAN speed it is not able to download all of the cached patch data in time to catch up, among other possible reasons, such as LAN congestion it self.

 

Additionally there could even be checks to warn the user if LAN isn't working properly, if possible, for example if a firewall or something blocked the connection from going fully though, or the DCS updater Host could not properly broadcast packets and senses some issue, etc, but ofcourse such things aren't 100% checkable as an improperly configured LAN or simply LAN connections blocked by the organization as a policy of the operating system or network equipment (router) might look the same in practice as if there's no client to be found, which I'm afraid some larger LAN networks might be doing, especially wireless APs, to isolate different devices/rooms as a security and privacy measure.

 

cd797b81-dc05-496e-b7ac-5ecf3d453c0d.png

 

https://www.asus.com/support/FAQ/1044821/

 

Yeah so a possible note in the DCS Updater could be, even if there is no LAN issue detected, that if the user feels like there should be a host/client on the LAN but it's not being detected by the DCS updater, the user should check or negotiate with network administrator whether the "AP Isolation" option is disabled on the router, among other possible network configurations.

 

However, reading the FAQ now, even with this enabled, actually it looks like AP Isolation isn't fully-encompasing as I thougth, as it works on a per-interface level, so in a big complex network there might be a lot of other possible LAN clients that this would work through. But still instead of everyone having their own connection, let's say a 100, let's say there's 10 Wireless APs with AP Isolation enabled, you'd still get significant savings, each AP would need it's own DCS Updater LAN Host so there would be 10 hosts in total and 90 clients, now that's still a lot better, a lot of GBs saved there on the official servers.

 

 

PS: Yeah the "offline" manually triggered DCS Updater LAN Host option could still work better if you would simply keep the last update cached forever without cleanup, but that's getting really nitpicky even for my pickyness, however that might just be fine and perhaps useful without turning DCS into a server mirror or something, which isn't the intent, but just for the very last patch and nothing else, so every new patch would overwrite this cache, for the option that could go "Keep last patch data cached" or better.

 

As usual I dig into an idea really good, it's been floating on my mind for months.

 

 


Edited by Worrazen
  • Like 1

Modules: A-10C I/II, F/A-18C, Mig-21Bis, M-2000C, AJS-37, Spitfire LF Mk. IX, P-47, FC3, SC, CA, WW2AP, CE2. Terrains: NTTR, Normandy, Persian Gulf, Syria

 

Link to comment
Share on other sites

Some of the underlying code may already be there and could be used/recycled, the DCS updater already supports detecting "local copies" (other installations) that it can use the common data from, so it doesn't necessairly need a compressed+difference patch packet and can already work with another end-user installation already.

 

But doing it right and good probably will be a bit more than just bolting LAN on this, it's just one more argument I could find in favor for this idea and the feasibility hehe ... but I'm speculating honestly not have an idea what the code is like.


Edited by Worrazen
  • Like 1

Modules: A-10C I/II, F/A-18C, Mig-21Bis, M-2000C, AJS-37, Spitfire LF Mk. IX, P-47, FC3, SC, CA, WW2AP, CE2. Terrains: NTTR, Normandy, Persian Gulf, Syria

 

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...