实现IP分片报文重组的DPU装置及IP分片报文重组方法与流程

文档序号:33506729发布日期:2023-03-18 02:20阅读:111来源:国知局
实现IP分片报文重组的DPU装置及IP分片报文重组方法与流程
实现ip分片报文重组的dpu装置及ip分片报文重组方法
技术领域
1.本发明涉及数据处理领域,特别是涉及一种实现ip分片报文重组的dpu装置及ip分片报文重组方法。


背景技术:

2.dpu作为未来计算的三大芯片之一,近年来成为业界最热和发展最快的一个领域,形成“cpu+gpu+dpu”的新格局,其中,cpu负责通用计算,gpu用于加速计算,dpu则用于数据处理,其中,dpu的优势在于虚拟化、网络、存储和安全。随着网络带宽从10g、25g向100g、200g甚至更高带宽发展,以及云化网络的演进,整个网络对算力的要求日益提高,dpu作为专门处理数据的芯片单元,在未来网络发展中将发挥重要的作用。
3.dpu的一个典型应用是业界普遍认同的数据中心场景。作为ip网络的一部分,数据中心网络需要遵循ip网络协议,其中,分片重组是ip网络协议常见的一个功能,通常的方法是使用通用cpu多核处理器实现ip报文的分片重组。随着数据中心巨大的算力爆发,通用处理器越来越难以满足分片重组的性能要求,其中,报文重组过程中的数据处理更是影响性能的关键环节,cpu作为通用处理单元,数据重组并不是cpu擅长的处理。
4.现有常用的重组实现方法如下,如图1所示:
5.ip分片报文的重组,需要多个环节的协同,包括:分片报文的缓存、重组条件的逻辑判断、报文重组的执行等。数据转发面接收分片报文后,需要将报文转发至cpu控制面进行报文的二次缓存和重组处理,并将重组后的报文继续转发到数据面进行发送,上述过程中,存在报文在系统内部模块间的转发,从系统角度看存在以下几个环节的瓶颈:
6.1.系统内部转发面和控制面之间的转发带宽;
7.2.cpu的报文重组性能;
8.3.内部重组转发时延。


技术实现要素:

9.鉴于以上所述现有技术的缺点,本发明的目的在于提供一种实现ip分片报文重组的dpu装置及ip分片报文重组方法,用于解决用于解决现有技术中以上技术问题。
10.为实现上述目的及其他相关目的,本发明提供一种实现ip分片报文重组的dpu装置,所述装置包括:dpu数据处理模块,用于对接收的多个ip分片报文分别进行缓存,并在判断ip分片报文需要在本节点重组时发送对应ip分片报文的分片报文相关信息;dpu控制模块,连接所述dpu数据处理模块,用于基于由所述dpu数据处理模块发送的各分片报文相关信息建立会话重组位图,并在判断满足重组条件时将生成的重组指令发送至所述dpu数据处理模块;所述dpu数据处理模块还用于基于由所述dpu控制模块发送的重组指令对同一个会话id的各ip分片报文执行重组动作并将重组后的报文进行发送。
11.于本发明的一实施例中,所述分片报文相关信息包括:三元组信息、会话id、分片位置以及报文缓存指针。
12.于本发明的一实施例中,所述重组指令包括:会话id、各分片位置、各分片缓存指针、重组位图、重组后报文总长度。
13.于本发明的一实施例中,所述dpu数据处理模块包括:报文缓存单元,用于缓存由所述dpu数据处理模块接收的各ip分片报文;分片信息上送单元,连接所述报文缓存单元,用于当判断ip分片报文需要在本节点重组时,将对应ip分片报文的分片报文相关信息发送至所述dpu控制模块;重组执行单元,用于接收由所述dpu控制模块发送的重组指令,并进行重组判断,且在判断为可重组时执行重组动作以获得重组后的报文;报文发送单元,连接所述重组执行单元,用于提取重组后的报文并发送。
14.于本发明的一实施例中所述执行重组动作的方式包括:基于所述重组指令,对首片ip分片报文以及非首片ip分片报文进行分别处理,以更新对应的相关字段和缓存指针;将同一会话id的所有ip分片报文使用更新后的缓存指针链接起来,获得重组后的报文,以将重组后的报文加入发送队列。
15.于本发明的一实施例中,所述dpu控制模块包括:分片信息收集单元,用于收集所述报文发送单元发送的各ip分片报文的分片报文相关信息,并按照三元组信息和会话id进行分类,并将对应的各分片位置填写到重组位图,以获得汇总好的重组位图;重组判断单元,连接所述分片信息收集单元,用于在设定时间内判断所述分片信息收集单元的汇总的重组位图是否完整,并在判断为完整时进行通知;重组指令下发单元,连接所述重组判断单元,用于接收到来自重组判断单元的通知时,提取重组会话id,并将属于同一个会话id的各ip分片报文按照分片位置进行排序以及提取对应缓存指针后,将重组指令下发至所述重组执行单元。
16.于本发明的一实施例中,所述dpu数据处理模块通过dpu内部总线与dpu控制模块连接。
17.于本发明的一实施例中,所述dpu数据处理模块还用于在重组执行单元判断为不可重组时,丢弃该会话已收到的各ip分片报文,并释放各ip分片报文的缓存空间。
18.于本发明的一实施例中,所述dpu数据处理模块还用于在重组后的报文发送成功后释放对应ip分片报文的缓存空间。
19.为实现上述目的及其他相关目的,本发明提供一种ip分片报文重组方法,应用于实现ip分片报文重组的dpu装置,包括:相互连接的dpu数据处理模块以及dpu控制模块,所述方法包括:由所述dpu数据处理模块对接收的多个ip分片报文分别进行缓存,并在判断ip分片报文需要在本节点重组时向dpu控制模块发送对应ip分片报文的分片报文相关信息;通过dpu控制模块基于各分片报文相关信息建立会话重组位图,并在判断满足重组条件时将生成的重组指令发送至所述dpu数据处理模块;通过所述dpu数据处理模块基于由所述重组指令对同一个会话id的各ip分片报文执行重组动作并将重组后的报文进行发送。
20.如上所述,本发明是一种实现ip分片报文重组的dpu装置及ip分片报文重组方法,具有以下有益效果:本发明通过所述dpu数据处理模块对接收的多个ip分片报文分别进行缓存,并在判断ip分片报文需要在本节点重组时向dpu控制模块发送对应ip分片报文的分片报文相关信息;通过dpu控制模块基于各分片报文相关信息建立会话重组位图,并在判断满足重组条件时将生成的重组指令发送至所述dpu数据处理模块,再通过所述dpu数据处理模块基于由所述重组指令对同一个会话id的各ip分片报文执行重组动作并将重组后的报
文进行发送。本发明利用dpu装置的dpu数据处理模块和dpu控制模块之间的有效配合,高效的实现ip分片报文重组功能,不需要像传统实现一样将报文在系统内多次搬移,也能充分发挥dpu的特性,从而提供满足网络中日益提高的报文分片重组性能。
附图说明
21.图1显示为本发明一实施例中的利用cpu实现ip分片报文重组示意图。
22.图2显示为本发明一实施例中的实现ip分片报文重组的dpu装置的结构示意图。
23.图3显示为本发明一实施例中的ip分片报文重组示意图。
24.图4显示为本发明一实施例中的实现ip分片报文重组的dpu装置的结构示意图。
25.图5显示为本发明一实施例中的实现ip分片报文重组的dpu装置的结构示意图。
26.图6显示为本发明一实施例中的ip分片报文重组方法的流程示意图。
具体实施方式
27.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
28.需要说明的是,在下述描述中,参考附图,附图描述了本发明的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本发明的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本发明的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本发明。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、
““
下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。
29.在通篇说明书中,当说某部分与另一部分“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种部分“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素,排除在外,而是意味着可以还包括其它构成要素。
30.其中提到的第一、第二及第三等术语是为了说明多样的部分、成分、区域、层及/或段而使用的,但并非限定于此。这些术语只用于把某部分、成分、区域、层或段区别于其它部分、成分、区域、层或段。因此,以下叙述的第一部分、成分、区域、层或段在不超出本发明范围的范围内,可以言及到第二部分、成分、区域、层或段。
31.再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“a、b或c”或者“a、b和/或c”意味着“以下任一个:a;b;c;a和b;a和c;b和c;a、b和c”。仅当元件、功能或操作的组合在某些方式下内在地互相
排斥时,才会出现该定义的例外。
32.本发明提供一种实现ip分片报文重组的dpu装置及ip分片报文重组方法,通过所述dpu数据处理模块对接收的多个ip分片报文分别进行缓存,并在判断ip分片报文需要在本节点重组时向dpu控制模块发送对应ip分片报文的分片报文相关信息;通过dpu控制模块基于各分片报文相关信息建立会话重组位图,并在判断满足重组条件时将生成的重组指令发送至所述dpu数据处理模块,再通过所述dpu数据处理模块基于由所述重组指令对同一个会话id的各ip分片报文执行重组动作并将重组后的报文进行发送。本发明利用dpu装置的dpu数据处理模块和dpu控制模块之间的有效配合,高效的实现ip分片报文重组功能,不需要像传统实现一样将报文在系统内多次搬移,也能充分发挥dpu的特性,从而提供满足网络中日益提高的报文分片重组性能。
33.其中,dpu作为数据处理的专用单元,在存储方面有着天然的优势,同时,dpu作为数据处理专门单元,其数据处理的能力远强于cpu。
34.下面以附图为参考,针对本发明的实施例进行详细说明,以便本发明所述技术领域的技术人员能够容易地实施。本发明可以以多种不同形态体现,并不限于此处说明的实施例。
35.如图2展示本发明实施例中的一种实现ip分片报文重组的dpu装置的结构示意图。
36.所述装置包括:
37.dpu数据处理模块1,用于对接收的多个ip分片报文分别进行缓存,并在判断ip分片报文需要在本节点重组时发送对应ip分片报文的分片报文相关信息;
38.dpu控制模块2,连接所述dpu数据处理模块1,用于基于由所述dpu数据处理模块发送的各分片报文相关信息建立会话重组位图,并在判断满足重组条件时将生成的重组指令发送至所述dpu数据处理模块1;
39.所述dpu数据处理模块1还用于基于由所述dpu控制模块2发送的重组指令对同一个会话id的各ip分片报文执行重组动作并将重组后的报文进行发送。
40.本技术充分发挥dpu芯片的特性,可以极大提高ip分片报文的重组效率。利用dpu的缓存能力,网络设备将接受的分片报文缓存在dpu数据处理模块,将每个分片报文的相关信息上送dpu内部控制模块(比如arm core),由dpu控制模块执行报文重组条件的判断,然后通知dpu数据处理模块执行报文重组动作,避免了报文在系统中多次搬移带来的性能瓶颈。
41.在一实施例中,所述分片报文相关信息包括:三元组信息、会话id、分片位置以及报文缓存指针。具体的,若dpu数据处理模块1判断ip分片报文需要在本节点重组则dpu数据处理模块1记录所述分片报文的存储地址指针、分片位置等信息,并和所述分片报文的三元组信息和报文id一起发送给dpu控制模块2。
42.在一实施例中,所述重组指令包括:会话id、各分片位置、各分片缓存指针、重组位图、重组后报文总长度。
43.在一实施例中,所述dpu数据处理模块通过dpu内部总线与dpu控制模块连接。由于在dpu芯片装置通过系统内部总线进行消息交互,不需要进行数据的多次搬移,时延和额外带宽消耗等指标会明显降低。
44.在一实施例中,如图3所示,所述dpu数据处理模块包括:
45.报文缓存单元,用于缓存由所述dpu数据处理模块接收的各ip分片报文;
46.分片信息上送单元,连接所述报文缓存单元,用于当判断ip分片报文需要在本节点重组时,将对应ip分片报文的分片报文相关信息发送至所述dpu控制模块;若如果不在本节点重组,按正常处理流程转发。
47.重组执行单元,用于接收由所述dpu控制模块发送的重组指令,并进行重组判断,且在判断为可重组时执行重组动作以获得重组后的报文;
48.报文发送单元,连接所述重组执行单元,用于提取重组后的报文并发送。
49.在一实施例中,所述执行重组动作的方式包括:基于所述重组指令,对首片ip分片报文以及非首片ip分片报文进行分别处理,以更新对应的相关字段和缓存指针;将同一会话id的所有ip分片报文使用更新后的缓存指针链接起来,获得重组后的报文;将重组后的报文加入发送队列。
50.在一具体实施例中,如图4所示,如果满足重组条件,则依次取会话重组位图的有效位对应分片报文进行处理:对于首片包,根据重组指令的重组长度更新ip头部报文长度等字段;调整各非首片分片报文的缓存指针偏移ip头部长度,即将指针指向有效载荷部分;将所述同一会话的所有分片报文使用更新后的缓存指针链接起来;报文进入发送队列进行发送。
51.在一实施例中,所述dpu数据处理模块还用于在重组执行单元判断为不可重组时,丢弃该会话已收到的各ip分片报文,并释放各ip分片报文的缓存空间。
52.在一实施例中,所述dpu数据处理模块还用于在重组后的报文发送成功后释放对应ip分片报文的缓存空间。
53.在一实施例中,如图3所示,所述dpu控制模块包括:
54.分片信息收集单元,用于收集所述报文发送单元发送的各ip分片报文的分片报文相关信息,并按照三元组信息和会话id进行分类,并将对应的各分片位置填写到重组位图,以获得汇总好的重组位图;
55.重组判断单元,连接所述分片信息收集单元,用于在设定时间内判断所述分片信息收集单元的汇总的重组位图是否完整,并在判断为完整时通知重组指令下发单元;
56.重组指令下发单元,连接所述重组判断单元,用于接收到来自重组判断单元的通知时,提取重组会话id,并将属于同一个会话id的各ip分片报文按照分片位置进行排序以及提取对应缓存指针后,将重组指令下发至所述重组执行单元。
57.在一具体实施例中,如图3所示,所述dpu装置包括:dpu数据处理模块,包括:报文缓存单元、分片信息上送单元、重组执行单元以及报文发送单元;dpu数据处理模块,包括:报文缓存单元、分片信息上送单元、重组执行单元以及报文发送单元。
58.基于上述dpu装置的系统结构,实现以下ip分片报文重组方法:
59.步骤(1):dpu数据处理模块接收分片报文,通过报文缓存单元进行缓存。
60.步骤(2):dpu数据处理模块判断需要在本节点重组,则由分片信息上送单元将各分片报文的相关信息通过dpu内部总线发送给dpu控制模块,包括:三元组、会话id、分片位置、报文缓存指针等;
61.步骤(3):dpu控制模块的分片信息收集单元汇总各分片报文的信息,按照三元组和会话id进行分类,将对应分片位置填写到重组位图等信息,并将汇总数据发送给重组判
断单元;
62.步骤(4):dpu控制模块的重组判断单元基于会话判断是否满足重组条件,即:规定时间内是否收到全部分片报文,如果条件满足,则通知重组指令下发单元;
63.步骤(5):dpu控制模块的重组指令下发单元提取重组会话id,将属于同一个会话的各分片报文按照分片位置进行排序、提取对应缓存指针后,通过dpu内部总线下发给dpu数据处理模块的重组执行单元;
64.步骤(6):重组执行单元收到重组消息,判断是否满足重组条件,如果不满足,则丢弃该会话已收到的各分片报文,并释放各分片报文的缓存空间,否则,进入重组处理,根据首片包和非首片包,分别进行处理,更新相关字段和偏移指针后,按重组位图顺序进行各分片报文的指针链接修改,最后将修改好的报文加入报文发送队列;
65.步骤(7):报文发送单元从发送队列提取重组后的报文进行发送;
66.步骤(8):重组后报文发送成功,dpu数据处理单元释放分片报文的缓存空间,流程结束。
67.为了更好的说明上述实现ip分片报文重组的dpu装置,本发明提供以下具体实施例。
68.实施例1:一种实现ip分片报文重组的dpu装置。如图5所示为dpu装置的结构示意图;
69.所述结构包括:数据处理模块以及dpu控制单元arm core;
70.其中,进行ip分片报文重组的方式包括:
71.一、dpu收到ip分片报文后,具体处理如下:
72.1.所述分片报文进入dpu数据处理模块,将报文存储在dpu的缓存空间;
73.2.数据处理模块判断所述分片报文是否在本节点重组;
74.3.如果不在本节点重组,按正常处理流程转发;
75.4.如果需要重组,则数据处理模块记录所述分片报文的存储地址指针、分片位置等信息,并和所述分片报文的三元组信息和报文id一起发送给arm core;
76.二、arm core维护重组控制信息
77.arm core根据所述分片报文的三元组和id建立会话重组位图bitmap,在设定时间内判断会话位图是否完整,并发起下一步动作,该处理为常用实现方法;
78.本技术对传统cpu的重组控制判断后动作进行改进,重组控制模块不直接执行分片报文的重组处理,而是将重组指令下发给dpu数据处理模块,重组指令包括:会话id、各分片位置、各分片缓存指针、重组位图bitmap、重组后报文总长度等信息;
79.三、dpu数据处理模块分片报文重组单元执行重组动作
80.dpu数据处理模块接收到arm core下发的重组指令后,对所述同一个id的多个分片报文执行重组动作,具体实现如下:
81.1.dpu数据处理模块解析下发的重组指令,获取待重组的各分片报文缓存地址指针和大小;
82.2.判断下发指令的动作:如果不满足重组条件,则释放所述会话的所有分片缓存空间,流程结束;
83.3.如果满足重组条件,则依次取会话bitmap的有效位对应分片报文进行处理:
84.a)对于首片包,根据重组指令的重组长度更新ip头部报文长度等字段;
85.b)调整各非首片分片报文的缓存指针偏移ip头部长度,即将指针指向有效载荷部分;
86.c)将所述同一会话的所有分片报文使用更新后的缓存指针链接起来;
87.d)报文进入发送队列进行发送。
88.本实施例利用dpu系统的数据处理和控制处理两个单元的有效配合,高效的实现ip分片报文重组功能,不需要像传统实现一样将报文在系统内多次搬移,也能充分发挥dpu的特性,从而提供满足网络中日益提高的报文分片重组性能。
89.与上述实施例原理相似的是,本发明提供一种ip分片报文重组方法。
90.以下结合附图提供具体实施例:
91.如图6展示本发明实施例中的一种ip分片报文重组方法的流程示意图。
92.应用于实现ip分片报文重组的dpu装置,包括:相互连接的dpu数据处理模块以及dpu控制模块,所述方法包括:
93.步骤s61:由所述dpu数据处理模块对接收的多个ip分片报文分别进行缓存,并在判断ip分片报文需要在本节点重组时向dpu控制模块发送对应ip分片报文的分片报文相关信息。
94.步骤s62:通过dpu控制模块基于各分片报文相关信息建立会话重组位图,并在判断满足重组条件时将生成的重组指令发送至所述dpu数据处理模块。
95.步骤s63:通过所述dpu数据处理模块基于由所述重组指令对同一个会话id的各ip分片报文执行重组动作并将重组后的报文进行发送。
96.并且由于该ip分片报文重组方法的实现原理已在前述实施例中进行了叙述,因此此处不作重复赘述。
97.在一实施例中,所述分片报文相关信息包括:三元组信息、会话id、分片位置以及报文缓存指针。
98.在一实施例中,所述重组指令包括:会话id、各分片位置、各分片缓存指针、重组位图、重组后报文总长度。
99.在一实施例中,所述dpu数据处理模块通过dpu内部总线与dpu控制模块连接。
100.在一实施例中,所述由所述dpu数据处理模块对接收的多个ip分片报文分别进行缓存,并在判断ip分片报文需要在本节点重组时向dpu控制模块发送对应ip分片报文的分片报文相关信息包括:
101.通过报文缓存单元缓存由所述dpu数据处理模块接收的各ip分片报文;
102.由分片信息上送单元当判断ip分片报文需要在本节点重组时,将对应ip分片报文的分片报文相关信息发送至所述dpu控制模块;
103.在一实施例中,所述通过dpu控制模块基于各分片报文相关信息建立会话重组位图,并在判断满足重组条件时将生成的重组指令发送至所述dpu数据处理模块包括:
104.通过分片信息收集单元收集所述报文发送单元发送的各ip分片报文的分片报文相关信息,并按照三元组信息和会话id进行分类,并将对应的各分片位置填写到重组位图,以获得汇总好的重组位图;
105.通过重组判断单元在设定时间内判断所述分片信息收集单元的汇总的重组位图
是否完整,并在判断为完整时进行通知;
106.通过重组指令下发单元接收到来自重组判断单元的通知时,提取重组会话id,并将属于同一个会话id的各ip分片报文按照分片位置进行排序以及提取对应缓存指针后,将重组指令下发至所述重组执行单元。
107.在一实施例中,所述通过所述dpu数据处理模块基于由所述重组指令对同一个会话id的各ip分片报文执行重组动作并将重组后的报文进行发送包括:
108.通过重组执行单元接收由所述dpu控制模块发送的重组指令,并进行重组判断,且在判断为可重组时执行重组动作以获得重组后的报文;
109.由报文发送单元提取重组后的报文并发送。
110.在一实施例中,所述执行重组动作的方式包括:基于所述重组指令,对首片ip分片报文以及非首片ip分片报文进行分别处理,以更新对应的相关字段和缓存指针;将同一会话id的所有ip分片报文使用更新后的缓存指针链接起来,获得重组后的报文;将重组后的报文加入发送队列。
111.在一实施例中,在重组执行单元判断为不可重组时,所述dpu数据处理模块丢弃该会话已收到的各ip分片报文,并释放各ip分片报文的缓存空间。
112.在一实施例中,在重组后的报文发送成功后所述dpu数据处理模块释放对应ip分片报文的缓存空间。
113.综上所述,本发明的ip分片报文重组方法,通过所述dpu数据处理模块对接收的多个ip分片报文分别进行缓存,并在判断ip分片报文需要在本节点重组时向dpu控制模块发送对应ip分片报文的分片报文相关信息;通过dpu控制模块基于各分片报文相关信息建立会话重组位图,并在判断满足重组条件时将生成的重组指令发送至所述dpu数据处理模块,再通过所述dpu数据处理模块基于由所述重组指令对同一个会话id的各ip分片报文执行重组动作并将重组后的报文进行发送。本发明利用dpu装置的dpu数据处理模块和dpu控制模块之间的有效配合,高效的实现ip分片报文重组功能,不需要像传统实现一样将报文在系统内多次搬移,也能充分发挥dpu的特性,从而提供满足网络中日益提高的报文分片重组性能。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
114.上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1