IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2024/03/15
~AreEnn
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest18377
HackerMan
KabaOS
Most2
Nausicaa
Ruskoye_911
Spirit90
Trusishka
Vort
`
acetone_
anon3
b3t4f4c3
mittwerk
nemiga
not_bob_afk
plap
poriori_
profetikla
segfault
soos
teeth
tensor
un
weko_
whothefuckami
WebClient22 R4SAS здравствуйте
WebClient22 Теперь можно тестить
Vort "<~orignal> нагрузки на проц нет" - ну да, меньше перепосылок - меньше нагрузки. но у меня подозрение, что перепосылок как-то совсем мало, надо ещё разбираться
Vort понял кое какую особенность расчёта RTT в SSU2:
Vort в стримах seqn вначале равен нулю и поэтому раньше это позволяло начать оценку с первого реального значения
Vort в SSU2 же m_SendPacketNum начинается где-то с двойки, поэтому единственный вариант вычисления - сползание с начального значения
Vort мне это показалось неправильным и я решил потестировать вот такой вариант: github.com/Vort/i2pd/commit/d74033dd2b7929c2d082f01df665761b4c831266
Vort onon1: как думаешь - улучшит изменение работу узла или ухудшит? я знаю, что оно неидеально, не в этом вопрос
Vort ещё кое что заметил. для отладки я добавил локально отображение RTT SSU2 в вебконсоли
Vort и мне опять на глаза попались узлы с одинаковым хешем: yQN8
Vort так вот RTT у них считается только на одном из клонов - yQN8: 94.134.180.15:4483 ⇒ [21851619:1522486] [70ms]
Vort на нём же и основное количество трафика, у остальных намного меньше
Vort то ли эти клоны не так уж безобидны и это всё-таки атака, то ли они умудряются как-то заглючивать i2pd, не позволяя ему нормально считать RTT
Vort ещё один вопрос - пытаются ли через них строиться туннели пропорционально их количеству? если они глюченые и бестолковые, то, может, это является заметным вкладом в проседание рейта
Vort с DtQs точно такая же картина
Vort и с F~Uz тоже
Vort забанить бы их нахрен по причине ворованных ключей да и всё - пусть по-нормальному узлы свои настраивают
Vort но если уж очень жалко, тогда надо искать, из-за чего такая ситуация приводит к глюкам
onon Vort: onon1: как думаешь - улучшит изменение работу узла или ухудшит? я знаю, что оно неидеально, не в этом вопрос
onon Так протестируй, только важный момент. При таком расчёте не забудь убрать новый таймстемп при перепосылках. Иначе он сваливается в яму.
onon И на стримах и на SSU
Vort onon: у меня ж коммит с расчётом RTT, при чём тут перепосылки?
Vort и о каком конкретно месте речь - что именно убрать надо?
Vort вот это что ли? it->second->sendTime = ts;
onon2 Да
onon2 И в стримах тоже
Vort так вроде ж это специально так сделано - чтобы каждая новая перепосылка была всё реже и реже
Vort не совсем понимаю, правда, зачем
onon2 Проблема появляется, когда аск пакета уже на подходе, а ты перепосылаешь по таймауту. Получаешь аск, считаешь ртт, и -магия- он очень низкий.
onon2 И ты от него потом считаешт новый ртт а от него рто и начинаешь всё перепосылать заново
onon2 Сваливаясь в яму
Vort подумаю, что тут делать. мне кажется, просто выкинуть эту строчку - неправильно
onon2 Поэтому обработать завышенный ртт от перепосылки проще чем заниженный
onon2 Я пока в своих экспериментах делаю так
Vort onon2: вообще, такого быть не должно. глянь вот эту строчку: if (ts && !it1->second->numResends)
Vort если была перепосылка, то RTT из пакета не считается
onon2 И вправду, а в стримах такого нет.
orignal ну SSU2 я все так позже делал чем стримы
Vort "<onon> Так протестируй" - рейт выше, чем вчера. но рейт - это штука загадочная, поэтому надо чтобы ещё кто-то проверял
Vort а полноценный тест тут нужен в условиях потерь. пока что не настроил такого тестирования
Vort мне кажется, что мои отправки другие узлы избегают, из-за того, что у меня раздачи торрентов
Vort или переотправки всё-таки сломаны оказались, несмотря на переделку вычисления RTT
onon Сори, я пока свои безумные идеи по построению bbr на стримах тестирую.
Vort ладно. может, tetrimer сможет глянуть
onon А насчёт узлов с одинаковыми ключами, банить такое на сутки.
orignal да даже вот ныннешнее релизнуть это огромный прогресс
Vort onon: только случаи смены IP не задеть
onon Если у пользователя просто сменился айпи - потерпит, или пересоздаст, а
onon если это намеренное вредительство, так и будет сидеть в бане
Vort сутки потерпит что ли?
onon А почему нет?
Vort я думаю надо разрешать два IP с одним ключом (ну по v4/v6/ygg ntcp2/ssu2 отдельно)
onon Можно кнопку сделать, сделайте мне новый ключ
Vort потому, что баны не должны быть произвольными
Vort а вот если 3 ip - тогда уже банить всех
Vort точнее ключ
orignal а счас разве запрещено?
orignal мультихоминг роутера думаю работает
onon Представь такое на флудфиле
Vort orignal: а как хранить их RouterInfo к примеру?
Vort как строить транзит через ключ ?
onon Много одинаковых флудфилов с разными адресами
orignal Vort также как лиизсеты
onon Опубликовался на одном а ищут тебя на другом
orignal а какого то один в нетдб у кого то другой
Vort я подозреваю, что в такой конфигурации нет смысла. это разные компы. разве может быть так, что не важно, на какой из них отправить сообщение?
orignal да нет такое бывает когда какой нибудь мудак докер склонирует
orignal и бывает это часто
Vort я о другом говорю
orignal ну объясни
Vort о случаях, когда такая конфигурация сделана специально, а не по ошибке
orignal ну а чем она мешает?
orignal не надо такое только для флудфилов
Vort подозреваю, что пользоваться таким клоном сеть не может
Vort то есть, почти все запросы пойдут не туда
Vort транзит через них не построить, допустим
Vort не просто так же для них RTT не считается
Vort ACK`ов нет, полагаю
Vort или есть, но идут куда-то не туда
Vort продублирую сообщения
Vort [14:44:31] <Vort> подозреваю, что пользоваться таким клоном сеть не может
Vort [14:44:41] <Vort> то есть, почти все запросы пойдут не туда
Vort [14:44:52] <Vort> транзит через них не построить, допустим
Vort [14:46:10] <Vort> не просто так же для них RTT не считается
Vort [14:46:25] <Vort> ACK`ов нет, полагаю
Vort [14:46:53] <Vort> или есть, но идут куда-то не туда
Vort я не против вместо банов сделать нормальную поддержку такой конфигурации, но не уверен, возможно ли это
orignal ну да к концами тоннелей будет проблема
onon2 Не "будет" а "есть"
onon Обязательно в релиз делаем баны
orignal как определять их собираешься?
orignal может просто IP сменился
onon Сразу бан, если ип сменился
onon Пусть меняет себе ключ
orignal нельзя так
onon Можно
orignal тогда всю сеть забанишь
orignal потому что они меняются часто
onon Через сутки бан пройдёт заработает
orignal дурость это сутки ждать
orignal чувак например рестартовал роутер и должен сутки ждать?
onon Ну давай меньше
orignal ну так он и будет ... на 8 минут
onon Нужно сделать, чтобы при получении нового RI с новый адресом, этот адрес обновлялся в блек листе.
onon И если он приходит тот же, то срок бана не меняем, а если опять новый, записываем новый ип и сбрасывем счетчик
onon Тогда если это просто смена ип, то он быстро вылезет из бана, а если такая ситуация как сейчас, то так и будет там сидеть
orignal ну это можно
orignal дрозд также смотрит когда подключабтся
orignal если все время с разных IP то банит
onon Проблемы могут возникнуть у занатовцев с постоянно меняющимся адресом... но я пока точно не знаю.
onon Потому что если мы будем банить только по ип то атакующий может на одном ип поднять на разных портах сотню роутеров...
orignal нет банят именно роутер
orignal по адресу его
onon Блин, не могу придумать как занатовцев правильно обработать, они же к нам постоянно будут с другого адреса подключаться.
onon Очевидно, что одновременно у нас может быть только один линк к уникальному роутеру. Или два в случае миграции.
onon Получается единственный критерий это попытка подключиться к нам с разных адресов одновременно, за исключением случаев миграции.
onon Т. е. один линк принимаем с любого адреса, а если приходит второй с того же роутера и это не миграция, значит что-то тут не так.
Vort ну так не IP проверять, а IP:порт
Vort время жизни сессии не такое уж большое - несколько раз IP смениться не должен
Vort то есть, максимум будет оборванная не до конца сессия со старым адресом + новая рабочая
Vort ну и как-то разные протоколы надо тоже обработать (NTCP2/SSU2 ipv4/ipv6/ygg), пока что плохо понимаю, как
orignal может и во время сессии меняться
orignal для этого и придуман path challenge
Vort я имею в виду плохой сценарий
Vort когда challenge не сработал
Vort и сессия таки порвалась
orignal ну порвалась ну и все
Vort так она может ещё висеть в списке в тот момент когда новая будет создаваться
Vort то есть, кратковременно получится две сессии с одним ключом
Vort пока старая окончательно не отвалится
Vort кстати, у меня есть подозрение, почему у клонов может не быть ack`ов
Vort когда туннель создаётся, то выбирается какой-то определённый из клонов, но когда дело доходит до отправки данных, то они идут в первый попавшийся (один и тот же)
orignal почему?
orignal во первых должна разорваться сессия через которую строили
orignal во вторых обновиться в netdb
Vort это, в основном, U узлы, с тегом. наверно тег сессию держит
orignal тэг ничего не держит
orignal это сами узлы держат
Vort ну сам узел ,да. я криво выразился
Vort и это получается тогда, что таких узлов в сети довольно таки дохрена. если на каждом флудфиле такое (по 200 клонов)
orignal конечно дохрена
orignal говорю же придуки с докером это делают
orignal создают узел а потом клонируют
Vort сейчас посчитаю процент itag
orignal нее
orignal U узел всегда его запрашивает
Vort даже если не использует?
orignal именно
orignal если сессия с интродьюсером протухнет то возьмет уже готовую
orignal и да в общем то с какого то момента можно не запрашивать
Vort ну значит не очень дохрена, а просто дохрена. itag 1282 штуки, yQN8 - 193 штуки
orignal то есть твоя мысль что U узлов в сети дохуя?
orignal ну разумеется их море
orignal их большинство
Vort моя мысль в том, что 15% U узлов - клоны
orignal ну а почему нет?
Vort значит, это что-то популярное
Vort вычислить бы
Vort да попросить так не делать
orignal друг у друга папку .i2pd целиком копируют и все дела
Vort явно есть организатор этой деятельности
Vort иначе копировали бы каждый раз у разного юзера
onon Тов. майор проводит спланированную операцию по подрыву работоспособности итупи.
orignal ты хочешь сказать что это один и тот же адрес?
Vort я думаю, что есть ссылка "скачать приложение", и там вот этот ключ. а качают разные юзеры
orignal ты знаешь адрес?
orignal так может просто забанить?
orignal не IP а адерс роутера
Vort yQN8Qt0K0yi89DrMaMa0LhHpQkxj2X3zS0SATe5QAXI=
Vort ну а потом новая версия "приложения" выйдет, опять банить?
Vort можно, конечно, но как-то грубо
orignal давно пора список банов сделать
orignal счас у дрозда спрошу
orignal как раз это правильно
orignal нехуй маразм плодить
Vort есть ещё менее популярные ключи, предполагаю "предыдущую версию приложения"
Vort DtQsGzkbeR3nilr6ZvywR2O7-f0XaaV~YfHXohqwjgI=
Vort F~UzS1mTN3XYlnOfidMBv5Z4lHI7dsCZ8N5mxpyc-OU=
orignal послушаем дрозда он люьитель такое банить
Vort может, ещё какие есть - но эти трое попадаются на глаза чаще всего
orignal я знаю что надо
orignal в профиль писать параметр сколько дубликатов встречалось за последнее время
Vort yQN8 - 188 штук, DtQs - 25 штук, F~Uz - 12 штук
orignal и если много то не строить через них тоннели
orignal если флудфил то банить
Vort только же надо смену портов NAT и адресов через DHCP как-то исключить из этого процесса
orignal ну за промежуток времени
orignal если в течение часа например 5 раз разных втстретилось то исключать
Vort лучше тестово сделать и посмотреть, вылезут ли вот эти ключи, что я написал
Vort короч потестировать классификатор
Vort мне кажется, лучше вариант "сколько одновременно висит в списке"
orignal а разве в списке может быть несколько с один роутером?
orignal *одним
orignal толкьо если NTCP2 и SSU2
orignal иначе это бага
Vort я вообще-то об этом всё время и говорю :/
orignal так это бага тогда
Vort иначе бы я их не заметил
orignal надо чинить
Vort ну вот возьми на своём узле открой список SSU2 и браузером в поиск воткни yQN8
orignal там есть хэш SessionsByRouterHash
orignal счас
orignal да ты прав
orignal вот с этим бы надо разбираться
Vort значит я просто не смог сразу нормально объяснить :/
onon Дрозд это кто, я извиняюсь. Тот который доктор зед?
orignal dr|zed
` onon, а кто спрашивает?
onon Кого спрашивает?
orignal пойду я пересобрусь на узле с баунсером
orignal вернусь через пару часов
Vort orignal: сможешь глянуть и/или потестировать мой коммит с переделкой RTT? я подозреваю, что он что-то улучшает, но, к сожалению, не уверен
orignal какой?
Vort основная идея: убрать возможность "залипания" значения. тестировал пингая IP вручную, довольно часто совпадает. хз как ещё проверять
Vort сейчас скину ссылку
orignal посмотрю
orignal не люблю я double
orignal а так вроде нормально
orignal по крайней мере также как стримах
orignal кстати почему double а не float?
Vort я тоже не люблю double, но иначе будут проблемы из-за округления в некоторых случаях
Vort был бы RTT в микросекундах, можно было бы и int`ом обойтись
Vort но если начну переделывать - опять накосячу
Vort double это, вроде, более родной формат для процессора
orignal float точно более родной
orignal а с дубликатами не смотрел почему?
Vort короч по double/float пока что делаю вывод - примерно без разницы
orignal угу но float просто привычнее потому что он напримерт на видеокарты идет
Vort это по скорости. ну а RAM там килобайт 10 разницы примерно
Vort пока что i2pd на видеокарты портировать не будем :)
Vort ну по дублям я подозреваю там недоделка как раз из-за NAT, чтобы переподключение с другим IP:портом не испортить
Vort хотя может и просто баг, не знаю
Vort про RTT - его потестировать желательно
Vort кстати - m_TunnelCreationSuccessRate - это же тоже double
Vort +1 причина, по которой я double выбрал
Vort потому что в аналогичном месте так сделано
Vort там тоже EWMA и тоже важна точность
Vort в будущем можно будет на монотонные микросекунды перейти
Vort ну и для рейта можно множитель сделать не 100 (проценты), а миллион. а потом делить (если хочется от double уйти)
Vort много всяких разных интересных оптимизаций существует. но в i2pd до них далеко - более важные задачи есть
orignal я думаю там все таки реально несколько роутеров
Vort ну да. с одними и теми же ключами
Vort я имел в виду причины, по которым такая "возможность" не убрана
Vort чтобы не поломать NAT. наверное. точнее, может быть
orignal она не убрана из-за path challenge
orignal но это надо обрабатывать
Vort то есть, разделить случаи "NAT" и "хренова туча узлов с одним и тем же ключом"?
Vort если да, то примерно это мы и обсуждаем сегодня )
Vort классификацию
Vort по RTT - всё же сделаю PR и понадеюсь на лучшее (что ничего не ухудшу)
Vort а "когда-нибудь" надо будет полировать это место
orignal я счас с дедом вопрос обсуждаю
Vort по узлам с 1 ключом? или по RTT ?
orignal по узлам с одним ключом
Vort ок. значит по RTT оформил в виде PR. вливать или не вливать - не знаю. github.com/PurpleI2P/i2pd/pull/2043
orignal волбю
orignal поглядим
Vort если можешь, на SSU2-only погоняй
Vort там эффект будет виднее всего
orignal if (m_RTT != SSU2_UNKNOWN_RTT)
orignal так нельзя
orignal для double
Vort если я до этого туда это значение записал, то почему бы и нет?
Vort там же никакой арифметики нету
Vort записали - прочитали - сравнили
orignal потому что не всегда 1 в double это 1
orignal а ну тут да
orignal если это твое значени
orignal так же константа
Vort 1 как раз всегда 1
Vort и -1 тоже
Vort и степени двойки
Vort короч там по каждому значению отдельно смотреть надо :)
Vort ну и константа, да
onon1 Я вижу вы умеете си, но не умеете сети, я наоборот.
Vort onon1: ну вот и обсуждаем поэтому
onon1 Ну вроде, сильно хуже стать не должно
onon1 Скорее даже наоборот.
Vort хорошо
Vort следующий этап по этому куску (скорее всего, в далёком будущем) - это отвязка степени сглаживания от частоты пакетов
onon1 Частота пакетов это что за зверь?
Vort сколько пакетов в секунду приходит
Vort ну или уходит
Vort нет, я имею в виду сколько семплов RTT за секунду удастся сгенерировать
Vort то есть как бы разрешение данных
Vort похожая ситуация с разрешением картинки
onon1 А, ну так я уже писал, что считать RTT нужно по самому низкому значению в аске
Vort фото 1000x1000 пикселей надо сглаживать иначе, чем 10х10 пикселей
onon1 Я так у себя в опытах сейчас делаю
Vort я сейчас вспоминаю, что читал про разделение RTT на две части
Vort RTT самой сети и RTT буферов
Vort и вот мне кажется, что минимум он будет целиться именно на RTT сети
Vort скорее всего, ошибаюсь, но подумать над этим стоит (если ещё не)
Vort Anonymous: sorry I'm tired today to have even more talk
onon1 Мы не можем знать, эти пакеты ждали в буфере или копились аски на узле получателя.
Anonymous It's okay..
Anonymous It's about SAM/qBittorrent
onon1 Было бы конечно неплохо, чтобы получатель ставил своё время в асках, но тут и протокол менять и разность во времени расчитывать
onon1 Чтобы мы знали или пакеты наши тормозятся или аски зависают
Vort onon1: я пока что плохо понимаю механизм ACK`ов, так что возражать не буду. если будет время - покопаюсь
Vort мне нравится, как в uTP сделано. но тут не uTP :)
Vort оттуда разве что вдохновение брать
onon1 Я кстати, смотрелл в эту сторону, но там задержки большие
onon1 Вероятно пользователям важнее скорость отклика, чем пропускная способность.
onon1 Хотя в жабе вроде можно выбрать два вида туннелей - быстрые или широкие.
Vort в uTP вроде "просто" взяли и зафиксировали лаги на 150мс
Vort но в этом я не уверен, что-то такое читал
Vort то есть, вкачивают данные, пока немножко лагать не начнёт
Vort а перед этим вычисляют "реальный" RTT (без буферов)
Vort как раз по минимуму, считая, что иногда всё же мимо буфера пакет проскочит
onon1 Vort, у тебя случайно нет списка тех "дублирующихся" роутеров? Там деду похоже интересна эта тема.
Vort onon1: я три хеша/адреса показывал
Vort остальное в глаза не бросалось
Vort можно конечно написать код для анализа
Vort но это просто открыть вкладку SSU2 и поискать дубли, должно быть несложно
Vort может, даже онлайн инструменты есть
orignal дед крайне озаботился вопросом кстати
orignal насчет такого мультихоминга
onon1 Огласите весь список, пожалуйста... ©
Vort в java роутере такой же списочек есть? как в i2pd - транспорты
Vort если есть, он может и сам посмотреть
orignal так он считает что это просто смена IP адреса
orignal что они все враз активные он не понимал
orignal считал что это один и тот же
Vort понятно
orignal ну вот счас заудмался
orignal <zzz> look to see if same RI values like "i" and "s"
orignal <zzz> so far the "i" and "s" values are not changing
orignal <zzz> now up to 7 IPs in 10 minutes:
orignal он думал что раз i и s одинаковые это тот же роутер ))
orignal я ему объяснил в чем дело
onon1 Дед всё-таки хочет от тебя сисок. zzz: what's vort's list?
orignal уже кинул
orignal <zzz> sounds like you have some work to do )) Vort+++++ as usual
orignal <zzz> new contender ~SN8