首页> 中国专利> 改善低延时高吞吐量网络中双向访问控制列表的硬件利用率

改善低延时高吞吐量网络中双向访问控制列表的硬件利用率

摘要

用于在网络节点中改善双向访问控制列表(ACL)的硬件利用率的系统中的方法,包括:从在网络节点处接收到的消息的可变数据创建第一搜索关键字(304);从该消息的恒定数据创建第二搜索关键字(310);基于第一搜索关键字来识别第一数据库中的第一数据库条目(306);以及基于第二搜索关键字来识别第二数据库中的第二数据库条目(312)。该方法还包括:当第一数据库条目与第二数据库条目之间的相关性被识别出来(316)时,执行与第一数据库条目相关联的动作(324)。消息的可变数据是值由网络节点中的消息转发引擎的转发逻辑改变的数据,消息的恒定数据是值不由消息转发引擎的转发逻辑改变的数据。第一搜索关键字可以在转发消息之前或之后被创建(304)。在进一步实施例中,当第一数据库条目的偏移与第二数据库条目的偏移相同时,相关性被识别出来。双向ACL可以通过消除入口ACL数据库和出口ACL数据库中的恒定字段的重复,以较小的硬件占位面积或软件搜索时间的形式实现显著的开销降低。

著录项

  • 公开/公告号CN104509063A

    专利类型发明专利

  • 公开/公告日2015-04-08

    原文格式PDF

  • 申请/专利权人 思科技术公司;

    申请/专利号CN201380039760.7

  • 申请日2013-07-09

  • 分类号H04L29/06(20060101);

  • 代理机构11258 北京东方亿思知识产权代理有限责任公司;

  • 代理人李晓冬

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 08:15:34

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-24

    授权

    授权

  • 2015-05-06

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20130709

    实质审查的生效

  • 2015-04-08

    公开

    公开

说明书

技术领域

本公开总地涉及计算机网络领域,更具体地涉及用于改善低延时高吞 吐量网络中双向访问控制列表的硬件利用率的系统和方法。

背景技术

计算机和计算机网络已经成为当今社会中日常生活的必不可少的一部 分。大部分组织依赖于计算机网络来共享资源和信息,从而推进组织目 的。一般的计算机网络可以包括终端端点(例如,膝上型计算机、个人计 算机、智能手机等)和网络元件(诸如,路由器、交换机、网关、服务器 等)。

可以采用各种安全机制来保护网络及其各种部件。访问控制列表 (ACL)是为了安全目的和内容感知联网而在现代网络中广泛使用的常见 网络安全机制。ACL允许网络策略在网络元件的传入(incoming)接口接 收流量时被应用到入口上,并且在网络元件的传出(outgoing)接口发送 流量时被应用到出口上。访问网络或者网络部分的基本安全等级可以通过 使用ACL将策略(或者ACL规则)应用到网络流量来实现。然而,随着 网络规模增大,通常需要更多的策略,并且这可能受到网络的硬件资源的 约束。因此,在不牺牲网络性能或安全的情况下,增大使用ACL的网络 规模的能力向部件制造商和网络运营商等提出了巨大挑战。

附图说明

为提供对本公开及其特征和优点的更加完整的理解,结合附图参照下 面的描述,其中,相似的参考标号表示相似的部分,其中:

图1是示出根据本公开实施例的用于改善低延时高吞吐量网络中双向 访问控制列表(ACL)的硬件利用率的示例系统的部件的简化框图;

图2是示出图1的系统的示例部件的附加细节的简化框图;

图3是示出系统的示例实施例中的可以与入口流量流(traffic flow) 相关联的示例操作步骤的简化流程图;以及

图4是示出系统的示例实施例中的可以与出口流量流相关联的示例操 作步骤的简化流程图。

具体实施方式

概述

一个示例实施例中提供了一种方法,该方法包括:从在网络环境中接 收到的消息的一个或多个可变数据创建第一搜索关键字,并且从该消息的 一个或多个恒定数据创建第二搜索关键字。该方法还包括:基于第一搜索 关键字来识别第一数据库中的第一数据库条目,并且基于第二搜索关键字 来识别第二数据库中的第二数据库条目。该方法还包括:当第一数据库条 目与第二数据库条目之间的相关性被识别出来时,执行与第一数据库条目 相关联的动作。在具体实施例中,当消息被转发时,一个或多个可变数据 被修改,而一个或多个恒定数据不被修改。在一些实施例中,在转发消息 之前创建第一搜索关键字。在其他实施例中,在转发消息之后创建第一搜 索关键字。在进一步的实施例中,当第一数据库中的第一数据库条目的偏 移与第二数据库中的第二数据库条目的偏移相同时,相关性被识别出来。 第一数据库条目的附加特征包括有效字段和可变字段,并且当第一数据库 条目的有效字段未被设置时,第一数据库条目未被识别出来。

示例实施例

图1是用于改善网络环境中双向访问控制列表(ACL)的硬件利用率 的系统10的示例实施方式的简化框图。示例性网络环境可以包括低延 时、高吞吐量网络11,网络11包括上游节点12、下游节点14、以及 ACL网络节点20。ACL网络节点20可以被配置为在节点12和14之间分 别进行接收消息、转发消息、和发送消息。例如,ACL网络元件20可以 从上游节点12接收传入消息(incoming message)15,基于所使用的特定 协议将转发技术应用于该消息,并且将相应的传出消息17发送到下游节 点14。ACL网络元件20可以包括传入接口21、传出接口23、消息转发 引擎25、处理器27、以及存储器元件29。此外,ACL网络元件20可以 包括与应用ACL策略(或规则)相关联的其他部件,例如,入口ACL模 块22、出口ACL模块24、入口可变ACL数据库30、恒定ACL数据库 40、以及出口可变ACL数据库50。另外,ACL动作(ACL actions)60可 以被提供,并被与入口可变ACL数据库30和出口可变ACL数据库50中 的ACL规则相关联。ACL动作60包括准许、拒绝、或以其他方式适当地 控制网络节点20上的网络流量(即,消息),这可以通过使用访问列表 命令来实现。

可以采用任意的合适连接(有线或无线)通过一个或多个接口(例 如,传入接口21、传出接口23等)将图1的元件相互耦合,这为电子通 信提供了可行的路径。另外,可以基于特定的配置需要将这些元件中的任 意一个或多个进行组合或者将其从架构中移除。

对于本公开的各种实施例,本文使用了某些技术。本文所使用的术语 “数据”指代任意类型的二进制、数字、语音、视频、文本、或脚本数 据,或者任意类型的源代码或目标代码,或者可以从电子设备(例如,节 点)和/或网络中的一点传送到另一点的任意适当的格式的任意其他合适的 信息。本文所使用的术语“消息”旨在包括根据本公开的使用任意合适的 协议被格式化以供在分组交换网络环境中进行传输的数据。例如,根据可 以被实现的特定通信协议,消息可以包括帧、头部、分组或数据报、分 段、应用数据等。

出于示出系统10的操作方面的目的,很重要的是理解可以在网络中 行进的通信。可以将下面的基本信息看作本公开可以被正确解释的基础。 仅出于解释的目的来提供这样的信息,因此,这样的信息不应该以限制本 公开的广义范围及其潜在应用的任何方式进行解释。

访问控制列表(ACL)被广泛应用于现代网络中,用于安全目的和内 容感知联网。ACL通常被实现在至少具有互联网协议族(TCP/IP)的层3 能力的网络元件中,以提供流量过滤。当网络流量在传入接口上被接收时 网络策略可以被应用在入口上和/或当网络流量在传出接口上被发送时网络 策略可以被应用在出口上。更具体地,网络策略可以被配置为用来控制从 网络元件(例如,服务器、路由器、交换机等)流入或流出的网络流量流 的ACL的规则。例如,这些规则可以被应用到网络元件的端口号,以阻 止某些流量进入或退出网络,阻止某些网络流量被转发到网络的各个部 分,或者允许某些流量访问网络或其部分。

一般,双向ACL包括入口ACL规则集和出口ACL规则集两个独立的 ACL规则集。不同的ACL规则集通常被存储于不同的数据库中。入口 ACL数据库可以被用于捕捉与一个或多个入口ACL规则相匹配的传入消 息帧。相反,出口ACL数据库可以被用于捕捉与一个或多个出口ACL规 则相匹配的传出消息帧。在硬件实施方式中,两个独立的数据库被用来允 许对每个消息遍历这些数据库进行两次搜索(即,入口ACL数据库的一 次搜索和出口ACL数据库的一次搜索)。

一般ACL数据库中的每个条目表示ACL规则,并且包括用于匹配被 包含在正被评估的当前消息中的信息的字段。消息信息可以具有不同的属 性,例如,在转发之前或之后都不改变的恒定数据和在转发之前或之后可 以改变的可变数据。举例来说,恒定数据可以包括较高层字段(例如,传 输层或层4),这些较高层字段一般不会被层2或层3网络元件(例如, 层2交换机、多层交换机、路由器等)重写。可变数据可以包括较低层字 段(例如,层2字段或可能是层3字段)。当网络元件(例如,路由器或 多层交换机)将从具有一个广播域的虚拟局域网(VLAN)接收到的消息 路由到具有另一广播域的不同VLAN时,可变数据的示例可以是广播域。 如本文所使用的,“转发”消息旨在指代在将消息发送、传输、或以其他 方式传送到另一网络节点之前,由网络元件对该消息进行桥接或路由(例 如,向该消息提供新的头部、帧、网络地址等)。另外,“转发”还可以 表示消息已被提供给网络元件的传出接口。

在传统的双向ACL实施方式中,ACL规则包含可以被归类为恒定或 可变的字段。具体地,入口ACL数据库中的每个条目包括入口可变字段 和恒定字段二者,而出口ACL数据库中的每个条目包括出口可变字段和 恒定字段二者。因此,入口ACL数据库和出口ACL数据库中的恒定字段 可以是重复的。

通常针对每个消息执行两次搜索。对于传入消息,可以利用从传入消 息获取的包含可变搜索关键字字段和恒定搜索关键字字段的入口搜索关键 字来对数据库进行搜索,从而确定入口ACL规则是否可用。在传入消息 已被转发之后,可以利用从相应的转发(或传出)消息获取的包含可变搜 索关键字字段和恒定搜索关键字字段的出口搜索关键字来对出口ACL数 据库进行搜索,从而确定出口ACL规则是否可用。需要两次独立的搜 索,因为入口搜索关键字和出口搜索关键字可能基于消息的可变数据在转 发后改变。

入口ACL数据库和出口ACL数据库中的恒定字段的重复、以及这些 重复的恒定字段上的多次搜索会抑制网络的网络规模增大。随着网络规模 扩缩,可能需要更多的网络策略,这会导致更大的ACL数据库。尽管可 能期望ACL数据库的增长(例如,从而提供网络安全并且允许网络规模 增大),但是这样的ACL扩张可能受到硬件约束的限制,尤其是对于基 于硬件的ACL而言。因此,最大化硬件资源的利用率以实现双向ACL中 的入口ACL规则和出口ACL规则的最大总数是很重要的。

然而,最大化硬件利用率可能会影响网络的延时和吞吐量。延时指的 是每个消息的平均处理延迟,吞吐量指的是每时间段所处理的消息的数 目。在低延时高吞吐量网络中,并不期望以较高的延时和/或较低的吞吐量 为代价来增加硬件利用率以允许更大的双向ACL。

类似于基于硬件的ACL,基于软件的ACL也会抑制网络扩缩 (network scaling)。基于软件的ACL可能会由于入口ACL数据库和出口 ACL数据库中的重复的恒定字段而遭受更多的软件搜索次数。因此,为了 满足多种多样的部署需求集,基于有限数量的硬件资源,双向ACL提供 最大可能数目的可编程双向ACL规则是很重要的。

根据本文所描述的实施例,系统20可以解决前面提到的与访问控制 列表(ACL)相关联的问题(以及更多问题)。更具体地,系统10的双 向ACL可以通过消除入口ACL数据库和出口ACL数据库中的恒定数据的 重复,以较小的硬件占位面积(footprint)或软件搜索次数来实现显著的 开销减少。在系统10中,利用三个ACL数据库来实现双向ACL,从而使 得能够对入口可变字段、出口可变字段、和恒定字段进行独立的搜索。实 现针对恒定字段的独立数据库(例如,恒定ACL数据库40)使得能够使 用从消息中的恒定数据获取的搜索关键字针对给定的消息对恒定ACL数 据库进行单次搜索。可以与入口可变ACL数据库和出口可变ACL数据库 的搜索结果共享结果恒定匹配向量。实现共享的恒定ACL数据库消除了 对恒定字段的重复存储和重复搜索。因此,可以在不影响延时和吞吐量的 情况下增大入口ACL规则和出口ACL规则的总数(可能几乎翻倍)。而 且,通过使用共享的恒定ACL数据库最小化了增加的硬件成本,从而改 善了硬件利用率。此外,对于基于软件的双向ACL,避免对恒定字段的第 二次搜索也可以减少搜索次数。

转到图1的基础设施,图1是系统10的一个示例实施方式的简化框 图。网络11可以包括互连的通信路径的用于接收和发送通过系统10传播 的信息消息的一系列点或节点。网络11在节点之间提供通信接口(例 如,ACL网络节点20的传入接口21和传出接口23)。网络11可以是任 意的局域网(LAN)、无线局域网(WLAN)、城域网(MAN)、内联 网、外联网、WAN、虚拟专用网络(VPN)、或有助于网络环境中的通信 的任意其他合适的架构或系统。

系统10可以被配置为结合用于在网络中发送和接收消息的任意合适 的通信协议进行操作,在该网络中,由ACL网络节点20接收的消息可以 包括在转发之后会改变的一些数据(即,可变数据)和在转发之后保持恒 定的一些数据(即,恒定数据)。具体地,系统10可以被配置为容纳基 于开放系统互连(OSI)模型的任意协议,该OSI模型可以包括物理层 (层1)、数据链路层(层2)、网络层(层3)、传输层(层4)、会话 层(层5)、表示层(层6)、以及应用层(层7)、或它们的任意合适的 组合。消息可以包括多个层,其中,较高层被封装在较低层内。如本文所 使用的,“分组”指代的是具有网络寻址的层3,层3可以封装层4和更 高层。另外,本文所使用的“帧”指代的是具有帧头和帧脚的层2,层2 可以封装分组。通过示例的方式,在系统10的某些实施方式中,网络11 可以实现用户数据报协议/互联网协议(UDP/IP)连接或传输控制协议/互 联网协议(TCP/IP)连接,用于网络中的消息的电子发送和接收。

上游节点12和下游节点14可以是网络元件,所述网络元件包括网络 家电、服务器、路由器、交换机、网关、网桥、负载均衡器、处理器、模 块、或能够操作以在网络环境中交换信息(例如,以消息的形式)的任意 其他合适的设备、部件、元件、或对象。网络元件可以包括有助于其操作 的任意合适的硬件、软件、部件、模块、或对象,以及用于在网络环境中 接收、发送、和/或以其他方式传达数据或信息的合适接口。这可以包括允 许数据或信息的有效交换的合适算法和通信协议。上游节点12和下游节 点14还可以表示诸如移动设备(例如,智能手机、平板电脑、个人数字 助理(PDA)等)和终端用户设备(例如,膝上型计算机、个人计算机 等)之类的网络端点。

ACL网络节点20可以是具有如下特征的任意网络元件:可以实现访 问控制列表,在转发(即,桥接或路由)接收到的消息时该消息中的一些 数据不受影响,并且在转发接收到的消息时该消息中的一些数据被修改。 例如,ACL网络节点20通常可以被配置为L2交换机、以及L2/L3交换 机、路由器、或网关。传入接口21和传出接口23可以是能够实现到其他 网络节点的通信的网络接口控制器(NIC)和/或无线网络接口控制器 (WNIC)的任意合适的组合。

对于与ACL网络节点20相关联的内部结构,其可以包括存储器元件 29,该存储器元件29用于存储在本文所概括的操作中所使用的信息。 ACL网络节点20可以根据需要将信息适当地保存在任意合适类型的存储 器元件(例如,随机存取存储器(RAM)、只读存储器(ROM)、可擦 除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、专用 集成电路(ASIC)、三元内容可寻址存储器(TCAM)等)、软件、硬件 中,或者保存在任意其他合适的部件、设备、元件、或对象中。本文所讨 论的任意存储器物体(例如,存储器元件29)应该被理解为被包含在广义 术语“存储器元件”内。由上游节点12、下游节点14、以及ACL网络节 点20使用、跟踪、转发、发送、以及接收的信息可以被提供在任意数据 库、寄存器、队列、表格、缓存、控制列表、向量、或其他存储结构中, 所有这些可以在任意合适的时间表被参考。任意这样的存储选项可以被包 括在本文所使用的广义术语“存储器元件”内。

应当注意,在某些示例实施方式中,本文所概括的功能可以由被编码 在一个或多个有形的、非暂态介质中的逻辑(例如,专用集成电路 (ASIC)中提供的嵌入式逻辑、数字信号处理器(DSP)指令、将由处理 器或其他类似的机器运行的软件(可能包括目标代码和源代码)等)实 现。在这些实例中的一些实例中,存储器元件(例如,存储器元件29)可 以存储用于本文所描述的操作的数据。这包括能够存储被运行以实施本文 所描述的活动的软件、逻辑、代码、或处理器指令的存储器元件。

ACL网络节点20可以包括处理器27,该处理器27可以运行逻辑、软 件、或算法以执行本文所讨论的活动。处理器可以运行与实现本文所描述 的操作的数据相关联的任意类型的指令。在一个示例中,处理器27(如图 1所示)可以将元件或物品(例如,数据)从一种状态或事物转变到另一 状态或事物。在另一示例中,本文所概述的活动可以利用固定逻辑或可编 程逻辑(例如,由处理器运行的软件/计算机指令)来实现,并且本文所标 识的元件可以是包括数字逻辑、软件、代码、电子指令、或它们的任意合 适组合的某些类型的可编程处理器、可编程数字逻辑(例如,现场可编程 门阵列(FPGA)、EPROM、EEPROM)、或ASIC。本文所描述的任意 潜在的处理元件、模块、和机器应该被理解为被包含在广义术语“处理 器”内。

图1中未示出附加硬件,该附加硬件可以被适当地耦合至处理器27 和以下形式的其他部件:存储器管理单元(MMU)、附加对称多处理 (SMP)元件、物理存储器、外部部件互连(PCI)总线和相应的网桥、 小型计算机系统接口(SCSI)/电子集成驱动器(IDE)元件等。ACL网络 节点20可以包括有助于其操作的任意附加的合适硬件、软件、部件、模 块、接口、或对象。这可以包括允许对数据进行有效保护的适当算法和通 信协议。另外,任意合适的操作系统也可以被配置在ACL网络节点20 中,以适当地管理该ACL网络节点中的硬件部件的操作。

参照ACL网络节点20示出和/或描述的元件用于示意性目的,而不意 味着隐含架构限制。此外,ACL网络节点20可以在适当情况下基于特定 需求包括更多或更少部件。

如图1所示,传入消息15可以由ACL网络节点20在传入接口21处 从上游节点12接收。可以由入口ACL模块22使用入口可变ACL数据库 30和恒定ACL数据库40对应用到传入消息15的入口ACL规则进行识 别。如果可应用的入口ACL规则被识别出来,则相关联的ACL动作(例 如,准许流量、拒绝流量等)可以被执行。如果根据入口ACL规则传入 消息15未被丢弃或阻塞、或者如果网络流量被明确准许,则消息转发引 擎25可以对传入消息15执行适当的桥接或路由功能。例如,传入消息15 的帧头和帧脚可以被移除,并且新的帧头和帧脚可以被添加来封装分组, 从而改变该消息的至少一些可变数据。因此,传出消息17可以是具有修 改后的可变数据的传入消息15。可以由出口ACL模块24使用恒定ACL 数据库40的先前搜索结果和出口可变ACL数据库50对应用到传出消息 17的出口ACL规则进行识别。如果可应用的出口ACL规则被识别出来, 则相关联的动作(例如,准许流量、拒绝流量等)可以被执行。如果根据 出口ACL规则传出消息17未被丢弃或阻塞、或者如果网络流量被明确准 许,则传出消息17可以被传输、发送、或传达至下游节点14。

上游节点12和下游节点14仅被提供用于示意性目的,并且将显而易 见的是,节点12和14中的每个节点可以被配置为相对于ACL网络节点 20同时作为上游和下游节点来发挥作用。更具体地,每个节点12和14可 以被配置为将通信发送至ACL网络节点20,并且从ACL网络节点20接 收通信。

转向图2,图2是示出当系统10的双向ACL被实现在硬件中时, ACL网络节点20的部件的附加细节的简化框图。一般,在入口侧,利用 从转发之前的消息(例如,传入消息15)的可变数据获取的搜索关键字 31来搜索入口可变ACL数据库30。利用从该消息的恒定数据获取的搜索 关键字来搜索恒定ACL数据库40。入口可变ACL数据库30和恒定ACL 数据库40以匹配向量的形式将搜索结果馈送到AND门(与门)38,以确 定任何入口ACL规则是否应用到该消息。AND门38的结果可以被馈送到 优先级编码器39,以确定在搜索中识别出来的最高优先级入口ACL规 则。

在出口侧,利用从转发之后的消息(例如,传出消息17)的可变数据 获取的搜索关键字51来搜索出口可变ACL数据库50。出口可变ACL数 据库50和恒定ACL数据库40以匹配向量的形式将搜索结果馈送到AND 门58,以确定任何出口ACL规则是否应用到该消息。AND门58的结果 可以被馈送到优先级编码器59,以确定在搜索中识别出来的最高优先级出 口ACL规则。

更具体地参照图2中所示的示例部件的细节,入口可变ACL数据库 30和出口可变ACL数据库50具有与恒定ACL数据库40的条目相对应的 条目。可变数据库条目(例如,入口可变数据库条目35或出口可变数据 库条目55)与相应的恒定数据库条目(例如,恒定数据库条目45)的组 合可以表示入口ACL规则或出口ACL规则。如果在对数据库进行搜索的 过程中,两个部分(即,可变数据库条目和相应的恒定数据库条目)均被 识别出来,则入口或出口规则可以被应用到给定的消息。当入口可变数据 库条目和恒定数据库条目在对特定消息进行搜索的过程中被识别出来时, 所识别出的数据库条目之间的相关性指示这些条目是相对应的条目,因此 表示应用到该消息的入口ACL规则。类似地,当出口可变数据库条目和 恒定数据库条目在对特定消息进行搜索的过程中被识别出来时,所识别出 的数据库条目之间的相关性指示这些条目是相对应的条目,因此表示应用 到该消息的出口ACL规则。

在一个示例配置中,三个ACL数据库30、40、和50可以具有相同数 目的条目(例如,d个条目:条目0至条目d-1),并且可变数据库中的条 目与恒定数据库中的条目之间的相关性基于在不同的数据库中具有相同偏 移的条目。在图2所示的示例中,有代表性的第n个条目35、45、和55 分别在数据库30、40、和50中被示出,其中,n表示每个数据库30、 40、和50中的相同的偏移(例如,0至d-1之一)。因此,在该示例配置 中,入口可变数据库条目35和恒定数据库条目45是相对应的条目,它们 一起表示入口ACL规则。另外,出口可变数据库条目55和恒定数据库条 目45也是相对应的条目,它们一起表示出口ACL规则。这些入口ACL规 则和出口ACL规则共享相同的恒定数据库条目45,因此是双向的。此 外,入口ACL规则和出口ACL规则均可以与ACL动作60中的动作(例 如,拒绝网络流量、准许网络流量等)相关联。

因此,图2示出了这样的实施例:数据库30和40的相对应的条目是 相关的,因为它们在其各自的数据库中位于相同的偏移处,并且数据库50 和40的相对应的条目是相关的,因为它们在其各自的数据库中位于相同 的偏移处。然而,将显而易见的是,任意合适的配置可以被实现来指示可 变ACL数据库中的条目与恒定数据库中的条目之间的适当的相关性。

入口可变ACL数据库30中的每个条目可以具有入口可变数据库条目 35的配置,包括有效字段35b和入口可变字段35a。有效字段35b可以具 有1位的长度,而入口可变字段35a可以具有vi位的长度。类似地,出口 可变ACL数据库50中的每个条目可以具有出口可变数据库条目55的配 置,包括有效字段55b和出口可变字段55a。有效字段55b可以具有1位 的长度,而出口可变字段55a可以具有ve位的长度。因此,入口可变字段 35a的长度可以与出口可变字段55a的长度相同或者不同。而且,入口可 变字段35a和出口可变字段55a可以分别被配置为单个可变字段或多个可 变字段。最后,恒定ACL数据库40中的每个条目可以具有恒定数据库条 目45的配置,包括s位的一个或多个恒定字段45a。

搜索关键字可以具有与其相应的ACL数据库的数据库条目相同的配 置。入口可变搜索关键字31可以具有与入口可变ACL数据库30的数据库 条目(例如,条目35)相同的配置,并且出口可变搜索关键字51可以具 有与出口可变ACL数据库50的数据库条目(例如,条目55)相同的配 置。入口可变搜索关键字31可以包括有效字段31b和入口搜索关键字字 段31a。有效字段31b可以具有1位的长度,而入口搜索关键字字段31a 可以具有vi位的长度。类似地,出口可变搜索关键字51可以包括有效字 段51b和出口搜索关键字字段51a。有效字段51b可以具有1位的长度, 而出口搜索关键字字段51a可以具有ve位的长度。恒定搜索关键字41可 以具有与恒定ACL数据库30的数据库条目(例如,条目45)相同的配 置。恒定搜索关键字41可以包括恒定搜索关键字字段41a,该恒定搜索关 键字字段41a可以具有s位的长度。

可变数据库条目的入口可变字段和出口可变字段(例如,分别为条目 35的入口可变字段35a和条目55的出口可变字段55a)是分别包含搜索关 键字31和51的搜索关键字字段31a和51a的可能值的数据字段。可以在 转发消息之前从消息的一个或多个可变数据中获取入口搜索关键字字段 31a。可以在消息被转发之后从消息的一个或多个可变数据中获取出口搜 索关键字字段51a。如本文所使用的,消息的“可变数据”是由消息转发 引擎25的转发逻辑对其值进行改变的数据。因此,出口搜索关键字字段 51a可以在取值方面相对于相同消息的入口搜索关键字字段31a被修改。

恒定数据库条目的恒定字段(例如,条目45的恒定字段45a)是包含 恒定搜索关键字41的恒定搜索关键字字段41a的可能值的数据字段。可以 从消息的一个或多个恒定数据中获取恒定搜索关键字字段41a。如本文所 使用的,消息的“恒定数据”是消息转发引擎25的转发逻辑不改变其值 的数据。因此,可以从转发之前的消息获取恒定搜索关键字字段41a,并 且可以将恒定ACL搜索的结果与入口ACL搜索的结果和出口ACL搜索的 结果进行融合,因为恒定搜索关键字41由于消息的恒定数据保持不变而 未改变。

在系统10的示例实施例中,三个数据库30、40、和50被实现为能够 分别使用独立的搜索关键字31、41、和51进行独立的搜索。根据特定的 实施方式和协议,为了创建搜索关键字,可以从消息的各个层获取可变搜 索关键字字段和恒定搜索关键字字段。通过示例的方式,在TCP/IP协议 中,可以从转发之前的消息(例如,传入消息15)的层2和/或层3中的 可变数据获取入口搜索关键字字段31a。入口可变搜索关键字31还可以被 配置以用于与诸如有效字段35b之类的有效字段进行比较的有效字段 31b。类似地,可以在消息(例如,传出消息17)被转发并被提供给传出 接口23之后,从该消息的层2和/或层3中的可变数据获取出口搜索关键 字字段51a。出口可变搜索关键字51也可以被配置以用于与诸如有效字段 55b之类的有效字段进行比较的有效字段。最后,可以从消息的层4、5、 6、和/或7中的恒定数据获取恒定搜索关键字字段41a。

在图2所示的示例实施例中,通过每个ACL数据库搜索生成匹配向 量。从ACL数据库的搜索中生成的匹配向量是位向量,其中,每个位表 示所搜索的ACL数据库中的数据库条目之一。匹配向量中的每个位的值 指示搜索关键字对相应的数据库条目产生“命中”还是“错过”。例如, 二进制“0”可以指示搜索关键字与相应的数据库条目不匹配(或“错 过”),而二进制“1”可以指示搜索关键字与相应的数据库条目相匹配 (或“命中”)。将显而易见的是,这些位可以被配置为利用相反的值来 指示命中或错过(即,二进制“0”指示命中,并且二进制“1”指示错 过)。此外,匹配向量中的位的位位置(bit position)可以表示相应的数 据库条目的偏移。例如,匹配向量中的具有位位置0-d的位可以分别表示 数据库中的数据库条目0-d。

在图2所示的示例实施例中,利用入口可变搜索关键字31对入口可 变ACL数据库30进行的搜索生成了具有d位的入口可变匹配向量32,并 且每个位表示入口可变ACL数据库30中的条目之一。这些位的值指示通 过入口可变搜索关键字31哪些入口可变数据库条目产生命中(例如,二 进制“1”)以及哪些入口可变数据库条目产生错过(例如,二进制 “0”)。而且,这些位的位位置可以表示相应的入口可变数据库条目的 偏移。例如,如果入口可变搜索关键字31与入口可变数据库条目35(例 如,第n个条目)相匹配,则入口可变匹配向量32中的位位置n处的位可 以被设置为二进制“1”,以指示在入口可变ACL数据库30的条目n处命 中。

利用出口可变搜索关键字51对出口可变ACL数据库50进行的搜索生 成了具有d位的出口可变匹配向量52,并且每个位表示出口可变ACL数 据库50中的数据库条目之一。这些位的值指示通过出口可变搜索关键字 51哪些出口可变数据库条目产生命中(例如,二进制“1”)、以及哪些 出口可变数据库条目产生错过(例如,二进制“0”)。而且,这些位的 位位置可以表示相应的出口可变数据库条目的偏移。例如,如果出口可变 搜索关键字51与出口可变数据库条目55(例如,第n个条目)相匹配, 则出口可变匹配向量52中的位位置n处的位可以被设置为二进制“1”, 以指示在出口可变ACL数据库50的条目n处命中。

利用恒定搜索关键字41对恒定ACL数据库40进行的搜索生成了具有 d位的恒定匹配向量42,并且每个位表示恒定ACL数据库40中的条目之 一。这些位的值指示通过恒定搜索关键字41哪些恒定数据库条目产生命 中(例如,二进制“1”)、以及哪些恒定数据库条目产生错过(例如, 二进制“0”)。而且,这些位的位位置可以表示相应的恒定数据库条目 的偏移。例如,如果恒定搜索关键字41与恒定数据库条目45(例如,第 n个条目)相匹配,则恒定匹配向量42的位位置n处的位可以被设置为二 进制“1”,以指示在恒定ACL数据库40的条目n处命中。在一些实现方 式中,恒定匹配向量42可以被存储在恒定匹配向量存储设备44中,直到 出口ACL搜索被执行从而产生可以与恒定匹配向量42相融合的出口可变 匹配向量52为止。

如本文所描述的,系统10的数据库30、40、和50可以被实现在任意 合适的存储器元件中。例如,在系统10的硬件实施方式中,数据库30、 40、和50可以被实现在三元内容寻址存储器(TCAM)中。TCAM可以 通过同时将搜索关键字与数据库中的每个条目进行比较来提供遍历数据库 的搜索。因此,在某些实施方式中,搜索数据库30、40、和50中的任意 数据库可以是并行处理。

图1和图2中所示的数据库结构允许针对在ACL网络节点20的入口 和出口处被评估的每个消息对恒定数据库40进行单次搜索。结果恒定匹 配向量42可以被共享,并且被用于获取入口ACL搜索结果和出口ACL搜 索结果二者。更具体地,可以将恒定匹配向量42与入口可变匹配向量32 和出口可变匹配向量52进行比较(或融合),以确定任意相应的数据库 条目是否在相应的入口ACL搜索和出口ACL搜索过程中被识别出来。在 一个示例实施例中,入口融合匹配向量33可以是来自入口可变ACL数据 库30和恒定ACL数据库40的匹配向量结果的按位逻辑AND(逻辑 与),如AND门38所示。类似地,出口融合匹配向量53可以是来自出 口可变ACL数据库50和恒定ACL数据库40的匹配向量结果的按位逻辑 AND,如AND门58所示。结果入口融合匹配向量33可以指示具有如下 情况的每个入口ACL规则:该规则的相应部分基于利用相应搜索关键字 31和41进行的搜索而被识别出来(在相应的入口可变匹配向量和恒定匹 配向量中被指示为“命中”),并且基于具有相同的偏移而被关联。类似 地,结果出口融合匹配向量53可以指示具有如下情况的每个出口ACL规 则:该规则的相应部分基于利用相应搜索关键字51和41进行的搜索而被 识别出来(在相应的出口可变匹配向量和恒定匹配向量中被指示为“命 中”),并且基于具有相同的偏移而被关联。

入口融合匹配向量33可以被优先级编码,以确定入口ACL规则中最 高优先级匹配的地址(如果有的话)。同样,出口融合匹配向量53可以 被优先级编码,以确定出口ACL规则中最高优先级匹配的地址(如果有 的话)。在一个示例实施方式中,ACL数据库中的条目被按照优先级递减 的顺序进行排列,从而使得具有最低地址的条目具有最高优先级。因此, 优先级编码器39可以从入口融合匹配向量33确定具有最低地址的第一命 中条目,以产生具有log2(d)位的入口匹配索引34。类似地,优先级编码 器59可以从出口融合匹配向量53确定具有最低地址的第一命中条目,以 产生具有log2(d)位的出口匹配索引53。替代地,任意其他合适形式的优 先化可以被配置在系统10中。匹配索引34和54可以分别被用来查找 ACL动作60中将被执行的相关联的ACL动作。

相应的入口可变ACL数据库30和出口可变ACL数据库50中的有效 字段35b和55b允许任意给定的双向ACL条目(例如,数据库30、40、 和50中的第n个条目35、45、和55)可被编程为单独用于入口ACL搜 索、单独用于出口ACL搜索、用于入口ACL搜索和出口ACL搜索二者、 或不用于搜索。当双向条目被编程为仅入口时,入口可变ACL数据库30 中的条目被包括在入口可变ACL搜索中,而出口可变ACL数据库50中的 相应条目在出口可变ACL搜索过程中被排除。相反,当双向条目被编程 为仅出口时,出口可变ACL数据库50中的条目被包括在出口可变ACL搜 索中,而入口可变ACL数据库30中的相应条目在入口可变ACL搜索过程 中被排除。基于硬件的双向ACL中的双向ACL条目的可编程性可以提供 硬件灵活性,从而以最小的硬件成本来满足广泛范围的客户ACL规定。

在提供双向ACL条目的可编程性的一个示例实施例中,当入口可变 ACL条目35的有效字段35b被设置(例如,二进制“1”)并且出口可变 ACL条目55的有效字段55b被清除(例如,二进制“0“)时,双向ACL 条目(例如,数据库30、40、和50中的第n个条目35、45、和55)可以 被编程为仅入口。相反,当出口可变ACL条目55的有效字段55b被设置 (例如,二进制“1”)并且入口可变ACL条目35的有效字段35b被清除 (例如,二进制“0“)时,双向ACL条目可以被编程为仅出口。当给定 的双向ACL条目的两个有效字段(例如,入口可变ACL条目35和出口可 变ACL条目55的有效字段35b和55b)均被设置(例如,二进制“1”) 时,针对该双向ACL条目的入口ACL搜索和出口ACL搜索二者均可以被 执行。

应当注意,本文关于“设置”可变ACL数据库条目的有效字段的指 代指的是向有效字段分配任意合适的值(例如,二进制“1”、二进制 “0”),以指示相应的ACL数据库条目是有效的并且应当被包括在ACL 数据库的搜索中。相反,本文关于“清除”可变ACL数据库条目的有效 字段的指代指的是向有效字段分配任意合适的值(例如,二进制“1”、 二进制“0”),以指示相应的ACL数据库条目是无效的并且不应当被包 括在ACL数据库的搜索中。而且,有效字段可以替代地被配置为多于一 位,因此,双向数据库可以被实现为使用其他值来“设置”或“清除”有 效字段。如果特定条目的可变字段与相应的搜索关键字的搜索关键字字段 相匹配,则入口搜索关键字31和出口搜索关键字51的有效字段可以被设 置为使能可变ACL数据库中的有效条目上的命中(即,当该条目的有效 位被设置时)。

系统10的数据库结构有效地消除了传统的双向ACL数据库中的对恒 定字段的重复存储和搜索。相反,本文所描述的实施例提供了单个恒定 ACL数据库40,该恒定ACL数据库40可以针对每个消息被搜索一次。针 对入口ACL搜索和出口ACL搜索,结果恒定匹配向量42可以被共享。作 为本创新的结果,用于重复恒定字段的资源被释放,并且可以被用来支持 附加的双向ACL数据库条目。而且,即使条目的数目并未增加,新配置 也是有益的,因为由于移除重复字段而减少了资源需求。

为了说明该效果,假设入口可变ACL数据库30需要X区域,出口可 变ACL数据库50需要Y区域,并且恒定ACL数据库需要Z区域。因 此,总硬件区域等于X+Y+Z。然而,单独的入口ACL数据库和出口ACL 数据库中的重复的恒定字段导致总硬件区域等于X+Y+(2*Z)。通常,恒定 ACL字段构成了巨大数量的双向ACL数据库条目,因而使(2*Z)减少一 半可以获得显著的硬件增益。而且,针对硬件实施方式和软件实施方式二 者,系统10的数据库结构没有增加延时,并且不损害吞吐量。可以显著 增强针对基于硬件的双向ACL设计的硬件利用率,并且可以将硬件利用 率扩展到软件实施方式。具体地,在软件实施方式中,避免遍历每个消息 的恒定字段的第二次搜索可以减少搜索次数,从而改善延时和吞吐量。

转向图3,流程300示出了当消息由系统10的ACL网络节点20接收 时可以在入口上被执行的示例操作步骤。流程300可以开始于302,在 302处,在ACL网络节点20的传入接口21处从上游网络节点12接收消 息(例如,传入消息15)。在一个实施例中,入口ACL模块22可以被配 置为执行流程300的其余操作步骤。可以在304处从传入消息15的可变数 据创建入口可变搜索关键字31,其中,根据传入消息的可变数据,有效字 段31b被设置(例如,二进制“1”)并且可变搜索关键字字段31a被获取 (例如,从TCP/IP协议消息的层2和/或层3)。在306处,可以利用入口 可变搜索关键字31对入口可变ACL数据库30进行搜索。

如308处所示,可以通过利用入口可变搜索关键字31对入口可变 ACL数据库30进行搜索来生成入口可变匹配向量32。在一个示例实施方 式中,对于与入口可变搜索关键字31相匹配(或者由入口可变搜索关键 字31识别为命中)的每个入口可变数据库条目,可以对入口可变匹配向 量32中的位进行设置(例如,二进制“1”)。相反,对于与入口可变搜 索关键字31不匹配(或者未由入口可变搜索关键字31识别为命中)的每 个条目,可以对入口可变匹配向量32中的位进行清除(例如,二进制 “0”)。此外,在入口可变匹配向量32中被设置或被清除的位可以在该 向量中具有与其表示的入口可变ACL数据库30中的数据库条目的偏移相 对应的位位置(例如,入口可变数据库条目35的位位置n)。

在一个实施例中,每个入口可变数据库条目的有效字段(例如,有效 字段35b)被评估,以确定该特定条目是否应该被包括在搜索中。例如, 如果有效字段35b为“1”,则入口可变数据库条目35可以在搜索中被评 估,并且入口可变匹配向量32中的位可以被基于数据库条目35是命中还 是错过而相应地被设置或者被清除。另一方面,如果有效字段35b为 “0”,则入口可变数据库条目35不可以在搜索中被评估,并且入口可变 匹配向量32中的位可以被清除(例如,二进制“0”),指示数据库条目 35为错过。

在310处,可以利用从传入消息15的恒定数据(例如,从TCP/IP协 议消息的层4和/或层5)获取的恒定搜索关键字字段41a来创建恒定搜索 关键字41。在312处,可以利用恒定搜索关键字41来对恒定ACL数据库 40进行搜索。如314处所示,可以通过利用恒定搜索关键字41对恒定 ACL数据库40进行搜索来生成恒定匹配向量42。在一个示例实施方式 中,对于与恒定搜索关键字41相匹配(或者由恒定搜索关键字41识别为 命中)的每个恒定数据库条目,可以对恒定匹配向量42中的位进行设置 (例如,二进制“1”)。相反,对于与恒定搜索关键字41不匹配(或者 未由恒定搜索关键字41识别为命中)的每个条目,可以对恒定匹配向量 42中的位进行清除(例如,二进制“0”)。此外,恒定匹配向量42中的 被设置或被清除的位可以在该向量中具有与恒定ACL数据库40中的数据 库条目的偏移相对应的位位置。尽管用于入口ACL搜索和恒定ACL搜索 的操作在图3中被顺序示出,但这些搜索可以被同时执行或被以任意其他 合适的重叠或时间安排顺序执行。

一旦入口可变匹配向量32和恒定匹配向量42被生成,则在316处, 可以将这些匹配向量进行比较来确定在这些搜索中识别出来的任何入口可 变数据库条目和恒定数据库条目之间是否存在相关性。一个示例相关性可 以是确定(在入口可变ACL数据库30的搜索中识别出来的)入口可变数 据库条目具有与(在恒定ACL数据库40的搜索中识别出来的)恒定数据 库条目相同的偏移。如果表示数据库条目的位的位位置在入口可变匹配向 量32中和恒定匹配向量42中是相同的,则可以确定该相关性。识别出的 相关性指示入口ACL规则可应用于传入消息15。在硬件实施方式中,可 以通过经由AND门38对匹配向量32和42进行按位逻辑AND来执行对 这两个向量的比较。在318处,入口融合匹配向量33作为AND门38对 这两个向量的操作的结果被生成。因此,有可能识别多个相关性,在这种 情形中多个入口ACL规则可以被应用到传入消息15。

在320处,做出关于任何入口ACL规则是否应用到传入消息15的判 定。例如,如果入口融合匹配向量33中的一个或多个位被设置为“1”, 则入口ACL规则应当被应用到传入消息15。因此,在322处,入口融合 匹配向量33中指示的最高优先级入口ACL规则被识别出来。该识别可以 由优先级编码器39实现,其中,优先级编码器39可以对向量进行优先级 编码,以确定入口融合匹配向量33所指示的最高优先级入口ACL规则的 地址(例如,第一命中索引),从而产生入口匹配索引34。入口匹配索引 34可以被用来查找ACL动作60中与匹配索引34相关联的ACL动作(例 如,准许流量、拒绝流量等)。

在324处,可以执行与可应用于消息的最高优先级入口ACL规则相 关联的ACL动作。例如,该消息可以被拒绝或被准许,或者可以采取任 意其他合适的动作。在326处,做出关于识别出的入口ACL规则和相关 联的动作是否阻止转发传入消息15的判定。例如,如果在324处采取的 ACL动作有效地丢弃或阻塞了消息,则该消息在ACL网络节点20中的进 一步处理被拒绝,并且流程300结束。否则,如果在324处采取的ACL动 作没有阻塞或丢弃该消息,或者如果在320处确定没有入口ACL规则应 用到该消息,则在328处,该消息被提供给消息转发引擎25。消息转发引 擎25可以通过桥接或路由将该消息进行转发,并且可以将所转发的消息 (例如,传出消息17)提供给传出接口23,以传输至下游节点14。

转到图4,流程400示出了在系统10的ACL网络节点20中对消息进 行转发之后可以在出口上执行的示例操作步骤。在消息转发引擎25的转 发逻辑被应用到消息(例如,传入消息15)之后,流程400可以开始于 402。在402处,传出接口23可以从消息转发引擎25接收传出消息17。 传出消息17可以包含来自传入消息15的已被修改的可变数据和未改变的 恒定数据。例如,传出消息17可以包含传入消息15的分段和应用数据 (例如,层4和更高层),但具有新的帧(例如,层2)和/或网络寻址 (例如,层3)。

在一个实施例中,出口ACL模块24可以被配置为在传出接口23在 402处接收到传出消息17之后并且在将该消息在422处发送到下游网络节 点14之前执行流程400的操作步骤。在404处,可以利用被设置(例如, 二进制“1”)的有效字段51b和从传出消息17的可变数据(例如,从 TCP/IP协议消息的层2和/或层3)中获取的出口可变搜索关键字字段51a 来创建出口可变搜索关键字51。在406处,可以利用出口可变搜索关键字 51对出口可变ACL数据库50进行搜索。

如408处所示,可以通过利用出口可变搜索关键字51对出口可变 ACL数据库50进行搜索来生成出口可变匹配向量52。在一个示例实施方 式中,对于与出口可变搜索关键字51相匹配(或者由出口可变搜索关键 字51识别为命中)的每个出口可变数据库条目,可以对出口可变匹配向 量52中的位进行设置(例如,二进制“1”)。相反,对于与出口可变搜 索关键字51不匹配(或者未由出口可变搜索关键字51识别为命中)的每 个条目,可以对出口可变匹配向量52中的位进行清除(例如,二进制 “0”)。此外,出口可变匹配向量52中的被设置或被清除的位可以在该 向量中具有与其在出口可变ACL数据库50中表示的数据库条目的偏移相 对应的位位置(例如,出口可变数据库条目55的位位置n)。

在一个实施例中,每个出口可变数据库条目的有效字段(例如,有效 字段55b)被评估,以确定该特定条目是否应该被包括在搜索中。例如, 如果有效字段55b为“1”,则出口可变数据库条目55可以在搜索中被评 估,并且出口可变匹配向量52中的位可以基于数据库条目55是命中还是 错过而相应地被设置或者被清除。另一方面,如果有效字段55b为 “0”,则出口可变数据库条目55不可以在搜索中被评估,并且出口可变 匹配向量52中的该位可以被清除(例如,二进制“0”),指示数据库条 目55为错过。

在406处对出口可变ACL数据库50进行搜索并且在408处生成出口 可变匹配向量52之前,可以由入口ACL模块22创建恒定匹配向量42。 此外,恒定匹配向量42可以被存储于可选的恒定匹配向量存储设备44 中,直到出口可变匹配向量52被生成为止。因此,一旦在408处出口可 变匹配向量52被生成,则在410处,可以将出口可变匹配向量52和恒定 匹配向量42进行比较,以确定在这些搜索中识别出的任何出口可变数据 库条目和恒定数据库条目之间是否存在相关性。一个示例相关性可以是确 定(在出口可变ACL数据库50的搜素中识别出的)出口可变数据库条目 具有与(在恒定ACL数据库40的搜索中识别出的)恒定数据库条目相同 的偏移。如果表示数据库条目的位的位位置在出口可变匹配向量52和恒 定匹配向量42中是相同的,则可以确定该相关性。所识别出的相关性指 示出口ACL规则可应用于传出消息17。在硬件实施方式中,可以通过经 由AND门58对匹配向量52和42进行按位逻辑AND来执行对这两个向 量的比较。在412处,出口融合匹配向量53作为AND门58对这两个向 量的操作的结果被生成。因此,有可能识别多个相关性,在该情形中,多 个出口ACL规则可以被应用到传出消息17。

在414处,做出关于任何出口ACL规则是否应用到传出消息17的判 定。例如,如果出口融合匹配向量53中的一个或多个位被设置为“1”, 则出口ACL规则应当被应用到传出消息17。因此,在416处,出口融合 匹配向量53中所指示的最高优先级出口ACL规则被识别出来。该识别可 以由优先级编码器59来实现,其中,优先级编码器59可以对向量进行优 先级编码,以确定出口融合匹配向量53所指示的最高优先级出口ACL规 则的地址(例如,第一命中索引),从而产生出口匹配索引54。出口匹配 索引54可以被用来查找ACL动作60中与匹配索引54相关联的ACL动作 (例如,准许流量、拒绝流量等)。

在418处,可以执行与可应用于消息的最高优先级出口ACL规则相 关联的ACL动作。例如,该消息可以被拒绝或被准许,或者可以采取任 意其他合适的动作。在420处,做出关于所识别出的出口ACL规则和相 关联的动作是否阻止将传出消息17发送给下游网络节点14的判定。例 如,如果在418处采取的ACL动作有效地丢弃或阻塞了该消息,则该消 息在ACL网络节点20中的进一步处理被拒绝,并且流程400结束。否 则,如果在418处采取的ACL动作没有阻塞或丢弃该消息,或者如果在 414处确定没有出口ACL规则应用到该消息,则在422处,该消息(例 如,传出消息17)被发送给下游网络节点14。

在一些实施例中,系统10的一个或多个特征可以在例如ACL网络节 点20中的硬件中被实现。然而,在一些示例实施方式中,本文所概括的 与该系统有关的至少一部分活动可以在软件中实现。在一些实施例中,该 软件可以从网络(web)服务器被接收或下载、被提供在计算机可读介质 上、或由特定元件(例如,ACL网络节点20)的制造商进行配置,以向 该系统提供双向ACL的改善的硬件利用率。在其他实施例中,这些特征 中的一个或多个可以在这些元件外部被提供,或者以任意适当的方式被合 并来实现预期的功能。

在本文所描述和所示的系统10的实施例中,与各种网络元件相关联 的处理器和存储器元件可以被移除或者被合并,从而使得单个处理器和单 个存储器位置负责某些活动。替代地,某些处理功能可以是分开的,并且 独立的处理器和/或物理机器可以实现各种功能。一般,附图中所描绘的部 署可以在其表示方式上更加合理,而物理架构可以包括这些元件的各种排 列、组合、和/或混合。需要注意,无数可能的设计配置可以被用来实现本 文所概括的操作目标。因此,相关联的基础设施具有大量代替部署、设计 选择、设备可能性、硬件配置、软件实施方式、设备选项等。

应当注意,本文提供了大量的示例,因而可以描述涉及两个、三个、 四个、或更多个网络元件的交互。然而,这只是出于清楚和示例的目的。 应当理解,该系统可以以任意合适的方式进行合并。随着类似的设计替 代,附图中所示出的计算机、模块、部件、和元件中的任意一个可以以各 种可能的配置进行组合,所有这些配置被清楚地包含在本说明书的广义范 围之内。在某些情形中,仅参照有限数目的网络元件对给定的流程集的一 个或多个功能进行描述更加容易。应当理解,如附图中所示,系统10及 其教导易于扩展,并且能够适应大量部件以及更复杂/精确的部署和配置。 因此,所提供的示例不应该限制该系统的广泛教导和范围可能被应用到大 量其他架构。

注意到参照前述的图所描述的操作和步骤仅示出可以由该系统或在该 系统内运行的可能场景中的一些场景也很重要。这些操作中的一些操作可 以根据需要被删除或者被移动,或者在不背离所讨论的概念的范围的情况 下这些步骤可以被大幅修改或改变。此外,这些操作的时序可以被大幅更 改并且仍能获得本公开所教导的结果。前述的操作流程是出于示例和讨论 的目的进行提供。该系统提供了大量的灵活性,在于在不背离所讨论的概 念的教导的情况下可以提供任意合适的安排、时间表、配置和时序机制。

在前面的描述中,出于解释的目的,提出了大量具体细节,以便提供 对所公开的实施例的彻底理解。然而,所公开的实施例可以无需这些具体 细节而被实施,这对于本领域的技术人员而言是显而易见的。在其他实例 中,结构和设备以框图的形式被示出,以避免模糊所公开的实施例。此 外,说明书中对“一个实施例”、“示例实施例”、“实施例”、“另一 实施例”、“一些实施例”、“各个实施例”、“其他实施例”、“替代 实施例”等的参考旨在于说明:与这些实施例相关联的任意特征(例如, 元件、结构、模块、部件、步骤、操作、特点等)被包括在本公开的一个 或多个实施例中。

对于本领域的技术人员而言,大量其他的改变、替代、变更、更改和 修改可以被查明,并且旨在于本公开包括落入所附权利要求的范围之内的 所有这些改变、替代、变更、更改和修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号