CN102857491A - 集管理方案 - Google Patents

集管理方案 Download PDF

Info

Publication number
CN102857491A
CN102857491A CN2012102132966A CN201210213296A CN102857491A CN 102857491 A CN102857491 A CN 102857491A CN 2012102132966 A CN2012102132966 A CN 2012102132966A CN 201210213296 A CN201210213296 A CN 201210213296A CN 102857491 A CN102857491 A CN 102857491A
Authority
CN
China
Prior art keywords
rule
group
existing
calculation element
rule group
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
Application number
CN2012102132966A
Other languages
English (en)
Other versions
CN102857491B (zh
Inventor
巴拉穆鲁加恩·拉马拉杰
戈皮·克里希纳
阿南达·萨蒂阿拉亚纳
阿普勒瓦·梅赫塔
克里希纳·桑卡兰
穆尔图扎·S·阿塔尔瓦拉
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.)
Juniper Networks Inc
Original Assignee
Jungle Network
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 Jungle Network filed Critical Jungle Network
Publication of CN102857491A publication Critical patent/CN102857491A/zh
Application granted granted Critical
Publication of CN102857491B publication Critical patent/CN102857491B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及集管理方案,总体上,说明了用于选择性地应用和再使用存储于路由器中的过滤器的技术。在一个示例中,一种方法包括从第一用户接收网络接入请求。该方法还包括选择与包流相关联的候选规则组,其中,该候选规则组包括计算装置上的现有规则组的一个或多个当前使用规则,它们当前安装于计算装置的转发平面内,并由计算装置的转发平面应用到与第二用户相关联的网络流量上。该方法还包括安装新规则组,其包括现有规则组的一个或多个当前使用规则,以及与第一用户关联且并非当前安装于计算装置的转发平面内的一个或多个新规则。该方法还包括将新规则组的各规则应用到与第一用户相关联的网络流量上。

Description

集管理方案
技术领域
本发明涉及计算机网络,更特别地,涉及用于在计算机网络内过滤数据的技术。
背景技术
计算机网络是交换数据并共享资源的互连计算装置的集合。在分组网络如互联网中,计算装置通过将数据分成称为包(packet,分组)的小块而对数据进行通信。包在网络上从源装置到目标装置单独进行路由。目标装置从包中提取数据,并将数据汇编成其原始形式。将数据分成包使源装置仅对可能在传送期间丢失的单个包进行重新发送。
网络内的特定装置,例如,路由器,保持对网络上的路线进行描述的路由信息。每个路线定义了网络上两个位置之间的路径。根据路由信息,路由器可生成转发信息,转发信息由路由器用于通过网络对包流进行中继,更特别地,用于将包流中继到下一中继段(hop)。关于包的转发,来自网络路由器的“下一中继段”一般指沿指定路线的相邻装置。常规路由器通常将转发信息以一个或多个转发表的形式保持。接收到发来的包时,路由器对包中的信息进行检验,以识别包的目标。路由器基于目标根据其中一个转发表对包进行转发。
路由器可进一步通过路由器将包过滤器(filter)应用在包流上。例如,路由器可将包内的报头信息与一组过滤规则(有时称为“条件”)相比较。过滤规则可指定(例如)特定源IP地址、目标IP地址和用于过滤包的其他标准。具体地,路由器识别来自符合过滤规则的包流的包,并根据包符合的过滤规则对包进行关联动作。该动作可包括丢弃包、将包标记为较低优先级、对符合过滤规则的包进行计数等。例如,路由器可通过应用丢弃符合过滤规则的任何包的对于源IP地址的过滤规则,丢弃具有发送拒绝服务(DoS)攻击的装置的源IP地址的包。常规路由器一般根据接收包流的接口,即,以逐接口方式对包流应用过滤器。例如,路由器可对指定接口接收的每个包流应用接口专用过滤器。可替代地,路由器可对所有包流应用一个包过滤器,而不管包来自哪个接口。
发明内容
本发明总体涉及用于选择性地应用和重用存储于路由器内的过滤器的技术。路由器例如可通过多个接口接收来自接入网络的包,并对包应用一个或多个过滤器。每个过滤器可对路由器根据包的内容对包进行分类的方式进行定义。在某些示例中,多个过滤器可应用在包的流(一系列包)上。在某些环境中,路由器可对来自几百万用户的流量进行管理和路由。在这些示例中,每个用户可与过滤器组(过滤器集)关联。根据提供给不同用户的不同服务,例如,带宽、服务质量等,不同过滤器组可应用给来自不同用户的包。由于用户数量增加,路由器必须管理和应用的过滤器的数量也可能会大大增加。由于硬件中仅有有限量的过滤资源可用,实施各个用户流量所需的过滤器并不实际。为了降低存储和处理需求,本发明的各个方面提供了共享过滤器组,以将冗余过滤器存储最小化的技术。例如,如果另一个用户使用的硬件中存在相同过滤器组,路由器可不存储用户所需的过滤器组。可替代地,路由器可重用现有过滤器组,如果需要,甚至可向现有组内添加额外过滤器。这样,路由器存储的过滤器的数量可通过共享过滤器而减少。另外,本发明的技术提供了利用多个数据结构管理共享过滤器超集和子集之间关系的集管理方案。本发明的这种技术可使路由器快速识别过滤器组,同时降低了路由器的处理和存储需求。
在一个示例中,一种方法包括由计算装置从第一用户接收网络接入请求。该方法还包括由计算装置选择与包流相关联的候选规则组,其中,该候选规则组包括计算装置上的现有规则组的一个或多个当前使用规则,该一个或多个当前使用规则当前安装于计算装置的转发平面内,并由计算装置的转发平面应用到与第二用户相关联的网络流量上。该方法还包括由计算装置安装新规则组,该新规则组包括现有规则组的一个或多个当前使用规则,以及与第一用户相关联且并非当前安装于计算装置的转发平面内的一个或多个新规则。该方法还包括由计算装置将新规则组的各规则应用到与第一用户相关联的网络流量上。
在另一个示例中,一种网络装置包括一个或多个网络接口,用于从第一用户接收网络接入请求。该网络装置还包括检测第一包流的管理模块,其中管理模块选择与包流相关联的候选规则组,其中,候选规则组包括计算装置上的现有规则组的一个或多个当前使用规则,该一个或多个当前使用规则当前安装于计算装置的转发平面内,并由计算装置的转发平面应用到与第二用户相关联的网络流量上。管理模块还安装新规则组,该新规则组包括现有规则组的一个或多个当前使用规则,以及与第一用户相关联且并非当前安装于计算装置的转发平面内的一个或多个新规则。管理模块还将新规则组的各规则应用到与第一用户相关联的网络流量上。
下文中的附图和说明对本发明的一个或多个实施方式的细节进行了说明。根据说明和附图以及权利要求,本发明的其他特征、目的和优点得以明确。
附图说明
图1是示出了根据本发明的技术的用户装置的一个示例的框图,该用户装置通过无线接入网络和核心网络连接至外部网络。
图2是示出了根据本发明一个或多个技术配置的示例路由器的框图。
图3是示出了根据本发明一个或多个技术配置的示例包转发引擎的框图。
图4是示出了根据本发明的技术在包转发引擎中创建规则组的示例方法的流程图。
图5是示出了根据本发明的技术查询现有规则组以选择候选规则组的示例方法的流程图。
图6是示出了根据本发明的技术确定现有规则组是否优于候选规则组的示例方法的流程图。
图7是示出了根据本发明的技术从包转发引擎中编程的现有规则组中移除规则的示例方法的流程图。
图8是示出了根据本发明的技术移除包转发引擎中编程的现有规则组的示例方法的流程图。
具体实施方式
图1是用户装置2的示例的框图,该用户装置2通过无线接入网络6和核心网络24连接至外部分组网络22(例如,互联网)。如图1所示,用户装置2可以是任何计算装置。例如,用户装置2可以是具有蜂窝或其他射频通信能力的便携式计算装置(例如,手机/上网本/笔记本电脑/平板电脑装置)或台式计算机。用户装置2可利用用户装置2中包括的无线通信硬件,诸如符合3G、4G或LTE无线标准的部件,通过无线接入网络6连接至e节点4。
e节点4包括硬件,诸如射频发射器,其与用户装置2中包括的无线通信硬件直接通信。射频发射器有助于数据从用户装置2到e节点4通信。在某些示例中,e节点4还包括无线网络控制器。e节点4的无线网络控制器提供无线接入网络6的无线资源管理。无线资源管理可包括同信道(co-channel)干扰、管理发射功率、信道分配、数据率、交接标准、调制方案、错误编码方案的系统水平控制。这样,无线网络控制器可有效地利用无线网络6的有限的无线频谱资源和基础架构。
e节点4为用户装置2提供无线接入网络6的接入。无线接入网络6用作使用户装置2将数据传送给核心网络24的接入网络。用户装置2通过e节点4提供的无线信道与无线网络6连接。用户装置2进一步利用各种已知的多路复用方案,诸如频分复用(FDM)、时分复用(TDM)、码分复用(CDM)和空分复用(SDM)通过无线网络6进行数据通信。从用户装置2在e节点4接收的数据进一步传送给核心网络24。
核心网络24包括能传送数据的任何类型的网络,诸如在一个或多个二层(L2)网络(例如,以太网或多包标签交换(MPLS)网络)上运行的三层(L3)包交换网络,可用于从无线接入网络6向诸如以太网22的网络传送数据。在某些示例中,核心网络24由代表任何通信装置的网络单元,诸如交换机、路由器、链路和能传送数据的其他装置组成。核心网络24可对从用户装置2传送给诸如互联网的其他外部网络22的数据的接入和通信进行管理。核心网络24建立和运行载体,以将用户流量以“包”的形式传送。一般来说,载体为核心网络24中的一组网络资源和数据传功能,以在两个网络实体之间传送用户流量。载体可包括两个网络装置之间的路径、逻辑连接或物理或无线连接。载体可包括(例如)演进分组系统(EPS)载体。
载体的建立和管理可参见“3GPP TS 23.401-演进通用陆地无线接入网络的通用分组无线业务(GPRS)增强”,第10.0.0版,第三代合作伙伴项目,技术规范组服务和系统方面,2010年6月(“3GPP TS 23.401-GeneralPacket Radio Service(GPRS)enhancements for Evolved Universal TerrestrialRadio Access Network,”version 10.0.0,3rd Generation Partnership Project,Technical Specification Group Services and System Aspects,June 2010),以及“3GPP TS 36.300-演进通用陆地无线接入(E-UTRA)和演进通用陆地无线接入网络(E-UTRAN)综述”,第10版,第三代合作伙伴项目,技术规范组无线接入网络,2010(“3GPP TS 36.300-Evolved Universal TerrestrialRadio Access(E-UTRA)and Evolved Universal Terrestrial Radio AccessNetwork Evolved Universal Terrestrial Radio Access Network(E-UTRAN)Overall Description,”Release 10,3rd Generation Partnership Project,Technical Specification Group Radio Access Network,2010)。
核心网络24的部件可提供各种服务,例如,分组路由、服务质量、用户装置验证、计费/收费和策略实施。核心网络24的部件包括移动管理实体(MME)8、家用签约者服务器(HSS)10、服务网关12、分组网关14、动态主机配置协议(DHCP)服务器16和规则服务器18。核心网络24的部件可以硬件和/或软件的任何组合实现,并可通过核心网络24互连。
如图1所示,MME 8从e节点4接收数据通信,MME 8负责执行有助于用户装置2和核心网络24之间的连通性的各种功能。例如,MME 8一般对与无线接入网络6连接的各个用户装置分配唯一标识符。唯一标识符的示例可包括隧道标识符或互联网协议(IP)地址。MME 8还负责在核心网络24上对用户装置进行验证。例如,MME 8可从用户装置2接收一个或多个验证凭证。MME 8可通过查询HSS 10或其他AAA装置检验验证凭证是否真实。HSS 10包括集中式数据库,集中式数据库包括含有验证数据的签约和用户相关数据。HSS 10还包括用于移动性管理和呼叫和会话建立支持的数据。如果验证凭证不真实,MME 8可拒绝用户装置2接入外部网络22。
如图1所示,核心网络24的部件还可以包括服务网关12。在某些示例中,服务网关12对接收自用户装置2的用户数据包进行路由和转发。当用户装置2从一个e节点4转换为另一个时,服务网关12还可作为移动锚点。例如,随着用户离开包括e节点4的第一位置,靠近包括不同的第二e节点的第二位置,用户装置2可将连接从e节点4切换为第二e节点。这样,用户装置2可在不同无线接入网络之间无缝切换,而不会中断用户装置会话。虽然用户装置2可在无线接入网络之间切换,但服务网关12却通过各种不同e节点对接收自用户装置2的数据通信进行管理。
核心网络24还可以包括分组网关14。分组网关14为从用户装置2向外部网络22的数据通信提供连通性。分组网关14可提供各种功能,包括策略实施、对每个用户进行包过滤、以及包筛选。为了提供这种功能,分组网关14可进一步与核心网络24的其他部件,诸如DHCP服务器16和规则服务器18通信。DHCP服务器16可以是用户装置2自动配置互联网协议(IP)地址。
在某些示例中,用户装置2与核心网络24连接,为无线装置建立核心网络会话和默认载体以传送用户流量,作为附接程序的一部分。在某些示例中,用户装置2可向服务网关12发送网络接入请求。网络接入请求可以是包括用户装置2的装置标识符或识别用户的凭证(诸如用户姓名或其他唯一标识符)的数据。网络接入请求可使服务网关12通过核心网络会话将用户装置2接入核心网络24和外部网络22。核心网络会话是核心网络24与用户装置2之间的关联,可由用户装置2的地址和外部网络22的接入点名称(APN)的组合进行识别。核心网络会话可使用户流量在用户装置2与和外部网络22连接的目标装置之间传送。除建立默认载体之外,附接程序还由核心网络24引发在分组网关14与用户装置2之间建立一个或多个专用载体,以传送用户流量。专用载体根据不同组的服务质量(QoS)参数工作,因此对用户装置2进行的各种服务的包流进行QoS区分。例如,各种专用载体可提供不同的保证比特率(GBR载体)(或可不提供保证比特率)、最大比特率(MBR)、优先级、包延迟预算、误包丢失率和分配/保持优先级(ARP)特性。当特定载体的QoS特性符合服务会话的要求时,该载体可以为核心网络会话的多个服务会话传送包流。在基于IP的内容接入网络4中,核心网络会话包括IP核心网络会话。
分组网关14对核心网络4实现策略和计费控制(PCC)功能。操作者和/或外部实体,诸如策略和计费规则功能实体,例如,规则服务器18,为分组网关14规定一个或多个PCC规则,每个PCC规则指定一组信息,使得检测服务数据流,并提供策略控制和/或计费控制参数。PCC规则可包括一个或多个过滤器。分组网关14根据PCC规则实施基于服务流的策略和计费控制。关于策略和计费控制可参见“3GPP TS 23.203-策略和计费控制架构(第10版)”,第10.1.0版,第三代合作伙伴项目,技术规范组服务和系统方面,2010年9月(“3GPP TS 23.203-Policy and ChargingControl Architecture(Release 10),”Version 10.1.0,3rd Generation PartnershipProject,Technical Specification Group Services and System Aspects,September 2010)。
PCC规则包括唯一识别会话内的规则的规则标识符、服务数据流检测信息、计费信息和/或策略控制信息。一般来说,会话可包括存在于用户装置2和分组网关14之间的隧道。策略控制信息为选通控制(即,允许/拒绝)、QoS控制和QoS信令指定了参数。服务数据流检测信息包括优先级值和服务数据流模板,服务数据流模板指定了流量映射信息,以识别服务会话的包流。流量映射信息可包括一个或多个包过滤器,该包过滤器包括根据例如由源地址、目标地址、源端口、目标端口和IP包报头中指定的传送协议组成的IP五元组对包流进行表征的参数、其他包报头信息和/或从深度包检测(DPI)中获得的信息。通过应用特定PCC规则的服务数据流模板而检测的这组包称为服务数据流。服务数据流可包括用于多个服务会话的包。服务数据流模板的包过滤器在本文中还可称为服务数据流过滤器。
分组网关14在绑定(binding)过程中将服务数据流(扩展后还有相应的PCC规则)与用于核心网络会话的特定载体相关联,以确保服务数据流内的包流从核心网络24接收适当QoS。对于指定PCC规则,分组网关14分析其中的策略控制信息,以确定用于相关核心网络会话的现有载体是否足以提供必要的QoS。如果否,则分组网关14开始建立新的合适载体。分组网关14在一个或多个服务数据流与和用于服务数据流的相应PCC规则指定的QoS匹配的载体之间建立绑定(或“约束”)。因此,为提供特定QoS方案而建立的特定载体可传送一个或多个PCC规则匹配的包流。
分组网关14评估相应PCC规则的服务数据流模板,以应用给穿过核心网络24边界的包。在包评估期间,为PCC规则匹配服务数据流模板中的包过滤器使分组网关14将包映射到PCC规则绑定的载体上。
根据本发明的技术,为了确保核心网络24上在下行和上行方向的指定服务水平,分组网关14应用这样的包过滤器,该包过滤器包括与流量模板流量映射信息中相同的流量映射信息。包过滤器可包括在存储于规则服务器18上的规则中。规则服务器18可包括与核心网络24的用户相关联的规则。规则可包括可应用给包流的一个或多个过滤器或过滤器组。在一个示例中,包流可描述为用户流量。在某些示例中,应用给载体时的一组过滤器可称为流量流模板(TFT)。可以为不同用户和/或不同包流定义不同策略。例如,可以为各种类型的签约者服务定义不同策略。在某些示例中,可应用过滤器来提供更高服务质量,用户可以为其支付更高签约者费用。在其他示例中,过滤器可用于对不同类型的包流,诸如多媒体、数据或声音增强家长控制或提供优先级。
更一般来说,在某些示例中,分组网关14识别与不同用户相关联的包,并根据与用户相关联的过滤器以不同方式处理这些包。例如,分组网关14可检验包流的包报头。在一个示例中,分组网关14可检验包的源端口和目标端口、协议、源IP地址和目标IP地址,例如,五元组。根据报头内容和分组网关14应用的过滤器,包可被丢弃、重优先化、修改或允许继续至报头中指定的目标。图2和图3进一步对分组网关14的功能进行了说明。
如图1所示,用户装置2可发送和接收包括包流26的数据包。在一个示例中,分组网关14可初始确定包流26来源于用户装置2,且用户装置2与特定用户相关联。因此,分组网关14可从与用户相关联的规则服务器18中选择一个或多个策略。这一个或多个策略可包括一个或多个过滤器。分组网关14可将这组过滤器应用给包流26。在某些示例中,由于签约者数量增加至几百万,分组网关14的大量资源用于存储和选择用于各个用户的过滤器。本发明的方面提供了用于在分组网关14中共享过滤器的技术。在这些示例中,包括过滤器的规则可进一步分组为规则组。可在分组网关14上保持规则组的数据存储器,使被请求规则组的精确集(exact set,恰集)、超集和子集可在签约者(用户)之间共享。通过进一步在分组网关14上保持数据结构,诸如位图,以识别存储于可搜索数据库内的精确集或子集的请求,分组网关14的过滤器选择时间和存储要求可降低。当配置分组网关14的转发平面以支持新连接的移动装置(例如,用户装置2)时,本文的技术可重用已安装在转发平面内的现有过滤器,用于为所连接的用户处理包流,以将过滤器的重复存储最小化,因此改善了存储效率和资源消耗。
图2是根据本发明一个或多个技术配置的示例路由器40的框图。为了进行说明,下文可以图1的示例所示的分组网关14为背景对路由器40进行描述。例如,路由器40可代表图1的分组网关14的一个示例性实施方式。在该例示性实施例中,路由器40包括控制单元42和接口卡66A–66N(统称为“IFC 66”)。
路由器20一般包括机架(为了简化说明,图2的示例中未示出),机架具有用于容纳一组卡的多个缝隙,这组卡包括IFC 66和服务物理接口卡(服务PIC),诸如服务PIC 52。每个卡可插入机架的对应缝隙中,以使卡通过总线、背板或其他电通信机构与控制单元42可通信地耦接。IFC66通过入站(inbound)网络链路78A–78N(统称为“入站链路78”)和出站网络链路80A–80N(统称为“出站链路80”)发送和接收包流或网络流量。入站链路78和出站链路80形成IFC的共用物理通信介质,IFC以全双工模式工作。即,在某些示例中,各个IFC 66与可基本同时发送和接收数据的各个通信介质耦接。在其他示例中,入站链路78和出站链路80形成各个IFC 66的单独物理介质。
控制单元42可包括执行存储在诸如存储装置(例如,磁盘驱动器或光驱)的计算机可读存储介质(图2中未示出)中的软件指令(诸如用于定义软件或计算机程序的软件指令)的一个或多个处理器(图2中未示出),或者存储器(例如,闪存、随机存取存储器(RAM))或任何其他类型的易失性或非易失性存储器,其存储指令使可编程处理器执行本文所述的技术。可替代地,控制单元42可包括专用硬件,诸如一个或多个集成电路、一个或多个专用集成电路(ASIC)、一个或多个专用处理器(ASSP)、一个或多个现场可编程门阵列(FPGA),或一个或多个前述专用硬件示例的任何组合,以用于实施本文的技术。
控制单元42的路由引擎44可以提供路由器40的路由功能。在这个方面,路由引擎44可代表实现路由协议46的控制单元42的硬件或硬件和软件的组合。路由协议46例如可包括中间系统到中间系统(IS-IS)、开放最短路径优先(OSPF)、路由信息协议(RIP)、边界网关协议(BGP)或其他路由协议。通过执行路由协议46,路由引擎44识别网络上的现有路线,并确定网络上的新路线。路由引擎44将路由信息存储在路由信息库(RIB)48内。路由信息可包括定义网络(诸如图1所示的核心网络24)的拓扑结构的信息。路由引擎44可解析路由信息定义的拓扑结构,以选择或确定核心网络24上的一个或多个路线。
路由引擎44随后可根据这些路线将包转发引擎(PFE)60更新为转发信息库(FIB)82内存储有转发信息的PFE 60。转发信息将键控信息,例如,IP地址或IP前缀或标签与下一中继段(例如,相邻路由器)相关联,最终与耦接至出站链路80的路由器40的输出接口相关联。转发包时,数据平面34对提取自包报头的密钥进行处理,以遍历存储于FIB 82内的转发信息并选择转发包至的下一中继段。根据所选下一中继段,PFE 60识别耦接至下一中继段的一组一个或多个出站链路80。
在通过一个或多个出站链路80转发包之前,PFE 60可对包应用一个或多个过滤器。如图2所示,PFE 60包括流量流模板(TFT)管理器62(本文还称为“管理模块”)、转发信息库82和用于应用其中安装的过滤器84的转发专用集成电路(ASIC)提供的转发平面81。规则84包括为一个或多个不同网络地址前缀定义的一个或多个过滤器。在某些示例中,过滤器指定一个或多个条件和将在与网络地址前缀匹配的包上进行的一组动作。动作可包括为包添加标签、移除或交换包上的标签、检查包是否携带病毒、对包进行深度包检测、对包进行服务质量处理、阻挡或丢弃包、或其他服务中的一个或多个。在某些示例中,一组过滤器可称为流量流模板。
PFE 60根据转发信息库(FIB)82内指定的转发结构对PFE 60的转发(ASIC)64进行编程,其将网络目标与特定下一中继段和相应的接口端口相关联。转发ASIC 64可包括一个或多个专用包转发集成电路。在某些示例中,转发ASIC 64由TFT管理器62用接收自服务管理守护进程54的包含一个或多个过滤器的消息进行编程。转发ASIC 64可根据包流的特性,诸如五元组信息,对包流中的包应用过滤器。
如图2所示,PFE 60还包括TFT管理器62。TFT管理器62执行各种功能,包括策略选择/实施和包流检测。例如,在进行策略选择/实施的情况下,源装置70可通过路由器40向和从目标装置72进行数据通信。在某些示例中,源装置70可代表图1所示的移动用户装置2,并且目标装置72可代表图1的计算装置或外部网络22上的资源。
当将源装置70分配给路由器40(即,与路由器“附接”)时,建立核心网络会话和默认载体,以对无线装置传送用户流量,作为附接程序的一部分。如图1所示,核心网络会话为包括路由器40的核心网络与(例如)可由唯一标识符(例如,源装置70地址和用于外部网络的接入点名称(APN)的组合)识别的源装置70之间的关联。唯一标识符可称为签约者标识符。除建立默认载体之外,附接程序还可通过核心网络引发在路由器40与源装置70之间建立一个或多个专用载体,以传送用户流量。
作为附接程序的一部分,PFE 60初始从核心网络24的一个或多个部件接收包括源装置70的签约者标识符的控制信息。在某些示例中,控制信息在接收自用户装置的控制包的报头信息中接收。在其他示例中,控制信息可接收自图1所示的MME 8。PFE 60将控制信息发送至在服务物理接口卡(服务PIC)512上运行的服务管理守护进程(SMD)54。SMD 54选择由控制信息(例如,签约者标识符)识别的过滤器,该控制信息可在消息中发送给TFT管理器62。在某些示例中,一个或多个过滤器可分组为一个规则,并且一个或多个规则可进一步分组为一个规则组。TFT管理器62可利用消息信息根据所选过滤器修改转发ASCI 64,从而为与签约者相关联的包流安装过滤器并形成转发路径。
在某些示例中,当选择与签约者标识符相关联的过滤器时,SMD 54可从规则服务器18请求规则,规则服务器18可以是策略和计费规则功能实体。例如,规则服务器18可保持规则到签约者标识符的映射。例如,特定签约者标识符可与指定特定计费要求、服务质量、截听信息或将根据特定标准进行的其他动作的一个或多个PCC规则(下文也称为“规则”)相关联。在一个示例中,规则包括多至16个过滤器、与单个过滤器对应的散列值、以及规则中包括的所有过滤器的规则散列值。规则中包括的所有过滤器的规则散列值可以是唯一规则标识符。SMD 54选择与签约者标识符对应的一个或多个规则之后,SMD 54可生成包括一个或多个规则和散列值的消息,该消息发送给TFT管理器62。
如图2所示,TFT管理器62从SMD 54接收包括规则信息的消息。在某些示例中,PFE 60将规则存储在分组数据存储器106内,如图3所示。接收到消息后,TFT管理器62可选择规则84中包括的一个或多个过滤器和根据过滤器在PFE 60程序的处理器内执行转发ASIC的微内核。这样,图2所示的附接程序将PFE 60配置为规定转发平面81,以提供与特定签约者标识符相关联的规则定义的服务水平。
如上文根据图1,路由器40(例如,图1的分组网关14)可以为几百万个签约者提供包流。由于签约者数量增加,PFE 60的存储资源可由各个签约者的硬件中编程的过滤器消耗。在某些示例中,存储资源可包括高速存储器,诸如缩短等待时间动态随机存取存储器(RLDRAM)或三态内容寻址存储器(TCAM)。这种高速存储器的存储能力可能有限,在某些情况下也较为昂贵。如图3所进一步描述的本发明的技术可重用PFE 60中的现有过滤器,即,已安装在当前连接用户的现有包流的转发平面81内的过滤器,以将新连接用户的过滤器的重复存储最小化,因此,提高了存储效率。
图3是示出了根据本发明一个或多个技术配置的示例PFE 90的框图,该PFE 90包括规则管理器132、TFT管理器96和转发ASIC 108。如图3所示,PFE 90可以是图2所示的PFE 60。PFE 90还包括TFT管理器96、规则管理器132和转发ASIC 108。图3还包括与PFE 90连接的服务PIC114。服务PIC 114包括SMD 116。
作为图2所示的附接程序的一部分,服务PIC 114上执行的SMD 116例如从PFE 90或路由器内的另一个PFE或控制单元接收签约者标识符。在附接程序中,PFE 90对包括签约者的一个或多个包的包流进行检测。接收到签约者标识符之后,SMD 116例如从图2所示的规则服务器18中选择与签约者标识符相关联的一个或多个规则。在某些示例中,签约者标识符可与一组规则关联。SMD 116生成包括与签约者标识符关联的所选规则(例如,规则组110)的消息,并将消息发送给PFE 90。
如图3所示,PFE 90包括规则管理器132、TFT管理器96的展开图和转发ASIC 108。为了实现减少PFE 90中的规则存储冗余的本发明的技术,TFT管理器96实现包括计数存储器100、位矩阵102、组索引表104和组数据存储器106的数据结构。位矩阵102可实现为N×N多维阵列,例如,图3所示的2×2阵列。位矩阵102用于跟踪各个规则组中包括的规则。例如,图3所示的位矩阵102表示,组G1包括规则R1、R3和R4,对于组中存在的规则用‘1’值表示,对于没有包括在组中的规则用‘0’值表示。在某些示例中,位矩阵102的一个或多个尺寸可动态调整,以适应组数据存储器106中存储的规则组的数量变化。
本发明的技术使用位矩阵102跟踪PFE 90的硬件(例如,三态内容可寻址存储器(TCAM))中当前存储的规则组。通过跟踪PFE 90的硬件中存储的规则,可重用规则组,从而限制这些规则的冗余存储。使用位矩阵102的本发明的技术可进一步实现性能的提高,因为TFT管理器96可快速搜索位矩阵102,以识别规则组。例如,TFT管理器96可选择与签约者的包流相关联的候选规则组。候选规则组可包括当前安装在路由器40的转发平面内的路由器40的现有规则组的一个或多个当前使用规则。路由器40的转发平面可包括一个或多个部件,诸如PFE 90,其进行操作,以控制是否和/或如何将到达入站接口的包路由到下一个目标。在某些示例中,现有规则组的规则由计算装置的转发平面应用给第二包流。TFT管理器96可在转发ASIC 64中安装新规则组。新规则组可包括现有规则组的一个或多个当前使用规则,以及与第一包流相关联且并非当前安装于计算装置的转发平面内的一个或多个新规则。安装新规则组的规则之后,转发ASIC 64可对第一包流应用新规则组的各规则。进一步细节如下文所述。
如图3所示,TFT管理器96包括组索引表104。TFT管理器96使用组索引表104识别与规则组对应的位矩阵102中的索引。例如,位矩阵102第0列,例如,索引0,与组G1对应。组索引表104将组G1的组索引存储在组索引表104的索引0中。组G1的组索引可包括组G1中包括的规则的散列值,或可包括适用于识别组G1的任何其他标识符。应用本文进一步所述的技术的TFT管理器96使用存储于组索引表104中的组索引,以请求存储于组数据存储器106中的规则组,并管理位矩阵102。
如图3所示,TFT管理器96还包括规则管理器132。规则管理器132存储接收自SMD 116的规则的散列值和与规则散列值对应的位矩阵102中的索引之间的关联。例如,作为移动用户装置的附接程序的一部分,SMD116可发送指定规则R2和R4的规则组110,以应用于与用户装置相关联的包流。规则R2和R4可分别进一步由过滤器组成。在发送规则R2和R4之前,SMD 116生成各个规则的散列值,以唯一识别各个规则。SMD 116进一步根据规则组110中包括的规则R2和R4生成规则组110的散列值。当TFT管理器96从SMD 116接收规则组110时,TFT管理器96进一步接收规则组110、规则R2和R4的散列值。TFT管理器96使用散列值识别和选择在位矩阵102中跟踪的规则。在一个示例中,规则管理器132存储规则R2的散列值和与R2对应的位矩阵102的索引(例如,与位矩阵102的行索引1对应的索引值1)之间的关联。这样,TFT管理器96可识别和管理位矩阵102的规则索引。规则管理器132可实现为阵列、图或任何其他合适的数据结构。
如图3所示,TFT管理器96还包括计数存储器100。由于本发明的技术使TFT管理器96共享规则,以减少规则存储冗余,所以TFT管理器96还包括计数存储器100,以确定包括特定规则的组的数量。如图3所示,计数存储器100可实现为阵列,使计数存储器100的各个索引与一个规则对应。存储于各个索引的值与引用该规则的多个规则组对应。对于特定规则的计数存储器100的索引与对于该规则的位矩阵102的索引匹配。例如,规则R2与计数存储器100的索引1和位矩阵102的行索引1相关联。这样,TFT管理器96可有效确定引用特定规则的组的数量,如图4所示。例如,规则R2包括在规则组G2和G3中,因此计数存储器100将值2存储在与规则R2对应的索引1内。
如图3所示,TFT管理器96还包括组数据存储器106。组数据存储器106对代表不同规则分组的一个或多个规则组对象,例如,规则组134进行存储和检索。各个规则组可由组索引在组数据存储器106中唯一识别。各个规则组还可以包括包含规则组的一个或多个规则,例如,规则124。在某些示例中,组数据存储器106实现为组对象的链表。在这些示例中,规则组根据组的尺寸,例如,规则组中规则的数量按降序排列。根据基数(集的容量)按降序排列规则组使得TFT管理器96快速识别可重用于采用图4至图8所示的示例方法附接新用户装置的当前安装规则的规则组。尽管在上文中描述为链表,但组数据存储器106也可实现为任何合适的数据结构。
如图3所示,规则组134包括规则列表118、引用计数120和集索引122。规则组134可实现为对象。规则组134还可以包括表示规则的可用空间的值和存储规则组134的硬件专用结构的指针。在某些示例中,规则列表118为规则对象,例如规则124的链表。规则列表118可包括包含规则组134的规则的规则对象的指针。引用计数120是表示组134的引用次数的值。例如,SMD 116可从PFE 90接收三个唯一签约者标识符,其中各个唯一签约者标识符都可与包括规则R2和R4的一组规则相关联。在该示例中,SMD 116可向TFT管理器96发送三个规则组,各规则组都包括规则R2和R4。采用下文中所述的技术,对于第一规则组,TFT管理器96可将组134的单一实例存储在组数据存储器106内。对于接收到的第二和第三规则组,TFT管理器96利用引用计数120跟踪从SMD 116发送到TFT96的后续规则组的数量,后续规则组包括组134中包括的规则的一部分、所有或超集。这样,规则组可在组数据存储器106中存储一次,并由TFT管理器96重用,以提出使用相同规则组的后续请求。本文将在图4至图8的一个或多个示例中对引用计数120进行进一步说明。规则组134还可包括自由空间计数器(未示出),自由空间计数器表示组134中可用于存储额外规则的自由空间的量。如下文的示例所述,TFT管理器96可向规则组添加一个或多个规则,但可使用自由空间计数器预先确定规则组是否包括用于存储规则的可用自由空间。
规则组134的规则列表118指定了一个或多个规则,其一个示例更详细地示出为规则124。在某些示例中,规则124为表示规则的对象。规则124还包括规则标识符126、引用计数128和规则索引130。在某些示例中,规则124还包括存储规则124和规则124中包括的过滤器的硬件专用结构的指针。规则126是唯一识别规则126的值。在某些示例中,规则标识符126为规则124的散列值。规则索引130为表示与规则124对应的位矩阵102中的索引、因此表示组134的规则列表118内的规则124的位置的值。例如,位矩阵102的行索引1与规则R2对应。因此,规则124的规则索引130包括值1。规则索引1进一步表示,规则124处于规则列表118中的第二位。
规则124还包括引用计数128,在某些示例中,引用计数128为表示指定组(例如组134)内规则124的引用次数的值。例如,SMD 116可接收两个唯一签约者标识符。各个唯一签约者标识符可与包括规则R2和R4的一组规则相关联。SMD 116可将均包括R2和R4的两个规则组发送给TFT管理器96。采用下文所述的技术,TFT管理器96可保留组数据存储器106内存储的规则124的单个实例,并利用引用计数128跟踪从SMD 116发送到TFT 96、包括规则124的后续规则组的数量。本文将在图4至图8的一个或多个示例中对引用计数128进行进一步说明。
图4是示出了根据本发明的技术在PFE 90中创建规则组的示例方法的流程图。图4所示的示例方法可由图3所示的TFT管理器96进行。采用图4的示例方法,TFT管理器96可通过在PFE 90中重用规则组、减少创建新组而减少规则存储冗余。在本方法的某些示例中,TFT管理器96从SMD 116在消息中接收规则组,该消息请求TFT管理器96将规则组的规则编程到转发ASIC 108中。采用示例方法,TFT管理器96返回由PFE90存储的、包括SMD 116发送的被请求规则的规则组的组索引。示例方法进一步返回表示在由PFE 90存储的规则组中各个规则的位置的规则位图。在某些示例中,PFE 90的微内核使用组索引和规则位图将规则编程到转发ASIC 108中。下文将对该示例方法进行更详细的说明。
最初,TFT管理器96从SMD 116接收被请求规则组和请求,以通过被请求规则组的规则对转发ASIC 108编程(150)。为了消除这些规则的冗余存储,TFT管理器96执行图4的方法,以确定组数据存储器106是否包括用于对转发ASIC 108进行编程、满足请求的规则组。这样,存储于组数据存储器106内的规则可被共享和重用。
为了确定组数据存储器106是否包括满足请求的规则组,TFT管理器96检查计数存储器100,以确定组数据存储器106中的任何现有规则组是否包括被请求规则组的一个或多个规则(152)。如果组数据存储器106中的现有规则组中不包括被请求规则组中的任何规则,则所有被请求规则为新的(154)。因此,TFT管理器96生成新规则组(158)。
生成新组时,TFT管理器96对新规则组分配唯一组索引,并进一步将该新规则组存储在组数据存储器106内。组索引可以是规则组中包括的所有规则的散列值。TFT管理器96还对包括计数存储器100、位矩阵102和组索引表104的TFT管理器96的数据结构进行更新(182)。例如,TFT管理器96将每个新规则的规则标识符,例如散列值,与计数存储器100的索引相关联。TFT管理器96进一步将与新规则对应的计数存储器100的各个单元设为值1,以表示新组引用各个规则。为了更新位矩阵102,TFT管理器96还将新组索引与位矩阵102的未用列相关联。TFT管理器96进一步将位矩阵102的未用行索引与各个新规则的规则标识符相关联。规则管理器132存储各个新规则标识符和与新规则对应的位矩阵102的行索引之间的关联。
生成新规则组时,TFT管理器96进一步将位矩阵102中的新组和新规则的各行/列交叉点设为值1,以表示各个规则都包括在新组中。TFT管理器96进一步将新组的唯一组索引存储在组索引表104中。组索引表104内唯一组索引的位置与位矩阵102中组索引的列位置对应。
在某些示例中,TFT管理器96确定接收自SMD 116的规则组中的一个或多个被请求规则并非新规则,例如,一个或多个被请求规则已经包括在组数据存储器106的现有规则组中(156)。如上所述,TFT管理器96检查计数存储器100,以确定一个或多个被请求规则是否包括在现有规则组中。如果一个或多个被请求规则包括在现有规则组中,TFT管理器96查询现有规则组以选择候选规则组(160)。候选规则组为存储在组数据存储器106中的现有规则组,包括现有规则组的至少一个规则。查询现有规则组以选择候选规则组的示例方法的进一步细节如图6所示。
在选择候选规则组后,TFT管理器96确定候选规则组是否为被请求规则的精确集(162)。规则的精确集为这样一个现有规则组,其中现有规则与被请求规则精确匹配,且现有规则以与被请求规则相同的顺序存储。如果候选规则组为精确集(164),则TFT管理器96更新计数存储器100。TFT管理器96通过将与被请求规则对应的各个值增加1而更新计数存储器100。将各个被请求规则增加1表示,每个现有规则已被另一个规则组,例如被请求规则组所引用。
在某些示例中,TFT管理器96确定候选规则组并非被请求规则的精确集(166)。在这些示例中,TFT管理器96确定所选候选规则组是否为被请求规则的超集。超集包括与所有被请求规则匹配的现有规则,并且现有规则以被请求规则的顺序存储。超集还包括没有包括在被请求规则组中的至少一个额外现有规则。例如,被请求规则组可包括规则R2和R4。作为被请求规则组的超集的候选规则组可包括R2、R3和R4。如果TFT管理器96确定候选规则组为被请求规则组的超集(178),则TFT管理器96生成规则位图(180)。规则位图显示候选组内各个被请求规则的位置。例如,在包括规则R2、R3和R4的规则组的当前示例中,规则位图可包括值“101”,以表示PFE 90的微内核会将被请求规则R2和R4而不是规则R3编程到转发ASIC 108中。这样,候选规则组的现有规则可重用于被请求规则组,而不是在PFE 90的硬件中创建新规则组。TFT管理器96随后更新TFT管理器数据结构,以反映超集的使用情况(182)。例如,TFT管理器96增加存储于组数据存储器106中的现有规则组的引用计数值,以表示现有规则组由被请求规则组所引用。TFT管理器96进一步增加规则组中包括的各个规则的引用计数值,以表示各个规则都由被请求规则组引用。
在某些情况下,TFT管理器96可确定候选规则组并非被请求规则的超集(170)。在这些示例中,TFT管理器96确定候选规则组是否为被请求规则的子集(170)。子集包括与被请求规则匹配的至少一个规则。子集可包括数量大于或小于被请求规则组中的规则数量的规则。在任何情况下,如果TFT管理器96确定候选规则组为被请求规则组的子集(172),则TFT管理器96向当前包括候选规则组的现有规则组添加被请求规则组的非匹配规则。在某些示例中,TFT管理器96可在向现有规则组端部的索引添加非匹配规则之前,向现有规则组开头或中间的索引添加非匹配规则。TFT管理器96还在向现有规则组添加非匹配被请求规则之后生成规则位图(180)。规则位图表示候选组内各个被请求规则的位置。
TFT管理器96随后更新TFT管理器数据结构,以反映子集的使用情况(182)。例如,TFT管理器96增加存储于组数据存储器106中的现有规则组的引用计数值,以表示现有规则组由被请求规则组所引用。TFT管理器96进一步增加规则组中包括的各个规则的引用计数值,以表示各个规则由被请求规则组所引用。如果将非匹配规则添加到现有规则组,例如,被请求规则组的子集,则TFT管理器96将位矩阵102的未用索引与被添加非匹配规则的规则标识符相关联。TFT管理器96向位矩阵102的先前未用索引分配值1,以表示规则组包括新添加的非匹配规则。对于添加到现有规则组的各个非匹配规则,TFT管理器96还将非匹配规则的规则标识符与计数存储器100的未用索引相关联。TFT管理器96增加与被请求规则对应的计数存储器100的各个索引的值。
在TFT管理器96更新TFT管理器数据结构之后,TFT管理器96执行硬件更新,以将来自候选规则组的规则编程到转发ASIC 108中。当TFT管理器96执行硬件更新时,PFE 90的微内核将规则编程到转发ASIC 108中。PFE 90的微内核初始从组数据存储器106选择候选规则组。在选择候选规则组之后,微内核选择图4的示例方法生成的规则位图所指定的规则组内的规则位置处的规则。所选规则由微内核编程到转发ASIC 108中。这样,由PFE 90存储在组数据存储器106内的候选规则被重用并共享,以通过被请求规则对转发ASIC 108进行编程,从而减少PFE 90中的冗余规则存储。
TFT管理器96在执行硬件更新之后将组索引和规则位图发送给SMD116。在某些示例中,SMD 116(而不是PFE 90的微内核)将规则编程到转发ASIC 108内。在这些示例中,服务PIC 114与PFE 90之间存在包括逻辑连接的通过路径。SMD 116向PFE 90发送包括规则位图和组索引的指令,使PFE 90将规则加载到转发ASIC 108中。
图5是示出了查询现有规则组以选择候选规则组的示例方法的流程图。图5的示例方法走遍组数据存储器106内的现有规则组的列表,以识别候选规则组。组数据存储器106可实现为,TFT管理器96在评估规则数量较小的现有规则组之前评估规则数量较大的现有规则组。通过将规则组按基数的降序排列,TFT管理器96可使用位矩阵102快速识别包括与被请求规则匹配的规则的规则组,而不是搜索组数据存储器106中的各个组的所有规则而获得候选规则组。
最初,TFT管理器96选择组数据存储器106的第一规则组(“现有规则组”),并进一步选择现有规则组(200)的组索引。TFT管理器96还初始化本地位图,本地位图将由TFT管理器96用于确定所选现有规则组是否可用作候选规则组(202)。TFT管理器96随后选择包括在现有规则组中的第一规则的规则索引(204)。使用规则索引和组索引,TFT管理器96在位矩阵102中确定被请求规则是否包括在现有规则组中(206)。例如,TFT管理器96使用规则索引和组索引确定位矩阵102是否在由规则索引和组索引定义的行/列交叉点处显示值‘1’。值‘1’表示现有规则组包括被请求规则。如果现有规则组包括被请求规则,TFT管理器96将值‘1’分配给与位矩阵102中的被请求规则的索引相对应的本地位图的索引(208)。TFT管理器96进一步增加TFT管理器96创建的匹配计数,以跟踪与被请求规则匹配的现有规则组中规则的数量(212)。
TFT管理器96随后确定被请求规则组是否包括更多的被请求规则(215)。如果被请求规则组中存在更多被请求规则(216),则TFT管理器96选择下一个被请求规则的规则索引,并如上所述继续进行单元206至216。如果被请求规则组中不存在更多被请求规则(218),则TFT管理器96接下来确定匹配计数是否为非零,非零表示所选现有规则组包括与被请求规则匹配的至少一个规则。如果匹配计数为零,则TFT管理器96继续选择存储在组数据存储器106中的下一个规则组的组索引。
如果匹配计数非零,则TFT管理器96确定匹配计数是否等于被请求规则的数量(220)。如果匹配计数等于被请求规则的数量(222),则TFT管理器96确定被请求规则的规则排序是否与现有规则组中规则的规则排序匹配(223)。如果规则排序不匹配(224),所选现有规则组可不重用,因此,TFT管理器96选择组数据存储器106中下一组的组索引。如果规则排序匹配,所选现有规则组为被请求规则组的精确集或超集(226)。在这些示例中,将所选现有组设为候选规则组(234),并且TFT管理器96返回候选规则组(244)。随后TFT管理器96进一步确定候选规则组为精确集还是超集,如上文中图4的单元162开始所述的那样。
在某些示例中,匹配计数可能不等于被请求规则的总数量(228)。在这些示例中,所选现有组为被请求规则组的子集。如上所述,可通过向现有规则组添加任何非匹配被请求规则,将包括被请求规则的子集的现有规则组用作候选规则组。当TFT管理器96确定所选现有规则组为被请求规则组的子集时,TFT管理器96可进一步确定现有规则组是否优于当前设为候选规则组的规则组(229)。图6示出了确定现有规则组是否优于候选规则组的示例方法。如果现有规则组不优于候选规则组(230),则TFT管理器96选择组数据存储器106中下一组的组索引。
如果现有规则组优于候选规则组(232),则TFT管理器96将现有规则组设为候选规则组(234)。随后TFT管理器96确定组数据存储器106中是否存在更多现有组。TFT管理器96搜索更多现有规则组,以确定另一个现有组是否优于候选组。如果TFT管理器96确定组数据存储器106中存在更多现有组,则TFT管理器96选择下一个现有组的组索引(238)。如果不存在现有组(240),则TFT管理器96将返回候选规则组(244)。
图6是示出了确定现有规则组是否优于候选规则组的示例方法的流程图。图6所示的示例方法对图5的单元229进行了详细图示。在图5的单元229中,TFT管理器96选择了现有规则组,以确定现有规则组是否可设为候选规则组。TFT管理器96进一步确定所选现有规则组为被请求规则组的子集。另外,图5的单元229表示的候选规则组当前可设为组数据存储器106中与图6中TFT管理器96当前选择的现有规则组不同的规则组。图6提供了确定所选现有规则组是否优于候选规则组的示例方法。
为了确定所选现有规则组是否优于候选规则组,TFT管理器96初始接收与单元200的组索引相关联的现有规则组,如图5所示(300)。由于现有规则组为被请求规则组的子集,TFT管理器96确定现有规则组是否包括用于向现有规则组添加非匹配被请求规则的自由空间。TFT管理器96可将现有规则组的自由空间计数值与TFT管理器96使用的尺寸阈值相比较。尺寸阈值可由TFT管理器96根据资源限制或PFE 90的架构而设置。如果用于存储非匹配被请求规则的自由空间不足(304),则候选规则组保持不变并返回(342)。
如果现有规则组包括充足的自由空间(306),则TFT管理器96确定被请求规则的与候选规则组匹配的数量是否大于与所选现有规则组匹配的数量(310)。如果被请求规则与候选规则组匹配的数量较大(308),则TFT管理器96返回候选规则组(342)。如果候选规则组包括的被请求规则的数量并非较大(312),则TFT管理器96确定候选规则组中规则的数量是否大于所选现有规则组(314)。如果候选规则组中规则的数量大于所选现有规则组(316),则TFT管理器96将所选现有规则组设为候选规则组(338)。如果候选规则组中规则的数量不大于所选现有规则组(324),则与候选规则组和所选现有规则组匹配的被请求规则的数量相等。
当与候选规则组和所选现有规则组匹配的被请求规则的数量相等时,TFT管理器96确定候选规则组的引用计数是否等于现有规则组的引用计数。组的引用计数表示组数据存储器106中的规则组已由TFT管理器96用于从SMD 116提出请求、以将规则加载到转发ASIC 108内的次数。如果各个规则组的引用计数都相等(322),则TFT管理器96返回候选规则组(342)。如果引用计数不相等(324),则TFT管理器96确定现有规则组的引用计数是否大于候选规则组的引用计数(326)。如果是(328),则TFT管理器96将现有规则组设为候选规则组(338)。如果现有规则组的引用计数小于候选规则组的引用计数(330),则TFT管理器96返回候选组(324)。TFT管理器96可进一步使用图4至图6的示例方法,而不需要修改为向现有规则组添加规则,并更新现有规则组内的规则位置。
图7示出了从PFE 90上编程的现有规则组中移除规则的示例方法。在图7中,例如,如果用户切断与核心网络的连接,则TFT管理器96可初始接收从SMD 116删除一个或多个规则的消息。该消息还可包括规则的一个或多个规则标识符,诸如由SMD 116生成的散列值。该消息还可以包括包含要删除的一个或多个规则的组的组索引。TFT管理器96查询规则管理器132,以选择与规则标识符相关联的规则索引(400)。TFT管理器96进一步从组数据存储器106中选择包括要删除的规则的现有规则组(402)。在选择现有规则组后,TFT管理器96利用规则索引选择要从组中删除的规则(404)。TFT管理器96随后减少存储在规则中的引用计数值(406)。TFT管理器96进一步确定规则的引用计数是否为零(408)。如果引用计数非零,则TFT管理器96向SMD 116发送表示规则已删除的状态消息。
如果规则引用计数为零(408),则TFT管理器96执行硬件更新,以从过滤ASIC 108中移除规则(414)。TFT管理器96进一步将位矩阵102中与已删除规则相对应的位设为‘0’,以表示该规则已从规则组中删除(416)。例如,将已删除规则与包括已删除规则的规则组之间的交叉点处的位设为‘0’。TFT管理器96进一步减小与已删除规则对应的计数存储器100中的值(418)。TFT管理器96还将该规则从组数据存储器106中删除。最后,TFT管理器96向SMD 116发送表示规则已删除的状态消息。
图8示出了移除PFE 90中编程的现有规则组的示例方法。在图8中,例如,如果用户切断与核心网络的连接,则TFT管理器96可初始从SMD116接收删除规则组的消息。该消息包括要删除的规则组的组索引(500)。TFT管理器96进一步从组数据存储器106中选择要删除的现有规则组(502)。选择现有规则组之后,随后TFT管理器96减小存储于规则组内的引用计数值(504)。TFT管理器96进一步确定规则组的引用计数是否为零(506)。如果引用计数非零,则TFT管理器96向SMD 116发送表示规则组已删除的状态消息。
如果规则引用计数为零(510),则TFT管理器96执行硬件更新,以从过滤ASIC 108移除规则组的规则(512)。TFT管理器96进一步从组索引表104删除组索引(514)。TFT管理器96还删除规则组中包括的规则列表(516)。在删除规则列表之后,TFT管理器96从组数据存储器106删除规则组对象(518)。最后,TFT管理器96向SMD 116发送表示规则组已删除的状态消息。
本文已对本发明的各个实施方式进行了说明。这些和其他实施方式都在所附权利要求的范围内。

Claims (15)

1.一种方法,包括:
由计算装置从第一用户接收网络接入请求;
由所述计算装置选择与包流相关联的候选规则组,其中,所述候选规则组包括所述计算装置上的现有规则组的一个或多个当前使用规则,所述一个或多个当前使用规则当前安装于所述计算装置的转发平面内,并由所述计算装置的转发平面应用到与第二用户相关联的网络流量上;
由所述计算装置安装新规则组,所述新规则组包括所述现有规则组的所述一个或多个当前使用规则,以及与所述第一用户相关联且并非当前安装于所述计算装置的转发平面内的一个或多个新规则;并且
由所述计算装置将所述新规则组的各规则应用到与所述第一用户相关联的网络流量上。
2.根据权利要求1所述的方法,其中,选择与包流关联的候选规则组还包括:
其中,现有规则包括所述一个或多个当前使用规则;
由所述计算装置查询表示所述现有规则组和存储于网络计算装置上的一个或多个现有规则之间的一个或多个关联的位矩阵,以选择所述候选规则组,
其中,被请求规则组的一个或多个被请求规则包括所述新规则组的规则。
3.根据权利要求2所述的方法,
其中,所述位矩阵包括二维阵列,所述二维阵列包括两个或多个单元,
其中,位矩阵的行与多个现有规则中的现有规则相关联,并且
其中,位矩阵的列与一个或多个现有规则组中的所述现有规则组相关联。
4.根据权利要求1至3中任一项所述的方法,
其中,存储于与所述现有规则相关联的规则索引和与所述现有规则组相关联的列索引识别的所述二维阵列的单元内的位表示所述现有规则包括在所述现有规则组内。
5.根据权利要求2至4中任一项所述的方法,其中,查询所述位矩阵还包括:
由所述计算装置选择所述现有规则组;
由所述计算装置选择与所述现有规则组关联的位矩阵中的位,其中,所选位中的各个位与所述一个或多个被请求规则的其中之一相关联,其中,所选位中的各个位表示所述一个或多个被请求规则中的各个是否包括在所述现有规则组内;并且
由所述计算装置基于一个或多个所述位来确定各个被请求规则是否包括在所述现有规则组之内。
6.根据权利要求2至5中任一项所述的方法,其中,所述一个或多个被请求规则中的各个包括一个或多个过滤器。
7.根据权利要求2至6中任一项所述的方法,其中,所述现有规则组存储于组数据存储器内,并且其中,所述组数据存储器内的各个现有组由组索引识别。
8.根据权利要求2至7中任一项所述的方法,还包括:
由所述计算装置确定所述被请求规则中的各个符合所述现有规则组中的各个规则;并且
由所述计算装置将所述现有规则组指定为所述候选规则组。
9.根据权利要求2至8中任一项所述的方法,还包括:
由所述计算装置确定所述现有规则组包括所述被请求规则组的超集;
由所述计算装置将所述现有规则组选择为所述候选规则组;并且
由所述计算装置生成表示所述候选规则组内的所述被请求规则的位置的第二位图。
10.根据权利要求2至9中任一项所述的方法,还包括:
由所述计算装置确定多个现有规则组中的所述现有规则组包括所述被请求规则组的子集,其中,所述被请求规则中的至少一个没有包括在所述现有规则组内;
由所述计算装置将所述现有规则组选择为所述候选规则组;并且
由所述计算装置生成表示所述候选规则组内的所述被请求规则的位置的第二位图。
11.根据权利要求10所述的方法,还包括:
由所述计算装置确定所述现有规则组能够存储所述被请求规则中的至少一个;并且
由所述计算装置将所述被请求规则中的所述至少一个存储在所述现有规则组内。
12.根据权利要求10或11所述的方法,其中,将所述现有规则组选择为所述候选规则组还包括:
由所述计算装置确定所述现有规则组包括的所述被请求规则的数量比所述候选规则组更多、更少还是相同。
13.根据权利要求2至12中任一项所述的方法,其中,查询表示现有规则组和现有规则之间的一个或多个关联的所述位矩阵还包括:
由所述计算装置选择多个现有规则组中的现有规则组;并且
由所述计算装置确定所述被请求规则组中的各个被请求规则是否包括在所述现有规则组内。
14.一种网络装置,包括:
一个或多个网络接口,用于从第一用户接收网络接入请求;
管理模块,检测第一包流,
其中,所述管理模块选择与所述包流相关联的候选规则组,其中,所述候选规则组包括计算装置上的现有规则组的一个或多个当前使用规则,所述一个或多个当前使用规则当前安装于所述计算装置的转发平面内,并由所述计算装置的转发平面应用到与第二用户相关联的网络流量上;
其中,所述管理模块安装新规则组,所述新规则组包括所述现有规则组的所述一个或多个当前使用规则,以及与所述第一用户相关联且并非当前安装于所述计算装置的转发平面内的一个或多个新规则;并且
其中,所述管理模块将所述新规则组的各规则应用到与所述第一用户相关联的网络流量上。
15..一种网络装置,包括:
一个或多个网络接口;以及
用于执行权利要求1至13中的任一方法的装置。
CN201210213296.6A 2011-06-30 2012-06-21 集管理方案 Active CN102857491B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/174,216 2011-06-30
US13/174,216 US8949413B2 (en) 2011-06-30 2011-06-30 Filter selection and resuse

Publications (2)

Publication Number Publication Date
CN102857491A true CN102857491A (zh) 2013-01-02
CN102857491B CN102857491B (zh) 2015-07-22

Family

ID=46704447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210213296.6A Active CN102857491B (zh) 2011-06-30 2012-06-21 集管理方案

Country Status (3)

Country Link
US (1) US8949413B2 (zh)
EP (1) EP2541866B1 (zh)
CN (1) CN102857491B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106803813A (zh) * 2017-03-02 2017-06-06 重庆邮电大学 一种智能家居设备控制命令字段的识别方法
CN106980673A (zh) * 2017-03-27 2017-07-25 恒生电子股份有限公司 内存数据库表索引更新方法及系统

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694627B2 (en) 2010-12-15 2014-04-08 At&T Intellectual Property I, L.P. Method and apparatus for correlating end to end measurements through control plane monitoring of wireless traffic
JP6128116B2 (ja) * 2011-09-01 2017-05-17 日本電気株式会社 通信端末、通信方法、通信システムおよびプログラム
US9055557B1 (en) 2012-03-26 2015-06-09 Juniper Networks, Inc. Policy and charging control rule programming and lookup in wireless connectivity access networks
EP2693717B1 (en) * 2012-07-29 2015-05-06 Verint Systems Limited System and method of high volume rule engine related applications
US20140092739A1 (en) * 2012-09-28 2014-04-03 Alcatel-Lucent Canada Inc. Flow filter mapping scheme with pcc flow-direction avp
KR20140045215A (ko) * 2012-10-08 2014-04-16 삼성전자주식회사 그룹 기반 연결 설정 방법 및 장치
US9565213B2 (en) 2012-10-22 2017-02-07 Centripetal Networks, Inc. Methods and systems for protecting a secured network
US9137205B2 (en) 2012-10-22 2015-09-15 Centripetal Networks, Inc. Methods and systems for protecting a secured network
US9171151B2 (en) * 2012-11-16 2015-10-27 Microsoft Technology Licensing, Llc Reputation-based in-network filtering of client event information
US9203806B2 (en) 2013-01-11 2015-12-01 Centripetal Networks, Inc. Rule swapping in a packet network
CN103430516B (zh) * 2013-02-21 2017-02-22 华为技术有限公司 业务提供系统、方法、移动边缘应用服务器及支持节点
US9124552B2 (en) 2013-03-12 2015-09-01 Centripetal Networks, Inc. Filtering network data transfers
US9094445B2 (en) 2013-03-15 2015-07-28 Centripetal Networks, Inc. Protecting networks from cyber attacks and overloading
US8738791B1 (en) * 2013-07-17 2014-05-27 Phantom Technologies, Inc. Location based network usage policies
US9647985B2 (en) * 2013-05-23 2017-05-09 Check Point Software Technologies Ltd Location-aware rate-limiting method for mitigation of denial-of-service attacks
CN103763194B (zh) * 2013-12-31 2017-08-22 新华三技术有限公司 一种报文转发方法及装置
WO2015108524A1 (en) * 2014-01-16 2015-07-23 Hewlett-Packard Development Company, L.P. Configurable workload optimization
US10320676B2 (en) 2014-02-28 2019-06-11 Cisco Technology, Inc. Smarter policy decisions based on metadata in data flows
WO2015165056A1 (zh) * 2014-04-30 2015-11-05 华为技术有限公司 一种数据传输、转发信息更新的方法、通信设备和控制器
US9479572B1 (en) * 2014-08-29 2016-10-25 Juniper Networks, Inc. Dynamically identifying and associating control packets to an application layer
CN105812164B (zh) * 2014-12-31 2019-07-23 北京东土科技股份有限公司 基于tcam多级流表的规则索引管理实现方法和装置
US9264370B1 (en) 2015-02-10 2016-02-16 Centripetal Networks, Inc. Correlating packets in communications networks
US20160285735A1 (en) * 2015-03-23 2016-09-29 Brocade Communications Systems, Inc. Techniques for efficiently programming forwarding rules in a network system
US10771475B2 (en) 2015-03-23 2020-09-08 Extreme Networks, Inc. Techniques for exchanging control and configuration information in a network visibility system
US10911353B2 (en) 2015-06-17 2021-02-02 Extreme Networks, Inc. Architecture for a network visibility system
US9866576B2 (en) 2015-04-17 2018-01-09 Centripetal Networks, Inc. Rule-based network-threat detection
US20160330286A1 (en) * 2015-05-08 2016-11-10 Citrix Systems, Inc. Systems and methods for using filters for groups of applications or users
WO2016197391A1 (en) * 2015-06-12 2016-12-15 Motorola Solutions, Inc. Method and server for broadcasting a data file to a plurality of radio talk groups
CN107005537B (zh) 2015-10-28 2020-10-16 华为技术有限公司 一种承载处理方法、系统及相关装置
US9917856B2 (en) 2015-12-23 2018-03-13 Centripetal Networks, Inc. Rule-based network-threat detection for encrypted communications
US10225234B2 (en) * 2016-08-31 2019-03-05 Fortress Cyber Security, LLC Systems and methods for geoprocessing-based computing network security
US10193863B2 (en) 2016-10-07 2019-01-29 Microsoft Technology Licensing, Llc Enforcing network security policy using pre-classification
US10503899B2 (en) 2017-07-10 2019-12-10 Centripetal Networks, Inc. Cyberanalysis workflow acceleration
US10187217B1 (en) 2017-07-11 2019-01-22 Oracle International Corporation Methods, systems, and computer readable media for efficient mapping of rule precedence values and filter priority values
US11233777B2 (en) 2017-07-24 2022-01-25 Centripetal Networks, Inc. Efficient SSL/TLS proxy
US10917385B1 (en) * 2017-11-30 2021-02-09 Juniper Networks, Inc. Sharing matching filters among interfaces of a network device
US20230319082A1 (en) * 2022-04-04 2023-10-05 Arbor Networks, Inc. Flowspec message processing apparatus and method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574666B1 (en) * 1998-10-22 2003-06-03 At&T Corp. System and method for dynamic retrieval loading and deletion of packet rules in a network firewall
US6826698B1 (en) * 2000-09-15 2004-11-30 Networks Associates Technology, Inc. System, method and computer program product for rule based network security policies
CN101753542A (zh) * 2008-12-03 2010-06-23 北京天融信网络安全技术有限公司 一种加速防火墙过滤规则匹配的方法及装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173364B1 (en) 1997-01-15 2001-01-09 At&T Corp. Session cache and rule caching method for a dynamic filter
US7945691B2 (en) * 2003-09-15 2011-05-17 Sap Ag Data conveyance management
US7505463B2 (en) * 2004-06-15 2009-03-17 Sun Microsystems, Inc. Rule set conflict resolution
US7760730B2 (en) * 2004-06-15 2010-07-20 Oracle America, Inc. Rule set verification
US7512071B2 (en) * 2004-06-15 2009-03-31 Sun Microsystems, Inc. Distributed flow enforcement
US7593911B1 (en) * 2005-10-12 2009-09-22 At&T Corp. System and method for applying rule sets and rule interactions
US20070106629A1 (en) * 2005-10-17 2007-05-10 Steve Endacott System and method for accessing data
US20070185887A1 (en) * 2006-01-30 2007-08-09 Quark, Inc. Systems and methods for attribute binding
US7415448B2 (en) * 2006-03-20 2008-08-19 Microsoft Corporation Adaptive engine for processing geographic data
US7788201B2 (en) * 2006-09-29 2010-08-31 International Business Machines Corporation Method, system, and program product for dispatching an event to a rule using key-value pair
US7941838B2 (en) 2007-05-09 2011-05-10 Microsoft Corporation Firewall control with multiple profiles
US8266685B2 (en) * 2007-05-18 2012-09-11 Microsoft Corporation Firewall installer
US8301741B2 (en) * 2007-08-21 2012-10-30 Alcatel Lucent Cloning policy using templates and override cloned policy
US20090182689A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Rule-based dynamic operation evaluation
WO2009118038A1 (en) * 2008-03-25 2009-10-01 Telefonaktiebolaget Lm Ericsson (Publ) Policy and charging control architecture
US8448220B2 (en) * 2008-04-29 2013-05-21 Mcafee, Inc. Merge rule wizard
US8490171B2 (en) * 2008-07-14 2013-07-16 Tufin Software Technologies Ltd. Method of configuring a security gateway and system thereof
US8468113B2 (en) * 2009-05-18 2013-06-18 Tufin Software Technologies Ltd. Method and system for management of security rule set
US8345688B2 (en) * 2010-02-23 2013-01-01 Google Inc. System and method for managing flow of packets
US8646031B2 (en) * 2010-12-16 2014-02-04 Tufin Software Technologies Ltd Method of generating security rule-set and system thereof
US8806569B2 (en) * 2011-02-07 2014-08-12 Tufin Software Technologies Ltd. Method and system for analyzing security ruleset by generating a logically equivalent security rule-set

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574666B1 (en) * 1998-10-22 2003-06-03 At&T Corp. System and method for dynamic retrieval loading and deletion of packet rules in a network firewall
US6826698B1 (en) * 2000-09-15 2004-11-30 Networks Associates Technology, Inc. System, method and computer program product for rule based network security policies
CN101753542A (zh) * 2008-12-03 2010-06-23 北京天融信网络安全技术有限公司 一种加速防火墙过滤规则匹配的方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106803813A (zh) * 2017-03-02 2017-06-06 重庆邮电大学 一种智能家居设备控制命令字段的识别方法
CN106980673A (zh) * 2017-03-27 2017-07-25 恒生电子股份有限公司 内存数据库表索引更新方法及系统
CN106980673B (zh) * 2017-03-27 2021-03-02 恒生电子股份有限公司 内存数据库表索引更新方法及系统

Also Published As

Publication number Publication date
US8949413B2 (en) 2015-02-03
EP2541866B1 (en) 2018-03-07
CN102857491B (zh) 2015-07-22
US20130007257A1 (en) 2013-01-03
EP2541866A1 (en) 2013-01-02

Similar Documents

Publication Publication Date Title
CN102857491B (zh) 集管理方案
CN111770028B (zh) 用于计算机网络的方法和网络设备
EP3759870B1 (en) Network slicing with smart contracts
CN102857322B (zh) 混合端口范围编码
US9203743B2 (en) Packet forwarding system, control device, forwarding device and method and program for preparing processing rules
TW202034737A (zh) 在網路運算環境中的路由最佳化
CN108702331A (zh) Sr应用段与服务功能链(sfc)报头元数据的集成
CN108141416A (zh) 一种报文处理方法、计算设备以及报文处理装置
CN106921572B (zh) 一种传播QoS策略的方法、装置及系统
EP3756317B1 (en) Method, device and computer program product for interfacing communication networks
EP3183831B1 (en) Software defined networking portal
WO2015039617A1 (zh) 一种报文处理方法、系统及设备
CN106789725B (zh) 一种实现流量重定向的方法、装置和系统
CN108353022A (zh) 一种数据报文的处理方法、装置及系统
CN112887209B (zh) 关于数据传输的表项建立方法及相关设备
WO2016049926A1 (zh) 一种数据包处理装置及方法
CN105812257A (zh) 业务链路由管理系统及其使用方法
US11240140B2 (en) Method and system for interfacing communication networks
WO2024140374A1 (zh) 信息处理方法、设备和存储介质
CN106453088A (zh) 一种静态路由配置方法及终端
US20120170581A1 (en) Policy homomorphic network extension
US20230319635A1 (en) Apparatus and method for providing n6-lan using service function chaining in wireless communication system
CN111464443A (zh) 基于服务功能链的报文转发方法、装置、设备及存储介质
KR101992869B1 (ko) Sdn환경에서 멀티 프로토콜 라벨 스위칭을 이용한 서비스별 이동성 관리 방법 및 장치
Hantouti et al. A novel SDN-based architecture and traffic steering method for service function chaining

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Juniper Networks, Inc.

Address before: California, USA

Patentee before: Jungle network

CP01 Change in the name or title of a patent holder