一种支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法技术

技术编号:31494255 阅读:19 留言:0更新日期:2021-12-18 12:32
本发明专利技术提供一种支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法,其针对网络流量抖动性,基于网络流量局部性设计了一种动态可伸缩缓存,以存储网络中的所有活跃精确流。当网络流量出现抖动现象时,根据活跃精确流的数量变化适应性调整缓存容量,以始终取得高缓存利用率和高缓存命中率。对于属于活跃精确流的多数分组,将查找命中缓存,并根据命中缓存项中存储的流表项索引值定位对应的流表项,进而根据其中的动作集快速完成转发处理。只有属于空闲精确流的少数分组,在缓存查找失效后,需进一步查找流表。综合而言,即使在网络流量发生抖动的情况下,网络分组也将稳定保持较高的平均查找速度,从而实现OpenFlow虚拟流表的弹性加速查找。表的弹性加速查找。表的弹性加速查找。

【技术实现步骤摘要】
一种支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法


[0001]本专利技术涉及一种OpenFlow虚拟流表查找方法,尤其涉及一种支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法。

技术介绍

[0002]软件定义网络(Software

Defined Networking,SDN)作为一种新兴的网络架构,将数据转发与控制逻辑分离,通过以OpenFlow为代表的南向接口协议对数据交换设备进行集中式管控,并为上层应用提供统一的编程接口,显著提升了网络的灵活性、开放性和可编程性。在SDN数据平面中,OpenFlow协议支持远程管理和操作交换机中的流表,包括添加、修改和删除流表项,使控制器能灵活定制数据分组在底层交换网络中的传输路径。进一步,OpenFlow将各层协议首部中的关键字段作为流表项的匹配字段,并在匹配字段中引入通配符,实现了网络流的细粒度灵活管理。然而,这也使得OpenFlow虚拟流表无法直接使用哈希方法实现快速查找。
[0003]为实现OpenFlow虚拟流表的通配查找,目前主流的OpenFlow虚拟交换机采用元组空间搜索法(TSS),为每条流规则定义与其匹配字段结构相同的掩码,以标识匹配字段中的所有通配符位置。在此基础上,依据掩码将OpenFlow虚拟流表中的所有流表项划分成比流表项数量少得多的若干元组,进而在这些元组中进行哈希查找。对于到达OpenFlow虚拟交换机的每个数据分组,由于无法确定其对应的掩码和元组,需逐个探测掩码即依次查找各个元组,直到在某个元组中成功匹配一条流表项或探测完所有掩码为止。这意味着,每个数据分组需查找遍历多个元组,流表查找速度慢。更为严重的是,当网络流量激增时,元组数量和规模迅速增长,后续到达的分组需查找数量更多、规模更大的元组,导致查找速度显著下降。
[0004]图1展示了一种典型的OpenFlow虚拟流表查找过程,其工作原理如下:
[0005](1)当数据分组到达OpenFlow虚拟交换机时,首先解析其各层协议首部,提取其中的关键字段,计算流标识符fid;(2)依次探测掩码数组中的掩码,即将流标识符fid与掩码mask
i
进行与运算,得到关键字key
i
,进而在对应的元组中查找匹配的流表项;(3)若查找成功,则执行该流表项中的动作集,并更新流表项信息(如计数器)。否则,继续探测下一个掩码;(4)若所有掩码探测均失败,则将该分组信息封装成Packet

in消息发送给SDN控制器,待SDN控制器生成并下发对应流规则后,再转发处理分组。同时,根据流规则新建一条流表项,并根据掩码将其加入OpenFlow虚拟流表中的对应元组。
[0006]目前,OpenFlow虚拟流表查找的主要优化方案是运用缓存技术,通过缓存近期出现的流以绕过流表查找过程,具体如下:
[0007]如图2所示的【方案一】是一种基于多级缓存的OpenFlow虚拟流表查找方案,该方案在OpenFlow虚拟交换机的内核空间设置微流缓存和宏流缓存。首先,从用户空间的流表中选取不相交且没有优先级的宏流,缓存至内核空间,构成宏流缓存,进而采用元组空间搜
索法实现缓存查找。然后,将宏流缓存中最近出现的精确流与其掩码的对应关系存入微流缓存,使缓存流中的数据分组直接定位对应的掩码,进而根据该掩码找到对应的元组。
[0008]方案一的流表查找过程如下:(1)当数据分组到达OpenFlow虚拟交换机时,首先解析其首部提取关键字段,并生成流标识符,然后查找微流缓存;(2)若命中微流缓存,则根据缓存项中的掩码索引值定位到宏流缓存中的掩码,然后查找对应的元组;(3)若元组查找成功匹配某条流表项,则执行其中的动作集,并更新该流表项和对应的缓存项;否则,进入步骤(4);(4)查找宏流缓存,若查找成功,则根据对应流表项的动作集转发处理分组;否则,进入步骤(5);(5)由于微流缓存和宏流缓存均未命中,需将分组上传至用户空间查找OpenFlow流表。若仍未找到一条流表项,则将分组信息封装成packet

in消息发送给SDN控制器,请求下发对应的流规则。
[0009]如图3所示的【方案二】是一种基于精确流缓存的OpenFlow虚拟流表查找方案,该方案利用网络流量局部性,缓存网络中的活跃精确流,使大部分数据分组命中缓存,进而快速定位对应的流表项,从而有效提高了OpenFlow虚拟流表的查找速度。缓存采用Cuckoo哈希算法,为每条新出现的活跃精确流提供两个候选位置。当候选位置均已满时,随机踢除其中一条流,并将新流插入对应位置,同时将被踢除的流插入其另一候选位置中。通过这种方式,有效降低了缓存的哈希冲突率,提升了缓存的空间利用率,进而提高了缓存命中率,有助于进一步加快OpenFlow虚拟流表查找。
[0010]方案二的流表查找过程如下:(1)当数据分组到达OpenFlow虚拟交换机时,首先提取其首部关键字段,计算流标识符,然后查找活跃精确流缓存;(2)若缓存查找成功匹配某条缓存项,则根据其中的流表项地址直接定位流表中的对应流表项,进而根据其动作集转发分组。否则进入步骤(3);(3)由于缓存查找失败,需依次查找掩码数组对应的所有元组。若在某个元组中成功匹配一条流表项,则执行其中的动作集。(4)若所有元组查找均失败,则将分组信息封装成packet

in消息发送给SDN控制器,待SDN控制器生成并下发对应的流规则后,再转发分组。
[0011]但上述现有的OpenFlow虚拟流表查找的缓存优化方案分别存在如下缺点:
[0012]【方案一】从流表中选取宏流存入宏流缓存,并通过微流缓存存储宏流缓存中最近出现的精确流与其掩码的映射关系,使部分数据分组可通过微流缓存和宏流缓存完成转发,加快了OpenFlow虚拟流表查找。然而,当分组命中微流缓存,读取宏流缓存中的掩码后,仍需查找该掩码对应的元组,缓存查找速度有待进一步提升。此外,该方案每次将查找元组成功的流直接存入缓存,但该流后续可能只有少量甚至没有分组到达,缓存命中率仍有提升空间。
[0013]【方案二】通过缓存网络中的活跃精确流,使得大部分数据分组绕过元组空间搜索过程,直接完成分组转发,实现了OpenFlow虚拟流表的快速查找。然而,当网络流量激增时,由于缓存容量固定,无法存储所有的活跃精确流,导致缓存命中率显著降低。而当网络流量骤减时,缓存将出现较多空缓存项,导致缓存利用率明显降低。总之,该缓存难以同时保持较高的缓存命中率和缓存利用率,OpenFlow虚拟流表查找性能不稳定,无法适应网络流量的抖动性。
[0014]基于以上,本专利技术拟提供一种支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法。

技术实现思路

[0015]本专利技术要解决的技术问题是提供一种支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法,以实现OpenFlow虚拟流表的稳定快速查找。
[0016]为了解决上述技术问题,本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法,其特征在于,所述流表弹性加速查找方法根据数据分组到达间隔,识别网络中的活跃精确流,并将其全部存入可伸缩缓存;在网络流量发生抖动时,通过及时灵活调整缓存容量,始终容纳所有活跃精确流;对于到达OpenFlow虚拟交换机的绝大多数分组,该方法将查找命中缓存,并根据命中缓存项中存储的流表项索引值定位对应的流表项,进而根据其中的动作集完成分组转发。2.根据权利要求1所述的支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法,其特征在于,所述可伸缩缓存由多个逻辑分段组成,其分段数根据网络中活跃精确流数量的动态变化进行适应性调整;当活跃精确流数量激增时,缓存新增一个分段,以存储新出现的活跃精确流;当活跃精确流数量骤减时,缓存缩减一个分段,以减少空缓存项数量。3.根据权利要求1所述的支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法,其特征在于,所述OpenFlow虚拟流表弹性加速查找方法,具体包括以下操作:a、OpenFlow虚拟流表查找操作每个到达OpenFlow虚拟交换机的数据分组,通过查找流表匹配对应的流表项,进而根据其中的动作集完成分组转发;b、OpenFlow虚拟流表插入操作当OpenFlow虚拟交换机收到控制器下发的带ADD命令的flow_mod消息时,需根据消息内容新建一条流表项,并插入到OpenFlow虚拟流表中;c、OpenFlow虚拟流表删除操作当OpenFlow交换机收到SDN控制器下发的带DELETE命令的flow_mod消息后,需删除对应的流表项,并同步更新可伸缩缓存;d、OpenFlow虚拟流表的超时扫描操作根据系统当前时间和流表项时间戳的差值判断是否超过超时间隔,若已超时,则将该流表项从OpenFlow虚拟流表中删除,并同步更新可伸缩缓存。4.根据权利要求3,所述OpenFlow虚拟流表弹性加速查找方法,其特征在于,所述OpenFlow虚拟流表查找操作,具体包括以下步骤:当OpenFlow虚拟交换机收到网络中的某个数据分组后,首先解析并提取其头部信息,以获取流标识符fid;然后使用流标识符fid查找可伸缩缓存;若缓存查找成功,则根据匹配缓存项中的流表项索引值addr定位对应的流表项;进一步,读取该流表项的匹配字段,并检验流标识符fid是否与该匹配字段一致;若一致,则跳过元组空间搜索操作,直接根据该流表项的动作集完成分组转发;最后,更新流表项中的相关字段(如计数器和时间戳),并更新匹配缓存项的时间戳;若缓存查找失败,则继续执行元组空间搜索,即依次查找各个掩码对应的元组;若成功匹配某条流表项,则根据其中的动作集转发处理分组;然后,判断该分组所属的精确流是否进入活跃状态,即判断当前分组和最近分组的到达时间间隔是否小于某个阈值PIT;若小于PIT,则表明该流已进入活跃状态,将该流存入可伸缩缓存;若元组空间搜索失败,则该分组属于一条新流,OpenFlow虚拟交换机将把该分组信息封装成Packet

in消息发送给SDN控制器,以请求下发对应的流规则。5.根据权利要求4所述的OpenFlow虚拟流表查找方法,其特征在于,所述查找可伸缩缓存,进一步包括:
获取分组的流标识符fid,通过哈希函数h(
·
)得到流指纹ffp;然后针对每个分段,根据其对应的子哈希函数计算流的候选位置,进而将流指纹ffp与所有候选位置对应的缓存项进行匹配;若成功匹配某条缓存项,则返回其中的流表项索引值addr;否则,返回无效值。6.根据权利要求4所述的OpenFlow虚拟流表查找方法,其特征在于,所述将活跃精确流存入可伸缩缓存,进一步包括:根据数据分组的关键字段,获取流标识符fid、流表...

【专利技术属性】
技术研发人员:熊兵黄巧荣周浩袁月赵锦元
申请(专利权)人:长沙理工大学
类型:发明
国别省市:

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

1