Tunnels

an abstraction of a single connection from a user to a remote service.

A tunnel is not a new concept, but Dull uses the term in a particular way.

No Implementation Details - A tunnel should be understood from the perspective of a user connecting to a remote service. When you consider a physical tunnel underground, you don't see outside. For the same reason, the details of a network tunnel are not important, just that it reaches its destination.

Start and Finish - Is it encrypted? Is it multiplexed along with other tunnels? Does it route through a central server? Such details might be questions about the features of the tunnel. One might want to know how it works, but when we refer to a tunnel, we're specifically speaking about the user-benefit.

Local Network Experience - A tunnel has a method for connecting locally, and the rest is transparent. The experience is similar to connecting as if the remote service is local, exception for performance (latency and bandwidth).

An Active Channel - Usually, we refer to a tunnel as a single active channel, that's separate to the configured ability to activate one or more active channels. Although, the ability to actively tunnel implies a specification is needed, this is referred to specifically as a tunnel-configuration.