
Проблема с SSH и производительностью
При разработке высокопроизводительной игры, работающей по SSH, была обнаружена странная проблема. Оказалось, что при нажатии клавиши SSH отправляет не один пакет, а около 100 пакетов. Это приводило к значительным задержкам и снижению производительности игры.
Анализ проблемы
Для анализа проблемы был использован tcpdump и tshark для захвата и анализа сетевого трафика. Оказалось, что пакеты, отправляемые SSH, имеют размер 36 байт и отправляются с интервалом около 20 мс.
Обфускация нажатий клавиш
После анализа проблемы было обнаружено, что SSH использует обфускацию нажатий клавиш для защиты от атак, направленных на определение нажатых клавиш. Эта функция была добавлена в SSH в 2023 году.
Solution to the problem
Одним из решений проблемы является отключение обфускации нажатий клавиш на стороне клиента или сервера. Однако это требует изменения конфигурации SSH и может быть неприменимо в некоторых случаях.
Отказ от обфускации
Другим решением является отказ от обфускации нажатий клавиш в SSH. Это можно сделать, изменив код SSH-библиотеки на Go. Оказалось, что это можно сделать, удалив поддержку обфускации нажатий клавиш.
Результаты
После отказа от обфускации нажатий клавиш производительность игры значительно увеличилась. Использование CPU снизилось на 50%, а задержка уменьшилась.
Conclusion
Проблема с SSH и производительностью была решена путем анализа сетевого трафика и изменения конфигурации SSH. Оказалось, что обфускация нажатий клавиш может быть отключена или удалена для повышения производительности.





