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

技术编号:37507373 阅读:17 留言:0更新日期:2023-05-07 09:44
本公开是关于一种UDP数据传输方法、UDP数据传输装置、存储介质及电子设备。该UDP数据传输方法包括:发送端每发送一包数据时,向第一缓存区备份发送的数据,接收端将发送端发送的数据存储于位于接收端的第二缓存区,且接收端从第二缓存区每读取M包数据就向发送端发送一次丢包数据信息,发送端接收到丢包数据信息后,从第一缓存区获取丢包数据信息对应的数据包,并将丢包数据信息对应的数据包存储于位于发送端的第三缓存区,发送端在发送数据时及时进行数据备份,并通过条件判断已发送但未被接收端读取的数据包数K是否满足:K<N

【技术实现步骤摘要】
UDP数据传输方法及UDP数据传输装置


[0001]本公开涉及电子
,尤其涉及一种UDP数据传输方法、UDP数据传输装置、存储介质及电子设备。

技术介绍

[0002]UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。在应用中,UDP网络传输是一种不可靠的网络传输协议,会出现丢包的问题。

技术实现思路

[0003]有鉴于此,本公开实施例期望提供一种UDP数据传输方法、UDP数据传输装置、存储介质及电子设备。
[0004]本公开的技术方案是这样实现的:第一方面,本公开提供一种UDP数据传输方法。
[0005]本公开实施例提供的UDP数据传输方法,所述方法包括:发送端每发送一包数据时,向第一缓存区备份发送的数据,所述第一缓存区位于所述发送端且仅备份最近发送的N包数据;接收端将所述发送端发送的数据存储于位于所述接收端的第二缓存区,且所述接收端从所述第二缓存区每读取M包数据就向所述发送端发送一次丢包数据信息;所述发送端接收到所述丢包数据信息后,从所述第一缓存区获取所述丢包数据信息对应的数据包,并将所述丢包数据信息对应的数据包存储于位于所述发送端的第三缓存区;所述发送端优先从所述第三缓存区获取所述丢包数据信息对应的数据包并组包发送;其中,所述发送端组包发送数据前,判断已发送但未被所述接收端读取的数据包数K是否满足:K<N

2M;若所述数据包数K满足:K<N

2M,则发送端继续组包发送数据,否则停止组包发送数据。
[0006]在一些实施例中,所述发送端发送的数据包包含帧号,且当前组包的数据包帧号为上一个已发送数据包帧号+1;所述接收端读取M包数据后,将数据包按帧号顺序排列,依据帧号连续性判断缺失的数据包帧号;其中,所述丢包数据信息包含所述缺失的数据包帧号。
[0007]在一些实施例中,所述方法包括:所述发送端从所述第三缓存区获取数据并组包时,按照所述第三缓存区中数据包的原有帧号依序提取,并将提取的数据包重新编入帧号;其中,重新编入帧号的所述数据包的帧号为上一个已发送数据包的帧号+1。
[0008]在一些实施例中,所述丢包数据信息还包含所述接收端所读取的M包数据中的最
后帧号;所述发送端组包发送数据前,判断已发送但未被所述接收端读取的数据包数K是否满足:K<N

2M,包括:所述发送端依据最近接收的所述丢包数据信息中包含的最后帧号判断已发送但未被所述接收端读取的数据包K是否满足:K<N

2M。
[0009]在一些实施例中,所述发送端依据最近接收的所述丢包数据信息中包含的最后帧号为x,上一个已发送数据包的帧号为y,设帧号的最大值为z:若y>x,则判断y

x是否满足y

x<N

M;若y

x<N

M,则发送端继续组包发送数据,否则停止组包发送数据;若y<x,则判断y+z

x是否满足y+z

x<N

M;若y+z

x<N

M,则发送端继续组包发送数据,否则停止组包发送数据。
[0010]在一些实施例中,所述第一缓存区包括N个有序排列的存储区域,每个所述存储区域用于存储一个已发送的数据包;其中,最新的已发送数据包备份至所述第一缓存区的第一存储区域;在向所述第一缓存区的第i存储区域写入数据之前,先将所述第i存储区域存储的数据写入所述第一缓存区的第i+1存储区域;其中,N

1≥i≥1;在向所述第一缓存区的第j存储区域写入数据时,将所述第一缓存区的第j

1存储区域的数据覆盖所述第一缓存区的第j存储区域原有数据;其中,j=N。
[0011]在一些实施例中,所述方法包括:所述接收端发出所述丢包数据信息后继续从所述第二缓存区读取数据;其中,从所述接收端发出所述丢包数据信息到所述第三缓存区获取到对应于所述丢包数据信息的数据包的时间为t,所述接收端读取M包数据需要的时间为T,则T≥t。
[0012]第二方面,本公开提供一种UDP数据传输方法,包括:数据缓存模块,用于发送端每发送一包数据时,向第一缓存区备份发送的数据,所述第一缓存区位于所述发送端且仅备份最近发送的N包数据,数据接收模块,用于接收端将所述发送端发送的数据存储于位于所述接收端的第二缓存区,且所述接收端从所述第二缓存区每读取M包数据就向所述发送端发送一次丢包数据信息,数据获取模块,用于所述发送端接收到所述丢包数据信息后,从所述第一缓存区获取所述丢包数据信息对应的数据包,并将所述丢包数据信息对应的数据包存储于位于所述发送端的第三缓存区,数据重发模块,用于所述发送端优先从所述第三缓存区获取所述丢包数据信息对应的数据包并组包发送;其中,所述发送端组包发送数据前,判断已发送但未被所述接收端读取的数据包数K是否满足:K<N

2M;若所述数据包数K满足:K<N

2M,则发送端继续组包发送数据,否则停止组包发送数据。
[0013]第三方面,本公开提供一种计算机可读存储介质,其上存储有UDP数据传输程序,该UDP数据传输程序被处理器执行时,实现上述第一方面所述的UDP数据传输方法。
[0014]第四方面,本公开提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的UDP数据传输程序,所述处理器执行所述UDP数据传输程序时,实现上述
第一方面所述的UDP数据传输方法。
[0015]根据本公开实施例的UDP数据传输方法,包括:发送端每发送一包数据时,向第一缓存区备份发送的数据,第一缓存区位于发送端且仅备份最近发送的N包数据,接收端将发送端发送的数据存储于位于接收端的第二缓存区,且接收端从第二缓存区每读取M包数据就向发送端发送一次丢包数据信息,发送端接收到丢包数据信息后,从第一缓存区获取丢包数据信息对应的数据包,并将丢包数据信息对应的数据包存储于位于发送端的第三缓存区,发送端优先从第三缓存区获取丢包数据信息对应的数据包并组包发送;其中,发送端组包发送数据前,判断已发送但未被接收端读取的数据包数K是否满足:K<N

2M;若数据包数K满足:K<N

2M,则发送端继续组包发送数据,否则停止组包发送数据。本申请中发送端在发送数据时及时进行数据备份,并通过条件判断已发送但未被接收端读取的数据包数K是否满足:K<N
...

【技术保护点】

【技术特征摘要】
1.一种UDP数据传输方法,其特征在于,包括:发送端每发送一包数据时,向第一缓存区备份发送的数据,所述第一缓存区位于所述发送端且仅备份最近发送的N包数据;接收端将所述发送端发送的数据存储于位于所述接收端的第二缓存区,且所述接收端从所述第二缓存区每读取M包数据就向所述发送端发送一次丢包数据信息;所述发送端接收到所述丢包数据信息后,从所述第一缓存区获取所述丢包数据信息对应的数据包,并将所述丢包数据信息对应的数据包存储于位于所述发送端的第三缓存区;所述发送端优先从所述第三缓存区获取所述丢包数据信息对应的数据包并组包发送;其中,所述发送端组包发送数据前,判断已发送但未被所述接收端读取的数据包数K是否满足:K< N

2M;若所述数据包数K满足:K< N

2M,则发送端继续组包发送数据,否则停止组包发送数据。2.根据权利要求1所述的UDP数据传输方法,其特征在于,所述发送端发送的数据包包含帧号,且当前组包的数据包帧号为上一个已发送数据包帧号+1;所述接收端读取M包数据后,将数据包按帧号顺序排列,依据帧号连续性判断缺失的数据包帧号;其中,所述丢包数据信息包含所述缺失的数据包帧号。3.根据权利要求2所述的UDP数据传输方法,其特征在于,所述方法包括:所述发送端从所述第三缓存区获取数据并组包时,按照所述第三缓存区中数据包的原有帧号依序提取,并将提取的数据包重新编入帧号;其中,重新编入帧号的所述数据包的帧号为上一个已发送数据包的帧号+1。4.根据权利要求2所述的UDP数据传输方法,其特征在于,所述丢包数据信息还包含所述接收端所读取的M包数据中的最后帧号;所述发送端组包发送数据前,判断已发送但未被所述接收端读取的数据包数K是否满足:K< N

2M,包括:所述发送端依据最近接收的所述丢包数据信息中包含的最后帧号判断已发送但未被所述接收端读取的数据包K是否满足:K< N

2M。5.根据权利要求4所述的UDP数据传输方法,其特征在于,所述发送端依据最近接收的所述丢包数据信息中包含的最后帧号为x,上一个已发送数据包的帧号为y,设帧号的最大值为z:若y>x,则判断y

x是否满足y

x< N

M;若y

x< N

M,则发送端继续组包发送数据,否则停止组包发送数据;若y< x,则判断y+z

x是否满足y+z

【专利技术属性】
技术研发人员:朱纯纯张海建黄斌贺羽吴亚
申请(专利权)人:国仪量子合肥技术有限公司
类型:发明
国别省市:

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

1