[发明专利]一种移动端游戏网络传输的通信方法及系统在审
| 申请号: | 202111362299.1 | 申请日: | 2021-11-17 |
| 公开(公告)号: | CN114095129A | 公开(公告)日: | 2022-02-25 |
| 发明(设计)人: | 庞文锦 | 申请(专利权)人: | 厦门勇仕网络技术股份有限公司 |
| 主分类号: | H04L1/16 | 分类号: | H04L1/16;H04L67/131;A63F13/30 |
| 代理公司: | 厦门福贝知识产权代理事务所(普通合伙) 35235 | 代理人: | 陈远洋 |
| 地址: | 361009 福建省厦门市*** | 国省代码: | 福建;35 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 移动 游戏 网络 传输 通信 方法 系统 | ||
1.一种移动端游戏网络传输的通信方法,其特征在于,包括以下主流程:
S1:第一服务器和第二服务器之间建立RUDP连接;
S2:对所述第一服务器和所述第二服务器之间传输的数据包加入数据包序号和Ack序号用于对数据包进行标记,并在发送数据包时将所述数据包序号和所述Ack序号在所述第一服务器分别保存为本地序号和远端序号,其中所述Ack序号为最新接收到的数据包的数据包序号;
将所述第一服务器当前接收到的所述第二服务器发来的数据包的Ack序号以及过去一段时间内接收到的所述第二服务器发来的所有数据包的Ack序号写在一起,生成Ack字段用于构成确认Segment包体;
所述第一服务器根据所述Ack字段和所述本地序号判断所述RUDP连接的状态是否为最新,若否则对所述RUDP连接进行状态刷新,同时向所述第二服务器发送用于表征确认收到所述第二服务器发来的数据包的确认信息;
S3:所述第一服务器根据其收到的所述第二服务器发来的Ack字段中最新的Ack序号以及过去一段时间内接收到的所有Ack序号,判断是否已经收到所述第二服务器发送的所有数据包,若是则向所述第二服务器发送包含心跳包和所述确认信息的物理包;
若否,则根据当前的网络状况结合历史网络记录进行反馈判断此时需要使用的重发方式,从而获取适应当前的网络状况的重发方式来设置并调整重发频率,再根据所述重发频率请求所述第二服务器重新发送在所述过去一段时间内所述第一服务器未收到的数据包。
2.根据权利要求1所述的方法,其特征在于,在发送所述数据包前,若所述数据包未超过MTU,则直接放入发送缓冲区,若所述数据包超过MTU则为所述数据包超过MTU的部分分配新的缓冲区。
3.根据权利要求1所述的方法,其特征在于,所述状态刷新具体包括:
当所述第一服务器向所述第二服务器发送数据包时,将所述第一服务器的本地序号加一,并将所述确认Segment包体封装在物理包中用于后续发送数据包;
解析应用层通过socket收集到的数据包,并更新所述第一服务器所发送出去的数据包的确认信息;
当所述第一服务器接收到所述第二服务器发送的数据包时,对比接收到的数据包中的所述数据包序号与所述本地序号的大小,使用其中更大的值对所述远端序号进行更新;
将前一次状态刷新时从应用层发出去的数据包保存进历史队列;
获取将要转给应用层的数据包,并生成本次将要转给应用层的待发送的数据包队列,若此时没有应用层数据,则准备发送确认包;
若所述第二服务器发送来的所有数据均已确认收到,则准备发送心跳数据。
4.根据权利要求1所述的方法,其特征在于,所述主流程还包括在所述状态刷新后执行以下步骤:
判断是否存在利用待发送数据包封装得到的物理包;
判断是否存在利用重新发送的数据包封装得到的物理包;
判断是否存在利用确认包封装得到的物理包;
判断是否存在利用心跳包封装得到的物理包;
当任意一个所述物理包被判断为存在时,将所述物理包发送出去。
5.根据权利要求1所述的方法,其特征在于,若所述RUDP连接断开则退出所述主流程。
6.根据权利要求1所述的方法,其特征在于,若所述RUDP连接出错则将报错数据传输给应用层并退出所述主流程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门勇仕网络技术股份有限公司,未经厦门勇仕网络技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111362299.1/1.html,转载请声明来源钻瓜专利网。





