Avast ralenti winsock ?

jfougeron Messages postés 19 Date d'inscription dimanche 8 avril 2007 Statut Membre Dernière intervention 25 avril 2013 - 1 déc. 2011 à 11:52
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 1 déc. 2011 à 17:16
Bonjour,
J'ai un prog en VB6, utilisant Winsock.ocx, qui "discute" avec un serveur web développé autour d'un µC de Microchip
Toutes les 2s, le prog lance un "GET" au serveur qui lui répond en envoyant un fichier en HTML. Le prog traite alors ce fichier
Cela marche très bien sauf ... quand Avast s'en mèle
Le défaut se manifeste par le ralentissement (considérable : au lieu de recevoir la réponse en quasi temps réel, winsock la reçois au bout de 10 à 15s, alors que le serveur, lui, répond en quasi temps réel, vérifié par Wireshark)
Cela le fait sur les postes équipés de Avast 6 (6.0.1289 et 6.0.1367)
cela semble ne pas le faire sur les postes équipés de versions antérieures : 5 (5.0.677 et 5.0.507) et 4 (4.8.1201)
Cela ne le fait pas sur un poste équipé d'Antivir 10.2.0.151
Connaîssez-vous quelqu'un qui sache comment m'orienter pour comprendre et traiter le Pbm
Merci beaucoup, car c'est très génant quand on est avec les clients

5 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
1 déc. 2011 à 12:21
voir a configurer Avast pour que ton microcontrolleur soit dans sa "trust zone"

tente de passer par les API winsock et non par Winsock.ocx
utilisera les API v2, qui sont surement plus efficaces
voir http://www.vbfrance.com/codes/CSOCKET-REMPLACEZ-WINSOCK-VERSION-API_51026.aspx


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
jfougeron Messages postés 19 Date d'inscription dimanche 8 avril 2007 Statut Membre Dernière intervention 25 avril 2013
1 déc. 2011 à 12:31
Merci d'avoir répondu aussi vite
Tu dis ça parce que tu pense que winsock et Avast sont ... de mêche pour m'emm...der ?
Qu'est-ce qui me dit qu'avec Csocket ce ne sera pas pareil. J'imagine que le surtemps s'écoule AVANT que winsock ait eu "connaissance" de l'arrivée du fichier. Avast 6 doit le bloquer quelque part et ne le libérer que tardivement.
Tu ne crois pas ?
Mais enfin, je vais essayer de faire tourner Csocket tout de même, c'est intéressant
merci encore
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
1 déc. 2011 à 13:31
Salut

Si j'ai bien compris le fonctionnement des antivirus (AV), ils scannent les échanges en prenant la main sur le port 80 (dans ton cas) et redonne les données 8080.
Un AV ralentit les échanges puisqu'il doit faire l'analyse des données et repérer les éventuelles suites d'octets pouvant ressembler à celles d'un virus (...).
Ce ralentissement dépend des capacités de ta machine et ne change pas la vitesse de transmission des données, juste un éventuel petit décalage.

"Toutes les 2s, le prog lance un "GET" au serveur"
C'est chaud ça, à la limite du temps de réponse.
Mieux vaudrait attendre la réponse de la première requète avant de lancer une tempo de 2 sec pour faire la requète suivante.

Quelle méthode utilises-tu pour récupérer tes données ?
Uniquement le DataArrivals ?
Oui : Ajoute un espion dans cette sub pour afficher les heures d'arrivée des paquets - si les données arrivent en plusieurs paquets, il se peut que ce soit le dernier paquet (de taille faible) qui arrive tardivement. Dans ce cas, oui, l'AV serait à incriminer et il faudrait trouver dans l'AV un paramètre de réglage de TimeOut ou de taille de buffer en dessous duquel il n'envoie pas les données et attend un TimeOut.
Non : Quelle méthode ? Timer qui va forcer la lecture du buffer ? - pas top

Avaast n'est pas le top en matière de protection, techniquement parlant.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
jfougeron Messages postés 19 Date d'inscription dimanche 8 avril 2007 Statut Membre Dernière intervention 25 avril 2013
1 déc. 2011 à 15:54
Merci Jack
Donc Avast traite le flux avant que mon winsock ne le voie, si je comprend bien. Ca explique la différence de comportement avec ou sans Avast. mais pourquoi Avast V6 est-il si long pour ce GET, et pas pour google.com ou autre ?

Concernant les remarques sur le prog, bien sûr j'ai un chien de garde, et aussi je ne relance un GET que lorsque j'ai eu une réponse entière, car, oui, la réponse peut arriver en plusieurs paquets que je reconstitue. mais avec Avast, le premier paquet n'arrive pas. en fait c'est rare qu'il arrive en plusieurs paquets car c'est un réseau privé pas très chargé, il y a deux ou trois machines qui discutent de tps en tps (2s c'est long)
Tu as l'oeil !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
1 déc. 2011 à 17:16
Ah, réseau privé. Désolé, j'avais lu ta question initiale un peu vite.
Oui, donc là, 2 sec, c'est long.

Question : Quand tu fais tes essais avec/sans AV, stoppes-tu puis relances-tu ton programme ?
C'est important car l'AV capture le port et les connexions précédent le lancement de l'AV risque de ne plus être valides.
Donc, bien relancer le programme (et sa connexion) après avec mis en service l'AV.

Je ne saurais m'aventurer dans le détail technique de ces logiciels; ce que je t'ai dit là n'est que l'image que je m'en fait; il faudrait approfondir sur des forums plus "techniques de comm" qui parleraient de "proxy".
0