title: When is port forwarding necessary?
body: <p>I've been investigating networking for use in a two-player game I'm writing, and I'm still not clear on when a device must have a port forwarded in order to communicate with the outside world.</p>
  
  <p>From what I've seen in other games, port forwarding is always required in order to host a server, but is not required on the client.  In addition, there are other situations, such as skype (which, to my understanding is ultimately client to client), where neither end must forward a port.</p>
  
  <p>So my question is, in over-the-Internet communication, when is and isn't port forwarding necessary, and what steps can i take as a developer to make it so my users don't have to worry about it?  Thanks in advance!</p>