Stavo esaminando il manuale httpd di Apache online e mi sono imbattuto in una direttiva per abilitare questo. Trovato una descrizione nella pagina man per 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.
Quindi ho trovato questo articolo, ma non sono ancora chiaro per quale tipo di carichi di lavoro sarebbe utile. Suppongo che se httpd
ha un'opzione specifica per questo, deve avere una certa rilevanza per i server Web. Suppongo anche che sia un'opzione e non solo httpd
le connessioni di rete, che ci sono casi d'uso in cui lo si desidera e altri in cui non lo si desidera.
Anche dopo aver letto l'articolo, non sono chiaro quale sarebbe il vantaggio di aspettare il completamento della stretta di mano a tre vie. Sembrerebbe vantaggioso assicurarsi che non sarà necessario scambiare l' httpd
istanza pertinente facendo ciò mentre l'handshake è ancora in corso invece di causare potenzialmente quel ritardo dopo che si è formata una connessione.
Per l'articolo, mi sembra anche che, indipendentemente dallo TCP_DEFER_ACCEPT
stato di un socket, avrai ancora bisogno di quattro pacchetti (stretta di mano e dati in ciascun caso). Non so come ottengano il conteggio fino a tre, né come ciò fornisca un miglioramento significativo.
Quindi la mia domanda è fondamentalmente: è solo una vecchia opzione obsoleta o esiste un caso d'uso reale per questa opzione?