Tunneling
In computing, tunneling is a process where data packets are encapsulated inside new packets, creating a secure or "tunneled" pathway through a public network. This is commonly used to create virtual private networks (VPNs) by encapsulating and encrypting data for safe transport over the internet, but also has applications in routing and other areas. The original data packet is hidden inside an outer packet, and when it reaches its destination, the outer packet is stripped away, and the original data is delivered.
How tunneling works
Encapsulation: A tunneling protocol takes the original data packet and adds a new header, encapsulating the original packet and its header inside a new, outer packet.
Transmission: This new packet is then sent across the network, with the outer header directing it to the tunnel's endpoint.
Decapsulation: At the other end, the outer packet is removed, and the original data packet is sent to its final destination.
Common uses
Virtual Private Networks (VPNs): The most common use is to create secure, private connections over public networks like the internet. This encrypts your data to protect it from being intercepted.
Secure remote access: Allows users to connect to a private network (like a corporate network) remotely as if they were directly connected.
Network interoperability: Some tunneling protocols, like Generic Routing Encapsulation (GRE), can encapsulate packets from one network protocol inside another to allow them to traverse networks that would otherwise be incompatible.
Bypassing firewalls: Techniques like DNS tunneling can hide data within standard DNS queries and responses to send information past security systems.
Secure applications: Protocols like Secure Shell (SSH) can be used to tunnel unencrypted traffic, like file transfers, through an encrypted SSH connection for security.