I will explain from the basics, according to what I understand:
With most, if not all DSLs, default plans (which do not give you a real IP), the IP address your modem / router receives is one that is internal to the ISP, one that belongs to the IP pools of the internal network of your ISP. What the ISP does is act as a transparent proxy, meaning the following: you send a request from your PC, the router forwards it to the modem (DSL) or it is sent over cable. Now your router / modem thinks it is directly connected to the internet. It is not. The request is forwarded to your ISP, and the ISP sends the request.
To verify this, go to
http://www.whatismyip.com and check your IP address. You will see that the IP address of your ISP will be displayed.
Port forwarding does NOT solve that problem. Data is not being sent to you directly. It is being received by the ISP. Since the ISP does not have port forwarding set up for you (why should he? pay for his plan), then no matter what port forwarding you have set up at home, the data is not even reaching the modem / router in the first place.
Port forwarding in your modem or router is made for the fact that when a PC / laptop / console / whatever is behind a router, it is not visible to the internet. It belongs only to your home's internal network, like your modem / router belongs to your ISP's internal network. You have 2 hurdles before data gets to your PC. The first one is the ISP, and cannot be bypassed. The second is your home, and can be fixed (port forwarding), but as you can see it's pointless.
The solution, is to have a relay that has a real IP address, which you contact, and the other peer who is trying to connect to you contacts. How is data sent to you? Easy. Each establishes a connection to that relay. The relay receives data from the peer and REPLIES to your data. Replies can pass, since they can be traced back all the way to the request your modem / router made. Let me explain this in another way: you send a request with the code: "abcd". ISP forwards this data to the relay. The relay replies to the directly visible IP address, which is the ISP, with the code: "abcd". The ISP forwards it to your modem / router, which forwards it to your PC. This is why such a method works.
VPN is "Virtual Private Network". It installs a virtual network adapter, and gives you a virtual IP address. You now have a virtual network over the internet. It's as if you and your peer are connected to the same network, in your home.
Now this "relay" is called a "supernode". Public supernodes exist for VPNs such as OpenVPN and n2n. Since here we rarely have real IPs, and if we do, we have low upload speeds and quotas, then it's best to connect to a supernode that is public, and free of charge.
For the VPN software "n2n", the supernodes are use are the following:
1) supernode.org.uk:1234
2) 88.86.108.50:82
Sometimes, one works and the other doesn't. If one works, then in the software, "REGISTER_ACK" will be displayed every minute. If not, then the software will be stuck at "Registering with supernode".
I have made a tool that automatically configures n2n. All you need to enter is the:
1) Network name (you create this)
2) Network password (you create this)
3) Supernode IP address
4) User IP address
1,2,3 should be common between all peers attempting a connection. 4 is unique to each user. If 2 users have the same User IP address, they will be UNABLE to connect.
For those who want the auto-configuration tool for n2n, contact me by PM.