Définissez TCP_QUICKACK et TCP_NODELAY
Si vous définissez la TCP_QUICKACK paramètre sur tous les appels sur le socket, en ayant préalablement défini TCP_NODELAY, le QUICKACK option remplacer les NODELAY appel?
Sur connect:
int i = 1;
setsockopt( iSock, IPPROTO_TCP, TCP_NODELAY, (void *)&i, sizeof(i));
Sur chaque écriture:
int i = 1;
setsockopt( iSock, IPPROTO_TCP, TCP_QUICKACK, (void *)&i, sizeof(i));
L'appel à TCP_QUICKACK nulle de l'appel précédent de TCP_NODELAY?
source d'informationauteur donalmg
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de relation directe entre ces deux options, ils sont juste à des fins différentes.
TCP_NODELAY est destiné à activer/désactiver le segment de mise en mémoire tampon de sorte que les données peuvent être transmises à des pairs aussi rapidement que possible, de sorte que ce qui est généralement utilisé pour améliorer l'utilisation du réseau. TCP_QUICKACK est utilisé pour envoyer des accusés de réception dès que possible de la retarder dans certains de niveau de protocole d'échange, et il n'est pas stable, permanent, à la suite TCP transactions (ce qui peut se produire sous le capot) pouvez ignorer cette option dépendant de niveau de protocole de traitement ou de toute réels désaccords entre l'utilisateur réglage de la pile et de comportement.
NOTE
TCP_NODELAY
est portable, tandis queTCP_QUICKACK
n'est pas (ne fonctionne que sous Linux 2.4.4+).Utilisation TCP_QUICKACK, pas TCP_NODELAY
https://news.ycombinator.com/item?id=10608356
TCP_QUICKACK et TCP_NODELAY touche les différentes opérations dans le protocole TCP. Le tcp(7) page de manuel décrit les options de socket TCP qui interfèrent les uns avec les autres, par exemple TCP_CORK et TCP_NODELAY.