向接入因特网的用户提供所需的服务策略的制作方法

文档序号:7585371阅读:248来源:国知局
专利名称:向接入因特网的用户提供所需的服务策略的制作方法
技术领域
本发明总体涉及数字通信网络,更具体地说,涉及一种向接入因特网的用户提供所需的服务策略的系统与方法。
用户经常用本地系统来接入远程系统。在典型的情形中,用户会用(位于附近的)计算机系统来接入(一般位于遥远位置的)远程系统。对一些有用的应用-诸如Web浏览、电子邮件和数据库存取-来说,接入起着基础性的作用,这在相关技术中是众所周知的。
远程接入设备经常存在于本地系统与远程系统之间。远程接入系统一般起着源于用户的物理连接(例如大型团体在本地回路和专用T1线路上的拨号连接)的多路转换器或聚集器(集线器)的作用。远程接入设备的工作一般是向目的用户发送数字数据位(“位组”)和接收源于用户的位组。因特网业务提供商提供的(支持数字和/或数字调制解调器的)远程接入服务器、本地交换通信公司(传统的和竞争的本地交换通信公司(LEC))提供的数字用户线路接入多路转换器(DSLAM)以及有线电视提供商提供的有线调制解调器,都是这种远程接入设备的例子。
远程接入设备通常与数据交换机连接,数据交换机有选择地将所接收的位组,通常根据位组中编码的地址信息,转发到相应的目的地。在普通的实现中,数据交换机相当于因特网协议(IP)路由器,它检查IP分组的目的地地址,以确定该IP分组要发往的下一个点(一般是另一个路由器或计算机系统)。
在传统的实现中,路由器与远程接入设备的组合可能不满足用户的特定化要求(或希望的服务策略)。在本申请中,有特定服务策略要求的一组用户(包括单一用户)将被称为订户(subscriber)。首先举例介绍订户的特定化要求。然后说明传统路由器和远程接入设备不能充分满足用户要求。
订户可以有若干理由要有特定化要求。例如,一个含有诸如工商企业的大型团体的订户,以及该工商企业可能希望限制某些或全部用户所用的总带宽。其它某工商企业可能希望有一个虚拟专用网络(VPN),该VPN有可能对某些用户(但不是全部用户)来说的不同距离的位置之间的专用安全链路。另一些工商企业也可能希望限制对某些类型的应用的进入访问(例如,仅仅能进行Web访问,而不能文件传输或telenet),或者对于不同的应用具有不同类的服务(cos)。
除大型团体的这种要求外,个别用户(订户)也可以有不同的要求。这些个人可能是大型工商企业的一部分或是家庭用户。用户可能希望在高峰时间(例如网络通常更加拥塞的营业时间)只被分配56Kpbs,在其它时间被分配更高的带宽。某ISP可能希望对这种用户收取较低的费用。总之,应当明白用户或订户可能会有不同的和特定化的服务策略要求。
数据交换机与远程接入设备的传统组合不能充分满足这类要求的组合的原因有几个。例如,数据交换机可能主要是作为快速分组转发设备实现的-尽管有有限的优先化和接入控制方案。根据服务质量(QoS)和通信(traffic)参数优先通信(traffic)的异步传输模式(ATM)的交换机以及只过滤有些应用的数据的IP路由器,都是示例性的例子。
然而,为传统数据交换机和/或远程接入设备选择的体系结构,可能不具备为个别用户/订户定制服务策略的条件。转发信元(cell)的ATM交换机可能不能通过检查单一的信元就能区分各个用户。在较高层次运行的数据交换机(例如IP路由器)可以被设计得按统一标准处理分组一通常是为了提高速度,因此不能被设计得向个别订户提供定制化的服务策略。
如上所述,在一些情况中可能需要这种定制化。因此,所需要的是一种能向不同订户提供不同定制的服务策略的灵活的体系结构。
除定制化之外,一般需要该体系结构适合服务大量的订户。因此,所需要的是一种较好地适合服务大量订户的灵活的体系结构。
本发明涉及一种向每个订户提供希望的服务策略集合的互连网服务节点(ISN,internet service node)。ISN对于诸如ISP和LEC(两者既相互依存,又相互竞争)的远程接入提供商来说特别有用。接入提供商可以用ISN作为接入网络(access network)的边缘设备(edge device)向每个订户提供定制的服务策略。
按照本发明的ISN可以含有多个处理器组,每个订户被分配到一个处理器组。可以例如以分组服务卡(packet service card)的形式来提供处理器组。处理器组可以被配置以所有被指定订户的处理规则,使得处理器组能提供任何指定订户所希望的定制服务策略。
可以将ISN的一个端口(port)设计得能根据所接收数据涉及的特定订户来确定要向其转发所接收数据的特定处理器组。交换机组织(switch fabric)然后可以根据该端口的确定将数据转发到所确定的处理器组。
由于每个处理器组可能需要被设计得只服务(由ISN服务的)订户的一个子集,本发明可以较好地适合大型和/或复杂的连网环境。
本发明可以被用在接入网络的边缘(edge),以提供每个订户所希望的定制服务策略。在一个实施例中,所希望的服务策略可以用配置管理器(configuration manager)来规定。配置管理器既可以是与ISN集成在一起的,也可以是个不同的单元。
配置管理器可以将服务策略翻译成一个处理规则的集合,每个处理规则含有一个分类符(classifier)和一个相关操作(action)。分类符一般规定数据流和能向在该数据流上传输的数据位的集合施加该操作时的任何条件。在互连网协议(IP)环境中,源/目的地IP地址、源/目的地端口和协议类型字段一般共同定义一个支持特定远程接入应用的IP数据流。
条件可包括定义服务策略的特定变量的匹配。例如,某服务策略可能规定在上午9点-下午5点之间以特定方式处理数据位,在这种情况下,TIME(时间)是个变量,条件是TIME=上午9点-下午5点。另一个例子是,如果某订户所用的总带宽大于T1时,可以赋予该订户的数据位更低的优先级,在这个情况下,BANDWIDTH(带宽)是个变量,条件是BANDWIDTH>T1。
一般来说,多数处理规则都能由所规定的服务策略静态地建立。然而,有些处理规则可能需要在特定事件发生时动态地实例化。例如,拨号进入并依赖接入网络分配IP地址的订户的IP地址,可能不是预先就能得到的。所以,ISN在订户成功拔入后被分配一个IP地址时构建处理规则。
所以,本发明动态地实例化处理规则的功能,使ISN能服务可能是异步接入一个接入网络的订户,为ISN提供了也向这种订户提供定制服务策略的能力。另外,对于不活动(即未登入)的订户,由于不需要以处理规则配置一个ISN,该ISN可以用于服务大量的订户。
处理规则的动态实例化的另一个例子是,在RealAudio类型的应用中,可以在应用会话期(session)的中间启动新的TCP(或UDP)连接,该新的连接可能含有事先不能确定的端口号。端口号通常是用控制流协商的(negotiated)-这在相关领域中是众所周知的。ISN可以被设计得能检查控制流中的分组和确定所需信息,一旦该信息可用,就建立新的处理规则。
ISN的一个实施例包括多个处理器组,每个处理器组又含有多个处理器。订户的所有流都可以专用于由其中一个处理器组进行的初始处理。当ATM信元(cell)被用作数据流组时,可将信道标识符(channel identifiers)用于对各个处理器组的分配。为了平衡负荷,可以用加权循环的方式将分组分配给组内的各个处理器。也可以采用其它资源分配方案或管理策略。
处理分组(以提供所希望的服务)的处理器可以作为与接入和干线端口分离的物理单元来提供。物理分离使处理器和端口的数目能彼此独立地改变(增加或减少)。由此取得的灵活性使按照本发明的体系结构能很好地适合支持大量的订户。
如上所述,可以将与每个订户相关的数据分配给处理器组。本发明的一个方面提供一种有效的方法来向处理器组分配这种数据。这种分配要结合一个以一系列ATM信元的形式被接收的IP分组来说明。
要确定向其转发IP分组的特定处理器组,可能需要检查IP分组的报头数据。当以多个订户为目的地的信元数据在一个共享ATM虚拟连接上被接收时,至少是这样,因为所有信元可能含有相同的VPI/VCI数据。当在干线端口上收到发往订户的数据时,通常遇到这种情况。在这种情况下,可以通过检查位于IP报头中的IP目的地地址来确定该处理器组。
然而,在有些情形中,可能需要进一步检查IP分组内的数据才能确定订户。例如,可能在L2TP隧道的特定呼叫(call)上收到与订户相关的数据。在这种情形中,可能需要检查所接收的分组来确定UDP协议类型、规定L2TP协议的UDP端口号、隧道ID和订户特定的呼叫ID(Call ID)。
本发明通过使用一个内容可寻址存储器(CAM)(其中每个CAM存储单元都有搜索字段、掩码和输出字段),使这种检查得以高效进行。每个存储单元的搜索字段都可以被配置成能存储标识一个订户的数据,该输出字段可以被配置成存储标识能向该CAM项相关的订户提供所希望的服务策略的处理器或一组处理器的数据。
另外,为检查标识该订户的位,可以对每个CAM存储单元建立一个掩码。作为示例,当在一个共享的ATM连接上接收到多个订户的数据时,可以将一个CAM存储单元设计成只检查目的地IP地址。另一方面,当在L2TP隧道上接收到一个订户的数据,可以建立该相应CAM存储单元的掩码字段以检查多个数据字节。
这样,当接收到IP分组的第一个(“报头”)信元时,报头数据被作为输入提供给CAM,输出数据标识一个适当的处理器。由于不同的CAM项可能会有不同的掩码,所以一次CAM访问就能找到一个匹配的项。匹配项的输出既可代表一个处理器(组)标识符,也可导致为确定该处理器的进一步访问。
当输出数据不代表一个处理器标识符时,在本文所述实施例中,输出数据要么含有IP表中的变址(index),要么指示需要另外的CAM检索才能确定处理器(组)标识符。变址对最小化CAM项的数目很有用。变址可用来从高速存储器(例如SRAM)内存储的表中选择一项,所检索的值可代表处理器标识符或处理器组标识符。作为例证,通过选择一个适当的掩码CAM项只可以检查IP地址的前三个字节并由此提交一个对应225个IP地址的匹配项。对高速存储器的其它访问可以提供特定的处理器标识符。
当CAM在搜索字段中含有的位的数目不足以识别一个订户时,一般需要进行其它的CAM检索。例如,当用一个L2TP隧道接收订户数据时,可能要求检查比单个CAM存储单元的搜索字段中可用的更多数量的位。在这种情况下,可以在第一次检索中检查一些位,在随后的检索中检查其它位。仅当检测到一个对应所有检索的匹配时,才视为发生了匹配。
在本申请中所述的一个实施例中,可能只要求两次检索。然而,要求其它的方法的实施例应视为在本发明的精神和范围内。是否要求检索,要视协议的格式和需要检查的位数而定。
在ISN的一个实施例中,上述特点既可以在从订户接收信元的接入端口(access ports)中实现,也可以在接收以订户为目的地的信元的干线端口(trunk ports)中实现。该ISN包括多个处理器组,单个一组一般被配置成能处理与一个订户有关的IP分组。此外,可以设计一个交换机组织来根据所接收信元的报头向其中一组分配信元。具体来说,VPI/VCI字段可以唯一地标识处理交换机组织所接收信元的处理器组。
相应地,本发明的一个分配逻辑通过使用CAM来确定处理器组,并用该处理器组标识符来替换IP分组的所有信元的信元报头的一部分(例如VPI)。交换机组织然后就可以将所有与IP分组相关的信元分配给由信元报头(VCI/VPI)标识的处理器组。
因此,本发明通过为每个订户提供单独的处理规则,并用该处理规则来处理在来自订户的不同数据流上接收的数据位,就能为各个订户实现所希望的服务策略。
按照本发明的ISN可以很好地适合服务大量的订户,因为可以将每个订户分配给一个提供所希望的服务策略的处理器组。
本发明特别适合远程接入应用,因为能提供ISN作为边缘设备,它能控制所有应用数据流,为每个使用单个ISN的订户提供所希望的服务策略。
本发明使得订户设备更容易管理并且费用更低,因为通过远程接入服务提供商就能实现所希望的服务策略(在订户处所不需要智能设备)。
本发明使多个订户能共享同一个ISN,因为一个订户的服务策略一般不会影响其它订户。
本发明对服务通过拨号(或其它异步机制)接入远程接入网络的订户的远程接入提供商特别有用,因为能将订户策略动态地添加到订户的ISN。
本发明使大量的订户能得到服务,因为订户的处理规则能被动态地实例化,并且只需要用活动订户的处理规则来配置ISN。
本发明使一个ISN能很好地适合服务大量的订户,因为能增加处理器的数量并能将处理分组的计算负荷分布在处理器间。
本发明提供一种灵活的服务大量订户的体系结构,因为处理器与用于传输和接收数据的端口物理上是分离的,并且,处理器的数量能独立于端口的数量被改变,反之亦然。
因此,本发明提供了一种通过使用具有各个存储单元的掩码的CAM将构成一个IP分组的信元分配给预先规定的处理器或处理器组的快速高效的方法。
本发明使得在一次CAM访问中就能确定一个标识符,因为每个存储单元能被配置以对应需要为订户检索的(与该存储单元相关的)位的掩码。
本发明通过用一组IP地址的单一的CAM存储单元,并用CAM访问的输出作为检索处理器或处理器组标识符的变址(index),使所需CAM存储单元的数目最小化。
本发明通过用所确定的处理器标识符替换信元中的VPI并让交换机组织用VPI来向处理器分配信元,使交换机组织能快速地将IP分组转发到相应的处理器。
本发明的其它特点和优点以及本发明各种实施例的结构和操作,在下文中结合各附图作说明。在各附图中,相似的标注号一般表示相同的、功能相似的和/或结构相似的成分。某部件首次出现所在的图由相应标注号中最左边的数字指示。
本发明将结合以下各附图进行说明

图1是表示按照本发明的一个方法的流程图;图2是表示能在其中实现本发明的一例环境的电信系统的框图;图3是表示服务提供商可以用其提供每个订户所希望的定制服务策略的按照本发明的一个方法的流程图;图4是按照本发明所提供的互连网服务节点(ISN)的实施例的框图;图5是按照本发明的ISN中提供的分组服务卡的实施例的框图;图6A和6B是表示为订户提供所希望的服务策略的处理规则的例子的表;图7A是表示所有存储单元只有一个共同的掩码的CAM的操作的框图;图7B是表示每个存储单元有一个掩码的CAM的操作的框图;图8是表示本发明实施例中确定用于处理IP分组的处理器的电路的框图9是表示本发明实施例中为不同的应用确定处理器标识符所执行的步骤的流程图;图10是表示用图9的方法修改信元报头的分配逻辑的实施例的细节的框图。
1.本发明概述和讨论按照本发明所提供的互连网服务节点(ISN)使定制服务策略能被提供给个别的用户或订户。ISN可以使网络管理器能为每个订户规定所希望的处理规则集合。当收到数据时,ISN可以首先确定该数据涉及的特定订户,并按照对应该订户的处理规则来处理所接收的数据。
因为首先要确定所接收数据的相关订户,并且只能将对应该订户的处理规则应用到该数据,所以,由于不考虑由该ISN服务的其它订户的处理规则,数据能得到高效的处理。
按照本发明的另一个方面,可以将对应每个订户的处理规则分配给预先规定的处理器或处理器组。于是,可以将与每个订户相关的数据转发给相应的处理器(组)。
因为每个订户可能被分配给不同的处理器组,本发明就可以很好地适合服务大量的订户。换言之,服务提供商就可以通过增加处理器来服务更多的订户。
下面就几个示例来更详细地说明本发明。然而应当注意,本发明可以在其它若干环境中实现,可能有若干变动。现在首先来说明按照本发明的方法。
2.方法图1是表示按照本发明的一个方法的流程图。在步骤110中,可以确定为每个订户提供所希望的服务策略所要求的处理规则。处理规则一般规定对数据进行的处理的方式(例如丢弃、转发、优先化、加密等)。在下述实施例中,处理规则可含有一个分类符和一个相关操作。分类符规定要对其施加该操作的(订户的)数据位。
在步骤120中,可以用对应若干订户的处理规则来配置一个互连网服务节点。配置机制与互连网服务节点的具体实现有关,若干个这种机制的实现方法,对于相关领域的熟练人员来说-至少根据本文中提供的内容-是显而易见的。
在步骤130中,互连网服务节点可以接收以位组为形式的数据。在步骤140中,互连网服务节点可以通过检查位组来确定所接收数据涉及的订户。对特定订户的确定还是与位组所采用的特定格式有关。下面以异步传输模式(ATM)为参照来更详细地说明一个实现的例子。然而应当注意,本发明是可以同其它格式(例如帧中继、以太网)一起实现的,根据本文中提供的内容,对相关领域的熟练人员来说,这也显而易见。
在步骤150中,互连网服务节点可以应用对应于步骤130中所确定订户的处理规则。数据按照处理规则被转发(或丢弃)。由于处理规则被设计得用于提供订户所希望的服务策略,互连网服务节点可以按照本发明来提供服务策略。此外,由于可以将互连网服务节点配置以特定于每个订户的处理规则,可以为每个订户提供差异服务。
下面就一例环境来更详细地说明本发明。然而,了解位组的格式是有用的(特别是就ATM而言),这有助于确定所接收数据涉及的特定订户。
3.位组概括来说,位组指能按组标识的若干位。视支持不同访问方法的协议而定,可以使用不同的位组格式。相关领域中众所周知,多个位组可按照预先规定的协定构成另一个位组。举例来说,若干ATM信元中的数据可构成一个IP分组。
为具体说明起见,对本发明的说明基本上是在按ATM信元传送的互连网协议(IP)分组的上下文中进行的。然而应当明白,本发明能用其它协议和传送机制实现,这对相关领域的熟练人员来说是显而易见的。
每个ATM信元含有53个字节的数据,其中5个字节用作报头,48个字节用作有效负载(使用ATM网络的实际应用数据)。报头含有虚拟路径标识符(VPI)和定义信道的虚拟信道标识符(VCI)字段。连接路径中的下一个节点,一般是在该信道由适当的信令方案(signaling scheme)建立时被定义的。要详细了解ATM,读者可参阅标题为《ATM理论和应用》一书(ISBN:0070603626,1994年9月McGraw-Hill出版的计算机通信丛书,作者David E.McDysan和Darren L.Spohn),并在此完全引用。
有时,可以用ATM信元来验明订户-方法是检查VPI/VCI字段(以及该信元被接收所在的端口号)。然而,许多时候,各个ATM信元并不含有为提供定制服务策略而准确地确定相关订户所必需的信息。应当明白,ISN因此需要检查更高层的协议才能确定信元可能需要根据其进行处理的订户服务策略。
相应地,可以将ATM信元的有效负载装配起来构成更高层协议(本文的例子是IP协议)的分组。然后可以检查所装配的分组,来确定数据涉及的订户以及向该分组所应用的特定于该订户的处理规则。下面就IP环境来说明在更高层协议分组的检查中的考虑。
4.标识订户和有关协议(IP)分组通过了解如以下说明的分组与远程接入应用关联的方式,任何将服务策略与各个用户有关的分组相关联就将显而易见。
每个普通的远程接入应用都要求一个含有至少两个方向上的数据流的连接。数据流通常指的是用于支持某个应用的、从源系统去往目的地系统的一系列IP分组。在IP环境中,应用通常由TCP或UDP端口来标识。TCP和UDP端口一般是为了确定与某应用的关系而预先指定或协定的。通常使用源和目的地端口号协议类型(TCP、UDP或ICMP)、端口号连同源和目的地IP地址一起定义一个IP流。
有些应用特定的会话采用多于两个的流,并可能采用多个连接。与某应用会话相关的全部流定义一个对话(conversation)。在IP环境中,一般在TCP(传输控制协议)、UDP(用户数据报协议)和ICMP(因特网控制报文协议)之上来实现对话-这在相关领域中是众所周知的。视应用而定,对话可以含有多个数据流。例如,诸如文件传输协议(FTP)和RealAudio的应用采用多个数据流,有时使用更高层的组合(例如IP字段中的TCP对UDP)。
TCP是由应用所使用的最普通的高级传送(transport),因为,TCP使用潜在的不可靠的IP分组传输提供了可靠的数据流。TCP连接一般含有端口号和IP地址都反向的两个数据流。例如,假设N1、N2、N3和N4分别指一个方向上的数据流的源IP地址、源端口号、目的地IP地址和目的地端口号,则另一个方向上的数据流将分别有N2、N1、N4和N3来代表相同的变量。可以用多TCP连接来实现某个应用。
就UDP来说,源端口当在两个端系统之间检查时一般是不可预测的。就ICMP而言,这种端口被类型和标识字段替代。
由以上叙述中应当知道,每个流都能通过检查IP分组内容而被唯一地识别。此外,许多类型的应用都使用预先指定的端口号(例如SMTP邮件使用端口25),如果处理规则是按用户应用规定的,就能用端口号来标识特定用户的应用。
在有些实例中,用于某对话中的流的端口号,可以根据通常设置在预先指定的已知端口上的“控制流”上进行的协商来确定。例如,在多媒体(含有正文、声音和图象的组合)应用中,可以用多个流来传输与每个多媒体成分相关的数字数据。首先在一个预先定义的端口(例如端口200)上启动一个控制连接,然后根据该控制连接上的分组流来确定其余流的端口。这些新流的端口号是按预定的约定被编码的-这在相关领域中是众所周知的。
至少采用以上说明的一般格式和协议,就可以实现一个ISN,如下文更详细说明的那样向每个订户提供所希望的服务策略。为具体说明起见,首先讨论能在其中实现本发明的一例环境。然后说明本发明的实施例。
5.环境例图2是一例能在其中实现本发明的电信系统环境200的示意图。该图表示的是ISN 250能被远程接入服务提供商(例如因特网服务提供商)用来向订户提供有差别服务的方式。用户(订户)位置(210、230-A和230-X)用不同的接入技术与互连网服务节点(ISN)250连接。ISN 250是在接入网络290中提供的。按照本发明,ISN 250能实现向不同用户提供所希望的不同服务策略。
用户网络210可含有若干与路由器220相连的系统。用户网络210可被视为含有一个订户或多个订户。路由器220可以用诸如串行线路接口协议(SLIP)或点对点协议(PPP)的协议以IP分组的形式向ISN250传送数据。图中显示,用户位置230-A和用户位置230-X连接到远程接入设备240,后者可相当于一个(支持模拟和/或数字调制解调器的)远程接入服务器或以已知方式实现的DSLAM。远程接入设备240可以以分段成ATM信元的IP分组的形式来传送数据。每个位置230可以含有单一的或多个订户-如下文所述。
应当明白,图2的接口和订户位置只是例子。在不偏离本发明的精神和范围的情况下,ISN 250可以用不同的媒体和技术与不同的订户位置连接,对于相关领域的熟练人员来说,这是显而易见的。这种其它实现被视为不超出本发明的范围和精神。
按照本发明ISN 250处理在各种接口上接收的数据,为的是向不同订户提供所希望的服务策略。尽管未予表示,也可以将远程接入设备240看作是接入网络290的一部分。ISN 250也可以不依赖数据交换机280就直接与因特网连接。一般来说,如果ISN250的实现不包含路由功能,就会需要数据交换机280。
所希望的服务策略是由处理规则指定的或被翻译成处理规则,处理规则指出对应不同订户的应用的数据需要被处理的方式。为了使不同的位组能与不同的应用相关,ISN 250可以将位组组合成含有必要信息的分组。然后将处理规则施加到各分组,以提供所希望的服务策略。数据交换机280可以从ISN 250接收位组并与因特网中的其它外部系统连接。按照预先规定的设计,数据交换机280可以相当于一个IP路由器、ATM或帧中继开关。
如图2中也显示的那样,ISN 250对诸如ISP和LEC(它们负有义务或有竞争)的远程接入服务提供商有特别的应用。由于能向各种订户提供所希望的服务策略,本发明的ISN 250可以被安置在远程接入网络290的边缘处(即与订户装置连接)。在这种情况下,可以将ISN 250称为边缘设备、进入/外出路由器或网关。
正如从以下说明中将表明的那样,在边缘处用ISN 250,使订户装置(例如路由器220)能以较低的复杂程度实现,并由此提供更容易的管理和更低的成本。这种特点对ISP和LEC特别重要。相应地,图3表示能向每个订户提供所希望的服务策略的方式。
6.用边缘设备提供差异服务图3是表示按照本发明、服务提供商可以向订户提供有差异服务的方式的流程图。在步骤310中,本发明的ISN 250被提供作为图2所示接入网络中的一个边缘设备。由于IP协议被各种系统广泛使用,所以可以将ISN 250实现为一个IP路由器。
在步骤320中,可以为每个订户规定不同的服务策略。服务策略可以规定-例如-由某订户或该订户所使用的某些系统所能使用的总带宽、防火墙参数(哪些应用/IP地址是被允许出/入的)、对指定对话的安全措施(具有加密和隧道的防电子欺骗的虚拟专用网络)、缓冲器和带宽的使用中的优先级(例如给予诸如telnet的交互式应用更高的优先级)、通信控制(traffic steering)等等。下面更详细地说明规定服务策略的例子。
在步骤325中,可以生成对应这些服务策略的处理规则。每个处理规则含有一个分类符和相关操作。分类符规定所有的数据流和需要向该数据流上的数据施加该相关操作时的任何条件。在IP环境中,每个数据流依次可以被协议类型、源/目的地IP地址、和(TCP/UDP)源/目的地端口唯一地标识。分类符可以规定多个数据流。
条件可能是特定于实行中的服务策略的类型。例如,某订户可被允许在非营业时间期间有更高的带宽。另一个订户可以让数据被赋予较低的优先级-如果该数据要在规定的时间期间肯定会到达某特定订户的话。下文将结合图6B来更详细地举例说明这些条件。
许多处理规则都可以在服务策略被规定时预先生成。然而对有些处理规则来说,可能预先不能得到必需的信息。在这种情形下,就要动态地在该信息可用时生成规则。下面举例介绍一些动态生成处理规则的情况。
一例要求动态生成规则的情况是订户使用与接入网络290的拨号连接并依靠接入网络290来分配IP地址。例如,就图2来说,用户位置230-A可能对应于一台使用调制解调器的电脑。当用户建立拨号连接时,用户位置230-A处的机器的IP地址可以由验证-授权-接入(AAA)服务器来分配-这在相关领域中是众所周知的。假设处理规则要求一个分配的IP地址,则只能在IP地址的分配之后生成该处理规则。
另一个例子是,就有些应用而言,可能会在某应用会话的中间启动数据流,而端口信息则只能在相应的数据流启动之后才可用。端口信息通常是在两个端系统之间的协商期间确定的。端口信息一般包含在起着协商基础的作用的分组中。
相应地,ISN 250可能必须监测有些流上的分组才能确定其它流的端口号。ISN 250然后可以用所确定的信息来生成带分类符和相关操作的处理规则。
在步骤330中,将处理规则在ISN 250中实例化。实例化一般指通过ISN 250的适当配置来激活处理规则。一旦实例化,ISN 250就-如下文更详细说明的那样-将处理规则应用到相应的订户。
可以注意到,有些处理规则是可以在例如ISN 250启动时或在规定了所希望的服务时预先实例化的。另一些处理规则是可以在如上所述的在步骤325中生成时实例化的。
在步骤340中,ISN 250可按照提供给订户装置的特定接口来接收位组。在步骤360中,位组被转换成适合应用处理规则的分组。如果该位组含有足够的用于应用处理规则的数据,则可以将位组本身按没有转换的分组来处理。例如,如果位组相当于一个没有分段的完整IP分组,可能就不需要进行装配(assembling)。如果位组是个ATM信元,就可以将多个信元的有效负载组合(装配)起来形成一个IP分组。
一般来说,如果IP分组是分割的(fragmented),有时可能需要将多个IP分组中的数据进一步组合成单一的分组。例如,要使各个IP分组的长度小到能符合连接路径中某个中间网络所允许的最大分组长度,就可能要进行分割。组合而成的分组也将被称为分组。总之,可以对位组进行多层次的装配,以确定(以位组形式接收的)订户数据是否与分类符相配。
在步骤380中,按照为每个用户提供的处理规则来处理分组。就是说,首先将每个分组与某订户关联,然后应用对应于该订户的处理规则。正如相关领域中众所周知的那样,在远程接入期间,一个IP地址可以被多个机器共享。相应地,虚拟信道号(例如ATM中的VCI/VPI组合、帧中继中的DLCI)可首先识别一个订户,然后可以将该订户关联的处理规则应用到在该信道上接收或发送的分组。
在有些情况下,多个订户可共享一个信道标识符。例如,当把网络210的一个子组视为一个订户时,网络210的订户就可以共享单一的信道。在这种情况下,可以将IP地址设计成非重叠的,使得不同的流与不同订户唯一地关联。类似地,ISN 250可能会收到发往一个信道上的各订户的分组。在这种情况下,ISN 250可能需要检查IP地址和其它信息才能将分组与订户关联。
要保证得到可预测的和所希望的服务策略,可能需要按若干可能次序中的一种次序来应用处理规则。总之,该处理确定是否/何处/如何转发分组以及以什么优先级转发分组。要实现处理规则,就需要在ISN 250中保存若干个“状态”。例如,如果一个预定的总带宽要被分配给多个流,就可能需要为限制总体带宽维护为这多个流传输的位数。分组中的数据一般需要按照装有连接路径中下一个系统的接口来转发。
所以,通过对不同的分组应用处理规则,就可以向每个订户提供所希望的服务特点。图3的方法可以在几个ISN中实施。下文更信息地说明ISN 250的实施例。
7.互连网服务节点图4是表示一个实施例中的ISN 250的细节的框图。ISN 250可包括接入端口(410-A和410-B)、干线端口(420-A、420-B和420-C)、开关组织440、分组服务卡450-A和450-B、路由/服务管理卡(RMC)460和配置管理器470。在上下文意义清楚的情况下,将用420来总体或个别地代称干线端口420-A、420-B和420-C。对本申请中所述的其它部件也采用类似的约定。
可以注意到,分组服务卡450与端口410和420物理上是分离的。这种物理上的分离使分组服务卡450的数量能独立于端口410和420的数量而改变,反之亦然。这种灵活性使ISN 350能很好地适合服务大量的订户。
接入端口410为接收和发送预定格式的信元提供必要的物理接口。诸如Sonet这样的协议可用于高速接口。为具体说明起见,假定接入端口410将发送和接收以ATM信元为形式的数据。每个接入端口410都向开关组织440转发ATM信元。
干线端口420向订户提供用于互连网接入的高速接入线。干线端口420从开关组织440接收ATM信元(或其它位组),并在由信道标识符(或其它目的地地址)所指定的相应线路上转发这些信元。类似地,干线端口420可以从因特网接收以ATM信元或IP分组为形式的数据位组,并将这些数据位组转发到开关组织440。在这种接收情况中,要确定数据所要转发到的特定处理器组,可能需要检查较高层的协议信息(例如IP报头)。一旦相应的处理器组接收到数据,就检查该数据,以确定该数据涉及的特定订户,以及要应用的相应处理规则。
在一个实施例中,在一个线路卡上装备多个端口,每个端口能被配置为干线端口或者接入端口。线路卡能支持不同的接入技术,诸如帧中继、ATM、Sonet分组、快速以太网、千兆以太网。
配置管理器470为实现对不同订户规定的不同的服务策略提供一个方便的用户界面。服务策略确定对不同订户提供的服务。配置管理器470可以将(如服务策略所确定的)各种配置参数传输给RMC 460,RMC 460进而配置不同的部件来提供这些服务策略。在一个实施例中,配置管理器470是作为单独的计算机系统实现的,它按照预定的协议与ISN 250交互。在另一个实施例中,配置管理器470可以被集成在ISN 250中。
配置管理器470可在信息可用时将服务策略翻译成处理规则,并将处理规则提供给相应的分组服务卡450。分组服务卡450可以为相应的订户实例化这些处理规则。例如,配置管理器470可以与验证-授权-接入(AAA)服务器交互,以确定何时向通过拨号连接接入该接入网络的订户分配IP地址,并将对应该订户的处理规则提供给一个分组服务卡450。
路由/服务管理卡(RMC)460执行最短开放通道优选(OSPF-OpenShortest Path First)、RIP或BGP之类的路由协议来为每个IP分组确定下一个中继段(hop)(或通常所说的转发信息)。路由协议能用已知的方式执行。RMC 460可提供以VCI/VPI信息为形式的转发信息,用于识别IP分组的下一个中继段。
此外,RMC 460还可配置ISN 250的不同部件来实现本发明的不同功能。就L2TP而言,可以将RMC 460设计得能处理对建立L2TP隧道和隧道内部的呼叫的请求。RMC 460可以向接收与该隧道有关的数据的相应接入/干线端口提供呼叫ID、隧道ID和任何其它必要信息。接入端口然后就能用该信息来将在隧道中接收的IP分组分配给某特定的分组服务卡450。
开关组织440从接入端口410接收位组,并在接收整个分组的数据后将所接收的位组转发到分组服务卡450。如果数据位是按ATM信元接收的,则可按照相关领域中众所周知的AAL5协议来确定某分组的最后一个信元。这样,一旦某分组的数据可用,就可将构成一帧的所有信元发送给适当的分组服务卡450。在不同的分组服务卡450中可以实行不同的服务策略类型。相应地,可以将每个(使用该连接或订户标识符的)订户分配到提供所希望的服务策略类型的分组服务卡。
为了确定适当的分组服务卡,开关组织440可保存与位组在其上被接收的每个信道相关联的信道标识符。就ATM信元来说,位组中的VCI/VPI信息唯一地确定这种信道。如果数据是直接从订户接收的并且以因特网为目的地,则(数据被接收时所在的)物理端口号和信道标识符可唯一地识别每个订户(或者一组非重叠IP地址的订户)。另一方面,如果数据是从因特网接收的,要确定相关的订户就要检查IP报头。总之,开关组织440可将各信元缓存起来,直到接收到分组的最后一个信元,然后将分组的全部信元转发到为各个订户分配的分组服务卡。
开关组织440接收来自接入端口410和干线端口420的信元,并将这些信元转发到一个分组服务卡450。开关组织440可在接收到整个分组的数据时将所接收的信元转发到分组服务卡450。开关组织440可用高速的随机存取存储器(图中未予示出)来在等待最后信元到来时缓存各信元。分组的最后一个信元可按照相关领域中众所周知的AAL5协议来确定。这样,一旦某分组的数据可用,就可将构成一帧的全部信元发送到适当的分组服务卡450。
开关组织440可按照服务处理规则在处理之后从分组服务卡450接收分组,并在一个干线端口420上发送所接收的分组。具体的干线端口420可通过联系每个信道的特定干线端口420来确定,信道也可由分组服务卡450所提供的信道标识符来标识。在干线端口420上传送之前,开关组织440可将这些分组转换成信元。
分组服务卡450可以用每个订户的许多处理规则来配置,其中每个处理规则含有一个分类符和相关操作。分类符一般规定数据流和为了向每个订户提供所希望的服务策略而向该数据流上传输的数据位的集合施加该操作所要遵循的任何条件。在互连网协议(IP)环境中,源/目的地IP地址、源/目的地端口和协议类型域通常一起定义一个支持特定远程接入应用的IP数据流。
每个分组服务卡450可被配置以对应于一个订户的许多处理规则,有若干原因。例如,通过将每个订户的数据处理分配给特定的分组服务卡450,每个分组服务卡450就可只需要以对应于分配给它的订户的处理规则来配置。
可以采用多个分组服务卡450来很好地适合复杂的大型环境。此外,有些分组服务卡450可以有用于处理有些类型的订户数据的特殊功能。
分组服务卡450可以先将信元数据装配成能用以订户标识的分组。订户一旦确定,就能确定该分组涉及的流,然后施加相应的处理规则。在该过程中,分组服务卡450可确定是否丢弃或转发该分组。分组服务卡450可按该订户的处理规则来处理所接收的信元以便给每个特定订户提供所希望的服务策略。
分组服务卡450可根据路由管理卡460提供的路由信息或与输入信元相关联的信元报头来为分组确定下一个中继段。根据该下一个中继段为所有要从所处理的分组生成的信元生成一个新的VCI/VPI号。分组服务卡450将带有新的VCI/VPI号的各信元发送给开关组织440,供在适当的干线端口420上转发。
尽管每个订户被说成是被分配给一个分组服务卡450的,应当明白,多个分组服务卡可以处理与单一订户有关的数据。当将分组服务卡之一设计成用来提供适合所有/许多订户的特定的特殊服务,而将其它分组服务卡设计成用来提供订户所希望的其余服务时,通常出现这种情况。在这种情况下,可能要用开关组织按预定的顺序将服务卡之一处理过的数据转发到另一个分组服务卡。也可以将所有这种分组服务卡中的处理器称为处理器组。
通过对每个分组应用处理规则,分组服务卡450可以使ISN 250能提供若干按照本发明的特征。在不偏离本发明的范围和精神的条件下可以实现分组服务卡450的若干个实施例。下文说明一例实现。
8.分组服务卡图5是表示分组服务卡450一个实施例的细节的框图。分组服务卡450可含有四个处理器组(550-A至550D)、处理器接口(PIF)530和控制逻辑520。以下详细说明每个方框的操作。
控制逻辑520协调和控制分组服务卡450中其它部件的操作。控制逻辑520可以确定处理器组中处理器的哪一个能处理分组。在一个实施例中,将各分组循环地在四个处理器之间分配。控制逻辑520可与配置管理器470一起操作,用与所分配订户相关的处理规则来实例化(配置)处理器组550。
当实现服务策略要求在检查数据流中所传输的数据的基础上动态实例化处理规则时,控制逻辑520可检查数据流并生成新的处理规则。作为例证,在H.323中,IP语音(voice-over-IP)、或流型应用(streaming applications)、新连接或数据流都可以在控制流中实现的协商的基础上动态地创建。控制逻辑250可检查控制流,根据检查来确定任何必要的信息(例如端口号)和创建处理规则。控制逻辑250可以配置处理器组550,确保处理器组550执行由处理规则规定的操作。控制逻辑520又可以由于用配置管理器470规定的服务策略而受控制。
PIF 530可以从开关组织440接收各信元并将(构成一个IP分组的)这些信元转发到四个处理器组550之一。在一个实施例中,PIF 530可含有四个与四个处理器组对应的输入端,开关组织440可在如VCI报头信息所确定的这四个端口之一上(因此就是向某特定的处理器组)发送这些信元。就是说,VCI报头不仅能确定分组服务卡,也能确定处理所接收信元的特定处理器组。
每个处理器组550可以唯一地被分配以若干个订户。RMC 460可生成必要的命令,来将每个处理器组550配置以与所分配的订户相关联的处理规则。RMC 460可确定哪个特定处理器组550要处理每个订户相关的数据,并将相应的处理器组配置以与所分配的订户相关联的处理规则。配置命令可通过处理器接口530发出。
每个处理器组550都可含有若干处理器和一个用于存储与某个分组相关的信元的SRAM(未予示出)。SRAM可由处理器组550中含有的所有处理器共享。处理器组550中的所有处理器都能处理所有与被分配的订户相关的数据。在由与各信元相关联的信道标识符可确定处理器组的同时处理该分组的特定处理器则可由控制逻辑520确定。
由于每个订户都可以被分配到某个处理器组550,服务提供商通过增加额外的处理器组就可以服务更多的订户。所以,本发明所提供的解决方案很好地适合大型网络。此外,还可以将某个处理器组设计得能服务某订户的特定策略要求。例如,可以只将处理器组550-B设计得提供虚拟专用网络(VPN),并将所有要求VPN的订户分配给处理器组550-B。下面参考图6A和6B来更详细地举例说明一些服务策略。
9.服务策略的例子图6A和6B共同表示某订户的订户策略的一个例子。为了具体说明,将各分组说成是按照第一匹配策略进行处理的。然而,对于相关领域的熟练人员来说,显然可以使用其它匹配策略,例如“最佳匹配”策略。
图6A表示如何能为实现安全性(security)而规定不同策略规则。首先注意到,安全性策略的分类符的选择仅包括标识流所需的数据(无条件)。服务规则610规定的一个分类符,IP地址=SubsA或局1,目的地IP地址=SubsA或局1,服务=IMAP,以及用3xDES加密协议加密匹配数据的操作。就是说,SubsA与局1之间的邮件交换要用该指定的协议加密。
为了实现服务规则610,可生成两个处理规则,每个规则有一个规定一个流的分类符。一般来说,每个处理规则都可以以一个互元组的形式生成,该五元组包括源IP地址、目的地地址、协议字段(例如TCP或UDP)、源端口号和目的地端口号。
至少有些服务规则参数是预先就能得到的,因此能被静态地翻译成相应的处理规则参数。所以,假定服务规则610的IP地址SubsA和局是事先已知的,就可以从该服务规则生成两个处理规则,因为IMAP的TCP端口号是预先规定的。
然而,如果其中一个IP地址(例如SubsA)是要动态地生成的-例如由于用户系统需要建立一个拨号连接,则用户界面470可以在用户被分配到IP地址之后动态地生成处理规则。该处理规则也可以动态地被实例化。
服务规则620试图接受并加密来自或去往SubsA的HTTP、SMTP和TELNET(远程通信网)业务(traffic)。可以为HTTP、SMTP和TELNET每一个生成处理规则。这三个应用的协议类型和端口号是预先规定的,于是,假定(SubsA和其它局的)IP地址也是已知的,处理规则就可以静态地生成。
服务规则630接受所有去往SubsA-Web-Srvr的HTTP业务。服务规则640接受所有与SubsA-Web-Srvr有关的SMTP业务。服务规则650接受所有来自SubsA-Subsets的业务。服务规则660丢弃所有其它数据并对所丢弃数据作记录,供以后算帐或分析用。可以容易地理解,图6A的方法能被用来实现特定于订户的安全性要求。不同的订户可以有不同的策略规则来适应他们的个别需要。
在图6A的方法中,每个分类符一般包括识别流所需的信息。分类符可包括特定于服务策略的条件-如图6B中所示的那样,该图表示一个实施例中用于监管(policing)的服务策略规则。监管一般指对共享可用带宽的不同连接的带宽的优先化和分配。
服务规则680规定,如果数据正在总带宽小于1Mbps、持续带宽小于500Kbps的SubsAlink-In上被接收,则该数据必须要以该服务类型(TOS)重新传输。持续带宽和总带宽,可按照若干已知方法之一来测量。该分类符规定,该规则在一天中的任何时间对所有TOS都适用。TOS、时间、地点和线路状况(LineCond)都是用于监管服务策略的条件。
如果服务规则680的线路状况受侵害,服务规则680就降低数据的优先级。由于上述实施例的ISN 250在干线端口430上发送之前重新生成数据位组,所以能以已知方法降低TOS值。
如果至少采用上述实施例,就能由ISP向每个订户提供特定化的服务策略。如上所述,本发明对远程接入应用特别有用。
此外,ISN 250作为边缘路由器的实现,使得能在订户处所部署简单的设备。作为例证,如果没有本发明,位于图2的网络210的订户可能需要配备一个复杂的路由器220以提供不同的服务策略。管理开销会高得令人不能接受。相反,如果采用本发明,通过一个使用合适的ISN 250的配置的中央远程接入提供商就能提供所希望的服务策略,由此简化了订户处所的设备的配置和管理。
然而,与互连网服务节点相关联的一个要求是,与订户相关的数据要快速和有效地分配给特定处理器作处理,这样才能在有大量订户的环境中使用本发明的解决方案。下面来说明一些与按照本发明的这种分配和解决方案相关联的问题。
10.向处理器分配中的问题通过以上说明可以注意到,开关组织440可能需要向特定处理器组450分配IP分组的信元。由于开关组织440可以接收不同接入端口和干线端口上的信元,所以向特定处理器组450的分配可能需要迅速地(在短时间内)进行。
为了迅速,可以根据对信元报头的检查来进行分配。在下面的进一步说明中,将假设仅根据VPI来进行分配。然而,在对信元的分配中可以用信元报头的其它部分-这并不偏离本发明的范围和精神。当信元在接入端口410上被接收时,可以将信元在其上被接收的各连接的VPI号控制得对应于该特定处理器组450的标识符-这对相关领域的熟练人员来说是显而易见的。
然而,当信元是在干线端口420上接收的时,多个订户一般共享相同的ATM虚拟连接。在该相同的ATM连接上接收的不同订户的订户数据可能需要被分配给不同的处理器。在这种情况下,要确定处理各ATM信元的特定处理器,就可能需要检查各ATM信元中的数据。
就IP网络来说,可能需要检查IP分组的第一个ATM信元的有效负载中含有的IP目的地地址,才能确定要将该IP分组分配到的(订户)处理器。正如相关领域中众所周知的那样,一系列的信元代表一个IP分组,第一个信元通常含有IP目的地地址。所以,当从干线端口420接收到信元数据时,可能至少需要检查IP报头信息。
检查信元数据的需要,并不限于信元是在干线端口420上接收的这种情形。当在接入端口410上接收到信元时,可能也需要检查信元数据。例如,当信元涉及到诸如隧道(例如L2TP和L2F)和IP安全性(通常含有与相同虚拟电路上的多个订户有关的数据)之类的应用时,可能需要进一步检查更高层(例如UDP、TCP)的报头数据才能确定处理各信元的特定处理器。
为简明起见,参照L2TP来解释这种要求。然而应当明白,本发明可以应用于其它一些应用。在这类应用的上下文中采用本发明,视为在本发明的范围和精神之内。
在L2TP中,所有使用一个隧道的IP分组共享同一个IP目的地地址,即分配给ISN 250的IP地址的其中之一。然而,L2TP一般是在UDP协议类型的顶上实现的,UDP端口号标识的是该IP分组与某个L2TP隧道有关。UDP分组中的隧道ID和呼叫ID字段进一步标识IP分组所涉及的特定订户。用于处理的处理器可根据该订户的身份来确定。所以,可能需要进一步检查分组中更高层协议(UDP)的报头或其它信息才能确定订户信息。
要使开关组织440能根据对信元报头的检查将各信元分配到其中一个分组服务卡450,就可能要调换一个不同的信元报头(或其它标识数据),使开关组织440能将各信元分配给由该信元报头标识的分组服务卡450。在上述的例子可能都需要这种替换。可能需要实时地进行这种较高层次协议的检查以及替换,以避免大范围地缓存。
本发明使得能够检查信元报头和用有掩码的CAMs替换个别存储单元。首先概要地说明带有各个存储单元的掩码的CAM的操作。然后举例说明本发明。
11.带有各个存储单元的掩码的CAM要理解带有各个存储单元的掩码的CAM所取得的效率,首先参照图7A来说明常规CAM的操作。图7A包含的CAM 710一般只提供一个用于访问的掩码。图中所示的CAM 710,每个CAM单元720-A、720-B等都有一个搜索字段711和一个输出数据字段715。
操作中,分别在值总线701和掩码总线702上接收到输入值和掩码。每个输入值和掩码具有的位数等于搜索字段的长度(搜索字段711的位数)。如果在由掩码总线702规定的位位置上的输入值匹配(即等于)搜索字段711中对应的位,就在输出总线749上生成在输出字段715中存储的数据,作为输出。就是说,只有由掩码702指定的位位置中的各位才可以作比较。
所以,如果需要对在CAM 710的不同存储单元720中的不同位位置进行匹配,就可能需要进行相应次数的多次访问(每次用不同的掩码)。
应当明白,可以将标识每个订户的IP报头(包括UDP/TCP/ICMP信息)数据存储在每个存储单元720中,可以将所收到的IP分组的第一个信元中的IP报头数据作为值701而提供。然而,由于不同情况下要检查的位位置不同(例如当差异仅仅根据的是IP目的地地址时,需要检查IP目的地地址;对于L2TP来说,可能需要检查IP目的地地址、协议类型、UDP端口号、隧道ID和端口ID),所以可能需要在掩码总线702上提供不同的掩码值。
就是说,可能需要进行多次CAM访问,每次访问有相应的、代表为获得订户匹配而检查的位位置的掩码。这种多次CAM访问会耗费令人不能满意的较长时间,因此不能令人满意。
另一个实施例可使用多个CAM 710单元,每个CAM以一个特定的掩码服务订户。然而,至少从成本方面考虑,多个CAMs可能也是不能令人满意的。如下文所述,可以用一个具有用于各个CAM存储单元的掩码的单一CAM来避免对多次访问的需要。
图7B是有多个存储单元(770-A、770-B和770C)的CAM 750的框图。CAM可包含输入总线751、搜索字段761、输出字段765和输出总线799,它们分别类似于图7A的输入总线701、搜索字段711、输出字段715和输出总线749。此外,CAM 750还包含掩码字段764,它存储与各个存储单元770关联的掩码。因此,不是所有存储单元共用一个掩码,而是CAM 750的每个存储单元都有相关联的掩码。
操作中,当在输入总线751上提供输入值(输入位)时,只将由相应的掩码规定的每个CAM存储单元的位位置与输入位作比较,并在输出总线799上提供相匹配的存储单元的输出字段765中的输出值。该输出值可(直接或间接地)标识将信元(或分组)分配给其作进一步处理的处理器。
所以,能将不同的掩码用于不同的存储单元。每个掩码规定要作比较的位位置。该位位置本身则是由要在对处理信元的处理器的确定中作比较的特定字段确定的一如下文例示的那样。
12.参照IP环境的例示本节举例说明在下述两个情形中如何确定订户(由此确定用于处理的处理器)(1)当IP目的地地址唯一地标识订户时;(2)对于L2TP。在本节的说明中,首先说明如何能用相应的订户来标识IP分组。然后说明这种标识在一个实施例中是如何能用于信元的分配的。
总之,应当明白,有待标识的位位置与协议所用的特定格式有关。关于IP和L2TP的资料可在“意见征询”(Request for CommertsRFC)768、791和1483中找到,本申请对它们全部引用。
就第1种情形例来说,要在互连网协议4.0版中确定一个匹配的目的地IP地址,可能需要检查下列位位置(以字节边界来表示,其中每个字节含有8位),以确定下述关系字节1IP版本号=4;报头长度=20个字节;
字节17-20所接收分组的目的地IP地址=分配给特定订户的IP地址。
类似地,当使用L2TP接收订户数据时,可能需要检查下列位位置(即在掩码中未被屏蔽的),以标识(该IP分组涉及的)订户并由此标识处理器字节1用途同上字节10协议类型=UDP字节17-20所接收分组的目的地IP地址=ISN 250的一个接口的IP地址假定IP报头长度为20字节,要检查以下字节字节23-24目的地UDP端口号L2TP协议的端口号字节29-30L2TP版本、长度和报头信息字节31-32如果长度不存在,分配给该订户的隧道ID=由所接收的IP分组指定的隧道ID字节33-34如果长度存在,分配给该订户的隧道ID=由所接收的IP分组指定的隧道ID字节35-36所接收分组的呼叫ID=分配给该特定订户的呼叫ID。
所以,总之,每次搜索可能都要求检查一些标识分组格式、版本号和应用类型(例如L2TP)的位位置和另一些特定于订户的位位置(例如,对L2TP情形来说的呼叫ID和/或隧道ID,上述第一例中的目的地IP地址)。当所有位位置都匹配时,就可以将所接收的IP分组对应到与所匹配的存储单元关联的订户。
继续参照图7B,可以为每次搜索分配一个CAM存储单元。例如,可以为上述例1的类型的搜索分配CAM存储单元770-A,为上述例2的类型的搜索分配CAM存储单元770-B。CAM存储单元770-A的掩码字段764可以使对应于字节1、17和18的位位置没有被屏蔽(设置为0),其余位可以是被屏蔽(设置为1)。CAM存储单元770-A的搜索字段可在相应的位位置中含有标识IP协议版本号的数据、长度和标识某订户系统的IP地址。
CAM存储单元770-B的内容可以是类似的。按照上述各字节的位位置可以是没有被屏蔽的。搜索字段761可以在相应的位置被设置以适当的值,其中隧道ID和/或呼叫ID唯一地标识某个订户。
如果需要支持一个以上的协议格式,则可能需要用多个项来确定订户。例如,在上述例2中,如果长度字段不存在的话,可能需要提供一项用于检查字节31和32;如果长度字段存在的话,可能需要提供另一项用于检查字节33和34。类似地,如果订户可能使用IP协议的不同版本(例如IP版本6)的话,可能需要提供更多的项。总之,CAM 759中的各项定义了一个搜索树,每个叶子标识一个订户。多个叶子可以标识相同的订户。
一旦将报头数据(用于IP和更高协议数据)作为输入提供在输入总线751上,输出字段765中存储的数据就被作为输出提供在输出总线799上。应当明白,标识多个订户的数据可以被存储在存储单元770中,匹配是在一次访问中检测出来的。
然而,搜索字段的宽度(因此掩码和输入的宽度)可能需要至少40个字节(320个位),才能彻底地检查IP报头和更高层的信息。各个存储单元的有掩码的CAM的商业实施例,经常是宽度较小的。至少为了解决这个宽度问题,就可以采用下述的最优化。
13.最优化在一个实施例中,假定IP报头长度为20字节并且采用IP版本4,只检查IP分组的字节1、7、8、10、13-15、17-20、23、24和27-36。然而对于相关领域的熟练人员来说,显然,根据本文所作的说明,根据具体应用,可以搜索不同的位位置。这种搜索也被视为在本发明的范围和精神之内。
上述各字节含有诸如相关领域中著名的L2TP、L2F、IPSEC等应用的信息。通过在搜索过程中回避其它字节,所需的CAM宽度被最小化到24个字节(192个位)。然而,可以以宽度更小的CAM来操作。在下面说明的实施例中,可以提供一个在搜索字段761中只有112个位(14个字节)的CAM。
在这种情况下,可以将一个搜索分割成一系列的搜索,其中只有当系列中前面的搜索匹配时才进行后续的搜索。系列中所有搜索都匹配时,表明所接收的IP分组与该系列搜索涉及的订户有关,于是就用由该CAM的输出所指定的处理器来处理该IP分组。
下面结合L2TP来说明对宽度不足的CAM的操作。这些CAM可以在接入端口410和干线端口420中实现。作为例示,下面说明在干线端口420中的实现。
14.干线端口图8是表示按照本发明的一个电路的实现和操作的框图。成帧器(framer)810可提供接收订户数据时的电气接口。成帧器810可由所接收的位装配字节,然后将装配好的字节提供给分配逻辑850。这些字节构成信元数据。开关接口(switch interface)880从分配逻辑850接收信元数据并将所接收的数据转发到分组服务卡450。成帧器810和开关接口880可以以已知的方式实现。
IP表860使得根据源或目的地IP地址向处理器分配IP分组。具体来说,通过使用IP表860,本发明可以使支持多个订户所需的CAM存储单元的数目最小化。可以用CAM查找来首先生成一个索引,然后用表860中的数据来进一步确定要向其分配IP分组的特定处理器组。
处理器接口830可以与RMC 460连接,并且配置CAM 820使与每个订户相关的数据能按本发明被分配到某特定处理器组。处理器接口可以在RMC 460的控制下进一步配置IP表860和VC表870。由于与L2TP类型的协议相关,处理器接口30可以从RMC460接收隧道相关的数据(例如呼叫ID、隧道ID和相应的处理器信息),并配置CAM 820,以便将与某订户相关的IP分组分配到某定处理器组。CAM 820、VC表870和IP表860可以由ISN 250中的所有接入端口和干线端口共享。
VC表870可以存储代表ATM信元中的VPI/VCI报头信息向唯一的连接标识符的一个映射(mapping)的数据。所以,VC表810响应接收VPI/VCI报头数据返回连接标识符。IP表860和VC表870可以用诸如SRAM等高速存储器来实现。
CAM 820可以与图7B的CAM 750相似,并含有每个CAM存储单元的掩码。掩码和搜索字段被配置得使得能迅速地确定匹配项。从下述说明中将更清楚地了解到需要如何来配置CAM 820。
CAM 820的输出可代表一个标识符。该标识符要么直接代表一个处理器或处理器组,要么可以作为用于进一步搜索的一个索引(index)。在本文所述的实施例中,标识符代表处理器组或者指向IP表860的索引。CAM 820的输出也可以规定该输出应被解释为索引还是用于进一步搜索的索引。
分配逻辑850接收每个以一系列信元为形式的IP分组,确定要在其上处理IP分组的处理器组。为了进行这种确定,分配逻辑850一般从构成IP分组的一系列信元的第一个信元选择相关的报头字节(IP报头和必要的上层报头)。将所选择的字节作为CAM 820的输入。CAM 820的输出代表上述的标识符。
在一个实施例中,对构成一个IP分组的整个信元序列修改该信元报头,修改后的报头标识在其上处理该IP分组的处理器(组)。下面结合图9和10更详细地说明一个用修改过的信元报头来向所标识的处理器(组)进行分配的分组服务卡450的实施例。这两个图进一步具体说明了当CAM的搜索字段的长度不足时采用的多次CAM搜索。
15.方法图9是表示本发明是如何能将涉及某订户的IP分组分配给(若干)处理器的流程图。在步骤910中,在每个CAM存储单元中配置掩码和搜索字段,其中掩码规定要被检查的位位置,搜索字段规定(来自分组报头的)标识订户的具体值。如上所述,在一个实施例中,RMC460和处理器接口830可以进行这种配置。下面来说明在有些情景例中通常需要考虑的事项。
CAM 820的有些项可以在ISN 250运行并处理订户数据时被动态地配置。例如,当订户通过电话线建立一个拨号连接并被分配一个新的IP地址时,可以根据IP目的地地址建立一项。
CAM 820的其它一些项可以被静态地配置。例如,当多个订户共享同一个ATM虚拟连接并被连接到同一个接入端口,并且如果每个订户所用的IP地址是已知的时,就可以配置一个CAM项,用于检查源IP地址。
在一个实施例中,可以用单一一项对应每个订户,并能由单一的(源或目的地)IP地址唯一地标识。每个订户使用一项具有的一个问题是,CAM 820中所需存储单元的数目会大得不合理。要求大量存储单元,至少在IP环境中是个问题一在IP环境中每个订户在拨号进入ISP网络时都会被分配一个独有的地址。如下文详细所述,能用本发明来使CAM 820中所需存储单元的数目最小化。
不是为每个IP地址分配一个存储单元,而是可以为一组IP地址分配一个存储单元。对处理IP分组的处理器,可以结合IP表860中存储的项来确定。例如,IP地址的前三个字节可以标识组,CAM 820的输出可作为指向IP表860的基址的索引。IP地址的最后一个字节可作为相对该基址的偏移地址,IP表860中位于该偏移地址的存储单元可含有处理器号。
当单一的CAM存储单元含有一组IP地址的索引时,可以选择该CAM存储单元的掩码来反映这种分组(grouping)。例如,IP地址的前三个字节可以代表一个组,并可选择一个00.00.00.ff.的掩码。因此,CAM搜索提供指向256个(或254个-考虑到子网广播的因素)地址的首地址的索引。可以访问IP表860来确定处理所接收的IP分组的处理器。下面(参照步骤960和961)更详细地说明如何从IP表860检索处理器标识符。
就隧道来说,如上所述,要确定处理IP分组的处理器,可以检查IP版本号、报头长度、IP协议类型(即对于UDP)、IP目的地地址、UDP目的地端口号、L2TP版本号、隧道ID和呼叫ID。如上所述,在隧道和呼叫建立(call set-up)期间生成的必要信息可以由RMC 460提供,CAM 820可以被配置以适当的掩码和搜索字段。
在有些情况中,多个订户会共享同一个隧道。在这种情况下,每个订户可以唯一地由IP地址来标识。为了使CAM查找次数最小化,可以将某隧道的所有分组分配给单一的分组服务卡450,被分配的分组服务卡450中的处理器,可以通过检查隧道数据内编码的IP地址来区分不同的订户。
在步骤920中,可以接收构成一个IP分组的一系列信元的第一个单元(“报头信元”)。IP分组的最后一个信元可以按相关领域中众所周知的AAL5 ATM标准来确定,可以把随后的一个信元视为IP分组的第一个信元。
在步骤930中,分配逻辑850可以向VC表870发送接收该信元的端口号、所接收信元的VPI和VCI,并接收一个连接标识符和指示是否要求进一步搜索的数据。如果对处理器(组)的分配要求进一步检查由各信元构成的IP分组时,通常要求进一步搜索。
一般来说,从VC表870中检索的一个数据位指示是否要求进一步搜索。如果不要求搜索,该IP分组的各信元的报头就可以不改变并传送给开关接口880。然后,如果不要求进一步搜索,可将控制转移到步骤920;如果要求进一步搜索,可将控制转移到步骤950。
在步骤950中,分配逻辑850可通过选择构成IP分组的各信元中的一些字节来构造CAM 820的第一个输入值。需要按照步骤910中的存储中所用的搜索字段和掩码来选择各字节。第一个信元中通常包含构造该输入值所需的全部数据。
在一个实施例中,ISN 250可支持LLC/SNAP和VC Mux二者。一般可以为一个协议(本例中是IP版本4)建立VC Mux,LLC/SNAP包含一个指定Ethertype(以太网类型)字段的字节。Ethertype字段可以指定IP版本4或6,或者其它在该以太网类型的环境中通用的协议。这里只提供了适用于本发明的LLC/SNAP和VC Mux的细节。读者可参看RFC 1483来了解对这两个协议的进一步说明,并在此完全引用。
为适应LLC/SNAP和VC Mux这两个协议,分配逻辑850的一个实施例可在第一个输入值中包含下列字节(第一个输入值的)字节1和2LLC/SNAP的Ethertype字段,对于VC Mux来说,不关注(don’t care)。
字节3IP报头的字节1字节4-5IP报头的字节7和8字节6IP报头的字节10字节7-9IP报头的字节13-15字节10-13IP报头的字节17-20字节14下述的搜索类型字段搜索类型字段可指明在CAM 820上进行的搜索的不同类型。例如,该字段可指明这是第一次搜索(即步骤950)还是第二次搜索(即下述的步骤970)。该字段可进一步指明输入IP分组是在LLC/SNAP类型的虚拟连接上还是在VC Mux类型的虚拟连接上接收的。再次可以注意到,在每个CAM存储单元中的搜索字段需要按照输入值的格式来存储。一般来说,从前一搜索的输出就可以构成第二次搜索的类型字段。
搜索字段761中的数据还是需要按照输入值的格式(即选定的字节和提交给CAM时的次序)来存储。上文中叙述过一个例子中的输入字段的格式可以在步骤955中检查CAM 820的输出,以确定是否存在匹配项。如果检测不到匹配,控制就转移到步骤955,在此可以选择缺省处理器组来处理IP分组。如果有匹配,控制就转移到步骤960、961、970和980之一-具体视下文所述的CAM 820的输出而定。
CAM 820的输出数据要么直接要么间接地标识处理器(组)。如果是直接标识,数据本身可含有处理器标识符。如果是间接标识,通常需要进行其它的搜索。为了指明CAM输出中是否含有处理器标识符,可以在输出中加入一个标志。该标志标识如何能进一步确定处理器。
如果该标志有第一个值(例如1),对匹配的项的搜索相当于由目的地IP地址标识的一组订户。于是在步骤960中,可以在IP表860中检索地址为[由所检索的索引标识的预定的基址+所接收的IP分组中的IP目的地地址的最后字节]的项。所检索的项可以含有处理器(组)标识符。
如果该标志有第二个值,对匹配的项的搜索相当于由源IP地址标识的一组订户。控制于是转移到步骤961。步骤961的执行类似于步骤960,只是将源IP地址的最后字节(即位120:127)用作从由所检索的索引标识的基址开始的偏移地址。控制从步骤960和961转移到步骤980,在此从对IP表860访问的结果中选择处理器标识符。
如果该标志有第三个值,则步骤950的CAM搜索的搜索结果含有处理器标识符。例如当需要将要求特定的特殊服务的IP分组分配给某特殊处理器时,可能就是这样。另一个例子是当所接收的IP分组涉及诸如OSPF的路由协议时。可能需要按照步骤910中那样的匹配要求来配置各CAM项。
如果该标志有第四个值,控制转移到步骤975,在这种情况下,可能要求进一步搜索CAM 820以确定处理器(组)标识符。就诸如L2TP、L2F、IP Sec之类的情况而言,可能会要求这些进一步的搜索-对相关领域的熟练人员来说是显然的。如上所述,由于带掩码的CAM的搜索字段中可用的位数是有限的(例如112个),所以可能需要作第二级的搜索。假若CAM在搜索字段中含有足够的位数,就能避免多层(搜索),获得更高的吞吐率。
在一个实施例中,CAM 820的第二输入值可以有下列格式(假设IP报头有20个字节)(第二输入值的)字节1-2代表UDP目的地端口号的字节23和24字节3-13所接收的信元的字节27-37字节14搜索类型搜索类型可以指明当前搜索代表第二次搜索,它可以避免任何偶然的匹配。在一个实施例中,第二次搜索的搜索类型可以由第一次搜索的输出的各位构成。对于相关领域的熟练人员来说,显然,根据本文提供的说明,该格式和以上选择的字节足以搜索IP Sec,L2TP、L2F和许多其它协议。
如果有一个匹配项,CAM输出就可以含有处理器组标识符,于是控制转移到步骤980。在步骤980中,可以选择输出中的适当的位来代表处理器组标识符。如果不存在匹配项,控制就转移到步骤995,在此选择一个缺省处理器标识符。可以将所有没有匹配的IP分组发送给缺省处理器。
所以在步骤980和995结束时就确定了一个处理器组标识符,控制然后转移到步骤990,该步骤具体说明了一例保证所标识的处理器组执行以多个ATM信元的形式接收的IP分组的方法。
在步骤990中,将构成IP分组的所有ATM信元的VCI和VPI字段分别替换为连接标识符和处理器标识符。IP分组的最后一个信元可以按照相关领域中众所周知的ATM标准的AAL5来确定。一旦在步骤990中处理了最后一个信元后,控制就转移到步骤920,在此检查后继IP分组的第一个信元。
所以,图9的方法具体阐述了一例有效地将IP分组分配给预定的处理器组的方法。处理器组可以由以上在步骤990中指出的VPI字段来标识。如上所述,开关组织440可以将各信元转发到由VPI字段标识的处理器组。由于该处理器组含有这些信元涉及的订户的处理规则,所以就可以在处理这些信元(或由这些信元构成的IP分组)时应用相应的处理规则。
所以,通过替换ATM报头的VPI/VCI字段,分配逻辑850确保以ATM信元的形式接收的分组能被发送到适当的处理器组。下面更详细地说明分配逻辑850的一个实施例。
16.分配逻辑图10是表示一个实施例中的分配逻辑850的细节的框图。成帧器接口1010从成帧器810接收字节并将所接收的字节存储在信元存储器(cell memory)1020中。连接标识方框1030接收报头字节并将VPI/VCI数据和端口号发送给VC-表870。如果VC表870预先配置以用于连接的数据,连接标识方框1030就从VC-表870接收一个连接标识符。如果连接数据不是预先规定的,可以将这些信元发送到预先指定的特殊处理器组。连接标识方框1030可以用SRAM接口1040来与VC-表870连接。
分析器(Parser)1060通过与其它部件的连接可以执行图9中除步骤910以外的所有步骤。分析器1060从连接标识方框1030接收连接标识符,从信元存储器1020接收IP分组中的报头数据,然后确定处理器组标识符。分析器1060可以通过CAM接口1080与CAM 820连接,通过SRAM接口1040与IP表860连接。
分析器1060可以在需要替换时用所检索的数据来确定各信元的VPI/VCI。分析器1060可在信元存储器1020中存储新值,用来替换新的VPI/VCI值。信元存储器1020可能要有足够的存储空间才能在分析器确定新的VPI/VCI数据时将各信元缓存足够的时间。信元存储器1020中的数据被发送给开关接口880。
这样,通过用处理器标识符替换各信元的VCI字段,分析器1060就可使开关组织440能快速地将各信元转发到处理IP分组的适当的处理器组。换言之,开关组织440可能只需要检查信元报头(少量的位)就能将订户数据分配到特定的处理器(组)。处理器组本身又可被配置得能提供特定于相应订户的服务策略。
尽管本发明被说成是为了提供不同的服务策略而向不同的处理器组分配数据,对于相关领域的熟练人员来说,根据本文提供的说明,显然能在其它一些实施例中实施本发明,这类其它实施例被视为在本发明的范围和精神之内。
应当注意到,以上所述的图8-10中的实施例具体说明的仅仅是实现图1的步骤140和150的方法的例子.对于相关领域的熟练人员来说,根据本文提供的说明,在不偏离本发明的范围和精神的情况下显然能实现其它一些实施例。这类其它实施例被视为在本发明的范围和精神之内。
17.结语以上说明了本发明的各种实施例,应当明白,它们仅仅是作为举例而不是限制而提出的。所以,本发明的范围不应受上述任何实施例的限制,而应按照下列权利要求和它们等同物来定义。
权利要求
1.一种向多个订户中每个订户提供所希望的服务策略的集合的方法,该方法包含标识提供每个订户所希望的服务策略的集合的多个处理规则;用对应每个所述订户的所述处理规则配置互连网服务节点;在所述互连网服务节点中接收数据;在所述互连网服务节点中确定所接收数据涉及的特定订户;在所述互连网服务节点中对所确定的特定订户应用该多个处理规则,其中,该应用是在该确定之后进行的。
2.权利要求1的方法,其中,所述互连网服务节点是以一个接入网络的边缘设备的形式提供的,使得能从所述接入网络的边缘控制服务策略。
3.权利要求2的方法,其中,所述互连网服务节点包含一个边缘路由器。
4.权利要求1的方法,其中,所述互连网服务节点包含多个处理器,该确定和应用共同包含将每个所述订户分配给一个处理器组,其中每个处理器组被配置以对应所分配的订户的处理规则;在确定特定订户之后将与每个订户相关的数据传递到对应的处理器组。
5.权利要求4的方法,其中,每个处理器组包含多个处理器。
6.权利要求4的方法,其中,与分配给所述处理器组的订户有关的数据是以循环方式在多个处理器中分配的。
7.权利要求4的方法,其中,该多个订户的端系统用互连网协议(IP)生成数据。
8.权利要求7的方法,其中,所述数据包含ATM信元。
9.权利要求8的方法,其中,该确定包含检查ATM信元中含有的数据,对特定订户的确定根据的是该检查结果和ATM信元被接收时所在的端口,其中该端口包含在互连网服务节点中。
10.权利要求9的方法,其中,该应用包含在所述端口中决定数据要被传递到的特定处理器组,其中该特定处理器组是根据所接收数据涉及的特定订户而决定的;修改所述信元的报头,以指出所确定的处理器组,使得根据检查信元报头信元能被传递到适当的处理器组,其中该适当的处理器组被配置以与该特定订户相关的处理规则。
11.权利要求10的方法,其中的所述决定是用一个内容可寻址存储器(CAM)进行的,该CAM含有多个存储单元,这多个存储单元每个都有一个掩码、一个搜索字段和一个输出字段,该CAM被设计成能接收一个输入值并将该输入值与多个存储单元的每个的搜索字段中按所述掩码指定的位位置上的数据进行比较,该CAM被设计成在有与相应存储单元的匹配时可作为输出生成在输出字段中存储的数据。
12.权利要求11的方法,其中,存储在该CAM的输出字段中的数据要么直接地要么间接地标识一个处理器组的标识符,其中提供每项掩码和搜索字段来存储标识订户的数据,使得能用所述输出字段中存储的数据确定该标识符。
13.权利要求12的方法,其中,用所述标识符替换所述ATM信元的报头的一部分,使得通过检查所述报头就能将该ATM信元分配给设计成用来处理与该订户相关的数据的处理器组。
14.权利要求13的方法,其中,该标识符被存储在所述报头的虚拟路径标识符(VPI)或虚拟信道标识符(VCI)字段中。
15.权利要求12的方法,其中,IP报头的字节1、7、8、10和13~20被提供作为所述CAM的输入。
16.权利要求13的方法,其中,根据对该ATM信元的报头的检查开关组织将所述数据传递给所述处理器组。
17.权利要求13的方法,进一步包含在虚拟信道(VC)表中存储虚拟路径标识符/虚拟信道标识符(VPI/VCI)和端口号到一个连结标识符的映射,其中,所述VC表的每项进一步指示是否需要替换接收到的信元的VPI/VCI;访问所述VC表中对应于包含在所述所接收数据中的一个被接收信元的一项,其中,仅当该项中的数据指示VPI/VCI字段要被替换时才修改该被接收信元的报头。
18.权利要求17的方法,进一步包含将构成所接收数据的信元的VCI设置成该连结标识符;用所述CAM的输出生成一个处理器标识符或一个处理器组标识符;将该系列信元的VPI设置成该处理器标识符或该处理器组标识符,其中,所述开关组织用该VPI将该系列信元传递到该处理器的其中之一。
19.权利要求12的方法,进一步包含为检查对应一个IP地址的至少一些位位置而设置存储单元的所述掩码,结合所述掩码将所述存储单元的搜索字段设置成若干IP地址,其中这些IP地址至少有些是与该订户相关联的。
20.权利要求19的方法,这些IP地址每个都包含一个IP源地址。
21.权利要求19的方法,这些IP地址每个都包含一个IP目的地地址。
22.权利要求19的方法,进一步包含维护一个将若干IP地址的每一个映射到一个处理器标识符或处理器组标识符的IP表;用所述IP分组的IP地址的被屏蔽位置中的位和所述CAM的输出来检索该处理器标识符或处理器组标识符,其中,该系列信元被分配给由该处理器标识符标识的处理器或由该处理器组标识符标识的处理器组。
23.权利要求12的方法,其中该搜索字段含有的位数不足以存储标识该订户的数据,该方法进一步包含在该CAM的若干项中存储标识该订户的数据,其中,在确定该处理器标识符或处理器组标识符时要检查这若干项的输出。
24.权利要求23的方法,其中,将该CAM若干项之一的输出用作该CAM的该若干项的另一项的输入,其中该若干项的该另一项的输出标识该处理器标识符或处理器组标识符。
25.权利要求23的方法,其中,所接收的与该订户有关的数据是用L2TP隧道接收的。
26.权利要求25的方法,进一步包含提供所接收数据的第一个信元中含有的IP分组的字节1、7、8、10、13-15和17-20,作为第一个输入;提供该第一个信元中含有的IP分组的字节23、24和27-37,作为第二个输入。
27.一种向多个订户中每个订户提供所希望的服务策略的集合的方法,该方法包含(a)提供一个互连网服务节点(ISN)作为边缘路由器;(b)为该多个订户的每个订户规定一个所希望的服务策略的集合;(c)将所述的所希望的每个服务策略翻译成处理规则,其中每个处理规则含有一个分类符和一个相关操作,其中该分类符标识要向其施加所述相关操作的数据流;(d)用所述处理规则配置该ISN;(e)从所述多个订户中包含的一个订户接收多个位组;(f)由所述多个位组中含有的数据生成若干个分组,其中该多个分组的每个分组可以与由所述订户的一个应用生成的数据流相关联;(g)确定该多个分组的每个分组涉及的数据流;(h)应用与各个在(g)中确定的数据流匹配的分类符相关联的操作;由此向该多个订户的每个订户提供相应的所希望的服务策略的集合。
28.权利要求27的方法,其中该多个订户的端系统用互连网协议(IP)生成数据并且(f)包含生成若干个IP分组。
29.权利要求28的方法,其中所述位组包含ATM信元,其中该若干个分组是由该ATM信元生成的。
30.权利要求28的方法,进一步包含维护该若干个服务策略其中之一的状态,其中该状态使多个数据流能被处理以满足该服务。
31.权利要求28的方法,进一步包含维护每个数据流的状态,其中要向每个流的分组施加的处理规则被保存在该状态中。
32.权利要求28的方法,进一步包含(i)监测一个应用的控制数据流,以确定由一个应用启动的新的数据流的端口号;(j)用所确定的端口号生成新的处理规则。
33.权利要求27的方法,进一步包含(k)提供多个处理器组,其中每个处理器组含有多个处理器;(l)将每个所述分组分配给这多个处理器组其中之一,其中,被分配的组中的多个处理器的其中之一处理所分配的分组。
34.权利要求33的方法,其中,将涉及一个订户的分组全部分配给一个处理器组。
35.权利要求34的方法,进一步包含以循环的方式向各个处理器分配分组。
36.一种将涉及一个订户的互连网协议(IP)分组分配给互连网服务节点(ISN)中一个处理器的方法,该ISN含有多个处理器,其中该处理器能处理该IP分组,以便提供该订户所希望的服务策略,该方法包含(a)配置内容可寻址存储器(CAM)的一个存储单元,该CAM含有包括该存储单元在内的多个存储单元,多个存储单元的每一个都有掩码、搜索字段和输出字段,该CAM被设计成用来接收输入值并将该输入值与多个存储单元的每个的搜索字段中由该掩码指定的位位置上的数据作比较,该CAM设计成如果有与相应存储单元的匹配就生成在该输出字段中存储的数据作为输出,将该存储单元的搜索字段和掩码配置以标识该订户的数据,该存储单元的输出字段被设置成标识适合处理与该订户有关的数据的一个或多个处理器的数据;(b)接收以一系列信元为形式的IP分组,其中包括含有该IP分组的报头数据的第一个信元;(c)提供该第一个信元中的数据作为该CAM的输入;(d)接收作为该CAM的输出的、一个存储单元的该输出字段中存储的数据,如果相应搜索字段在由该相应掩码指定的位位置上与该输入值匹配的话;(e)将该系列信元分配给由(d)中接收的所述输出所标识的所述一个或多个处理器,由此,如果所述第一个信元中的数据与该存储单元中存储的由该存储单元的掩码指定的位位置上的数据匹配,该IP分组就被分配给适合处理该IP分组的一个或多个处理器。
37.权利要求36的方法,其中(c)中提供的数据包含所述IP报头的字节1、7、8、10和13-20。
38.权利要求36的方法,其中(d)的所述输出标识一个适合处理该IP分组的处理器组并且该处理器组包括在(e)中被分配的一个或多个处理器。
39.权利要求36的方法,其中开关组织按照信元报头将每个信元转发到该一个或多个处理器其中之一,并且(e)包含修改该系列信元的信元报头。
40.权利要求4的方法,进一步包含(f)在虚拟信道(VC)表中存储虚拟路径标识符/虚拟信道标识符(VPI/VCI)和端口号到连接标识符的映射,其中所述VC表的每项进一步指出被接收信元的VPI/VCI是否需要被替换;(g)访问所述VC表中对应所述第一个信元的一项;(h)仅当如果所检索的项指出所述第一个信元的VPI/VCI需要被替换时才执行(c)-(e)。
41.权利要求5的方法,其中(e)包含(ⅰ)将该系列信元的VCI设置为该连接标识符;(j)用(d)的输出生成处理器标识符或处理器组标识符;(k)将该系列信元的VPI设置为该处理器标识符或处理器组标识符;其中所述开关组织用该VPI来将该系列信元转发给其中一个处理器。
42.权利要求36的方法,其中(a)包含设置该存储单元的所述掩码,用来检查对应一个IP地址的至少一些位位置,并结合所述掩码将该存储单元的搜索字段设置成若干IP地址,其中至少有些IP地址是与该订户关联的。
43.权利要求42的方法,其中每个IP地址包含一个IP源地址。
44.权利要求43的方法,其中每个IP地址包含一个IP目的地地址。
45.权利要求42的方法,该方法进一步包含(l)保存一个将这多个IP地址的每个映射到处理器标识符或处理器组标识符的IP表;(m)用所述IP分组的IP地址的屏蔽位置中的位和(e)的所述输出来检索所述处理器标识符或处理器组标识符,其中所述处理器组包含多个处理器,其中将该系列信元分配给由该处理器标识符所标识的处理器或由该处理器组标识符所标识的处理器组。
46.权利要求36的方法,其中所述搜索字段含有不足以存储标识所述订户的数据的位数,该方法进一步包含(n)在一个以上的所述存储单元中存储标识该订户的数据和相应的掩码;(o)将所述数据的不同部分提供作为所述CAM的不同输入,其中(c)的所述输入最后提供;(p)仅当如果对所有这些不同的输入都存在匹配时才用(d)的输出来标识用于处理的所述处理器或处理器组。
47.权利要求46的方法,其中订户数据是用L2TP隧道接收的。
48.权利要求46的方法,其中(n)包含(q)提供所述第一个信元中含有的IP分组的字节1、7、8、10、13-15和17-20作为第一输入;(r)提供所述第一个信元中含有的IP分组的字节23、24和27-37作为第二输入。
49.一种将信元分配给包含在互连网服务节点(ISN)中的一个或多个处理器其中之一的方法,该方法包含(a)配置包含多个存储单元的内容可寻址存储器(CAM),多个存储单元每个都有一个掩码、一个搜索字段和一个输出字段,所述CAM设计成用来接收输入值并将所述输入值与多个存储单元的每个的搜索字段中由所述掩码指定的位位置上的数据作比较,所述多个存储单元中包含的第一个存储单元的搜索字段、掩码和输出字段分别被配置以第一搜索值、第一掩码和第一输出值,所述多个存储单元中包含的第二个存储单元的搜索字段、掩码和输出字段分别被配置以第二搜索值、第二掩码和第二输出值,其中所述第一搜索值、第一掩码值和第一输出值分别不等于所述第二搜索值、第二掩码和第二输出值,所述第一输出值和所述第二输出值含有标识所述多个处理器中所包含的一个或多个处理器的数据;(b)在所述ISN中接收该信元;(c)提供所述第一个信元中的数据作为所述CAM的所述输入;(d)接收一个存储单元的输出字段中存储的数据作为所述CAM的输出-如果相应搜索字段在由相应掩码指定的位位置上与所述输入值匹配的话;(e)将该信元分配给由(d)中接收的所述输出所标识的处理器。
50.权利要求49的方法,其中所述信元是构成一个分组的一系列信元的报头信元(header cell),该方法进一步包含将该系列信元全部分配给该处理器。
51.一种提供由多个订户的每个所希望的所希望服务策略集合的互连网服务节点(ISN),该ISN包含多个处理器,其中这多个订户的每个被分配给这多个处理器的一个子集,其中该处理器子集被配置以提供对应订户所需的服务策略集合的处理规则;一个相连的用来接收与这多个订户其中之一相关的数据的端口,该端口确定被设计用来处理与这多个订户其中之一相关的数据的处理器子集;一个与这多个处理器和端口相连的开关组织,其中该开关组织从所述端口接收所述数据并将所述数据转发给所述端口所确定的处理器子集。
52.权利要求51的ISN,其中该多个处理器的每个集合都是以分组服务卡中一个处理器组的形式提供的,其中所述分组服务卡含有多个处理器组,所述ISN含有多个分组服务卡。
53.权利要求51的ISN,其中所述端口接收以一系列ATM信元为形式的所述数据。
54.权利要求53的ISN,其中所述端口确定所述处理器子集的标识符并将所述标识符发送给所述开关组织,其中所述开关组织根据该标识符将所述ATM信元分配给所述处理器子集。
55.权利要求54的ISN,其中所述端口修改每个所述ATM信元的报头,在所述报头中加入所述标识符,以便所述开关组织通过检查所述报头就能将ATM信元转发给所述处理器子集。
56.权利要求55的ISN,其中所述端口包含一个成帧器,用于接收与所述多个订户其中之一相关的所述数据;一个内容可寻址存储器(CAM),所述CAM含有多个存储单元,所述多个存储单元每个都有一个掩码、一个搜索字段和一个输出字段,所述CAM被设计成用来接收一个输入值并将所述输入值与所述多个存储单元的每个的所述搜索字段中由所述掩码指定的位位置上的数据作比较,所述CAM设计成如果有与相应存储单元的匹配就生成所述输出字段中存储的数据作为输出,其中所述CAM的输出字段中存储的数据直接或间接地标识一个处理器组的标识符,其中每项的所述掩码和搜索字段被实现成存储标识某订户的数据,使得用所述输出字段中存储的所述数据就能确定该标识符;与所述CAM和所述成帧器相连的分配逻辑,所述分配逻辑通过提供所接收的数据作为所述CAM的输入来确定该标识符,所述分配逻辑将该标识符加入所述报头中。
57.权利要求56的ISN,其中,将所述标识符存储到所述报头的虚拟路径标识符(VPI)或虚拟信道标识符(VCI)字段中。
58.权利要求57的ISN,该系列信元含有一个互连网协议(IP)分组,所述分配逻辑提供IP报头的字节1、7、8、10和13-20作为所述CAM的输入。
59.权利要求57的ISN,进一步包含一个虚拟信道表,其中存储虚拟路径标识符/虚拟信道标识符(VPI/VCI)和端口号到连接标识符的映射,其中所述VC表的每项进一步指出被接收信元的VPI/VCI是否需要被替换,其中所述分配逻辑访问所述VC表中对应所述所接收数据中含有的所接收信元的一项,仅当如果该项指出VPI/VCI需要被替换时才修改所述报头。
60.权利要求59的ISN,其中所述分配逻辑将构成所述所接收数据的各信元的VCI设置为所述连接标识符,将所述各信元的所述VPI设置为所述标识符。
61.权利要求56的ISN,其中,所述搜索字段中含有的位数不足以存储标识该订户的数据,所述CAM被设计成在若干项中存储标识该订户的数据,所述分配逻辑在确定该标识符时要检查这若干项的输出。
62.权利要求61的ISN,其中,所述分配逻辑将这若干项之一的输出用作这若干项的另一项的输入,其中这若干项的该另一项的输出标识所述处理器标识符或处理器组标识符。
63.权利要求61的ISN,其中,与该订户有关的数据是用L2TP隧道接收的。
64.权利要求62的ISN,其中,所述分配逻辑被设计成提供所接收数据的第一个信元中含有的IP分组的字节1、7、8、10、13-15和17-20作为第一个输入,提供该第一个信元中含有的IP分组的字节23、24和27-37作为第二个输入。
65.一种用于提供多个订户的每个订户所希望的服务策略的集合的互连网服务节点(ISN),该ISN包含一个用来接收与多个订户中包含的一个订户相关的多个位组的接入端口;一个与所述接入端口相连的开关组织,该开关组织接收该多个位组并生成多个分组,其中该多个分组含有从与该订户相关的应用中生成的数据,该多个分组每个含有的数据足以用该订户相关的这些应用所生成的一个数据流来标识;一个用来接收该多个分组的分组服务卡,该分组服务卡按照与该订户相关的多个处理规则来处理每个分组,其中该多个处理规则每个含有一个分类符和一个相关操作,所述标识符标识要向其施加所述相关操作的至少一个数据流;一个与所述开关组织相连的干线端口,该干线端口传输所希望传输的若干分组中的任何一个,其中,向所述多个订户的每个提供相应的多个处理规则,使所述ISN能为所述多个订户的每个提供所希望的服务策略集合。
66.权利要求65的ISN,其中该多个分组包含互连网协议(IP)分组。
67.权利要求66的ISN,其中,所述每个数据流由源IP地址、目的地IP地址、协议类型、源端口号和目的地端口号来标识。
68.权利要求67的ISN,进一步包含一个用于使管理器能提供所希望的服务策略集合的接口,其中该ISN被设计成根据该管理器提供的所希望的服务策略集合生成至少一些所述处理规则。
69.权利要求68的ISN,其中所述分组服务卡被设计成能为确定标识一个应用的所述数据流的参数值而监测该应用的控制数据流,如果该参数值事先得不到的话。
70.权利要求65的ISN,其中所述分组服务卡包含若干处理器,该若干处理器使所述ISN能迅速处理该多个分组。
71.权利要求70的ISN,其中该若干处理器是在与所述接入端口和所述干线端口分离的物理单元中提供的,这种分离使得对处理器数目的改变能不依赖于接入端口和干线端口的数目。
72.权利要求70的ISN,其中保存每个所述处理流的一个状态,该状态指明要向该多个分组中与相应的流有关的每个分组应用的处理规则。
73.权利要求65的ISN,其中所述位组包含ATM信元,使得所述开关组织被设计成从多个ATM信元的有效负载转换生成每个所述分组。
74.权利要求65的ISN,其中所述位组含有的数据足以用与该订户相关的所述应用所生成的数据流来标识,使得每个所述分组由一个所述位组生成。
75.权利要求65的ISN,进一步包含一个随机存取存储器(RAM),其中所述处理器接口在所述RAM中存储这多个位组。
76.一种用于处理含有包括报头信元在内的一系列信元的分组的互连网服务节点(ISN),该ISN包含多个处理器,一个内容可寻址存储器(CAM),所述CAM含有多个存储单元,所述多个存储单元每个都有一个掩码、一个搜索字段和一个输出字段,所述CAM设计成用来接收一个输入值并将所述输入值与多个所述存储单元的每个的搜索字段中由所述掩码指定的位位置上的数据作比较,所述CAM设计成如果有与相应存储单元的匹配就生成所述输出字段中存储的数据作为输出,该存储单元的搜索字段和掩码被配置以标识适合由这多个处理器的一个或多个处理的分组的数据,所述输出字段被配置以标识适合处理相应分组的一个或多个处理器的数据;一个分配逻辑,用来接收所述报头信元并由所述报头信元提供数据作为所述CAM的输入值,由此,所述CAM的输出能标识适合处理该分组的一个或多个处理器,该分配逻辑按照所述CAM的输出将该系列信元都分配给所述一个或多个处理器。
77.权利要求76的ISN,其中,所述分配逻辑被设计成能通过将每个信元的信元报头的至少一部分设置成该标识符来分配该系列信元,所述ISN进一步包含一个按照信元报头转发该系列信元的开关组织。
78.权利要求77的ISN,其中的所述ISN接收与多个订户相关的分组,每个存储单元的掩码和搜索字段被配置得能标识订户,相应的输出字段被设计得能标识适合处理与由相应掩码字段和搜索字段所标识的订户相关的分组的一个或多个处理器。
79.权利要求78的ISN,其中的所述分组包含IP分组。
80.权利要求79的ISN,其中,配置存储单元的所述掩码,用来检查对应一个IP地址的至少一些位位置,并结合所述掩码将该存储单元的搜索字段设置成若干IP地址,其中至少有些IP地址是与该订户关联的。
81.权利要求80的ISN,其中每个IP地址包含一个IP源地址。
82.权利要求80的ISN,其中每个IP地址包含一个IP目的地地址。
83.权利要求80的ISN,进一步包含一个用于保存一个将这多个IP地址的每个映射到处理器标识符或处理器组标识符的IP表的存储器,其中所述分配逻辑被设计成用IP地址的屏蔽位置中的位和该CAM的输出来检索所述标识符,其中按照该标识符将该系列信元分配给一个或多个处理器。
84.权利要求79的ISN,其中所述搜索字段含有不足以存储标识每个订户的数据的位数,其中所述CAM被配置成在一个以上的所述存储单元中存储标识所述订户的数据和相应的掩码,所述分配逻辑被设计成发送所述数据的不同部分作为所述CAM的不同输入,所述分配逻辑仅当所有这些输入匹配时才确定所述分组与某订户有关。
85.权利要求84的ISN,所述分配逻辑被设计成提供该报头信元中含有的IP分组的字节1、7、8、10、13-15和17-20作为第一输入,提供该报头信元中含有的IP分组的字节23、24和27-37作为第二输入。
86.权利要求78的ISN,进一步包含一个将所述CAM配置得使所述订户相关的分组与一个或多个所述处理器关联的服务管理器,其中所述服务管理器进一步为这一个或多个处理器配置以适合于处理与该订户相关的分组的处理规则。
87.权利要求86的ISN,进一步包含一个接入端口,其中所述接入端口含有所述CAM和所述分配逻辑。
88.权利要求86的ISN,进一步包含一个干线端口,其中所述干线端口含有所述CAM和所述分配逻辑。
89.一种向多个订户的每个提供所希望的服务策略集合的互连网服务节点(ISN),该ISN包含标识装置,用于标识提供每个订户所希望的服务策略集合的若干处理规则;配置装置,用于将互连网服务节点配置以对应每个所述订户的所述处理规则;接收装置,用于在互连网服务节点中接收数据;确定装置,用于在所述互连网服务节点中确定所接收数据涉及的特定订户;应用装置,用于在所述互连网服务节点中应用与所确定特定订户相关的若干处理规则,其中所述应用在所述确定之后执行。
90.权利要求89的ISN,其中所述互连网服务节点被提供作为接入网络的边缘设备,使得能从所述接入网络的边缘控制各服务策略。
91.权利要求89的ISN,其中所述ISN含有若干处理器,所述确定和应用装置共同包含分配装置,用于将每个所述订户分配给一个处理器组,其中每个处理器组被配置以对应于所分配订户的处理规则;转发装置,用于将与每个订户相关的数据在确定该特定订户之后转发给相应的处理器组。
92.权利要求91的ISN,其中该多个订户的端系统用互连网协议(IP)生成数据。
93.权利要求92的ISN,其中的所述数据包含ATM信元。
94.权利要求93的ISN,其中的分配装置包含用于检查所述ATM信元中所含数据的检查装置,特定订户的所述确定根据的是该检查的结果和在其上接收所述ATM信元的端口,其中该端口包含在所述互连网服务节点中。
95.权利要求94的ISN,其中的所述分配装置进一步包含修改装置,用于为指明所确定的处理器组而修改各信元的报头,使得能在检查信元报头的基础上将各信元转发给适当的处理器组,其中该适当的处理器组被配置以与该特定订户相关的处理规则。
全文摘要
一种便于向每个订户提供所希望的服务策略的互连网服务节点(ISN)。该ISN(250)可包含多个处理器组(450),每个订户(230)被分配给一个处理器组。可以将所分配的处理器组配置(110、120)以提供订户所需服务策略的处理规则。一个端口可确定(140)要将所接收数据(130)转发(150)到的特定处理器组。可以提供一个带有各个存储单元的掩码的内容可寻址存储器(CAM,820)来快速地确定(970、980)要将所接收数据分配到的处理器组。由于本发明的特征,一个ISN可有效地服务大量订户。ISN可用在接入网络(310)的边缘。
文档编号H04L29/06GK1315019SQ99802646
公开日2001年9月26日 申请日期1999年12月1日 优先权日1998年12月3日
发明者A·阿勒斯, A·林, S·P·皮拉拉马里, K·H·赫德里克, T·达利, D·穆勒尼克斯, S·A·舍蒂 申请人:北方电讯网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1