Gần đây, chúng tôi đã nhận ra vấn đề kết nối TCP chủ yếu giới hạn ở người dùng mac và Linux duyệt trang web của chúng tôi.
Từ góc độ người dùng, nó thể hiện thời gian kết nối thực sự dài với các trang web của chúng tôi (> 11 giây).
Chúng tôi đã cố gắng theo dõi chữ ký kỹ thuật của vấn đề này, nhưng không thể hiểu tại sao nó lại xảy ra hoặc cách khắc phục nó.
Về cơ bản, điều đang xảy ra là máy của khách hàng đang gửi gói SYN để thiết lập kết nối TCP và máy chủ web nhận được nó, nhưng không phản hồi với gói SYN / ACK. Sau khi máy khách đã gửi nhiều gói SYN, cuối cùng máy chủ sẽ phản hồi với gói SYN / ACK và mọi thứ đều ổn cho phần còn lại của kết nối.
Và, tất nhiên, tác nhân gây ra vấn đề: nó không liên tục và không xảy ra mọi lúc (mặc dù nó xảy ra trong khoảng 10-30% thời gian)
Chúng tôi đang sử dụng Fedora 12 Linux làm HĐH và Nginx làm máy chủ web.
Ảnh chụp màn hình phân tích wireshark
Cập nhật:
Tắt tỷ lệ cửa sổ trên máy khách đã ngăn sự cố xảy ra. Bây giờ tôi chỉ cần một độ phân giải phía máy chủ (chúng tôi không thể khiến tất cả khách hàng làm điều này) :)
Cập nhật cuối cùng:
Giải pháp là tắt cả hai cửa sổ TCP và dấu thời gian TCP trên các máy chủ của chúng tôi có thể truy cập công khai.