Физическое расстояние влияет на скорость загрузки?

У меня просто был спор с моим коллегой и я подумал, что просто дойду до экспертов по этому поводу. Вот сценарий. Мы использовали веб-сайт, который измеряет скорость вашего соединения. Мы тестировали, используя сервер, который находится далеко от нас (мы в Малайзии, а сервер находился в США). Это было около 2 Мбит /с. Затем мы попытались с сервером в Сингапуре, и это было намного быстрее (около 15 Мбит /с). Мой коллега полагал, что это из-за физической дистанции, в то время как я не думаю, что это имеет значение. Мое понимание - после того, как вы выполнили начальное рукопожатие и начался поток данных, неважно, где находится сервер, и результат должен быть почти таким же. Я что-то упустил? Как это работает?

19 голосов | спросил Navid 11 J000000Thursday13 2013, 09:41:19

4 ответа


21
  

Мой коллега полагал, что это из-за физического расстояния, пока я не думаю, что это имеет значение. Мое понимание - после того, как вы выполнили начальное рукопожатие и начался поток данных, неважно, где находится сервер, и результат должен быть почти таким же. Я что-то упустил? Как это работает?

Вы оба были правы в какой-то момент в истории, но ваше понимание в основном правильное ... сегодня :). Есть несколько факторов, которые изменились между старым ответом, который дал ваш друг, и возможностями, которые у нас есть сегодня.

  • Масштабирование окна TCP
  • Настройка буфера хоста

Разница в результатах, которые вы видели, могла быть затронута:

  • Потеря пакетов
  • Параллельные передачи TCP

Масштабирование окна TCP: эффект задержки полосы пропускания

Как отметил ваш друг, более старые реализации TCP пострадали от ограничений, налагаемых исходным размером 16-битного размера приема в заголовке TCP (ref RFC 793: Раздел 3.1 ); RWIN контролирует, сколько неподтвержденных данных может ожидаться в одном TCP-сокете. 16-разрядные значения RWIN ограничивают интернет-маршруты с продуктами с высокой пропускной способностью (и многие современные интернет-соединения с высокой пропускной способностью будут ограничены 16-битным значением).

Для высоких значений RTT полезно иметь очень большой RWIN. Например, если ваш путь RTT из Малайзии в США составляет около 200 мс, исходный TCP RWIN ограничит вас до 2.6 Мбит /с.

  

Пропускная способность max = Rcv_Win /RTT

     

* Пропускная способность max = 65535 * 8 /0.200 *

     

Пропускная способность max = 2.6Mbps

RFC 1323 определил некоторые «параметры TCP» для преодоления этих ограничений; одним из этих опций TCP является «масштабирование окна». Он вводит масштабный коэффициент, который умножает исходное значение RWIN, чтобы получить полное значение окна приема; с использованием параметров масштабирования окна допускает максимальное значение RWIN 1073725440 байт. Применяя те же вычисления:

  

Пропускная способность max = Rcv_Win /RTT

     

* Пропускная способность max = 1073725440 * 8 /0.200 *

     

Пропускная способность max = 42.96Gbps

Имейте в виду, что TCP постепенно увеличивает RWIN в течение продолжительности передачи, если потеря пакетов не является проблемой. Чтобы увидеть действительно большие скорости передачи по высокоскоростному соединению, вам необходимо перенести большой файл (так что TCP имеет время увеличить окно), и потеря пакетов не может быть проблемой для подключения.

Потеря пакетов

Интернет-трассы через Тихий океан время от времени сильно перегружаются. Некоторые из моей семьи живут на Тайване, и мы регулярно сталкиваемся с проблемами, когда мы используем Google Talk с ними. Я часто вижу потерю пакетов более чем на 0,5%, когда я звоню по DSL-линии из США; если вы видите что-то вроде потери 0,5% на «медленном» сервере, это очень легко ограничит пропускную способность в одном TCP-сокете.

Параллельные потоки TCP

FYI, некоторые веб-сайты с проверкой скорости используют параллельные потоки TCP для увеличения пропускной способности ; это может повлиять на результаты, которые вы видите, поскольку параллельные потоки TCP значительно увеличивают пропускную способность, если у вас есть потеря пакетов в пути. Я видел, что четыре параллельных потока TCP полностью насыщают кабельный модем 5 Мбит /с, который страдает от 1% постоянной потери пакетов. Обычно потеря 1% снижает пропускную способность одного потока TCP.

Бонусный материал: настройка буфера хоста

У многих старых версий ОС были сокеты с ограниченными буферами; с более старой ОС (например, Windows 2000), неважно, разрешило ли TCP большое количество данных в полете ... их буферы сокетов не были настроены на использование большого RWIN. Было проведено много исследований, посвященных обеспечению высокой производительности при передаче TCP . Современные операционные системы (для этого ответа мы можем назвать Windows Vista и более поздние «современные») включают в себя лучшие механизмы распределения буферов в своих реализациях буфера сокетов.

ответил Mike Pennington 11 J000000Thursday13 2013, 13:21:35
3

Короткий ответ: Да, расстояние влияет на пропускную способность одного потока.

Интернет развил средства ограничения этого эффекта ... задержанный ACK, масштабирование окна, другие протоколы :-) Но физика все еще выигрывает в конце. В этом случае гораздо более вероятна общая перегрузка сети по множеству переходов - для удаления потока TCP требуется только один упавший пакет.

ответил Ricky Beam 11 J000000Thursday13 2013, 23:48:01
1

Пока есть отличные ответы на это, я бы добавил: нет, скорость не обязательно зависит от расстояния и да, очень часто на скорость влияет дистанция являются истинными.

Почему это?

Сильно упрощается, чем дольше расстояние, тем больше «прыжков» задействовано на пути через Интернет. Максимальная пропускная способность определяется самым медленным ходом и согласованным трафиком. С увеличением расстояния и несколько случайным распределением скоростей прыжка вероятность для получения более низких общих скоростей увеличивается. Кроме того, физика мешает, и увеличение задержки может также замедлить связь.

Но это не должно восприниматься как нечто само собой разумеющееся. Технология позволяет нам строить планетарное соединение практически любой требуемой полосы пропускания. Однако пропускная способность и расстояние - это враги, и оба они значительно увеличивают стоимость соединения, что опять же уменьшает вероятность того, что он будет существовать только для того соединения, которое вам может понадобиться прямо сейчас.

Конечно, это упрощено, но на самом деле эта ситуация очень часто встречается. И снова вы этого не делаете, когда есть неожиданно быстрое соединение или прокси-сервер распространения за углом, но когда все мгновенно, мы редко думаем о скорости Интернета ...

ответил Zac67 11 AM000000100000005631 2017, 10:53:56
-3

Согласно Andrew Мартин ответ да

 Графы

ответил Jonathan 11 AM00000040000000131 2017, 04:44:01

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132