Существует ли алгоритм для снятия отпечатков пальцев алгоритма управления перегрузкой TCP, используемого в захваченном сеансе?
-
22-08-2019 - |
Вопрос
Мне нужна программа для определения Алгоритм контроля перегрузки 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 (количество пакетов в корзине) по времени и попробовать сопоставление с шаблоном.
Альтернативой было бы пройти по трассировке и попытаться «прогнать» в голове различные алгоритмы контроля перегрузки и посмотреть, совпадает ли решение в какой-либо точке с решением, которое вы бы приняли.Это потребует некоторой снисходительности и точности интервалов.
Это определенно звучит как интересная и сложная задача!