数据包处理方法、数据包控制单元、处理系统、芯片和电子设备与流程

摘要: 本申请涉及网卡芯片,特别是涉及一种数据包处理方法、数据包控制单元、处理系统、芯片和电子设备。背景技术:1、网卡芯片中的媒体访问控制(mediaaccesscon...
数据包处理方法、数据包控制单元、处理系统、芯片和电子设备与流程

本申请涉及网卡芯片,特别是涉及一种数据包处理方法、数据包控制单元、处理系统、芯片和电子设备。

背景技术:

1、网卡芯片中的媒体访问控制(media access control,mac)模块用于接收数据包,将数据包发送至网卡芯片中的缓存模块,缓存模块需要对数据包进行处理得到同一业务通道的包,将同一业务通道的包存储在该业务通道。

2、相关技术中,采用传统的移位拆包法对数据包进行处理,可以实现直接将数据包拆分成不同通道的小包,但这种方法规定每个周期只能拆分出一个tc包。当网络流量突增、数据包背靠背连续传输时,缓存模块接收到的数据包的速率会远超缓存模块的数据包处理速率,由于每个周期只能拆分出一个tc包,这会导致大量数据包无法被及时拆包,从而导致未被拆包的数据包丢包,或者需要额外的缓存存储这些未被拆包的数据包。

3、因此,如何对来自mac模块的数据包进行处理,以高效获取业务通道的包成为当下亟待关注的问题。

技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够高效实现来自mac模块的数据包处理方法、数据包控制单元、处理系统、芯片和电子设备。

2、第一方面,本申请提供了一种数据包处理方法,应用于网络系统,包括:

3、获取mac模块的数据通路位宽和数据传输协议规定的最小包长;

4、根据数据通路位宽和最小包长,对来自mac模块的数据包进行分段处理,得到多个数据段;

5、将各数据段分别拆分成两个子包,并按照子包所属的业务通道,采用二分法对各子包进行逐级拼包操作,得到各业务通道的数据包。

6、在其中一个实施例中,上述按照子包所属的业务通道,采用二分法对各子包进行逐级拼包操作,得到各业务通道的数据包,包括:

7、对数据段集合中的子包中归属同一业务通道的子包进行当前次拼接操作,得到当前次拼接操作后业务通道的拼接数据包;数据段集合包括至少两个数据段;

8、基于当前次拼接操作后业务通道的拼接数据包,得到各业务通道的数据包。

9、在其中一个实施例中,上述数据段集合包括两个数据段,且上述数据段集合的数量为多个,上述基于当前次拼接操作后业务通道的拼接数据包,得到各业务通道的数据包,包括:

10、针对各业务通道,对各数据段集合对应的归属业务通道的拼接数据包进行下一次拼接操作,得到下一次拼接操作后业务通道的拼接数据包;

11、根据下一次拼接操作后业务通道的拼接数据包和数据段的数量,得到业务通道的数据包。

12、在其中一个实施例中,上述数据段的数量为偶数且大于等于4,上述基于当前次拼接操作后业务通道的拼接数据包,得到各业务通道的数据包,包括:

13、针对各业务通道,对各数据段集合对应的归属业务通道的拼接数据包进行下一次拼接操作,得到下一次拼接操作后业务通道的拼接数据包;

14、确定下一次拼接操作后业务通道的拼接数据包为业务通道的数据包。

15、在其中一个实施例中,上述数据段的数量为奇数且大于4,上述基于当前次拼接操作后业务通道的拼接数据包,得到各业务通道的数据包,包括:

16、针对各业务通道,对各数据段集合对应的归属业务通道的拼接数据包进行下一次拼接操作,得到下一次拼接操作后业务通道的拼接数据包;

17、对下一次拼接操作后业务通道的拼接数据包和其他数据段对应的业务通道的子包进行拼接,得到业务通道的数据包;其他数据段为多个数据段中除各数据段集合中的数据段之外的数据段。

18、在其中一个实施例中,上述根据数据通路位宽和最小包长,对来自mac模块的数据包进行分段处理,得到多个数据段,包括:

19、根据数据通路位宽和最小包长,确定数据分段数;

20、根据数据分段数,对数据包进行分段处理,得到多个数据段。

21、第二方面,本申请还提供了一种数据包控制单元,数据包控制单元包括可编程逻辑电路和/或程序指令,当数据包控制单元运行时实现上述第一方面所述的方法的步骤。

22、第三方面,本申请还提供了一种数据包缓存处理系统,数据包缓存处理系统包括mac模块和如上述第二方面所述的数据包控制单元;

23、mac模块,用于将接收到的数据进行拼包得到数据包,并将数据包传输至数据包控制单元。

24、第四方面,本申请还提供了一种芯片,包括如上述第三方面所述的数据包缓存处理系统。

25、第五方面,本申请还提供了一种电子设备,包括如上述第三方面所述的芯片。

26、上述数据包处理方法、数据包控制单元、处理系统、芯片和电子设备,通过结合mac内部数据通路位宽与协议最小包长作为分段依据对数据包处理,可匹配硬件传输带宽与协议规范,避免数据包尺寸不匹配造成传输阻塞、无效填充;先统一拆分多段再二次拆分为子包,再按业务通道采用二分法对各子包分别进行逐级拼包,能够在单周期背靠背拆分出不同业务通道的包,从而无需较大的空间来存储未被拆包的数据包,也就是说,采用本申请提供的数据包处理方法,如果数据位宽扩展,只需在之前的拼接数据包的基础上进行再拼接,而不用基于原子小包拼接,大大减小了开发难度,也在工程实现上有利于推广。

1.一种数据包处理方法,其特征在于,应用于网络系统,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述按照所述子包所属的业务通道,采用二分法对各所述子包进行逐级拼包操作,得到各业务通道的数据包,包括:

3.根据权利要求2所述的方法,其特征在于,所述数据段集合包括两个数据段,且所述数据段集合的数量为多个,所述基于所述当前次拼接操作后所述业务通道的拼接数据包,得到各所述业务通道的数据包,包括:

4.根据权利要求2所述的方法,其特征在于,所述数据段的数量为偶数且大于等于4,所述基于所述当前次拼接操作后所述业务通道的拼接数据包,得到各所述业务通道的数据包,包括:

5.根据权利要求2所述的方法,其特征在于,所述数据段的数量为奇数且大于4,所述基于所述当前次拼接操作后所述业务通道的拼接数据包,得到各所述业务通道的数据包,包括:

6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述数据通路位宽和所述最小包长,对来自所述mac模块的数据包进行分段处理,得到多个数据段,包括:

7.一种数据包控制单元,其特征在于,数据包控制单元包括可编程逻辑电路和/或程序指令,当所述数据包控制单元运行时实现权利要求1至6中任一项所述的方法的步骤。

8.一种数据包缓存处理系统,其特征在于,所述数据包缓存处理系统包括mac模块和如权利要求7所述的数据包控制单元;

9.一种芯片,其特征在于,所述芯片中包括如上述权利要求8所述的数据包缓存处理系统。

10.一种电子设备,其特征在于,所述电子设备中包括如上述权利要求9所述的芯片。