লিনাক্সে টিসিপি আরসিডকিউন্ডের বর্তমান / ডিফল্ট মানটি পান


9

আমি এর সাথে এই জাতীয় মানটি হেরফের করতে পারি:

ip route change ... initcwnd 10

এবং তারপরে একটি প্রতিক্রিয়া জানাতে:

ip route show

তবে কোনও পরিবর্তনের আগে ডিফল্ট মান সম্পর্কে কী বলা যায়? সিস্টেম থেকে যে মানটি জিজ্ঞাসা করার কোন উপায় আছে?

বিকল্পভাবে, আপনি কি কোনও বৈধ রেফারেন্স সরবরাহ করতে পারেন যা প্রতিটি কার্নেল সংস্করণের জন্য ডিফল্ট হার্ডকোডযুক্ত মানটি দেখায়?

উত্তর:


10

আমি সত্যিই নিশ্চিতভাবে জানি না, তবে এটি একটি আইনী রেফারেন্সের মতো বলে মনে হচ্ছে

দলা:

$ grep -A 2 initcwnd `find /usr/src/linux/include -type f -iname '*h'`

আউট:

/usr/src/linux/include/net/tcp.h:
/* TCP initial congestion window as per draft-hkchu-tcpm-initcwnd-01 */
#define TCP_INIT_CWND          10

হ্যাঁ, কোড গ্রেপ করা সর্বদা একটি ভাল ধারণা!
সিওরাস

6

ঠিক আছে, আমি বলতে পারি না যে আমি 100% নিশ্চিত এর উত্তর হওয়া উচিত, বুয়ূট যেমন প্রায়শই আসে ssতবে কিছু তথ্য প্রকাশ করা ভাল পছন্দ, উদাহরণস্বরূপ:

 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

-nবিরক্তিকর ডিএনএসের সমাধান থেকে মুক্তি পাওয়ার জন্য সাধারণ, -lআমরা -iকি কেবল শ্রবণ সকেটগুলিতেই আটকে থাকি এবং (কী) "অভ্যন্তরীণ টিসিপি তথ্য দেখান" is এটি দেখা যায়, উভয় কনজেশন অ্যালগরিদম এবং ডিফল্ট cwnd প্রদর্শিত হয়।


2

যদি আমি আপনাকে সঠিকভাবে বুঝতে পারি, আপনি snd_cwndটিসিপি সকেট শুরু করার সময় প্যারামিটার সেটটির প্রাথমিক মানটি সন্ধান করছেন ।

দেখে মনে হচ্ছে লিনাক্স কার্নেল দিয়ে শুরু হচ্ছে 2.6.39, লিনাক্স / অন্তর্ভুক্ত / নেট / tcp.h এ একটি ম্যাক্রো TCP_INIT_CWNDচালু করা হয়েছে যা টিসিপি সকেট শুরু করার সময় মানকে জনপ্রিয় করে তোলেsnd_cwnd

আমি জানি যে এই কোডটি কার্নেলের মধ্যে কোথায় রয়েছে IPv4এবং দুর্ভাগ্যক্রমে এটি কার্নেলের চেয়ে পুরানো কার্নেলের জন্য মান নির্ধারণ করতে কোনও ম্যাক্রো ব্যবহার করবে বলে মনে হয় না2.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;

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

ইন ফাংশনের IPv6পাশাপাশি একই ধরণের থিম কোডটি বিদ্যমানtcp_v6_init_sock()net/ipv6/tcp_ipv6.c

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.