CN117319298A - 一种sdn交换机的tcam流表节能缓存方法 - Google Patents

一种sdn交换机的tcam流表节能缓存方法 Download PDF

Info

Publication number
CN117319298A
CN117319298A CN202311352605.2A CN202311352605A CN117319298A CN 117319298 A CN117319298 A CN 117319298A CN 202311352605 A CN202311352605 A CN 202311352605A CN 117319298 A CN117319298 A CN 117319298A
Authority
CN
China
Prior art keywords
cache
flow
stream
packet
saving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311352605.2A
Other languages
English (en)
Inventor
熊兵
胡广龙
杨豪
何施茗
汤强
李妍
胡晋彬
冯鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changsha University of Science and Technology
Original Assignee
Changsha University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Changsha University of Science and Technology filed Critical Changsha University of Science and Technology
Priority to CN202311352605.2A priority Critical patent/CN117319298A/zh
Publication of CN117319298A publication Critical patent/CN117319298A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/12Arrangements for remote connection or disconnection of substations or of equipment thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明设计了一种SDN交换机的TCAM流表节能缓存方法,其根据活跃精确流数量的动态变化,适应性调整判定活跃精确流的分组到达间隔阈值,以始终存储网络中活跃度高的精确流,从而稳定保持高缓存命中率。进一步,针对现在节能缓存容易发生冲突导致缓存利用不充分的问题,本专利提出了一种基于相邻跳和同向踢操作的新型哈希算法FelisCatus,以解决哈希冲突问题。该算法将每条缓存流的哈希映射位置及其相邻两个哈希位置作为候选位置,并设置标志位记录其偏移量。当插入一条新流时,若三个候选位置均已满,则通过同向踢操作找出一个空位进行存放,或一个不活跃的精确流予以替换。当某个流到达一个分组时,直接在其映射桶和相邻桶中查找即可,可有效保证流表查找性能。

Description

一种SDN交换机的TCAM流表节能缓存方法
技术领域
本发明涉及软件定义网络中流表节能查找领域,更具体地说,涉及一种SDN交换机的TCAM流表节能缓存方法。
背景技术
软件定义网络(Software Defined Networking,SDN)作为一种数据控制分离、软件可编程的新型网络体系架构,能有效解决传统网络流量控制难、设备繁杂、无法灵活调控等问题。SDN将传统网络设备中的控制功能统一集成到SDN控制器,并由控制器根据全局网络视图统一制定流规则,通过南向接口协议下发并安装到数据平面的交换机中,以指导分组转发。目前,SDN控制器与交换机之间通信的主流南向接口协议是OpenFlow协议,它提取传统网络各层传输协议的匹配字段以组合成SDN流表项,进而构成SDN流表。OpenFlow利用通配符掩码的方式,一条SDN流表项可处理多条网络流,并根据优先级决定最终匹配结果。为支持通配流表项的快速查找,SDN交换机常使用TCAM存储流表。
图1展示了主流的SDN流表的查找过程,其仅通过TCAM流表转发处理分组,工作原理如下:
(1)当SDN交换机接收到某一个数据包pi时,首先对包头进行解析,提取出首部中的重要字段(如源/目的IP地址、源/目的端口、协议类型等),并计算其对应的流标识符fid;(2)利用流标识符fid查找SDN流表,即并行匹配TCAM存储器中的所有流表项;(3)若流表查找成功,则返回优先级最高的匹配表项,然后执行相应的动作集。(4)若流表查找失败,则数据包头信息将被封装成packet-in消息发送给SDN控制器,控制器根据全局网络视图生成新的流规则并下发至SDN交换机,添加到对应流表中,用于转发处理具有相同流标识符的数据包。
上述方案直接通过TCAM流表转发处理所有分组,可实现网络流的快速匹配。然而,TCAM查找能耗大,且当网络流量激增时,流表规模迅速膨胀,分组到达频率急剧升高,将导致TCAM流表查找能耗过高。因此,最有前景的方法是设计节能缓存或过滤器预先处理部分网络分组,降低TCAM流表查找频率,从而达到降低能耗的目的,具体如下:
如图2所示的【方案一】是一种基于Cuckoo缓存的SDN节能存储架构。该方案根据分组到达间隔识别TCAM流表包含的所有活跃精确流,然后集中存入SRAM缓存。考虑到网络流通常由多个协议字段共同标识,每个SRAM缓存项仅存储活跃精确流的标识符签名作为关键字,以节省存储空间,同时方便快速哈希查找。此外,针对TCAM容量有限的问题,该架构将TCAM流表项的内容字段拆分出来,采用容量充足的DRAM单独存储,以容纳更多流表项,从而有效缓解TCAM资源紧张问题。
方案一的流表节能查找过程如下:(1)当数据分组到达SDN交换机时,首先提取匹配字段,并生成分组签名,然后查找SRAM缓存;(2)若分组签名与某个缓存项的流签名匹配,则根据其中的流表项索引值定位对应的流表项,然后按照其中的动作集进行转发处理;(3)若缓存匹配失败,则需进一步查找TCAM匹配子流表,并根据对应的DRAM内容子流表进行转发处理。
如图3所示的【方案二】是一种基于TSA-BF(Ternary Segment Aging BloomFilter)的SDN节能存储架构。该方案首先将三元前缀规则编码为唯一可解码的二进制码字,降低了三态规则存储开销。进一步,设计具有分段缓存和自动扩容功能的布鲁姆过滤器,实现了过滤器中新流信息的动态更新。当TSA-BF检测到所接收的网络分组属于一条新流时,将直接请求控制器下发新的流规则,从而减少冗余的TCAM流表查找,降低SDN流表查找能耗。
方案二的流表节能查找过程如下:(1)当数据分组到达SDN交换机时,首先提取二进制分组头部重要信息进行预处理,将之转化为唯一可解码的码字;(2)然后根据码字查找TSA-BF过滤器,若过滤失败,则继续查找TCAM流表;(3)若TCAM流表查找成功,则执行相应的动作集以完成分组转发;(4)若TSA-BF过滤成功,说明该分组属于一条新流,TCAM流表中并不存在可以与之匹配的表项,此时无需再查找TCAM,直接将数据分组封装成packet-in消息交由控制器处理即可。。
但上述已有的流表节能查找方法分别存在如下缺点:
【方案一】通过SRAM缓存存储最近到达的流,使后续的大多数分组绕过TCAM流表直接进行转发,从而降低流表查找能耗。然而,该方案采用Cuckoo哈希算法,在插入失败时需要重新哈希寻找空位,但可能发生新的哈希冲突,从而需要反复执行踢操作。这将带来繁重的哈希计算开销,而且踢操作可能陷入循环往复的状态。此外,该方案采用固定的分组到达间隔阈值,在网络流量波动变化的情况下,难以稳定取得良好的节能效果。在活跃流精确流数量超出缓存容量时,无法适应性缓存网络中最活跃的精确流,导致缓存命中率不理想,尚有提升空间;在活跃流精确流数量少于缓存容量时,缓存中将出现很多空位,导致缓存命中率和利用率都偏低。
【方案二】通过TSA-BF过滤器检测网络中的新流,以减少冗余的TCAM流表查找。然而,在SDN流表查找过程中,一条网络流往往只有第一个分组会查找失败,经控制器下发新规则后,后续数据分组都将成功匹配。因此,TSA-BF只能处理网络流的第一个分组,大部分网络分组仍需查找TCAM,节能效果并不明显。
基于以上,本发明提供一种用于SDN交换机的TCAM流表高效节能缓存方法
发明内容
针对现有节能缓存的插入开销繁重且难以适应网络流量抖动的问题,本专利设计了一种高效弹性的TCAM流表节能缓存,以节省SDN交换机的流表查找能耗。该缓存通过动态调节分组到达间隔阈值,始终缓存网络中最活跃的精确流,从而不管网络流量如何波动变化,稳定保持高缓存命中率的效果。同时,该缓存为每条新插入流提供多个候选位置,并通过同向相邻踢操作寻找空位,可有效解决哈希冲突问题,从而提高缓存利用率。在此基础上,结合不同存储介质特性,将SDN流表的匹配字段与内容字段进行区分存储,以缓解TCAM存储压力。根据上述设计思路,本专利设计了一种基于高效弹性节能缓存的SDN流表节能存储架构
为了达到上述目的,本发明采用的技术方案为:
本发明设计一种几乎无冲突的新型哈希算法的高效弹性节能缓存,主要包括数据分组的流表查找方法和高效弹性节能缓存的插入方法。
所述数据分组的流表查找方法包括以下步骤:
(1)当SDN交换机接收到一个网络分组后,首先解析其各层协议首部,以提取流关键字段(如:源/目的IP地址、源/目的端口和协议类型等),进而生成流关键字key,并计算流签名sig。
(2)通过哈希映射到节能缓存中的某个哈希桶,并根据流签名sig并行查找映射哈希桶和两个相邻哈希桶。若成功找到一个缓存项,则根据其中的表项索引idx,直接定位对应的内容子表项,进而执行其中的动作集,同时更新缓存流的时间戳。
(3)若缓存查找失败,则需使用流关键字key进一步查找TCAM匹配子流表。若查找成功,则根据TCAM索引值获取对应的内容子表项,进而根据其中的动作集转发处理分组,并更新其中的计数器、时间戳等信息。
(4)若TCAM匹配子流表查找失败,意味着该分组属于一条新流,则SDN交换机将把该网络分组的头部信息打包成Packet-in消息提交给控制器,以请求下发新的流规则。分组转发成功后,若其所属的精确流进入活跃状态,则将之存入高效弹性节能缓存。
所述高效弹性节能缓存的插入方法包括以下步骤:
(1)首先根据流关键字计算流签名sig,并通过哈希运算映射到缓存中的某个哈希桶。
(2)若映射哈希桶或相邻哈希桶中存在空位或过期流,则将流签名sig、所属流表项的索引值idx以及最近数据包的时间戳lpt等流信息存入其中,并根据实际存储位置与直接映射位置的偏移方向设置偏移量(0表示本位,+1表示上位,-1表示下位)
(3)若三个候选桶中无空位或过期流,则在相邻桶中寻找可踢出流,即偏移量与踢出方向相反或偏移量为0的流。若存在可踢出流,则在相邻桶中优先踢出一条偏移方向与踢出方向相反的缓存流,从而使其回到原本映射的位置。否则,选择相邻桶中偏移量为0的缓存流踢出。
(4)重复步骤(3),不断踢出流到同方向的相邻桶中,直到出现空位或过期流、或踢次数达到设定阈值为止。当不存在可踢出流或踢出次数到达设定阈值,则根据时间戳选出最近最久没有分组到达的流进行替换。
本发明提供的一种SDN交换机的TCAM流表节能缓存方法,至少具有以下增益效果:
1、针对现有节能缓存采用固定的分组到达间隔阈值难以适应网络流量波动,进而导致节能效果不稳定的问题,本专利设计了一种高效弹性节能缓存。该缓存根据活跃精确流数量的动态变化,适应性调整判定活跃精确流的分组到达间隔阈值,以始终存储网络中活跃度高的精确流,从而稳定保持高缓存命中率。当网络中的活跃流数量激增导致缓存命中率明显降低时,减小分组到达间隔阈值,使活跃流数量与缓存容量相适配,以存储网络中活跃度最高的流。相反,当网络中活跃流数量减少导致缓存中出现许多空位时,增大分组到达间隔阈值,使活跃流数量接近缓存容量,以充分利用缓存空间。
2、针对现在节能缓存容易发生冲突导致缓存利用不充分的问题,本专利提出了一种基于相邻跳和同向踢操作的新型哈希算法FelisCatus,以解决哈希冲突问题。该算法将每条缓存流的哈希映射位置及其相邻两个哈希位置作为候选位置,并为每个缓存项设置标志位记录其偏移量。当插入一条新流时,若三个候选位置均已满,则通过同向踢操作为其找出一个空位进行存放,或一个不活跃的精确流予以替换。当某个流到达一个分组时,直接在其映射桶和相邻桶中查找即可,可有效保证流表查找性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可根据这些附图获得其他的附图。
图1为主流SDN流表查找方法示意图;
图2为基于Cuckoo缓存的SDN流表节能查找方法示意图;
图3为基于TSA-BF过滤器的SDN流表节能查找方法示意图;
图4为本发明实施提供的基于高效弹性节能缓存的SDN流表节能存储架构图;
图5为本发明实施提供的高效弹性节能的活跃精确流缓存设计图;
图6为本发明实施提供的一种SDN交换机的分组转发流程示意图;
图7为本发明实施提供的一种节能缓存表项插入流程示意图;
图8为本发明实施提供的一种节能缓存超时扫描流程示意图;
图9为本发明实施提供的一种SDN流表删除流程示意图;
具体实施方式
下面结合实施例及附图对发明进一步说明,但不用来限制本发明的范围。
如图4所示,本发明的一个实施例,提供了一种基于高效弹性节能缓存的SDN流表节能存储架构,具体如下:
基于高效弹性缓存的SDN流表节能存储架构主要由SRAM节能缓存、TCAM匹配子流表、DRAM内容子流表组成。该架构首先把所有表项字段分成两类:1)匹配字段,包括匹配域、掩码;(2)内容字段,包括动作集、时间戳、计数器等。进一步,将匹配字段和内容字段分别采用TCAM和DRAM存储,形成匹配子流表和内容子流表,以缓解TCAM存储压力,同时保证流表查找性能。在此基础上,采用SRAM缓存活跃精确流,使大部分分组通过缓存直接转发,从而显著降低TCAM流表查找能耗。当SDN交换机收到一个网络分组时,首先查找SRAM节能缓存。若查找成功,则根据命中的缓存项定位对应的DRAM内容子表项,进而根据其中的动作集转发处理分组。只有在缓存查找失败的情况下,才需要通过查找TCAM转发处理分组。
如图5所示,本发明的一个实施例,提供了一种高效弹性节能的活跃精确流缓存,具体设计和使用如下:
活跃精确流缓存采用哈希结构,由若干个哈希桶组成。每个哈希桶包含若干个槽,每个槽存储一条活跃精确流,并记录对应的偏移量。每条缓存的活跃精确流信息包括:流签名sig、表项索引idx、时间戳lpt。其中,流签名sig由活跃精确流的标识符输入签名函数计算而得,通常为2或4个字节。表项索引idx指示活跃精确流对应的内容子表项,以便进一步获取对应的动作集进行转发处理。时间戳lpt记录活跃精确流中最近一个网络分组的到达时间,以便进行缓存替换和超时扫描操作。偏移量记录其实际存储位置与哈希映射位置的偏移值(0、+1、-1)。
针对缓存容易产生哈希冲突导致利用率不高的问题,本专利提出了一种基于相邻跳和同向踢操作的新型哈希算法FelisCatus。该算法将每条缓存流的哈希映射位置及其相邻两个哈希位置作为候选位置,并为每个缓存项设置标志位记录其偏移量。当插入一条新流时,若三个候选位置均已满,则通过同向踢操作为其找出一个空位进行存放,或一个不活跃的精确流予以替换。通过结合相邻跳和同向踢两种操作,该算法可有效解决哈希冲突问题,显著提高缓存利用率,从而取得更好的节能效果。
图5展示了FelisCatus哈希算法的几种新流插入示例。当流f1插入时,其映射桶中有空槽,于是插入其中,设置其偏移量为0。当流f2插入时,其映射桶已满,而其相邻桶中有空槽,于是插入相邻桶,设置其偏移量为+1。当流f3插入时,其映射桶和相邻桶均已满,于是将相邻桶中f0踢到上一个桶中,并设置其偏移量为+1。随后再将f3插入到f0空出的槽中,并设置其偏移量为+1。这样可以充分利用空缓存项,从而有效提高缓存利用率。当某个流到达一个分组时,直接在其映射桶和相邻桶中查找即可,可有效保证流表查找性能。
当网络流量波动时,缓存根据活跃精确流数量的动态变化,适应性调整判定活跃精确流的分组到达间隔阈值,以始终存储网络中活跃度高的精确流,从而稳定保持高缓存命中率。具体而言,当网络中的活跃流数量激增时,缓存无法容纳所有活跃流,往往只能随机存储部分活跃流,导致缓存命中率明显降低。此时,减小分组到达间隔阈值,使活跃流数量与缓存容量相适配。这样,缓存中存储的是网络中最活跃的精确流,从而能够取得高缓存命中率。相反,当网络中活跃流数量减少时,缓存中将出现不少空表项。此时,增大分组到达间隔阈值,使活跃流数量接近缓存容量。这样,缓存将得到充分的利用,从而维持高缓存命中率。
参照图6-9,上述实施例具体包括以下操作:
a、分组转发操作
图6描述了分组转发流程。当SDN交换机接收到一个网络分组后,首先解析其各层协议首部,以提取流关键字段(如:源/目的IP地址、源/目的端口和协议类型等),进而生成流关键字key,并计算流签名sig。随后,通过哈希映射到节能缓存中的某个哈希桶,并根据流签名sig并行查找映射哈希桶和两个相邻哈希桶。若成功找到一个缓存项,则根据其中的表项索引idx,直接定位对应的内容子表项,进而执行其中的动作集,同时更新缓存流的时间戳。若缓存查找失败,则需使用流关键字key进一步查找TCAM匹配子流表。若查找成功,则根据TCAM索引值获取对应的内容子表项,进而根据其中的动作集转发处理分组,并更新其中的计数器、时间戳等信息。分组转发成功后,若其所属的精确流进入活跃状态,则将之存入节能缓存。若TCAM匹配子流表查找失败,意味着该分组属于一条新流,则SDN交换机将把该网络分组的头部信息打包成Packet-in消息提交给控制器,以请求下发新的流规则。
b、节能缓存插入操作
图7给出了节能缓存的插入流程。当一条精确流进入活跃状态时,将之存入节能缓存,以使更多后续分组能够通过缓存直接进行转发。首先根据流关键字计算流签名sig,并通过哈希运算映射到缓存中的某个哈希桶。若映射哈希桶或相邻哈希桶中存在空位或过期流,则将流签名sig、所属流表项的索引值idx以及最近数据包的时间戳lpt等流信息存入其中,并根据实际存储位置与直接映射位置的偏移方向设置偏移量(0表示本位,+1表示上位,-1表示下位)。若三个候选桶中无空位或过期流,则在相邻桶中寻找可踢出流,即偏移量与踢出方向相反或偏移量为0的流。若存在可踢出流,则在相邻桶中优先踢出一条偏移方向与踢出方向相反的缓存流,从而使其回到原本映射的位置。否则,选择相邻桶中偏移量为0的缓存流踢出。随后,按照上述方法,不断踢出流到同方向的相邻桶中,直到出现空位或过期流、或踢次数达到设定阈值为止。当不存在可踢出流或踢出次数到达设定阈值,则根据时间戳选出最近最久没有分组到达的流进行替换。
c、节能缓存超时扫描操作
给出了节能缓存的超时扫描流程。由于网络流量的波动变化,缓存中的流可能从活跃状态变为空闲状态,因此需采用超时扫描机制及时清除缓存中的空闲流,以容纳新到达的活跃精确流。首先获取系统当前时间,并根据超时间隔和时间戳单位进行截取,作为当前时间戳。对于节能缓存中的每个哈希桶,依次检查每个缓存项。若已缓存流,则将其时间戳与当前时间戳进行对比。若时间差已达到超时间隔,表明该流已进入空闲状态,则重置对应的缓存项。对于空缓存项,从最近已检查位置开始,检查相邻桶中是否存在偏移的缓存流。为保证两个相邻桶的缓存流数量相对均衡,采用上下两个哈希桶轮流检查的方式。若发现偏移流,则将其放回至当前空缓存项。
d、SDN流表删除操作
图9给出了SDN流表删除流程。当SDN交换机收到控制器下发的流删除消息时,根据其中的流规则信息找到对应的流表项进行删除。同时,当某条流表项过期时,同样需要删除。当删除某条流表项时,首先删除对应的TCAM子表项。然后,根据对应的内容子表项中记录的缓存流位置,在缓存中定位并删除对应的所有精确流。对于每次删除流空出的缓存项,按超时扫描流程中的缓存项检查方式,将其相邻桶中的偏移流放回至当前空缓存项。最后,删除对应的内容子表项。
与现有技术相比,本发明设计了一种SDN交换机的TCAM流表节能缓存方法,其根据活跃精确流数量的动态变化,适应性调整判定活跃精确流的分组到达间隔阈值,以始终存储网络中活跃度高的精确流,从而稳定保持高缓存命中率。进一步,针对现在节能缓存容易发生冲突导致缓存利用不充分的问题,本专利提出了一种基于相邻跳和同向踢操作的新型哈希算法FelisCatus,以解决哈希冲突问题。该算法将每条缓存流的哈希映射位置及其相邻两个哈希位置作为候选位置,并为每个缓存项设置标志位记录其偏移量。当插入一条新流时,若三个候选位置均已满,则通过同向踢操作为其找出一个空位进行存放,或一个不活跃的精确流予以替换。当某个流到达一个分组时,直接在其映射桶和相邻桶中查找即可,可有效保证流表查找性能。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。

Claims (7)

1.一种SDN交换机的TCAM流表节能缓存方法,该方法根据活跃精确流数量的动态变化,适应性调整判定活跃精确流的分组到达间隔阈值,缓存始终存储网络中活跃度高的精确流,从而稳定保持高缓存命中率;进一步,对于到达SDN交换机的绝大多数分组,该方法将查找命中节能缓存,并根据命中缓存项中存储的流表项索引值定位对应的流表项,进而根据其中的动作集完成分组转发,从而显著降低TCAM流表查找能耗。
2.根据权利要求1所述的TCAM流表节能缓存方法,其特征在于,所述节能缓存适应性调整分组到达间隔阈值,以始终存储网络中活跃度高的精确流;当网络中的活跃流数量激增时,缓存无法容纳所有活跃流,往往只能随机存储部分活跃流,导致缓存命中率明显降低;此时,减小分组到达间隔阈值,使活跃流数量与缓存容量相适配;这样,缓存中存储的是网络中最活跃的精确流,从而能够取得高缓存命中率。相反,当网络中活跃流数量减少时,缓存中将出现不少空表项;此时,增大分组到达间隔阈值,使活跃流数量接近缓存容量;这样,缓存将得到充分的利用,从而维持高缓存命中率。
3.根据权利要求1所述的TCAM流表节能缓存方法,其特征在于,本发明提出了一种基于相邻跳和同向踢操作的新型哈希算法FelisCatus,以解决哈希冲突问题;该算法将每条缓存流的哈希映射位置及其相邻两个哈希位置作为候选位置,并为每个缓存项设置标志位记录其偏移量;当插入一条新流时,若三个候选位置均已满,则通过同向踢操作为其找出一个空位进行存放,或一个不活跃的精确流予以替换;当某个流到达一个分组时,直接在其映射桶和相邻桶中查找即可,可有效保证流表查找性能。
4.根据权利要求1所述的TCAM流表节能缓存方法,其特征在于,将活跃精确流存入节能缓存,进一步包括:
首先根据流关键字计算流签名sig,并通过哈希运算映射到缓存中的某个哈希桶;若映射哈希桶或相邻哈希桶中存在空位或过期流,则将流签名sig、所属流表项的索引值idx以及最近数据包的时间戳lpt等流信息存入其中,并根据实际存储位置与直接映射位置的偏移方向设置偏移量(0表示本位,+1表示上位,-1表示下位);
若三个候选桶中无空位或过期流,则在相邻桶中寻找可踢出流,即偏移量与踢出方向相反或偏移量为0的流;若存在可踢出流,则在相邻桶中优先踢出一条偏移方向与踢出方向相反的缓存流,从而使其回到原本映射的位置;否则,选择相邻桶中偏移量为0的缓存流踢出;
随后,按照上述方法,不断踢出流到同方向的相邻桶中,直到出现空位或过期流、或踢次数达到设定阈值为止;当不存在可踢出流或踢出次数到达设定阈值,则根据时间戳选出最近最久没有分组到达的流进行替换。
5.根据权利要求1所述的TCAM流表节能缓存方法,其特征在于,SDN交换机查找操作,具体包括以下步骤:
当SDN交换机接收到一个网络分组后,首先解析其各层协议首部,以提取流关键字段(如:源/目的IP地址、源/目的端口和协议类型等),进而生成流关键字key,并计算流签名sig;随后,通过哈希映射到节能缓存中的某个哈希桶,并根据流签名sig并行查找映射哈希桶和两个相邻哈希桶;
若成功找到一个缓存项,则根据其中的表项索引idx,直接定位对应的内容子表项,进而执行其中的动作集,同时更新缓存流的时间戳;
若缓存查找失败,则需使用流关键字key进一步查找TCAM匹配子流表;若查找成功,则根据TCAM索引值获取对应的内容子表项,进而根据其中的动作集转发处理分组,并更新其中的计数器、时间戳等信息;
分组转发成功后,若其所属的精确流进入活跃状态,则将之存入节能缓存;若TCAM匹配子流表查找失败,意味着该分组属于一条新流,则SDN交换机将把该网络分组的头部信息打包成Packet-in消息提交给控制器,以请求下发新的流规则。
6.根据权利要求1所述的TCAM流表节能缓存方法,其特征在于,SDN流表超时扫描操作,具体包括以下步骤:
首先获取系统当前时间,并根据超时间隔和时间戳单位进行截取,作为当前时间戳;对于节能缓存中的每个哈希桶,依次检查每个缓存项;若已缓存流,则将其时间戳与当前时间戳进行对比;
若时间差已达到超时间隔,表明该缓存流已进入空闲状态,则重置对应的缓存项;对于空缓存项,从最近已检查位置开始,检查相邻桶中是否存在偏移的缓存流;为保证两个相邻桶的缓存流数量相对均衡,采用上下两个哈希桶轮流检查的方式;若发现偏移流,则将其放回至当前空缓存项。
7.根据权利要求1所述的TCAM流表节能缓存方法,其特征在于,将删除流表项对应的缓存项从节能缓存中删除,具体包括以下步骤:
当SDN交换机收到控制器下发的流删除消息时,根据其中的流规则信息找到对应的流表项进行删除;同时,当某条流表项过期时,同样需要删除;当删除某条流表项时,首先删除对应的TCAM子表项;然后,根据对应的内容子表项中记录的缓存流位置,在缓存中定位并删除对应的所有精确流;对于每次删除流空出的缓存项,按超时扫描流程中的缓存项检查方式,将其相邻桶中的偏移流放回至当前空缓存项;最后,删除对应的内容子表项。
CN202311352605.2A 2023-10-18 2023-10-18 一种sdn交换机的tcam流表节能缓存方法 Pending CN117319298A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311352605.2A CN117319298A (zh) 2023-10-18 2023-10-18 一种sdn交换机的tcam流表节能缓存方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311352605.2A CN117319298A (zh) 2023-10-18 2023-10-18 一种sdn交换机的tcam流表节能缓存方法

Publications (1)

Publication Number Publication Date
CN117319298A true CN117319298A (zh) 2023-12-29

Family

ID=89246200

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311352605.2A Pending CN117319298A (zh) 2023-10-18 2023-10-18 一种sdn交换机的tcam流表节能缓存方法

Country Status (1)

Country Link
CN (1) CN117319298A (zh)

Similar Documents

Publication Publication Date Title
CN108337172B (zh) 大规模OpenFlow流表加速查找方法
CN109921996B (zh) 一种高性能的OpenFlow虚拟流表查找方法
CN110808910B (zh) 一种支持QoS的OpenFlow流表节能存储架构及其方法
US20210367887A1 (en) Flow classification apparatus, methods, and systems
CN111966284B (zh) 一种OpenFlow大规模流表弹性节能与高效查找系统及方法
CN100459574C (zh) 对网络流进行分类、状态跟踪和报文处理的装置和方法
CN111131084B (zh) 一种QoS感知的OpenFlow流表查找方法
CN111131029B (zh) 一种支持规则依赖的高能效OpenFlow流表查找方法
CN113839835B (zh) 一种基于小流过滤的Top-k流精确监控系统
CN108306835A (zh) 一种以太网交换机的输入缓存结构及数据转发方法
CN114205253A (zh) 一种基于小流过滤的活跃大流精确检测架构及方法
CN105791129A (zh) 一种OpenFlow流表处理无效数据包的方法
JPWO2014098114A1 (ja) パケット処理装置、フローエントリの配置方法及びプログラム
US10901897B2 (en) Method and apparatus for search engine cache
CN112822077B (zh) 数据中心网络中全网流量测量方法、系统及丢包检测方法
CN117319298A (zh) 一种sdn交换机的tcam流表节能缓存方法
EP1533956A2 (en) Dynamic forwarding of data packets using binary search
CN113810298B (zh) 一种支持网络流量抖动的OpenFlow虚拟流表弹性加速查找方法
CN111200542B (zh) 一种基于确定性替换策略的网络流量管理方法及系统
CN114710444B (zh) 基于塔型摘要和可驱逐流表的数据中心流量统计方法和系统
CN114884834A (zh) 一种低开销的Top-k网络流高精度提取架构及方法
US7233895B2 (en) Apparatus and method to compensate for unsynchronized transmission of synchrous data using a sorted list
KR100759796B1 (ko) 데이터 루핑 현상 검출 장치 및 그 방법
CN110825940B (zh) 网络数据包存储和查询方法
CN114640641B (zh) 一种流量感知的OpenFlow流表弹性节能查找方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination