It tends to be a combination of things. One issue is when a router packet queue is full, it will flush excess packets. (In some cases, UDP packets already in the queue may be flushed in favor of TCP, depending on the router.) Other times, the packet size may be larger than the accepted size by the router, and as a result, it will split the large packet into several smaller packets. If any of these packets doesn't go through (possibly from filling the queue, etc), the entire packet is lost. (These are also why small packets are preferred, even today.) Packets may become corrupt in transmission (due to stuff like router/switch crosstalk, transfers, parallel transmission, etc), and so forth. Basically, there are a lot of ways to lose a transmitted packet, ESPECIALLY if wireless is involved somewhere along the line. (But no sensible gamer plays over wireless, right?)1DVD4D2UDK wrote:I know a bit about networks, but I'm curious about what type of connection elements would invite packet loss? Too many hops, an overseas connection, or just below average routing through old trunk lines? And if I remember correctly, the weakest link is the longest with too much resistance.Duper wrote:The one thing to worry about is packet loss. That will always cause more trouble than lag. A game where pings range from 120 to 200 but clean is at least predicable. A game where pings are 20 to 60 but dropping packets? no way.
But you are correct, a smooth, constant connection with higher lag will generally result in a more playable game than a low latency connection with regular lag spikes and packet loss.
I haven't done much network programming in recent years (thank goodness), but my curiosity has gotten the best of me, so if I have a chance, I'll take a look at some of the rebirth/retro network code this weekend.