What exactly is SSH tunneling? What is the difference between the terms: SSH Tunneling and Port forwarding? What is the exact difference between different types of SSH tunneling methods? 

> 
> Local port forwarding vs Reverse port forwarding vs Dynamic tunneling
> 
> 
> 

What are the ideal scenarios where each type can be used?