Archives des forums MMO/MMORPG > Anarchy Online > AO - Le laboratoire de Mehar Izgimmer > Le prob des lags/crashs/decos de AO enfin trouvé...
Le prob des lags/crashs/decos de AO enfin trouvé...
Par jasba ven le 3/7/2001 Ã 3:20:00 (#477757)
I was playing around with some net-scanners and packet sniffers earlier this evening, and doing some general brushing up with some networking books I have. It wasn't until about 2 hours into this process that it hit me like a ton of bricks.
"Funcom is using TCP!"
Okay, follow me through a little technical mind trip here for a moment. ALL current MMORPG's on the market use UDP as their protocol of choice over TCP. Why? A few very critical differences. UDP can be layered and streamlined to exclude any un-needed information... while TCP always uses a large amount of overhead and can NOT be streamlined at all. UDP is not as critical about missed packets in a streaming segment of information... whereas TCP requires all packets to be acknowledged (or ACK'd) and retransmits packet-segments IN SEQUENCE so they arrive ACK'd at the destination in order.
All of these seem like minor differences over all, but they make a critical performance difference on the whole. There are tons of machines that can hold thousands of UDP connections active at once, even tens of thousands. It is however almost impossible for any machine to hold that many sequential TCP connections active at once.... a thousand MAYBE... but never more. OSI, Verant, and Turbine all realized this while constructing the infrastructure of their online games. If you use UDP, servers can hold a higher number of simultaneous connections going at once... and missed packets from a UDP segment do not affect performance on the whole. Use TCP, and the servers not only can NOT keep 30,000 to 50,000 simultaneous connections going at once... but if a TCP packet segment is MISSED, then that stream of data pauses and RETRANSMITS the information until acknowledged... then continues the segment transmitting.
Basically here is what is going on with the server cluster at Funcom: Some 5,000 to 10,000 people log on within a very short period of time. The server cluster starts dropping packet segments and has to wait for retransmits. Short lag spikes get created. Another 10,000 people log on and the server starts dropping MORE packet segments which in turn means more retransmits... which creates longer lag spikes. This whole process builds up until the server cluster is missing SO many packet segments that it cannot even ACK the retransmits. The retransmits don't get ACK'd, so they RE-re-transmit... don't get ACK'd... etc etc ad nauseum.
Bingo, instant self-inflicting Denial of Service Attack. The server is actually TCP packet storming itself TO DEATH. The more people that log on the worse and worse it gets. That is why there are certain parts of the day when less than 5,000 people are logged in and the game is EXTREMELY playable. When it comes down to it, the only possible solution for this is either RECODING the game engine entirely to use UDP (and it would mean almost starting over from SCRATCH). OR.... switch over to a larger number of server clusters linked to a large Login Handler Server Cluster.... which will still only postpone the inevitable. I went over the numbers in my head for a good few hours. I checked and double-checked my information. Honestly... it's not good. Even if the Exodus situation DOES improve and they get a stable router setup... then the raw NUMBER of players connected at any give time to the server cluster will STILL induce the SAME problem.
donc en gros, Funcom utilise un mauvais protocole pour le jeux, enfin bon je laisse les spécialistes éclairé notre lanterne :rolleyes: en esperant quils vont nous changer tout cas.
Par Gol le 3/7/2001 Ã 17:25:00 (#477758)
Si un paquet est paumé (ça arrive tout le temps en ce moment avec les déco de tous le monde) il va etre envoyé a nouveau X fois. Et va faire lager de plus en plus le serveur jusqu'a l'explosion (le reboot sauvage du serveur)
Pas d'autre solution que de tout recoder toute la chaine de communication client-serveur.
Par Jagerden le 4/7/2001 Ã 1:06:00 (#477759)
Par stefanos348 le 4/7/2001 Ã 1:25:00 (#477760)
Si non sa ce configure un routeur ...
Par Gol le 4/7/2001 Ã 8:12:00 (#477761)
Il y a un post sur le forum AO qui explique tout ça. C'est un ingenieur reseau qui l'a posté, il travaille en UDP uniquement pour des raisons de stabilité et vitesse. Un must a lire ;)
D'apres ce type, c'est effectivement une très grosse erreur d'avoir utilisé le protocole TCP.
Enfin ... je ne suis pas ingénieur réseau moi non plus ... mais ce qui m'inquiète c'est que Funcom ne reagisse pas du tout à ce sujet alors que sur tous les autres pbs ils postent rapidement :(
J'aipeur qu'il y ait vraiment une grosse erreur de conception.
Par THEKKEHT le 4/7/2001 Ã 9:32:00 (#477762)
Par Talima le 4/7/2001 Ã 10:41:00 (#477763)
http://community.anarchy-online.com/news/general/articles/131
Quand au sujet du TCP vs UDP, ils disent ceci :
The last thing is the discussion of TCP vs. UDP. Unfortunately I don't have time to browse the message boards - but I heard there are some questions about it. I'll answer some of those in a future update.
Donc peut-être une chance d'avoir bientot un avis officiel de leur part... du moins je l'espère car là impossible de rester ingame plus de 2min :mad: !
Talima.
Par Gol le 4/7/2001 Ã 10:51:00 (#477764)
Par contre UDP/TCP, ça a l'air de pas les inquieter outre mesure. J'espere qu'ils ont raison de ne pas s'en faire...
Par JhalArn le 4/7/2001 Ã 12:52:00 (#477765)
Par Gol le 4/7/2001 Ã 14:22:00 (#477766)
Débat lancé par JhalArn:
des mecs qui connaissent ni d'eve n'y d'adam
Orthographe : Des mecs qui connaissent ni d'eve ni d'adam.
Voila. La phrase est "correcte", mais n'a toujours pas de sens...
Tu voulais dire "des mecs qu'on connait ni d'eve ni d'adam" ? ou "des mecs qui n'y connaissent rien?" ou autre chose ?
Par jasba ven le 4/7/2001 Ã 14:23:00 (#477767)
reply pour JhalArn .
[ 04 juillet 2001: Message édité par : jasba ven ]
Par JhalArn le 4/7/2001 Ã 14:33:00 (#477768)
Moi je n'y connais pas beaucoup plus que vous sur le sujet. Mais, oui, ca me fait bien rire ce genre de thread, parce que tout le monde croit detenir la verité en 2 jours alors que les mecs de Funcom bossent quand meme depuis 4 ans dessus...
La seule chose qu'on peut faire, c'est constater que ca marche pas bien, ca oui...
Pour ma part, j'en suis, à mon deuxieme perso locké (ou perdu je ne sais pas), ca commence a me lasser.
(a Gol, amuse toi a critiquer le fond des choses plutot que la forme, tu verras... c'est mieux)
Par Gol le 4/7/2001 Ã 14:38:00 (#477769)
Par dark manticora le 4/7/2001 Ã 14:41:00 (#477770)
Le udp qd a lui, si un paquet est perdu il s'en fout (je sais j'explique avec mes propre termes :))
Donc ca limite les bouchons
Voila en gros ce que j'ai compris :))
D'autre part il parait d'apres eux que ce n'es po tros dure de passer dd'tcp al'udp, etant donné que ce n'es qu'un protocole.
Enfin pour terminer, je pense personnellement que funcom doit avoir ses raison qd au choix du mod tcp, donc laissons leur nous l'espliqué, etant donné que c'es eux qui on devellope le jeu :)
Ps: on m'as dit aussi que le mode tcp etait plus compatible avec leur objectif: 1 seul gros serveur, et egalement que pour limiter le lag, ils doivent mettre plusieurs autre serveur poour diviser encore plus les zones :))
Voila
Par Tealc le 4/7/2001 Ã 15:09:00 (#477771)
1. Il va falloir qu'ils augmentent en conséquence les moyens serveur
2. Il reprogramment le protocole.
Ce dernier je le sens pas du tout, en étant donné que le jeu est déjà sorti je les vois mal commencer à reprogrammer un log.
Le silence de FC sur ce sujet m'inquiète car TOUT LE MONDE s'est rendu compte que quand tu joues le matin ça va à peu près (peu de joueurs) mais le soir c même pas la peine.
Par dark manticora le 4/7/2001 Ã 15:55:00 (#477772)
Mais bon, ca fais 4 ans qu'ils devellopent le jeu, donc perso je pense pas qu'ils aient choisi un protocol au hazard, et qu'ils doivent avoir une bonne raison :)
Donc attendant patiement leurs explication :D
Par stefanos348 le 4/7/2001 Ã 23:18:00 (#477773)
L'inconvénient s'est que le routeur doit gérer TOUS les paquets. Et quand il en manque un il attend qu'il arrive pour faire suivre les autres. (ils sonts numérotés et gérés dans l'ordre chronologiques) Dans le cas AO immaginez vous 20 à 50 paquets/seconde PAR joueurs mutiplié par le nombre de relais entre sa machine et le serveur et sa vous donne le nombre de loss possible... Entre-temps il doit garder les paquets suivants en mémoire avant de pouvoire les envoyers, d'ou surcharge et pour finir plantage.
Bon je simplifie et tout n'est pas forcément exacte mais le principe est simple.
Par Jagerden le 4/7/2001 Ã 23:38:00 (#477774)
Mais j'ai vu l'autre probleme, qui meme si il n'y a aucun down, t'empeche de jouer longtemps.
Ca m'a fait penser a un ballon qui se remplit d'eau, sans s'arreter.... il gonfle, gonfle, et finit par exploser.
Au debut ça aller, puis, plus je jouais, plus le lag/ecran figer, s'intensifier.
A la fin, dans un paysage tout simple, ou normalement, c'est parfaitement jouable, comme au debut de ma partie.
C'etait aussi pire que Newland, ou autre lag-city...
Ca a fini par planter.
Voila...
Oui blabla c'est une release, c'est normal, EQ etait aussi pire, ect ...
Mais bon, a ce rythme, mon compte va vite se canceler.
Par jasba ven le 5/7/2001 Ã 0:16:00 (#477775)
Par Jagerden le 5/7/2001 Ã 7:46:00 (#477776)
Bon ça me "rassure"... je suis pas le seul.
Ca me donne parfois l'impression qu'il lance un defrag durant AO...
Par dark manticora le 5/7/2001 Ã 10:11:00 (#477777)
faudrait voire a ce qu'ils optimisent les codes du jeu aussi :))
Par dagoun le 6/7/2001 Ã 18:12:00 (#477778)
Par The ELD le 6/7/2001 Ã 19:09:00 (#477779)
Moi j'ai un soucis je joue a AO 5 mm et me fait bouger de mon FAI (aol)..........
Par dagoun le 6/7/2001 Ã 19:18:00 (#477780)
je parle meme pas de la facon dont y se foutent de ma gueule depuis le debut
resultas g l adsl dans 15 jours whaaaaa :)=
Par Glen Stryder le 7/7/2001 Ã 10:45:00 (#477781)
Par Dreadskulo le 8/7/2001 Ã 1:59:00 (#477782)
Exemple Everquest ....vous vous etes jamais retrouve avec votre Pet qui continue de marcher 500 m plus loin puis qui subitement se retrouve a votre position ????
Ben c est du au fait que le paquet envoye par UDP a ete perdu et que vous etes resynchronise au serveur genre 10 secondes plus tard .....est ce grave que votre position a ete perdue pendant 10 secondes ??? NON surtout que ca evite de faire chier le serveur a vous attendre et donc de buter tout l ensemble ....Ce que fait TCP ..........puisque de bout en bout ca demande une validation ....validation avant d envoyer le paquet pendant et apres ......si une seule de ces validations foire t es bon pour recommencer la procedure .....pour un jeu a la quake qui se joue a 20 pelerins ca va ........mais pas la ....
Franchement en tant que programmeur le fait d utiliser TCP pour un jeu qui est cense faire tenir 100 000 personnes sur UN serveur ca me fait rire ......JAUNE ........ben Funcom y sont pas pres de voir mes sous ......
Par Katha le 8/7/2001 Ã 4:13:00 (#477783)
Enfin... Funcom est une société qui travaille dessus depuis 4 ans, et ils ne sont pas complètement attardés, et tt aussi qualifiés que d autes... Si c TCP il y a une raison, attendons la justification.
Sinon le HD qui tourne comme un defrag vient pour la plupart de problèmes de textures/données qui se chargent dans la mem virtuelle et plus dans la RAM (mm sous Win2k, avec 512 de RAM, AO accumule, accumule, et on se retrouve avec un prog qui tourne avec plus de 800 megs alloués (en pic) . Donc y a deux solutions:
- soit vous prenez plus de RAM (ne fait que repousser le prob plus loin, la mem va finir par se remplir)
- soit on log, on reboot (sous winme c fortement conseillé, ss win2k c plus gerable - on tue les processus un par un). Puis on évite les zones à fortes textures (villes comme Athen, avec en plus environ 500+ PCs, c terrible). Un bon moyen sinon, zoner dans la ville, logger, puis revenir tt de suite. Generalment, le HD commence pas à saturer avant bien 10 15 min (chez moi en tt cas).
C tt ce que je pense pour l instant...
Cya later!
JOL Archives 1.0.1
@ JOL / JeuxOnLine