`
fsplove520
  • 浏览: 26536 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

基于消息包可靠协议设计

阅读更多
     由于最近一两年里都是在负责做手游服务器的相关内容,对中国的这种2G/3G网络收费贵,而且带宽小,很想吐槽吐槽。但对于手游来说,这种其实都还可以接受,但是对于手机来说,网络其实是相当不稳定的,比如进出电梯,切换基站,地铁来说,对手机网络影响都很大。对于手机游戏,如果是短连接的话,还好,如果是偏实时性很强,有实时战斗这类的玩法,需要采用长连接了,那么就很影响体验了,就会出现各种断线,丢包,使游戏不能流畅的玩下去。
     于是乎,在思考着如何让手游尽可能的在断线重连之后不丢包,能够比较流畅的玩下去。在这里,我们设计出了一种在tcp之上的一种基于协议包层面的确认机制。一种相对比较复杂一点,就是在客户端和服务器之间,每一个协议,都会有一个确认消息包回应,2端只有收到确认消息包,才能认为当前的消息发送成功,才能从协议队列里移除掉,否则需要缓存。另一只是只有服务器发送的包才需要确认。这种其实已经满足了基本需求,因为,客户端在网络断开的时候,客户端的各种请求是完成不了的,在重连了之后,重新请求一次即可,而服务器需要缓存没有发送成功的消息,在重连成功之后,把没有发送成功的消息重新发送一次。保证数据包不丢失,这样,客户端在重连完之后,并没有数据丢失,还是可以继续往下玩的。采用这种方案,尽可能的保证了数据不丢失,保证游戏的流畅。
     在我们的游戏中,采用的是第二种方案,因为设计上相关简单,同时满足了大部分的需求。当然,在这里只是大致提了些方案,里面其实有很多细节需要注意,也有很多坑,所以需要十分小心,大家有兴趣可以来讨论讨论
分享到:
评论

相关推荐

    基于UDP的可靠传输(停等协议)

    Python UDP实现可靠传输 停等协议

    基于Python实现的可靠数据传输协议.zip

    基于UDP设计一个简单的停等协议,实现单向可靠数据传输(服务器到客户的数据传输)。 模拟引入数据包的丢失,验证所设计协议的有效性。 改进所设计的停等协议,支持双向数据传输 基于所设计的停等协议,实现一个C/S...

    一种基于串口通信的高可靠性应用协议设计.pdf

    为解决串口通信中的数据传输容易出错、可靠性差且容错能力低等问题,设计并实现一种串 1:2通信高可靠性应用协议,并将此协议应用在列控产品中。首先介绍串口通信协议的数据包格式, 通过在数据包格式定义中设置...

    基于C语言的可靠数据传输协议的设计与实现.zip

    资源包含文件:设计报告word+源码及可执行exe文件 理解可靠数据传输的基本原理;...掌握基于UDP设计并实现一个停等协议的过程与技术。详细介绍参考:https://biyezuopin.blog.csdn.net/article/details/126727836

    论文研究-TinyOS2.x下基于蚁群算法的WSNs路由协议设计.pdf

    该协议采用信息素浓度指引路由包和数据包传输, 并在数据包传输过程中引入惩罚机制以实现动态均衡网络能耗。TOSSIM仿真和Micaz节点的真实实验表明, 改进后的路由协议能够有效减少传输时延, 延长网络寿命, 保证数据...

    基于消息过滤算法实现MQTT协议智能家居的识别.pdf

    Message Queuing Telemetry Transport(MQTT)协议是为大量计算能力有限,并且工作在低带宽、不可靠的网络的远程传感器和控制设备通信而设计的协议。由于开销小,适用小型传输,在智能家居中得到大量运用。通过对...

    Python开发基于UDP实现的可靠文件传输协议FDFTP源码+使用说明+设计文档.zip

    Python开发基于UDP实现的可靠文件传输协议FDFTP源码+使用说明+设计文档.zip 环境需求: 1.python3.6 设计文档 设计文档在Docs文件夹下 使用方法: 1.在两台机器上部署好代码,分别将Common/Options内的SERVER_IP...

    基于STM32电力数据采集系统的设计

    摘要:介绍了一种基于STM32的低功耗、高性能的电力数据采集系统,阐述了系统的工作原理及其软硬件设计。STM32内部包含丰富的功能模块,无需外扩芯片,系统即可利用STM32自带的ADC对输入信号进行多通道同步模数转换,利用...

    基于FPGA的高速可靠网络传输协议ORUDP

    为实现高效可靠的网络传输协议,依据RUDP草案并引人TCP可靠机制,设计一种基于消息包、面向连接的高速可靠网络传输协议ORUDP。通过创建确认机制、重传机制、流量控制机制和双队列加速机制等实现基本协议,选择现场可...

    基于eNSP加防火墙的千人中型校园/企业网络规划与设计(附所有配置命令)

    文件中包含了基于eNSP加防火墙的千人中型校园/企业网络规划与设计的topo图及其完整的配置(2份 区别就是第二个加了无线网络规划设计(WIFI))(三层架构,核心层、汇聚层、计入层),并加所有的配置命令(以txt形式在...

    基于ipv6的校园网设计(带文章和命令)

    所用软件为:华为ENSP软件 包含的内容有: 1、拓扑图文件 2、带详细文档的解析 3、所有操作命令的文档 ...还对OSPF协议的消息结构以及在某些情况下的消息交互流程进行了详细的描述。可以作为课程设计和毕业设计的参考。

    快速可靠网络传输协议KCP.zip

    也许你实现了一个P2P,或者某个基于 UDP的协议,而缺乏一套完善的ARQ可靠协议实现, 那么简单的拷贝这两个文件到现有项目中,稍微编写两行代码,即可使用。 技术特性 TCP是为流量设计的(每秒内可以传输多少...

    基于TCP协议的二进制RPC通信协议的Java实现源码+项目说明.zip

    1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载体验!下载完使用问题请私信沟通。 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校...

    基于UDP实现可靠传输实验Python源码+使用教程+实验报告.zip

    基于UDP实现可靠传输实验Python源码+使用教程+实验报告.zip 简介 基于UDP实现可靠传输实验,框架为:RUDP_python3_框架.zip 框架提供接收端和测试环境,注意根据接收端写发送端。 Sender.py ——发送端,包括GBN...

    基于JAVA的网络通讯系统设计与实现(论文+系统).rar

    本资源为一个基于Java语言开发的网络...总之,这个基于Java的网络通讯系统设计与实现文件包是一个功能完备、安全可靠、易于学习和扩展的通讯工具,无论是作为学术研究还是技能提升,都是一个极具价值的资料。重新回答||

    基于6LowPAN的煤矿井下数据传输系统设计

    针对煤矿井下现有数据传输系统存在数据传输距离有限、节点部署不便、传感器地址有限、数据传输不及时等问题,设计了一种基于6LowPAN的煤矿井下数据传输系统。该系统采用以太网与6LowPAN协议组合,在数据采集节点预留...

    apache-artemis包

    选择Artemis的原因开源、高可用性、Java编写、高性能的日志保证持久化消息像非持久化消息一样拥有出色的表现、功能齐全、简洁的设计、灵活的集群可以通过不可靠的全球网络创建地理上分布的集群。

    基于SPC5606B的BOOTLOADER设计及实现

    随着汽车电子技术飞速发展,特别是电动...包含诊断模块设计、CFLASH划分与驱动技术、下载工具、目标文件的生成、基于SAEJ1939 多字节传输协议实现、系统调试,以及此BOOTLOADER在电动汽车中电池管理系统中的具体应用。

    rtmp规范中文版1.0

    虽然RTMP块流是为协同RTMP协议工作而设计的,但是它任然可以处理任何发送消息流的协议。每个消息包含时间戳和负载类型标志。RTMP块流和RTMP共同适用于各种形式的音视频应用,从点到点和点到多的实时直播,到vod服务...

    基于多核处理器BFD协议的设计与实现

    BFD是一种双向转发快速检测机制,为解决协议软件BFD在链路检测中响应慢的问题,本文提出并实现了一种在多核处理器平台下基于底层驱动实现的BFD机制。该机制下所有的收发包处理都由底层驱动实现,上层只负责向底层...

Global site tag (gtag.js) - Google Analytics