Les Forums

Les Forums

Les forums sont fermés. Ils restent présent pour consultation et archivage.
Vous pouvez désormais poser vos questions directement dans les commentaires en bas de chaque page du site.
Alors n'hésitez pas à participer

acquittement

Bonjour
je travaille sur un jeu fonctionnant sur un réseau switché 100mbits et qui utilise te protocole tcp/ip.
En fait lorsque le jeu atteint des phases ou les clients font bcp de requetes le serveur finit par se tuer. J'ai effectué des anlyses reso avec ethereal. J'avais une premiere piste avec notamment une abondance de checksums incorrects mais c'est apparemment normal selon l'aide en ligne d'ethereal.
D'autre part j'ai remarqué que des paquets étaient acquittés jusqu'a 60 trames plus loins. Je pense que cela doit encombrer le buffer qui ne se debarrasse des paquets qu'une fois acquittes.Comment et ou peut on parametrer la fenetre d'acquittement tcp et quels solutions verriez vous?
merci d'avance
> Bonjour

Salut

> je travaille sur un jeu fonctionnant sur un réseau
> switché 100mbits et qui utilise te protocole tcp/ip.

Cool

> En fait lorsque le jeu atteint des phases ou les
> clients font bcp de requetes le serveur finit par
> se tuer.

Se tuer c'est à dire ? crash, error, reboot ?

> J'ai effectué des anlyses reso avec ethereal.

Cool

> J'avais une premiere piste avec notamment une
> abondance de checksums incorrects mais c'est
> apparemment normal selon l'aide en ligne d'ethereal.

Non ce n'est pas normale. Peux tu me donner l'Url où il est relater qu'un bad checksum peux être concidéré comme normal ?

> D'autre part j'ai remarqué que des paquets étaient
> acquittés jusqu'a 60 trames plus loins.

Pourquoi pas. Le plus important serait au bout de combient de temps.

> Je pense que
> cela doit encombrer le buffer qui ne se debarrasse
> des paquets qu'une fois acquittes.

De quel buffer parles tu ? Carte réseau, Socket ?

> Comment et ou
> peut on parametrer la fenetre d'acquittement tcp
> et quels solutions verriez vous?

Quel Os ?

Es tu sur que ton jeu fonctionne sous Tcp et pas sous Udp ? C'est quoi comme jeu ?

@+

_SebF

[url]http://www.frameip.com[/url]
Un site pour les spécialistes IP
_SebF - Sébastien FONTAINE
salut,
Le serveur plante et on retourne au bureau directement
sur www.ethereal.com/lists/ethereal-users/200302/msg00230.html il est expliqué que si ethereal est installé sur un poste les trames sortant de celui-ci n'ont pas encore calculé de checksum avant d'etre lues par ethereal.
de plus il s'agit bien de tcp et non pas d'udp.
quand le jeu est lancé avec les 4 clients il y a 99.8% de tcp!!
le jeu est lancé sous win2000;
j'ai vu sur plein de sites qu'on peut parametrer la fenetre d'acq, mais comment le fait on reellemnt?
merci!
Tu peux modifier la Sliding Windows ici (si l'entrée n'existe pas, il te faudra la créer) :

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

"TcpWindowSize"=dword:

Valeurs possibles : 0 - 0xFFFF

taille maximal de la fenêtre de reception (multiple paire du MSS ici 380160). La fenêtre de réception indique le nombre

d'octets qu'un expéditeur peut transmettre sans recevoir d'accusé de réception.

Par défaut : La plus petite valeur de 0xFFFF
- OU -
(la plus grande valeur correspondant à quatre fois la taille maximum des données TCP sur le réseau
- OU -
8192 arrondi à un multiple pair de la taille des données TCP du réseau.)
La valeur par défaut pour Ethernet est égale à 8760.
Description : Ce paramètre permet de déterminer la taille maximum de la fenêtre de réception TCP allouée par le système. La fenêtre de réception indique le nombre d'octets qu'un expéditeur peut transmettre sans accusé de réception. En règle générale, les fenêtres de réception plus grandes augmentent les performances sur des réseaux à largeur de bandes élevée. Pour optimiser les performances, la fenêtre de réception doit être un multiple pair de la taille maximum d'un segment TCP (MSS).
_SebF - Sébastien FONTAINE
Merci mais je n'ai absolument pas trouvé HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
kaï!!
Je viens de vérifier sous un Win2000 et cela ce trouve bien là.

Suis les clés une à une et dis moi où est ce que tu bloque pour trouver TcpIp.

@+
_SebF - Sébastien FONTAINE
merci
j'ai trouvé la clé!j'ai fait des essais et sur une meme base de temps, si ma fenetre est au max j'ai un gain en trame assez enorme(sur 90 sec 10000paquets au lieu de 15000!)c'est interessant
a plus
ne tiens pas compte du message au dessus en fait y'a pas de difference!
connais tu ethereal?
y'a un parametre dans les trames qui s'appelle window size
il evolue de 62000 à 64500 environ
est ce que c'est la fenetre d'acquittement ou la febnetre de reception ou est la meme chose
si quand je change la tcpwindowsize dans le regedit et que ca ne change rien ca veut peut etre dire que le jeu possede sa propre valeur par defaut pour la fenetre?
Oui je connais Ethereal.

Oui il y a un champ qui s'appel "Windows size". Il fait partie de l'entête Tcp, tu trouveras sa définition ici :
[url]http://www.frameip.com/entetetcp/#5.8_-_Fenêtre[/url]
Et aussi dans la Rfc 793 (Tcp) :
[url]http://www.frameip.com/rfc/rfc793.php[/url]

Après avoir changé la valeur dans la registerie, as tu redémarré on interface réseau ?
_SebF - Sébastien FONTAINE
non
ca peut etre ca?
non ca peut etre ca?
Oui, car à mon avis, pour que la valeure (ou création de la variable) soit prise en compte, tu as besoin d'un redémarrage de l'interface.

Test et dis moi.
_SebF - Sébastien FONTAINE
Salut!
Voila ce que je fais:
je lance une session en tant qu'administrateur
je lance le jeu
je capture les trames tcp

j'effectue le tout trois fois dans les memes conditions sauf que je chage la tcpwindowsize: d'abord 0000 puis FFFF et enfin 2280(8760 en decimal)
a chaque fois je capture le meme nombre de trames alors que je devrais avoir une difference vu que je fais varier le nbre d'acquittements?
cela voudrait-il dire que c'est le jeu qui impose sa tcpwindowsize?
a plus
Salut lesny,

La valeur 0000 n'est peux être pas bonne! Essai autre chose pour voire.

Le jeu peux très bien imposer sa sliding windows en gérant les socket en mode Raw ou en passant par un driver spécifique. Mais je ne connais pas le nom de ton jeu ...

Sinon, fait des tests en téléchargeant via Ftp et regarde alors comment tu manipules les Ack.

Après, tu passeras à ton jeu.
_SebF - Sébastien FONTAINE
salut sebF
je ne comprends pas ce que tu veux que je fasse avec ftp...
Salut,

Je disais que tu devrais effectuer des téléchargement Ftp et de capturer le trafic correspondant afin de visualiser l'impacte de la valeur de ta Sliding Window.

@+
_SebF - Sébastien FONTAINE