I've had an Xbox for going on four years, and a 360 for one and a half. I've spent many a happy hour playing online, both over Verizon DSL and RCN Cable, on the 360 ... at least until Halo 3 arrived.
For some reason, Halo 3 refused to play nice like the rest of my game; it would let me get into two or three multiplayer games and then suddenly lose its mind and drop the network connection.
After a few days of this, I decided to do some research. First, some background: I'm running a Linksys WCG200 wireless cable router. My 360 plugs directly into one of the Ethernet ports on the router. When my connection problems would happen, one of three things would occur:
- The 360 would report a network error.
- The 360 would report incompatible network settings (and say that I had Open NAT setup)
- The 360 would simply lose the ability to join any games.
In each case the 360 could browse the network for games, it just couldn't do anything with what it found. In digging around the net, I came across this article about configuring an Xbox to work with a Linux-based NAT solution:
The author reports similar symptoms to what I saw. The kicker was this:
The moral of the story is that an "open" NAT as the XBox Dashboard reports it may not actually be an "open" NAT, if you don't have UPnP support. It seems that XBox Live! really relies on UPnP when running in a NAT configuration, so you need to provide that support if you want a smooth experience.
UPnP is shorthand for "Universal Plug and Play". I logged into my router, went to the Administration tab, and found that UPnP support had been set to "off". I set it to "on", and immediately noticed a difference; the 360 was much quicker to find and connect to games, and for the first time I wasn't the one dropping out of matches.