Saya mencoba untuk meningkatkan throughput salah satu server saya di luar negeri dan setelah memantau transfer antara server dan komputer di rumah saya dengan wireshark, saya cukup yakin saya memiliki masalah dengan ukuran jendela.
Untuk transfer ftp saya mendapatkan ukuran jendela terima dari 14720.
Window size value: 115
Calculated window size: 14720
Window size scaling factor: 128
Jendela kirim saya terlihat seperti apa yang saya atur:
Window size value: 65335
Calculated window size: 261340
Window size scaling factor: 4
Jadi bagaimana cara memperbaiki rwindow? Saya telah melalui pengaturan tcp linux di server saya dan semuanya tampak normal. Stempel waktu aktif, sinkronisasi tidak aktif, penskalaan aktif, karung aktif, kubik adalah metode kontrol kemacetan, maks menerima dan mengirim ukuran jendela 3mb. Saya sudah mencoba mengubah nilai tcp_wmem dan tcp_rmem default tetapi tidak melakukan apa-apa.
EDIT:
Ketika saya mematikan autotuning dan / atau skala jendela pada server, jendela menyusut menjadi 14600, yang pada dasarnya 10x MSS.
5337 4.268584 2.2.2.2 1.1.1.1 FTP 106 Response: 227 Entering Passive Mode (2,2,2,2,240,15).
5338 4.268640 1.1.1.1 2.2.2.2 TCP 74 59855 > 61455 [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=431721460 TSecr=0 WS=128
5364 4.300368 1.1.1.1 2.2.2.2 TCP 54 57609 > ftp [ACK] Seq=217 Ack=648 Win=15744 Len=0
5480 4.346856 2.2.2.2 1.1.1.1 TCP 66 61455 > 59855 [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1460 SACK_PERM=1 WS=128
5481 4.346867 1.1.1.1 2.2.2.2 TCP 54 59855 > 61455 [ACK] Seq=1 Ack=1 Win=14720 Len=0
5482 4.346893 1.1.1.1 2.2.2.2 FTP 70 Request: STOR 100mb.bin
5570 4.428061 2.2.2.2 1.1.1.1 FTP 109 Response: 150 Opening BINARY mode data connection for 100mb.bin
5571 4.428078 1.1.1.1 2.2.2.2 TCP 54 57609 > ftp [ACK] Seq=233 Ack=703 Win=15744 Len=0
5572 4.428155 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes
5573 4.428166 1.1.1.1 2.2.2.2 FTP-DATA 1514 FTP Data: 1460 bytes
5662 4.505384 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=1461 Win=8832 Len=0
5663 4.505392 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes
5664 4.505421 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=2921 Win=11776 Len=0
5665 4.505429 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes
5666 4.505535 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=4381 Win=14720 Len=0
5667 4.505543 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes
5734 4.583769 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=5841 Win=17536 Len=0
5735 4.583778 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes
5736 4.583781 2.2.2.2 1.1.1.1 TCP 60 61455 > 59855 [ACK] Seq=1 Ack=7301 Win=20480 Len=0
5737 4.583787 1.1.1.1 2.2.2.2 FTP-DATA 2974 FTP Data: 2920 bytes
sumber
Jawaban:
Dimulai dengan kernel linux 2.6.17 (atau ada kira-kira), faktor skala default ditingkatkan. Kelemahan dari ini adalah bahwa tampaknya ada router / firewall / dll. yang tidak benar menangani TCP Window Scaling (rfc hanya ~ 16 tahun). Jika Anda harus melintasi salah satu perangkat ini maka Anda harus mematikan penskalaan jendela atau hal lain menjadi sangat lambat.
Pada sistem Redhat / Redhat like, "fix" adalah untuk:
sumber
hmmm. Bisakah Anda memberi kami informasi lebih lanjut? Seperti ...
TCP melepaskan {Reno, Vegas, dll} Arah trasfer {desktop -> server, server-> desktop, sesuatu yang lain} apa yang Anda gunakan untuk pengukuran? iperf? tombak?
sumber