I want to access RPi from Internet without port Forwarding. Is there any way to do it? if yes, then how many and how to implement them?
The Raspberry Pi Foundation blog currently lists two alternatives to port forwarding for communicating with a Pi over the internet:
One secure alternative to port forwarding is remot3.it, by Weaved, Inc. remot3.it ("remote it") is software you install on your Raspberry Pi to access a single Pi, or manage a large number of Pis, from anywhere over the internet. Use remot3.it to access any TCP port on your Pi over the web including SSH, VNC, HTTP(S), RDP, and custom TCP services.
Dataplicity allows you to connect and control your Pi's shell remotely from a web browser and its mobile apps. You can use Dataplicity's Wormhole feature to host a website or API directly from your Pi, and automatically enable HTTPS/SSL with no configuration or certificates.
It uses WebSockets over HTTPS to provide a connection, and requires a single-line install.
It has recently been announced that RealVNC are now letting Pi users use their VNC Connect service to connect to Pi's that are running behind a firewall. This gives the user access to the GUI running on the Pi. It is just a matter of enabling the service, creating a RealVNC account, and logging into the account both on the Pi and the computer you want to connect to the pi from. Full instructions are available in the RealVNC docs