Chúng tôi có một máy chủ ứng dụng đã được quan sát thấy gửi tiêu đề với kích thước cửa sổ TCP 0 vào những lúc mạng bị tắc nghẽn (tại trang của khách hàng).Ai đặt kích thước cửa sổ TCP xuống 0, Indy hoặc Windows?
Chúng tôi muốn biết nếu nó là Indy hoặc lớp Windows bên dưới có trách nhiệm điều chỉnh kích thước cửa sổ TCP xuống từ 64K danh nghĩa trong thích ứng với thông lượng có sẵn.
Và chúng tôi sẽ có thể hành động khi nó trở thành 0 (không có gì được gửi, người dùng chờ đợi => không tốt).
Vì vậy, mọi thông tin, liên kết, con trỏ đến mã Indy đều được chào đón ...
Tuyên bố từ chối trách nhiệm: Tôi không phải là chuyên gia mạng. Vui lòng giữ cho câu trả lời dễ hiểu đối với mức trung bình của tôi ;-)
Lưu ý: đó là Indy9/D2007 trên Windows Server 2003 SP2.
Chi tiết gory khác:
Trường hợp cửa sổ TCP zero xảy ra ở tầng giữa nói chuyện với máy chủ DB.
Điều này xảy ra cùng một lúc khi người dùng cuối phàn nàn về sự chậm trễ trong ứng dụng khách (đó là điều đã kích hoạt điều tra mạng).
2 vấn đề lớn về mạng gây ra tắc nghẽn đã được xác định.
Cửa sổ TCP zero đã xảy ra khi có sự tắc nghẽn mạng, nhưng có thể hoặc không thể do nó gây ra.
Chúng tôi muốn biết khi nào điều đó xảy ra và có cách để làm điều gì đó (ghi ít nhất) trong mã của chúng tôi.
Vì vậy, câu hỏi cốt lõi là ai đặt kích thước cửa sổ thành 0 và ở đâu?
Nơi để móc (trong Indy?) Để biết khi nào tình trạng đó xảy ra?
Câu hỏi cốt lõi là ai đặt kích thước cửa sổ thành 0 và ở đâu? Đang cập nhật câu hỏi ... –
Ngăn xếp TCP (trong trường hợp này là một phần của Windows Server) đặt kích thước cửa sổ bằng 0, nhưng nó thực hiện điều này vì ứng dụng đang chạy trên máy chủ (Indy?) Không đọc dữ liệu. –
Do đó, nếu tầng giữa không thể gửi đến ứng dụng khách do tắc nghẽn mạng, nó dừng đọc dữ liệu đến từ máy chủ DB, sau đó làm cho hệ điều hành đặt kích thước cửa sổ tcp thành 0 ... và tất cả mọi người chờ đợi cho đến khi mọi thứ trở nên tốt hơn. Đúng? –