I was a bit confused whether there is a difference between port forwarding and tunneling. What I have concluded is that a port forwarder forwards application data to another port perhaps potentially on a remote host. A tunnel on the other hand, doesn't carry application data directly, but rather carries the PDUs of another IP protocol. So can it be said that a tunnel is a special type of forwarder wherein unlike a normal forwarder where the mediator server makes a direct connection to the ultimate destination and forwards the data to the destination, a tunnel, rather injects the protocol data into its operating system networking stack to be routed to the ultimate destination?
But this doesn't always appear to hold true. For example, SSH tunnels are often referred to as secured tunnels. But are they really tunnels? The data that is being carried in these secure channels are application data and not IP protocol data.
Maybe I am over-analyzing this and they both refer to the same thing.
So for the following scenario where I have an Application A, B, C. A is a client application that connects to B. B simply forwards the data to Application C. Would B be considered to be port forwarding because there is no additional "value" being added to the data stream? If so, what about the same scenario but assume that the connection between A and B is unencrypted and the connection between B and C is encrypted. Would B now be tunneling data in this case as opposed to port forwarding since there is now a "value add" of encryption?