Существует гораздо больше алгоритмов контроля заторов, чем вы упомянули здесь, помимо всего прочего, список включает в себя: FAST, Scalable, HSTCP, HTCP, Bic, Cubic, Veno, Vegas.
Существуют также небольшие их вариации из-за исправления ошибок в реальных реализациях, и я предполагаю, что реализации в разных ОС также ведут себя немного по-другому.
Но если мне нужно попытаться придумать идею, это было бы оценить RTT соединения, вы можете попытаться посмотреть, сколько времени прошло между третьим и четвертым пакетами, как первый и второй пакеты могут быть испорчены ARP и другими алгоритмами обнаружения вдоль маршрута.
После того, как у вас есть оценка RTT, вы можете попытаться уточнить ее по пути, хотя я не совсем уверен, как вы могли бы это сделать. Но вам не нужна полная спецификация для программы, просто идеи: -)
Получив RTT, вы можете попытаться поместить пакеты в RTT и посчитать количество пакетов данных в полете в каждом бине. Таким образом, вы сможете «построить» график-cwnd (количество пакетов в бине) и попробовать там какое-то сопоставление с образцом.
В качестве альтернативы можно пойти по трассировке и попытаться «запустить» в своей голове различные алгоритмы управления перегрузкой и посмотреть, совпадает ли решение в любой момент с решением, которое вы сделали бы. Это потребует некоторого снисхождения и точности интервалов.
Это определенно звучит как интересная и сложная задача!