Ok, I started SC up and did a packet capture so I've got an idea how the ports work now.
It looks like only port 6112 is used. So all my speculation about different ports above is incorrect - all connections are sent to and from port 6112 for all players in the game. So where the recommendations for ports 6113-6119 being forwarded have come from I don't know.
Probably the only way to really diagnose what is going on properly is going to be getting packet captures from one or both computers while they are having the problem.
Anyway, I thought of another possibility. The extreme stuttery lag is probably a result of packets being dropped, but eventually getting through. Another possible explanation for that would be a bad router/firewall that isn't able to open multiple NAT sessions between the victim computer and the rest of the computers in the game. Each player needs to send packets to every other player in the game, and in a 2 player game this requires a single connection between them, so everything is fine. But in a 3 player (or more) player game, each computer needs 2 (at least) connections to other players open simultaneously. However if your router/firewall is dumb and only allows a single connection on a particular port (6112) at a time, then when P1 is talking to P2, packets from P3 will be dropped. Then P1 sends a packet to P3, and the packets from P3 get through but the packets from P2 are dropped. This would result in P1 dropping packets from alternating players, and potentially dropping many packets in a row if the packets were arriving shortly outside the window during which they would be accepted (eg receive P2 packet when could receive P3, then receive P3 when could receive P2).
Anyway, if the above is what is happening, then the problem should be with a particular indivdual player, and that player would never be able to play games with 3+ players. They could play games with any other single player just fine, though, and the problem wouldn't not be limited to occuring just between a specific two players. Eg if Player A always has the problem, then games with A, B, C or A, B, D or A, B, E would suffer, but so would games with A, C, D or A, C, E (player Bs presence does not induce the problem with player A).
Incidentally if SC did make use of ports 6113-6119, then the failure mode I've outlined above wouldn't occur, because the victim computer could talk on 6112, 6113, 6114 etc to all other computers and therefore not have any problems - it is only because all computers talk soley on 6112 that this could be an issue.
Post has been edited 1 time(s), last time on Jun 10 2010, 12:27 pm by Lanthanide.
None.