Friday, June 20, 2014

Homemade Internet Service Relay (III)

Instead of relaying messages, we can relay connections. This way the relay is completely agnostic to whatever the service is doing, which is good because that will allow a wide range of services to be relayed without being known or modified at all. Case in point could be Remote Desktop. We couldn’t possibly change remote desktop, or we are interested in knowing the details of the protocol. But if we relay the whole connection, we can make it possible to relay any service on top of TCP.

With just a tiny twist from above, this can be easily done.

Step 1) The relay client service, live in the internal network, make a TCP connection to the Azure relay server service.

Step 2) The Azure relay server service make itself available to the Internet.

Step 3) When Azure relay server service receives a connection, it sends to the relay client service through the connection it established.

Step 4) The relay client service connects to the internal service

Step 5.1) If the Azure relay server service receive a message, it sends to the relay client service and the relay client service send to the connection.

Step 5.2) If the relay client service receive a message, it sends to the Azure relay server services and the Azure relay server services send to the client.

Step 6.1) If the Azure relay server service receive a connection close, it sends to the relay client service and the relay client service close the connection.

Step 6.2) If the relay client service receive a connection close, it sends to the Azure relay server service and the Azure relay server service close the connection.


That is something I wanted to build.

No comments :

Post a Comment