Well, that's a whole different conversation in networking, but I'll give it a quick shot. TCP is used as a transport protocol, it establishes connections between the remote and host. All packets transfered are sequentially numbered, if the remote misses a packet in the sequence it can request that the packet be sent again. UDP is also a tranport protocol, there is no connection between the remote and host established, packets are not sequentially numbered. If a message is sent using UDP, the remote server does not know if it has a complete packet or not, it reassembles what it has and goes with it, it cannot request a packet be sent again because it doesn't know which in the sequence it is missing. There are pro's and con's for both protocols, TCP is better at getting complete data streams from host to remote because of its checksums, but UDP is much faster because there is no checksums or connections made.
I'd check with gamespy to see if they are using TCP or UDP.
Ohh ya, also, UDP packets cannot be forwarded....
Terry