Tunneling is a technology used to connect different computers and networks securely across the Internet. There’s a great introduction to Tunneling and it’s uses at Networking 101: Understanding Tunneling
A tunnel is a mechanism used to ship a foreign protocol across a network that normally wouldn’t support it. Tunneling protocols allow you to use, for example, IP to send another protocol in the "data" portion of the IP datagram. Most tunneling protocols operate at layer 4, which means they are implemented as a protocol that replaces something like TCP or UDP.