Latency: что такое сетевая задержка и как её снизить | Глоссарий FREEHOSTING

Latency

Задержка
Latency — Время, за которое пакет данных проходит от отправителя до получателя и возвращается обратно. Измеряется в миллисекундах и определяет отзывчивость онлайн-игр, видеозвонков, биржевых терминалов и веб-интерфейсов.

Определение простыми словами

Latency — это сетевая задержка, время в миллисекундах между отправкой пакета и приходом ответа. На неё влияет физическое расстояние, число промежуточных маршрутизаторов, очереди на интерфейсах и качество последней мили. Часто термин путают с RTT (round-trip time): RTT — это конкретное измерение задержки в обе стороны, а latency — общее свойство канала.

В отличие от пропускной способности, задержка определяет именно отзывчивость, а не максимальную скорость. Канал в 1 Гбит/с с RTT 200 мс сделает игровой сервер непригодным для шутера, а узкий 50-мегабитный канал с задержкой 5 мс будет восприниматься «мгновенным». Поэтому при выборе VPS для онлайн-сервиса геолокация важнее тарифа.

Сравнение с альтернативами

Сценарий Желательное RTT Что даёт
Локальная сеть <1 мс Кластеры баз данных, репликация
Внутри страны 10–30 мс Корпоративные сервисы, веб-приложения
Континент 50–80 мс SaaS, видеосвязь, SSH
Межконтинент 120–250 мс Бэкапы, статические сайты, контент через CDN

Кейсы использования

  • Подбор локации VPS ближе к ядру аудитории, чтобы снять лаги в админке.
  • Выбор площадки для биржевых ботов, где каждые 5 мс окупаются за месяц торговли.
  • Проектирование игровых серверов, где допустимая задержка не превышает 60 мс.
  • Диагностика медленного SSH-сеанса при работе с офисом из командировки.
  • Сравнение нескольких аплинков и резервирование маршрута через BGP.

Негативный сценарий: «безлимитный» канал с буферами на десятки мегабайт даёт пропускную способность под 10 Гбит/с, но из-за bufferbloat задержка во время бэкапа подскакивает до 800 мс — голос в Zoom и игроки страдают одинаково. Лекарство — fq_codel или CAKE на пограничном маршрутизаторе.

Технические детали

# классический замер RTT
ping -c 20 -i 0.2 8.8.8.8

# поиск проблемного хопа
mtr --report --report-cycles 50 example.com

# RTT по конкретному TCP-порту, в обход ICMP
sudo hping3 -S -p 443 -c 20 example.com

# гистограмма задержек ядра под нагрузкой
sudo bpftrace -e 'kprobe:tcp_sendmsg { @ = hist(nsecs); }'

# тюнинг очередей для борьбы с bufferbloat
sudo tc qdisc replace dev eth0 root cake bandwidth 100mbit

Низкая задержка — это сочетание короткого пути, разгруженного оборудования и правильно настроенных очередей. Помогает CDN для статики, anycast-DNS, заранее установленные TLS-сессии и тюнинг параметров TCP вроде BBR и initial congestion window. Для протоколов реального времени важно следить ещё и за джиттером — разбросом задержки между соседними пакетами.

Частые вопросы

Какая задержка считается хорошей?

Для веб-сёрфинга комфортно до 100 мс, для голосовой связи и SSH — до 50 мс, для онлайн-шутеров — до 30 мс. Задержки выше 200 мс воспринимаются как заметные подвисания интерфейса и пропуски в речи.

Чем latency отличается от пинга?

Пинг — это конкретный замер времени отклика по протоколу ICMP. Latency — общее свойство канала, оно учитывает все источники задержки: распространение сигнала, обработку на маршрутизаторах, очереди и время отклика самого сервиса.

Можно ли уменьшить задержку программно?

Скорость света не обмануть, но можно сократить путь: ставить серверы ближе к пользователям, кэшировать ответы, использовать CDN, включать BBR и QUIC, держать соединения открытыми и убирать лишние редиректы и DNS-запросы.