In network terminology, a tunnel is a virtual, network layer connection between two hosts or routers. When the tunnelled network layer receives a packet, it encapsulates it, and sends it to another network layer. An example of a tunnelling protocol is IPSec.