计算游戏服务器所需要的带宽

Author: FreeKnightDuzhi

家庭所安装的4M,8M宽带。其中M是指,Mbits/S

其中要提前说明的是:

8bits = 1Byte

即8位等于1字节。我们硬盘大小50G。意思是50*1024M字节,约为 50000多字节。但是网宽是以“位”为单位的,所以,8Mbits就是1M字节。是容积体积的单位。

8Mbits/s后面的S是秒。8Mbits/s意思是 每秒8M位,即每秒1M字节。

我是在计算我们网络流量时想到的这个问题,于是说明的。

那么我们来想下,假设公司服务器的OUT带宽为80Mb/S,即每秒可以发送10M字节的信息。假设一个客户端连接发包平均频率为50毫秒一个包,一个包大小为130字节,那么80Mb/S带宽可容载客户端数为 (10*1024) / ((100050) * 130) = 3846 连接。

其中理由是:

一般服务器一次主循环TICK要保证50MS左右。若一次循环可将一个客户端的封包整合为单包,则可控制为50MS一个封包。

若一个服务器有5000人在线,则在玩家周围九宫格内的NPC,MONSTER平均分布大约能有50个(假设同步区域单宫为64米)。一个NPC行为平均为15帧TICK,一个命令协议大小为15字节,则一个玩家在一个TICK内能收到的命令大小约为: 50 * 15 / 15 = 50 字节。

另外,每个玩家在一个游戏循环会同步一次位置和周边信息,同步数据大小主要是外貌信息,约为140字节 。 则客户端每秒接受大约为190字节。

考虑到压缩,对于消息,一般DES3压缩比率为60%左右,加上消息包头大约10字节。大约为130字节。

额外考虑:

TCP/IP丢包重发的可能,用户分布不均可能。要减少连接数量。