Network tunnel

IoT prototype: Development of an IoT tunnel solution for Azure and ThingWorx

,

As part of my bachelor's thesis, I investigated network tunnel solutions for IoT platforms and developed a tunnel solution myself.

The IoT platforms examined include Microsoft Azure, PTC ThingWorx and the Eurotech Everyware Cloud. The result is a client-server application in Java. It can be used in standalone mode and in conjunction with existing IoT platforms.

What is an IoT tunnel solution needed for?

This is a question that I was asked a lot during my bachelor thesis. In the Internet of Things networked Things increasingly connected via IoT platforms. Telemetry data is often sent to the platform and there may be the option to do so, Send messages from the platform to the thing. However, direct access to a networked device via the Internet is not initially possible. This requires a Network tunnel set up become. When it comes to network tunnels, many people may think of VPN. However, VPNs are comparatively heavyweight and rather unsuitable for mass use in the Internet of Things.

Requirements for an IoT tunnel solution

To analyze the IoT platforms and as a basis for my own development, I have identified requirements for an IoT tunnel solution. The most important of these are:

  • Firewall neutrality - the network tunnel must function without firewall adjustments
  • Network performance & stability - The tunnel must offer sufficient performance and the connection must be maintained without interruptions
  • API for integration - the tunnel system must have an API for control and integration into existing IoT platforms

Structure of the IoT tunnel solution

 

Technical system overview of an IoT tunnel solution
Technical system overview of an IoT tunnel solution

 

The illustration shows the rough structure of the tunnel system. The IoT device is the destination to which a tunnel connection is to be established. In the same network, the Tunnel Listener installed. He builds a Websocket tunnel with the Tunnel server on. In another network, the Tunnel clientwhich also establishes a web socket tunnel with the tunnel server. The tunnel connection is marked blue in the illustration. The tunnel client can now create a TCP connection with the IoT device. This can be, for example, a database connection, a SSH tunnel or an HTTP query be. The IoT platform can communicate with the tunnel server and thus determine which connection should be established to which IoT device.

Websockets as a tunnel protocol

For the decision to use the Websocket protocol as a transport for the tunnel for several reasons. Websockets use the same ports as HTTP and therefore do not need to be taken into account in the firewall settings. In contrast to HTTP, it can also be used to bidirectional communication can be used. One disadvantage is that proxy servers still offer rather poor support for web socket connections, which, if configured incorrectly, means that no connection can be established.
One of the biggest challenges was the Implementation of a protocol for the tunnel.
There were a lot of questions to be answered, starting with "How do I transfer TCP data via a web socket connection?" about "How do I identify a tunnel connection?"or "How do I coordinate the set-up and dismantling of a connection?" up to "What actually happens if there are several TCP connections for a tunnel?".
The last question was only answered when I suddenly got the same image displayed in all possible places while tunneling a website. The browser had opened several HTTP/TCP connections, but my implementation had only reckoned with one. As a result, the TCP segments could no longer be assigned correctly and the same image appeared everywhere on the website.
The solution was One web socket connection per TCP connection to create, whereby however the Connection setup considerably more complex was.

Integration of tunnel systems into an IoT

To prove the integrability, I used the Tunnel solution integrated with the Thingworx platform and Microsoft Azure as an example. For this purpose, both the tunnel listener and the tunnel client Interfaces definedwhich had to be implemented for this purpose.
It was noticeable here that the Time to establish a connection between the IoT platforms varies greatly. The delay was due to the protocols used in each casewhich the platforms use for device communication.

Conclusion: Network tunnels for IoT devices - even without VPN

In my bachelor thesis, I showed how IoT devices Establish network tunnel without having to set up a VPN network. In a prototype implementation, the Integration with the IoT platforms Microsoft Azure and PTC Thingworx proven become.
One subject area that was not considered in my bachelor thesis is the Security aspect, which is critical for productive use with networked devices.

 

Want to find out more about the technical implementation of IoT solutions?

 

Simon Mennig

About ME

Simon Mennig studied Business Informatics (B.Sc.) at the Ravensburg-Weingarten University of Applied Sciences and Computer Science with a focus on Software Engineering (M.Sc.) at the HTWG in Constance. He has been working as a software developer at doubleSlash since 2020 and has expertise in the following areas, among others IoTcloud computing and Java.

All contributions from Simon Mennig

Learn more

Further information on our website and in our newsletter

Arrow up