Назад | Перейти на главную страницу

Есть ли опция, влияющая на время RTO в TCP?

Я просто пытаюсь понять, как работает функция ретрансляции в случае TCP на моем Linux-компьютере, но в Интернете вы можете найти действительно другую информацию, большая часть которой устарела или неверна, поэтому я решил задать вопрос здесь.

Когда дело доходит до RTO, в ядре Linux (файл include / net / tcp.h) у вас есть два варианта:

#define TCP_RTO_MAX     ((unsigned)(120*HZ))
#define TCP_RTO_MIN     ((unsigned)(HZ/5))

Таким образом, есть возможность установить минимальное и максимальное время для повторной передачи пакета. Оба вышеуказанных параметра зависят от HZ, который можно указать в исходном коде ядра или настроить через CONFIG_HZ, по крайней мере, в случае adm64:

$ egrep HZ /boot/config-4.1.0-2-amd64
...
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250

Таким образом, минимальное RTO должно быть около 50 мс (250/5). Но когда вы проверите следующий вывод wirehark, вы увидите совсем другое:

Одна секунда. Есть ли опция, которая также может повлиять на время RTO?