IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2024/05/14
~AreEnn
~R4SAS
~orignal
~villain
&N00B
+Xeha
+relaybot
DUHOVKIN
Guest8889
HackerMan
Most2
Nausicaa
Ruskoye_911
Vort
`
acetone_
ananas
anon3
b3t4f4c3
fidoid_
guest
nemiga
not_bob_afk
plap
poriori
profetikla
soos
teeth
tensor
un
weko_
whothefuckami
R4SAS сейчас соберу ведро
R4SAS и залью
orignal я пока занялся даленьшими переделками
R4SAS хеши залиты
R4SAS фдроид залито
R4SAS orignal: решил капитально ломать?
orignal я решил обработку запросов netdb вынести в отдельный тред
orignal потому что во первых их много во вторых там на каждом шагу мьютексы
orignal что отнюдь не ускоряет работу
weko Так что за kytv
orignal ну один из джавистов
weko Разработкчик или "менеджер"?
orignal навреное еще с jrandom-ом общался
orignal в основном сисдмин
orignal много разных сервисов держал
orignal лет 10 назад внезапно пропал
weko И теперь появился
orignal ну да внезапно сегодня
weko наверное тогда pgp у него был
weko Возможно
orignal маузер кстати должен знать кто такой kytv
relaybot 13mittwerkz: ipfs хорошая штука?
Vort "apophis: именно криптовалюту или оплату сервиса в общем ?" в случае децентрализации оплаты без криптовалюты не получится
Vort я имею в виду ситуацию, когда оплатой занимается сервис сам по себе (разработчики только подкручивают алгоритмы)
Vort и оплату имею в виду в обе стороны - как за пользование сервисом так и за предоставление ресурсов сервису
Vort хм. что-то гитхаб переглючило: Building container for linux/arm64 / Started 11h 13m 20s ago
Vort при этом, пункт Complete job отмечен
orignal мне пришла в голову мысль насчет запросов роутера
orignal если мы флудфил то следует исключать себя
Vort видел такое в логах по-моему
orignal я смотрел по коду мы этого не делаем
Vort я имею в виду, что я видел запросы к самому себе
orignal потому что запршивать у себя в прициипе ничего не случится но смысла нет
orignal потому что мы не получим ничего нового
orignal понятно что запрос лизсета через тоннели можно
orignal а вот роутеров не надо
Vort несколько запросов в минуту к себе по одному из моих логов
orignal надо бы это починить
orignal починю сегодня
` запросы к самому себе, чтобы никто не догадалси)00
Vort если выкладывать свой лог файл с запросами ) но это мелочи
Vort надо же догадаться, что надо догадываться. а это сложно
orignal куда то опять onon пропал
orignal с его идеей пееключать тоннели при получении дубликатов
Vort ну ты же обещал ему 12го числа стримы переделывать, наверно обиделся
orignal так я вот и собираюсь
orignal хотел у него кое что уточнить
orignal а именно сценарий
orignal тогда продолжу netdb переделывать
weko [11:52:11] <orignal> если мы флудфил то следует исключать себя
weko Тут тоже однозначно нет. Тоже самое, что с туннелями - будет видно, что на конкретном флудфиле нету лиссета, а значит вероятно это владелец лиссета
orignal это касается только роутеров
weko Тогда ок
weko А по поводу туннелей что?
weko Через себя должно строить тоже
orignal а лизсет рузмеется можно запрашивать себя через тоннели
orignal строим
weko orignal: а публиковать?
weko orignal: а концы туннелей, самое важное?
orignal не имеет значения. концом тоннеля можем быть мы сами
orignal разумеется мы сами не можем быть соседним пиром
orignal но это касается любого роутера
orignal он не может быть дважды рядом
weko Тогда ок
weko 1 хоп тогда ещё хуже
weko Я помню предлагал сделать что может через себя 1 хоп с симуляцией пинга и потерь
orignal потому вот и не надо ставить 1 хоп
weko Просто желательно чтобы об этом было известно
orignal известно что? что нельзя ставить коротокие тоннели если хочешь анониности?
weko orignal: что всё хуже чем может показаться
orignal ну а кто велит умникам это делать?
weko Я предпочёл бы знать
weko Я исхожу из этого
` Ребята, ребятушки, ребятули.. Если бы я только знал, в какой позе попользовать свой подматрасник, чтобы выдать вам базу, почему у меня где-то на 15к роутерах захлёбывается перестроение туннелей. Чтобы могли улучшить этот момент или хотя бы иметь знание, что
` вот такие пределы на такие мощЪности.
onon Лось, если не занят, вопрос есть. Сложный длинный.
onon Даже несколько.
orignal привет
orignal тебя то мне и надо
orignal давай сначала вопрос
onon У нас в SSU какой размер пакета? Все по 1к?
onon В сокет Какой MTU пихается?
orignal размер MTU
orignal минимальный из двух сторон
onon Вычисляется по ходу
onon Или сразу согласовывается
orignal каждый передает свой при соединении
orignal там блок для этого есть
orignal либо с интерфейса берет либо явно с конфига если у тебя хитрая сеть
orignal например ты через дсл и точно знаешь свой реальный MTU
onon Ну в общем оптимизация MTU это не главный вопрос пока. Можешь у себя сделать ip -s link и скинуть сюда qlen
Vort "<`> вот такие пределы на такие мощЪности." я предполагаю, что у большинства узлов ситуация ровно та же. то есть, дело в не в железе и не в провайдере, а в особенностях i2p (или i2pd)
onon И ещё потом ss -utlm и скинуть значения skmem: под сокетом i2pd
onon Для UDP и TCP
orignal 2: wlp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
orignal это?
onon Да
orignal udp UNCONN 0 0 0.0.0.0:15124 0.0.0.0:*
orignal udp UNCONN 0 0 [::]:15124 [::]:*
orignal tcp LISTEN 0 128 0.0.0.0:15124 0.0.0.0:*
orignal tcp LISTEN 0 128 [::]:15124 [::]:*
orignal это с 2RRY
onon skmem: нужен
orignal так я его и сделал
onon А вот такого skmem:(r0,rb131072,t0,tb16384,f0,w0,o0,bl0,d0) там нету?
orignal счас
orignal а все
orignal там просто разные строчик
orignal udp UNCONN 0 0 0.0.0.0:15124 0.0.0.0:*
orignal skmem:(r0,rb2457600,t0,tb2457600,f4096,w0,o0,bl0,d4114)
orignal оно?
onon Да, ещё для TCP
onon Ещё было бы неплохо аптайм 2RRY для сравнения.
orignal cp LISTEN 0 128 0.0.0.0:15124 0.0.0.0:*
orignal skmem:(r0,rb131072,t0,tb16384,f0,w0,o0,bl0,d461836)
orignal аптайм 21 час
onon Вывод: Либо и2п изначально криво спроектирован, либо у нас проблема с реализацией
onon d4114
onon Это дропы пакетов
onon У меня на других приложениях нигде дропов столько нет
orignal возможно
onon Ещё важный момент
onon tb2457600 это sendbuffer
orignal но не забывай что 2RRY это сильно нагруженный фудфил
onon Смотри, qlen 1000 в интерфейса это количество пакетов
orignal это у меня на другой машине
onon На отправку лимит
onon Всё, что сверху, дропается
orignal на 2RRY
orignal eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
onon Вот помножь 1000 на MTU
orignal а поднять нельзя?
onon Ну себе можно, а всем как
onon ip link set eth0 txqueuelen 4096
orignal написать инстуркцияю
orignal а программно нельзя?
orignal или прочитать как то
Vort почему эта очередь накапливается?
orignal а теперь у меня к тебе вопрос про стримы
onon Но только смысла в этом всё равно не много, это будет лечить симптомы. Основная проблема в том, что ты шлёшь пакеты огромными пачками
onon По 3 и более мб
onon И они не влезают
orignal короче я хочу менять тоннели если пришло несколько дубликатов подряд
onon И дропаются или на сендбуфере или на карте
orignal с каким то промежутком
Vort за сколько сек эта тыща должна отправиться?
orignal вопрос: на каком сценарии у тебя это вопросизводится?
orignal то есть понимаешь там не только послений пакет надо анализировать
orignal на самом деле там надо смотреть интервал между дубликатами
orignal если пришли с интревалом больше например два и ли пять RTO тогда переключаться
onon В общем, нужно перепроверить, я уже давно не пользуюсь вашими стримами, нужно поискать.
orignal вот то и был вопрос к тебе
orignal я собрался заняться этим вопросом вплотную
onon Это у меня так сделано, что он по одному пакету шлёт в ожидании ответа, возможно придётся переделывать стримы целиком.
onon Да, у тебя он пачками шлёт, облом.
Vort по очередям: если линуксу что-то куда-то не лезет, то надо чётко узнавать, какие у него требования. пока что мне не понятно, какие чётко паттерны отправок пакетов линукс не поддерживает и, соответственно, что может иметь смысл менять
Vort в i2pd
onon Сорян тогда
onon В оправдание могу сказать, что мои стримы с таким изменением почти всегда проходят гигатест, если туннели не сфейлятся все.
orignal ну так твоя идея то в целом правильная
onon Средняя скорость на тестах не впечатляющая 30-50кб/с
orignal что надо дубликаты корректно обрабатывать
onon Большую часть времени болтатся около 10
onon Максимальная всё так же около 1мб/с
onon Больше почему-то на 8 хопах не видел.
onon Ещё есть вопрос, сообщение для строительства туннелей это же I2NP или нет?
onon TBR или как оно там называется
onon Я на выходных на досуге тебе анимацию сделал, показать как SSU3 должен с пакетами работать:
onon Чтобы ты не вставлял в буфер сразу несколько метров
Vort "<onon> Средняя скорость на тестах не впечатляющая 30-50кб/с" "<onon> Чтобы ты не вставлял в буфер сразу несколько метров" - что-то тут не сходится
Vort откуда несколько мегов за один вызов возьмутся то?
onon Что не так?
onon Если три минуты ждать, а потом воткнуть в буфер 10метров, ничего хорошего не выйдет
weko onon: TBM
Vort onon: это речь про случай с единственным стримом?
weko Я уже писал что в стримах пачками пакеты отправляются
weko И говорил что это может быть проблемой
onon Сделай watch -n.1 -d 'ss -utlm' и посмотри, сколько пакетов он за раз в буфер вставляет
orignal ну так скажи как отсылать то?
Vort weko: несколько мегабайт за раз видел хоть когда-то?
onon Я тебе анимацию выше скинул
onon Как отправлять
weko Vort: там просто по логике увидел что так работает
weko Буфер отправки освобождается, когда приходит ACK
orignal ты словами кратко скажи
weko А он приходит раз в какое то время
weko И там сразу несколькими пакетов из него стираются и сразу же заполняются и отправляются
onon Ты что анимашку посмотреть не можешь?
weko Я просто подумал что может это и не проблема
onon Я что зря её два часа рисовал?
weko Проблема в очередях на транспорте
weko А именно в их наличии
Vort weko: так сейчас была речь о том, что ОС это не может вытерпеть. но очевидно, что какое-то количество одновременно отправленных пакетов для ОС не должно составлять проблем. вопрос - какое количество создаёт проблему?
weko Vort: я про стримы которые i2pшные
Vort weko: так стримы отправляют в транспорт, а транспорт - в ОС
weko Vort: понятное дело
weko Ну, так то можно проследить потери
weko Правда не знаю как
Vort ну вот. если ОС глючит, то надо понять, от чего именно
weko В WireShark можно?
Vort не от пачки в 10 пакетов - уж точно
weko Vort: ну точно не в NTCP2
weko А вероятно в SSU2
weko В NTCP2 как я помню проблем со скоростью не было
Vort weko: в том то и суть, что я как раз это и делал. и те шипы, которые я видел, уже устранены
weko А вот в ssu2 как раз были
weko Vort: у меня там скрипт есть по запуску тестнета
Vort а в то, что оставшаяся мелочь может создавать проблемы, верится слабо
weko Ты пробовал разобраться?
weko Короче наверное надо новую версию проьестить
Vort я же говорил, что я не поверю результатам с виртуалки
Vort так что лучше ты погоняй
weko Vort: так и не на виртуалке
Vort может свежие баги повылавливаешь )
weko Можно на хостовой ос запускатт
weko Тем более верить никто не заставляет
Vort под винду блокируется запуск второго процесса i2pd
Vort мне каждый раз патчить бинарник приходится чтобы второй процесс запустить
Vort и это дело не в винде, так i2pd сделан
weko Тут главное, что если проблема будет видна - хорошо, если нет - никто не заставляет решать с этого момента, что багов нет
weko Просто контролируемые условия, которые можно менять чтобы поймать баг
weko Или отследить
Vort это понятно
weko Vort: так запусти линукс в вируталке
weko На винде в любом случае скрипт не заработает
weko Там 127.0.0.0/24 подсеть используется
weko Я хотел расширить до /16, чтобы больше запустить
Vort я же об этом и говорил - мне кажется, что виртуалка внесёт искажения в результаты измерений
weko Но руки не дошли
weko Vort: кому какое дело?
weko Это же не научная работа
weko И не бизнес отчёт
weko Главное будет ясно куда копать
weko Ну, если не хочешь- сам посмотрю
onon Так мне никто не ответил, TBM == I2NP ?
orignal это вид I2NP да
orignal I2NP сообщение типа TBM
onon Тогда следующий вопрос: что такое
onon const unsigned int I2NP_MESSAGE_EXPIRATION_TIMEOUT = 8000; // in milliseconds (as initial RTT)
onon Я спрашиваю потому, что:
onon const int TUNNEL_CREATION_TIMEOUT = 30; // 30 seconds
orignal тоннель через несколько хопов строится
orignal поэтому
onon Он для каждого участника отдельный задаётся? Какой в этом смысл?
onon Ещё мысль пришла в голову, злоумышленник всегда может узнать использует ли сервис мультихоуминг, и сколько зеркал сейчас в сети.
onon Поэтому мультихоуминг не спасает от корелляции с выключенными роутерами и исчезнувшим зеркалом.
onon Тут может спасти, только скрытый режим, но там уже проблема с сокрытием трафика.
weko onon: да, это I2NP сообщение.
weko onon: да, при чём понимаю как
weko Отслеживать разные наборы туннелей в лиссетах на флудфилах
weko Если как то объединить лиссеты... Хотя в любом случае подозрительно, если какая то часть туннелей резко отваливается
` <onon> Тут может спасти, только скрытый режим, но там уже проблема с сокрытием трафика.
` Не ты ли тот который ш2з запускает через тор?
onon Про сокрытие трафика на hidden узлах с сервисами можно делать так: есть "публичные" роутеры которые как бы ни при делах. И есть скрытые зеркала, которые подключаются только к этим публичным роутерам.
onon На каждом из скрытых узлов строятся туннели через набор этих публичных роутеров вперемешку со скрытыми, и через них на самого себя непрерывно шлётся трафик.
onon Так через каждый скрытый роутер будет идти трафик от каждого из скрытых роутеров, и в нём маскируется трафик от сервиса.
onon Лучше я пока не придумал.
` А ещё сверЪху навернуть family=
` м-м-м як вкусна-а-а
onon `, скрытый режим это не про тор.
onon Я надеюсь, вы записываете мои "гениальные" идеи.
weko family это полная нахуй не нужная залупа.
weko onon: запиши сам.
weko Я вот не могу сейчас
onon Говорят, бумага всё стерпит. А тут Ацетон всё стерпит, главное, что бы был доступен, когда понадобится.
orignal family это косплей тора
weko orignal: да я писал уже почему это не имеет смысла
Vort family в Tor поддерживается в порядке ручными банами
Vort для i2p это не вариант
orignal ну вот дед косплеил тор
orignal с family
weko Главный вопрос нахуя
weko Разве он не понял что смысла нет ?
weko Он же вроде не тупой
weko Солевому даже выгодно их наличие.
weko Упрощает атаку ему
onon Кто такой этот солевой? Откуда к нему столько внимания.
Vort onon: атаковал сеть и срал в чат
weko onon: потенциальный атакующий
weko Я использую как нарицательное
onon Срал в чат это я видел, кто-то ботов наплодил и спамил
weko Нет, срал в другом смысле
onon Что, обидные слова про разработчиков писал?
Vort "<weko> Разве он не понял что смысла нет ?" - ну какой-то аналог для защиты и в i2p может потребоваться. просто пока таких масштабных атак нету и нету таких активных юзеров с сотнями узлов
Vort onon: и это тоже
weko Ну и как это поможет защитить?
weko Нет никаких гарантий что роутер из family лучше чем любой другой
weko Это даёт ровно ничего
Vort weko: дело не в лучше, скорее наоборот - Tor следит чтобы туннели не шли через узлы одного и того же владельца
Vort таким образом улучшая децентрализацию
weko Vort: так я м говорю что это "фича" только хуже делает
onon Лось, анимацию смотрел, что я скидывал? Сможешь так сделать?
Vort weko: можешь напомнить, чем хуже?
weko Хороший админ, который готов использовать, и так бы не стал, а солевой в любом случае не будет. Только в пером случае больше шанс, что будут использоваться роутеры солевого
Vort "и так бы не стал" - почему?
weko Vort: так он же готов поставить family
weko И потому что он не солевой
Vort а, имеешь в виду не стал бы гадить сети?
weko Очевидно
weko Ну кто ставит family да
weko "гадить", мягко сказано. Проводить деанон атаки
orignal ну у меня стоит family=gostcoin
weko orignal: и?
orignal для рекламы госкойна ))
weko А ну это можно просто пихнуть в RI)
Vort короч я понял мысль. family работает нормально только в условиях принуждения
orignal ну это просто для тестирования на самом деле
weko Vort: ну а как очевидно в децентрализованной сети принуждения нету
orignal ну так общеизвестно что 2RRY мой
weko orignal: типо тестировать в реальной сети, но с +- контролируемыми условиями?
weko В плане по качеству роутеров.
orignal ну где то же народ проверять работу family
weko А, ты про это
weko Я же вообще говорю что family не нужная штука
weko Хотя вот что я выше написал - может быть как вариант использования
weko Но точно не стоит делать особые механизмы строения туннелей на их основе
weko Кстати говоря, что по поводу использования флудфилов как ресиды? Почему бы не сделать этот способ по умолчанию
Vort разве в i2p вообще есть какие-то проблемы с ресидами?
weko Vort: ну, их легко забанить
weko Очень легко
weko В любой момент роскомпозор может это сделать
Vort а флудфилов не очень, но тоже легко
weko Ну во первых их сильно больше
weko Придётся банить целую пачку адресов
Vort и это же вшить список флудфилов в код надо. и обновлять
orignal ну так ресид же не нужен
orignal можно просто скопировать netdb у товарища
weko Так если нет товарища?
orignal или торрентом
Vort тогда торренты, верно
orignal weko а откуда то же ты узнал про i2p
weko Ну, тогда надо этим заняться
orignal вот там и подскажут где брать
weko orignal: ацетон)
Vort но я думаю, что если цензоры захотят, то они тупо все узлы перебанят и всё
orignal ну вот ацетон и есть тот товарищ ))
weko Vort: ну вот тут и будут проблемы
weko Как с телегой
Vort у кого проблемы?
weko Ну никто же не публикует базы...
Vort собирать RI не сложно
orignal Vort не так и просто потому что они же все время меняются
orignal а полного списка нет ни у кого
weko Я просто говорю желательно чтобы было как можно больше вариантоы
orignal потому что пока собираешь его он успеет измениться
weko Сейчас же один копипаст и все ресиды в бане
Vort я думаю, 80-90% R узлов если забанить, то сеть нормально работать не будет
karamba_i2p могу ошибаться но кажется reg.i2p даун
weko Vort: вот я и говорю что с этим проблемы
weko Как с телегой
Vort karamba_i2p: у меня открылся
karamba_i2p хм... а у меня нифига
Vort может туннелей нету на дестинейшене?
karamba_i2p стаст и нотбоб живы
weko У меня тоже рег работает
karamba_i2p ладно спасибо
karamba_i2p ща покопаю адресбук
Vort weko: говорю же - чтобы сделать фф ресидами - их надо вшить в код. вот и будет списочек :)
Vort для бана то есть
weko Это да
weko Только большой список
weko Можно лишнее цепануть
weko Я же говорю будет как с телегой
weko Проблема кстати в том что все эти RI будут пару мегабайт весить
karamba_i2p адрессбук убил и заново добавил и заработало
karamba_i2p странно
orignal Vort забанить где?
onon orignal, я надеюсь, проблему с дропами я достаточно чётко обозначил, пофиксишь к следующему релизу? Я тогда буду над другими проблемами думать.
Vort "<~orignal> Vort забанить где?" на уровне провайдера
Vort хотя может и будет работать. надо когда-нибудь на виртуалке проверить
orignal так а причем тут вся сеть?
Vort я мел в виду для конкретного юзера
Vort имел*
orignal ну так для этого trusted есть
orignal как onon подключался
orignal onon так а что именно фиксить я не понимаю
karamba_i2p почему на статс некоторые адреса вырезаны особенно русскоязычные?
orignal ну срет много и что делать?
orignal я не знаю как узнать много или мало
onon Ну блин, кому столько распинался...
onon Анимацию смотрел, что я два часа делал?
Vort onon: границу между много и мало ты так и не показал
orignal смотрел и ничего не понял
orignal объсни нормально
onon Граница в размере сендбуффера
onon У вконтакта она 256кб
onon За один раз вставляется в буфер
Vort какой размер - плохой, а какой - хороший и почему?
orignal а что такое сенббуфер,
onon А не сразу 3 мегабайта
Vort как воспроизвести вставляние 3 мегабайт сразу?
orignal ддопустим мне надо послать 1000 пакетов
onon Я же говорю, открой ss -ulm
onon И помониторь
orignal я мне расскажи как в коде чинить
Vort то есть, не знаешь - какой должен быть?
orignal я не понимаю что мне делать с 1000 пакетами для отсылки
orignal обхясни
orignal счас я выкидываю их сразу и ниебет
onon Ну вот в анимации там разноцветные столбики это SSU сессии, их отдельный тред обходит, собирает пакеты
onon Набирает 256 кб и вставляет в буфер
onon Потом ждёт следующего пейса, снова собирает, вставляет
onon Пейс рассчитывется от скорости интерфейса и размера буфера
onon Вот только не стоит делать сендбуффер больше чем MTU*1000
orignal то есть 256k на сессию максимум?
onon И ещё нужно учитывать что на интерфейсе мы не одни
onon Вообще, чем меньше тем лучше за один раз
onon Но тогда нагрузка на проц большая
onon Что бы не перегружать проц, собираем небольшие пачки и вставляем в буфер отправки
onon В идеале, конечно вообще по одному пакету слать
onon Пачки, как видишь из разных сессий, чтобы если дропнется, то только по одному пакету у каждой сессии. Потому что дропать много пакетов подряд - очень плохо
onon Так как у нас сейчас дропается большими пачками - никуда не годится.
orignal ну понял ты хочешь лимитировать число пакетов за раз
onon Да, которые вставляются в буфер
Vort сейчас что-то похожее есть при перепосылках SSU2
onon Эти очереди из которых собираются пакеты, должны быть очень быстрыми, оптимизированными
orignal const size_t SSU2_MAX_RESEND_PACKETS = 128; // packets to resend at the time
orignal шах и мат тебе
orignal это уже есть ))
orignal resentPacketsNum += it.second->Resend (ts);
orignal if (resentPacketsNum > SSU2_MAX_RESEND_PACKETS) break;
orignal то есть мы больше 128 пакетов за раз не выплевываем
orignal const int SSU2_RESEND_CHECK_MORE_TIMEOUT = 10; // in milliseconds
orignal если больше то через 10 миллисекунд продолдаем срать
onon Откуда тогда у меня в очереди 3к пакетов
onon И у себя посмотри
orignal значит потом данных больше
orignal потому я и спрашиваю что конкретно ты предлагаешь
onon Это у тебя вообще или на каждую сессию?
onon Если несколько одновременно хотят
orignal на весь ssu2
orignal я не знаю у 4 и 6 одна очередь или разные
onon Так это только переотправки или все отправки?
orignal переотправки
onon А нужно все
orignal думаешь для отправок очередь копится?
orignal она же мгноврнно происходит
onon Ну я у себя вижу очередь
orignal где.
onon watch -n.1 -d 'ss -utlm'
onon Пиками по 3к пакетов
orignal в сессиях я не вижу очередей на SSU2
onon Нужно равномерно размазывать отправку а не импульсами
orignal тогда придется отдельный тред для отправки городить
onon Ну вот должны быть короткие очереди на отправку для каждой сессии
onon В яве для этого используется LMAX Disruptor
orignal очереди куда?
onon Есть ли аналог для C++
onon не знаю
orignal знаешь ли у деда там пара сотен тредов
orignal а я не хочу плодить треды без надобности
onon Я не знаю, что дед использует, если бы он использовал LMAX Disruptor и ту схему, что я предлагаю, ява бы уже уделала i2pd в скорости работы
onon И стабильности
onon И ещё важный момент
orignal ну я тебя кокртено спрашиваю
onon Это вычитка буфера. Похоже у нас с этим тоже проблемы
orignal ты предалашешь делать отправку в отдеольно треде?
onon Да
orignal а с ним то что?
orignal мы его читаем и кладем в очередь. все
orignal и вот там как раз отдельный тред
onon Может он плохо оптимизирован
orignal так ты скажи в чем проблема
orignal не успевает читать буфер?
orignal это может случаться по одной единственной причине
orignal проц весь перегружен что этому треду не хватает времени
onon Приоритеты можно сделать?
orignal смысла нет
orignal не надо ставить X туда где железо не тянет
orignal это все что я скажу
onon Нужно как-то заставить пользователя указать реальную скорость интерфейса
onon Как ява делает
orignal не поможет
orignal мудаки будут ставить X на телефоне
onon Что бы можно было правильно посчитать пейсинг при отправке
orignal считая что от этого будте быстрее работать
onon Ну тогда у них работать не будет
onon Если неправильно поставят
onon В общем ты понял, разноцветные столбики это дизрапторы, в них SSU сессии складывают пакеты на отправку. Отдельный тред SSU3 собирает из них пачку, ждёт своего пейса, вставляет в буфер сокета.
onon Потом снова собирает, ждёт пейса, вставляет.
orignal да я понял что надо отдельный тред
onon Дизрапторы потому, что очень быстро вставки и удаления пакетов идут.
onon Что бы не тормозился
orignal так откуда брать размер буфера на отправку?
onon Из скорости интерфейса
onon И предполагаемого пинга
onon Схема с 256кб отдаёт 10гбит без коллизий.
orignal из разговора с тобой я сделал важный вывод
orignal for (auto it: m_Sessions)
orignal resentPacketsNum += it.second->Resend (ts);
orignal if (resentPacketsNum > SSU2_MAX_RESEND_PACKETS) break;
orignal понимаешь че?
orignal всегда будут отправляться сначала первые сесии
orignal std::unordered_map<uint64_t, std::shared_ptr<SSU2Session> > m_Sessions;
orignal а это хэш по connid
orignal Vort ты понимаешь суть проблемы?
orignal мы отправили 128 пакетов с первых сессий
orignal через 10 миллисекнд на них снова накопилось и может до последних очередь не дойти
onon Я уж думал в выводе про меня что-нибудь нехорошее напишешь.
onon Всё равно это нужно переделывать.
orignal а ты причем?
orignal ты на правильную проблему указал
orignal это надо чинить
orignal я так себе мыслю
orignal ежели через 10 миллисекунд то random_shuffle
onon Если только как временное решение, перед тем как переделать все правильно.
onon Про CC на SSU2 и перепосылки это тема для отдельного разговора.
onon Там всё грустно.
orignal ну все поспепенноэ
orignal может интрвал до 5 милисекунд уменьшить
onon Почему не до 1
onon Тут вопрос, как я понимаю, чтобы эти 128 пакетов успели из сендбуффера на карту перегрузиться
orignal много проца будет жрать
weko <karamba_i2p> почему на статс некоторые адреса вырезаны особенно русскоязычные?
weko потому что деду не нравятся. или вообще там не регались.
orignal wlm.i2p например
orignal потому мы и сделали reg
onon Кстати, про wlm я ради интереса скачал его поставил себе на сервер, и с моими стримами он открылся за 8 сек.
orignal и "убили негра" тоже?
orignal которое в фоне играет
onon Нет, только картинки
onon Он носкриптом блокируется
weko <orignal> через 10 миллисекнд на них снова накопилось и может до последних очередь не дойти
weko так это если тред не успевает.
orignal ну так давай и негра тоже
orignal weko нет
orignal там 128 пакетов и все прекращается отправка
orignal и через 10 миллисекунд по новой с начала
weko а почему 128
weko как это вышло
orignal так дед сказал )))))
weko а нахуя так....
orignal что у них 128
weko ща посчитаю скорость
orignal в принципе разумно исходя из того что onon говорит
orignal что там буфер 256K
weko что-то типо 100 кбит/c
weko это одна сессия или вообще на весь ssu2?
orignal весь
orignal но это перепосылки только
orignal когда выброс происходит пачкой
weko а я что-то не так посчитадл
weko 12.2 мбайт/с