Breaking Down the Demigod Launch
In addition to the piracy troubles that plagued Demigod's launch (and partly exacerbated by them), Stardock and Gas Powered Games ran into severe networking issues that hampered their ability to accommodate players with a legitimately purchased copy of the game. Brad Wardell has now posted a frank, detailed explanation of what happened and how they dealt with it. Quoting:
"Demigod's connectivity problems have basically boiled down to 1 bad design decision and 1 architectural limitation. The bad design decision was made in December of 2008 when it was decided to have the network library hand off sockets to Demigod proper. In most games, the connection between players is handled purely by one source. ... So in Demigod, on launch day, Alice would host a game. Tom would be connected to Alice by the network library and then that socket would be handed to Demigod. Then, Alice and Tom would open a new socket to listen for more players to join in. As a result, a user might end up using a half dozen ports and sockets which some routers didn't like and it just made things incredibly complex to connect people and put a lot of strain on the servers to manage all those connections.
Yes, this probably could have been handled better, but many home NAT boxes are so broken that they ought to be recalled. I'm actually a bit surprised that there's not a WRT54GL equivalent with well-behaved 2.6 wireless drivers that ships with an open-source configuration interface; it seems that it'd be cheaper than constantly reinventing the wheel.
I am pretty sure the peer to peer nature of torrents, that require connections to multiple people to get good speed, makes multiple sockets mandatory.
Troll is not a replacement for I disagree.
Who would have thought that routers might not allow for large numbers of listening sockets on its client machines?
You know, my real feeling is why is this on Slashdot, when these devs apparently didn't consider these obvious questions. Do they even have a QA department?
expandfairuse.org
BitTorrent has similar issues. You'd have thought they'd realise that multiple sockets = fail for most home network equipment.
What are you talking about? AFAIK my torrent client uses one port only. And as with any P2P protocol, the only issue is to allow/enable/kicktherouterinto incoming connections. And if Grandpa can't set up NAT, he's not going to be a full member of the herd, and there's nothing we can do about it.
How did they not perform any simulations or trial runs with players connecting out over the internet in order to stress test this? If they did, how could their testing not notice that routers in general don't like large numbers of listening sockets on it's clients? This is a serious amateur mistake.
I've done just that. Passthru of BT port to my PC, and it still shits itself with any more than about 20 peers.
I eventually manually limited BT to 10 peers total, which essentially made it pointless to use. All because my router couldn't handle the packet load.
Note that downloading ISOs using a multi-part download resuming app to saturate my downtream from one source does not cause this issue. It's P2P-specific.
Finally had enough. Come see us over at https://soylentnews.org/
Note that downloading ISOs using a multi-part download resuming app to saturate my downtream from one source does not cause this issue. It's P2P-specific.
Well, that's kinda the whole purpose of P2P, isn't it? Don't blame the protocol for your dodgy hardware.
ipv6 would avoid nat errors :)
So what IS good DSL hardware, then? I've had the problem with both privately acquired hardware and trhe standard router issued by my provider.
Why listening on multiple ports?
Listening on a single port works just fine. All Bittorrent applications I ever used only required one port to be forwarded.
I think he's mistakenly referring to the router lockup that can be common if you allow your client to open too many connections. Some home routing equipment wont release old connections quickly enough, so a bittorrent client opening a few hundred an hour can cause them to become unresponsive.
If sharing a song makes you a pirate, what do I have to share to be a ninja?
Shit hardware exists. You can't necessarily patch it or fix it but you can replace it.
That said, I've never paid more than about £20 for a router, even back in the dark days of early broadband. My last one was an "eTec" (rebranded Conexant-something-or-other) and the one before that was a Trust (rebranded Conexant-something-or-other). They were the cheapest routers I could find and my purchasing decision for both went:
1) Does it do 8Mb?
2) Does it have >1 Ethernet connection?
Bearing in mind that I'm extremely pedantic about every specification of anything I buy, they are *ALWAYS* my most lacklustre purchase. I've *never* had a problem with them (except once when I enabled PPP Half-bridging and couldn't turn the bugger off, requiring a firmware re-download). One of them has been running constantly for at least the last few years, the other has been switched on and off every night for even more years, and I have another (an Amigo AMX rebranded-Conexant...) that has been waiting as a "hot-spare" all that time and never been used.
The school I do network admin for also has the cheapest, crappiest ADSL router running their entire business Internet connection (with appropriate firewalling and port-forwards done to intermediate machines before the "serious" network) and they haven't had a problem with it ever.
Don't take the crap that comes with the package deals, because it probably costs BT about £5 per unit. Instead, pop down to Maplin's or any store and just buy their cheapest ADSL/Ethernet router and get on with life. If you have a router that can't handle some connections, it is *seriously* crap. Just bin it. I never spend money on anything, but for £20, it's just not worth fighting with and *everyone* I know has a router that can do just about anything you ask of it nowadays. Similarly, ADSL "modems" are a waste of space. Get a router or nothing.
Never had any performance related issues, even on the 24Mbps I had back in Sweden. The homebrew debian firewall can be replaced with m0n0wall, pf sense or similar if you prefer web based administration.
I found a fast warez site: http://warez.it.kth.se
1) It's not worth keeping logs, certainly not for diagnosis, if they aren't synch'ed between servers when you're doing anything which relies on >1 server. If you have a client which will only ever choose ONE server and do all it's actions through that server, you can use the logs unsynch'd. Otherwise, they MUST be synch'ed. It's not hard to work this out.
2) Timesyncing costs *nothing* in practical terms. It doesn't even have to be to the Internet/UTC, so long as they are all synch'ed to each other.
3) Not spotting a *30-60 second* lag in a server response is pretty hideous for people who wrote the code. You don't have to have written the network library to spot this.
4) Using this as an excuse to put off demos, etc. is baloney. The people RUNNING the server and investigating the code behind the running servers should not be the same people as those who are creating new content, features, demos, etc. If they are, either it should be a strict seperation of time or you're understaffed.
5) Plus, DEMO COMES FIRST. I have no reason to try games any more unless they come with a nice demo. Steam is a god-send here... if you don't have a demo of a game on it, I won't bother to download several Gigabytes, waste my diskspace/bandwidth to play it because I *know* I can't get a refund if it's shit. I spent AGES looking for a demo of the second Tom Clancy Las Vegas thing and gave up in the end. Don't want it at all now, but I was going to buy it if the demo had been even half-decent.
It needs that one port so it can hear requests, then it coordinates with the other peer to setup a new connection, and since the port requests comes from an internal source you don't need to forward ports.
IRC.
You mad
It's not the "packet load" causing your problem. I've yet to see a router that can't handle enough packets to saturate any home internet connection you are likely to get. What causes the problem is the number of TCP connections. When bittorrent connects to a peer, it establishes a TCP connection. When your router does NAT (well technically PAT) it dynamically assigns outbound connections a port number. When the computer at the other end sends information as part of that established connection it sends the data to that port number. The router has to store a table of all TCP connections, the port number they are using, and the internal address to send the traffic too. Normal web traffic might at most create a few hundred of these connections. Bittorrent can create thousands. Furthermore, peers tend to just disappear rather then end cleanly, so the entry stays there until a timeout is reached to remove it. Most consumer routers have timeouts that are around 300-420 seconds long. If your router gives you the option (most shitty consumer models don't) you can lower it, to clear out dead connections faster and improve performance. The best option is normally to upgrade your router to one that has plenty of ram and can run an open build like dd-wrt, that lets you tweak the max number of connections and the timeout.
Yes, ip_conntrack_max is what I have to tweak on my router to eliminate that problem. It probably applies to many BusyBox-based routers.
I have to telnet in as root, and:
echo 5120 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
It dies pretty quickly with the default value of 512.
GameRanger - multiplayer gaming service for PC and Mac games
Play it online using GameRanger and it's nearly flawless. From the Demigod Downloads page:
If you are having issues playing Demigod online, try downloading GameRanger. GameRanger is a free download that lets you play games and demos online with friends and opponents worldwide.
GameRanger - multiplayer gaming service for PC and Mac games
"The public beta could EASILY have been their test-bed for the system while they were still building it."
There, I fixed it for you.
Debian = not home user
Cisco Aironet 1200 (first Cisco AP I found): £60 = not home user (Router + AP + cordless phone = free on BT broadband + phone tarrifs)
Netgear Gigabit Switch = not home user
Tell me again how this helps me get BitTorrent to not crash my consumer networking gear. Please read the question.
Finally had enough. Come see us over at https://soylentnews.org/
BusyBox? /proc/sys?
telnet in as root?
echo 5120
Does that all mean that I can't use BitTorrent without purchasing more hardware? You can guess why home users don't seed, can't you.
Finally had enough. Come see us over at https://soylentnews.org/
This problem is just more apparent in some games.
Any valve game with a server browser crashed my stock AT&T Speedstream modem. When I complained to AT&T they stated that it was actually a known issue, and they were willing to sell me a 'high performance' modem for 90 bucks. I went to the local Best Buy and bought a $30 Motorola modem and never had the problem again.
(The AT&T rep seemed convinced that I was really just a heavy torrenter.)
I know, beating a dead horse here. . .
The idea of P2P connections between members of a multiplayer game seems like pretty much a no-brainer, but because of NAT, it's a total P.I.T.A. Everyone likes to say, "We don't need IPv6, just use NAT". But, NAT makes lots of things more complicated (like needing to setup port-forwarding to accept in-bound connections, or using a third-party server that isn't behind a NAT that everyone makes an outbound connection to). Plus, port forwarding sucks because only one computer per network can have any given port forwarded to it (that is, you *CAN* forward different ports to different computers, say have port 5000 forwarded to 192.168.1.10, and have port 5001 forwarded to 192.168.1.11, but you can't forward port 5000 to both computers - but if they each had their own unique, public IP, they can both receive traffic on the same port).
I long for an IPv6 world where NAT is basically a thing of the past (and for those who say NAT is good for security, there's no reason you can't still have firewalls built into routers).
Ok, we get it. You're a home user, and you want a free fix that doesn't cost anything.
Might I suggest you look up the acronym TANSTAAFL? You can get "non-consumer" equipment on ebay for cheap... just not for free. In addition, what are your measured upstream/downstream rates for your internet connection?
Don't tell me to get a life. I'm a gamer; I have LOTS of lives!
Its not worth the attention, hell it doesnt even feel like a full game. The charcters are so not balanced, if im a giant walking castle i should be able to take a hell of alot of damage, not die in under a min. of combat. Also never mind that there were like fewer then 10 maps for it, granted they looked cool but still. Add that to the fact that their was no story to it and this game is just a flop. We bought it, we got suckered, move on...
It's usually the number of connections that kill a router when using p2p. A lot of low grade home routers can only handle 64 connections especially if you're using wifi.
Look at the number of connections allowed per torrent (uploading and downloading). Also take into account if you've altered your browser for more connections.
A multi-part dowload app has a lot less connections compared to a p2p app.
First, get a DSL modem that isn't a NAT gateway. As a general rule, embedded consumer hardware isn't very good and will lock up randomly under load. Find a DSL modem that acts as a transparent network bridge so that all it has to do is pass unmodified packets back and forth. Sorting through all those connection states with its limited CPU is going to kill it.
Next, find a small/old PC for cheap and install one of the many router distribution on it. I use pfSense because it comes with QoS so that I can drop P2P to the lowest priority so that it has little effect on the rest of the network. I've been using this for a year and I've never had it lock up or slow down under load. It also comes with little bandwidth charts that showed we typically transfer around 500GB/month.
I personally use a Dell Optiplex GX50 small form factor that a friend had sitting unused on a shelf for years. It idles at about 35W and goes up to about 50W while passing 16Mbps of prioritized traffic. It could easily handle twice that, and I could use a compact flash card instead of a harddrive to reduce the power more. Looking on ebay, I see one going for $1 right now.
Oh, and for wireless just use whatever. You could drop a wireless NIC into the router, or use an access point. I use my $150 wireless N gaming router that locked up all the time with DHCP turned off (I originally bought it to replace another high end router that was always locking up). It works fine if it just needs to act as a switch.
See my reply here:
http://games.slashdot.org/comments.pl?sid=1238997&cid=28028381
Sure you have to install an OS, but it's a pretty simple installer. Once you've set with network card is which, and an IP address, it's all web based configurations. I'd just use whatever wireless gear you happen to have, or buy something for cheap. Gigabit switches are overkill, unless you transfer large files over your local network. I bought a consumer 5 port gigabit switch from Fry's for $20, so it's not exactly the end of the world.
The most important thing is not to use a DSL modem that does NAT. You want a transparent bridge that can pass all of the packets quickly without having to do any processing power. You want the NAT translation and connection states moved to the PC/router that can easily handle it without locking up.
Two things: There was little stress testing because GPG has a byzantine Internet policy, and forbids its workers from using anything but the Web at work. No holes were poked for them to test online.
Second, Scott Kevill's GameRanger quickly pulled the slack in for Demigod, and supported the game online just two days after launch. As I write this, there are around 100 people playing Demigod on GameRanger right now.
http://www.gameranger.com/
Don't Crease the Weasel!
Been using BitTorrent, BitComet, Azureus, OneSwarm for at least 10 yrs now and never had this problem. I have a standard cable modem running thru a linksys modem the entire time....never had any problems and I connect to more than 500 at a time...what OS are u running and what are your system specs?
Some people never learn...no matter how many times something happens to them.
I think that's a bit overboard, I've used both a Netgear and Linksys wireless router for my ADSL2+ and I've not had any issues using BT. Hell, I even use my NAS as the BT client now and it works great.
I'd say that the issues with the GGPs BT is more that he/she has a craptacular ADSL router or that its QoS is turned on but isn't configured correctly. Either way, there are solutions to the issues and they don't require building an expensive network.
Was xp pro 64bit, Q6600 processor, 4GB RAM, 1.5TB HDD, 8800GTX graphics.
Not tried with Win7, though.
Finally had enough. Come see us over at https://soylentnews.org/