~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
orignal
рестарт илиты через 10 минут
orignal
запустил илиту с патчем
ronald
hello
Vort
orignal: сделал отдельное сообщение для пингов туннелей: github.com/Vort/i2pd/commit/3d037325551832e5c3c1f037c528722dd104f702
Vort
[11:18:20] <Vort> orignal: сделал отдельное сообщение для пингов туннелей: github.com/Vort/i2pd/commit/3d037325551832e5c3c1f037c528722dd104f702
Vort
также взял для этих целей монотонный источник времени с микросекундной точностью
Vort
увидел по коду, что не всегда тесты шифруются, но как проверить ветки кода, которые без шифрования, не знаю
Vort
на моём тестовом узле коммит работает нормально, но так как я в этом коде плохо разбираюсь, то его надо тщательно проверять
onon1
И чего теперь, у тебя тесты перестали теряться?
Vort
onon1: это изменение касается только редких случаев
Vort
либо когда пинги около нуля либо когда часы синхронизируются и прыгает время
Vort
на локалхосте с ntcp2 я кстати потерь ещё так и не увидел
Vort
может их и нету
onon
Лучше найди где у нас проблемы со смещением, почему в логе куча сообщений вида SSU2: Unexpected message type 161 from 183.156.57.72:29845 of 191 bytes
Vort
это скорее всего или сетевой мусор или просроченные пакеты
Vort
SSU2 ведь все подряд UDP пакеты приходящие на порт пытается расшифровывать
onon1
Даже если пакет просроченный, почему в заголовке кривой тип
Vort
значит тогда мусор
onon1
Преднамеренный?
onon1
Или пакеты по пути покарабчились?
Vort
есть много причин
Vort
можешь провести эксперимент
Vort
на компе с белым IP включить Wireshark
Vort
без каких-либо поднятых серсивов
Vort
увидишь сколько фигни приходит
Vort
onon1: ru.wikipedia.org/wiki/%D0%A4%D0%BE%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9_%D1%88%D1%83%D0%BC_%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%D0%B0
onon
С eSSU2Retry такая же фигня может быть?
onon
Когда мы ожидаем 9 тип а получаем хз что.
Vort
не знаю, пока ещё не разбирался детально как SSU2 работает
onon1
Имхо, не похоже это на сетевой шум. Его слишком много.
Vort
вижу у себя в логе тоже "instead 9"
Vort
может, перепосылки в SSU2 глючат
Vort
хотя сейчас глянул в спецификацию - это же перепосылки не данных, а установки соединения
Vort
то есть, глючит установка соединения
tetrimer
В логе i2pd ругань: 13:12:34@62/error - Reseed: Failed to connect to reseed.memcpy.io
tetrimer
Полез разбираться - действительно сервер не отвечает.
tetrimer
Есть еще живые reseed сервера?
Vort
так в коде целый список
tetrimer
Но после этого сообщения - роутеров =0
Vort
так наверно будут ещё попытки
Vort
с другими серверами
Vort
github.com/PurpleI2P/i2pd/blob/821a76a7c5d3d58cc5e213ad61a57f7bc1b7703a/libi2pd/Config.cpp#L212-L226
Vort
у меня сервер отвечает. но только 404 ошибку, так как я запрос просто из браузера делал
Anonymous
R4SAS: crash persists, I will have to really do that compiling with debug sybols
tetrimer
Сменил Router Caps на "L" - и вроде бы атака пропала.
orignal
Vort но тут есть ньюанс. оно не всегда идет зашифрованным
orignal
ты это учел?
orignal
вроде не должно быть нешифрованной ветки кода счас
orignal
это только если ты сам эль гамаль
orignal
а вот знаешь как проверить?
orignal
создай дестиненйшин с типо шифрования только 0
orignal
tetrimer точно не ответчает?
orignal
у меня отвечает
orignal
Vort кстати в это сообщение можно добавить допольнительные данные
tetrimer
reseed.memcpy.io - сейчас проверил - отвечает, т.е. временно было недоступно.
orignal
ну рестартовали наверное
Vort
"<~orignal> создай дестиненйшин с типо шифрования только 0" ок, опция i2cp.leaseSetEncType = 0 позволила ещё одну ветку кода проверить
Vort
то есть, проверил LeaseSetDestination::HandleCloveI2NPMessage и HandleI2NPMessage
Vort
orignal: а как проверить RouterContext::HandleCloveI2NPMessage ?
Vort
хотя... может это оно и есть. ещё раз гляну сейчас
orignal
в смысле?
orignal
для роутера нешифрованных быть не может
orignal
они могут быть только для дестинейшгина с 0
orignal
без 4
onon
Лось ты тоже считаешь, что это сетевой мусор? - SSU2: Unexpected message type 141 instead 9
onon
И следом за ним - SSU2: Unexpected message type 141 from 94.118.68.56:27114 of 75 bytes
orignal
да это мусор
orignal
или перепосылка
orignal
там много чего
orignal
забей
onon
Но почему так много мусора.
orignal
ну разбирайся
onon
Слишком много входящих ip , да и порт рандомный
orignal
начинай с того откуда призоит
orignal
есть ои такой в netdb
onon
Ну, попробую.
Vort
orignal: вот этот код тогда зачем? github.com/PurpleI2P/i2pd/blob/821a76a7c5d3d58cc5e213ad61a57f7bc1b7703a/libi2pd/RouterContext.cpp#L1153-L1161
orignal
еще я тебе могу сказать что в иклирнете мусора по udp ходит просто до допы
orignal
Vort незачем
orignal
а нет есть зачем
orignal
это для exploratory
orignal
а него же нет дестинейшина
orignal
потому его тесты сваливаются туда
Vort
сейчас брекпоинт туда затулю
orignal
да нет точно там
orignal
потмоу что снаала у меня тесты зондирабщих не работаели шифрованные
orignal
потмоу что у меня именно в этом месте была бага
Vort
всё, проверил 3 ветки
Vort
"<~orignal> Vort кстати в это сообщение можно добавить допольнительные данные " какие? зачем? и, может, это уже отдельными коммитами?
orignal
нормально тесты проходят?
orignal
ну да это потом
Vort
да вроде всё ок
Vort
ну можешь и сам попроверять
orignal
давай PR тогда
Vort
могу PR сделать
Vort
ок
Vort
он будет включать и коммит с предыдущего PR. я думаю если новый влить, то и старый автоматом гитхаб прикроет
orignal
давай я его прикрою
Vort
не не
Vort
будет фигня
Vort
надо новый вливать
Vort
ну проверив желательно
orignal
ну так я его и закрыл
orignal
естественно
Vort
вижу, что влил. но всё же потестируй - я там местами наугад код писал. хоть я и проверил, но всё же
orignal
я посмотрю
orignal
если чего не так поправлю
Vort
окей
orignal
кстати можно и для 0 шифрованные делать
orignal
мне просто было лень
orignal
так погоди
orignal
если у тебя не шифрованный у тебя же этот тип будет торчать наружу
orignal
починил
Vort
"<~orignal> починил" ProcessTunnelTest использует микросекунды, а CreateDeliveryStatusMsg создаётся с миллисекундами
orignal
понял
orignal
умножить ан 1000
Vort
ага
orignal
но это времено
orignal
я хочу и для 0 сделать шифрованные
Vort
а нет, я не прав
Vort
нельзя умножать
Vort
там разные точки отсчёта
Vort
steady считает время от запуска компа
Vort
это в ProcessTunnelTest (uint32_t msgID наверно надо добавить выбор или steady или нет
Vort
и передавать или то или другое
Vort
допустим bool TunnelPool::ProcessTunnelTest (uint32_t msgID, uint64_t timestamp, bool steady)
Vort
там лишь int dlt = будет зависеть от этого условия
orignal
да счас починю
orignal
закоммитил
relaybot
13mittwerkz: а когда обновы в репах?
orignal
когда релиз
onon
Примерно 10% пересечения с нетдб. Но нужно ещё учитывать что и приходящие сообщения с "правильными" типами не всегда есть в нетдб.
onon
Мне кажется, здесь всё-таки есть какая-то проблема.
Vort
onon: так netdb же чистится
Vort
особенно если не удаётся связь установить
onon
Это заметно, я сначала сравнивал со скопированной нетдб, там было примерно 15% пересечения, потом сравнил с актуальной, получилось 10
Vort
я делал свой сборщик routerinfo чтобы учесть эту особенность
Vort
они грохаются очень быстро
Vort
не успеешь заметить. хоть старая база, хоть новая
Vort
onon: нужен код сборщика?
onon
Я думаю, нет. Спасибо.
orignal
если есть проблема попробуй разобраться
orignal
сохрани список изсетных адресов с которых уже были соединени
Vort
на всякий случай скажу - это модификация i2pd для создания специального бинараного файла со всеми-всеми RI (в том числе, всеми версиями)
Vort
этот бинарник потом надо чем-то парсить
Vort
парсилка у меня тоже есть, на C#. но можно и свою сделать
onon
Vort умеет в таком разбираться, пусть он найдёт смещение.
onon
Я не умею.
Vort
не понимаю, о каком смещении речь
onon
Я предполагаю, что при каких-то условиях получается смещение в заголовке пакета, а при формировании, или при расшифровке, я не знаю.
onon
А может действительно, как-то по пути ломаются...
Vort
orignal: получается, что теперь case eI2NPTunnelTest: в HandleI2NPMessage (I2NPProtocol.cpp) остался без работы? мелочь, но на всяк случай говорю
Vort
onon: тогда бы наверно всегда глючило, а не изредка
orignal
должен
orignal
он разве не вызвается из RoitreContext когда расшироали чеснок?
orignal
да и будет с работой я счас сделаю =шифрование для 0
Vort
RouterContext::HandleCloveI2NPMessage -> TunnelPool::ProcessTunnelTest
Vort
а тот - из GarlicDestination::HandleECIESx25519GarlicClove
Vort
ок
Vort
а всё, понял
Vort
если if (pool && pool->ProcessTunnelTest не отработает, тогда провалится дальше
Vort
а когда это может быть - хз, я такого не замечал
orignal
ну тоннели без пула бывают только первые
orignal
но x3 что будет в будущем
onon
Раз уж у нас опенсорс проект, могу я поросить добавлять побольше комментариев в код. Я как не знающий синтаксиса, в коде ориентируюсь в основном по комментариям.
Vort
это плохая идея
Vort
комментарии нужны только в случаях, когда код сам по себе не может объяснить, что происходит
Vort
а в идеале таких случаев должно быть минимум
onon
Странный аргумент...
Vort
мне кажется или опять волна атаки пошла?
onon
Да уже давно идет
onon
Скорее уже спадает.
Vort
"<onon> Странный аргумент..." нет. код и комментарии имеют свойство рассинхронизироваться. добавление их всюду значит, что надо поддерживать в порядке двойной объём текста
Vort
тут же и за одинарным объёмом не всегда уследить получается
onon
Также очень спорно.
orignal
да прет причем с большим транзитом
orignal
у меня везде упрлось в лимиты по трафику
Vort
orignal: у меня подозрение, что трафик стал больше после исправления бага с доставкой ответа про построение туннеля
Vort
лучше через наш узел строятся туннели - больше трафика прёт
Vort
а может и профилировщики это видят и больше на наши узлы направляют
orignal
скорее всего
onon1
SSU2: Block type 254 of size 13 - В SSU2 есть тип 254? В доках такого нет...
orignal
какой то тестовый
orignal
eSSU2BlkPadding = 254
onon1
В нтцп2 есть такое 254 for padding
orignal
чукча не читатель чукча писатель
onon1
Это что-то локальное? Или специфично для и2пд?
orignal
веззде 254 padding
tetrimer
Vort: Я же говорю - снижение планки скорости в настройках i2pd.conf - уменьшает вероятность "атаки".
orignal
ну просто будут ломиться на другие узлы
onon
Нет, просто при атаке у тебя постепенно все "полезные" туннели заменяются пустыми
orignal
это то чего они и добиваются
tetrimer
Опять возвращаемся к необходимости чистить пустые туннели.
Vort
tetrimer: уменьшение лимитов уменьшает нагрузку на узел. именно то, что оно и должно делать
onon1
Сделай, потестируй, приноси сюда результаты, мы подумаем и Лось решит....
Vort
вопрос в том, какие это имеет дополнительные последствия
Vort
да не надо пустые туннели трогать. проблема не в них
onon
Но в лимт-то мы упираемся по тоннелям...
onon
И в основном, по пустым.
Vort
onon: смотря кто какой лимит поставит
onon
Будем считать, что у всех по умолчанию.
onon
Меняет незначительный процент пользователей
Vort
точно так же можно сказать, что проблема в лимите
Vort
я вообще думаю о том, что его надо заменить чем-то более адекватным
onon1
В вебконсоль добавить, большинству юзеров конфиг - слишком сложно
orignal
у меня счас все упитраетсяч в лимит по трафику
Vort
а у меня никуда не упирается
Vort
но вот что немного удивляет: LeaseSets: 500
tetrimer
Проблема не в самих пустых туннелях, а в том, что как тут выше заметили - они вытесняют хорошие
onon1
Флудфилы, похоже перегружены и отваливаются
orignal
проблема в трафике
Vort
tetrimer: не вытесняют. они занимают их место в лимите. короче вопрос в лимите
orignal
и его много
tetrimer
Т.е. надо, чтобы алгоритм создания туннелей это учитывал.
Vort
onon1: да я очень удивился когда увидел сколько в сети XfRE
Vort
tetrimer: можно сделать, чтобы лимит учитывал только не-пустые туннели
Vort
но это наверно слишком радикальное изменение
Vort
я уже думал об этом
tetrimer
Это потому, что кто-то от большого ума посоветовал ставить "X" для повышения производительности.
Vort
крику поднимается если так сделать...
tetrimer
Почему? Это-ж внутреннее дело узла: сколько через себя пропускать.
onon1
На самом деле, мне тоже такая иде в голову пришла.
onon1
Пустые не учитывать
Vort
ну юзеры долго думали, какой лимит поставить, а тут меняется определение регулируемого параметра
onon1
А как перестают быть пустыми - начинают учитываться
tetrimer
Да ладно! :) Юзеры с удивлением узнают, что там вообще что-то можно регулировать.
Vort
найдутся те, кто очень-очень будет требовать вернуть всё обратно
Vort
ну хз
orignal
Vort это хорошая идея
tetrimer
Ввести понятие "smart shape" и вот при его включении - будет учитываться по новому алгоритму
orignal
tetrimer это придурок SY7 всем торчкам насоветовал
Vort
tetrimer: так обычно пользуются же стандартными настройками
Vort
разве что опцию, чтобы "вернуть обратно"
tetrimer
Сделать в коде X==L да и всего делов.
Vort
но может это и лишнее
tetrimer
Давно же хотели ввести числовой показатель скорости.
Vort
он есть в конфиге давно
Vort
"посоветовал ставить "X" для повышения производительности" - обновится лимит - поймут последствия :))
tetrimer
Хотя, для улучшения - проще ставить два хопа вместо трех.
orignal
Vort я сделал шифрование тестов для эль-гамаля
Vort
сейчас гляну
orignal
так есть числовой показатель скорости
orignal
давным давно
orignal
у меня например bandwidth=8000
tetrimer
Есть, делать не надо. :)
orignal
я предлагал деду промежуточный код Q для лимита 100 мбс
orignal
так дед как всегда
Vort
а что - много узлов > 100 мегабит/сек есть?
tetrimer
Я к тому, что если стоит задача убрать из сети юзеров с Х - то ее можно решить принудительно.
Vort
tetrimer: не стоит такой задачи
orignal
ну смотри P это слишком мало
orignal
а X уже безлимитный
tetrimer
На самом деле тесты - могли бы давать оценку канала.
orignal
каким образом они тебе дадут оценку?
tetrimer
И если он явно медленный - то не поднимать флаг "Х"
onon1
С тестами пока другая беда - они теряются.
orignal
а как ты знаешь?
Vort
orignal: так всё равно же P и X в куче сейчас к примеру. или у X есть какие-то преимущества?
Vort
а в другой куче - так вообще N O P X
orignal
Vort ну это пока нету но можно же поменять логику
orignal
и кстати на самом деле есть
orignal
я же счас проверяю линк не превышает ли он свои лимиты
Vort
ну и надо помнить, что верить внешним данным - опасно
orignal
то есть если по линку идет 1000 а у нас написано O
orignal
то мы через него тоннели не строим
orignal
так что буквы существенно используются уже
Vort
подозреваю, что такая ситуация - большая редкость
Vort
часто ли в i2p такоие скорости? )
Vort
чтобы через один транспортный коненкт пёрло
Vort
сейчас основная нагрузка - куча "пыли"
Vort
построение туннелей, пинги
orignal
довольно кстати часто
Vort
разве что на 1 хопе
orignal
ну я x3 какой транзит
Vort
надо таки гистрограмму транзита делать
Vort
шкалы только будут логарифмические наверно
Vort
и мало кто вообще что поймёт
Vort
но по этим данным хорошо можно будет понять характер нагрузки
orignal
ходят пинги нормально?
Vort
да есть какая-то проблема. но наверно рандом
Vort
никак исходящие туннели не наберутся на прокси
Vort
да, рандом. уже есть 1
Vort
ну я проверял на локалхосте. и вижу 0мс пинг :)
Vort
вот сейчас 1мс стал
orignal
пинги сделаем
Vort
не понял фразы
Vort
меня значения устраивают. это я просто поясняю, как я проверял
Vort
вот поставил брекпоинт на msg = garlic.WrapSingleMessage (msg); - сработал. и значение пинга поднялось из-за ожидания в отладчике
Vort
короч мне кажется, что норм всё. но, конечно, лучше, чтобы ещё кто-то проверял
Vort
0мс - это именно то, что и нужно было ведь. чтобы нормально работали тесты на локалхосте
orignal
норимально значит
Vort
словил опять ту же фигню, что и раньше - дублирующиеся туннели. ну и onon вроде об этом говорил. сейчас скрин подготовлю
orignal
смотреть надо
Vort
короч это не пересоздание виновато. аптайм был 2 минуты
Vort
это matched destination глючит, похоже
Vort
или рандом где-то не рандомный
Vort
Routers: 6270. есть из чего выбрать
orignal
а откуда он взялся?
orignal
macthed destination этот
orignal
он же в конфиге задается
orignal
ага и дубли у входящих
orignal
а мы когда построили исходящий пытаемся входящий
Vort
короч я наверно опять неточно выразился
Vort
создаётся входящий A > B > C > me и исходящий me > C > B > A. это нормально
Vort
а вот что ненормально - это когда два таких входящих
Vort
с теми же узлами
orignal
так бага там
orignal
и даже понятно где
Vort
такой эффект я чаще вижу на "внутреннем" дестинейшене, хз важно ли это
orignal
код погляжу
Vort
ок
orignal
счас малость занят по работе
orignal
переимновал steady в monotonic
Vort
ок
orignal
monotonic более устоявшийся термин
Vort
вопрос (может глупый) - имеет ли право флудфил быть SSU2-only ?
orignal
да конечно
orignal
если естествено он ipv4 и R
Vort
окей
Vort
это я решил проверить SSU2. ну что ж. это писец
Vort
на локалхосте получил пинги по 2 секунды и сдохший туннель
orignal
вполне ожидаемо
orignal
он лучше чем SSU который совсем никуда не годился
orignal
давай вот разбираться
Vort
сдохший туннель до сих пор не восстановился. +1 писец
Vort
а, с транспортов узел вылетел!
Vort
забанили небось? )
orignal
ну вот все это по порядку надо разбирать
orignal
кто забанил?
Vort
я сейчас второй узел проверю
Vort
да второй узел, который строил туннель, небось, и забанил
Vort
а вообще хз конечно
onon
Может выключился
orignal
эти дубликаты создаются вот здесь
orignal
void TunnelPool::CreatePairedInboundTunnel (std::shared_ptr<OutboundTunnel> outboundTunnel)
Vort
onon: кто? эти оба узла мои и оба на одном и том же компе и IP
Vort
комп нагружен + сеть нагружена правда
Vort
но NTCP2 это не мешает
Vort
а SSU2 глючит
orignal
ну TCP в ядре это все таки другое
Vort
да пинги 0мс были же
Vort
значит из ядра уходили
Vort
короч я на 99% уверен что проблема (баги) SSU2 где-то в логике
Vort
или в реализации протокола или в самом протоколе
orignal
конечно багов там море
orignal
насчет дубликатов
orignal
тут все явно
orignal
*ясно
orignal
он какждый раз как дятел ходит и строит парные пока не наберет до количества
orignal
счас починю
Vort
info - Tunnels: Can't find router for ...мой_первый_роутер...
Vort
в профиле nonreplied=219
orignal
значит не опубликовался на флудиле
onon1
Запрос к флудфилу через SSU же?
Vort
такс. его из netdb выкинуло
Vort
он сам флудифл кстати...
onon1
Флудфил моего флудфила - не мой флудфил
Vort
я думаю его профилировщик забанил
Vort
я понимаю
Vort
но у него хорошая связноть
Vort
ну и блин.. если он не опубликовался - то это же гигантский баг
Vort
больше в бан верится
Vort
баги, баны...
Vort
короч он попадает в netdb и сразу же вылетает нахрен
Vort
знакомый эффект
Vort
представляю как сеть запросами засирается
Vort
запросили - выкинули - запросили - выкинули
Vort
и если такое на локалхосте, то в реальной сети - ещё хуже
Vort
я и раньше такие бестолковые колебания видел. но не мог даже подумать, что на локалхосте воспроизведётся
Vort
создался опять туннель. с пингами по 2 секунды
Vort
ровно та же хренотень которая и не на локалхосте
Vort
коннекты уходящие в никуда + конские пинги
orignal
так а почему выкидывают?
Vort
<Vort> в профиле nonreplied=219
Vort
из-за этого небось
orignal
это про тоннели
Vort
очередей нету. ни на одном узле ни на другом.
orignal
выкидывают обычно когда не могут достучаться
Vort
по крайней мере когда смотрел не было
Vort
ну значит он просто не отвечал
orignal
вот это надо понять почему
orignal
может потери UDP пакетов?
orignal
у тебя же там еще торренты
Vort
локалхост блин
orignal
а UDP буфер общий для всех
orignal
не имеет значения
orignal
UDP буфер общесистемный
orignal
и он всего 128K
Vort
думаешь ОС творит херню?
Vort
это ж винда кстати
orignal
думаю ось дропает UDP пакеты
orignal
потмоу что забиты буфера
Vort
можно wireshark на локалхост воткнуть
orignal
как под виндой UDP я не знаю
Vort
как торрент перестал качаться - пинги нормализовались
Vort
торрент клиент крешнуло O_o
orignal
а торрент наверное по UDP
Vort
да, uTP
orignal
в этом все дело
Vort
выжимает почти всю полосу
onon
Объясните, чяднт. Я в SSU2Session в каждую функцию после m_Server.Send воткнул лог LogPrint (eLogCritical, "!SSU2: SendSessionRequest header ", (int)header.h.type, " type");
onon
Так он мне в лог так и выдаёт с рандомными значениями, как я вижу во входящих.
orignal
так хрен бы полосу но общесистемный буфер
orignal
onon потому что оно уходит шфированное )))
Vort
orignal: что ж тогда он сам не глючит?
orignal
Vort потому что ему пох
orignal
ну потерял пакет получит потом снова
Vort
ну так и SSU2 должно быть пох
orignal
нее
orignal
торренту время не важно
orignal
он же не поток а чанки качает
Vort
в торрентах кстати есть целевой лаг. и он вроде 150мс
orignal
попробуй более интересный тест
orignal
quic
Vort
короч он не должен сильно залагивать другие проги
orignal
попробуй им куда нибудь постучаться
Vort
"quic" - я с ним мало знаком. как это проверить?
orignal
в браузере
orignal
есть сайты
Vort
постучаться во время того, как торрент упирает полосу?
orignal
к которым можно по quic подключаться
orignal
или можешь ygg оп quic
orignal
но говорят он глючный там сам по себе
Vort
вот-вот
Vort
curl можно как-то к quic принудить?
orignal
но сайты то есть
orignal
curl да умеет вроде как
Vort
хотя и браузер можно
Vort
короч я хз что за сайты
orignal
не все браузеры умеют
Vort
у меня старьё, но не полнейшее
orignal
ну погугли сайты для тестирования quic
Vort
я адреса не знаю
orignal
я пробовал
orignal
но давно
orignal
кстати этот общесистемный буфер можно увеличить
orignal
у нас на работе в настройках серверов меняют
orignal
потмоу что куча мультикаста приходит
Vort
ну я вижу сайты которые просто показывают поддержку
Vort
вижу сайты для тестирования сайтов
orignal
у гугла должен быть
orignal
мне хид какой то говорил в свое время
Vort
надо же чтобы он не поддерживал ничего другого ) иначе браузер прыгнет на другой протокол и всё
Vort
если найдешь - потестирую
orignal
ну короче уже один ответ есть
orignal
что может не хвтать буфера
Vort
так надёжный метод воспроизведения нужен
orignal
счас у дегса спрошу
orignal
пока займусь тем багом с построением
Vort
о
Vort
ок*
Vort
orignal: так SSU2 же и сам себя упереть в полосу (и, допустим, буфер) может? вполне вероятно что это по сети и происходит
Vort
а предположение про буфер надо проверять, да
onon1
cat /proc/sys/net/core/wmem_default
onon1
212KB Debian
orignal
ну упрется и что делать?
orignal
анаголично
orignal
ну так это ж реально мизер
Vort
почитал про буферы в винде. они не на систему, а на на сокеты. и их можно менять через программу
Vort
короч похоже что не в системном буфере дело
orignal
ну давай поменяй
orignal
у сокета само собой можно
orignal
но еще есть общесистемный
Vort
ну вот, других настроек в винде я не видел
onon1
Большие буферы тоже бывают вредны
Vort
могу ещё поискать конечно
orignal
socket.set_option (boost::asio::socket_base::receive_buffer_size (SSU2_SOCKET_RECEIVE_BUFFER_SIZE));
orignal
socket.set_option (boost::asio::socket_base::send_buffer_size (SSU2_SOCKET_SEND_BUFFER_SIZE));
orignal
мы это делаем
Vort
DefaultReceiveWindow DefaultSendWindow learn.microsoft.com/en-us/previous-versions//bb726981(v=technet.10)?redirectedfrom=MSDN#EBAA
Vort
я вот такое нашёл и оно по описанию не подходит
orignal
ну у нас под юниском все сервера
Vort
ну суть в том, что проблема вероятно на стороне i2pd, а не системы
orignal
я ставлю буфер в 128K
orignal
это то понятно
orignal
что мы неправильно обрабатываем пропадание пакетов
Vort
хм. а сокет на SSU2 - один или нет?
orignal
да. один на всех
Vort
так тогда можно хоть мегабайт, хоть 10 воткнуть
Vort
сейчас попробую
orignal
мы для мульикаста ставим 4мь
orignal
но как я сказал там еще что то в системе меняют
Vort
ну то линуксы
Vort
ну допустим 4 мег на отправку + 4 мег на приём. это же почти ничего
Vort
при 300 мегах общего потребления
orignal
для мультикасата у нас хватает
orignal
мы же сразу выгребаем
onon1
В инернетах предлагаю максимальное значение ставить 16777216, почему - не знаю.
Vort
я то поначалу думал, что там куча сокетов. а если один, то можно не жалеть
Vort
onon1: да я сейчас 4 воткну. и на отправку и на приём
Vort
только не в в систему конечно
orignal
вопрос сможешь ли
Vort
хм
Vort
надо погуглить
Vort
это же setsockopt SO_RCVBUF или что-то такое под капотом буста?
orignal
да оно должно быть
orignal
но оно может давать ошибку вот в чем проблема
Vort
гуглю сейчас
`
*** гуглит кто сейчас гуглит ***
`
*** так-так-та-а-ак, балашиха дом 9, квартира 2 ***
onon1
Черт, я тоже гуглю, меня сейчас нагуглят
Vort
"<~orignal> но оно может давать ошибку вот в чем проблема" есть где-то об этом информация? я вижу, что может молча поставить меньше, чем попросишь
orignal
у нас на работе буст кидает экспешин
Vort
нашёл кстати вот такой коммент: github.com/versatica/mediasoup/issues/554#issuecomment-839868338
orignal
тогда сисадмины что то в системе подкручивают
Vort
может и в линуксах лимит не на систему, а на конкретный сокет?
orignal
да дело именно в этом
orignal
я не знаю точно на что лимит суть в том что его менять надо в системе
Vort
а, так может буст проверяет, поставилось ли?
orignal
ну системный вызыв тебе возвратит код ошибки
Vort
просто если лимит на сокет, это значит, что другая прога не может его выжрать
orignal
суть же не изменится
orignal
там все более сложно насколько мне известно
orignal
но я не разбирался
Vort
надо код буста смотреть
orignal
да там просто setsockopt
orignal
и проверяется результат
orignal
Vort я думаю размер буфера следует задавать исходя из буквы
orignal
для L 128K ну а для X 16M
onon1
Пишут, что нужно от RTT считать
orignal
RTT с кем?
orignal
там же один сокет на всех
Vort
код буста - это какая-то задница
Vort
про букву - может быть
Vort
но есть ещё вариант - ставить максимум. плюнуло ошибку? уменьшать в два раза, опять ставить
Vort
так пока не успокоится
onon
So the more Round Trip Time you have the more data needs to be send to fully utilize the link speed(because more delay means you need to send a little bit more data at once, to utilize the bandwidth.)
Vort
такс. у меня на 4 мегабайта никто ничего не плюнул
Vort
пересобираю основной узел
Vort
не факт, что это поможет. но если не поможет, значит надо разбираться с реакцией на потери пакетов
Vort
думаю, кстати, что не поможет
Vort
так как торренты забить буфер i2pd не могли
Vort
вот перегрузка CPU - могла бы. но её не было
orignal
посмотрим
Vort
но проверить надо. перезагружаю узел.
orignal
<degs> On Linux the network adapter buffer overflow could be detected using the netstat -i –udp <NIC> command, where the RX-DRP column shows the number of packets dropped by the adapter.
orignal
вон че дегс сказал
Vort
так буфер адаптера - это отдельное дело
Vort
в общем, я перезапустил два узла
Vort
сразу вляпался в мигание routerinfo
Vort
перегрузки канала нету
Vort
NetDb: Store request: RouterInfo
Vort
Tunnels: Can't find router for
Vort
NetDb: Store request: RouterInfo
Vort
и так далее
Vort
создался туннель
Vort
и заблокировал удаление из netdb небось
Vort
не было бы блокировки - так бы и мигал небось
onon
Я себе по 16метров на вход и выход поставил, пока ничего не чувствую...
Vort
короч с циклическими запросами RI надо что-то делать в любом случае
Vort
это сильно засирает сеть
orignal
там всего 7 запросов
Vort
orignal: так находится сразу же
Vort
а потом грохается
Vort
потом опять сразу же находится
Vort
ну мне так кажется. может я и не прав
orignal
так а почему грохается я понять не могу
Vort
профиль может плохой?
orignal
если флудфил то может
Vort
флудфил. оба точнее
orignal
там если не достучаться то маркируется как пдохой на время
orignal
потому что иначе будут засирать ими
Vort
вот мы и пришли к причине потерянных 200 флудфилов )
orignal
неее
Vort
помнишь уменьшение срока бана?
orignal
на да счас только на 8 минут
orignal
а не на 2 часа
Vort
то есть, пока что предполагаемый сценарий такой: SSU2 не справляется с потерями пакетов, узел попадает в бан и другие узлы начинают срать запросами RI по сети
orignal
запросами его?
orignal
а с какой стати
orignal
?
Vort
ну да, вот это мигание
orignal
ну и что тут делать?
orignal
мы не можем забивать базу всяким говном
Vort
забанили, так забанили - ждём и не гадим запросами на RI забаненного
onon
Да, нам могут такого навалить...
Vort
и попутно чиним SSU2. если это возможно
orignal
так а почему вообще этот запрос возникает
Vort
транзит допустим
onon
Туннели кто-то хочет построить млжет...
Vort
ага
Vort
транзитов сейчас много )
onon
И ткср у них падает
Vort
:))
Vort
я так подумал - торренты ведь не могут давать потери локалхосту (при раздельных буферах, на сокет). это очень смахивает на какой-то жирнющий баг
orignal
возможно
tetrimer
Так а если UDP вообще отключить?
Vort
то есть, получается, потери во внешнюю сеть что-то переглючивают внутри i2pd и он начинает терять и локальные пакеты в том числе
orignal
tetrimer отключи SSU2 и все
Vort
короч надо думать над контроллируемыми экспериментами
Vort
tetrimer: это только улучшит связь с первым хопом
tetrimer
Тогда этот "жирнющий баг" - не в udp буфере.
Vort
и никак не исправит последующие хопы, хренову тучу транзитов и фиговый рейт по всей сети
onon
Делаем релиз, отключаем у всех SSU2 =)
Vort
tetrimer: ну вот надо над воспроизведением бага думать. сделать синтетическую нагрузку по типу раздач торрентов и следить за поведением i2pd
tetrimer
onon: Не у всех, а только у тех, кто заполнил анкету. :)
Vort
вполне можно Wireshark на локалхост посадить. по крайней мере, в винде точно
tetrimer
В линуксе можно tcpdump-ом трафик слушать. Только надо понимать: что там должно быть на самом деле.
tetrimer
А там - шифрованный трафик идёт...
tetrimer
Это, разве что, в дебаг-лог изнутри i2pd что-то писать.
Vort
"Только надо понимать: что там должно быть на самом деле." - запросы и, в случае бага, отсутствие ответа
orignal
вот скажи с этим повторными тоннеляи
orignal
это где у тебя такое было?
Vort
служебный дестинейшен
Vort
проверил сейчас - упор по трафику от торрента идёт именно по uTP. и пинги начинают ухудшаться не сразу
orignal
это тоннели ресльной сети или локальные.
Vort
реальной
orignal
ты никакие интревалы там не менял
orignal
типа как часто строить тоннели
Vort
там же пинг был указан
Vort
не менял. но у меня подлагивает комп, это может влиять
orignal
там получается так что запросили первый тоннель на него ответ еще не пришел а мы пытаемся стоить
Vort
да
orignal
в итоге пришли ответы и на первый и на второй
orignal
и что с этим делать?
Vort
такс. похоже, ещё один баг нашёл. с тем же локалхостовым узлом и упором от торрента. один из туннелей отвалился (исходящий) и не строится. транспорт с узлом есть, там какие-то данные текут
orignal
и в чем баг?
Anonymous
yay my commit is up uwu
orignal
тут вопрос такой
Vort
в том, что исходящий туннель не строится
orignal
ну отвалился тоннель
orignal
так должен построиться новый
orignal
а не точно такой же
Vort
если это речь о проблеме с моим локальным узлом - так вот не строится
Vort
уже несколько минут
orignal
никакой?
orignal
я не понимаю проблему
orignal
отвалился исходящий
Vort
ну да, пусто. наверно транспорт сдох. вот тот новый код с дропами, может, косячит?
Vort
входящий висит
Vort
ну точнее висел. несколько минут
orignal
так почему новые исходяшие вообще не стоится
orignal
я тебе могу ответить почему
orignal
все дело в том входящем было
orignal
а сколько у тебя тоннелей в пуле должно быть?
Vort
ну сейчас вообще ни входящего ни исходящего нету
Vort
один туннель
Vort
ну то есть 1 + 1
orignal
в зачем ты делаешь однотоннельные?
orignal
надо как минимум два
Vort
о, кажется, вижу
Vort
транспорт есть, а в netdb нету
orignal
естественно счас построятся
Vort
не, с netdb вылетел, думаю уже не построится
orignal
в netdb где нету? на диске?
Vort
да нигде
orignal
погоди у тебя тоннли опять что ли explicitPeers?
Vort
да
orignal
а вот тут другое дело
Vort
это всё тот же локальный тест
Vort
ну если транспорт есть, а в netdb нету - это хрень какая-то
orignal
траспорт по SSU2?
Vort
эх...у меня ещё по профилировщику вопросы
Vort
да, SSU2 only узел
orignal
профилировщик это жопа
Vort
:)
orignal
сс трапсортом там видимо еще хуже
orignal
он есть в SSU2 но не в транспортах
Vort
данные по транспорту идут, наверно транзит какой-то "прорвался"
Vort
ну я думал SSU2 - это и есть транспорт
Vort
может не правильно говорю
orignal
const int TUNNEL_CREATION_TIMEOUT = 30; // 30 seconds
orignal
вот в чем дело
Vort
не пойму
orignal
const int TUNNEL_POOL_MANAGE_INTERVAL = 10; // in seconds
Vort
а, это к вопросу дублей?
orignal
да
orignal
про трансопрты
orignal
если у нас если линк с ротутером он не должен выкидваться
Vort
так он может быть в бане как бы
Vort
ну я понял
Vort
в общем, надо и это копать
orignal
if (it.second->IsUnreachable () && i2p::transport::transports.IsConnected (it.second->GetIdentHash ()))
orignal
it.second->SetUnreachable (false); // don't expire connected router
Vort
может таки переименуешь в IsBad и так далее?
Vort
или Banned
orignal
ой был
orignal
так строка не в том блоке
orignal
так IsBad было про тоннели
orignal
надо сделать отдельно
orignal
сдлаю
Vort
мы говорили, что Unreachable сейчас это и U флаг и "плохой" роутер и надо развести эти термины
orignal
нет это не U
orignal
IsUreachable это всегда плохо
orignal
й
Vort
U: Unreachable
Vort
юзеры знают этот термин
Vort
и путаются
orignal
я в курсе
orignal
знаю что в коде неправильно
orignal
но там было сделано изначально
orignal
счас ту хрень закоммичу
Vort
ок
Vort
вижу
orignal
тебе не кажется что 30 секунд для построения слишком много?
Vort
пока не разобрались с 5тисекундными пингами - то не так уж много
Vort
если сеть будет работать лучше, тогда можно и понизить
orignal
тут проблема в соотношении
orignal
мы запрашиваем новые тоннели через 10 секунд а ждем старых 30
Vort
вопрос в возможности превышения количества что ли?
Vort
если же дело в зеркальных туннелях - то тут нужно, скорее всего, запоминать сейчас строится
orignal
ты же видишь что получается
Vort
и не строить именно зеркальный пока эти 30 сек не пройдут. а другие - строить
Vort
запоминать какой сейчас строится*
orignal
да это мысль кстати
Vort
пересоберу узел с "never delete conneted router" коммитом. эта штука может заметно влиять
orignal
посмотрим
Vort
ну да. заметно влияющих багов может быть несколько ) так что самого вредного определить может быть сложно :)
orignal
да багов тут море
orignal
это у меня сейчас есть время а потом опять не будет
Vort
SSU2 и профилировщик бы починить...
orignal
c ssu2 все сложнее
orignal
когда все перегружено
Vort
локалхост не должен быть перегружен. ну никак
Vort
так что перегрузка - это только триггер проблемы
Vort
а саму проблему ещё надо найти
Vort
перезапущу узел
Vort
буфер сетевой карты на локалхост влиять не должен. такие пакеты вообще до реальной сети добираться не должны
orignal
ну x3
orignal
включи дебаг и смотри сообщения про ssu2
Vort
может кто-то воспроизвести захочет
Vort
это может быть какая-то моя локальная проблема
orignal
думаю размер буфера имеет смысл увеличить
orignal
weko а как у у тебя было в тестовой сети?
Vort
можно. до значения, которое не выдаёт ошибок во всех поддерживаемых ОС
Vort
это не поможет с проблемой локалхоста. но поможет при подлагиваниях (перегрузке CPU)
Vort
по поводу моего сценария с раздачей торрентов - упор в канал там был конкретный
Vort
то есть, когда упиралась раздача, допустим, в 99% канала - то пинг лишь немного поднимался. допустим, до 100мс
orignal
ну я попробую
Vort
а вот когда упирало до 99.99% - тогда начинались глюки
orignal
а ну эта ситуация сам понимаешь
orignal
тут как говорится против лома нет приема
Vort
локалхост...
Vort
вот в чём суть
Vort
раздача конечно в реальную сеть
Vort
а пинги глючат по локалхосту
Vort
это странная проблема и вполне может быть, что я что-то не учитываю
Vort
но хз что
Vort
то есть при 99.99% упоре я могу ожидать, что все SSU2 в реальную сеть отвалятся. логично
orignal
ну насчет винды я ничего не скажу
orignal
весь мой профессиональный опыт это только юниксы
Vort
но вот локалхост при этом валиться не должен
orignal
когда у тебя проц томозит понятно что треды не получают время для работы
orignal
хоть локально хоть не локально
Vort
ну да, тут могут быть проблемы как специфичные для моей конфигурации, так и специфичные для винды
orignal
ну насчет винды это только R4SAS-а ждать
orignal
он с ней любит ковыряться
Vort
а могут быть и не специфичные :)
orignal
а у меня 11 ая на ноуте
Vort
с процом у меня непростая ситуация
Vort
одно ядро у меня полностью занимает Tor (что я об этом думаю - уже говорил). где-то половину второго ядра занимает uTorrent. всё остальное - по мелочи - занимает остальные 2 ядра
Vort
то есть, загрузка CPU у меня постоянно около 50%
orignal
эээээ
orignal
у тебя что всего 2 ядра?
Vort
как я понимаю, ОС может перекидывать потоки на свободные ядра
Vort
если надо
Vort
4 ядра
Vort
1 на тор, 1 на utorrent и 2 свободно
Vort
ну примерно
orignal
я не знаю какой планировщик и винды
Vort
ладно. посмотрим
Vort
или вопросизведёт кто-то и поможет. или я доберусь
orignal
ну у меня есть роутер на чистом SSU2
orignal
проблем там нет
orignal
но понятно что проц и каналы не заргужены
Vort
по моим оценкам (догадкам) тут шансы 50 на 50 - или проблема специфичная (для моего компа) или это то, из-за чего сейчас глючит вся сеть
orignal
сеть глючит я думаю все таки из-за атаки
Vort
"<~orignal> проблем там нет" попробуй с ним explicit peers туннель сделать с SSU2-only узла
Vort
с тем конфигом, что я выкладывал
orignal
да хорошая идея
Vort
и последи за пингами туннелей
orignal
попробую
orignal
попробовал
orignal
тоннели пашут идеально
orignal
гоню видеопоток через них
orignal
rtt 16 миллисекунд