If you want to have a communication get to a specific computer on your network initiated from the outside, you would forward the initial port used by a protocol, the one used to "handshake". Some protocols do the transfers through the orginal "handshake" port.
Other protocols use some random higher port. If that is the case, you are not going to have fun getting it to work through a typical soho nat device.
Other protocols use a predicable range of higher ports to do the work after the handshake. These protocols favor port triggering.
Here is a link to good post at dslreports.
Link