Медленный запуск TCP, предотвращение перегрузки и определение пропускной способности - PullRequest
1 голос
/ 25 апреля 2010

Существует ли где-нибудь формула, которая может использоваться для определения минимального количества сегментов / байтов, которые должны быть переданы через TCP-соединение для определения его пропускной способности и которая учитывает медленный запуск и предотвращение перегрузки?Мне известен инструмент pathrate , но я хочу, если возможно, кое-что немного более простое, что я мог бы включить в приложение, чтобы получить приблизительную фигуру.Одним из примеров использования может быть загрузка некоторых данных с веб-сервера, чтобы определить оптимальное количество потоков для автоматической загрузки нескольких небольших файлов.Это связано с предыдущим вопросом, который я написал: TCP, HTTP и многопоточность Sweet Spot

Ответы [ 2 ]

1 голос
/ 13 декабря 2010

Вы можете запустить scholar.google.com и выполнить поиск "TCP chirp". Однако для этого требуются наниматели таймеров, и если вы не напишите алгоритм управления перегрузкой tcp ядра, вам придется переопределить TCP в пространстве пользователя. И это само по себе, вероятно, не даст хороших результатов (ОС общего назначения не очень хороши в вещах, связанных с таймером найма в реальном времени, работающих в пользовательском пространстве).

Теоретически, для использования TCP chirp требуется всего 4-5 сегментов (обычно вы получите лучшее разрешение при более длинной последовательности сегментов) для определения «оптимальной» полосы пропускания.

В любом случае, поскольку вы не можете знать, какой путь используется (например, спутниковая связь или телевизионная трансляция в прямом направлении), вам может потребоваться значительный объем данных (10+ МБ, возможно, даже 1 ГБ), чтобы получить достойное измерение на произвольных путях. (Спутники могут иметь широкую полосу пропускания в несколько мегабайт / с, но также могут иметь задержки в диапазоне 1000-3000 мс; для открытия cwnd TCP требуется несколько раз в оба конца (я бы сказал, около 10 RTT перед началом измерения) ...

0 голосов
/ 03 июня 2010

Я не думаю, что для определения полосы пропускания требуется фиксированное количество байтов. Это число может зависеть от типа сети и скорости.

Пропускная способность - это мера некоторого ресурса, переданного за интервал времени Чтобы получить реальные данные, вам нужно их измерить. Вот некоторые подсказки как это сделать

...