Here is the thing. Port Forwarding is pretty literal.
When Hosting :
The problem arises when 2 way communication - inbound & outbound requests - are trying to be established.
When you set this up, on your router, you are doing just that; forwarding a specific port to your computer( server ) over the LAN( L ocal A rea N etwork ). The computer that requests that port first - within the LAN, will have the port available for 2 way communication( inbound & outbound requests ), all other unsolicited incoming requests for this port will be denied. Only ONE computer can have this port access at a time.
Any computers on the same side of the router( locally ), do not need any forwarding what so ever, as the forwarding is ONLY for access from outside of the network: i.e. to the www( W orld W ide W eb ). This way, the requests coming from the outside( www ), are not stopped at the router's firewall, and are ... ready for this? ... FORWARDED to the hosting computer.
FRIEND COMPUTER: "Hello I am here to play <INSERT_GAME_NAME_HERE> with my friend. May I please proceed?"
ROUTER FIREWALL: "Hmmm, this request is asking with the correct location( port )" -- sending request to system specified -- ...
HOSTING COMPUTER: "Hey look, my friends are here! OH, JOY!"
Click to expand...
When Joining :
Again, the problem arises when 2 way communication - inbound & outbound requests - are trying to be established.
When one computer( client ) is just trying to connect to another hosting computer( server ), ports do not need to be forwarded on the client( your ) computer. This is because you are allowed - by the router's firewall - to make all the www requests you want. Remember, the router ONLY stops unsolicited incoming answers/requests; i.e. answers/request that you have not specifically sent out for.
If you sent a request out, and are waiting for an answer, the packets will say so to your router. So, if the client( your computer ) cannot connect to the server, then the SERVER's ports are not configured properly! NOT YOURS !
ONE MORE ASPECT :
N etwork A ddress T ranslation( NAT ) . This is becoming common place in new routers, and introduces a whole new set of problems.
Though that sounds helpful, it causes more problems, and exposes incorrect router/port setup on the hosting( server ) computer's side.
Please note sentence 3:
Take the languages of Spanish and Italian, for example. Though they construct sentences sort-of similar, and have several words in common, they are in fact two separate and identifiable languages.
Seeing as they are more heavily latin-based, they can communicate with each other in basic terms very easily: "Hello", "Goodbye", etc, etc. They do this better than Chinese or English can with one or the other. NAT is similar, and improper setup can cause these differences to be exposed; thus confusing the router's firewall.
This is due to the NAT not interpreting correctly between the two devices.
BOTTOM LINE :
You can't connect to your friend's server, because they have not set up their router properly. Trying turning your NAT off, and see if you can connect. Fail that, if they are friends, have them TRY turning off NAT, and try again.
Hope that helps!
Last edited: Jan 23, 2014
HexZyle and zfsnips like this.