当前位置: 首页 > 专利查询>清华大学专利>正文

软硬件混合流表管理方法及装置制造方法及图纸

技术编号:30152826 阅读:55 留言:0更新日期:2021-09-25 15:02
本申请提供了一种软硬件混合流表管理方法和装置,应用于网络转发系统。具体的实现方式如下:获取预先设定的大流识别窗口、大流替换窗口和采样率;接收网络数据包,控制软件转发功能模组根据大流识别窗口和采样率对接收到的网络数据包进行流量大小的识别,得到大流识别结果;根据大流替换窗口和大流识别结果,控制软件转发功能模组和硬件转发功能模组进行对应的大流替换;在软件转发功能模组执行流表项相关联的操作前,判断软件转发功能模组的环形缓冲区队列中是否存在突发流;若环形缓冲区队列中存在突发流,则控制软件转发功能模组和硬件转发功能模组进行对应的突发流替换,实现了软硬件混合流表的高效管理。现了软硬件混合流表的高效管理。现了软硬件混合流表的高效管理。

【技术实现步骤摘要】
软硬件混合流表管理方法及装置


[0001]本申请涉及计算机网络
及数据中心网络管理领域,具体涉及一种 软硬件混合流表管理方法及装置。

技术介绍

[0002]越来越多的数据包头字段被用来进行流表规则的匹配和数据包的转发,现 代网络设备中流表的大小迅速增长。由于许多商用网络设备转发速度快而内存 大小有限,实践中都采用软硬混合的方式来管理大型流表。在这种典型的混合 流表管理模式下,数据包转发过程如下:当网络设备收到数据包时,硬件会从 接收到的数据包的包头中提取某些字段;如果提取的字段命中了流表中的某个 流表项,则对该数据包执行与该流表项相关联的操作;否则,数据包会被转发 到软件转发逻辑来以匹配软件的流表。
[0003]在这样的场景下,如何在硬件和软件之间拆分流表项很重要。拆分方法不 仅会影响转发性能,还会为软件转发逻辑提前预留CPU(Central Processing Unit,中央处理器)资源提供依据。此外,经研究发现,流量具有高度偏斜性, 且大流在不停地发生变化,同时突发流又具有一定的普遍性。所以针对目前的 技术,如何低开销且准确的测量所有流,以及如何选择适当的时机在软件和硬 件之间进行流替换,成为软硬件混合流表管理模式应用的两大难题。

技术实现思路

[0004]本申请提出了一种软硬件混合流表管理方法及装置,用于准确测量流大 小,及时的针对软件和硬件进行流替换,实现了高效地进行混合流表管理,降 低了资源的占用。
[0005]根据本申请的第一方面,提供了一种软硬件混合流表管理方法,所述方法 应用于网络转发系统,所述网络转发系统包括软件转发功能模组和硬件转发功 能模组,所述方法包括:
[0006]获取预先设定的大流识别窗口、大流替换窗口和采样率;
[0007]接收网络数据包,控制所述软件转发功能模组根据所述大流识别窗口和所 述采样率对接收到的网络数据包进行流量大小的识别,得到大流识别结果;
[0008]根据所述大流替换窗口和所述大流识别结果,控制所述软件转发功能模组 和硬件转发功能模组进行对应的大流替换;
[0009]在所述软件转发功能模组执行流表项相关联的操作前,判断所述软件转发 功能模组的环形缓冲区队列中是否存在突发流;
[0010]若所述环形缓冲区队列中存在突发流,则控制所述软件转发功能模组和硬 件转发功能模组进行对应的突发流替换。
[0011]在本申请的一些实施例中,所述软件转发功能模组包括流量分析器;所述 控制所述软件转发功能模组根据所述大流识别窗口和所述采样率对接收到的 网络数据包进行流量大小的识别,得到大流识别结果,包括:
[0012]控制所述硬件转发功能模组根据所述采样率获取所述网络数据包的包头, 并转发至所述流量分析器;
[0013]通过所述流量分析器根据哈希表和最小堆数据结构及大流识别窗口对所 述包头进行流量大小识别,得到大流识别结果。
[0014]在本申请的一些实施例中,所述根据所述大流替换窗口和所述大流识别结 果,控制所述软件转发功能模组和所述硬件转发功能模组进行对应的大流替 换,包括:
[0015]通过所述流量分析器基于所述大流替换窗口和所述大流识别结果,将当前 替换窗口内的大流识别结果报告给所述流表管理器;
[0016]所述流表管理器根据所述当前替换窗口内的大流识别结果从当前接收到 的网络数据包中确定出需要替换的大流数据包及需要替换的非大流数据包,并 发送替换指令;
[0017]根据所述替换指令,将所述需要替换的大流数据包分配给所述硬件转发功 能模组执行流表项相关联的操作,并将所述需要替换的非大流数据包分配给所 述软件转发功能模组执行流表项相关联的操作。
[0018]在本申请的一些实施例中,所述软件转发功能模组包括软件队列监视器; 所述判断所述软件转发功能模组的环形缓冲区队列中是否存在突发流,包括:
[0019]获取预设的阈值;
[0020]通过所述软件队列监视器将所述软件转发功能模组的环形缓冲区队列大 小与所述阈值比对;
[0021]若所述环形缓冲区队列大小大于所述阈值,则确定当前所述环形缓冲区队 列中存在突发流。
[0022]此外,所述控制所述软件转发功能模组和硬件转发功能模组进行对应的突 发流替换,包括:
[0023]获取预设的突发流识别窗口;
[0024]控制所述软件队列监视器触发信号,并将信号发送给流量表管理器;
[0025]通过所述流量表管理器基于突发流识别窗口确定突发流及不再突发的硬 件流,并为所述突发流关联硬件计数器,同时发送突发流替换指令;
[0026]根据所述突发流替换指令,将所述突发流分配给所述硬件转发功能模组执 行流表项相关联的操作,并将所述不再突发的硬件流分配给所述软件转发功能 模组执行流表项相关联的操作。
[0027]根据本申请的第二方面,提供了一种软硬件混合流表管理装置,所述装置 应用于网络转发系统,所述网络转发系统包括软件转发功能模组和硬件转发功 能模组,所述装置包括:
[0028]获取模块,用于获取预先设定的大流识别窗口、大流替换窗口和采样率;
[0029]大流识别模块,用于接收网络数据包,控制所述软件转发功能模组根据所 述大流识别窗口和所述采样率对接收到的网络数据包进行流量大小的识别,得 到大流识别结果;
[0030]大流替换模块,用于根据所述大流替换窗口和所述大流识别结果,控制所 述软件转发功能模组和硬件转发功能模组进行对应的大流替换;
[0031]判断模块,用于在所述软件转发功能模组执行流表项相关联的操作前,判 断所述软件转发功能模组的环形缓冲区队列中是否存在突发流;
[0032]突发流替换模块,在所述环形缓冲区队列中存在突发流时,用于控制所述 软件转发功能模组和硬件转发功能模组进行对应的突发流替换。
[0033]在本申请的一些实施例中,所述大流识别模块具体用于:
[0034]控制所述硬件转发功能模组根据所述采样率获取所述网络数据包的包头, 并转发至所述流量分析器;
[0035]通过所述流量分析器根据哈希表和最小堆数据结构及大流识别窗口对所 述包头进行流量大小识别,得到大流识别结果。
[0036]在本申请的一些实施例中,所述大流替换模块具体用于:
[0037]通过所述流量分析器基于所述大流替换窗口和所述大流识别结果,将当前 替换窗口内的大流识别结果报告给所述流表管理器;
[0038]所述流表管理器根据所述当前替换窗口内的大流识别结果从当前接收到 的网络数据包中确定出需要替换的大流数据包及需要替换的非大流数据包,并 发送替换指令;
[0039]根据所述替换指令,将所述需要替换的大流数据包分配给所述硬件转发功 能模组执行流表项相关联的操作,并将所述需要替换的非大流数据包分配给所 述软件转发功能模组执行流表项相关联的操作。
[0040]在本申请的一些实施例中,所述软件转发功能模组本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软硬件混合流表管理方法,其特征在于,所述方法应用于网络转发系统,所述网络转发系统包括软件转发功能模组和硬件转发功能模组,所述方法包括:获取预先设定的大流识别窗口、大流替换窗口和采样率;接收网络数据包,控制所述软件转发功能模组根据所述大流识别窗口和所述采样率对接收到的网络数据包进行流量大小的识别,得到大流识别结果;根据所述大流替换窗口和大流识别结果,控制所述软件转发功能模组和硬件转发功能模组进行对应的大流替换;在所述软件转发功能模组执行流表项相关联的操作前,判断所述软件转发功能模组的环形缓冲区队列中是否存在突发流;若所述环形缓冲区队列中存在突发流,则控制所述软件转发功能模组和硬件转发功能模组进行对应的突发流替换。2.根据权利要求1所述的方法,其特征在于,所述软件转发功能模组包括流量分析器;所述控制所述软件转发功能模组根据所述大流识别窗口和所述采样率对接收到的网络数据包进行流量大小的识别,得到大流识别结果,包括:控制所述硬件转发功能模组根据所述采样率获取所述网络数据包的包头,并转发至所述流量分析器;通过所述流量分析器根据哈希表和最小堆数据结构及大流识别窗口对所述包头进行流量大小识别,得到大流识别结果。3.根据权利要求2所述的方法,所述根据所述大流替换窗口和所述大流识别结果,控制所述软件转发功能模组和所述硬件转发功能模组进行对应的大流替换,包括:通过所述流量分析器基于所述大流替换窗口和所述大流识别结果,将当前替换窗口内的大流识别结果报告给所述流表管理器;所述流表管理器根据所述当前替换窗口内的大流识别结果从当前接收到的网络数据包中确定出需要替换的大流数据包及需要替换的非大流数据包,并发送替换指令;根据所述替换指令,将所述需要替换的大流数据包分配给所述硬件转发功能模组执行流表项相关联的操作,并将所述需要替换的非大流数据包分配给所述软件转发功能模组执行流表项相关联的操作。4.根据权利要求3所述的方法,其特征在于,所述软件转发功能模组包括软件队列监视器;所述判断所述软件转发功能模组的环形缓冲区队列中是否存在突发流,包括:获取预设的阈值;通过所述软件队列监视器将所述软件转发功能模组的环形缓冲区队列大小与所述阈值比对;若所述环形缓冲区队列大小大于所述阈值,则确定当前所述环形缓冲区队列中存在突发流。5.根据权利要求4所述的方法,所述控制所述软件转发功能模组和硬件转发功能模组进行对应的突发流替换,包括:获取预设的突发流识别窗口;控制所述软件队列监视器触发信号,并将信号发送给流量表管理器;通过所述流量表管理器基于突发流识别窗口确定突发流及不再突发的硬件流,并为所
述突发流关联硬件计数器,同时发送突发流替换指令;根据所述突发流替换指令,将所述突发流分配给所述硬件转发功能模组执行流表项...

【专利技术属性】
技术研发人员:李丹王砚舒吴建平
申请(专利权)人:清华大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1