数据包大小多少最合适

来源:互联网 发布:上海网络布线设计 编辑:程序博客网 时间:2024/04/19 16:32

      服务器和客户端的数据交互,刚开始的办法是逐个数据包发送,并且是实时的,这样保证了数据能在最快的时间内到达,可是随着玩家数量的增加,弊端越来越明显,最大的弊端就是流量太大,这和数据包的压缩有关系。数据包的压缩比例与这个数据包的实际大小又有很大关系,数据包越大,重复数据越多,压缩比例就越大,反之,如果数据包很小,压缩后的大小没有减少很多,反而增加了压缩头,整个包的大小有可能反而增大了。并且,压缩和解压是要额外消耗CPU的,压缩结果可能并不值得我们消耗CPU去做这件事情。

       游戏的数据包的正是这样,大部分的数据包都只有很少的数据,在32个字节以下,这样的数据压缩了没有什么好处,我们采取的策略是只压缩48字节以上的数据,这就导致很大部分的数据包达不倒压缩大小,而按照实际大小传输产生巨大流量。

       可是流量也很贵呢,迫于老板的压力,我们开始想办法减少流量。首先想到的就是把数据压缩。单个包不能达到压缩的标准,就把多个包合并以后再发送,只要发送的间隔足够小,玩家并不能感觉到操作的延迟。这样改了后效果很明显,流量急剧下降,可是当玩家大量聚集,产生大量数据的时候,由于数据包是定时发送的,玩家瞬间接受的数据包过大,解压处理都积累在同一时刻,就会出现多个操作同时生效的情况,看到其他玩家也是瞬移。

       再改吧,在定时发送的基础上,数据包累计到达一定数量以后立即发送数据,这样就好多了。


原创粉丝点击