~AreEnn
~R4SAS
~acetone
~orignal
~villain
&N00B
DUHOVKIN_
Guest7184
Most2
Nausicaa
Nikat
Ruskoye_911
Vort
Xeha
`
anon3
b3t4f4c3
fidoid
hypn--direct
hypn-direct-nb
karamba_i2p
nemiga
not_bob_afk
plap
poriori
profetikla
qend
segfault
soos
teeth
tensor
tetrimer_
uis
un
unlike
user
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
Я что зря её два часа рисовал?
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
{
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 милисекунд уменьшить
orignal
?
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 мбайт/с