CN112929455B - 基于udp的数据传输方法、装置、设备和可读存储介质 - Google Patents

基于udp的数据传输方法、装置、设备和可读存储介质 Download PDF

Info

Publication number
CN112929455B
CN112929455B CN202110508217.3A CN202110508217A CN112929455B CN 112929455 B CN112929455 B CN 112929455B CN 202110508217 A CN202110508217 A CN 202110508217A CN 112929455 B CN112929455 B CN 112929455B
Authority
CN
China
Prior art keywords
data
packet
udp
packets
retransmission
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
Application number
CN202110508217.3A
Other languages
English (en)
Other versions
CN112929455A (zh
Inventor
郝伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Huayuan Information Technology Co Ltd
Original Assignee
Beijing Huayuan Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Huayuan Information Technology Co Ltd filed Critical Beijing Huayuan Information Technology Co Ltd
Priority to CN202110508217.3A priority Critical patent/CN112929455B/zh
Publication of CN112929455A publication Critical patent/CN112929455A/zh
Application granted granted Critical
Publication of CN112929455B publication Critical patent/CN112929455B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1809Selective-repeat protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)

Abstract

本公开的实施例提供了基于UDP的数据传输方法、装置、设备和计算机可读存储介质。所述方法包括:接收UDP数据发送方并行发送的数据包;其中,所述数据包上携带有所述UDP数据发送方为所述数据包插入的序列号;将接收到的数据包进行缓冲;判断所述发送的数据包在发送过程中是否出现丢包;当出现丢包时,向所述UDP数据发送方发送重发请求。以此方式,可以进一步提高UDP数据传输效率,并在出现临时性的网络阻塞时,有效减少重发的次数,同时确保接收到的数据包是完整的。

Description

基于UDP的数据传输方法、装置、设备和可读存储介质
技术领域
本公开的实施例一般涉及数据传输领域,并且更具体地,涉及基于UDP的数据传输方法、装置、设备和计算机可读存储介质。
背景技术
网络传输底层通信时,常用的传输方案有TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)两种。使用TCP传输数据虽然可靠,但是传输双方沟通太多,传输效率并不高。因而,为了提高传输效率常常会使用UDP协议进行传输,但使用UDP传输数据包并不可靠,为了保证数据传输的可靠性,同时为了避免传输中的丢包问题,在丢包的时候会进行重发。
但是这种方式在传输的时候,仍然有以下问题:
每次丢包后针对每个丢失包接收方都需要两次回传,这样会造成长时间的传输等待;
如果因为临时性的网络阻塞,同一个包造成卡顿,接收方可能会多次发出相同的重发请求,从而造成大量冗余数据发送;
当数据包在发送时出现乱序情况时,同样会造成接收方向发送方请求重发冗余的数据包。
发明内容
根据本公开的实施例,提供了一种基于UDP的数据传输方案。
在本公开的第一方面,提供了一种基于UDP的数据传输方法。该方法包括:接收UDP数据发送方并行发送的数据包;其中,所述数据包上携带有所述UDP数据发送方为所述数据包插入的序列号;将接收到的数据包进行缓冲;判断所述发送的数据包在发送过程中是否出现丢包;当出现丢包时,向所述UDP数据发送方发送重发请求。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述将接收到的数据包进行缓冲,包括:
将所述接收到的数据包缓冲至环形消息队列中。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述将所述接收到的数据包缓冲至环形消息队列中,包括:
按照数据包上携带的序列号的大小将所述接收到的数据包顺序插入至所述环形消息队列中。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
在所述环形消息队列中标记所述序列号。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
按照所述序列号的大小,从所述环形消息队列中顺序提取所述接收到的数据包,并通过所述环形消息队列同步缓冲接收到的新的数据包,所述新的数据包也是所述UDP数据发送方并行发送的;
所述判断所述发送的数据包在发送过程中是否出现丢包,包括:
根据所述接收到的数据包的序列号是否连续,和/或,根据所述接收到的数据包与所述发送的数据包的数量是否相同,判断所述发送的数据包在发送过程中是否出现丢包;
所述当出现丢包时,向所述UDP数据发送方发送重发请求,包括:
当出现丢包,且在提取所述接收到的数据包后的预设时长内仍未接收到丢失的包,则向所述UDP数据发送方发送重发请求。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述当出现丢包时,向所述UDP数据发送方发送重发请求,包括:
当出现丢包且丢包的数量大于1时,根据丢包数量以及UDP协议可支持的最大单次传输数量,确定重发包的特征,其中,所述重发包的特征包括以下至少一项:重发包的数量、重发包的时间以及重发包的序列号;
根据所述重发包的特征,生成所述重发请求;
向所述UDP数据发送方发送所述重发请求。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述接收UDP数据发送方并行发送的数据包,包括:
接收所述UDP数据发送方并行发送的多组数据包,其中,所述UDP数据发送方根据需发送的数据包的特征,确定数据包发送组数以及所述多组数据包中每组数据包的数据包个数,
所述需发送的数据包的特征包括:
所述UDP数据接收方缓冲区的容量;以及
所述需发送的数据包的特征还包括以下至少一项:
所述需发送的数据包的总个数、发送时长限制、所述UDP数据接收方单次可接收的最大数据包个数。
在本公开的第二方面,提供了一种基于UDP的数据传输装置。该装置包括:
接收模块,用于接收UDP数据发送方并行发送的数据包;其中,所述数据包上携带有所述UDP数据发送方为所述数据包插入的序列号;
缓冲模块,用于将接收到的数据包进行缓冲;
判断模块,用于判断所述发送的数据包在发送过程中是否出现丢包;
发送模块,用于当出现丢包时,向所述UDP数据发送方发送重发请求。
在本公开的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本公开的第一方面和/或第二发面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了根据本公开的实施例的基于UDP的数据传输方法的流程图;
图2示出了根据本公开的实施例的基于UDP的数据传输装置的方框图;
图3示出了能够实施本公开的实施例的示例性电子设备的方框图;
图4示出了根据本公开的实施例的一种基于UDP的数据包分组示意图;
图5示出了根据本公开的实施例的一种UDP数据包在环形消息队列中的排列示意图;
图6示出了根据本公开的实施例的另一种UDP数据包在环形消息队列中的排列示意图;
图7示出了根据本公开的实施例的又一种UDP数据包在环形消息队列中的排列示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开中,可在接收到UDP数据发送方并行发送的数据包后,将接收到的数据包进行缓存,并在丢包时发送重发请求,从而通过对UDP传输进行改进来进一步提高UDP数据传输效率,并在出现临时性的网络阻塞时,有效减少重发的次数,同时确保接收到的数据包是完整的。
图1示出了根据本公开实施例的基于UDP的数据传输方法100的流程图。如图1所示,基于UDP的数据传输方法100包括:
步骤110,接收UDP数据发送方并行发送的数据包;其中,所述数据包上携带有所述UDP数据发送方为所述数据包插入的序列号;每个数据包都有序列号,且序列号均不相同。
该序列号用于标识数据包的排列前后次序,以避免数据包在接收方乱序排列。
步骤120,将接收到的数据包进行缓冲;
步骤130,判断所述发送的数据包在发送过程中是否出现丢包;
步骤140,当出现丢包时,向所述UDP数据发送方发送重发请求。
由于UDP数据发送方是并行发送数据包的,因而通过接收UDP数据发送方并行发送的数据包,可进一步提高数据传输效率,而将接收到的数据包进行缓存,可在出现临时性的网络阻塞时,有效减少重发的次数,以尽可能避免同一个包造成卡顿而导致接收方多次发出相同的重发请求,从而导致大量冗余数据的发送,进而在出现丢包时,向所述UDP数据发送方发送重发请求,从而在确保UDP数据发送效率的基础上,避免数据丢包。
在一个实施例中,所述将接收到的数据包进行缓冲,包括:
将所述接收到的数据包缓冲至环形消息队列中。环形消息队列即环形缓存消息队列。
通过将接收到的数据包缓冲至环形消息队列中,可确保数据包能够高效地进行循环存入以及提取。
在一个实施例中,所述将所述接收到的数据包缓冲至环形消息队列中,包括:
按照数据包上携带的序列号的大小将所述接收到的数据包顺序插入至所述环形消息队列中。
通过按照序列号的大小将所述接收到的数据包顺序插入至所述环形消息队列中,可在接收到的数据包即便为乱序数据时,也能够在缓冲中进行重排,所以能够有效解决多次发出相同的重发请求的问题,以尽可能避免接收方向发送方请求重发冗余的数据包。
在一个实施例中,所述方法还包括:
在所述环形消息队列中标记所述序列号。
通过在环形消息队列中标记所述序列号,可标识出数据包的排列顺序。
在一个实施例中,所述方法还包括:
按照所述序列号的大小,从所述环形消息队列中顺序提取所述接收到的数据包,并通过所述环形消息队列同步缓冲接收到的新的数据包,所述新的数据包也是所述UDP数据发送方并行发送的;
在将数据包顺序存入环形消息队列后,可根据实际需求边顺序提取已经接收到的数据包,边顺序存入新接收到的数据包。当然,提取完的数据包可能被处理了或者被重新写入另一个位置。
另外,由于UDP数据发送方始终采取的是并行发送机制,因而,显然进一步提高了UDP数据传输效率,且并行发送方式每次可实现同时发送多个包,可减少数据发送次数,因而,每次丢包后可减少接收方的回传次数,有效减少数据传输等待时长。
所述判断所述发送的数据包在发送过程中是否出现丢包,包括:
根据所述接收到的数据包的序列号是否连续,和/或,根据所述接收到的数据包与所述发送的数据包的数量是否相同,判断所述发送的数据包在发送过程中是否出现丢包;
所述当出现丢包时,向所述UDP数据发送方发送重发请求,包括:
当出现丢包,且在提取所述接收到的数据包后的预设时长内仍未接收到丢失的包,则向所述UDP数据发送方发送重发请求。
在判断是否出现丢包时,可根据接收到的数据包的序列号是否连续和/或接收到的数据包与所述发送的数据包的数量是否相同来判断是否丢包,例如:可在接收到的数据包的序列号不连续和/或接收到的数据包与所述发送的数据包的数量不相同时,确定出现丢包,当然,同时结合这两项因素相比于只基于其中一项因素来说,丢包的判断准确率显然更高。
另外,由于在UDP传输协议中加入了缓冲机制,数据包在环形消息队列中是边提取边存入新的数据包的,所以,在出现丢包时,并不会立即向UDP数据发送方发送重发请求,而是在提取所述接收到的数据包后的预设时长内若仍未接收到丢失的包,则向所述UDP数据发送方发送重发请求,从而尽可能避免反复向UDP数据发送方发送相同的重发请求而造成冗余数据包。
在一个实施例中,所述当出现丢包时,向所述UDP数据发送方发送重发请求,包括:
当出现丢包且丢包的数量大于1时,根据丢包数量以及UDP协议可支持的最大单次传输数量,确定重发包的特征,其中,所述重发包的特征包括以下至少一项:重发包的数量、重发包的时间以及重发包的序列号;
根据所述重发包的特征,生成所述重发请求;
向所述UDP数据发送方发送所述重发请求。
当丢包数量为两个以上时,可根据具体的丢包数量以及UDP协议可支持的最大单次传输数量,准确定位出重发包的特征,然后再生成重发请求,从而尽可能最大化重发效率,减少重发次数以及传输等待时长。
在一个实施例中,所述接收UDP数据发送方并行发送的数据包,包括:
接收所述UDP数据发送方并行发送的多组数据包,其中,所述UDP数据发送方根据需发送的数据包的特征,确定数据包发送组数以及所述多组数据包中每组数据包的数据包个数,
所述需发送的数据包的特征包括:
所述UDP数据接收方缓冲区的容量;UDP数据接收方缓冲区的容量用于指示UDP数据接收方缓冲区最多能够存放的数据包个数以及数据包的最大可占用空间。
以及
所述需发送的数据包的特征还包括以下至少一项:
所述需发送的数据包的总个数、发送时长限制、所述UDP数据接收方单次可接收的最大数据包个数。发送时长限制可以是单次并发的发送时长限制也可以是成功发送完所有需发送的数据包的时长限制。
UDP数据发送方可根据需发送的数据包的特征准确确定出数据包发送组数以及每组数据包的数据包个数,从而尽可能减少数据发送次数,尽可能最大化数据发送效率,也可以达到有效减少传输等待时长的目的。
下面将进一步详细说明本公开的技术方案:
本公开采用并发的方式进行数据发送,如每次可以发送m组数据包。如图4所示,取m=6,即每次发送6组。
多个数据包在发送以后,接收方使用缓冲列表进行统计,每完成一个包的接收,接收序列上就会标记一个序列号。而缓冲采取消息队列结构,即列尾指向列首,可以缓冲一定数量的数据包,例如:当接收到的数据包为数据包1、数据包2、数据包5、数据包6、数据包8以及数据包9时,这些数据包在环形消息队列中的排列方式可以如图5所示。
如图5所示,消息队列中有个缓冲头指针指向列的头部,用于标记缓冲序列的起始位置。每当收到一个新数据包以后,接收方执行两个操作:
1)顺序插入
当有数据传入以后,消息按顺序会插入放到消息队列中,即根据序列的编号插入至合适的位置,使之形成顺序排列;
2)取数据操作
根据发送的顺序,提取顺序排列的数据,如图6所示;
3)要求重发操作
提取完操作后,对于一定时间仍然没有收到的数据,可以同时要求发送方发送数据。
当然,需要说明的是:在从如图7所示的环形消息队列中顺序提取数据包11,13,18,19,21,22的同时,该环形消息队列还在同步接收并行发送的新的数据包,且此时发现在并行发送的数据包1至数据包24中,尚未接收到数据包3,4,7,10,12,14,15,16,17,20,23,24,假设同步接收的新数据包为数据包3,4,7,10,20,24,则数据包3,4,7,10,20,24分别从图7所示的缓冲头开始依次顺序缓冲在上述环形消息队列中,且在将上述数据包11,13,18,19,21,22都从环形消息队列中提取出后的30秒后,发现还没接收到数据包12,14,15,16,17,23,则接收方可以要求同时并行发送方发送数据包12,14,15,16,17,23,然后等待接收。
通过这种方式,能够有效地解决以下三个问题:
问题1:每次丢包后都有两次回传,从而造成大量的等待;
解决:采用并发方式,可以有效减少等待;
问题2:如果因为临时性的网络阻塞,同一个包造成卡顿,接收方可能会多次发出重发请求,造成大量冗余数据发送;
解决:通过缓冲可以有效减少重发的次数,从而避免同一个数据包产生冗余数据的情况;
问题3:当数据包出现乱序情况时,同样会带来冗余的前一个包的重发请求;
解决:对于乱序的数据,在缓冲中进行了重排,所以能够有效解决多次重发请求的问题。
除了能够解决以上的问题,本公开还能够加快数据发送的速率,更加充分地利用带宽。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本公开所述方案进行进一步说明。
图2示出了根据本公开的实施例的基于UDP的数据传输装置500的方框图。装置200可以包括:
接收模块210,用于接收UDP数据发送方并行发送的数据包;其中,所述数据包上携带有所述UDP数据发送方为所述数据包插入的序列号;
缓冲模块220,用于将接收到的数据包进行缓冲;
判断模块230,用于判断所述发送的数据包在发送过程中是否出现丢包;
发送模块240,用于当出现丢包时,向所述UDP数据发送方发送重发请求。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图3示出了可以用来实施本公开的实施例的电子设备300的示意性框图。设备300可以用于实现图2所示的装置200。如图所示,设备300包括CPU301,其可以根据存储在ROM302中的计算机程序指令或者从存储单元308加载到RAM303中的计算机程序指令,来执行各种适当的动作和处理。在RAM 303中,还可以存储设备300操作所需的各种程序和数据。CPU 301、ROM 302以及RAM 303通过总线304彼此相连。I/O接口305也连接至总线304。
设备300中的多个部件连接至I/O接口305,包括:输入单元306,例如键盘、鼠标等;输出单元307,例如各种类型的显示器、扬声器等;存储单元308,例如磁盘、光盘等;以及通信单元309,例如网卡、调制解调器、无线通信收发机等。通信单元309允许设备300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元301执行上文所描述的各个方法和处理,例如方法200、300、400。例如,在一些实施例中,方法100可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元308。在一些实施例中,计算机程序的部分或者全部可以经由ROM 302和/或通信单元309而被载入和/或安装到设备300上。当计算机程序加载到RAM 303并由CPU 301执行时,可以执行上文描述的方法100的一个或多个步骤。备选地,在其他实施例中,CPU 301可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法100。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、RAM、ROM、EPROM、光纤、CD-ROM、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (7)

1.一种基于UDP的数据传输方法,用于UDP数据接收方,其特征在于,包括:
接收UDP数据发送方并行发送的数据包;其中,所述数据包上携带有所述UDP数据发送方为所述数据包插入的序列号;
将接收到的数据包进行缓冲;
判断所述发送的数据包在发送过程中是否出现丢包;
当出现丢包时,向所述UDP数据发送方发送重发请求;
所述当出现丢包时,向所述UDP数据发送方发送重发请求,包括:
当出现丢包且丢包的数量大于1时,根据丢包数量以及UDP协议可支持的最大单次传输数量,确定重发包的特征,其中,所述重发包的特征包括以下至少一项:重发包的数量、重发包的时间以及重发包的序列号;
根据所述重发包的特征,生成所述重发请求;
向所述UDP数据发送方发送所述重发请求;
所述将接收到的数据包进行缓冲,包括:
按照数据包上携带的序列号的大小将所述接收到的数据包顺序插入至环形消息队列中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述环形消息队列中标记所述序列号。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
按照所述序列号的大小,从所述环形消息队列中顺序提取所述接收到的数据包,并通过所述环形消息队列同步缓冲接收到的新的数据包,所述新的数据包也是所述UDP数据发送方并行发送的;
所述判断所述发送的数据包在发送过程中是否出现丢包,包括:
根据所述接收到的数据包的序列号是否连续,和/或,根据所述接收到的数据包与所述发送的数据包的数量是否相同,判断所述发送的数据包在发送过程中是否出现丢包;
所述当出现丢包时,向所述UDP数据发送方发送重发请求,包括:
当出现丢包,且在提取所述接收到的数据包后的预设时长内仍未接收到丢失的包,则向所述UDP数据发送方发送重发请求。
4.根据权利要求1至3中任一项所述的方法,其特征在于,
所述接收UDP数据发送方并行发送的数据包,包括:
接收所述UDP数据发送方并行发送的多组数据包,其中,所述UDP数据发送方根据需发送的数据包的特征,确定数据包发送组数以及所述多组数据包中每组数据包的数据包个数,
所述需发送的数据包的特征包括:
所述UDP数据接收方缓冲区的容量;以及
所述需发送的数据包的特征还包括以下至少一项:
所述需发送的数据包的总个数、发送时长限制、所述UDP数据接收方单次可接收的最大数据包个数。
5.一种基于UDP的数据传输装置,用于UDP数据接收方,其特征在于,包括:
接收模块,用于接收UDP数据发送方并行发送的数据包;其中,所述数据包上携带有所述UDP数据发送方为所述数据包插入的序列号;
缓冲模块,用于将接收到的数据包进行缓冲;
判断模块,用于判断所述发送的数据包在发送过程中是否出现丢包;
发送模块,用于当出现丢包时,向所述UDP数据发送方发送重发请求;
所述发送模块还用于:
当出现丢包且丢包的数量大于1时,根据丢包数量以及UDP协议可支持的最大单次传输数量,确定重发包的特征,其中,所述重发包的特征包括以下至少一项:重发包的数量、重发包的时间以及重发包的序列号;
根据所述重发包的特征,生成所述重发请求;
向所述UDP数据发送方发送所述重发请求;
所述缓冲模块还用于:
按照数据包上携带的序列号的大小将所述接收到的数据包顺序插入至环形消息队列中。
6.一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~4中任一项所述的方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~4中任一项所述的方法。
CN202110508217.3A 2021-05-11 2021-05-11 基于udp的数据传输方法、装置、设备和可读存储介质 Active CN112929455B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110508217.3A CN112929455B (zh) 2021-05-11 2021-05-11 基于udp的数据传输方法、装置、设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110508217.3A CN112929455B (zh) 2021-05-11 2021-05-11 基于udp的数据传输方法、装置、设备和可读存储介质

Publications (2)

Publication Number Publication Date
CN112929455A CN112929455A (zh) 2021-06-08
CN112929455B true CN112929455B (zh) 2021-09-10

Family

ID=76174773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110508217.3A Active CN112929455B (zh) 2021-05-11 2021-05-11 基于udp的数据传输方法、装置、设备和可读存储介质

Country Status (1)

Country Link
CN (1) CN112929455B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726811A (zh) * 2021-09-08 2021-11-30 苏州洛翌鑫珂智能科技有限公司 一种电梯视频监控数据传输的丢包补偿方法
CN114338399A (zh) * 2021-12-20 2022-04-12 百融至信(北京)征信有限公司 一种弱网环境下app网络稳定性提升方法及系统
CN115499108A (zh) * 2022-09-27 2022-12-20 西安羚控电子科技有限公司 一种基于udp协议的闭环网络通信方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1794716A (zh) * 2004-12-22 2006-06-28 富士通株式会社 通信系统
CN104618236A (zh) * 2015-01-21 2015-05-13 网宿科技股份有限公司 一种加速网络的并行数据传输系统及方法
CN105992272A (zh) * 2015-01-27 2016-10-05 中国移动通信集团公司 一种数据发送及接收方法、装置和数据传输系统
CN107979449A (zh) * 2016-10-25 2018-05-01 杭州海康威视数字技术股份有限公司 一种数据传输方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2207354B1 (en) * 2009-01-13 2012-03-14 Alcatel-Lucent España, S.A. Method and device for ensuring reliability during transmission of television data in a television system based on internet protocol
KR20140126055A (ko) * 2013-04-22 2014-10-30 삼성전자주식회사 데이터 송신 방법 및 그 전자 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1794716A (zh) * 2004-12-22 2006-06-28 富士通株式会社 通信系统
CN104618236A (zh) * 2015-01-21 2015-05-13 网宿科技股份有限公司 一种加速网络的并行数据传输系统及方法
CN105992272A (zh) * 2015-01-27 2016-10-05 中国移动通信集团公司 一种数据发送及接收方法、装置和数据传输系统
CN107979449A (zh) * 2016-10-25 2018-05-01 杭州海康威视数字技术股份有限公司 一种数据传输方法及装置

Also Published As

Publication number Publication date
CN112929455A (zh) 2021-06-08

Similar Documents

Publication Publication Date Title
CN112929455B (zh) 基于udp的数据传输方法、装置、设备和可读存储介质
CN106850402B (zh) 消息的传输方法和装置
US11251911B2 (en) Data transmission method and related device
CN102006283B (zh) 数据传输的方法和装置
CN102148662B (zh) 一种数据发送速率的调整方法及装置
JP2006311543A (ja) 無線通信システムで伝送状態をポーリングする方法及び装置
CN111818632B (zh) 一种设备同步的方法、装置、设备及存储介质
JP6523995B2 (ja) 情報処理装置、送信装置、受信装置及び方法
CN115994048B (zh) 一种芯片、通信方法、系统及存储介质
CN101977358A (zh) 一种数据短信的传输方法、装置及设备
CN111769915B (zh) 数据传输方法及相关设备
CN105743951A (zh) 一种数据发送、接收的方法及装置
CN114039703A (zh) 数据传输方法、装置、设备和介质
CN111865828A (zh) 数据传输方法、系统、电子设备及存储介质
CN113992654A (zh) 一种高速的文件传输方法、系统、设备及介质
EP2846470A1 (en) A method of mobile terminal internal communications
CN108432287A (zh) 一种数据传输方法及网络侧设备
EP3672189A1 (en) Data transmission method, device and system
CN110958084B (zh) 传输确认报文的方法和通信设备
CN110266446B (zh) 一种基于sack模式调整乱序时长的方法和装置
CN109586931B (zh) 组播方法及终端设备
CN113645291B (zh) 数据通信方法及装置、电子设备和存储介质
US20190116597A1 (en) Mobile device and uplink data transmission method thereof
CN110618900B (zh) 一种uart数据传输方法
CN111917525B (zh) 一种数据传输方法、装置、设备和可读存储介质

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
TR01 Transfer of patent right

Effective date of registration: 20220531

Address after: 102209 room 539, 5 / F, block C, State Grid Park, future science and Technology City, Changping District, Beijing

Patentee after: STATE GRID SIJI NETWORK SECURITY (BEIJING) Co.,Ltd.

Address before: 100094 1201, unit 4, building 2, yard 9, FengHao East Road, Haidian District, Beijing

Patentee before: Beijing Huayuan Information Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240301

Address after: 1001, unit 4, floor 10, building 2, No. 9, FengHao East Road, Haidian District, Beijing 100094

Patentee after: Beijing Huayuan Information Technology Co.,Ltd.

Country or region after: China

Address before: 102209 room 539, 5 / F, block C, State Grid Park, future science and Technology City, Changping District, Beijing

Patentee before: STATE GRID SIJI NETWORK SECURITY (BEIJING) Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right