Определение простыми словами
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-запросы.