数据包大小多少最合适

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

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

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

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值