> >
> > Battle.net seems to only use TCP, and it seems to do no punch-through.
> > It seems to forward connection information to others for "normal"
>
> games,
>
> > and to serve as an intermediary for "ladder" games (IIRC -- it's been
>
> a
>
> > while since I did Warcraft III).
>
> I don't think that battle.net does not act as a full intermediary in
> the general case for all ladder games. Ladder games make up some huge
> percentage of the games played, and the bandwidth costs seem prohibitive
> to me. I guess it would make your service highly resistant to packet
> filtering attacks though. But after the fiasco that was the "waiting for
> server" dialog box on Diablo 2 battle.net I would be surprised to see
> them go for another centralised hosting strategy.
>
Battle.net does indeed act as a server for ladder games. Bandwidth isn't a
huge issue though as the games run in lock-step (doom style) by having each
clients send their command presses through to the server to be distributed to
each player. This obviously uses *much* less bandwidth than trying to
continually send world-state information to each player. It also makes many
cheats impossible and stops players from finding other players IP's and
DoSing them, etc..

> -----Original Message-----
> From: gdalgorithms-list-admin@...
[mailto:gdalgorithms-
> list-admin@...] On Behalf Of Jon Watte
> Sent: Wednesday, October 27, 2004 09:55
> To: gdalgorithms-list@...
> Subject: RE: [Algorithms] UDP Network connectivity
>=20
> Battle.net seems to only use TCP, and it seems to do no punch-through.
> It seems to forward connection information to others for "normal"
games,
> and to serve as an intermediary for "ladder" games (IIRC -- it's been
a
> while since I did Warcraft III).
>=20
I don't think that battle.net does not act as a full intermediary in
the general case for all ladder games. Ladder games make up some huge
percentage of the games played, and the bandwidth costs seem prohibitive
to me. I guess it would make your service highly resistant to packet
filtering attacks though. But after the fiasco that was the "waiting for
server" dialog box on Diablo 2 battle.net I would be surprised to see
them go for another centralised hosting strategy.
> X-box Live is different. I believe it implements everything (even TCP)
> on top of UDP, and in fact only ever uses a single port as far as the
> external network is concerned. Then, I believe it can and will do UDP
> NAT punch-through for the cases where it can, to save on service
> bandwidth, and it will forward through Microsoft Live service servers
> when you can't actually get from one point to the other.
>=20
Live does not act as an intermediary for any game traffic. It does act
as a broker to provide NAT punch-through when needed. The Live service
will also probe a client's NAT from the outside by querying with various
IP addresses and ports once the initial connection is established, in
order to determine what kind of NAT device a client is located behind.
This information is reported to the client and proves useful for games
(like ours) that can use knowledge about NAT type to affect the decision
for which machine should be the server for a game.
Also, to answer Jeff Roberts' question earlier, the Live client
libraries contain a UPnP implementation that they will use to configure
any NAT that they find on the local network.
--
Chris Butcher
Networking & Simulation Lead
Halo 2 | Bungie Studios
butcher@...