Friday, October 21, 2016

The Channel Bundle: multiplexing for serial connections

In my applications, i often have the need to communicate over TCP and somehow share the connection for different purposes.

So I created the general purpose library Chabu to implement this.

Chabu implements the multiplexing over individual channels to go over a single one.

The main advantage is the flow control for each individual channel.
This means, in a situation where the receiver of one channel is blocked, the other channels can still work.

This is the same, as if you would have several TCP connections. But in my applications, i need to avoid having multiple connections and stick to a single one.
Reasons are:
- limited amount of free ports due to firewall rules
- memory needed for a TCP connection on embedded devices
- better utilization of the payload in the TCP connection, hence fewer interrupts
- encapsulate the internal needed channels, no need to be visible on the network.

Chabu is available for plain C, |Java and C# (.NET).