~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
+relaybot
Most2
Nausicaa
Vort
Xeha
anon2
b3t4f4c3
guest
karamba_i2p
nemiga
not_bob_afk
poriori_
profetikla
soos
un
weko
whothefuckami_
НАТАШКА
Vort
потестировал последний коммит. получилось вполне ожидаемо:
Vort
скатывания RTT вниз больше нет, но вместо этого есть заморозка при больших seqn
Vort
у m_RTT со временем получается настолько большой вес, что сдвинуть с места (перепрыгнуть с учётом округления хотя бы на единицу) его практически нереально
Vort
так, конечно, лучше, чем было, но всё равно надо улучшать
Vort
хоть правильный вариант - изучать алгоритмы (хоть в java версии, хоть гуглить), скажу свою идею по модификации того, что есть:
Vort
вместо seqn можно сделать отдельный счётчик. увеличивать его как seqn, но только до определённого фиксированного значения
Vort
заодно его можно будет сбрасывать при смене туннеля. seqn, как я понимаю, не сбросишь
orignal
правильно
orignal
надо сделать второй шаг это обнудение его веса при переключении
Vort
думаю, ограничение тоже нужно. скорее всего, значение "блокируется" раньше, чем новый туннель создаётся
Vort
вот про то, до какого значения ограничивать - не знаю. мне кажется, 10-20 нормально будет
Vort
надо наверно поставить лимит примерно наугад, последить за RTT и решить, достаточно ли гибкости при лимите
Vort
но, конечно же, и без лимита просто сброс - это тоже будет шаг вперёд
orignal
там я тебе говорю попробуй если seqn кратен 16 пересчитывать поаполам
orignal
(seqn & 0x0f) = 0
Vort
это получится пропустить часть высокочастотного шума
Vort
я верно предположил, что seqn обнулять нельзя?
Vort
если да, то всё равно нужен новый счётчик
Vort
так что я лучше подожду реализации обнуления веса, а потом уже попробую что-то менять. если надо будет
orignal
он из пришедшего пакета берется
orignal
его никак не "обнулить"
orignal
там логику надо переделывать
Vort
ну значит новый счётчик
Vort
хм
orignal
вот я и думаю что
orignal
так ты пока проверь если каждый 16-ый
Vort
так seqn всё равно в космос улетает. при каждом 16м будет блокировка не навесегда, а на произвольном шумном значении
Vort
выкинуть 15 из 16 значений - и будет примерно то же самое
karamba_i2p
привет. а вы не в курсе случаем вот такой ресурс bandura.i2p явовский или сишный роутер использует? пишет его зовут Marek Küthe с германии и якобы программер на плюсах...
orignal
так ты в качестве множителя бери не seqn а остаток от деления на 16
orignal
насколько мне известно явовский
orignal
вроде даже I2P+
karamba_i2p
ок, спасибо
orignal
мне дрозд говорил
orignal
но дрозд сам по себе источник обс
Vort
остаток - чтобы оно ещё прыгало от шумного значения к сглаженному...
Vort
я понимаю, зачем начинать с маленького веса - чтобы при старте потока было какое-то адекватное значение
Vort
но посреди работы это уже не оправданно (за исключением случая переключения, конечно же)
Vort
говорю же - для переключения на другой туннель всё равно нужен новый счётчик
Vort
и на этом можно уже дальше строить логику контроля за сглаживанием
Vort
я вчера говорил про теорию управления, сейчас уже не уверен - тут просто фильтр
Vort
low pass filter
Vort
скользящее среднее был бы FIR (КИХ)
Vort
а вот эта вот штука с динамическим весом - IIR (БИХ)
Vort
+ ещё пояснение: задача - сбросить вес при переключении
Vort
seqn сбросить нельзя, значит весу нужна своя переменная
Vort
попробую сейчас это на(говно)кодить. если сломаю - вернусь просто на прошлый бинарник. с кодом будет проще обсуждать
orignal
может и не нужна
orignal
там продумать надо
Vort
если вариант окажется негодным - не страшно
Vort
готово. чат жив, майн жив, надо больше думать и тестировать
Vort
посмотрю, как на другой тоннель прыгать будет
Vort
не сброс, конечно, но, думаю, быстро адаптируется
orignal
так ты самое главное не сделал
orignal
момент переключения
Vort
сброс не сделал. знаю
orignal
там где RTO зануляется
Vort
но это надо глубже в код лезть
Vort
я просто показал идею со счётчиком
Vort
поверх неё надо сделать сброс. если основа годится естественно
orignal
ну это то понятно
orignal
я просто думаю правильный ли это алгоритм в принципе
Vort
я модифицировал то, что есть. притянул его к тому состоянию, которое мне кажется адекватным
orignal
в любом случае если оно улучшаем работу то следует делать
Vort
а с нуля или по документации java i2p однозначно можно сделать лучше
orignal
этот код еще в 2014 году был написан
orignal
так что сам понимаешь
Vort
ну надо ещё потестировать и подумать. я же окружающий код первый раз вижу, мог что-то не учесть
orignal
я тогда сделал чтобы книжки с флибусты качались и ладно ))
Vort
:)
orignal
Vort оказывается у меня та же ботва в SSU2