游戏开发中网络通讯协议对比 |
您所在的位置:网站首页 › 数据挂接协议是什么 › 游戏开发中网络通讯协议对比 |
在网络游戏开发中,通讯协议是一个无法被避免的问题,无论对于客户端开发中还是服务器开发程序猿而言,制定一个合适的通讯协议是很有必要的 游戏联网需求有弱联网游戏,即时互动类游戏 选择通讯协议的时候主要关注于延迟低,易用,低成本等
下面对比TCP,UDP,HTTP,WebSocket 四种协议优缺点、特性
TCP: 优点: 可靠性 、全双工协议、开源支持多、应用较广泛、面向连接、研发成本低、报文内容不限制(IP层自动分包,重传,不大于1452bytes) 缺点: 操作系统:较耗内存,支持连接数有限、设计:协议较复杂,自定义应用层协议、网络:网络差情况下延迟较高、传输:效率低于UDP协议 特性: 面向连接、可靠性、全双工协议、基于IP层、OSI参考模型位于传输层、适用于二进制传输
UDP 优点: 操作系统:并发高,内存消耗较低、传输:效率高,网络延迟低、传输模型简单,研发成本低 缺点: 协议不可靠、单向协议、开源支持少、报文内容有限,不能大于1464bytes、设计:协议设计较复杂、网络:网络差,而且丢数据报文 特性:无连接,不可靠,基于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协议吧(公网对战,P2P的UDP还得“打洞”处理)
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |