I am testing a game locally on my computer, by running two-three instances at once and telling them to connect to 127.0.0.1 with the appropriate port, and the game works perfectly. But if I connect over a network, in several instances I have gotten strange behavior, mainly having to do with receiving a packet with random garbage in it (or at least it is not in the format it should be, and gives values that should never have been sent through a packet, such as negative numbers when they are always supposed to be positive, or just too big). This usually results in the client program crashing, but in at least one instance it just received a tiny bit of garbage and carried on. Other than latency, what are the differences between locally connecting vs two computers over a VPN or LAN? Any hints as to what the source of the problem could be?