CN116074252B - Udp数据传输方法及udp数据传输装置 - Google Patents
Udp数据传输方法及udp数据传输装置 Download PDFInfo
- Publication number
- CN116074252B CN116074252B CN202310210871.5A CN202310210871A CN116074252B CN 116074252 B CN116074252 B CN 116074252B CN 202310210871 A CN202310210871 A CN 202310210871A CN 116074252 B CN116074252 B CN 116074252B
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- buffer area
- transmitting end
- packets
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 54
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000015654 memory Effects 0.000 claims description 12
- 239000000284 extract Substances 0.000 claims description 4
- 230000000295 complement effect Effects 0.000 abstract description 10
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 241000702244 Orthoreovirus Species 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
Abstract
本公开是关于一种UDP数据传输方法、UDP数据传输装置、存储介质及电子设备。该UDP数据传输方法包括:发送端每发送一包数据时,向第一缓存区备份发送的数据,接收端将发送端发送的数据存储于位于接收端的第二缓存区,且接收端从第二缓存区每读取M包数据就向发送端发送一次丢包数据信息,发送端接收到丢包数据信息后,从第一缓存区获取丢包数据信息对应的数据包,并将丢包数据信息对应的数据包存储于位于发送端的第三缓存区,发送端在发送数据时及时进行数据备份,并通过条件判断已发送但未被接收端读取的数据包数K是否满足:K<N‑2M来确定是否继续进行组包发送数据,来减少发送端没有备份数据来调取补包重发的数据,进而造成数据丢包的情况。
Description
技术领域
本公开涉及电子技术领域,尤其涉及一种UDP数据传输方法、UDP数据传输装置、存储介质及电子设备。
背景技术
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(OpenSystem Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。在应用中,UDP网络传输是一种不可靠的网络传输协议,会出现丢包的问题。
发明内容
有鉴于此,本公开实施例期望提供一种UDP数据传输方法、UDP数据传输装置、存储介质及电子设备。
本公开的技术方案是这样实现的:
第一方面,本公开提供一种UDP数据传输方法。
本公开实施例提供的UDP数据传输方法,所述方法包括:
发送端每发送一包数据时,向第一缓存区备份发送的数据,所述第一缓存区位于所述发送端且仅备份最近发送的N包数据;
接收端将所述发送端发送的数据存储于位于所述接收端的第二缓存区,且所述接收端从所述第二缓存区每读取M包数据就向所述发送端发送一次丢包数据信息;
所述发送端接收到所述丢包数据信息后,从所述第一缓存区获取所述丢包数据信息对应的数据包,并将所述丢包数据信息对应的数据包存储于位于所述发送端的第三缓存区;
所述发送端优先从所述第三缓存区获取所述丢包数据信息对应的数据包并组包发送;其中,所述发送端组包发送数据前,判断已发送但未被所述接收端读取的数据包数K是否满足:K<N-2M;若所述数据包数K满足:K<N-2M,则发送端继续组包发送数据,否则停止组包发送数据。
在一些实施例中,所述发送端发送的数据包包含帧号,且当前组包的数据包帧号为上一个已发送数据包帧号+1;
所述接收端读取M包数据后,将数据包按帧号顺序排列,依据帧号连续性判断缺失的数据包帧号;其中,所述丢包数据信息包含所述缺失的数据包帧号。
在一些实施例中,所述方法包括:
所述发送端从所述第三缓存区获取数据并组包时,按照所述第三缓存区中数据包的原有帧号依序提取,并将提取的数据包重新编入帧号;其中,重新编入帧号的所述数据包的帧号为上一个已发送数据包的帧号+1。
在一些实施例中,所述丢包数据信息还包含所述接收端所读取的M包数据中的最后帧号;
所述发送端组包发送数据前,判断已发送但未被所述接收端读取的数据包数K是否满足:K<N-2M,包括:
所述发送端依据最近接收的所述丢包数据信息中包含的最后帧号判断已发送但未被所述接收端读取的数据包K是否满足:K<N-2M。
在一些实施例中,所述发送端依据最近接收的所述丢包数据信息中包含的最后帧号为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,则发送端继续组包发送数据,否则停止组包发送数据。
在一些实施例中,所述第一缓存区包括N个有序排列的存储区域,每个所述存储区域用于存储一个已发送的数据包;其中,
最新的已发送数据包备份至所述第一缓存区的第一存储区域;
在向所述第一缓存区的第i存储区域写入数据之前,先将所述第i存储区域存储的数据写入所述第一缓存区的第i+1存储区域;其中,N-1≥i≥1;
在向所述第一缓存区的第j存储区域写入数据时,将所述第一缓存区的第j-1存储区域的数据覆盖所述第一缓存区的第j存储区域原有数据;其中,j=N。
在一些实施例中,所述方法包括:
所述接收端发出所述丢包数据信息后继续从所述第二缓存区读取数据;其中,从所述接收端发出所述丢包数据信息到所述第三缓存区获取到对应于所述丢包数据信息的数据包的时间为t,所述接收端读取M包数据需要的时间为T,则T≥t。
第二方面,本公开提供一种UDP数据传输方法,包括:
数据缓存模块,用于发送端每发送一包数据时,向第一缓存区备份发送的数据,所述第一缓存区位于所述发送端且仅备份最近发送的N包数据,
数据接收模块,用于接收端将所述发送端发送的数据存储于位于所述接收端的第二缓存区,且所述接收端从所述第二缓存区每读取M包数据就向所述发送端发送一次丢包数据信息,
数据获取模块,用于所述发送端接收到所述丢包数据信息后,从所述第一缓存区获取所述丢包数据信息对应的数据包,并将所述丢包数据信息对应的数据包存储于位于所述发送端的第三缓存区,
数据重发模块,用于所述发送端优先从所述第三缓存区获取所述丢包数据信息对应的数据包并组包发送;其中,所述发送端组包发送数据前,判断已发送但未被所述接收端读取的数据包数K是否满足:K<N-2M;若所述数据包数K满足:K<N-2M,则发送端继续组包发送数据,否则停止组包发送数据。
第三方面,本公开提供一种计算机可读存储介质,其上存储有UDP数据传输程序,该UDP数据传输程序被处理器执行时,实现上述第一方面所述的UDP数据传输方法。
第四方面,本公开提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的UDP数据传输程序,所述处理器执行所述UDP数据传输程序时,实现上述第一方面所述的UDP数据传输方法。
根据本公开实施例的UDP数据传输方法,包括:发送端每发送一包数据时,向第一缓存区备份发送的数据,第一缓存区位于发送端且仅备份最近发送的N包数据,接收端将发送端发送的数据存储于位于接收端的第二缓存区,且接收端从第二缓存区每读取M包数据就向发送端发送一次丢包数据信息,发送端接收到丢包数据信息后,从第一缓存区获取丢包数据信息对应的数据包,并将丢包数据信息对应的数据包存储于位于发送端的第三缓存区,发送端优先从第三缓存区获取丢包数据信息对应的数据包并组包发送;其中,发送端组包发送数据前,判断已发送但未被接收端读取的数据包数K是否满足:K<N-2M;若数据包数K满足:K<N-2M,则发送端继续组包发送数据,否则停止组包发送数据。本申请中发送端在发送数据时及时进行数据备份,并通过条件判断已发送但未被接收端读取的数据包数K是否满足:K<N-2M来确定是否继续进行组包发送数据,来减少因数据发送过多备份数据更新过快造成接收端解读数据时发送端没有备份数据来调取补包重发的数据,进而造成数据丢包的情况。其中,N为发射端已发的数据包,M为接收端一次读取的数据包。
本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
图1是根据一示例性实施例示出的UDP数据传输方法流程图;
图2为示例性实施例示出的FPGA和CPU之间通过UDP协议进行网络通信示意图;
图3为示例性实施例示出的FPGA和CPU之间通过UDP协议进行网络通信的数据帧结构示意图;
图4为示例性实施例示出的FPGA和CPU之间通过UDP协议进行网络通信的数据重发流程图;
图5是根据一示例性实施例示出的UDP数据传输装置结构示意图。
具体实施方式
下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(OpenSystem Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。在应用中,UDP网络传输是一种不可靠的网络传输协议,会出现丢包的问题。
针对上述情况,本公开提供一种基于FPGA (Field-Programmable Gate Array,现场可编程门阵列)的UDP数据传输方法。图1是根据一示例性实施例示出的UDP数据传输方法流程图。如图1所示,该UDP数据传输方法,可应用于所述FPGA端与CPU之间的通信,所述方法包括:
步骤10、发送端每发送一包数据时,向第一缓存区备份发送的数据,所述第一缓存区位于所述发送端且仅备份最近发送的N包数据,
步骤11、接收端将所述发送端发送的数据存储于位于所述接收端的第二缓存区,且所述接收端从所述第二缓存区每读取M包数据就向所述发送端发送一次丢包数据信息,
步骤12、所述发送端接收到所述丢包数据信息后,从所述第一缓存区获取所述丢包数据信息对应的数据包,并将所述丢包数据信息对应的数据包存储于位于所述发送端的第三缓存区,
步骤13、所述发送端优先从所述第三缓存区获取所述丢包数据信息对应的数据包并组包发送;其中,所述发送端组包发送数据前,判断已发送但未被所述接收端读取的数据包数K是否满足:K<N-2M;若所述数据包数K满足:K<N-2M,则发送端继续组包发送数据,否则停止组包发送数据。
在本示例性实施例中,N为发射端已发的数据包,M为接收端一次读取的数据包。第一个M为M1可以代表接收端已读取向发送端反馈了丢包数据信息的数据包,第二个M为M2可以代表接收端正在读取的数据包,已发送但未被所述接收端读取的数据包数K。通过K<N-2M,来确定发送端缓存的数据包均包含有接收端已读取数据包、正在读取数据包和已发送但未被所述接收端读取的数据包对应的备份数据,从而保证对于接收端反馈的丢包数据信息均可以在发送端找到对应的补包数据,从而减少因数据发送过多备份数据更新过快造成接收端解读数据时发送端没有备份数据来调取补包重发的数据而造成的数据丢包的情况。
在一些实施例中,所述发送端发送的数据包包含帧号,且当前组包的数据包帧号为上一个已发送数据包帧号+1;
所述接收端读取M包数据后,将数据包按帧号顺序排列,依据帧号连续性判断缺失的数据包帧号;其中,所述丢包数据信息包含所述缺失的数据包帧号。
在本示例性实施例中,发送端发送的数据包中的帧号为连续帧号,即当前组包的数据包帧号为上一个已发送数据包帧号+1。接收端接收到数据包后,可通过帧号连续性判断缺失的数据包帧号。然后接收端包含所述缺失的数据包帧号的丢包数据信息反馈给发送端。
在一些实施例中,所述方法包括:
所述发送端从所述第三缓存区获取数据并组包时,按照所述第三缓存区中数据包的原有帧号依序提取,并将提取的数据包重新编入帧号;其中,重新编入帧号的所述数据包的帧号为上一个已发送数据包的帧号+1。
在本示例性实施例中,发送端在进行数据重发时,需要将补包重发的数据重新进行组包发送。组包发送时需要将补包的数据重新进行编号发送。其中,如果遇到特殊情况,上一个已发送数据包的帧号已经是最大值,则当前组包数据包的帧号复位为1。
在一些实施例中,所述丢包数据信息还包含所述接收端所读取的M包数据中的最后帧号;
所述发送端组包发送数据前,判断已发送但未被所述接收端读取的数据包数K是否满足:K<N-2M,包括:
所述发送端依据最近接收的所述丢包数据信息中包含的最后帧号判断已发送但未被所述接收端读取的数据包K是否满足:K<N-2M。
在本示例性实施例中,“最后帧号”而不是“最大帧号”,因为帧号可能会从头排,后面的反而小。在代入数据时,可通过帧号来确定K、N、M等数量的大小。例如,通过开始数据包到最后数据包间对应的帧号的相减来确定K、N、M等数量的大小。
在一些实施例中,所述发送端依据最近接收的所述丢包数据信息中包含的最后帧号为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,则发送端继续组包发送数据,否则停止组包发送数据。
在本示例性实施例中,“最后帧号”判断发送停续的具体方法。设帧号的最大值为z,当帧号达到最大值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,则发送端继续组包发送数据,否则停止组包发送数据。
在一些实施例中,所述第一缓存区包括N个有序排列的存储区域,每个所述存储区域用于存储一个已发送的数据包;其中,
最新的已发送数据包备份至所述第一缓存区的第一存储区域;
在向所述第一缓存区的第i存储区域写入数据之前,先将所述第i存储区域存储的数据写入所述第一缓存区的第i+1存储区域;其中,N-1≥i≥1;
在向所述第一缓存区的第j存储区域写入数据时,将所述第一缓存区的第j-1存储区域的数据覆盖所述第一缓存区的第j存储区域原有数据;其中,j=N。
在本示例性实施例中,发送端采用滑动存储,最新数据可最先存储于第一存储区域,在向当前存储区域存储数据时,当前存储区域的数据可先存储于下一个存储区域内,新的存储数据可直接覆盖原有的存储数据,无需定期清理缓存。
在一些实施例中,所述方法包括:
所述接收端发出所述丢包数据信息后继续从所述第二缓存区读取数据;其中,从所述接收端发出所述丢包数据信息到所述第三缓存区获取到对应于所述丢包数据信息的数据包的时间为t,所述接收端读取M包数据需要的时间为T,则T≥t。
在本示例性实施例中,接收端读取M包数据需要的时间T大于发送端从接收所述丢包数据信息到从所述第三缓存区获取对应于所述丢包数据信息的数据包的时间t,如此可减少因发送端数据读取发送过快造成接收端数据积压数据读取相对过慢的情况出现。因为接收端数据读取过慢发送端数据读取过快很容易造成数据丢包。
在本示例性实施例中,图2为示例性实施例示出的FPGA和CPU之间通过UDP协议进行网络通信示意图。如图2所示,FPGA与接收端的CPU之间建立通信。FPGA端作为发送端,CPU作为接收端。本申请中接收端可以是终端设备也可以是服务器。
在FPGA端,可以把CPU当作一个FIFO进行写入,在CPU端会开辟一个环形缓冲区和一个数据接收缓冲区。FPGA最多发送一半环形缓冲区大小的数据。此值可以设置为100Kbytes大小。FPGA会把100Kbytes数据分为每包1KB大小的100包数据作为待发送数据进行发送。在发送待发送数据时,备份所述待发送数据至所述FPGA的缓存区域,当接收到接收端反馈的数据丢失信息时,可根据未被接收端接收到的帧数据的帧号在FPGA的缓存区域调取与帧号对应的待发送数据,重新向接收端发送与帧号对应的待发送数据。
图3为示例性实施例示出的FPGA和CPU之间通过UDP协议进行网络通信的数据帧结构示意图。如图3所示,一帧数据1024字节。其中字头16字节中包含有8字节的帧号标志,帧号按递增顺序进行排列,即每一包数据的帧号都是唯一的。有效负载1008字节。
图4为示例性实施例示出的FPGA和CPU之间通过UDP协议进行网络通信的数据重发流程图。如图4所示,FPGA的随机存取存储器RAM 一共有N=100个(RAM-0到RAM-N),每个大小为1KBytes。缓存方式为滑动缓存,即当有新的一包数据要缓存到RAM-0中时,会同时取出RAM-0中之前的数据缓存到RAM-1中,以此类推更新N个RAM中的数据。这样就达到了只保存最新N包数据的目的。如图4所示,步骤40、FPGA中的正常数据流发送给用户接口并缓存到RAM中;步骤41、正常数据流经过用户接口到达物理层传输给接收端的CPU;步骤42、接收端的CPU将把缺失的帧号信息发送给FPGA;步骤43、FPGA优先发送重传数据包,FPGA根据数据丢失信息中的重传帧号信息,到RAM中取相应的数据包,重新发送给CPU。这样就可以保证丢失的包得到正常重传。
本公开提供一种UDP数据传输装置。图5是根据一示例性实施例示出的UDP数据传输装置结构示意图。如图5所示,UDP数据传输装置,包括:
数据缓存模块50,用于发送端每发送一包数据时,向第一缓存区备份发送的数据,所述第一缓存区位于所述发送端且仅备份最近发送的N包数据,
数据接收模块51,用于接收端将所述发送端发送的数据存储于位于所述接收端的第二缓存区,且所述接收端从所述第二缓存区每读取M包数据就向所述发送端发送一次丢包数据信息,
数据获取模块52,用于所述发送端接收到所述丢包数据信息后,从所述第一缓存区获取所述丢包数据信息对应的数据包,并将所述丢包数据信息对应的数据包存储于位于所述发送端的第三缓存区,
数据重发模块53,用于所述发送端优先从所述第三缓存区获取所述丢包数据信息对应的数据包并组包发送;其中,所述发送端组包发送数据前,判断已发送但未被所述接收端读取的数据包数K是否满足:K<N-2M;若所述数据包数K满足:K<N-2M,则发送端继续组包发送数据,否则停止组包发送数据。
在本示例性实施例中,N为发射端已发的数据包,M为接收端一次读取的数据包。第一个M可以代表接收端已读取向发送端反馈了丢包数据信息的数据包,第二个M可以代表接收端正在读取的数据包,已发送但未被所述接收端读取的数据包数K。通过K<N-2M,来确定发送端缓存的数据包均包含有接收端已读取数据包、正在读取数据包和已发送但未被所述接收端读取的数据包对应的备份数据,从而保证对于接收端反馈的丢包数据信息均可以在发送端找到对应的补包数据,从而减少因数据发送过多备份数据更新过快造成接收端解读数据时发送端没有备份数据来调取补包重发的数据而造成的数据丢包的情况。
在一些实施例中,所述发送端发送的数据包包含帧号,且当前组包的数据包帧号为上一个已发送数据包帧号+1;
所述数据接收模块,用于接收端读取M包数据后,将数据包按帧号顺序排列,依据帧号连续性判断缺失的数据包帧号;其中,所述丢包数据信息包含所述缺失的数据包帧号。
在本示例性实施例中,发送端发送的数据包中的帧号为连续帧号,即当前组包的数据包帧号为上一个已发送数据包帧号+1。接收端接收到数据包后,可通过帧号连续性判断缺失的数据包帧号。然后接收端包含所述缺失的数据包帧号的丢包数据信息反馈给发送端。
在一些实施例中,所述数据获取模块,用于
所述发送端从所述第三缓存区获取数据并组包时,按照所述第三缓存区中数据包的原有帧号依序提取,并将提取的数据包重新编入帧号;其中,重新编入帧号的所述数据包的帧号为上一个已发送数据包的帧号+1。
在本示例性实施例中,发送端在进行数据重发时,需要将补包重发的数据重新进行组包发送。组包发送时需要将补包的数据重新进行编号发送。其中,如果遇到特殊情况,上一个已发送数据包的帧号已经是最大值,则当前组包数据包的帧号复位为1。
在一些实施例中,所述丢包数据信息还包含所述接收端所读取的M包数据中的最后帧号;
所述数据重发模块,用于
所述发送端依据最近接收的所述丢包数据信息中包含的最后帧号判断已发送但未被所述接收端读取的数据包K是否满足:K<N-2M。
在本示例性实施例中,“最后帧号”而不是“最大帧号”,因为帧号可能会从头排,后面的反而小。在代入数据时,可通过帧号来确定K、N、M等数量的大小。例如,通过开始数据包到最后数据包间对应的帧号的相减来确定K、N、M等数量的大小。
在一些实施例中,所述发送端依据最近接收的所述丢包数据信息中包含的最后帧号为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,则发送端继续组包发送数据,否则停止组包发送数据。
在本示例性实施例中,“最后帧号”判断发送停续的具体方法。设帧号的最大值为z,当帧号达到最大值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,则发送端继续组包发送数据,否则停止组包发送数据。
在一些实施例中,所述第一缓存区包括N个有序排列的存储区域,每个所述存储区域用于存储一个已发送的数据包;其中,
所述数据缓存模块,用于
最新的已发送数据包备份至所述第一缓存区的第一存储区域;
在向所述第一缓存区的第i存储区域写入数据之前,先将所述第i存储区域存储的数据写入所述第一缓存区的第i+1存储区域;其中,N-1≥i≥1;
在向所述第一缓存区的第j存储区域写入数据时,将所述第一缓存区的第j-1存储区域的数据覆盖所述第一缓存区的第j存储区域原有数据;其中,j=N。
在本示例性实施例中,发送端采用滑动存储,最新数据可最先存储于第一存储区域,在向当前存储区域存储数据时,当前存储区域的数据可先存储于下一个存储区域内,新的存储数据可直接覆盖原有的存储数据,无需定期清理缓存。
在一些实施例中,所述数据接收模块,用于
所述接收端发出所述丢包数据信息后继续从所述第二缓存区读取数据;其中,从所述接收端发出所述丢包数据信息到所述第三缓存区获取到对应于所述丢包数据信息的数据包的时间为t,所述接收端读取M包数据需要的时间为T,则T≥t。
在本示例性实施例中,接收端读取M包数据需要的时间T大于发送端从接收所述丢包数据信息到从所述第三缓存区获取对应于所述丢包数据信息的数据包的时间t,如此可减少因发送端数据读取发送过快造成接收端数据积压数据读取相对过慢的情况出现。因为接收端数据读取过慢发送端数据读取过快很容易造成数据丢包。
本公开提供一种计算机可读存储介质,其上存储有UDP数据传输程序,该UDP数据传输程序被处理器执行时,实现上述各实施例所述的UDP数据传输方法。
本公开提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的UDP数据传输程序,所述处理器执行所述UDP数据传输程序时,实现上述各实施例所述的UDP数据传输方法。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
在本公开的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本公开和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本公开的限制。
此外,本公开实施例中所使用的“第一”、“第二”等术语,仅用于描述目的,而不可以理解为指示或者暗示相对重要性,或者隐含指明本实施例中所指示的技术特征数量。由此,本公开实施例中限定有“第一”、“第二”等术语的特征,可以明确或者隐含地表示该实施例中包括至少一个该特征。在本公开的描述中,词语“多个”的含义是至少两个或者两个及以上,例如两个、三个、四个等,除非实施例中另有明确具体的限定。
在本公开中,除非实施例中另有明确的相关规定或者限定,否则实施例中出现的术语“安装”、“相连”、“连接”和“固定”等应做广义理解,例如,连接可以是固定连接,也可以是可拆卸连接,或成一体,可以理解的,也可以是机械连接、电连接等;当然,还可以是直接相连,或者通过中间媒介进行间接连接,或者可以是两个元件内部的连通,或者两个元件的相互作用关系。对于本领域的普通技术人员而言,能够根据具体的实施情况理解上述术语在本公开中的具体含义。
在本公开中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
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-x< N-M;若y+z-x< N-M,则发送端继续组包发送数据,否则停止组包发送数据。
6.根据权利要求1所述的UDP数据传输方法,其特征在于,所述第一缓存区包括N个有序排列的存储区域,每个所述存储区域用于存储一个已发送的数据包;其中,
最新的已发送数据包备份至所述第一缓存区的第一存储区域;
在向所述第一缓存区的第i存储区域写入数据之前,先将所述第i存储区域存储的数据写入所述第一缓存区的第i+1存储区域;其中,N-1≥i≥1;
在向所述第一缓存区的第j存储区域写入数据时,将所述第一缓存区的第j-1存储区域的数据覆盖所述第一缓存区的第j存储区域原有数据;其中,j=N。
7.根据权利要求1所述的UDP数据传输方法,其特征在于,所述方法包括:
所述接收端发出所述丢包数据信息后继续从所述第二缓存区读取数据;其中,从所述接收端发出所述丢包数据信息到所述第三缓存区获取到对应于所述丢包数据信息的数据包的时间为t,所述接收端读取M包数据需要的时间为T,则T≥t。
8.一种UDP数据传输装置,其特征在于,包括:
数据缓存模块,用于发送端每发送一包数据时,向第一缓存区备份发送的数据,所述第一缓存区位于所述发送端且仅备份最近发送的N包数据,
数据接收模块,用于接收端将所述发送端发送的数据存储于位于所述接收端的第二缓存区,且所述接收端从所述第二缓存区每读取M包数据就向所述发送端发送一次丢包数据信息,
数据获取模块,用于所述发送端接收到所述丢包数据信息后,从所述第一缓存区获取所述丢包数据信息对应的数据包,并将所述丢包数据信息对应的数据包存储于位于所述发送端的第三缓存区,
数据重发模块,用于所述发送端优先从所述第三缓存区获取所述丢包数据信息对应的数据包并组包发送;其中,所述发送端组包发送数据前,判断已发送但未被所述接收端读取的数据包数K是否满足:K< N-2M;若所述数据包数K满足:K< N-2M,则发送端继续组包发送数据,否则停止组包发送数据。
9.一种计算机可读存储介质,其特征在于,其上存储有UDP数据传输程序,该UDP数据传输程序被处理器执行时,实现权利要求1-7中任一项所述的UDP数据传输方法。
10.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的UDP数据传输程序,所述处理器执行所述UDP数据传输程序时,实现权利要求1-7中任一项所述的UDP数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310210871.5A CN116074252B (zh) | 2023-03-07 | 2023-03-07 | Udp数据传输方法及udp数据传输装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310210871.5A CN116074252B (zh) | 2023-03-07 | 2023-03-07 | Udp数据传输方法及udp数据传输装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116074252A CN116074252A (zh) | 2023-05-05 |
CN116074252B true CN116074252B (zh) | 2023-06-06 |
Family
ID=86183841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310210871.5A Active CN116074252B (zh) | 2023-03-07 | 2023-03-07 | Udp数据传输方法及udp数据传输装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116074252B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699797A (zh) * | 2009-11-13 | 2010-04-28 | 珠海网博信息科技有限公司 | 使用udp协议进行数据传输的方法 |
CN106330414A (zh) * | 2016-08-16 | 2017-01-11 | 杭州华三通信技术有限公司 | 一种报文传输方法及装置 |
CN108337242A (zh) * | 2018-01-03 | 2018-07-27 | 西安万像电子科技有限公司 | 传输数据的方法、存储介质及处理器 |
CN112235234A (zh) * | 2020-07-30 | 2021-01-15 | 视联动力信息技术股份有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN112436994A (zh) * | 2020-11-17 | 2021-03-02 | 联想(北京)有限公司 | 一种数据传输方法及电子设备 |
CN114500243A (zh) * | 2020-11-13 | 2022-05-13 | 腾讯科技(北京)有限公司 | 数据通信方法、装置、计算机可读介质及电子设备 |
CN114866196A (zh) * | 2021-01-19 | 2022-08-05 | 武汉斗鱼鱼乐网络科技有限公司 | 数据包重传方法、装置、电子设备和存储介质 |
WO2022199558A1 (zh) * | 2021-03-22 | 2022-09-29 | 华为技术有限公司 | 一种数据传输方法、相关装置以及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2592314B (en) * | 2019-10-01 | 2024-07-31 | Pismo Labs Technology Ltd | Modified methods and system of transmitting and receiving Transmission Control Protocol segments over Internet Protocol packets |
-
2023
- 2023-03-07 CN CN202310210871.5A patent/CN116074252B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699797A (zh) * | 2009-11-13 | 2010-04-28 | 珠海网博信息科技有限公司 | 使用udp协议进行数据传输的方法 |
CN106330414A (zh) * | 2016-08-16 | 2017-01-11 | 杭州华三通信技术有限公司 | 一种报文传输方法及装置 |
CN108337242A (zh) * | 2018-01-03 | 2018-07-27 | 西安万像电子科技有限公司 | 传输数据的方法、存储介质及处理器 |
CN112235234A (zh) * | 2020-07-30 | 2021-01-15 | 视联动力信息技术股份有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN114500243A (zh) * | 2020-11-13 | 2022-05-13 | 腾讯科技(北京)有限公司 | 数据通信方法、装置、计算机可读介质及电子设备 |
CN112436994A (zh) * | 2020-11-17 | 2021-03-02 | 联想(北京)有限公司 | 一种数据传输方法及电子设备 |
CN114866196A (zh) * | 2021-01-19 | 2022-08-05 | 武汉斗鱼鱼乐网络科技有限公司 | 数据包重传方法、装置、电子设备和存储介质 |
WO2022199558A1 (zh) * | 2021-03-22 | 2022-09-29 | 华为技术有限公司 | 一种数据传输方法、相关装置以及设备 |
Non-Patent Citations (2)
Title |
---|
一种基于UDP的终端缓冲区自适应调整方法的研究;郝力;戴青;王晓燕;;广东通信技术(01);全文 * |
基于UDP传输协议的包丢失和失序处理;鲁宏伟;计算机工程与应用(02);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116074252A (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101877604B (zh) | 一种传输文件的方法及系统 | |
EP2575321B1 (en) | A radio receiving apparatus | |
US20040190540A1 (en) | Transmission control method and system | |
US20060120326A1 (en) | Mobile-unit-dedicated data delivery assistance method | |
US20040258051A1 (en) | Hybrid wired and wireless communication system and a communication method thereof | |
CN105450785B (zh) | 一种文件传输方法和装置 | |
US5644706A (en) | Failure detection and reporting for a computer mail gateway | |
CN102469026A (zh) | 通信设备、通信系统、程序和通信方法 | |
US7197313B1 (en) | Method for allocating wireless resource in wireless communication system | |
US8009694B2 (en) | Wireless services provider network system and method | |
US7203184B2 (en) | Data transmitter, data receiver, and data transmitting/receiving method | |
CN116074252B (zh) | Udp数据传输方法及udp数据传输装置 | |
CN112838910A (zh) | 一种基于混合反馈的数据传输方法及装置 | |
JP2005520374A (ja) | Tcp/ipに対する変更 | |
JP2003522507A (ja) | 幾つかのパケットに分割されるメッセージの送信方法 | |
JPH06121001A (ja) | セル通信誤り時の再送制御方式 | |
CN111818582A (zh) | 数据传输方法、装置及电子设备 | |
CN111835465B (zh) | 一种Lora网络通信方法、Lora节点及Lora网络通信系统 | |
KR20030030892A (ko) | 서버와 이동 터미널 사이에 패킷들의 시퀀스들을 전송하는시스템 | |
JP3445427B2 (ja) | データ伝送制御方法およびデータ伝送装置 | |
CN1777224A (zh) | 发送和接收传真数据的方法和设备 | |
CN111669431B (zh) | 消息传输方法、装置、计算机设备和存储介质 | |
CN113542147A (zh) | 一种数据传输方法及系统 | |
CN100518141C (zh) | 解决wlan中分段发送问题的方法和装置 | |
EP1716670B1 (fr) | Passerelle et systeme de transmission de donnees pour reseau de diagnostic de vehicule automobile |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 230088 floor 1-4, zone a, building E2, phase II, innovation industrial park, No. 2800, innovation Avenue, high tech Zone, Hefei, Anhui Province Patentee after: Guoyi Quantum Technology (Hefei) Co.,Ltd. Address before: 230088 floor 1-4, zone a, building E2, phase II, innovation industrial park, No. 2800, innovation Avenue, high tech Zone, Hefei, Anhui Province Patentee before: Guoyi Quantum (Hefei) Technology Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |