OK, I assume you mean the data from client to client (p2p) not data for the server. What port does the Peer to Peer function on ? Does the server use the same port ?
Actually every program connected to the session works the same way, including FSHost -- they're all p2p clients, talking to each other, so all the ports are the same. The only exception to this is when FS2002 is looking for a session -- it uses TCP port 47624 for searching, and then it switches to 2300 to 2400 when joining.
It'll only ever be 1 pc connecting internally.
If that's the case, this would be a whole lot simpler if you could run FS and FSHost on the same machine. Is that possible? Then you could just forward everything to the one machine.
Wont forwarding ports 2302-2400 to the internal client mean that FS2002 pilots won't be able to join the server as their packets will be going to the internal client rather than the server ?
Well, first, FS2002 uses different ports to FS2004 -- see the FSHost Help page I mentioned earlier. But if we stick to FS2004 for these tests, then here's how it all works...
When FS2004 connects, it uses UDP port 23456 (unless the user has changed the Connect port by clicking "Client Settings" on the multiplayer screen). If FSHost is also set to use UDP 23456 (which it is by default), then the two programs will happily talk on 23456 and stay on that port forever, and that's the only port that's ever used.
However, it gets more complicated if FS2004 and FSHost are using different ports. Let's say FS2004 is using the default 23456 and FSHost is using 23457 for this example... Now what happens is that FS2004 sends a request to FSHost on 23456, but FSHost doesn't answer. Then FS2004 sends a request on the "alternate" port, which is UDP 6073. FSHost then sees this request and sends back a reply on a (sorta) random port in the range of UDP 2302 to 2400 -- let's say it's 2350. The two programs then stay on 2350 for the rest of the session, and that's the only port that's used.
This same "using 6073 to switch to a random 23xx port" scenario can happen any time the two programs aren't using the same ports, or if one can't send data to the other on the "FS2004 preferred" port, which is 23456, or whatever you have it set to. For example, if you have both set to 23457, they'll happily stay on that port. But if ever they can't talk on the FS2004 preferred port, they switch to the 23xx range.
So my thinking was that if you set 23456 to go to the FSHost machine, then all the external machines could hopefully use that, as long as they hadn't changed their connect port in FS2004. And if 6073 and 2302-2400 were forwarded to the internal FS2004 machine, then it could connect to the session using some other port such as 23457, which would cause it to do the whole switching ports thing, and it'd end up on something like 2350. The idea then is that any new external players would try to talk to the internal player on 2350, which was correctly forwarded to the internal machine and not to FSHost.
Complicated, isn't it :-)
Russell