also known as UDP hole punching. It's very common in many applications. Skype for example uses it.
It's been a while since i looked into it .. but from what i remember:
Our computers will not directly communicate with eachother (send/recieve tcp/udp packets through port 6112). If you try to join my game, you are at the root sending me packets of information asking for communication... But if my computer does not recognize your computer, it will not allow/recieve those packets of information... so you wont be able to join me.
That's why the lat trick works.. when you try to join my game, your computer recognizes me as someone it is willing to send/recieve information to.. so by the time you host, and i try to join you, your computer is willing to talk with my computer.. because it recognizes me from when you tried initiating the conversation.
Once we download/install war2combat, we're giving that program all types of permissions. One of those permissions can be to ask the server ""Ask player A to send a UDP packet to player B over port 6112 and visa versa)"
so as soon as you long on server. the server tells your computer to send udp packet to all players online, and asks all of them to send you a udp packet.. suddenly all computers recognize eachother and are communicating.. fixing the hosting problem.