Рассмотрим следующий вывод от traceroute
от меня в Швеции на сервер в США:
1 192.168.1.1 (192.168.1.1) 0.127 ms 0.148 ms 0.167 ms
2 gw-n1-rny-a13.ias.bredband.telia.com (2.248.176.129) 2.404 ms 2.414 ms 2.424 ms
3 s-b6-link.telia.net (62.115.139.49) 1.391 ms 1.401 ms 1.607 ms
4 s-akix-i1-link.telia.net (213.155.134.9) 1.610 ms 1.605 ms 1.590 ms
5 as5580-ic-155269-s-akix-i1.c.telia.net (80.239.161.18) 5.091 ms 1.572 ms 1.582 ms
6 eth2-4.edge1.sto1.se.as5580.net (78.152.34.214) 10.783 ms 10.126 ms 10.085 ms
7 eth15-2.r1.fra1.de.as5580.net (78.152.34.217) 21.254 ms 20.934 ms 20.921 ms
8 eth13-1.core1.par2.fr.as5580.net (78.152.44.244) 29.821 ms 29.912 ms 29.924 ms
9 eth7-1.core1.lon2.uk.as5580.net (78.152.44.242) 34.987 ms 34.986 ms 34.971 ms
10 eth1-2.edge1.nyc4.us.as5580.net (80.94.64.134) 114.090 ms 122.484 ms 122.485 ms
11 78.152.57.87 (78.152.57.87) 123.962 ms 123.924 ms 123.934 ms
12 10ge-1-2-0.01-02.er1.buf1.colocrossing.com (23.94.31.14) 124.270 ms 124.094 ms 124.247 ms
13 core.servermania.com (172.245.211.134) 124.732 ms 124.733 ms 124.814 ms
(Я немного почистил, чтобы цифры выстроились в ряд, но это не должно иметь значения. В любом случае меня интересуют принципы, а не эти конкретные данные.)
Мне любопытно, какие факторы определяют задержку, которую добавляет каждый из этих прыжков. Самым очевидным из них будет физическое расстояние, но очевидно, что это не является основным фактором, поскольку 125 мс всего запроса будет (почти) достаточным для полного оборота вокруг Земли, что явно на несколько факторов длиннее, чем этот. Просьба путешествует физически. Я не вижу, чтобы фактическая пропускная способность каналов имела бы большое влияние (то есть на что угодно, кроме потери пакетов, если они перегружены).
Каковы факторы, которые добавляют задержку помимо физического расстояния? Является ли это какой-то внутренней буферизацией и / или обработкой в различных маршрутизаторах и, в этом случае, какого рода (просмотр таблиц маршрутизации займет несколько десятков миллисекунд?) Или это некоторая скрытая повторная передача на базовых уровнях протокола, или что?
Не имея дело с "железными" маршрутизаторами, которые, как я подозреваю, используются в этих случаях, мне интересно, какие факторы определяют их производительность с точки зрения задержки.