2014-11-17 3 views
8

Предположим, я создаю свой собственный ускоритель загрузки.Как измерить давление в сети?

Давайте упростим до точки, где:

  • мой код работает на 3-й партии, чьи сети параметры, которые я не могу контролировать
  • элемент загружается с одного IP
  • количество передач параллельных диапазона является регулируемые
  • будет много переводов, чтобы узнать оптимальные параметры
  • клиент запускает Linux
  • серв эр находится вне моего контроля
  • путь через глобальную сеть и загрузки через HTTPS
  • загруженные сегменты большой

Как измерить, достаточно ли соединения используются, чтобы насытить путь между клиентом и сервером?

Какие биты от getsockopt(..., TCP_INFO) на самом деле полезны?

Как быстро можно настроить различные условия сети?

Можно измерить давление в ЦП и памяти на клиентской системе, как насчет сетевого давления?

+0

Майк, ваш ответ правильно указывает, что мне нужна PABW. Однако он только упоминает об этом, без практических деталей. Как указано в вопросе, «сервер вне моего контроля», поэтому я не могу использовать 'yaz'. –

+1

Желаю вам удачи в ваших усилиях; однако я потерял интерес к тому, чтобы ответить на любые другие вопросы по этой проблеме. –

+1

Учитывая, что одно TCP-соединение с большими окнами или небольшим RTT может насытить любую сетевую ссылку, я не вижу, какую выгоду вы ожидаете от нескольких сеансов TCP. Каждая новая часть начнется с медленного запуска и, следовательно, будет иметь меньшую скорость передачи, чем у установленного соединения. –

ответ

2

Ответ очень прост: одного TCP-соединения достаточно, чтобы насытить путь между клиентом и сервером.

По крайней мере, это верно со стандартными протоколами TCP/IP и стандартными сетевыми устройствами между клиентом и сервером. Если у вас есть некоторые устройства на пути, которые выполняют какую-то индивидуальную обработку, которая «дросселирует» отдельные TCP-соединения, то, возможно, ответ отличается. Но в таком случае невозможно ответить, если вы точно не определяете, что такое пользовательская обработка. Как отмечают другие, в большинстве случаев формирование или ограничение сетевого трафика, вероятно, выполняется на основе IP-адресов, а не на заголовках TCP, поэтому создание дополнительных TCP-соединений не поможет. Если ваш случай отличается от того, что может быть интересно услышать, пожалуйста, объясните подробнее.

По моему мнению (просто мнение, вы можете не соглашаться, конечно), реальный ответ на вопрос о создании пользовательского «ускорителя загрузки»: не делайте этого. TCP работает очень хорошо, как есть. Помимо нескольких особых случаев (например, SCPS-TP), вы вряд ли улучшаете производительность TCP, играя в трюки с несколькими подключениями или возитесь с параметрами сокета. И если вам удастся повысить производительность, вы, вероятно, делаете это за счет снижения общей производительности сети для других пользователей. Это плохо.

+0

Мой практический опыт показывает, что две длинные загрузки обеспечивают лучшую пропускную способность; Он хорошо масштабируется до 10 подключений (пропускная способность последней мили). Как будто кто-то перекрывает межконтинентальный трафик до ~ 1 МБ/с (.5.2 в зависимости от времени суток). Я не знаю, кто, но движение на каждом континенте в порядке. Дело в том, speedtest.net использует 4 подключения для загрузки и 2 для загрузки. Такая кепка может даже быть прагматичным подходом к обеспечению SLA среди клиентов ... –

Смежные вопросы