一种基于多级缓存重传机制的UDP传输方法、装置以及设备与流程

专利2024-10-20  59


一种基于多级缓存重传机制的udp传输方法、装置以及设备
技术领域
1.本发明涉及通信技术领域,尤其涉及一种基于多级缓存重传机制的udp传输方法、装置以及设备。


背景技术:

2.在网络通信时,常用的传输层协议有传输控制协议(tcp)和用户数据报协议(udp)。其中,tcp协议位于传输层,提供可靠的字节流服务。而udp是一种简单的,无连接协议,也称透明协议,它不进行接收确认和流量控制的协议。与tcp协议相比,它不需要建立连接,具备数据通信速度高,系统开销小等优点。但是,数据传输需要经过多个路由器,路由器要对转发的数据进行存储、处理、合法性判定、转发等操作,容易出现错误,所以很可能在路由器转发的过程中出现数据丢失的现象。
3.一般采用udp协议中的数据报文丢失是先天性的,因为udp是无连接的、不能保证发送数据的正确到达。如果数据报文在经过路由器的时候,被路由器丢弃,则主机c(发送端)和主机s(接受端)会对超时的数据进行重发。如图1所示:发送端发出data数据包,需要等待超时则判断丢包重发,或者收到ack发现丢包,则重发丢失的data,整体传输效率较低。


技术实现要素:

4.有鉴于此,本发明的目的在于提出一种基于多级缓存重传机制的udp传输方法、装置以及设备,旨在解决现有的传输过程中容易丢包,丢包重传机制效率较低等问题。
5.为实现上述目的,本发明提供一种基于多级缓存重传机制的udp传输方法,所述方法包括:
6.根据发送端发送的udp数据包确定所述udp数据包在多级pop节点中的传输路径;
7.基于所述传输路径将所述udp数据包传输经过各级pop节点缓存后,发送至接收端;
8.当所述接收端检测所接收的所述udp数据包出现丢包时,向当前pop节点发送重传请求的ack包,并由所述当前pop节点判断是否重传数据或者向上一级pop节点转发所述重传请求的ack包,直到所述发送端收到确认全部收到的ack包;其中,所述当前pop节点为距离所述接收端最近的pop节点。
9.优选的,所述当所述接收端检测所接收的所述udp数据包出现丢包时,向当前pop节点发送重传请求的ack包,并由所述当前pop节点判断是否重传数据或者向上一级pop节点转发所述重传请求的ack包,包括:
10.所述当前pop节点根据所接收的所述ack包与自身缓存的数据进行比对,若存在匹配的缓存数据时,则直接重传数据;否则向上一级pop节点发送重传请求的ack包。
11.优选的,所述当前pop节点接收到所述接收端确认收到的ack包时,清理对应自身缓存数据中已确认收到的数据。
12.优选的,所述基于所述传输路径将所述udp数据包传输经过各级pop节点缓存后,
发送至接收端,包括:
13.在所述udp数据包传输过程中,所述udp数据包所经过的各级pop节点均缓存未经确认的数据包,其中,所述数据包为所述udp数据包中的部分数据或全部数据。
14.为实现上述目的,本发明还提供一种基于多级缓存重传机制的udp传输装置,所述装置包括:
15.确定单元,用于根据发送端发送的udp数据包确定所述udp数据包在多级pop节点中的传输路径;
16.传输单元,用于基于所述传输路径将所述udp数据包传输经过各级pop节点缓存后,发送至接收端;
17.重传单元,用于当所述接收端检测所接收的所述udp数据包出现丢包时,向当前pop节点发送重传请求的ack包,并由所述当前pop节点判断是否重传数据或者向上一级pop节点转发所述重传请求的ack包,直到所述发送端收到确认全部收到的ack包;其中,所述当前pop节点为距离所述接收端最近的pop节点。
18.优选的,所述重传单元,用于:
19.所述当前pop节点根据所接收的所述ack包与自身缓存的数据进行比对,若存在匹配的缓存数据时,则直接重传数据;否则向上一级pop节点发送重传请求的ack包。
20.优选的,所述当前pop节点接收到所述接收端确认收到的ack包时,清理对应自身缓存数据中已确认收到的数据。
21.优选的,所述传输单元,用于:
22.在所述udp数据包传输过程中,所述udp数据包所经过的各级pop节点均缓存未经确认的数据包,其中,所述数据包为所述udp数据包中的部分数据或全部数据。
23.为了实现上述目的,本发明还提出一种设备,包括处理器、存储器以及存储在所述存储器内的计算机程序,所述计算机程序被所述处理器执行以实现如上述实施例所述的一种基于多级缓存重传机制的udp传输方法的步骤。
24.为了实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现如上述实施例所述的一种基于多级缓存重传机制的udp传输方法的步骤。
25.以上方案的有益效果是:通过设置多级缓存pop节点进行数据传输,当接收端发现丢包时,无需每次都等待ack包回到发送端重传数据,可通过向pop节点发送ack响应包请求重发,利用传输路径中的多级pop节点进行多级缓存,减少甚至无需向发送端发送请求重发的ack信息,提高了可靠的udp传输效率。
附图说明
26.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
27.图1为传统的丢包重传的流程示意图。
28.图2为本发明一实施例提供的一种基于多级缓存重传机制的udp传输方法的流程
示意图。
29.图3为本发明一实施例提供的多级缓存重传机制的udp传输方法的流程示意图。
30.图4为本发明一实施例提供的一种基于多级缓存重传机制的udp传输装置的结构示意图。
31.发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
32.为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
33.以下结合实施例详细阐述本发明的内容。
34.参照图2所示为本发明一实施例提供的一种基于多级缓存重传机制的udp传输方法的流程示意图。
35.本实施例中,该方法包括:
36.s11,根据发送端发送的udp数据包确定所述udp数据包在多级pop节点中的传输路径;
37.s12,基于所述传输路径将所述udp数据包传输经过各级pop节点缓存后,发送至接收端;
38.s13,当所述接收端检测所接收的所述udp数据包出现丢包时,向当前pop节点发送重传请求的ack包,并由所述当前pop节点判断是否重传数据或者向上一级pop节点转发所述重传请求的ack包,直到所述发送端收到确认全部收到的ack包;其中,所述当前pop节点为距离所述接收端最近的pop节点。
39.进一步的,在步骤s13中,还包括:
40.所述当前pop节点根据所接收的所述ack包与自身缓存的数据进行比对,若存在匹配的缓存数据时,则直接重传数据;否则向上一级pop节点发送重传请求的ack包。
41.进一步的,所述当前pop节点接收到所述接收端确认收到的ack包时,清理对应自身缓存数据中已确认收到的数据。
42.进一步的,所述基于所述传输路径将所述udp数据包传输经过各级pop节点缓存后,发送至接收端,包括:
43.在所述udp数据包传输过程中,所述udp数据包所经过的各级pop节点均缓存未经确认的数据包,其中,所述数据包为所述udp数据包中的部分数据或全部数据。
44.在本实施例中,在udp数据包传输过程中,udp数据包经过的pop节点都缓存未经确认的数据包。如果pc-rec端(接收端)遇到数据丢包,那么通过反向的传输路径向多级pop节点中距离接收端最近的pop节点发送重传请求的ack包,也就是发送ack响应包(ack包记录
哪些数据已经接收,哪些数据包缺失)回到传输路径的前一个pop节点,该pop节点通过ack包响应信息比对自身缓存的数据并且清理掉已确认收到的数据包。如果丢失的数据是已经缓存数据包,则直接重传发给pc-rec端;如果本pop节点所缓存数据包只有部分匹配丢失的数据,则将该部分数据重传给pc-rec端,并将ack包改写为缺少部分的数据所对应的响应信息发送给上一级的pop节点;如果本pop节点没有缓存匹配的数据,则向着上一级的pop节点转发ack包,以重复进行判断是否重传,直到pc-send端确认收到全部数据。通过利用该多级缓存重传机制,无需每次都是等待ack包回到pc-send端重传数据,提高了可靠udp传输的效率。
45.以下进一步举例说明,参照图3所示。假设该多级pop节点包括第一pop节点和第二pop节点,则udp数据包发送的传输路径为pc-send端
‑‑
》pop1(第一pop节点)
‑‑
》pop2(第二pop节点)
‑‑
》pc-rec端。则对应的传输实现过程包括:
46.步骤1:pc-send端发送完整data_seq《1-10》,发送到出口节点pop1;
47.步骤2:假设pop1收到完整的data_seq《1-10》,则缓存未经确认的data_seq《1-10》,并发送pop2;
48.步骤3:假设pop2收到data_seq《1-8》,则缓存未经确认的data_seq《1-8》,并发送给pc-rec端;
49.步骤4:假设pc-rec端收到data_seq《1-7》;
50.步骤5:pc-rec端发送ack包给pop2,告知pop2缺少data_seq《8-10》;
51.步骤6:pop2收到ack包信息,比对自身缓存的data_seq《1-8》,发送data_seq《8》,改写ack信息转发给pop1;
52.步骤7:pop2将ack信息改写为缺少data_seq《9-10》;
53.步骤8:pop1收到ack包,比对自身缓存的data_seq《1-10》,发送data_seq《9-10》,并清理data_seq《1-8》的缓存;
54.步骤9:假设pop2收到data_seq《9-10》,则发data_seq《9-10》给pc-rec端;
55.步骤10:假设pc-rec端收到data_seq《8》,data_seq《9-10》,则发ack给pop2;
56.步骤11:pop2收到pc-rec端的ack包;
57.步骤12:pop2比对ack包,清除data_seq《8》,data_seq《9-10》;
58.步骤13:pop2转发ack包给pop1;
59.步骤14:pop1收到ack包,清除data_seq《9-10》;
60.步骤15:pop1转发ack包给pc-send端。
61.参照图4所示为本发明一实施例提供的一种基于多级缓存重传机制的udp传输装置的结构示意图。
62.在本实施例中,该装置40包括:
63.确定单元41,用于根据发送端发送的udp数据包确定所述udp数据包在多级pop节点中的传输路径;
64.传输单元42,用于基于所述传输路径将所述udp数据包传输经过各级pop节点缓存后,发送至接收端;
65.重传单元43,用于当所述接收端检测所接收的所述udp数据包出现丢包时,向当前pop节点发送重传请求的ack包,并由所述当前pop节点判断是否重传数据或者向上一级pop
节点转发所述重传请求的ack包,直到所述发送端收到确认全部收到的ack包;其中,所述当前pop节点为距离所述接收端最近的pop节点。
66.进一步的,所述重传单元,用于:
67.所述当前pop节点根据所接收的所述ack包与自身缓存的数据进行比对,若存在匹配的缓存数据时,则直接重传数据;否则向上一级pop节点发送重传请求的ack包。
68.进一步的,所述当前pop节点接收到所述接收端确认收到的ack包时,清理对应自身缓存数据中已确认收到的数据。
69.进一步的,所述传输单元,用于:
70.在所述udp数据包传输过程中,所述udp数据包所经过的各级pop节点均缓存未经确认的数据包,其中,所述数据包为所述udp数据包中的部分数据或全部数据。
71.该装置40的各个单元模块可分别执行上述方法实施例中对应步骤,故在此不对各单元模块进行赘述,详细请参见以上对应步骤的说明。
72.本发明实施例还提供一种设备,该设备包括如上所述的基于多级缓存重传机制的udp传输装置,其中,基于多级缓存重传机制的udp传输装置可以采用图4实施例的结构,其对应地,可以执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,详细可以参见上述实施例中的相关记载,此处不再赘述。
73.所述设备包括:手机、数码相机或平板电脑等具有拍照功能的设备,或者具有图像处理功能的设备,或者具有图像显示功能的设备。所述设备可包括存储器、处理器、输入单元、显示单元、电源等部件。
74.其中,存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(例如图像播放功能等)等;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器和输入单元对存储器的访问。
75.输入单元可用于接收输入的数字或字符或图像信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,本实施例的输入单元除了包括摄像头,还可包括触敏表面(例如触摸显示屏)以及其他输入设备。
76.显示单元可用于显示由用户输入的信息或提供给用户的信息以及设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元可包括显示面板,可选的,可以采用lcd(liquid crystal display,液晶显示器)、oled(organic light-emitting diode,有机发光二极管)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器以确定触摸事件的类型,随后处理器根据触摸事件的类型在显示面板上提供相应的视觉输出。
77.本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令,所述指令由
处理器加载并执行以实现图2所示的基于多级缓存重传机制的udp传输方法。所述计算机可读存储介质可以是只读存储器,磁盘或光盘等。
78.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例、设备实施例及存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
79.并且,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
80.上述说明示出并描述了本发明的优选实施例,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

技术特征:
1.一种基于多级缓存重传机制的udp传输方法,其特征在于,所述方法包括:根据发送端发送的udp数据包确定所述udp数据包在多级pop节点中的传输路径;基于所述传输路径将所述udp数据包传输经过各级pop节点缓存后,发送至接收端;当所述接收端检测所接收的所述udp数据包出现丢包时,向当前pop节点发送重传请求的ack包,并由所述当前pop节点判断是否重传数据或者向上一级pop节点转发所述重传请求的ack包,直到所述发送端收到确认全部收到的ack包;其中,所述当前pop节点为距离所述接收端最近的pop节点。2.根据权利要求1所述的一种基于多级缓存重传机制的udp传输方法,其特征在于,所述当所述接收端检测所接收的所述udp数据包出现丢包时,向当前pop节点发送重传请求的ack包,并由所述当前pop节点判断是否重传数据或者向上一级pop节点转发所述重传请求的ack包,包括:所述当前pop节点根据所接收的所述ack包与自身缓存的数据进行比对,若存在匹配的缓存数据时,则直接重传数据;否则向上一级pop节点发送重传请求的ack包。3.根据权利要求1或2所述的一种基于多级缓存重传机制的udp传输方法,其特征在于,所述当前pop节点接收到所述接收端确认收到的ack包时,清理对应自身缓存数据中已确认收到的数据。4.根据权利要求1所述的一种基于多级缓存重传机制的udp传输方法,其特征在于,所述基于所述传输路径将所述udp数据包传输经过各级pop节点缓存后,发送至接收端,包括:在所述udp数据包传输过程中,所述udp数据包所经过的各级pop节点均缓存未经确认的数据包,其中,所述数据包为所述udp数据包中的部分数据或全部数据。5.一种基于多级缓存重传机制的udp传输装置,其特征在于,所述装置包括:确定单元,用于根据发送端发送的udp数据包确定所述udp数据包在多级pop节点中的传输路径;传输单元,用于基于所述传输路径将所述udp数据包传输经过各级pop节点缓存后,发送至接收端;重传单元,用于当所述接收端检测所接收的所述udp数据包出现丢包时,向当前pop节点发送重传请求的ack包,并由所述当前pop节点判断是否重传数据或者向上一级pop节点转发所述重传请求的ack包,直到所述发送端收到确认全部收到的ack包;其中,所述当前pop节点为距离所述接收端最近的pop节点。6.根据权利要求5所述的一种基于多级缓存重传机制的udp传输装置,其特征在于,所述重传单元,用于:所述当前pop节点根据所接收的所述ack包与自身缓存的数据进行比对,若存在匹配的缓存数据时,则直接重传数据;否则向上一级pop节点发送重传请求的ack包。7.根据权利要求5或6所述的一种基于多级缓存重传机制的udp传输装置,其特征在于,所述当前pop节点接收到所述接收端确认收到的ack包时,清理对应自身缓存数据中已确认收到的数据。8.根据权利要求5所述的一种基于多级缓存重传机制的udp传输装置,其特征在于,所述传输单元,用于:在所述udp数据包传输过程中,所述udp数据包所经过的各级pop节点均缓存未经确认
的数据包,其中,所述数据包为所述udp数据包中的部分数据或全部数据。9.一种设备,其特征在于,包括处理器、存储器以及存储在所述存储器内的计算机程序,所述计算机程序被所述处理器执行以实现如权利要求1至7任意一项所述的一种基于多级缓存重传机制的udp传输方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1至7任意一项所述的一种基于多级缓存重传机制的udp传输方法的步骤。

技术总结
本发明公开了一种基于多级缓存重传机制的UDP传输方法、装置、设备及存储介质,其包括:根据发送端发送的UDP数据包确定所述UDP数据包在多级POP节点中的传输路径;基于所述传输路径将所述UDP数据包传输经过各级POP节点缓存后,发送至接收端;当所述接收端检测所接收的所述UDP数据包出现丢包时,向当前POP节点发送重传请求的ACK包,并由所述当前POP节点判断是否重传数据或者向上一级POP节点转发所述重传请求的ACK包,直到所述发送端收到确认全部收到的ACK包;其中,所述当前POP节点为距离所述接收端最近的POP节点。本方案利用传输路径中的多级POP节点进行多级缓存,无需每次等待ACK包回到发送端才进行重传,能够提高可靠的UDP传输效率。UDP传输效率。UDP传输效率。


技术研发人员:王林 余端敏 武志鹏 杨柳 张驰欣 潘胜 吕超鑫
受保护的技术使用者:北京网聚云联科技有限公司
技术研发日:2022.06.21
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-10108.html

最新回复(0)