PassFront
  1. PassFront
  2. База знаний
  3. Производительность и безопасность сети

Латентность, пропускная способность и RTT: как измерять и что влияет на скорость загрузки?

Производительность и безопасность сети

Пропускная способность — сколько данных канал передаёт в секунду, латентность — сколько идёт пакет в одну сторону, RTT — время туда и обратно. Для веба узкое место чаще RTT: страница из множества запросов упирается в число круговых задержек, а не в ширину канала.

Из чего складывается задержка

  • Распространение: свет в оптоволокне идёт ~200 000 км/с, поэтому Москва — Нью-Йорк (~7 500 км) даёт не меньше 75 мс RTT.
  • Сериализация (размер / скорость), очереди на роутерах (bufferbloat), обработка на сервере.
  • Мобильная «последняя миля» добавляет десятки миллисекунд.

Почему ширина канала не спасает

  • Каждое новое соединение — DNS, TCP, TLS, то есть несколько RTT.
  • Slow start разгоняет соединение постепенно, а потолок одного потока — окно / RTT.
  • Рост канала с 10 до 100 Мбит/с мало ускоряет типичную страницу, снижение RTT — почти пропорционально.

Как измерять

  • ping — RTT, mtr — задержки по хопам, iperf3 — пропускная способность.
  • DevTools → Timing: DNS, Initial connection, SSL, Waiting (TTFB), Content Download; из JS — Navigation Timing.
const [n] = performance.getEntriesByType('navigation');
const ms = (from, to) => `${(n[to] - n[from]).toFixed(1)} мс`;
const tls = n.secureConnectionStart > 0; // 0 — соединение без TLS
console.table({
  DNS: ms('domainLookupStart', 'domainLookupEnd'),
  TCP: ms('connectStart', tls ? 'secureConnectionStart' : 'connectEnd'), // ≈ 1 RTT
  TLS: tls ? ms('secureConnectionStart', 'connectEnd') : '—',
  TTFB: ms('requestStart', 'responseStart'), // ≈ 1 RTT + время сервера
  Download: ms('responseStart', 'responseEnd'),
});
// оценка RTT от браузера: только Chromium, округлена до 25 мс
console.log(navigator.connection?.rtt ?? 'Network Information API не поддерживается');

Коротко для собеседования

Ширина канала почти не влияет на загрузку типичной страницы — решает, сколько RTT набирается по дороге. Сокращают и сами RTT, и их число: CDN, переиспользование соединений, TLS 1.3, HTTP/3, preconnect.

Другие вопросы раздела