Comment désactiver / réduire le délai d’attente des fenêtres sur les fenêtres

J’ai ac # sdk qui doit utiliser TcpClient, mais la connexion utilise 200 ms comme délai d’attente, mais mon serveur retransmettra les données en 100 ms. Chaque fois que le serveur enverra des données TCP, il effectuera une retransmission.

Y a-t-il une idée pour réduire le délai? comme le réduire à 40ms?

Je sais qu’il est possible de désactiver le délai sur Linux en définissant TCP_QUICKACK, mais y a-t-il un moyen de désactiver le délai ou de réduire le temps sur Windows?

Je vois qu’il y a une entrée de registre sur Windows qui peut réduire le délai, mais elle est définie pour l’interface réseau, je veux juste définir pour mon programme, et n’affecte pas les autres programmes.

J’ai aussi essayé l’option NO_DELAY, mais cette option semble fonctionner pour Nagle, pas pour retarder la fonction, donc elle ne fonctionne pas pour moi.

Ok, je dois faire une mise à jour pour être sûr de connaître ma situation.

Je comprends que delay ack est utile pour réduire le nombre de paquets TCP lorsque vous recevez beaucoup de petits paquets sur une connexion.

Mais dans mon cas, les choses sont différentes, j’ai beaucoup de connexions, elles peuvent simplement ne rien faire, juste accrocher sur mon serveur et attendre le message du serveur. Pour vous assurer que la connexion est active, le client envoie un package ping au serveur toutes les 30 secondes (par exemple) et le serveur répondra à un pong. Et puis le client ne fera rien.

Donc, dans mon cas, la réponse pong, qui est envoyée depuis le serveur, n’est pas prise en compte à 100 ms car Windows attend par défaut 200 ms, puis mon serveur pense que le paquet est perdu, une retransmission est envoyée.

Donc, le délai d’attente ne réduit pas le nombre de paquets, le nombre de paquets augmente.