What is a tunnel?

1

According to Wikipedia, a "tunneling protocol" is:

when one network protocol (the delivery protocol) encapsulates a different payload protocol. By using tunneling one can (for example) carry a payload over an incompatible delivery-network, or provide a secure path through an untrusted network.

To me, this definition is rather vague. To me, I interpret this definition of tunneling as any time one protocol's payload is actually a request/response formatted for another protocol. Like if you took the binary of a TCP request and placed it in the body of an HTTP request.

Am I on track? If not please correct/clarify and provide some concrete examples. Thanks in advance!

pnongrata

Posted 2012-07-28T15:25:45.833

Reputation: 2 212

Answers

1

Your understanding looks correct; many common protocols can, in some or other way, be tunnelled over other protocols.

But not all protocols are suitable for being tunnels – e.g. standard HTTP can only carry request-response pairs, but there is no such thing as a "TCP request" or "IP request"... Meanwhile, other protocols are designed specifically for such purposes (SSHv2, SOCKS, GRE).

user1686

Posted 2012-07-28T15:25:45.833

Reputation: 283 655

Thanks @grawity (+1): a few followup questions for you:(1) when you say "protocol X is tunneled over protocol Y", which protocol is encapsulating which (is X carrying Y or vice versa)? And (2) I would imagine then that the only "restriction" as to what protocols can be tunneled over other protocols has to do with the nature of the tunneled protocol, yes? Meaning: TCP could be tunneled over any protocol that would allow two endpoints, both expecting to communicate over TCP, to communicate with each other without inhibiting TCP. HTTP obviously inhibits this which is why it's not possible, yes? – pnongrata – 2012-07-28T16:35:18.560

@zharvey: (1) "X over Y" means practically the same as "X is inside Y" "Y carries X", when speaking about network protocols. You might remember the "layer" diagrams of OSI and Internet models – TCP is usually depicted on top of IP, meaning that it is carried inside IP. (2) Yes, that's right, although you could say that the nature of the "outside" protocol matters more – e.g. UDP imposes completely no structure so you can tunnel anything inside UDP – user1686 – 2012-07-29T17:05:44.713