Size: a a a

2021 June 28

K

KivApple in ctodailychat
если сервер использует проксирование и на каждый входящий коннект создаёт исходящий (к бекэнду), причём бекэнд сидит на 1 IP, то сервер упрётся в лимит исходящих подключений
источник

K

KivApple in ctodailychat
но это уже совсем другая проблема
источник

K

KivApple in ctodailychat
а то что tcp дуплексный вообще не важно
источник

K

KivApple in ctodailychat
главное чтобы эти 4 параметра были уникальны
источник

K

KivApple in ctodailychat
а в какую сторону пакеты ходят не важно от слова совсем
источник

AS

Alexey Shcherbak in ctodailychat
если на клиенте нет активности, можно же нули не слать, просто в данный период подсоединенный клиент не контрибутит в общий сигнал своей активностью. но контрибутит соединением, т.е. 10м ничего не делающих подсоединенных клиентов - дают сигнал = 0, если 1м начнут долбить и давать максимальный сигнал в 1.0, то общий сигнал будет 0.1...
источник

O

Onlinehead in ctodailychat
Общий сигнал - это твой аггрегат. Каждое хоть какой-то пакет данных от клиента - это пакет, который тебе придется обработать, чтобы достать из него данные. Если у тебя 1м клиентов шлют не-ноли, то согласно твоим таймингом это 4 миллиона пакетов, иными словами - 4 пакета в секунду на активного клиента и на одно, соответственно, соединение.
источник

AS

Alexey Shcherbak in ctodailychat
Да, правильно.
источник

O

Onlinehead in ctodailychat
То, как твоя логика обрабатывает эти данные, сетевому стеку вообще все равно:)
источник

O

Onlinehead in ctodailychat
В этом случае мне не очень понятно, зачем вообще держать соединение, в котором ты не гоняешь данные:)
источник

O

Onlinehead in ctodailychat
Его кстати с шансом дропнет nat где-нить посередине, есть кипаливы не совпадут)
источник

AS

Alexey Shcherbak in ctodailychat
это общий счетчик клиентов.
источник

O

Onlinehead in ctodailychat
Во, кстати, кипаливы это тоже пакетрейт) Хоть и слать их придется 1 раз в 30 секунд или около того. Но я бы слал почаще, встречаются нервные наты, у которых таймаут короче
источник

AS

Alexey Shcherbak in ctodailychat
дропанет если keepalive не будет слаться, а так - не должен
источник

O

Onlinehead in ctodailychat
Угу. Но кипаливы - это тоже нагрузка, это ж тоже пакет, который к тебе придет. Хоть и небольшая (относительно). 330krps при отсылке 1 раз в 30 секунд  в среднем на 10м клиентов)
источник

GP

Gleb Pomykalov in ctodailychat
ну а если вот такое решение. Данные отправляются одним мессаджем, без постоянного соединения. Это может быть HTTP или даже DNS запрос. При каждом новом блоке данных где-то откладывается запись и обновляется ее TTL (например в redis). Теперь мы знаем, что если кто-то достаточно долго не присылает пакеты, то записи протухнут, и клиент как бы уйдет в офлайн.
источник

AS

Alexey Shcherbak in ctodailychat
подожди, давай немного назад отмотаем. Из вышесказанного - я неправильно понимаю как работает websocket, да ? т.е. нету никакого физического ограничения на количество Websocket соединений К одному серверу с разных клиентов, даже если вебсокет это двунаправленное соединение и по нему сервер может отправить ответ ( это исходящее соединение, когда сервер стучится в нат-->клиента или это просто переиспользуется как-то существующее ?)
источник

K

KivApple in ctodailychat
направление передачи данных не важно. важна только уникальность tuple local ip : local port : remote ip : remote port
источник

K

KivApple in ctodailychat
при передаче в другую сторону просто local и remote меняются местами)
источник

K

KivApple in ctodailychat
и да, сервер УЖЕ использует только один порт
источник