一种基于UDP的数据传输方法、终端设备及存储介质技术

技术编号:18840359 阅读:31 留言:0更新日期:2018-09-05 08:25
本发明专利技术公开了一种基于UDP的数据传输方法、终端设备及存储介质,其中该方法包括:发送端将待发送数据封装成带有第一序号信息的数据包并发送给接收端;接收端接收到数据包之后向所述发送端返回确认包;所述发送端根据所述确认包判断所述接收端是否有未收到的数据包;若有,则判断所述未收到的数据包是否满足预设的重传策略;若满足,则按照预设的重传策略重传所述未收到的数据包。本发明专利技术通过构建基于UDP的可靠传输协议可以良好地解决数据丢失问题以及将复杂的重发策略逻辑封装,在一定的丢包率与延时网络环境下能够实现高效率的传输数据。

A data transmission method, terminal equipment and storage medium based on UDP

The invention discloses a UDP-based data transmission method, a terminal device and a storage medium, wherein the method comprises: the sending end encapsulates the data to be transmitted into a data packet with the first sequence number information and sends it to the receiving end; the receiving end receives the data packet and returns the acknowledgement packet to the sending end; and the sending end returns the acknowledgement packet according to the first sequence number information; The acknowledgment packet determines whether the receiving end has received an uncompleted packet; if so, whether the uncompleted packet satisfies the preset retransmission strategy; if so, the uncompleted packet is retransmitted according to the preset retransmission strategy. By constructing a reliable transmission protocol based on UDP, the invention can well solve the problem of data loss and encapsulate the complex retransmission strategy logic, and can realize high-efficiency data transmission under a certain packet loss rate and delay network environment.

【技术实现步骤摘要】
一种基于UDP的数据传输方法、终端设备及存储介质
本专利技术涉及网络传输领域,尤其涉及一种基于UDP的数据传输方法、终端设备及存储介质。
技术介绍
目前,网络传输层中主要有TCP与UDP,TCP是可靠的字节流协议,UDP是不可靠的数据报协议。在P2P应用中,UDP因其较高的打洞成功率成为较优选择。然而UDP是不可靠的,数据丢失情况下无法可靠送达,造成数据信息的不连续,所以需要构建UDP的可靠传输协议。但是,现有的基于UDP的可靠传输方法存在以下缺陷:(1)无法良好解决数据丢失的问题;(2)在丢包率较高或延时网络环境下数据传输的效率低。
技术实现思路
为了克服现有技术的不足,本专利技术的目的之一在于提供一种基于UDP的数据传输方法,通过构建基于UDP的可靠传输协议可以良好地解决数据丢失问题以及将复杂的重发策略逻辑封装,在一定的丢包率与延时网络环境下能够实现高效率的传输数据。本专利技术的目的之二在于提供一种终端设备,通过构建基于UDP的可靠传输协议可以良好地解决数据丢失问题以及将复杂的重发策略逻辑封装,在一定的丢包率与延时网络环境下能够实现高效率的传输数据。本专利技术的目的之三在于提供一种存储介质,通过构建基于UDP的可靠传输协议可以良好地解决数据丢失问题以及将复杂的重发策略逻辑封装,在一定的丢包率与延时网络环境下能够实现高效率的传输数据。本专利技术的目的之一采用如下技术方案实现:一种基于UDP的数据传输方法,包括:发送端将待发送数据封装成带有第一序号信息的数据包并发送给接收端;所述接收端接收到数据包之后向所述发送端返回确认包;所述发送端根据所述确认包判断所述接收端是否有未收到的数据包;若有,则判断所述未收到的数据包是否满足预设的重传策略;若满足,则按照预设的重传策略重传所述未收到的数据包。进一步地,所述确认包中带有第二序号信息,其中所述第二序号信息与接收到的数据包的第一序号信息相同。进一步地,判断所述未收到的数据包是否满足预设的重传策略,若满足,则按照预设的重传策略重传所述未收到的数据包,包括:若在第一预设时间内所述未收到的数据包前相邻的N个数据包以及后相邻的M个数据包都已经收到,所述N大于等于3,所述M大于等于1,则所述未收到的数据包满足快速重传,所述发送端立即重传所述未收到的数据包。进一步地,所述发送端立即重传所述未收到的数据包之后,还包括:若所述发送端在第二预设时间内依然没有收到所述未收到的数据包的确认包,则所述未收到的数据包满足超时重传,所述发送端再次重传所述未收到的数据包。进一步地,若所述未收到的数据包不满足快速重传,则:判断所述发送端在第三预设时间内是否收到所述未收到的数据包的确认包;若否,则所述未收到的数据包满足超时重传,所述发送端重传所述未收到的数据包。进一步地,其中所述数据包带有发送时间信息,所述确认包带有接收时间信息。进一步地,所述第一预设时间、第二预设时间以及第三预设时间为实时计算的超时重传时间。进一步地,所述实时计算的超时重传时间,具体为:在发送数据包之前,所述超时重传时间为根据实时网速预测得到;接收到数据包之后,所述超时重传时间为根据接收到的数据包的往返时延实时计算得到,所述接收到的数据包的往返时延为根据所述发送时间信息和接收时间信息计算得到。进一步地,若实时计算的超时重传时间小于等于最小预设值,则将超时重传时间设定为最小预设值,若实时计算的超时重传时间大于等于最大预设值,则将超时重传时间设定为最大预设值。本专利技术的目的之二采用如下技术方案实现:一种终端设备,其包括处理器、存储器及存储于所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的传输方法。本专利技术的目的之三采用如下技术方案实现:一种存储介质,其上存储有计算机程序,所述计算机程序被执行时实现如上所述的传输方法。相比现有技术,本专利技术的有益效果在于:本专利技术实施例通过将待发送数据封装成有序的数据包并发送给接收端,接收端接收到数据包后返回确认包给发送端,发送端根据有序的确认包确定数据包是否接收成功,并根据预设的重传策略将未收到的数据包进行重传,通过构建基于UDP的可靠传输协议可以良好地解决数据丢失问题以及将复杂的重发策略逻辑封装,在一定的丢包率与延时网络环境下能够高效率的传输数据。附图说明图1为本专利技术实施例一的基于UDP的可靠传输方法的流程示意图;图2为本专利技术实施列一的传输示意图;图3为本专利技术实施例二的终端设备的结构示意图。具体实施方式下面,结合附图以及具体实施方式,对本专利技术做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。首先,在对本专利技术实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:RTT:(Round-TripTime),往返时延。在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。RTO:(RetransmissionTime-Out),超时重传时间,即发送数据包,启动重传定时器,重传定时器到期所花费的时间。实施例一如图1所示,图1为本专利技术实施例基于UDP的数据传输方法的流程示意图,包括以下步骤:步骤S110:发送端将待发送数据封装成带有第一序号信息的数据包并发送给接收端。步骤S120:所述接收端接收到数据包之后向所述发送端返回确认包。步骤S130:所述发送端根据所述确认包判断所述接收端是否有未收到的数据包。在本实施例中,发送端先将待发送数据封装成带有第一序号信息的数据包,然后将数据包存储到发送队列中并发送至接收端,其中每个数据包带有发送时间信息;接收端接收到数据包之后向发送端返回确认包,其中确认包带有第二序号信息和接收时间信息,其中确认包中的第二序号信息与接收到的数据包的第一序号信息相同,发送端根据接收到的确认包可以确认已经收到的数据包和未收到的数据包。具体地,比如,发送端先将待发送数据封装成序号为1、2、3......N的数据包,然后将序号为1、2、3......N的数据包存储到发送队列中并发送至接收端,其中每个数据包都带有发送时间信息,接收端接收到数据包之后会向发送端返回确认包,确认包中带有收到的数据包的序号信息和该数据包的接收时间信息,若返回的确认包中带有的序号信息为1、2、3、N-1,则表示序号为1、2、3和N-1的四个数据包已经收到,其余的数据包暂未收到,并根据每个数据包的发送时间信息和接收时间信息可计算得到每个数据包的RTT值。当然第一序号信息和第二序号信息也可以为预先设置好的其他编号,在此不做限定。步骤S140:判断未收到的数据包是否满足预设的重传策略。步骤S150:若满足,则按照预设的重传策略重传所述未收到的数据包。优选地,若在第一预设时间内该未收到的数据包前相邻的N个数据包以及后相邻的M个数据包都已经收到,其中N大于等于3,M大于等于1,则该未收到的数据包满足快速重传,发送端立即重传该未收到的数据包,例如该未收到的数据包的序号为X,若序号为X-3、X-2、X-1以及X+1的数据包已经收到,则该未收到的数据包就满足快速重传。优选地,若发送端在第二预设时间内依然没有收到该未收到的数据包的确认包,则该未收到的数据包满本文档来自技高网...

【技术保护点】
1.一种基于UDP的数据传输方法,其特征在于,包括:发送端将待发送数据封装成带有第一序号信息的数据包并发送给接收端;所述接收端接收到数据包之后向所述发送端返回确认包;所述发送端根据所述确认包判断所述接收端是否有未收到的数据包;若有,则判断所述未收到的数据包是否满足预设的重传策略;若满足,则按照预设的重传策略重传所述未收到的数据包。

【技术特征摘要】
1.一种基于UDP的数据传输方法,其特征在于,包括:发送端将待发送数据封装成带有第一序号信息的数据包并发送给接收端;所述接收端接收到数据包之后向所述发送端返回确认包;所述发送端根据所述确认包判断所述接收端是否有未收到的数据包;若有,则判断所述未收到的数据包是否满足预设的重传策略;若满足,则按照预设的重传策略重传所述未收到的数据包。2.根据权利要求1所述的方法,其特征在于,所述确认包中带有第二序号信息,其中所述第二序号信息与接收到的数据包的第一序号信息相同。3.根据权利要求1所述的方法,其特征在于,判断所述未收到的数据包是否满足预设的重传策略,若满足,则按照预设的重传策略重传所述未收到的数据包,包括:若在第一预设时间内所述未收到的数据包前相邻的N个数据包以及后相邻的M个数据包都已经收到,所述N大于等于3,所述M大于等于1,则所述未收到的数据包满足快速重传,所述发送端立即重传所述未收到的数据包。4.根据权利要求3所述的方法,其特征在于,所述发送端立即重传所述未收到的数据包之后,还包括:若所述发送端在第二预设时间内依然没有收到所述未收到的数据包的确认包,则所述未收到的数据包满足超时重传,所述发送端再次重传所述未收到的数据包。5.根据权利要求3所述的方法,其特征在于,若所述未收到的数据包不满足快速重传,则:判断所述发送端...

【专利技术属性】
技术研发人员:晏亮
申请(专利权)人:深圳市网心科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1