In computer networking, what is tunneling?

Tunneling is the ability to take a fully formed packet and stuff it inside of another packet header (or headers!), forward it to an endpoint, have the outer header removed, and then have the inner packet forwarded on to its destination.

Tunneling is essential because it provides virtualization of the topology. You can create overlay networks that allow you to forward a protocol across a topology that doesn’t really support it (e.g., IPv6 over an IPv4 network).