On Demand mode was added to ISL AlwaysOn to minimize the bandwidth used by AlwaysOn when the program is in idle state - No ongoing remote desktop connection. In standard mode ISL AlwaysOn pings ISL Conference Proxy server periodically to signal the computer is online. This takes up 80bytes/s of bandwidth. With On Demand mode the procedure is different.
On Demand Connection flow
- When ISL AlwaysOn is installed it connects to ISL Conference Server to register.
- AlwaysOn selects a port in range 1000 to 65535 and begins listening on it.
- AlwaysOn notifies ISL ConferenceProxy on which port it is listening and what is the reconnect secret.
- AlwaysOn checks it can communicate with ISL Conference Proxy over the selected port and enters On Demand mode.
- AlwaysOn is listening on the selected port for notification from server.
- When server wants to establish a connection it sends the reconnect secret.
- AlwaysOn connects to server and establishes connection normally.
Firewall
To enable On Demand mode a rule is added to Windows firewall. You can see the rule under "Inbound Rules" and it allows ISL Always On to listen for incoming TCP connection.
NAT Environment
Note: On Demand mode was not designed to be used in environments behind NAT. There is a workaround which enables the On Demand functionality behind NAT which is not user friendly and should be used only for specific requirements.
To allow the On Demand mode to function behind NAT you have to set up port forwarding which points to the port on which ISL AlwaysOn is listening. Since the port on which ISL AlwaysOn is listening is selected dynamically during launch you have to manually force the port trough registry via: HLKM\...\ISL Online\grid[grid name]\ISL AlwaysOn::on_demand_port. This kind of setup can lead to many possible issues that will prevent On Demand mode form working correctly e.g. the forced port being used by another process. ISL AlwaysOn is unable to resolve this kind of issue on its own and On Demand mode will not work.
Follow the steps bellow to configure On demand mode behind NAT anyway:
Step 1)
Use registry editor to find the port on which ISL AlwaysOn is listening in On Demand mode.
Step 2)
Set up port forwarding rules on your router, routing the traffic that comes to port 63881 (in our case) to the IP address of the target machine. Unfortunately the GUI of routers depend on manufactures so it is impossible to show an example, however please refer to the following article which describes in detail how to set up port forwarding on different routers: Link.