CN104168222A - 一种报文传输方法和设备 - Google Patents
一种报文传输方法和设备 Download PDFInfo
- Publication number
- CN104168222A CN104168222A CN201410336330.8A CN201410336330A CN104168222A CN 104168222 A CN104168222 A CN 104168222A CN 201410336330 A CN201410336330 A CN 201410336330A CN 104168222 A CN104168222 A CN 104168222A
- Authority
- CN
- China
- Prior art keywords
- stream table
- message
- network equipment
- level stream
- multistage
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文传输方法和设备,该方法包括:网络设备根据多个一级流表生成对应的多级流表,并将所述多级流表下发到硬件转发芯片上;所述网络设备按照报文匹配次数选取N个一级流表,并将所述N个一级流表下发到所述硬件转发芯片上;所述网络设备在收到报文时,根据所述报文中携带的信息优先匹配一级流表;如果命中,则利用匹配到的一级流表转发所述报文;如果没有命中,则匹配所述多级流表,并利用所述多级流表的匹配结果转发所述报文。本发明实施例中,可以节省TCAM存储空间,降低TCAM的开销,节省查找的时间和匹配的时间。
Description
技术领域
本发明涉及通信技术领域,尤其是涉及一种报文传输方法和设备。
背景技术
OpenFlow是SDN(Software Defined Network,软件定义网络)架构中定义的一个控制器与转发层之间的通信接口标准。OpenFlow的思想是分离控制平面和数据平面,二者之间使用标准的协议通信。在OpenFlow网络中,包括网络设备(如OpenFlow Switch)和控制器(如OpenFlow Controller),且网络设备和控制器之间通过OpenFlow通道通信。其中,控制器用于根据用户的配置或者动态运行的协议生成流表(Flow Table),并将流表发送到网络设备。网络设备用于接收来自控制器的流表,并根据流表来匹配和处理报文。
控制器在向网络设备下发流表时,流表结构可以如表1所示。其中,MatchFields为匹配字段,用于匹配报文,且该Match Fields包括目的MAC(MediaAccess Control,介质访问控制)地址、源MAC地址、目的IP地址、源IP地址、隧道ID(标识)等;Priority为优先级字段,报文匹配流表时先匹配优先级高的流表;Counters为计数器字段,用于记录流表被匹配的次数;Instructions为指令字段,用于更改动作集或通道处理;Timeouts为超时时间字段,用于记录流表保存的最大时间或闲置时间;Cookie为控制器使用的一个标识。
表1
现有技术中,网络设备的CPU(Central Processing Unit,中央处理器)需要维护表1所示的流表,并将表1所示的所有流表均下发到TCAM(TernaryContent Addressable Memory,三态内容寻址存储器)上。由于TCAM上存储的流表需要记录表1所示的所有字段,即流表中需要包括目的MAC地址、源MAC地址、目的IP地址、源IP地址、隧道ID、Priority、Counters、Instructions、Timeouts、Cookie等字段,因此,每个流表使用的长度都会很大(如252bit),继而使得流表会占用大量的TCAM存储空间,并会导致TCAM的开销增加。
发明内容
本发明实施例提供一种报文传输方法,应用于包括控制器和网络设备的OpenFlow网络中,所述网络设备上记录有多个一级流表,每个一级流表中记录了所有匹配选项,所述方法包括:
所述网络设备根据所述多个一级流表生成对应的多级流表,并将所述多级流表下发到所述网络设备的硬件转发芯片上;其中,所述多级流表包括多个多级子流表,每个多级子流表中记录一个匹配选项;
所述网络设备统计每个一级流表的报文匹配次数,并按照报文匹配次数选取N个一级流表,并将所述N个一级流表下发到所述硬件转发芯片上;
所述网络设备在收到报文时,根据所述报文中携带的信息优先匹配一级流表;如果命中,则利用匹配到的一级流表转发所述报文;如果没有命中,则匹配所述多级流表,并利用所述多级流表的匹配结果转发所述报文。
所述网络设备统计每个一级流表的报文匹配次数的过程,具体包括:
所述网络设备对所述多级流表进行监控,当所述多级流表中记录的信息数量大于预设第一阈值时,所述网络设备统计每个一级流表的报文匹配次数;或者,所述网络设备对中央处理器CPU使用率进行监控,当所述CPU使用率大于预设第二阈值时,所述网络设备统计每个一级流表的报文匹配次数。
在所述网络设备按照报文匹配次数选取N个一级流表之后,所述方法还包括:所述网络设备调整所述N个一级流表中的每个一级流表的优先级,使一级流表在调整之后的优先级大于所述一级流表在调整之前的优先级。
所述方法进一步包括:
所述网络设备在所述硬件转发芯片上配置转发策略,所述转发策略用于使所述硬件转发芯片在收到报文时,根据所述报文中携带的信息优先匹配一级流表,并在所述报文中携带的信息没有命中一级流表时,由所述硬件转发芯片根据所述报文中携带的信息匹配多级流表。
所述匹配选项具体包括:目的介质访问控制MAC地址、源MAC地址、目的IP地址、源IP地址、隧道ID;所述硬件转发芯片具体为:三态内容寻址存储器TCAM。
本发明实施例提供一种网络设备,应用于包括控制器和所述网络设备的OpenFlow网络中,所述网络设备上记录有多个一级流表,每个一级流表中记录了所有匹配选项,所述网络设备具体包括:
生成模块,用于根据所述多个一级流表生成对应的多级流表,所述多级流表包括多个多级子流表,每个多级子流表中记录一个匹配选项;
多级流表下发模块,用于将所述多级流表下发到硬件转发芯片上;
统计模块,用于统计每个一级流表的报文匹配次数,并按照报文匹配次数选取N个一级流表;
一级流表下发模块,用于将所述N个一级流表下发到硬件转发芯片上;
处理模块,用于在收到报文时,根据所述报文中携带的信息优先匹配一级流表;如果命中,则利用匹配到的一级流表转发所述报文;如果没有命中,则匹配所述多级流表,并利用所述多级流表的匹配结果转发所述报文。
所述统计模块,具体用于对所述多级流表进行监控,当所述多级流表中记录的信息数量大于预设第一阈值时,统计每个一级流表的报文匹配次数;或者,对中央处理器CPU使用率进行监控,当所述CPU使用率大于预设第二阈值时,统计每个一级流表的报文匹配次数。
所述统计模块,还用于在按照报文匹配次数选取N个一级流表之后,调整所述N个一级流表中的每个一级流表的优先级,以使一级流表在调整之后的优先级大于所述一级流表在调整之前的优先级。
还包括:转发策略配置模块,用于在所述硬件转发芯片上配置转发策略,所述转发策略用于使所述硬件转发芯片在收到报文时,根据所述报文中携带的信息优先匹配一级流表,并在所述报文中携带的信息没有命中一级流表时,由所述硬件转发芯片根据所述报文中携带的信息匹配多级流表。
所述匹配选项具体包括:目的介质访问控制MAC地址、源MAC地址、目的IP地址、源IP地址、隧道ID;所述硬件转发芯片具体为:三态内容寻址存储器TCAM。
基于上述技术方案,本发明实施例中,通过在TCAM上下发多级流表,从而避免TCAM存储的流表均包含目的MAC地址、源MAC地址、目的IP地址、源IP地址、隧道ID、Priority、Counters、Instructions、Timeouts、Cookie等字段,节省流表占用的TCAM存储空间,降低TCAM的开销,高效的使用TCAM的硬件资源。进一步的,通过在TCAM上下发报文匹配次数最多的N个一级流表,从而使得流量得到更快的匹配,节省查找的时间和匹配的时间。
附图说明
图1是本发明实施例提供的一种报文传输方法流程示意图;
图2是本发明实施例提供的一种网络设备的结构示意图。
具体实施方式
针对现有技术中存在的问题,本发明实施例提供一种报文传输方法,该方法应用于包括控制器和网络设备的OpenFlow网络中。其中,网络设备上记录有多个一级流表,且每个一级流表中均记录了所有匹配选项,如网络设备的CPU维护多个一级流表。在每个一级流表中,均可以包含匹配选项、Priority、Counters、Instructions、Timeouts、Cookie等字段。进一步的,匹配选项具体包括但不限于以下之一或者任意组合:目的MAC地址、源MAC地址、目的IP地址、源IP地址、隧道ID。为了方便描述,以匹配选项包括目的MAC地址、目的IP地址和隧道ID为例进行说明。
在上述应用场景下,如图1所示,该报文传输方法可以包括以下步骤:
步骤101,网络设备(如网络设备的CPU)根据多个一级流表生成对应的多级流表,并将多级流表下发到网络设备的硬件转发芯片上。其中,多个一级流表中的每个一级流表中均记录了所有匹配选项,该多级流表具体包括多个多级子流表,且每个多级子流表中记录一个匹配选项。
例如,假设网络设备的CPU维护有100个一级流表。在流表1-流表50的匹配选项中,目的MAC地址为MAC地址1,在流表51-流表100的匹配选项中,目的MAC地址为MAC地址2;在流表1-流表30的匹配选项中,目的IP地址为IP地址1,在流表31-流表70的匹配选项中,目的IP地址为IP地址2,在流表71-流表100的匹配选项中,目的IP地址为IP地址3;在流表1-流表40的匹配选项中,隧道ID为隧道1,在流表41-流表80的匹配选项中,隧道ID为隧道2,在流表81-流表100的匹配选项中,隧道ID为隧道3。
在此应用场景下,100个一级流表对应的多级流表具体包括多级子流表1、多级子流表2和多级子流表3,且网络设备需要将多级子流表1、多级子流表2和多级子流表3下发到网络设备的硬件转发芯片上。其中,多级子流表1中记录的匹配选项为目的MAC地址,即多级子流表1中依次记录MAC地址1、MAC地址2;多级子流表2中记录的匹配选项为目的IP地址,即多级子流表2中依次记录IP地址1、IP地址2、IP地址3;多级子流表3中记录的匹配选项为隧道ID,即多级子流表3中依次记录隧道1、隧道2、隧道3。
步骤102,网络设备(如网络设备的CPU)统计每个一级流表的报文匹配次数,并按照报文匹配次数选取N个一级流表,并将N个一级流表下发到硬件转发芯片上。其中,对于网络设备下发到硬件转发芯片上的N个一级流表,与CPU上维护的一级流表相同,各一级流表中均记录了所有的匹配选项。
其中,网络设备可以按照报文匹配次数从多到少的顺序对各一级流表进行排序,并依据排序结果,从第一个一级流表开始选取N个一级流表。
其中,网络设备下发到硬件转发芯片上的N个一级流表与网络设备维护的一级流表相同,即网络设备下发到硬件转发芯片上的N个一级流表中的每个一级流表,均可以包含匹配选项、Priority、Counters、Instructions、Timeouts、Cookie等字段,且该匹配选项包含目的MAC地址、目的IP地址和隧道ID。
例如,针对网络设备的CPU维护的100个一级流表,各一级流表按照报文匹配次数从多到少的顺序依次为:流表1、流表31、流表41、流表51、流表81、流表2、流表3、流表4、……,假设网络设备按照报文匹配次数选取5个一级流表,则网络设备下发到硬件转发芯片上的5个一级流表分别为流表1、流表31、流表41、流表51、流表81。其中,在流表1的匹配选项中,包括MAC地址1、IP地址1、隧道1;在流表31的匹配选项中,包括MAC地址1、IP地址2、隧道1;在流表41的匹配选项中,包括MAC地址1、IP地址2、隧道2;在流表51的匹配选项中,包括MAC地址2、IP地址2、隧道2;在流表81的匹配选项中,包括MAC地址2、IP地址3、隧道3。
在具体应用中,网络设备下发到硬件转发芯片上的流表1、流表31、流表41、流表51、流表81中,还可以包含Priority、Counters、Instructions、Timeouts、Cookie等字段,本发明实施例中对其它字段的说明,不再详加赘述。
本发明实施例中,在网络设备按照报文匹配次数选取N个一级流表之后,网络设备还可以调整这N个一级流表中的每个一级流表的优先级(如将每个一级流表的优先级增加0.5等),以使这N个一级流表在调整之后的优先级大于这N个一级流表在调整之前的优先级。基于此,针对这N个一级流表,在网络设备上维护的这N个一级流表的优先级为调整之后的优先级,在硬件转发芯片上维护的这N个一级流表的优先级为调整之后的优先级。
其中,为一级流表的优先级增加的数值为0与1之间的数值。
进一步的,基于上述处理之后,针对网络设备的CPU上维护的多个一级流表,网络设备能够获知这多个一级流表中的哪N个一级流表被下发到硬件转发芯片上。例如,假设网络设备的CPU上维护的100个一级流表的优先级均为5,则在选取N个一级流表之后,将N个一级流表中的每个一级流表的优先级增加0.5,即这N个一级流表的调整之后的优先级为5.5。基于此,网络设备获知优先级为5.5的N个一级流表被下发到硬件转发芯片上。
需要说明的是,网络设备的CPU上维护的一级流表的优先级通常为正整数(如4、5等),而本发明实施例中,网络设备通过为一级流表的优先级增加0.5,使得一级流表的优先级不再是正整数,因此,网络设备可以获知优先级不是正整数(如4.5、5.5等)的一级流表被下发到硬件转发芯片上。
本发明实施例中,网络设备在将N个一级流表下发到硬件转发芯片上时,如果硬件转发芯片上当前已经存在N个一级流表,则需要比较当前需要下发到硬件转发芯片上的N个一级流表以及硬件转发芯片上当前存在的N个一级流表,并基于比较结果将N个一级流表下发到硬件转发芯片上。例如,网络设备当前需要下发到硬件转发芯片上的N个一级流表分别为流表1、流表31、流表41、流表51、流表81,硬件转发芯片上当前存在的N个一级流表分别为流表1、流表4、流表31、流表41、流表70时,网络设备需要从硬件转发芯片上删除流表4和流表70,并将流表51和流表81下发到硬件转发芯片上。
本发明实施例中,网络设备统计多个一级流表中的每个一级流表的报文匹配次数的过程,具体包括但不限于:网络设备对多级流表进行监控,当多级流表中记录的信息数量大于预设第一阈值时,则网络设备统计每个一级流表的报文匹配次数,并按照报文匹配次数由多到少依次选取N个一级流表,并将N个一级流表下发到硬件转发芯片上。或者,网络设备对CPU使用率进行监控,当CPU使用率大于预设第二阈值时,网络设备统计每个一级流表的报文匹配次数的过程,并按照报文匹配次数由多到少依次选取N个一级流表,并将N个一级流表下发到硬件转发芯片上。
其中,预设第一阈值可以根据CPU处理能力进行设置,如将预设第一阈值设置为1000。假设多级流表包括多级子流表1、多级子流表2和多级子流表3,网络设备对各多级子流表中记录的信息进行监控,当多级子流表1中记录的MAC地址的数量、与多级子流表2中记录的IP地址的数量、与多级子流表3中记录的隧道的数量之和大于1000时,网络设备执行上述步骤202。
其中,预设第二阈值可以根据实际经验任意进行设置,如将预设第二阈值设置为80%。基于此,网络设备可以对本网络设备的CPU使用率进行监控;如果监控到CPU使用率大于80%时,则网络设备执行上述步骤202。
本发明实施例中,网络设备还可以定时(定时时间可以任意设置,如设置为30S)统计多个一级流表中的每个一级流表的报文匹配次数,并按照报文匹配次数选取N个一级流表,并将N个一级流表下发到硬件转发芯片上。
步骤103,网络设备(如硬件转发芯片)在收到报文时,根据报文中携带的信息优先匹配一级流表;如果命中,则利用匹配到的一级流表转发报文;如果没有命中,则匹配多级流表,并利用多级流表的匹配结果转发报文。
本发明实施例中,网络设备可以在硬件转发芯片上配置转发策略,该转发策略用于使硬件转发芯片在收到报文时,根据该报文中携带的信息优先匹配一级流表,并在该报文中携带的信息没有命中一级流表时,由硬件转发芯片根据该报文中携带的信息匹配多级流表。基于此转发策略,硬件转发芯片在收到报文时,根据该报文中携带的信息优先匹配一级流表,如果该报文中携带的信息命中一级流表,则硬件转发芯片利用匹配到的一级流表转发报文;如果该报文中携带的信息没有命中一级流表,则硬件转发芯片根据该报文中携带的信息匹配多级流表,并利用多级流表的匹配结果转发报文。
具体的,在匹配一级流表的过程中,假设N个一级流表的匹配选项中均包含目的MAC地址、目的IP地址和隧道ID时,则网络设备的硬件转发芯片在收到报文时,通过该报文中携带的目的MAC地址、目的IP地址和隧道ID,匹配一级流表中的目的MAC地址、目的IP地址和隧道ID;如果有一级流表中的目的MAC地址、目的IP地址和隧道ID与报文中携带的目的MAC地址、目的IP地址和隧道ID均相同,则说明报文中携带的信息命中该一级流表,此时硬件转发芯片利用该一级流表转发报文;如果所有一级流表中的目的MAC地址、目的IP地址和隧道ID没有与报文中携带的目的MAC地址、目的IP地址和隧道ID完全相同,则说明报文中携带的信息没有命中一级流表,此时硬件转发芯片需要根据该报文中携带的信息匹配多级流表。
在匹配多级流表的过程中,假设多级流表包括多级子流表1、多级子流表2和多级子流表3,多级子流表1中依次记录MAC地址1、MAC地址2,多级子流表2中依次记录IP地址1、IP地址2、IP地址3,多级子流表3中依次记录隧道1、隧道2、隧道3。硬件转发芯片通过报文中携带的目的MAC地址匹配多级子流表1,假设报文中携带的目的MAC地址为MAC地址1,则报文中携带的目的MAC地址匹配到多级子流表1中的MAC地址1,硬件转发芯片将匹配结果通知给CPU,由CPU记录目的MAC地址为MAC地址1。硬件转发芯片通过报文中携带的目的IP地址匹配多级子流表2,假设报文中携带的目的IP地址为IP地址2,则报文中携带的目的IP地址匹配到多级子流表2中的IP地址2,硬件转发芯片将匹配结果通知给CPU,由CPU记录目的IP地址为IP地址2。硬件转发芯片通过报文中携带的隧道ID匹配多级子流表3,假设报文中携带的隧道ID为隧道3,则报文中携带的隧道ID匹配到多级子流表3中的隧道3,硬件转发芯片将匹配结果通知给CPU,由CPU记录隧道ID为隧道3。基于上述处理之后,报文中携带的信息在多级子流表的匹配结果分别为MAC地址1、IP地址2和隧道3,基于此匹配结果,CPU可以通过MAC地址1、IP地址2和隧道3查询网络设备上维护的所有一级流表(即网络设备的CPU上维护的所有一级流表),从而得到MAC地址1、IP地址2和隧道3对应的一级流表,并可以利用该一级流表转发报文。
本发明实施例中,硬件转发芯片具体包括但不限于:TCAM。
基于上述技术方案,本发明实施例中,通过在TCAM上下发多级流表,从而避免TCAM存储的流表均包含目的MAC地址、源MAC地址、目的IP地址、源IP地址、隧道ID、Priority、Counters、Instructions、Timeouts、Cookie等字段,节省流表占用的TCAM存储空间,降低TCAM的开销,高效的使用TCAM的硬件资源。进一步的,通过在TCAM上下发报文匹配次数最多的N个一级流表,从而使得流量得到更快的匹配,节省查找的时间和匹配的时间。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种网络设备,应用于包括控制器和所述网络设备的OpenFlow网络中,所述网络设备上记录有多个一级流表,每个一级流表中记录了所有匹配选项,如图2所示,所述网络设备具体包括:
生成模块11,用于根据所述多个一级流表生成对应的多级流表,所述多级流表包括多个多级子流表,每个多级子流表中记录一个匹配选项;
多级流表下发模块12,用于将所述多级流表下发到硬件转发芯片上;
统计模块13,用于统计每个一级流表的报文匹配次数,并按照报文匹配次数选取N个一级流表;
一级流表下发模块14,用于将所述N个一级流表下发到硬件转发芯片上;
硬件转发芯片15,用于在收到报文时,根据所述报文中携带的信息优先匹配一级流表;如果命中,则利用匹配到的一级流表转发所述报文;如果没有命中,则匹配所述多级流表,利用所述多级流表的匹配结果转发所述报文。
所述统计模块13,具体用于对所述多级流表进行监控,当所述多级流表中记录的信息数量大于预设第一阈值时,统计每个一级流表的报文匹配次数;或者,对中央处理器CPU使用率进行监控,当所述CPU使用率大于预设第二阈值时,统计每个一级流表的报文匹配次数。
所述统计模块13,还用于在按照报文匹配次数选取N个一级流表之后,调整所述N个一级流表中的每个一级流表的优先级,以使一级流表在调整之后的优先级大于所述一级流表在调整之前的优先级。
本发明实施例中,所述网络设备,还包括:
转发策略配置模块16,用于在所述硬件转发芯片上配置转发策略,所述转发策略用于使所述硬件转发芯片在收到报文时,根据所述报文中携带的信息优先匹配一级流表,并在所述报文中携带的信息没有命中一级流表时,由所述硬件转发芯片根据所述报文中携带的信息匹配多级流表。
本发明实施例中,所述匹配选项具体包括:目的介质访问控制MAC地址、源MAC地址、目的IP地址、源IP地址、隧道ID;
所述硬件转发芯片15具体为:三态内容寻址存储器TCAM。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种报文传输方法,应用于包括控制器和网络设备的OpenFlow网络中,其特征在于,所述网络设备上记录有多个一级流表,每个一级流表中记录了所有匹配选项,所述方法包括:
所述网络设备根据所述多个一级流表生成对应的多级流表,并将所述多级流表下发到所述网络设备的硬件转发芯片上;其中,所述多级流表包括多个多级子流表,每个多级子流表中记录一个匹配选项;
所述网络设备统计每个一级流表的报文匹配次数,并按照报文匹配次数选取N个一级流表,并将所述N个一级流表下发到所述硬件转发芯片上;
所述网络设备在收到报文时,根据所述报文中携带的信息优先匹配一级流表;如果命中,则利用匹配到的一级流表转发所述报文;如果没有命中,则匹配所述多级流表,并利用所述多级流表的匹配结果转发所述报文。
2.如权利要求1所述的方法,其特征在于,所述网络设备统计每个一级流表的报文匹配次数的过程,具体包括:
所述网络设备对所述多级流表进行监控,当所述多级流表中记录的信息数量大于预设第一阈值时,所述网络设备统计每个一级流表的报文匹配次数;或者,所述网络设备对中央处理器CPU使用率进行监控,当所述CPU使用率大于预设第二阈值时,所述网络设备统计每个一级流表的报文匹配次数。
3.如权利要求1所述的方法,其特征在于,在所述网络设备按照报文匹配次数选取N个一级流表之后,所述方法还包括:
所述网络设备调整所述N个一级流表中的每个一级流表的优先级,使一级流表在调整之后的优先级大于所述一级流表在调整之前的优先级。
4.如权利要求1所述的方法,其特征在于,所述方法进一步包括:
所述网络设备在所述硬件转发芯片上配置转发策略,所述转发策略用于使所述硬件转发芯片在收到报文时,根据所述报文中携带的信息优先匹配一级流表,并在所述报文中携带的信息没有命中一级流表时,由所述硬件转发芯片根据所述报文中携带的信息匹配多级流表。
5.如权利要求1-4任一项所述的方法,其特征在于,所述匹配选项具体包括:目的介质访问控制MAC地址、源MAC地址、目的IP地址、源IP地址、隧道ID;所述硬件转发芯片具体为:三态内容寻址存储器TCAM。
6.一种网络设备,应用于包括控制器和所述网络设备的OpenFlow网络中,其特征在于,所述网络设备上记录有多个一级流表,每个一级流表中记录了所有匹配选项,所述网络设备具体包括:
生成模块,用于根据所述多个一级流表生成对应的多级流表,所述多级流表包括多个多级子流表,每个多级子流表中记录一个匹配选项;
多级流表下发模块,用于将所述多级流表下发到硬件转发芯片上;
统计模块,用于统计每个一级流表的报文匹配次数,并按照报文匹配次数选取N个一级流表;
一级流表下发模块,用于将所述N个一级流表下发到硬件转发芯片上;
处理模块,用于在收到报文时,根据所述报文中携带的信息优先匹配一级流表;如果命中,则利用匹配到的一级流表转发所述报文;如果没有命中,则匹配所述多级流表,并利用所述多级流表的匹配结果转发所述报文。
7.如权利要求6所述的网络设备,其特征在于,
所述统计模块,具体用于对所述多级流表进行监控,当所述多级流表中记录的信息数量大于预设第一阈值时,统计每个一级流表的报文匹配次数;或者,对中央处理器CPU使用率进行监控,当所述CPU使用率大于预设第二阈值时,统计每个一级流表的报文匹配次数。
8.如权利要求6所述的网络设备,其特征在于,
所述统计模块,还用于在按照报文匹配次数选取N个一级流表之后,调整所述N个一级流表中的每个一级流表的优先级,以使一级流表在调整之后的优先级大于所述一级流表在调整之前的优先级。
9.如权利要求6所述的网络设备,其特征在于,还包括:
转发策略配置模块,用于在所述硬件转发芯片上配置转发策略,所述转发策略用于使所述硬件转发芯片在收到报文时,根据所述报文中携带的信息优先匹配一级流表,并在所述报文中携带的信息没有命中一级流表时,由所述硬件转发芯片根据所述报文中携带的信息匹配多级流表。
10.如权利要求6-9任一项所述的网络设备,其特征在于,所述匹配选项具体包括:目的介质访问控制MAC地址、源MAC地址、目的IP地址、源IP地址、隧道ID;所述硬件转发芯片具体为:三态内容寻址存储器TCAM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410336330.8A CN104168222B (zh) | 2014-07-15 | 2014-07-15 | 一种报文传输方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410336330.8A CN104168222B (zh) | 2014-07-15 | 2014-07-15 | 一种报文传输方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104168222A true CN104168222A (zh) | 2014-11-26 |
CN104168222B CN104168222B (zh) | 2018-08-03 |
Family
ID=51911855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410336330.8A Active CN104168222B (zh) | 2014-07-15 | 2014-07-15 | 一种报文传输方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104168222B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104518969A (zh) * | 2014-12-12 | 2015-04-15 | 北京智谷睿拓技术服务有限公司 | 数据报文处理方法、装置及交换机 |
CN105024990A (zh) * | 2015-03-30 | 2015-11-04 | 清华大学 | 网络安全攻防演练环境部署方法及装置 |
CN105471756A (zh) * | 2015-11-17 | 2016-04-06 | 浪潮(北京)电子信息产业有限公司 | 一种数据包处理方法及装置 |
CN107104896A (zh) * | 2017-05-26 | 2017-08-29 | 南京元融信息技术有限公司 | 高可用高性能灵敏的sdn控制器与sdn交换机架构 |
CN107920024A (zh) * | 2017-10-11 | 2018-04-17 | 中国电子科技集团公司第三十研究所 | 一种sdn控制器动态流表管理方法 |
CN108270675A (zh) * | 2016-12-30 | 2018-07-10 | 中国电信股份有限公司 | 流表实现控制器、转发设备、***和方法 |
CN108810182A (zh) * | 2018-04-28 | 2018-11-13 | 深圳市德赛微电子技术有限公司 | 一种基于openflow***的NAT流表动态学习及配置方法 |
CN109005120A (zh) * | 2018-10-31 | 2018-12-14 | 新华三技术有限公司 | 一种报文处理方法及网络设备 |
CN109347745A (zh) * | 2018-09-20 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种基于OpenFlow交换机的流表匹配方法和装置 |
CN110336748A (zh) * | 2019-07-10 | 2019-10-15 | 迈普通信技术股份有限公司 | 表项下发方法、装置、数据转发设备及可读存储介质 |
CN111988238A (zh) * | 2020-08-18 | 2020-11-24 | 新华三大数据技术有限公司 | 一种报文转发方法及装置 |
CN112511438A (zh) * | 2020-11-19 | 2021-03-16 | 锐捷网络股份有限公司 | 一种利用流表转发报文的方法、装置及计算机设备 |
CN113645137A (zh) * | 2021-08-02 | 2021-11-12 | 清华大学 | 一种软件定义网络多级流表压缩方法及*** |
CN114374648A (zh) * | 2020-10-14 | 2022-04-19 | 芯启源(南京)半导体科技有限公司 | 一种np芯片结合tcam实现智能网卡的方法 |
CN114448886A (zh) * | 2021-12-28 | 2022-05-06 | 天翼云科技有限公司 | 一种流表的处理方法及装置 |
CN114760237A (zh) * | 2022-03-11 | 2022-07-15 | 深圳市风云实业有限公司 | 一种基于tcam表的多级流表构建方法 |
CN114793199A (zh) * | 2022-03-30 | 2022-07-26 | 新华三信息安全技术有限公司 | 一种报文处理方法、装置及网络设备 |
CN115086392A (zh) * | 2022-06-01 | 2022-09-20 | 珠海高凌信息科技股份有限公司 | 一种基于异构芯片的数据平面和交换机 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110286324A1 (en) * | 2010-05-19 | 2011-11-24 | Elisa Bellagamba | Link Failure Detection and Traffic Redirection in an Openflow Network |
CN102843299A (zh) * | 2012-09-12 | 2012-12-26 | 盛科网络(苏州)有限公司 | 基于TCAM实现Openflow多级流表的方法及*** |
CN103354522A (zh) * | 2013-06-28 | 2013-10-16 | 华为技术有限公司 | 一种多级流表查找方法和装置 |
CN103401783A (zh) * | 2013-07-26 | 2013-11-20 | 盛科网络(苏州)有限公司 | 实现Openflow多级流表的方法及装置 |
-
2014
- 2014-07-15 CN CN201410336330.8A patent/CN104168222B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110286324A1 (en) * | 2010-05-19 | 2011-11-24 | Elisa Bellagamba | Link Failure Detection and Traffic Redirection in an Openflow Network |
CN102843299A (zh) * | 2012-09-12 | 2012-12-26 | 盛科网络(苏州)有限公司 | 基于TCAM实现Openflow多级流表的方法及*** |
CN103354522A (zh) * | 2013-06-28 | 2013-10-16 | 华为技术有限公司 | 一种多级流表查找方法和装置 |
CN103401783A (zh) * | 2013-07-26 | 2013-11-20 | 盛科网络(苏州)有限公司 | 实现Openflow多级流表的方法及装置 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104518969A (zh) * | 2014-12-12 | 2015-04-15 | 北京智谷睿拓技术服务有限公司 | 数据报文处理方法、装置及交换机 |
CN105024990A (zh) * | 2015-03-30 | 2015-11-04 | 清华大学 | 网络安全攻防演练环境部署方法及装置 |
CN105471756B (zh) * | 2015-11-17 | 2018-11-16 | 浪潮(北京)电子信息产业有限公司 | 一种数据包处理方法及装置 |
CN105471756A (zh) * | 2015-11-17 | 2016-04-06 | 浪潮(北京)电子信息产业有限公司 | 一种数据包处理方法及装置 |
CN108270675A (zh) * | 2016-12-30 | 2018-07-10 | 中国电信股份有限公司 | 流表实现控制器、转发设备、***和方法 |
CN108270675B (zh) * | 2016-12-30 | 2020-10-30 | 中国电信股份有限公司 | 流表实现控制器、转发设备、***和方法 |
CN107104896A (zh) * | 2017-05-26 | 2017-08-29 | 南京元融信息技术有限公司 | 高可用高性能灵敏的sdn控制器与sdn交换机架构 |
CN107920024A (zh) * | 2017-10-11 | 2018-04-17 | 中国电子科技集团公司第三十研究所 | 一种sdn控制器动态流表管理方法 |
CN107920024B (zh) * | 2017-10-11 | 2020-08-14 | 中国电子科技集团公司第三十研究所 | 一种sdn控制器动态流表管理方法 |
CN108810182A (zh) * | 2018-04-28 | 2018-11-13 | 深圳市德赛微电子技术有限公司 | 一种基于openflow***的NAT流表动态学习及配置方法 |
CN108810182B (zh) * | 2018-04-28 | 2021-05-18 | 深圳市德赛微电子技术有限公司 | 一种基于openflow***的NAT流表动态学习及配置方法 |
CN109347745A (zh) * | 2018-09-20 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种基于OpenFlow交换机的流表匹配方法和装置 |
CN109005120A (zh) * | 2018-10-31 | 2018-12-14 | 新华三技术有限公司 | 一种报文处理方法及网络设备 |
CN109005120B (zh) * | 2018-10-31 | 2020-11-06 | 新华三技术有限公司 | 一种报文处理方法及网络设备 |
CN110336748A (zh) * | 2019-07-10 | 2019-10-15 | 迈普通信技术股份有限公司 | 表项下发方法、装置、数据转发设备及可读存储介质 |
CN110336748B (zh) * | 2019-07-10 | 2021-08-17 | 迈普通信技术股份有限公司 | 表项下发方法、装置、数据转发设备及可读存储介质 |
CN111988238A (zh) * | 2020-08-18 | 2020-11-24 | 新华三大数据技术有限公司 | 一种报文转发方法及装置 |
CN111988238B (zh) * | 2020-08-18 | 2022-02-22 | 新华三大数据技术有限公司 | 一种报文转发方法及装置 |
CN114374648B (zh) * | 2020-10-14 | 2024-03-19 | 芯启源(南京)半导体科技有限公司 | 一种np芯片结合tcam实现智能网卡的方法 |
CN114374648A (zh) * | 2020-10-14 | 2022-04-19 | 芯启源(南京)半导体科技有限公司 | 一种np芯片结合tcam实现智能网卡的方法 |
CN112511438A (zh) * | 2020-11-19 | 2021-03-16 | 锐捷网络股份有限公司 | 一种利用流表转发报文的方法、装置及计算机设备 |
CN112511438B (zh) * | 2020-11-19 | 2022-12-13 | 锐捷网络股份有限公司 | 一种利用流表转发报文的方法、装置及计算机设备 |
CN113645137A (zh) * | 2021-08-02 | 2021-11-12 | 清华大学 | 一种软件定义网络多级流表压缩方法及*** |
CN114448886A (zh) * | 2021-12-28 | 2022-05-06 | 天翼云科技有限公司 | 一种流表的处理方法及装置 |
CN114760237A (zh) * | 2022-03-11 | 2022-07-15 | 深圳市风云实业有限公司 | 一种基于tcam表的多级流表构建方法 |
CN114760237B (zh) * | 2022-03-11 | 2024-04-19 | 深圳市风云实业有限公司 | 一种基于tcam表的多级流表构建方法 |
CN114793199A (zh) * | 2022-03-30 | 2022-07-26 | 新华三信息安全技术有限公司 | 一种报文处理方法、装置及网络设备 |
CN114793199B (zh) * | 2022-03-30 | 2024-02-09 | 新华三信息安全技术有限公司 | 一种报文处理方法、装置及网络设备 |
CN115086392B (zh) * | 2022-06-01 | 2023-07-07 | 珠海高凌信息科技股份有限公司 | 一种基于异构芯片的数据平面和交换机 |
CN115086392A (zh) * | 2022-06-01 | 2022-09-20 | 珠海高凌信息科技股份有限公司 | 一种基于异构芯片的数据平面和交换机 |
Also Published As
Publication number | Publication date |
---|---|
CN104168222B (zh) | 2018-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104168222A (zh) | 一种报文传输方法和设备 | |
CN103905311B (zh) | 流表匹配方法和装置以及交换机 | |
US10411742B2 (en) | Link aggregation configuration for a node in a software-defined network | |
CN108173691B (zh) | 一种跨设备聚合的方法及装置 | |
CN103929492A (zh) | 业务链负载均衡方法及其装置、*** | |
CN103338152B (zh) | 一种组播报文转发方法和主控板 | |
US10581697B2 (en) | SDN controlled PoE management system | |
US20220045875A1 (en) | Multicast message processing method and apparatus, storage medium and processor | |
US20210044484A1 (en) | Network topology display method and network management device | |
CN104283643A (zh) | 报文限速方法和装置 | |
WO2018036256A1 (zh) | 生成acl表的方法和装置 | |
CN103873464A (zh) | 报文处理的方法及转发设备 | |
US11050661B2 (en) | Creating an aggregation group | |
US9942155B2 (en) | Traffic offloading method, apparatus, and system | |
WO2015106623A1 (zh) | 一种配置、下发流表项的方法及装置 | |
CN104253754A (zh) | 一种acl快速匹配的方法和设备 | |
CN101599910A (zh) | 报文发送的方法及设备 | |
CN105207825A (zh) | 一种网元快速同步***及网元快速同步方法 | |
CN104038566A (zh) | 一种虚拟交换设备地址学习的方法、装置及*** | |
US11374869B2 (en) | Managing bandwidth based on user behavior | |
CN105656794A (zh) | 数据分发方法及装置 | |
WO2023143595A1 (zh) | 处理器之间的通信方法、***、存储介质以及处理器 | |
US9667540B2 (en) | Fiber channel over ethernet (FCoE) frame forwarding system | |
EP3534576B1 (en) | Packet transmission | |
CN107800630A (zh) | 报文处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant |