Nhận giá trị hiện tại / mặc định của TCP initcwnd trên Linux


9

Tôi có thể thao tác giá trị như vậy với:

ip route change ... initcwnd 10

và sau đó có một phản hồi với:

ip route show

Nhưng những gì về giá trị mặc định trước khi sửa đổi? Có cách nào để truy vấn giá trị đó từ hệ thống không?

Ngoài ra, bạn có thể cung cấp một tham chiếu hợp lệ hiển thị giá trị mã hóa mặc định cho từng phiên bản kernel không?

Câu trả lời:



6

Chà, tôi không thể nói rằng tôi chắc chắn 100% đây sẽ là câu trả lời, vì nó thường đến, sslà lựa chọn tốt để có được một số thông tin được tiết lộ, ví dụ:

 ss -nli|fgrep cwnd
     westwood rto:1000 mss:536 cwnd:10
     westwood rto:1000 mss:536 cwnd:10
     westwood rto:1000 mss:536 cwnd:10

-nlà điển hình để loại bỏ việc phân giải DNS gây phiền nhiễu, -lcó phải chúng ta chỉ bám vào các ổ cắm nghe và -i(khóa) là "Hiển thị thông tin TCP nội bộ". Như có thể thấy, cả thuật toán tắc nghẽn và cwnd mặc định đều được hiển thị.


2

Nếu tôi hiểu đúng về bạn, bạn đang tìm giá trị ban đầu của bộ snd_cwndtham số khi ổ cắm TCP được khởi tạo.

Có vẻ như bắt đầu với kernel linux 2.6.39, một macro TCP_INIT_CWNDđã được giới thiệu trong linux / include / net / tcp.h , nó sẽ tạo ra giá trị snd_cwndkhi khởi tạo socket TCP.

Tôi biết mã này nằm ở đâu trong kernel IPv4và không may là nó dường như không sử dụng bất kỳ macro nào để điền giá trị cho các kernel cũ hơn2.6.39

/* net/ipv4/tcp_ipv4.c from 2.6.37 kernel */
static int tcp_v4_init_sock(struct sock *sk)
{
        struct inet_connection_sock *icsk = inet_csk(sk);
        struct tcp_sock *tp = tcp_sk(sk);

        ....
        ....
        ....

        /* So many TCP implementations out there (incorrectly) count the
         * initial SYN frame in their delayed-ACK and congestion control
         * algorithms that we must have the following bandaid to talk
         * efficiently to them.  -DaveM
         */
        tp->snd_cwnd = 2;

        ....
        ....
        ....
}

Một mã init tương tự tồn tại cho IPv6cả tcp_v6_init_sock()chức năng bên trongnet/ipv6/tcp_ipv6.c

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.