Làm cách nào tôi có thể điều chỉnh thời gian chờ truyền lại TCP ban đầu?


14

Giá trị TCP RTO ban đầu trong 3 giây là quá dài đối với hầu hết các ứng dụng dựa trên mạng LAN. Làm thế nào tôi có thể điều chỉnh nó thấp hơn? Có một sysctl?

Câu trả lời:


12

Không, bạn không thể; nó được mã hóa cứng trong kernel. Vì vậy, thay đổi kernel và biên dịch lại.

#define TCP_TIMEOUT_INIT ((unsigned)(3*HZ))     /* RFC 1122 initial RTO value   */

Đây là những gì bạn sẽ nhận được trong / net / tcp.h của bạn.

Nhưng tôi có thể thấy ai đó đã cung cấp một bản vá , mặc dù bản thân chưa bao giờ thử nó


4

Cài đặt ban đầu sẽ không ảnh hưởng nhiều đến hiệu suất tổng thể của bạn, vì RTO tự điều chỉnh theo các điều kiện mạng. Nếu bạn thay đổi RTO, bạn có thể đặt thành 1 giây (nhưng không thấp hơn).

Có một cuộc thảo luận về điều này trong RFC 1122 :

        The following values SHOULD be used to initialize the
        estimation parameters for a new connection:
        (a)  RTT = 0 seconds.

        (b)  RTO = 3 seconds.  (The smoothed variance is to be
             initialized to the value that will result in this RTO).

        The recommended upper and lower bounds on the RTO are known
        to be inadequate on large internets.  The lower bound SHOULD
        be measured in fractions of a second (to accommodate high
        speed LANs) and the upper bound should be 2*MSL, i.e., 240
        seconds.

        DISCUSSION:
             Experience has shown that these initialization values
             are reasonable, and that in any case the Karn and
             Jacobson algorithms make TCP behavior reasonably
             insensitive to the initial parameter choices.

RFC 6298 là bản cập nhật được đề xuất (xuất bản tháng 6 năm 2011) nói rằng RTO có thể được khởi tạo ở giá trị thấp hơn (nhưng không thấp hơn 1 giây) và chứa Phụ lục chứa dữ liệu chỉ ra 1 giây là giá trị ban đầu hợp lý.


1 giây là NÊN, KHÔNG PHẢI; btw bạn có thể xem rto của một công cụ tìm kiếm nổi tiếng front-end =)
SaveTheRbtz

Tôi không đồng ý với tuyên bố này "Cài đặt ban đầu sẽ không ảnh hưởng nhiều đến hiệu suất tổng thể của bạn". Điều này có thể ảnh hưởng đến tỷ lệ lỗi của bạn cho ứng dụng trên giao tiếp ban đầu. Khi ứng dụng phụ trợ đặt thời gian chờ đọc thành 3 giây hoặc ít hơn, gói tin bị rớt (sự kiện thông thường với bất kỳ tắc nghẽn nào) trên mạng trong quá trình giao tiếp TCP ban đầu sẽ không cho phép truyền lại đúng gói bị rơi. giá trị ban đầu phải thấp hơn thời gian chờ đọc được đặt ở đầu nhận và phải được đặt dựa trên QOS của mạng bạn đang chạy.
Joe

3 giây là vĩnh cửu trên các mạng cục bộ và việc giảm gói xảy ra thực sự nhanh chóng trong một mạng trong đó thời gian khứ hồi tính bằng mili giây.
Joe

Tôi đồng ý CPU hiện đại có thể hoàn thành rất nhiều việc trong 3 giây. Tôi hiểu rằng sự chậm trễ ban đầu này chỉ được áp dụng khi trình điều khiển khởi chạy, điều này chỉ xảy ra khi hệ thống khởi động lần đầu tiên.
Jay Elston
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.