Вы не поверите, но разработчики uTP стремились именно снизить overhead за счет того, что часть функций TCP уже реализована в протоколе BitTorrent (вычисление контрольных сумм, повторная передача частей с плохой суммой). Но они столкнулись с проблемой congestion control, которую до этого люди много лет решали для TCP, что и привело к увеличению нагрузки на сеть. Я вообще удивляюсь, что они не пригласили для разработки uTP ни одного ученого, специализирующегося на congestion control. Это очередное проявление инженерной самонадеянности, что дескать можно обойтись без научного подхода, которая привела к созданию таких уродов, как архитектура х86 и язык PHP.
- Also, if you mentioned laboratory testings - do you check how uTP willl load softrouter comparing to TCP?- No, we have not run any such tests. To a very large degree, we rely on reports from our users, including you
Извините за реанимацию темы. Тут Арвид Норберг (BitTorrent Inc) ищет добровольцев, чтобы потраблшутить этот косяк с мелкими пакетами.Разыскивается: ISP, у которого оборудование просело от uTP, готовый немного поэкспериментировать на своих пользователях.
На форуме utorrent пробегала правильная идея насчет выключения uTP путём внесения определенной записи в ДНС, т.е. чтобы этот вопрос решался конкретным сетевым администратором.
Но пока:if (flags == ST_RESET && (conn->conn_id_send == id || conn->conn_id_recv == id))можно попробовать тупо слать PacketFormatV1 с connid 0 до 65535 и type= ST_RESET; на адрес/порт жертвы.по идее это оторвёт все коннекты на uTP, только адрес/порт узнать сначало нужно.Можно написать в фаере заворот (зеркалирование) всего UDP на отдельную машину на один порт, которая будет проверять пакет uTP или нет, если да то слать пачку/несколько ресетов юзеру, можно даже заспуфить IP отправителя (если работать на машине-фаере его можно получить из pf/ipfw). Если даже будет ложный детек-маловеротно что ресет пакеты uTP другие проги воспримут/пострадают.PS: просмотр чужого кода почти всегда отбивает желание этим пользоваться :(PPS: чукча не читатель, чукча писатель: повторили косяк с дыркой в DNS, а ведь в изначальном пакете connid был 32 бита, хотя бы, и доп поля не проверяются при разрыве (и вообще не понятно проверяются ли - код бегло пролистал).PPPS: UDP для торрента хорошо, реализация та ещё - бррр - уже костыли торчат v, v1 и по мелочам.