栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

MMO如何处理真人游戏的每一刻为成千上万的玩家计算和发送数据包?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MMO如何处理真人游戏的每一刻为成千上万的玩家计算和发送数据包?

服务器的工作方式是什么?

  • 您的服务器创建一个套接字并打开一个端口。

  • 在线游戏的协议通常使用UDP,因为它速度更快。

  • 您的服务器必须处理所有客户端连接。

  • 您可以添加一个能够登录帐户并将其重定向到游戏服务器的服务器(所有大型MMO都是这种情况)。

  • 您的服务器必须管理数据库中的所有计算:当敌人击中另一个敌人时,请在购买一些东西时减去部分资金…

  • 因此,服务器是在线游戏的主要部分。

实际上,计算机确实可以快速进行一些计算,现代视频游戏最重要的部分是物理和图形…幸运的是,这两个部分都在客户端。

但是,服务器必须坚固!不像客户,因为他不需要大型GPU,但是他需要大量的RAM / CPU(取决于游戏),并且还需要 保持冷静

实际上,由于UDP协议,并且由于程序的所有 繁重部分 都在 客户端
,因此游戏服务器能够处理大量连接。您可以在这里看看:用python创建一个多人游戏,并在我解释UDP和TCP协议之间的区别时阅读该部分。

All the others informations about how work an MMO server are linked at theend of this topic.

现在我们可以尝试构建服务器!

首先,您知道如何创建服务器吗?

  • 编程或下载服务器以进行测试(例如:TeamSpeak或Mumble)。

  • 从计算机启动他,并允许他从防火墙输入连接。

  • 登录到调制解调器,然后将服务器的端口转发/重定向到计算机。

对于最后一部分,您需要做一些研究:服务器使用哪个端口以及如何通过调制解调器转发端口(每个调制解调器都不同)。

现在,您可以尝试将您登录到服务器。但…!

您的计算机具有三个IP:

  • 回送地址:localhost,127.0.0.0(“ 0”可以更改)

  • 内联网地址(IP链接到您的计算机):192.168.0.0、172.16.0.0、10.0.0.0

  • 和互联网地址(IP链接到您的调制解调器):0.0.0.0

如何知道您的Intranet / Internet IP?这取决于您的操作系统和调制解调器。对于Intranet,请使用您的终端并输入“
ifconfig”或“ ipconfig”。对于您的Internet地址,有时会在您登录到调制解调器时写,或者您必须访问能够显示IP的网站。

如果创建服务器,但没有从调制解调器转发端口,则仍然可以使用回送地址访问本地服务器,并且连接到同一调制解调器的其他计算机也可以使用Intranet地址访问服务器。另外,如果您需要测试服务器是否可以从Internet访问,则必须测试与Internet
IP的连接,但是某些调制解调器不允许来自Intranet的外部连接…因此,如果您与Internet
IP的连接不起作用,请尝试从另一个调制解调器(朋友的PC,Cyber​​-Coffee …)将您登录到服务器。

最后,如何保护您的服务器?

这确实很困难,并且您无法创建完美的安全性……尤其是如果您遵循我的建议,但没有通过自己的研究完成我的知识。

  • 根访问权限

这是最重要的部分。当lamer尝试访问您的服务器时,他可以尝试使用简单的连接,例如http / ssh /
ftp。如果他可以访问您的硬盘并且您没有选择严格的限制,则他可以简单地读取/修改/删除您的游戏数据库。数据库包含有关帐户的所有信息。

  • 防火墙功能

我们已经在谈论服务器必须处理的连接/计算量。在某些攻击中,lamer尝试创建大量连接并且没有关闭它们。我们称其为DOS(具有1台计算机)或DDOS(超过1台计算机)。因此,您需要一个良好的防火墙用于:仅允许服务器的端口,仅允许来自唯一IP的X个连接,并且每分钟仅允许X个新连接。

  • 更新

这是最简单的部分:保持操作系统(和其他应用程序)为最新。

  • 越少越好

不要在服务器上安装许多无用的软件。如果没有为您的服务器导入软件,则不应安装它,因为:首先,这可能是病毒。其次,恶意软件可以利用此软件安装病毒或窃取root访问权限。

  • 加密

加密对于阻止黑客真的很重要。例如,使用https协议,您可以保护用户的密码免受MITM攻击。借助Bluefish / SHA /
others,即使黑客可以读取数据库,也可以加密数据库以保护她。最重要的是始终阻止黑客的写入/修改/删除/执行权限(实际上,游戏的所有客户端都需要读取权限)。

  • 防病毒?

对于在线游戏而言,防病毒并不是很重要(但仍然建议在 所有操作系统 (Linux / Unix)上也使用)。

  • 拥有一个好的服务器

如果对服务器进行编程时没有考虑安全性,则可能会遇到麻烦。示例:C / C ++中的缓冲区溢出攻击。

If you need more informations about how work an MMO, I recommend you:

  • http://electronics.howstuffworks.com/mmorpg6.htm

  • https://zh.wikipedia.org/wiki/Server_%28computing%29

  • https://zh.wikipedia.org/wiki/游戏服务器

  • https://www.quora.com/How-do-I-create-an-MMORPG

_提示-如果您通过创建网络游戏感兴趣,则必须进行大量研究,我不能真的回答这个问题,因为这不是主题的目的。
这个主题太大了,无法在每个问题上写下新的答案…哪个软件可以编写游戏程序?如何建立一个套接字?从哪里开始?但是我已经回答了一些类似的问题。即使编程语言有时有所不同,我也会为您提供链接,但逻辑总是相同的,因此可以为您提供帮助



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451700.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号