一种数据传输方法及装置制造方法及图纸

技术编号:19866582 阅读:32 留言:0更新日期:2018-12-22 13:59
本申请提供一种数据传输方法及装置,应用于第一终端,所述方法包括:将获取的第一目标数据拆分为至少一个第一数据包,并将至少一个所述第一数据包封装为至少一个第一用户数据报协议UDP报文,其中,所述第一数据包与所述第一UDP报文一一对应;将所述第一UDP报文发送至第二终端,并且在接收到第二终端发送的第一重传请求的情况下,将与所述第一重传请求对应的封装有第一数据包的第一UDP报文重新发送至第二终端;接收第二终端发送的封装有第二数据包的第二UDP报文,并对所述第二UDP报文进行解析以获取第二数据包,从而在利用了UDP协议传输可以减少性能开销的优点的同时,又实现了可靠传输。

【技术实现步骤摘要】
一种数据传输方法及装置
本申请涉及通信
,特别涉及一种数据传输方法及装置。
技术介绍
TCP/IP协议族是互联网的基础。其中传输层协议包括TCP(TransmissionControlProtocol,传输控制协议)和UDP(UserDatagramProtocol,用户数据报协议)协议。对于TCP协议,在连接建立的过程中需要3次握手过程,从而导致在传输数据前需要有三次握手带来的性能开销,致使整个传输过程的时延变长,从而影响用户的体验。对于UDP协议,它是面向非连接的协议,从而不用与对方建立连接,就可以直接就把数据包发送过去。所以,与TCP协议相比,UDP协议更为轻量,但是错误校验也要少得多。这意味着UDP往往效率更高(不经常跟服务器端通信查看数据包是否送达或者按序),但是可靠性比不上TCP。通常游戏以及流媒体等应用均采用UDP协议,而网页、邮件、远程登录等应用均采用TCP协议。如何既实现可靠传输,又减少数据传输中的性能开销,是本需要解决的技术问题。
技术实现思路
有鉴于此,本申请实施例提供了一种数据传输方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。本申请实施例公开了一种数据传输方法,应用于第一终端,所述方法包括:将获取的第一目标数据拆分为至少一个第一数据包,并将至少一个所述第一数据包封装为至少一个第一用户数据报协议UDP报文,其中,所述第一数据包与所述第一UDP报文一一对应;将所述第一UDP报文发送至第二终端,并且在接收到第二终端发送的第一重传请求的情况下,将与所述第一重传请求对应的封装有第一数据包的第一UDP报文重新发送至第二终端;接收第二终端发送的封装有第二数据包的第二UDP报文,并对所述第二UDP报文进行解析以获取第二数据包。本申请实施例公开了一种数据传输装置,包括:拆分模块,用于将获取的第一目标数据拆分为至少一个第一数据包,并将至少一个所述第一数据包封装为至少一个第一UDP报文,其中,所述第一数据包与所述第一UDP报文一一对应;发送模块,用于将所述第一UDP报文发送至第二终端,并且在接收到第二终端发送的第一重传请求的情况下,将与所述第一重传请求对应的封装有第一数据包的第一UDP报文经由传输层重新发送至第二终端;接收模块,用于接收第二终端发送的封装有第二数据包的第二UDP报文,并对所述第二UDP报文进行解析以获取第二数据包。本申请实施例公开了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现如上所述的数据传输方法的步骤。本申请实施例公开了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如上所述的数据传输方法的步骤。本申请提供的数据传输方法及装置,通过将获取的第一目标数据生成第一UDP报文发送至第二终端,接收第二终端发送的第二UDP报文,并且在接收到第一重传请求的情况下,将于第一重传请求相对应的第一UDP报文重新发送至第二终端,从而在利用了UDP协议传输可以减少性能开销的优点的同时,又实现了可靠传输。附图说明图1是本申请一实施例的数据传输方法的流程示意图;图2是本申请一实施例的数据传输方法的流程示意图;图3是本申请另一实施例的数据传输方法的流程示意图;图4是本申请另一实施例的数据传输方法的流程示意图;图5是本申请另一实施例的数据传输方法的流程示意图;图6是本申请一实施例的数据传输装置的结构示意图;图7是本申请一实施例的计算设备的结构示意图。具体实施方式在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。在本申请中,提供了一种数据传输方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。本申请实施例的数据传输方法应用于第一终端的传输数据的场景中,例如在客户端与服务器之间的数据传输的过程中。参见图1,本申请实施例公开的数据传输方法主要包括发送第一UDP报文的步骤102~104和接收第二UDP报文的步骤106。需要说明的是,步骤106和步骤102~104为并行执行,并非按照先后顺序执行。102、将获取的第一目标数据拆分为至少一个第一数据包,并将至少一个所述第一数据包封装为至少一个第一用户数据报协议UDP报文。其中,所述第一数据包与所述第一UDP报文一一对应。本实施例中,第一目标数据可以为http(HyperTextTransportProtocol,超文本传输协议)数据,保证可靠传输。其中,需要说明的是,每个第一数据包分别封装为一个第一UDP报文,例如第一数据包的容量为1300字节,若本次需要发送的第一目标数据为100个字节,那么就会生成1个第一数据包,对应的生成1个第一UDP报文;若本次需要发送的第一目标数据为2000个字节,那么就会生成2个第一数据包,对应的生成2个第一UDP报文。第一UDP报文包括连接标识(connectionID),以区分不同次发送的第一数据包,从而实现协议链路的多路复用功能。并且,对于单次发送的第一目标数据,由该一个第一目标数据拆分得到的至少一个第一数据包,其对应的连接标识均相同,且每个第一数据包携带有序列号。其中,连接标识为第一终端在切分第一目标数据前随机生成。例如当前需要发送的第一目标数据为2000个字节,那么就会生成2个第一数据包,该2个第一数据包对应的连接标识均相同。在后续步骤中,第二终端在接收到第一UDP报文后,可以根据连接标识确定哪些数据包为本次需要接收到的第一数据包,并且可以根据第一数据包对应的序列号来判断本次接收到的第一数据包是否完整。104、将所述第一UDP报文发送至第二终端,并且在接收到第二终端发送的第一重传请求的情况下,将与所述第一重传请求对应的封装有第一数据包的第一UDP报文重新发送至第二终端。更为详尽地,第一重传请求携带有连接标识以及需要重传的第一数据包的序列号,以使第一终端将与第一重传请求对应的第一数据包封装为第一UDP报文重新发送至第二终端。106、接收第二终端发送的封装有第二数据包的第二UDP报文,并对所述第二UDP报文进行解析以获取第二数据包。更为详尽地,参见图2,步骤106包括:202、在接收到第二终端发送的封装有第二数据包的第二UDP报文之后,获取所述第二UDP报文的连接标识,并与已经接收到的连接标识进行对比,以判断该第二UDP报文的连接标识是否为新增的连接标识,若是,执行步骤204,若否,执行步骤206。其中,与第一数据包的生成规则相同,对于由一个第二目标数据拆分得到的至少一个第二数据包,其对应的连接标识均相同。第一终端在接收到第二UDP报文后,可以根据连接标识确定哪些数据包为本次需要接收到的第二数据包,并且可以根据第二数据包对应的序列号来判断本次接收到的第二数据包是否完整。需要注意的是,第一终端收到的第二UDP报文有可能为新的,也有可能不是新的(例如请求重传的第二UDP报文),那么,第一终端在接收到第二UDP报文后,需要首先对第二UDP报文的连接标识进行判断。204、对所述封装有第二数据包的第二UDP报文进行解析,然后执行步骤208。206、将解本文档来自技高网...

【技术保护点】
1.一种数据传输方法,其特征在于,应用于第一终端,所述方法包括:将获取的第一目标数据拆分为至少一个第一数据包,并将至少一个所述第一数据包封装为至少一个第一用户数据报协议UDP报文,其中,所述第一数据包与所述第一UDP报文一一对应;将所述第一UDP报文发送至第二终端,并且在接收到第二终端发送的第一重传请求的情况下,将与所述第一重传请求对应的封装有第一数据包的第一UDP报文重新发送至第二终端;接收第二终端发送的封装有第二数据包的第二UDP报文,并对所述第二UDP报文进行解析以获取第二数据包。

【技术特征摘要】
1.一种数据传输方法,其特征在于,应用于第一终端,所述方法包括:将获取的第一目标数据拆分为至少一个第一数据包,并将至少一个所述第一数据包封装为至少一个第一用户数据报协议UDP报文,其中,所述第一数据包与所述第一UDP报文一一对应;将所述第一UDP报文发送至第二终端,并且在接收到第二终端发送的第一重传请求的情况下,将与所述第一重传请求对应的封装有第一数据包的第一UDP报文重新发送至第二终端;接收第二终端发送的封装有第二数据包的第二UDP报文,并对所述第二UDP报文进行解析以获取第二数据包。2.如权利要求1所述的方法,其特征在于,还包括:所述第一终端判断接收到的第二数据包是否完整;若否,则所述第一终端生成第二重传请求发送至第二终端,以触发第二终端重传丢失的第二数据包;若是,则所述第一终端生成接收完成报文发送至第二终端,并根据所述第二数据包生成第二目标数据。3.如权利要求1所述的方法,其特征在于,在将所述第一目标数据拆分为至少一个第一数据包后,还包括:将所述第一数据包进行分组,生成至少一个第一分组数据包,并将至少一个所述第一分组数据包封装为第一UDP报文;将封装有第一分组数据包的第一UDP报文以及封装有第一数据包的第一UDP报文发送至第二终端。4.如权利要求1所述的方法,其特征在于,还包括:接收第二终端发送的封装有第二分组数据包的第二UDP报文,其中,所述第二分组数据包为所述第二终端将所述第二数据包分组生成;对封装有第二数据包的第二UDP报文以及封装有第二分组数据包的第二UDP报文进行解析,以获取所述第二数据包。5.如权利要求1所述的方法,其特征在于,所述第一UDP报文和所述第二UDP报文均包括连接标识;对于由一个所述第一目标数据拆分得到的至少一个第一数据包,其对应的连接标识均相同;对于由一个所述第二目标数据拆分得到的至少一个第二数据包,其对应的连接标识均相同。6.如权利要求5所述的方法,其特征在于,在接收到第二终端发送的封装有第二数据包的第二UDP报文之后,还包括:获取所述第二UDP报文的连接标识,并与已经接收到的连接标识进行对比,以判断该第二UDP报文的连接标识是否为新增的连接标识;若是,则对所述封装有第二数据包的第二UDP报文进行解析,以获得所述第二数据包;若否,则将解析得到的第二数据包与所述连接标识对应的已接收到的第二数据包进行拼合。7.如权利要求5所述的方法,其特征在于,还包括:若在第一阈值时间内未接收到完整的第二数据包,生成停止接收报文并发送至第二终端,并将所述第二数据包对应的连接标识存入至缓存中;其中,所述停止接收报文携带的连接标识与位于缓存中的所述第二数据包对应的连接标识相同;若接收到与位于缓存中的所述第二数据包的连接标识相同的第二UDP报文,将所述停止接收报文发送至第二终端,以停止接收所述第二UDP报文。8.如权利要求5所述的方法,其特征在于,还包括:在发送所述第一数据包的过程中,若在第二阈值时间内未接收到第二终端发送的接收完成报文,将所述第一数据包对应的连接标识存入至缓存中;其中,所述接收完成报文携带的连接标识与位于缓存中的所述第一数据包对应的连接标识相同;若再次接收到与位于缓存中的所述第一数据包对应的连接标识相同的第一重传请求,向第二终端发送停止发送报文,以停止发送第一UDP报文;其中,所述停止发送报文携带的连接标识与位于缓存中的所述第一数据包对应的连接标识相同。9.如权利要求7或8所述的方法,其特征在于,所述方法还包括:在时间间隔达到第三阈值的情况下,清理所述第一终端的缓存。10.如权利要求1所述的方法,其特征在于,所述方法还包括:发送检测报文至第二终端,并接收第二终端返回的响应报文,以确定两个第一终端之间的链路信息;其中,所述链路信息包括:链路的时延以及丢包率;根据所述链路信息确定所述第一UDP报文的发送频率。11.如权利要求7所述的方法,其特征在于,所述方法包括:在接收到第二终端发送的停止接收报文后,停止发送与所述停止接收报文的连接标识相同的第一UDP报文。12.如权利要求8所述的方法,其特征在于,所述方法包括:在接收到第二终端发送的停止发送报文后,停止接收与所述停止发送报文的连接标识相同的第二UDP报文。13.一种数据传输装置,其特征在于,包括:拆分模块,用于将获取的第一目标数据拆分为至少...

【专利技术属性】
技术研发人员:申松跃许宏峰宋仁勇
申请(专利权)人:北京粉笔未来科技有限公司
类型:发明
国别省市:北京,11

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

1