IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#acetonevideo
/2022/11/22
~acetone
Leopold
Most2
Ruskoye_911
`
anon2
cancername
immibis|ygg2
lagemeet
poriori_
weko
whothefuckami
zero_tolerance
zero_tolerance weko: протокол для твоей идеи параллельных соединений en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol
weko zero_tolerance: у меня появилось больше вопросов, чем ответов
weko Это же по сути отдельный транспорт
weko Какой нибудь мамбл врятли с ним работать умееь
whothefuckami Я бегло почитал про этот ваш sctp
whothefuckami Что-то похожее хотел выдумать
whothefuckami weko: думаю делать так: есть очередь, в которую кладём пакеты, подписанные номерами. Если 2 туннеля, 2 очереди, 2 дубликата пакетов с одинаковыми номерами
whothefuckami Номер просто инкрементируется
whothefuckami Если очередь забивает, значит плохо
whothefuckami В неё перестаём писать пакеты, пишем в свободные
whothefuckami Таким образом вроде как сайдёт, а вот про фрагментацию я не догадался
whothefuckami Ну её там можно впихнуть
whothefuckami Blinded message
whothefuckami Так, вопрос был не правильный
whothefuckami Ладно забейте
weko whothefuckami: про нумерацию и я подумал
whothefuckami Ну, значит
whothefuckami Нормальное решение с нумерацией
whothefuckami Только я не понял что ты сказал про дубликаты
weko Но вот для TCP ОС выдаёт сокет, из которого просто берётся N количество байт, а не отдельные пакеты
weko Я так понимаю нужно делить на какие то куски, нумеровать и отправлять
weko А на принимающей стороне с таким же делением на длину принимаются пакеты, обрабатывается нумерация и отправляется дальше
whothefuckami Это тоже просто
whothefuckami Максимальная длина 1 пакета?
whothefuckami Ну, в 4 байта поместиться
whothefuckami Значит в самом начале приниматель читает 4 байта
whothefuckami И затем он получает размер пакета... И он знает, сколько читать дальше
whothefuckami Много системных вызовов но сайдёт
whothefuckami И вообще, receive не блокирует, если может сразу достать из очереди вроде
weko Например, читаем каждый раз ровно 1000 байт, приписываем в начале 2 байта версии, 4 байта id сессии, 8 байт номер пакета
weko В итоге на принимающую сторону приходит 1014 байт
weko Можно длину, да...
weko Не понятно, как принимающей стороне знать, сколько нужно прочитать
weko Чтобы ничего не сместилось
weko Может UDP передавать?
weko Ну тоесть например пакет отправителя меньше 1000 байт, как получателю понять сколько читать ?
weko Либо можно паддингом заполнять...
weko Но костыли опять же))
weko а стоп. Можно длину передавать
weko Я туплю, сори
whothefuckami 2 байта версии.. 4 байта id сессии.. окей
whothefuckami Ну версия ладно, но сессия там зачем?
whothefuckami Я думал, что если стрим рвётся в ш2зв, то он не будет переиспользован
whothefuckami Следовательно, это новое tcp подключение
whothefuckami А значит нахер номер сессии?
whothefuckami Хотяяяяя
zero_tolerance еще одна реализация подобного протокола - multipath-tcp.org/, на странице подробная pdf презентация устройства работа протокола с изображениями
weko zero_tolerance: вот уже неплохо, только не понятно как это настраивается
weko Но разобраться можно
whothefuckami По тому, что было в демке, я не думаю, что это будет применимо к ш2з
whothefuckami yoooooo cppcheck обновили
whothefuckami Кстати я тут подумал, нафиг очередь не нужна
whothefuckami Просто condition variable пробуждает потоки отправки и всё
weko Это почти как свой транспорт поверх TCP
weko Хотя мне кажется на UDP лучше, так как он предназначен для такого лучще
weko Не нужно писать длину пакета
acetone Подумал тут, что к следующему митапу для мамбла создам несколько дополнительных серверных туннелей, чтобы каждому юзеру был свой туннель (или почти каждому)
whothefuckami Blinded message
whothefuckami Хотя может и есть смысл
whothefuckami Лан я знаю как написать это дерьмо. Сегодня убью на написание похоже
weko acetone: имеет ли это смысл зависит от того, идут ли разные стримы по разным туннелям, или по одному
acetone weko: туннели не в плане quantity, в реальные отдельные серверные b32 дестинейшены
weko Я понял
weko Я к тому же и говорю acetone
weko Если по разным идёт, то можно просто больше quantity поставить
weko Your app should create sockets with IPPROTO_MPTCP as the proto: (socket(AF_INET, SOCK_STREAM, IPPROTO_MPTCP);).
weko MPTCP - не подойдёт, игры/голос с обычным TCP работают, а тут как просто прокси не выйдет
weko Не подойдёт, в общем
acetone Если стримы по разным нитям (из числа quantity одного туннеля), да. Но отдельные туннели это явная 100% фича))
weko acetone: да, особенно если мы сделаем эту прогу))
zero_tolerance weko: >"как это настраивается?" / Если у обоих хостов ядра поддерживают MPTCP, то автоматически для каждого TCP соединения будут использоваться несколько сетевых интерфейсов.
zero_tolerance остальные настройки похожи на выбор типа балансировщика и пр.
whothefuckami А "хост" - это кто у нас хост?
whothefuckami Хост - это я сам
whothefuckami Ибо у нас
whothefuckami приложение <-> ш2зв(локалхост!!!!!) <-> шызтырнет <-> ш2зв(ремоут) <-> ремоут приложение
weko whothefuckami: ты спрашивал зачем id сессии. Я сейчас подумал, что действительно незачем
whothefuckami weko: а я нашёл ему применение... Но забыл
whothefuckami Ладно потом вспомню
whothefuckami А. точно
whothefuckami Если id сессии меняется, значит это новое tcp подключение
whothefuckami Значит старое закончили принимать(когда с каждого туннеля получили по 1 пакету нового id)
whothefuckami И разорвали
weko Ну вообще в программе то это TCP сокет новый
weko Или это чтобы понимать что у чему относится?
weko Я так понимаю, суть такая будет: 4 байта - длинна, 4 байта id сессии, 8 байт id пакета, и дальше данные
whothefuckami Ну наверно да
whothefuckami Что-то такое
weko Ещё можно номер версии, на будущее
whothefuckami Только этого не хватало
whothefuckami Ещё 1 байт оверхеда
weko Ладно, не нужно
weko Согласен
whothefuckami weko: хочешь смешнявку кину?
weko И считывание с сокетов будет в цикле:
weko 1. считать 4 байта - длинна пакета
weko 2. считать кол-во байта длинна пакета - 4
weko 3. обработать остальные заголовки
weko 4. отправить данные на нужный сокет
weko whothefuckami: а? Давай
weko На длину 2 байт хватит кстати
weko Ахаххахаха
weko Это я)))
weko Аххахахха
weko Веду
weko Тебя)))
whothefuckami Ой, я не педик, сорри
qend whothefuckami: чего ты там все пишешь то?
whothefuckami Ой, очень простая задачка не поверишь
whothefuckami Нужно всего-то принять данные с одного сокета, и отправить на N других сокетов
whothefuckami А на другом конце из N сокетов принять, и слепить в 1 выходной
whothefuckami Должно быть легко, да?
whothefuckami Это придумал веко кстати
weko whothefuckami: да я шучу, это образно
weko Я придумал это чтобы улучшить качество связи в i2p))
weko acetone: разные стримы не идут на разные туннели, как я понял
acetone Значит, weko, узкое место это исходящие стримы сервера. На входящих царит рандом, а вот выход, значит, жопа
weko возможно это причина лагов, кстати. мне один чел писал, что он смог со совим другом успешно сидеть в в мабле через ш2з без лагов
weko 202:a2a5:dead:ded:9a54:4ab5:6aa7:1645 - интересный адрес у пубичного пира 188.225.9.167:18227
reloaded weko: Это твой IP ?! :D
weko нет конечно ))
reloaded weko: А жаль ))
reloaded weko: В следующий раз свой высылай! :D
weko обидно(
weko не обижай анона
reloaded Блин... опять borat обиделся и упал :(
weko i2pd вылетел, влогах ничего....
weko в логах *
weko просто куча варнов и всё
acetone weko: sam юзал в момент падения?)
weko нет
weko ох уж этот debug с++ .....
whothefuckami Бляяяяяять
weko а?)
whothefuckami Осознал, что всё ещё гораздо сложнее
weko что там?
whothefuckami Да ну ээм
weko там многопоток нужен))
whothefuckami Просто вспомнил
whothefuckami Стримов то может быть много
weko да !!! ))) для этоого id
whothefuckami Т.е. программа может открыть не 1 tcp коннект, а несколько
whothefuckami Да... id
whothefuckami Только ебануться с серверной частью такое писать
weko да........
whothefuckami Я 3 часа провёл в кровати думая о том, как такое сделать
whothefuckami Похуй на многопоток
weko чувствую себя источников проблем ... то в dev на уши поставлю, то тут 999 предложений выскажу
weko ужас
whothefuckami Кул поцыки используют мультиплексированый io
weko ну да, в питоне есть asyncio например
weko он как раз для сокетов и на подобии
whothefuckami Ну типо если асинхронно
whothefuckami Значит нужно коллбэками насрать
whothefuckami А коллбэки когда их так много
whothefuckami Они не будут простенькими
whothefuckami Что так, что так адская хрень
weko да оно вообще не так просто, как казалось изначально...
weko добыл для разрабов ценную инфу!)
whothefuckami acetone: на outproxy заблокирован выход на 127.0.0.1 зачем?
weko чтобы на локалхост никто не лез )))
weko мало ли хитрожопых)))
weko зайдут куданить не туда ))
whothefuckami А localhost заблочен? А ::1?
weko localhost может в hosts быть не прописан. ipv6 тоже может не быть
weko ну моё предположение)
weko миром правят случайности!
weko АААА
_borat_andro_ weko: это ацпи аддрес из 4 точек ?
weko В смысле?
_borat_andro_ между ааа... Трёх точек ? между четырьмя Аааа
weko О чём речь?
_borat_andro_ о домене и о его уровне
_borat_andro_ это третий уровень же вроде
_borat_andro_ три точки три ноката
_borat_andro_ нокят нокат
weko А где я про домены писал.. Или даже отправлял ссылки с доменами
weko Чего?
weko Я не понимаю
weko Перешли моё сообщение
_borat_andro_ weko: ты про локал писал хост
weko Ааа
weko Да, localhost работает только потому что обычно в hosts настроено
weko Но если не настроено, то работать не будет
weko Например в Arch нужно самим настроить
_borat_andro_ weko: ,а для этого надо быть уже +с каким то ,опытом
_borat_andro_ Blinded message
_borat_andro_ знать хосты итд итп
weko Arch для людей с опытом... Ну или есть возможность тратить время на обучение по ходу дела
weko Вообще это в вики по установке написано даже
weko Вообще arch wiki и gentoo wiki очень полезные ресурсы
_borat_andro_ weko: у меня с проблемами ,что слета начались -это пиздец ,времени нет вообще
weko Надо бы в ш2з зеркала сделать
_borat_andro_ уже спина болит и суставы в коленях от беготни
_borat_andro_ weko: возможно ,но мне пока с беготнёй больничной пока эту карму не постичь
weko Эхх
_borat_andro_ суставы ,сегодня с оаботы прилёг ,потом встал и как поясницу схватил бляттьь.. потом колено хрустит ...мне физ отдых нужен
_borat_andro_ ну я спать
weko Спок
_borat_andro_ weko: опечатка
_borat_andro_ weko: Взаимно ,Доброй ночи )
weko Доброго сна!