游戏中网络通信的对比

游戏制作中,不可避免的就是通信协议的问题,无论是对于客户端还是服务器端,一个很好的通信协议是必不可少的。

游戏由若联网游戏,由互动游戏等

选择通信协议的时候,主要关注:延迟低,易用,低成本等。

 

下面对比Tcp,udp,http,WebSocket四种协议的优缺点,特性

TCP

优点:可靠性高,全双工通信协议,开源支持多,应用较广泛,研发成本低,报文不限制(IP层会自动进行分包,重发,大小:1452Bt)

缺点:

  操作系统:较耗内存,支持连接数有限。

  设计:协议较复杂,自定义应用层协议。

  网络:网络差情况下,延迟较高

  传输:传输效率低于UDP

特征:面向连接,可靠性,全双工通信协议,基于IP层,适用于二进制。

UDP

优点:

  操作系统:并发高,内存消耗较低

  传输效率:效率高,网络延迟低,传输模型简单,研发成本低。

缺点:

  协议不可靠,单项协议,开源较少,报文内容大小有限,不能超过1464bt

  设计:协议设计较复杂

  网络:网络较差的情况下,会有丢包的情况。

特征:无连接,不可靠,基于IP协议层,OSI参考模型位于传输层,最大努力交付,适用于二进制传输

HTTP

优点:协议较成熟,应用广泛、基于TCP/IP,拥有TCP优点、研发成本很低,开发快速、开源软件较多,nginx,apache,tomact等

缺点:无状态无连接、只有PULL模式,不支持PUSH、数据报文较大

特征: 基于TCP/IP应用层协议、无状态,无连接、支持C/S模式、适用于文本传输

WebSocket

优点:协议较成熟、基于TCP/IP,拥有TCP优点、数据报文较小,包头非常小、面向连接,有状态协议、开源较多,开发较快

缺点:没发现啥缺点

特征:有状态,面向连接、数据报头较小、适用于WEB3.0,以及其他即时联网通讯

 

协议选择

  1、对于弱联网游戏,必须消除类,卡牌类的,可以使用http协议,保密性要求较高的,还可以使用https协议

  2、对于实时性,交互性较高的,且team由过相关经验的,可以直接选择WebSocket协议,再者就是Tcp协议。

  3、对于实时行要求较高的,且可达性要求一般的可以选择UDP协议。

  4、局域网对战类,赛车类,直接用UDP协议吧(目前没有用过呢)

posted @ 2022-03-15 23:06  jiaxin2015  阅读(388)  评论(0)    收藏  举报