IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#dev
/2025/05/01
~AreEnn
~AreEnn_
~R4SAS
~acetone
~orignal
~villain
@onon
&N00B
+Xeha
GFW
Most2
NashaKyxnia
Nikat
Opax
Vort
WebClient0
`
anon
b3t4f4c3
duck
fidoid
grimreaper
iiii
karamba_i2p
nnm
not_bob_afk
osoznayka
poriori
profetikla
qend
r3med1tz
segfault
slfd
soos
spider
taureg
teeth
tensor
un
weko
whothefuckami
woodwose
onon У меня ничего не поменялось
onon Он так же запрашивает только когда буфер опустошился
orignal ну так доавь в лог и разберись почему
onon Наверное ты забыл колбэк из стрима сделать
onon Чтобы он постоянно дёргал Recieve ()
onon А то щас как я понял он делает Recieve (), пишет в буфер стрима, потом снова вызывает Recieve () и делает return потому что буфер полный (мы же его только что заполнили)
orignal не забыл
orignal правильно так и делает
onon А кто тогда его дёргать должен
orignal идея такая
orignal мы получили что то с сокета
orignal пишем в стрим
orignal в это время снова ждем с сокета
onon так return же
orignal if (unsentSize >= I2P_TUNNEL_CONNECTION_BUFFER_SIZE) return; // buffer is full
orignal вот тут попробуй заменить на
orignal if (unsentSize >= 2*I2P_TUNNEL_CONNECTION_BUFFER_SIZE) return; // buffer is full
orignal тогда там гарантированно будет 2 разных буфера
onon Какое-то ты шаманство предлагаешь
onon Щас подумаю
onon Ну он так же двойной размер буфера заполнит и отвалится
orignal когда буфер полный то Receive вызывается только когда какой то из буферов в очереди отправится
onon Разве нет?
orignal отавилится
orignal но там будут сидеть в очереди 2 буфера
orignal а не один
onon А чем отличается от простого увеличения буфера в 2 раза?
orignal тем что читаешь с сокета ты одинарный размемер
orignal а не двойной
orignal и если у тебя заполнился двойной буфер то в очереди и будет 2 буфера
onon Короче толку ноль
orignal почеум"?
onon Задача была читать ровно столько сколько отправилось за раз в стриме
orignal ну пока это не сделано
orignal это более сложно
onon А что из стрима нельзя вызвать Recieve () ?
onon В функции SendBuffer () после отправки
onon Да, дёргать будет часто, но там return будет и всё
orignal можно наверное
orignal но тогда ведь будет на каждый пакет а оно надо?
onon На пачку же
onon Если медленно, то по одному шлёт
orignal а практически будет на каждый
onon Если быстро - то пачками
orignal ну попробуй
orignal вставь там и посмотри
onon Я не умею
orignal расскажешь
orignal правильно потмоу что там коллбэк
onon Скажи как написать - я попробую
orignal так просто там не напишешь
orignal ты попробуй с 2*I2P_TUNNEL_CONNECTION_BUFFER_SIZE или с 4*I2P_TUNNEL_CONNECTION_BUFFER_SIZE для начала
onon 32*I2P_TUNNEL_CONNECTION_BUFFER_SIZE
orignal ну вот попробуй
orignal и размер буфера тогда 4K сделай
orignal ну че попробовал?
onon Собираю пока
onon Вот так уже больше похоже на правду
onon Значит надо делать буфер размером в 1 пакет и туда количество пакетов писать
onon А, не
onon А хотя да
onon Норм скорость выдаёт
onon Надо чтобы буфер в стриме был 64кб
onon Чтобы скорость 5 Мб/с была
orignal на давай какой размер буфера и множитель ставить
onon Ну я б в размер MTU стримовского поставил
onon Но ты не хочешь по пакету читать...
onon Я хз почему
orignal а множитель какой?
orignal там нет причины
orignal просто так было сделано психом наверное
onon Ну примерно чтоб 50-60 кб был общий
orignal 8 по 8K нормально?
onon Потому что за 1 раз на скорости 5 мбайт/с он берёт большую пачку
onon Щас попробую объяснить
onon Смотри если у тебя сервис не локальный и ты его в итупи раздаёшь и он чувствителен к задержкам
onon Тогда тебе важно чтобы СС на паре клир сокетов работал нормально, если там bbr например
onon Так вот, если ты будешь вычитывать из буфера большими кусками, то CC не сможет нормально работать
orignal ближе к конкретике
orignal может тогда 16*4K?
onon Потому что он отправляет по сети блок и ждёт
onon И только когда вычитал буфер, тогда шлёт акк
onon И сервис шлёт новую порцию данных
onon А если ты вычитываешь малыми порциями, то на сервис идут акки равномерно
onon И bbr так высчитывает RTT и начинает слать пакеты с той скоростью, с которой ты их вычитываешь
onon И тогда общий RTT от сервиса до клиента через i2p будет минимальный
orignal ну короче делаем 16*4K?
onon Давай хоть так
orignal или лучше 8*8K?
onon Ну с локальным сервисом будет работать и так и так
onon А с удалённым нужно тестировать
onon Поэтому делай как считаешь лучше
onon Потом можно будет поменять
orignal счас переделаю