Существует ли алгоритм для снятия отпечатков пальцев алгоритма управления перегрузкой TCP, используемого в захваченном сеансе?

StackOverflow https://stackoverflow.com/questions/528733

Вопрос

Мне нужна программа для определения Алгоритм контроля перегрузки TCP используется в захваченном сеансе TCP.

В указанной статье в Википедии говорится:

TCP New Reno является наиболее часто реализованным алгоритмом, поддержка мешка очень распространена и является расширением Reno/New Reno.Большинство других являются конкурирующими предложениями, которые все еще нуждаются в оценке.Начиная с 2.6.8, ядро ​​Linux переключило реализацию по умолчанию с Reno на BIC.Реализация по умолчанию была снова изменена на Cubic в версии 2.6.19.

Также:

COMPOUND TCP - это реализация TCP Microsoft, которая поддерживает два разных окна заторов одновременно, с целью достижения хорошей производительности на LFN, одновременно не нарушая справедливость.Он был широко развернут с Microsoft Windows Vista и Windows Server 2008 и был перенесен в более старые версии Microsoft Windows, а также Linux.

Каковы будут некоторые стратегии для определения того, какой алгоритм CC используется (от третьей стороны, захватывающей сеанс)?

Обновлять

Этот проект создал инструмент для этого:

Интернет недавно развился от однородного контроля заторов до гетерогенного контроля заторов.Несколько лет назад интернет -трафик в основном контролировался стандартным алгоритмом TCP AIMD, тогда как интернет -трафик в настоящее время контролируется множеством различных алгоритмов контроля перегрузки TCP, таких как AIMD, BIC, Cubic, CTCP, HSTCP, HTCP, Hybla, Illinois, LP, STCP, Вегас, Вена, Вествуд+и Да.Тем не менее, существует очень мало работа над производительностью и стабильностью изучение Интернета с гетерогенный контроль заторов.Один фундаментальной причиной является отсутствие информация о развертывании различных Алгоритмы TCP.Цели этого проект предназначен для:

1) develop tools for identifying the TCP algorithms in the Internet,
2) conduct large-scale TCP-algorithm measurements in the Internet.
Это было полезно?

Решение

Существует гораздо больше алгоритмов управления перегрузкой, чем вы упомянули здесь, на мой взгляд, список включает в себя:БЫСТРЫЙ, масштабируемый, HSTCP, HTCP, Bic, Cubic, Veno, Vegas.

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

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

После того, как у вас есть оценка RTT, вы можете попытаться уточнить ее по ходу дела, хотя я не совсем уверен, как вы могли бы это сделать.Но вам не нужна полная спецификация программы, только идеи :-)

Выяснив RTT, вы можете попытаться поместить пакеты в контейнеры RTT и подсчитать количество пакетов данных в полете в каждом контейнере.Таким образом, вы сможете «построить» расчетный-cwnd (количество пакетов в корзине) по времени и попробовать сопоставление с шаблоном.

Альтернативой было бы пройти по трассировке и попытаться «прогнать» в голове различные алгоритмы контроля перегрузки и посмотреть, совпадает ли решение в какой-либо точке с решением, которое вы бы приняли.Это потребует некоторой снисходительности и точности интервалов.

Это определенно звучит как интересная и сложная задача!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top