forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Архитектура MMO сервера (http://forum.boolean.name/showthread.php?t=18660)

pax 04.11.2013 20:26

Ответ: Архитектура MMO сервера
 
flush на nodejs вроде автоматический при вызове socket.write, он может только вернуть false если не все данные были отправлены в кернел буфер и сохранены в очереди.

SBJoker 04.11.2013 21:04

Ответ: Архитектура MMO сервера
 
TCP/IP это несколько другой уровень работающий сам по себе, независимо от твоего кода. Он сам обрабатывает пропавшие пакеты и досылает их, сам считает контрольные суммы пакетом, сам организует порядок пакетов.

moka 05.11.2013 02:38

Ответ: Архитектура MMO сервера
 
Nagles Algorithm - скорее всего. Нужно в настройках выставить NoDelay.
http://nodejs.org/api/net.html#net_s...odelay_nodelay
То же самое нужно и в Unity сделать.

Тебе нужно замерять задержки в разных областях сети, как на сервере так и на клиенте. Чтобы выследить если bottleneck на твоей стороне логики.

jimon 05.11.2013 03:23

Ответ: Архитектура MMO сервера
 
тормоза на node.js + unity

moka 05.11.2013 04:21

Ответ: Архитектура MMO сервера
 
jimon, net часть написана на C++, и основная логика как раз там.
Тем более не думаю что ты знаешь конкретно о чём говоришь, т.к. на node.js пишут высоконагруженные трейдеры рекламой для крупнейших ad серверов. Я лично знаком с многими в разных команиях в этой сфере.

Если ты видишь игру написанную на С++ которая лагует, ты же не будешь тыкать пальцем в С++ и говорить "ААааха, С++ - говно!". Это немного по децки не находишь?

jimon 05.11.2013 04:58

Ответ: Архитектура MMO сервера
 
Цитата:

Сообщение от moka (Сообщение 269671)
jimon, net часть написана на C++, и основная логика как раз там.
Тем более не думаю что ты знаешь конкретно о чём говоришь, т.к. на node.js пишут высоконагруженные трейдеры рекламой для крупнейших ad серверов. Я лично знаком с многими в разных команиях в этой сфере.

Если ты видишь игру написанную на С++ которая лагует, ты же не будешь тыкать пальцем в С++ и говорить "ААааха, С++ - говно!". Это немного по децки не находишь?


буран летал на прологе, и чо теперь ? ты пытаешься серьезно разговаривать там где не надо, и игнорируешь серьезные разговоры там где это надо :crazy:

в прочем те кто пишут сетевую часть на цпп тоже идут нафиг, тока C, тока хардкор :crazy: и линукс свой со столманом засуньте по глубже, тока фрибсд, тока хардкор :crazy:

pax 05.11.2013 07:29

Ответ: Архитектура MMO сервера
 
Цитата:

Сообщение от moka (Сообщение 269669)
Nagles Algorithm - скорее всего. Нужно в настройках выставить NoDelay.
http://nodejs.org/api/net.html#net_s...odelay_nodelay
То же самое нужно и в Unity сделать.

Тебе нужно замерять задержки в разных областях сети, как на сервере так и на клиенте. Чтобы выследить если bottleneck на твоей стороне логики.

В справке по ноду написано что
Цитата:

noDelay defaults to true
Со стороны Unity посмотрю.

PS: научил сервер клеить сообщения и отправлять все с постоянным sendRate. Так что можно наверное уже пробовать писать Boolean Combat на нем)

DStalk 06.04.2014 13:07

Ответ: Архитектура MMO сервера
 
Как думаете, нужно шифровать пакеты в ММО? Есть мнение, что если очень надо все равно расшифровать можно, только лишняя нагрузка на сервер...

Nex 06.04.2014 13:26

Ответ: Архитектура MMO сервера
 
В танчиках вроде шифруют, но там уже один товарищ много расшифровал.
Может надо шифровать по ключу и ключ менять каждую неделю? :)

DStalk 06.04.2014 13:29

Ответ: Архитектура MMO сервера
 
Есть и такая мысль. Но лучше тогда менять не ключ, а алгоритм шифрования каждую неделю. Когда алгоритм известен, очень просто новый ключ узнать.

SBJoker 06.04.2014 13:32

Ответ: Архитектура MMO сервера
 
алгоритм RSA всем известен, но я сильно сомневаюсь что это помогает "легко" узнать ключ.

Nex 06.04.2014 13:34

Ответ: Архитектура MMO сервера
 
Цитата:

Сообщение от Dstalk (Сообщение 278420)
Когда алгоритм известен, очень просто новый ключ узнать.

Ну вот архив .rar например не расшифровать же без ключа? Там какой то особенный алгоритм или я нуб и ничо в этом не понимаю? :)

DStalk 06.04.2014 14:16

Ответ: Архитектура MMO сервера
 
Цитата:

Сообщение от SBJoker (Сообщение 278421)
алгоритм RSA всем известен, но я сильно сомневаюсь что это помогает "легко" узнать ключ.

Ключик то в клиенте лежит, сервер отправляет свой открытый ключ, если кто-то захочет сделать фейк-клиент, с алгоритмом RSA тут и париться не надо будет, все просто.

Samodelkin 06.04.2014 15:30

Ответ: Архитектура MMO сервера
 
Согласно iso и госту надежными шифрами считаются только те у которых алгоритм открытый.
Именно публичность и независимая экспертиза может это подтвердить, а не авторы алгоритмов.
ЗЫЖ Сам однажды сделал шифр aes-256 - этот факт никакого преимущества в его взломе мне не дает, хотя точно знаю как он работает.

Открытые ключи должны распространяться через всякие системы сертификации.

Что же касается ммо, то важные данные вообще нежелательно пускать через инет, чтобы их никто не подделал, а все приходящие данные от клиента проверять на соответствие.

Например вместо того чтобы принимать данные о координатах игрока от клиента, лучше только принимать данные о том куда игрок хочет двигаться, а само движение считать на сервере.

HolyDel 06.04.2014 16:29

Ответ: Архитектура MMO сервера
 
золотое правило: клиент всегда врет.
поэтому, как и сказал Самоделкин, надо все считать на сервере.


Часовой пояс GMT +4, время: 06:43.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot