Risposte:
Il tunneling è il processo in cui un layer è incapsulato nel payload di un altro layer. Nel modello OSI.
Tunneling IP: supponiamo di eseguire il tunneling di un pacchetto IP all'interno di un altro pacchetto IP. Sulla sinistra è possibile vedere il pacchetto da incapsulare e sulla destra questo pacchetto viene aggiunto come payload a un altro pacchetto IP.
All'estremità ricevente il processo viene invertito e il pacchetto di payload viene inviato agli strati superiori dello stack.
Il tunneling IP può essere di molti tipi ip over ip, ip6 over ip, ip over ip6.
Nel tunneling TCP lo stesso processo viene eseguito a livello TCP.
Il tunneling TCP viene generalmente utilizzato per il port forwarding poiché il traffico può essere inoltrato selettivamente in base alla porta di destinazione.
Ecco alcuni bei articoli:
Tunneling IP. http://www.linuxfoundation.org/collaborate/workgroups/networking/tunneling
Port Forwarding TCP: http://www.cyberciti.biz/faq/linux-unix-tcp-port-forwarding/