MysterGui Posté(e) le 28 mars 2007 Partager Posté(e) le 28 mars 2007 Salut à tous, J'utilise Wireshark (ex-Ethereal comme beaucoup l'appelle) depuis longtemps et depuis peu j'ai remarquer que lorsque je capture les paquets de ma carte réseau (ethernet), dans le sens mon PC ==> serveur ça me donne une erreur "TCP Checksum Incorrect" et quand je déroule la liste j'obtient par exemple "Checksum: 0x1e6a [incorrect, should be 0x351f (maybe caused by checksum offloading?)]" avec un code différent à chaque fois évidement. Par contre dans le sens serveur ==> mon PC la aucun soucis. Vu que je n'avais pas remarquer ça avant, je pense que ça doit etre du à mon routeur présent depuis pas longtemps (avant je n'avais qu'un simple modem ethernet). Je pense plus particulièrement a la NAT qui me semble etre un bon coupable. J'ai évidement essayer sur d'autres serveur, toujours le même problème. Comme je n'ai plus de modem ethernet, je m'adresse à vous pour : 1) connaître l'origine du problème 2) empêcher ce problème ou le contourner ... Merci d'avance @ + PS : Une chtite capture pour bien comprendre : http://img387.imageshack us/img387/5637/wiresharkxj9.jpg PS2 (urf urf) : j'ai deja effectuer une recherche google mais j'obtient que des résultats in english et l'anglais n'est vraiment pas ma tasse de thé Lien vers le commentaire Partager sur d’autres sites More sharing options...
gougou59 Posté(e) le 28 mars 2007 Partager Posté(e) le 28 mars 2007 Ne t'inquietes pas, il n'y a en fait pas d'erreur dans tes trames En fait, ce problème est dû au "TCP offload engine" qui permet de décharger le CPU de ton PC en sous-traitant certains calculs (donc le checksum) à la carte réseau. Ainsi, la trame envoyée par l'OS (celle captée par wireshark) ne contient pas de checksum et est donc différente de celle envoyée par la carte réseau!!! Ou quelque chose de proche (je ne connais pas exactement le mécanisme d'analyse...). Tu peux essayer de désactiver la fonctionnalité TCP Offload Engine (TOE) de ta carte réseau (dans les options de celle-ci) et tu verras, il devrait y avoir beaucoup moins d'erreurs dans l'analyse (mais plus de charge CPU) ou alors en désactivant dans Wireshark la vérification de checksum... Quelques infos sur le checksum et wireshark là mais c'est en anglais aussi Note! Checksum offloading often causes confusion as the network packets to be transmitted are handed over to Wireshark before the checksums are actually calculated. Wireshark gets these "empty" checksums and displays them as invalid, even though the packets will contain valid checksums when they leave the network hardware later. Je suis pas clair hein Lien vers le commentaire Partager sur d’autres sites More sharing options...
MysterGui Posté(e) le 28 mars 2007 Auteur Partager Posté(e) le 28 mars 2007 Merci pour l'expliquation Si je n'avais pas essayer, je t'aurait dit que ce n'est pas logique et que ça devrais être dans le sens serveur vers PC que ça devrait merdouillait mais on dirais que ma logique est dépassée ... J'indique la procédure pour les anglophobe : Allez dans le gestionnaire de périphériques ==> deroulé la liste des cartes reseau ==> clique droit sur votre carte reseau puis proprietes ==> onglet avancé. Cliquez sur les valeurs que je donne ci dessus et donner leur la valeur que je leur donne : DechargeEnvoiImportant (IPv4) = Desactivée DechargTotal de control IPv4 = Desactivée DechargTotal de control TCP (IPv4) = Desactivée DechargTotal de control UDP (IPv4) = Desactivé Valider par OK. Le gestionnaire de périphériques va clignoter plusieurs fois, laisser faire. Ensuite démarrer Wireshark et ho surprise plus de TCP Checksum Incorrect. Mais puisque gougou59 nous dit que la fonctionnalité TOE aide le CPU (même si sur les betes d'aujourd'hui ça doit plus servir à grand chose), autant en profiter et donc réactiver ces fonctions. Voila les valeurs d'origine pour ceux qui ne les aurait pas noter : DechargeEnvoiImportant (IPv4) = Activée DechargTotal de control IPv4 = Tx et Rx Activée DechargTotal de control TCP (IPv4) = Tx et Rx Activée DechargTotal de control UDP (IPv4) = Tx et Rx Activée Et désactiver plutot le control du checksum par Wireshark. Menu Edit, Preferences, Protocols, TCP et decocher "Validate the TCP Checksum is possible". Valider et lancer une nouvelle capture et ENJOY ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
gougou59 Posté(e) le 28 mars 2007 Partager Posté(e) le 28 mars 2007 Merci pour l'expliquation Si je n'avais pas essayer, je t'aurait dit que ce n'est pas logique et que ça devrais être dans le sens serveur vers PC que ça devrait merdouillait mais on dirais que ma logique est dépassée ... bah en fait, les trames envoyées par l'OS sont envoyées sans checksum donc Wireshark s'emmele les pinceaux et détecte un problème... (Le checksum étant ajouté par la carte réseau et donc non capté par wireshark) Mais puisque gougou59 nous dit que la fonctionnalité TOE aide le CPU (même si sur les betes d'aujourd'hui ça doit plus servir à grand chose), autant en profiter Oui sur nos petites machines (et donc des débits relativement bas en général), ce n'est pas très utile. Mais cette fonction prend toute sa puissance sur des carte Gbps ou sur des équipements réseau ayant des dizaines d'interface réseau et brassant de giga à la seconde Merci pour les procédures en tous cas Lien vers le commentaire Partager sur d’autres sites More sharing options...
MysterGui Posté(e) le 28 mars 2007 Auteur Partager Posté(e) le 28 mars 2007 Merci pour l'expliquation Si je n'avais pas essayer, je t'aurait dit que ce n'est pas logique et que ça devrais être dans le sens serveur vers PC que ça devrait merdouillait mais on dirais que ma logique est dépassée ... bah en fait, les trames envoyées par l'OS sont envoyées sans checksum donc Wireshark s'emmele les pinceaux et détecte un problème... (Le checksum étant ajouté par la carte réseau et donc non capté par wireshark) C'est justement la que ma logique est dépassée : Si on dit que Wireshark capte en un point NC, la ou il ya pas de checksum puisqu'on est au niveau OS puis le checksum est ajouter en un point AC ... Mais comment Wireshark sait que le checksum est incorrect puisque celui ci à etait ajouter au point AC, soit apres la capture des paquets ... A moins que le checksum soit aussi dans la reponse ... et la c'est pas logique car a l'arrivé, la carte reseau vire le checksum et donc Wireshark retrouve les paquets sans checksum comme il les a capturés au depart et donc il devrait pas afficher d'erreur ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
gougou59 Posté(e) le 29 mars 2007 Partager Posté(e) le 29 mars 2007 A l'émission : Wireshark attend une trame avec un checksum car dans le format standard des trames, il y en a un. Donc pour lui, il y a un problème... En fait, il dit que c'est incorrect parce qu'il y en a pas (je sais pas exactement comment est formée la trame en sortie de l'OS : checksum à 0, checksum aléatoire ou pas de checksum du tout...) A la réception (réponse) : il n'y a aucun problème car le checksum n'est pas supprimé par la carte réseau (elle fait que le vérifier) donc le checksum reçu et le même que celui recalculé par wireshark. Donc ca roule Lien vers le commentaire Partager sur d’autres sites More sharing options...
MysterGui Posté(e) le 29 mars 2007 Auteur Partager Posté(e) le 29 mars 2007 Ok, ça y est j'ai piger ^^ Merci beaucoup Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.