Настройка Linux TCP/IP для сети с низкой пропускной способностью?
У меня есть две машины Linux, подключенные с помощью радиомодема. Пропускная способность составляет около 2 кбит / с, время пинга около 400 мс (потеря пакетов 5%).
В настоящее время ssh-сессии имеют задержку порядка 5 секунд, хотя это варьируется. Необработанный telnet похож и просто открытие tcp-соединения, кажется, займет вечность.
Кто-нибудь знает, как лучше настроить параметры IP в таком случае?
2 ответа
Убедитесь, что вы работаете с достаточно низким MTU, если это возможно. Один 1500-байтовый пакет занимает ~6 с для передачи по вашей ссылке (при условии, что вы имели в виду 2 килобита в секунду, а не байты). И вы теряете значительное их количество (вероятно, более 5%, если это потеря вашего пакета с ping remote-end
не ping -s «MAX-SIZE» remote-end
), требуя повторной отправки всего пакета.
Строго говоря, IPv4 может снизиться до MTU 68 (что в любом случае слишком мало), но обнаружение PMTU в Linux ограничено не менее 552, и, возможно, другие части стека потеряют значение ниже 128 байт или около того.
Обратите внимание, что вы работаете со скоростью менее одной десятой полосы пропускания, которую разработчики TCP имели в 1973 году.
Потеря ухудшит пропускную способность TCP. И это отставание хорошо отражается на воспринимаемой человеком задержке.
Подумайте о переосмыслении протоколов и приложений, которые вы используете для задержки и допуск отключения. Например:
- mosh называет себя "мобильной оболочкой", которая переживает изменения подключения и прогнозирует эхо локально для более быстрого опыта.
- Citrix обладает некоторым интеллектом для отображения приложений (Windows) с графическим интерфейсом через плохие соединения. Хотя я сомневаюсь, что вы можете получить большую часть графического интерфейса на 2 кбит / с.