Ich habe das Apache-httpd-Handbuch online durchgesehen und bin auf eine Richtlinie gestoßen, die dies ermöglicht. Eine Beschreibung in der Manpage gefunden für 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.
Dann habe ich diesen Artikel gefunden, aber mir ist immer noch unklar, für welche Art von Workloads dies nützlich wäre. Ich gehe davon aus, dass httpd
eine Option, die speziell dafür vorgesehen ist, für Webserver relevant sein muss. Ich gehe auch davon aus, dass dies eine Option ist und nicht nur, wie httpd
Netzwerkverbindungen funktionieren , sondern dass es Anwendungsfälle gibt, in denen Sie dies wünschen, und andere, in denen dies nicht der Fall ist.
Selbst nach dem Lesen des Artikels ist mir nicht klar, welchen Vorteil es haben würde, auf den Abschluss des Drei-Wege-Handshakes zu warten. Es erscheint vorteilhaft, sicherzustellen, dass die betreffende httpd
Instanz nicht ausgetauscht werden muss, während der Handshake noch läuft, anstatt möglicherweise diese Verzögerung nach dem Herstellen einer Verbindung zu verursachen.
Für den Artikel scheint es mir auch, dass Sie unabhängig vom TCP_DEFER_ACCEPT
Status eines Sockets immer noch vier Pakete benötigen (Handshake, dann jeweils Daten). Ich weiß nicht, wie sie den Countdown auf drei herabsetzen oder wie dies eine sinnvolle Verbesserung darstellt.
Meine Frage lautet also im Grunde: Ist dies nur eine veraltete Option oder gibt es einen konkreten Anwendungsfall für diese Option?