Je parcourais le manuel Apache httpd en ligne et suis tombé sur une directive pour l'activer. Trouvé une description dans la page de manuel pour tcp
:
TCP_DEFER_ACCEPT (since Linux 2.4)
Allow a listener to be awakened only when data arrives on the
socket. Takes an integer value (seconds), this can bound the
maximum number of attempts TCP will make to complete the
connection. This option should not be used in code intended
to be portable.
J'ai ensuite trouvé cet article, mais je ne sais toujours pas à quel type de charges de travail cela serait utile. Je suppose que si httpd
a une option spécifiquement pour cela, elle doit avoir une certaine pertinence pour les serveurs Web. Je suppose également que c'est une option et pas seulement comment httpd
les connexions réseau fonctionnent, qu'il existe des cas d'utilisation où vous le souhaitez et d'autres où vous ne le souhaitez pas.
Même après avoir lu l'article, je ne sais pas quel serait l'avantage d'attendre la prise de contact à trois. Il semblerait avantageux de s'assurer qu'il n'aura pas besoin de permuter l' httpd
instance concernée en le faisant pendant que la prise de contact est toujours en cours au lieu de potentiellement provoquer ce retard après l'établissement d'une connexion.
Pour l'article, il me semble également que quel que soit le TCP_DEFER_ACCEPT
statut d'une socket, vous aurez toujours besoin de quatre paquets (poignée de main puis données dans chaque cas). Je ne sais pas comment ils obtiennent le compte à trois, ni comment cela fournit une amélioration significative.
Ma question est donc la suivante: s'agit-il simplement d'une ancienne option obsolète ou existe-t-il un cas d'utilisation réel pour cette option?