Một trong những khách hàng của chúng tôi đang gặp sự cố khi gửi dữ liệu từ ứng dụng của chúng tôi (trên PC của họ) đến máy chủ (vị trí địa lý khác). Khi gửi các gói dưới 1100 byte mọi thứ hoạt động tốt, nhưng trên đây chúng ta thấy TCP truyền lại gói tin cứ sau vài giây và không nhận được phản hồi. Các gói chúng tôi đang sử dụng để thử nghiệm là khoảng 1400 byte (nhưng ít hơn 1472). Tôi có thể gửi ping ICMP tới www.google.com là 1472 byte và nhận được phản hồi (vì vậy nó không phải là bộ định tuyến của họ/vài bước nhảy đầu tiên).Lợi ích của "Không phân đoạn" trên gói TCP?
Tôi thấy rằng ứng dụng của chúng tôi đặt cờ DF cho các gói này và tôi tin rằng một bộ định tuyến trên đường đến máy chủ có MTU nhỏ hơn/bằng 1100 và thả gói.
Điều này ảnh hưởng đến 1 khách hàng ở mức 5000, nhưng vì các tuyến đường của mọi người sẽ khác nhau, điều này được mong đợi.
Dữ liệu là phong bì SOAP và chúng tôi mong đợi phản hồi SOAP. Tôi không thể biện minh tại sao chúng ta làm điều đó, mã để làm điều này được viết bởi một nhà phát triển trước đó.
Vì vậy, ... Có bất kỳ lợi ích HOẶC biện minh nào để thiết lập cờ DF trên gói TCP cho dữ liệu ứng dụng không?
Tôi có thể nghĩ ra lý do cần thiết cho các ứng dụng chẩn đoán mạng nhưng không phải trong tình huống của chúng tôi (chúng tôi muốn dữ liệu đến điểm cuối, bị phân mảnh hay không). Một trong những quản trị hệ thống của chúng tôi nói rằng nó có thể liên quan đến chúng tôi bằng SSL, nhưng theo như tôi biết SSL giống như một luồng và bất kể phân mảnh, miễn là luồng được xây dựng lại ở cuối, thì không có vấn đề gì.
Nếu không có lý do chính đáng nào, tôi sẽ thay đổi hành vi của đơn đăng ký của chúng tôi.
Xin cảm ơn trước.
Cuộc gọi API socket thực tế mà bạn đang thực hiện khiến cho DF bit được đặt là gì? –
Có một số cuộc thảo luận thú vị về nơi DF có thể hữu ích ở đây: http://stackoverflow.com/questions/351806/where-is-the-dont-fragment-bit-of-the-ip-flags-used - in ngắn nó có vẻ giống như một tình huống mà nếu bạn không biết rằng bạn cần nó, sau đó bạn không. –