In computer networks, a tunneling protocol is a communication protocol that allows for the movement of data from one network to another. They can, for example, allow private communications to be sent across a public network, or for one network protocol to be carried over an incompatible network, through a process called encapsulation.