Я пытаюсь улучшить пропускную способность одного из моих серверов за границей, и после мониторинга передачи между сервером и моим домашним компьютером с помощью wireshark я почти уверен, что у меня есть проблема с размером окна.
Для передачи ftp я получаю окно приема размером 14720.
Window size value: 115
Calculated window size: 14720
Window size scaling factor: 128
Мое окно отправки выглядит так, как я его установил:
Window size value: 65335
Calculated window size: 261340
Window size scaling factor: 4
Так как мне исправить окно? Я прошел настройки Linux tcp на моем сервере, и все кажется нормальным. Отметки времени включены, синхронизация отключена, масштабирование включено, пакеты включены, кубический - это метод управления перегрузкой, максимальный размер окна приема и отправки - 3 МБ. Я попытался изменить значения по умолчанию tcp_wmem и tcp_rmem, но это ничего не делает.
РЕДАКТИРОВАТЬ:
Когда я отключаю автонастройку и / или масштабирование окна на сервере, окно сжимается до 14600, что в основном в 10 раз превышает 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
источник
Ответы:
Начиная с 2.6.17 (или около того) ядра Linux, масштабный коэффициент по умолчанию был увеличен. Недостатком этого является то, что, кажется, есть маршрутизаторы / брандмауэры / и т.д. которые неправильно работают с масштабированием окна TCP (rfc всего ~ 16 лет). Если вам нужно пройти через одно из этих устройств, вам нужно отключить масштабирование окна, иначе все станет очень медленно.
На Redhat / Redhat как система "исправить" заключается в:
источник
хммм. Не могли бы вы дать нам больше информации? Такие как ...
TCP выпускает {Reno, Vegas и т. Д.} Направление передачи {рабочий стол -> сервер, сервер -> рабочий стол, что-то еще} что вы используете для измерения? iperf? гарпун?
источник