The client receives a in eip-service.json all valid network protocol / port combinations for each supported transport (openvpn/obfs4) of each gateway.
The client strictly follows these combinations by the scheme below and doesn't use hard-coded combinations of network protocol/port/transport.
If a provider supports the menshen geoip service, the order of gateways the client tries to connect to is determined by the menshen geoip service json.
If a provider doesn't support that service, the order of gateways is determined by the client sided offline timezone calculation (_TODO: add link to timezon calculation here_)
idChangeTransport([Ask user to switch to pluggable transports])
end
```
## Intended flow using recommended network protocol and port combinations
This is an example showing the recommended flow of network protocol and port combinations. It's the providers reponsibility to serve the right order of network protocol, port combinations for each supported transport of each gateway.