Tôi đã xem qua hướng dẫn sử dụng Apache httpd trực tuyến và đã gặp một chỉ thị cho phép điều này. Tìm thấy một mô tả trong trang người đàn ông cho 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.
Sau đó, tôi tìm thấy bài viết này nhưng tôi vẫn chưa rõ loại khối lượng công việc này sẽ hữu ích cho việc gì. Tôi giả định rằng nếu httpd
có một tùy chọn cụ thể cho việc này, thì nó phải có một số liên quan đến các máy chủ web. Tôi cũng giả sử từ thực tế đó là một tùy chọn và không chỉ là cách httpd
kết nối mạng, mà có những trường hợp sử dụng mà bạn muốn nó và những người khác mà bạn không.
Ngay cả sau khi đọc bài viết, tôi vẫn chưa rõ lợi thế của việc chờ đợi bắt tay ba cách là gì. Có vẻ thuận lợi để đảm bảo rằng nó sẽ không cần phải trao đổi trong trường hợp có liên quan httpd
bằng cách làm như vậy trong khi bắt tay vẫn đang diễn ra thay vì có khả năng gây ra sự chậm trễ đó sau khi kết nối được hình thành.
Đối với bài viết, đối với tôi, dường như bất kể TCP_DEFER_ACCEPT
trạng thái của ổ cắm, bạn vẫn sẽ cần bốn gói (bắt tay sau đó dữ liệu trong mỗi trường hợp). Tôi không biết làm thế nào họ đếm ngược đến ba, cũng như làm thế nào điều đó mang lại sự tăng cường có ý nghĩa.
Vì vậy, câu hỏi của tôi về cơ bản là: Đây chỉ là một tùy chọn lỗi thời hoặc có một trường hợp sử dụng thực tế cho tùy chọn này?