Skip to content

How MUX works and its usage

What is MUX?

Multiplexing, commonly known as MUX, serves as a critical component in VPN (Virtual Private Network) protocols, allowing multiple data streams to be transmitted simultaneously over a single communication channel. In the field of VPNs, multiplexing plays an essential role in optimizing data transmission. By defining a set of flows for the MUX in the VPN protocol, sessions are created to facilitate all traffic passing through these flows. This approach not only simplifies the transmission process, but also enhances security measures by obscuring transmission patterns, thus making it more challenging for unauthorized entities to intercept or manipulate data.

MUX protocols

MUX generally uses 3 libraries for multiplexing, which are briefly explained in order:

SMUX

Smux (Simple MUltipleXing) is a multiplexing library for Golang. To provide reliability and ordering, like TCP or KCP, it relies on an underlying connection and provides stream-oriented multiplexing. The main purpose of this library is connection management power for kcp-go. read more

YAMUX

It is another library for Golang that has high reliability and customization and is based on the TCP protocol. Read more

H2MUX

In this algorithm, which is based on HTTP2, a more robust protocol for multiplexing is presented, which works on Golang version 1.6 and later. read more

MUX max connections

It determines the maximum number of connections that are established when multiplexing streams.

MUX min streams

When multiplexing is established, a number of channels are allocated to the destination, these channels are called streams, and all TCP connections are sent through these channels. This parameter determines the minimum number of streams in the MUX.

MUX max streams

This parameter determines the maximum number of streams in the MUX.

MUX Padding

When this parameter is enabled, connections without pads will be rejected.

Brutal MUX

It is a TCP traffic control algorithm that helps reduce the speed when noise is applied to the traffic (filtering). In this way, when the traffic increases, for example, to 10 Mbps, when reconnecting, the speed does not start from zero, but from 10 Mbps, and this helps to not notice the decrease in speed due to noise.


Last update: April 17, 2024

Comments