Saya mencoba untuk mengubah perilaku protokol mulai lambat tcp pada kotak CentOS5 (uname -r => 2.6.18-238.12.1.el5). Saya telah membaca bahwa perintah berikut akan mengubah icwnd saya menjadi 8:
ip route change default via 1.2.3.4 dev eth1 initcwnd 8
echo "4094 $((8*16384)) 4194304" > /proc/sys/net/ipv4/tcp_wmem
(Catatan: Bagian tcp_wmem lebih atau kurang menebak pada bagian saya, saya pikir angka pastinya tidak terlalu penting asalkan cukup besar)
Namun, itu sendiri sepertinya tidak berpengaruh. Alih-alih awalnya mengirim 8 segmen, ia masih hanya mengirim 3. Setelah membaca lebih lanjut saya menemukan bahwa tcp slow start bekerja secara paralel dengan kontrol kemacetan, sehingga jika ssthresh <cwnd, protokol kontrol kemacetan digunakan, jika tidak, slow start digunakan (setidaknya , ini pemahaman saya). Saya melakukan yang berikut untuk mencari tahu apa ssthresh default saya diatur ke:
[root@host ~]# cat /proc/sys/net/ipv4/tcp_congestion_control
bic
[root@host ~]# cat /sys/module/tcp_bic/parameters/initial_ssthresh
0
Melihat bahwa ssthresh adalah 0, saya ingin meningkatkannya sehingga akan lebih besar dari icwnd, yang pada gilirannya akan menyebabkan kernel menggunakan start lambat, yang akan menggunakan nilai default 8 windows. Jadi saya melakukan yang berikut:
[root@host ~]# echo 13140 > /sys/module/tcp_bic/parameters/initial_ssthresh
Namun masih belum ada perubahan sama sekali dalam perilaku. Adakah yang tahu apa yang saya lakukan salah?
(Saya memulai kembali proses apache yang saya gunakan untuk menguji ini setelah setiap perubahan). EDIT: Saya juga melakukan cache ip rute flush di antara perubahan juga
sumber