用于带有双向标识符的协议的协商的安全快速表查找的制作方法

文档序号:7911329阅读:169来源:国知局

专利名称::用于带有双向标识符的协议的协商的安全快速表查找的制作方法
技术领域
:本发明的实施例涉及网络处理的领域,并且更具体地说,涉及带有双向标识符的协议的安全快速表查找。
背景技术
:网络元件(例如,路由器、交换器等)花费大部分的其分组处理时间执行查找。例如,网络元件通常查找给定分组中的一个或多个标识符以识别包括分组的进一步处理所必需的数据的对应数据结构。存在某类网络协议,其将交换本地选择的标识符(具有本地重要性)作为连接建立序列的一部分。本地选择的标识符一般选择为单调递增数或随机选择数。这些本地选择的标识符一般在网络元件之间的随后分组的报头中发送。当网络元件选择用于连接的标识符时,它使用对应的本地标识符作为关键字,将连接数据插入表(例如,哈希表、平衡二进制树等)中。在网络元件接收数据分组时,它从分组提取本地标识符,并使用它作为查找关键字从表中检索连接数据。例如,在2005年3月的请求注解(RFC)3931中定义的第二层隧道化协议版本3(L2TPv3)中,LAC(L2TP接入聚合器)和LNS(L2TP网络服务器)在每个连接建立序列期间交换本地选择的标识符(会话标识符)。使用会话标识符作为关键字,将用于每个会话的会话数据插入会话数据结构中。LAC与LNS之间传送的每个数据分组包括用作对于会话数据结构的查找关键字的会话标识符。会话数据结构中的信息是正确处理分组所必需的。用于从分组中的标识符来识别对应数据结构的当前查找机制包括使用哈希表或二进制树。二进制树提供良好的可扩展性,并且占用可预测的存储量(例如,要求0(10N)(大0标记法)平均次数的存储器访问以定位对应的连接数据)哈希表能够提供可预测的快速查找(例如,0(Ν/Β)),但为未使用的哈希表元(hashtablebucket)浪费的存储器对于大数据集能够是昂贵的,并且哈希表能够要求很大程度的连续存储器作为折衷以实现良好的性能。使用二进制树查找机制或哈希表查找机制的查找时间不是恒定的。也就是说,查找时间甚至在相同的二进制树或哈希表中从元素到元素有所变化。另外,使用二进制树或哈希表查找机制的查找时间一般随着连接数量的增大而增大。通过参照下面的描述和用于示出本发明实施例的附图,可最好地理解本发明。在图中图1示出根据本发明的一个实施例的示范网络;图2示出根据本发明的一个实施例的示范网络元件,其用于带有双向标识符的协议的安全快速表查找;图3根据本发明的一个实施例示出为带有双向标识符的那些协议生成作为本地标识符的受信任指针;图4示出根据本发明的一个实施例的为带有双向标识符的那些协议生成作为本地标识符的受信任指针的备选方式;图5是根据本发明的一个实施例的流程图,其示出为带有双向标识符的那些协议生成作为本地标识符的受信任指针;图6根据本发明的一个实施例示出为带有双向标识符的那些协议验证数据分组中收到的受信任指针;图7示出根据本发明的一个实施例的为带有双向标识符的那些协议验证数据分组中收到的受信任指针的备选方式;图8是根据本发明的一个实施例的流程图,其示出为带有双向标识符的那些协议验证数据分组中收到的受信任指针;以及图9是示出根据本发明的一个实施例的在参照图8所述的流程中执行的可选操作的流程图。具体实施例方式在下面的描述中,陈述了许多特定细节。然而,将理解,实践本发明的实施例可无需这些特定细节。其它情况下,控制结构、门级电路和完整软件指令序列未详细示出以免混淆本发明。通过包括的说明,本领域的技术人员将能够在不进行不当实验的情况下实现适当的功能性。说明书中对“一个实施例”、“一实施例”、“一示例实施例”等的引用指所述实施例可包括特定特征、结构或特性,但每个实施例可不一定包括该特定特征、结构或特性。另外,此类短语不一定指相同实施例。此外,结合实施例描述某个特定特征、结构或特性时,认为结合无论是否明确描述的其它实施例来实现此类特征、结构或特性是在本领域技术人员的认知之内。在下面的描述和权利要求书中,可使用术语“耦合”和“连接”及其衍生词。应理解,这些术语无意作为彼此的同义词。“耦合”用于指示可相互直接物理或电接触或不直接物理或电接触的两个或更多元素相互协作或交互。“连接”用于指示相互耦合的两个或更多元素之间通信的建立。图中所示的技术能使用一个或多个网络元件上存储和执行的代码和数据来实现。此类网络元件使用机器可读媒体存储和传递(在内部和/或通过网络与其它网络元件和计算机终端站)代码和数据,例如机器可读存储媒体(例如,磁盘、光盘、随机存取存储器、只读存储器、闪速存储器装置、相变存储器)和机器可读通信媒体(例如,电、光、声或其它形式的传播信号-如载波、红外信号、数字信号等)。另外,此类网络元件一般情况下包括耦合到诸如存储装置、一个或多个用户输入/输出装置(例如,键盘、触摸屏和/或显示器)和网络连接等一个或多个其它组件的一个或多个处理器的集合。处理器的集合与其它组件的耦合一般情况下是通过一个或多个总线和桥接器(也称为总线控制器)。存储装置和携带网络业务的信号分别表示一个或多个机器可读存储媒体和机器可读通信媒体。因此,给定网络元件的存储装置一般情况下存储代码和/或数据以用于该电子装置的一个或多个处理器的集合上的执行。当然,本发明的实施例的一个或多个部分可使用软件、固件和/或硬件的不同组合来实现。在本文中使用时,网络元件(例如,路由器、交换器、桥接器等)是一件连网设备,包括在通信上与网络上的其它设备(例如,其它网络元件、计算机终端站等)互连的硬件和软件。一些网络元件是“多服务网络元件”,其为多个网络功能(例如,路由选择、桥接、交换、第2层聚合和/或订户管理)提供支持和/或为多个应用服务(例如,数据、话音和视频)提供支持。订户计算机终端站(例如,工作站、膝上型计算机、掌上计算机、移动电话、智能电话、多媒体电话、便携式媒体播放器、GPS单元、游戏系统、机顶盒等)访问通过因特网提供的内容/服务和/或因特网上重叠的虚拟专用网(VPN)上提供的内容/服务。内容和/或服务一般由属于服务或内容提供商的一个或多个服务器计算机终端站来提供,并且可包括公共网页(免费内容、店面、搜索服务等)、私密网页(例如,提供电子邮件服务的用户名/密码访问的网页等)、VPN上的企业网络等。一般情况下,订户计算机终端站耦合(例如,通过耦合到接入网络(以有线或无线方式)的客户场所设备)到边缘网络元件,边缘网络元件耦合到(例如通过到其它边缘网络元件的一个或多个核心网络元件)服务器计算机终端站。本文描述了带有双向标识符的协议的协商的安全快速表查找的方法和设备。在本发明的一个实施例中,在带有双向标识符的协议的连接的每个连接建立序列期间,网络元件分配用于连接的连接数据,将本地重要的标识符设为到分配的连接数据的指针,应用数学变换到本地重要的标识符,将本地重要的标识符和数学变换的结果包括在连接建立分组中,以及将连接建立分组传送到对等网络元件。在网络元件从对等网络元件接收数据分组时,网络元件提取本地选择的标识符和数学变换的结果,应用相同的数学变换到提取的本地选择的标识符,并且比较数学变换的结果和提取的本地选择的标识符。如果它们匹配,则网络元件解引用(dereference)提取的本地选择的标识符的值以访问对应于分组的连接数据并继续处理。如果它们不匹配,则采取其它动作(例如,丢弃分组)。图1示出根据本发明的一个实施例的示范网络。图1所示的网络包括与网络元件110耦合的订户计算机终端站105A-105N。网络元件110通过因特网115耦合到网络元件120。网络元件120与服务器计算机终端站耦合。在一个实施例中,订户计算机终端站105A-105N通过网络元件110和120与服务器计算机终端站125连接(例如,每个订户计算机终端站105A-105N与服务器计算机终端站有连接)。例如,订户计算机终端站105A-105N是服务器计算机终端站(例如,企业站点)的远程用户。网络元件110和120是支持带有双向标识符的协议(例如,L2TP等)的对等体。网络元件Iio和120在那些协议的连接建立序列期间协商本地选择的标识符。例如,在那些协议的连接建立序列期间,网络元件110和120交换协商本地选择的标识符的一系列连接建立分组。之后,网络元件110和120在它们之间传送的数据分组中包括那些本地选择的标识符。因此,对于给定连接,能够有由控制连接的每端(例如,网络元件110和120)提供的独特标识符,这些标识符在连接的存在期期间使用。例如,在订户计算机终端站105A的连接建立序列期间,网络元件110选择具有本地重要性的标识符,它用于识别连接,并且网络元件120选择具有本地重要性的标识符,它用于识别连接。这些本地标识符用于识别为连接分配的连接数据,连接数据指示如何对待用于该连接的数据分组(例如,连接数据能够包括服务质量(QoQ参数、访问控制列表、到路由选择表的路由选择指针等)。在用于订户计算机终端站105A的连接的数据分组的传送期间,网络元件110在传送数据分组到网络元件120时包括由网络元件120选择的本地标识符,并且网络元件120在将数据分组传送到网络元件110时包括由网络元件110选择的本地标识符。在一个实施例中,网络元件110是LAC,网络元件120是LNS,通信使用L2TP,以及本地选择的标识符包括在L2TP报头的会话ID字段中。如本文中后面将更详细描述的,网络元件110和120的至少一个选择本地标识符作为到存储器中分配的连接数据的指针。例如,对于用于订户计算机终端站105A的连接,网络元件120选择本地标识符作为到用于订户计算机终端站105A的存储器中分配的连接数据的指针。指针引用存储器中的值或位置,并且在需要该值或位置时,指针被解引用。如本文中后面将描述的,网络元件选择本地标识符作为到用于连接的连接数据的指针,这允许网络元件快速地定位和访问为该连接分配的连接数据(例如,通过解引用指针)。因此,不同于典型的现有技术机制选择用于本地标识符的不是指针值的值(例如,它一般是随机数或单调递增数)从而要求标准查找机制以定位和访问用于该连接的连接数据(例如,二进制数搜索机制、哈希表搜索等),本发明的实施例允许网络元件选择到分配的连接数据的指针。此外,在连接建立序列期间,网络元件110和120能够协商可选字段中包括的数据。例如,在L2TP中,网络元件110和120能够在连接建立序列期间协商L2TP报头的cookie字段中的数据。类似于本地选择的标识符的协商,可选字段中的数据具有本地重要性,并且将包括在网络元件110与120之间传送的数据分组中。使用为订户计算机终端站105A建立连接的上述示例,网络元件110和120能够各自选择连接建立分组的可选字段中包括的数据。在用于订户计算机终端站105的连接的数据分组的传送期间,网络元件110将在传送数据分组到网络元件120时在可选字段中包括网络元件120选择的数据,并且网络元件120将在传送数据分组到网络元件110时在可选字段中包括网络元件110选择的数据。如本文中后面将更详细描述的,网络元件110和120的至少一个(选择了本地标识符作为到其存储器中分配的连接数据的指针的至少一个网络元件)在其可选字段中包括那些本地标识符的数学变换的结果(例如,那些本地标识符的哈希摘要(hashdigest)的至少一部分)。如在本文中后面将更详细描述的,在连接建立期间包括指针的数学变换的结果的网络元件允许该网络元件验证本地选择的标识符字段(例如,L2TP中的会话ID字段)中包括的数据能够被信任,并被解引用以定位和访问其存储器中分配的连接数据。作为示例,对于订户计算机终端站105A的连接,网络元件120与网络元件110协商选择作为用于该连接的本地标识符的指针的数学变换的结果(例如,网络元件120在连接建立分组的可选字段中包括该结果)。应理解,本发明的实施例不限于在本地选择的标识符字段中包括到分配的连接数据的指针,因为指针能够位于连接建立分组中的不同位置中。另外,应理解,本发明的实施例不限于在可选字段中包括到分配的连接数据的指针的数学变换的结果,因为结果能够位于连接建立分组中的不同位置中。例如,在一些实施例中,到分配的连接数据的指针和到分配的连接数据的该指针的数学变换的结果位于连接建立分组的相同字段内(例如,在L2TP中,到分配的连接数据的指针和该指针的数学变换的结果(至少一部分结果)能够位于会话ID字段或cookie字段中等)。因此,在一些实施例中,到分配的连接数据的指针包括在连接建立分组的第一部分中,并且该指针的数学变换的结果包括在该连接建立分组的第二部分中。图2示出根据本发明的一个实施例的示范网络元件,其用于带有双向标识符的协议的安全快速表查找。应理解,图2所示网络元件120的架构是示范性的,并且其它架构可以在本文中所述的本发明的实施例中被使用。如图2所示,网络元件120包括与数据平面210耦合的控制平面205。控制平面205与其它网络元件建立带有双向标识符的协议的连接,包括分配用于连接的连接数据和为那些连接指派本地选择的标识符。控制平面205包括与存储器260耦合的控制模块250(例如,每个是包括双向标识符的协商的协议)。协议模块250还各自与哈希引擎255耦合。存储器沈0能够是任何类型的非易失性或易失性存储器,包括连接数据结构265和协议状态表270。连接数据结构265包括用于每个连接的连接数据(例如,连接特定参数和状态)以指示如何对待该连接的分组。例如,连接数据能够包括服务质量(QoQ参数、访问控制列表、到路由选择表的路由选择指针、连接在哪个线路卡上、指派连接数据所在的线路卡的存储器地址等。协议状态表270包括有关协议模块250的状态的信息,包括nonce值、摘要、验证简档等。根据本发明的一个实施例,连接数据沈5的子集被下载到数据平面210。在每个连接建议序列期间,协议模块250在数据平面210的存储器中分配连接数据以用于连接,而连接建立序列一般响应接收连接请求(例如,从订户计算机终端站或从代表订户计算机终端站的对等网络元件发送)而启动。例如,协议模块250在数据平面210的存储器230中分配连接数据。如果数据平面210包括多个线路卡,则协议模块250在那些线路卡之一(例如,收到连接建立请求和/或将处理对应于接收的连接建立请求的数据分组的线路卡)的存储器中分配连接数据。例如,参照权利要求1,协议模块250能够代表订户计算机终端站105A-105N从网络元件110接收连接建立请求。在一个实施例中,协议模块250在数据平面210的存储器230的特定部分中分配连接数据。例如,一部分的存储器230可专用于存储连接数据。协议模块250还在连接建立序列期间选择用于每个连接的本地标识符。例如,协议模块250生成用于订户计算机终端站105A-105N的每个连接的独特本地标识符。在一个实施例中,生成的标识符是到用于该连接的分配的连接数据的指针。指针值可在本发明的不同实施例中不同(例如,指针值能够是用于分配的连接数据的存储器地址、到用于分配的连接数据的存储器地址的一个或多个间接寻址(indirection)等)。协议模块250促使生成的本地标识符的指示存储在连接数据265中。如在本文中后面将描述的,作为协议定义的连接建立序列的一部分,将与网络元件120的对等网络元件(例如,网络元件110)协商生成的本地标识符。协议模块250还促使数学变换应用到用于每个连接的生成的本地标识符,以充当被选择为本地标识符的指针的验证签名。在一个实施例中,数学变换是密码变换(例如,单向哈希、对称加密、非对称加密等)。例如,协议模块250将生成的本地标识符提供到哈希引擎255以生成该生成的本地标识符的哈希摘要。根据一个实施例,在生成摘要时,哈希引擎255还使用随机数生成器275生成的随机数作为nonce。在一个实施例中,相同的随机数在给定的时间期上用于协议的每个连接。用于连接的nonce存储在协议状态表270中。协议模块250生成连接建立响应分组(响应于连接建立请求),并且在那些响应分组中编码生成的本地标识符和生成的本地标识符的数学变换的结果(哈希摘要)。生成的本地标识符被包括在连接建立响应分组的第一部分中,并且数学变换的结果被包括在连接建立分组的第二部分中。例如,在协议是L2TP的一些实施例,生成的本地标识符被包括在会话ID字段中,并且数学变换的结果被包括在cookie字段。应理解,连接建立分组的第一和第二部分可以在相同字段中,或者可重叠字段。参照图1,对于每个连接,从网络元件120发送到网络元件110的连接建立分组包括由网络元件120为该连接生成的本地标识符和该本地标识符的数学变换的结果。数据平面210接收和处理数据分组。例如,参照图1,数据平面210在订户计算机终端站105A-105N与服务器计算机终端站125之间接收和处理带有双向标识符的那些协议的连接的数据分组。从网络元件110收到的带有双向标识符的协议的分组包括由网络元件120本地生成的标识符。数据平面210包括分组处理引擎215、受信任指针验证引擎220、哈希引擎225及存储器230。在一些实施例中,数据平面210包括多个线路卡,其中每个线路卡包括分组处理引擎、受信任指针验证引擎、哈希引擎及存储器。分组处理引擎215接收和解析数据分组。例如,分组处理引擎215确定分组所属的协议并将分组的数据写入分组缓冲器存储器。如果分组是用于带有双向标识符的协议(例如,L2TP等),则分组处理引擎215提取分组的第一部分(写入分组缓冲器存储器),并提取分组的第二部分(也写入分组缓冲器存储器)。在一个实施例中,数据分组的第一和第二部分分别对应于连接建立请求分组的第一和第二部分。在一个实施例中,验证简档定义数据分组的第一和第二部分的位置,并编程到分组处理引擎215。在另一实施例中,分组的协议确定分组的第一和第二部分的位置。例如,如果协议是L2TP,则在一个实施例中,第一部分是分组报头的会话ID字段,并且第二部分是分组报头的cookie字段。哈希引擎225使用如在连接建立分组的创建中使用了的相同数学变换,应用数学变换(例如,哈希引擎225与控制平面205中的哈希引擎255应用相同的哈希算法)。数学变换的结果提供到受信任指针验证引擎220。如果在连接建立分组的创建中使用随机数,则在应用数学变换时,由哈希引擎225使用该相同的随机数。受信任指针验证引擎比较从分组的第二部分提取的数据(例如,对于L2TP,cookie字段中的数据)和从分组的第一部分提取的数据的数学变换的结果。如果值匹配,则从分组的第一部分提取的数据被信任作为到存储器230中连接数据的指针。通过解引用指针,指针随后用于直接索引到存储器230中以定位分配的连接数据。数据平面210在定位连接数据后继续处理。如果值不匹配,则采取其它动作(例如,丢弃分组,将分组引导到控制平面以用于进一步处理等)。图3根据本发明的一个实施例示出为带有双向标识符的那些协议生成作为本地标识符的受信任指针。参照图3所述的操作在带有双向标识符的协议(例如,L2TP等)的连接建立序列期间执行(例如,响应于接收到连接建立请求)。连接数据315在存储器310中被分配以用于给定连接。在一个实施例中,连接数据315在专用于协议的存储器310的一部分中被分配。在一个实施例中,存储器310被包括在网络元件的线路卡上。到分配的连接数据的指针320(它是到连接数据315的指针)被创建并提供到哈希引擎325。在一个实施例中,到分配的连接数据的指针320是存储在存储器310中连接数据315的存储器地址,而在其它实施例中,到分配的连接数据的指针320是到存储器地址的指针。如本文中后面将描述的,到分配的连接数据的指针320也将用作连接建立分组中本地选择的标识符。在一些实施例中,随机数生成器375生成提供到哈希引擎325的nonce380(随机数)。哈希引擎325在到分配的连接数据的指针320和nonce380(如果被提供)上应用数学变换以产生摘要330(哈希算法的结果)。不同的哈希算法可在本发明的不同实施例中被使用(例如,SHA-O、SHA-I、SHA-256、SHA-384、SHA-512、MD2、MD4、MD5、RIPEMD-160、RIPEMD-128/256/320、HAS160、HAS-V、HAVAL、Tiger、Panama、Snefru-2、G0ST-Hash、BRS-Hl/H20、WhirpOOl等)。还应理解,作为上述哈希算法的替代或除了上述哈希算法外,其它加密方案能够用于加密到分配的连接数据的指针320。到分配的连接数据的指针320和摘要330(到分配的连接数据的指针320的哈希的结果和可选的nonce380)包括在连接建立分组335的第一和第二部分中。连接建立分组335包括报头340和数据有效负载字段355,报头340包括本地选择的标识符字段345和可选字段350。如果连接建立分组335是用于L2TP协议,则本地选择的标识符字段345对应于会话ID字段,并且可选字段350对应于L2TP报头的cookie字段。如图3所示,到分配的会话数据的指针320被编码在本地选择的标识符字段345中,并且摘要330被编码到可选字段350中。虽然连接建立分组335示为包括可选字段350,但应理解,在一些实施例中,连接建立分组可不包括可选字段350。因此,不同于典型的现有技术机制选择用于本地标识符的不是指针值的值(例如,它一般是随机数或单调递增数)从而要求标准查找机制以定位和访问用于该连接的连接数据(例如,二进制数搜索机制、哈希表搜索等),本发明的实施例允许网络元件选择到分配的连接数据的指针,该指针能够被解引用以直接索引到存储器中,从而定位分配的连接数据(如在本文中后面将更详细描述的)。视使用的哈希算法而定,摘要330的大小可能不能完全被编码到可选字段350中。例如,如果连接建立请求是用于L2TP(例如,ICRQ(进入-呼叫-请求)或ICRP(进入-呼叫-回复)),对应于cookie字段的可选字段350—般是64个比特,而MDS哈希摘要是1个比特。在此类情况下,摘要330被减少某个量以便包括在可选字段350中。这能够以多种方式进行(例如,如果可选字段是N比特字段,则摘要330的前N个比特可包括在可选字段350中)。摘要减少的量和/或包括在可选字段350中的摘要330的比特的索引一般对于相同协议的每个连接建立分组是相同的(并且如本文中后面将更详细描述的,将在数据分组的验证期间被使用)。图4示出根据本发明的一个实施例的为带有双向标识符的那些协议生成作为本地标识符的本地受信任指针的备选方式。类似于如参照图3所述的,在带有双向标识符的协议(例如,L2TP等)的连接建立序列期间执行参照图4所述的操作(例如,响应于接收到连接建立请求)。图4的操作类似于图3的操作,不同之处在于到分配的连接数据的指针320被包括在与图3所示连接建立分组335的不同部分中。例如,到分配的连接数据的指针320和摘要330各自被包括在可选字段350的不同部分中(例如,到分配的连接数据的指针320被编码在可选字段350的比特0到L中,并且摘要330被编码在可选字段350的比特L+1到11Q比特中)。应理解,图3和4示出编码到分配的会话数据的指针320和摘要330的连接建立分组335的部分的位置的示例。然而,实施例并不限于此,因为到分配的会话数据的指针320和摘要330可在本发明的其它实施例中被编码在连接建立分组335的不同部分中。虽然在本发明的一个实施例中,到分配的会话数据的指针320直接被编码在连接建立分组335的一部分中,但在本发明的其它实施例中,在被包括在连接建立分组335中之前,到分配的连接数据的指针320被混乱(例如,到分配的连接数据的指针320被变换(例如,比特值被移位),到分配的连接数据的指针320被加密,分配的会话数据的指针320的比特值散布在可选字段350的比特值中等)。类似地,虽然在本发明的一个实施例中,摘要330(或摘要330的至少一部分)直接被编码在连接建立分组335的一部分中,但在本发明的其它实施例中,在被包括在连接建立分组335之前,它被混乱(例如,摘要的值被变换、加密,一些比特被交换等)。如本文中后面将描述的,在一个实施例中,线路卡编程为解混乱数据分组中的任何混乱的信息。图5是示出根据本发明的一个实施例的为带有双向标识符的那些协议生成作为本地标识符的本地受信任指针的流程图。在一个实施例中,参照图5所述的操作在网络元件之间在带有双向标识符的协议(例如,L2TP等)的连接建立序列期间执行(例如,响应于接收到连接建立请求)。例如,参照图1,图5中执行的操作由网络元件110响应从订户计算机终端站105A-105N之一接收到连接建立请求而执行,或者由网络元件120响应从网络元件120接收到连接建立请求(例如,响应接收到L2TPLCRQ分组)而执行。图5的操作将参照图2的示范实施例进行描述。然而,应理解,图5的操作能够由与参照图2讨论的那些实施例不同的本发明的其它实施例来执行,并且参照图2讨论的实施例能够执行与参照图5所讨论的那些操作不同的操作。在框510,协议模块250之一在数据平面210(例如,网络元件120的线路卡之一)的存储器230中分配用于连接的连接数据。流程从框510转到框515,其中,协议模块250的那一个模块生成本地标识符,该标识符是到用于连接的分配的连接数据的指针值(例如,存储器230中分配的连接数据的存储器地址、到存储器230中分配的连接数据的存储器地址的指针值)。流程从框515转到框520。在框520,协议模块250的那一个模块促使哈希引擎255应用数学变换(例如,哈希算法)到生成的本地标识符(到用于连接的分配的连接数据的指针值)。根据一个实施例,在应用数学变换时,哈希引擎255还使用随机数(例如,由随机数生成器275提供)。流程从框520转到框525。在框525,协议模块250的那一个模块将生成的本地标识符和数学变换的结果分别包括到连接建立分组的第一部分和第二部分中。例如,参照L2TP,第一部分能够是会话ID字段,并且第二部分能够是cookie字段(或反之亦然)。流程从框525转到框530,其中,控制平面205将连接建立分组传送到对等网络元件110(例如,如果协议是L2TP,则是ICRP分组)。根据一个实施例,接收带有受信任指针和受信任指针的签名的连接建立分组的对等网络元件未不同于往常地处理连接建立分组。因此,对于给定连接,在正常操作期间,对等网络元件将在每个数据分组中包括作为本地标识符的受信任指针和受信任指针的签名。例如,对于用于订户计算机终端站105A的连接,网络元件110将在到网络元件120的该连接的每个数据分组中包括网络元件120生成的受信任指针的签名和受信任指针。图6根据本发明的一个实施例示出为带有双向标识符的协议验证来自对等网络元件的数据分组中收到的受信任指针。参照图6所述的操作在带有双向标识符的那些协议的数据分组的处理期间执行。操作在网络元件的数据平面中执行(例如,在网络元件的数据平面的线路卡中的硬件上执行)。在一个实施例中,参照图6所述的操作适用于使用参照图3所述的实施例的那些协议。网络元件中的线路卡接收数据分组605。收到的数据分组605包括报头340和数据有效负载字段355,报头340包括本地选择的标识符字段345和可选字段350。收到的数据分组605被解析,并且分组605的第一部分中的数据(例如,本地选择的标识符字段345中的数据)和分组605的第二部分中的数据(例如,可选字段350中的数据)被提取并写入线路卡的分组缓冲器存储器中。从第一部分(例如,本地选择的标识符字段34提取的数据被提供到哈希引擎325,并且从第二部分(例如,可选字段350)提取的数据被设为摘要615,并且提供到摘要比较器620。应理解,术语摘要615用于解释性目的,因为从分组的第二部分(例如,从可选字段350)提取的数据可能不是从哈希算法的应用而生成的。如果在生成受信任指针时使用了nonce(例如,如图3_5中所述的),则提供相同的nonce值到哈希引擎325。虽然在图6中未示出,但如果对应于收到的数据分组605的协议的连接建立序列包括了第一部分中数据(本地选择的标识符字段345中的数据)的混乱和/或分组的第二部分中数据(可选字段350中的数据)的混乱,则该数据在提供到哈希引擎325或摘要比较器620之前进行解混乱。根据本发明的一个实施例,对于解混乱的指示能够包括在验证简档中。哈希引擎325在从接收的数据分组605的第一部分(例如,本地选择的标识符字段345(如果在受信任指针的创建期间使用的话,则还有nonce380))提取的数据上应用数学变换(例如,哈希算法)。哈希引擎325使用与曾用于生成受信任指针相同的哈希算法。数学变换的结果是摘要610。摘要比较器620比较摘要610和615。如果摘要匹配,则从第一部分(例如,本地选择的标识符字段34提取的值被验证为受信任指针。经验证的受信任指针随后能够受到信任以访问连接存储器625中对应于接收数据分组605的连接数据(例如,解引用指针)。如果摘要不匹配,则采取备选动作630(例如,丢弃分组,将分组引导到控制平面以用于进一步处理等)。虽然图6示出收到的数据分组605包括可选字段350,但在一些实施例中,收到的数据分组不包括可选字段。应理解,解引用指针允许网络的线路卡直接索引到其存储器中以定位连接数据。平均而言,这是比诸如使用哈希表或二进制树查找机制等使用常规查找更快的查找过程,因为它只要求单次存储器查找。另外,不同于常规查找过程,查找时间是恒定的,而与连接的数量无关。另外,上述安全快速表查找机制使用可预测的存储量。图7示出本发明的一个实施例中的为带有双向标识符的那些协议验证从对等网络收到的数据分组中受信任指针的备选方式。类似如参照图6所述的,参照图7所述的操作在网络元件的数据平面中执行(例如,在网络元件的数据平面的线路卡中的硬件上执行)。在一个实施例中,参照图7所述的操作适用于使用参照图4所述的实施例的那些协议。图7的操作类似于图6的操作,不同之处在于指针值及该指针值的摘要被包括在可选字段350中(例如,到分配的连接数据的指针被编码在可选字段350的比特0到L中,并且分配的连接数据的摘要被编码在可选字段350的比特L+1到Q比特中)。可选字段350的比特0到L的数据提供到哈希引擎425,并且可选字段350的比特L+1到Q的数据设为摘要615。哈希引擎425和摘要编辑器620执行如参照图6所述的类似操作。图8是示出在本发明的一个实施例中为带有双向标识符的那些协议验证从对等网络收到的数据分组中受信任指针的流程图。图8的操作将参照图2的示范实施例进行描述。然而,应理解,图8的操作能够由与参照图2讨论的那些实施例不同的本发明的其它实施例来执行,并且参照图2讨论的实施例能够执行与参照图8所述那些操作不同的操作。图8所示的操作在网络元件120内的线路卡上执行。在框810,分组解析引擎215接收数据分组并开始解析数据分组。例如,参照图1,分组解析引擎215从网络元件110接收数据分组,并且确定分组是带有双向标识符的协议的数据分组。流程从框810转到框815,在该框,分组解析引擎215从数据分组的第一部分和第二部分提取数据(例如,从数据分组的报头),并将数据写入分组缓冲器存储器中如果协议是L2TP,则在一个实施例中,分组解析引擎215从会话ID字段和cookie字段提取数据。流程从框815转到框820。在框820,哈希引擎225将数学变换(例如,哈希算法)应用到从分组的第一部分提取的数据(例如,从L2TP数据分组的会话ID字段提取的数据)。哈希引擎225应用如在连接建立期间曾使用的相同数学变换(例如,哈希引擎255使用的相同的数学变换)。应理解,如果在连接建立期使用了nonce值,则在应用数学变换时,哈希引擎225使用相同的nonce值。流程从框820转到框825。在框825,受信任指针验证引擎220比较从分组的第二部分(例如,从L2TP数据分组中的cookie字段)提取的数据和哈希引擎225执行的数学变换的结果。如果数据匹配(从第一部分提取的数据是受信任指针),则流程转到框835,否则,流程转到框830,在该框采取备选动作(例如,丢弃分组,数据平面尝试使用分组的第一部分的信息(例如,会话ID字段中值)来查找该分组的连接数据,将分组转发到控制平面以用于进一步处理等)。在框835,从分组的第一部分提取的数据(受信任指针)被解引用以定位对应于该数据分组的分配的连接数据。流程从框835转到框840,在该框,数据平面继续处理数据分组。在一个实施例中,如果连接数据被分配到专用于连接数据的存储器的部分,并且该专用存储器部分的存储器地址范围是已知的,则在对来自收到的数据分组的第一部分的提取数据进行哈希(例如,框820中)前,确定从第一部分提取的数据是否指向专用于连接数据的存储器的该部分。如果从分组的第一部分提取的数据指向专用于连接数据的存储器的该范围中的存储器位置,则处理继续(例如,执行框820中的哈希),否则,采取备选动作(例如,丢弃分组,将分组转发到控制平面以用于进一步处理,数据平面尝试使用分组的第一部分的信息(例如,会话ID字段中的值)来查找该分组的连接数据等)。应理解,本发明的实施例不要求连接的两侧(例如,两个网络元件110和120)执14行上述操作(例如,选择本地标识符作为到连接数据的指针)。在本发明的一个实施例中,在最初验证指针为受信任后,在数据平面中设置标志,以便带有该指针的将来数据分组能够受到信任而不执行另外的数学变换。图9是示出根据本发明的一个实施例的在参照图8所述的流程中执行的可选操作的流程图。在执行参照图8的框815所述的操作后,流程转到图9的框910,在该框,做出以下确定从数据分组的第一部分提取的数据是否以前已被验证。如果从数据分组的第一部分提取的数据以前已被验证,则流程转到参照图8所述的框835,否则,流程转到参照图8所述的框825。在一个实施例中,布隆过滤器用于记录指针值的哪些值已被验证,并且跨指针值的多个值被共享,而在其它实施例中,比特图表用于记录以前验证的指针值。在一个实施例,布隆过滤器和/或比特图表存储在网络元件的线路卡的静态随机存取存储器(SRAM)中。布隆过滤器是用于确定元素是否是集合的成员的概率表示。根据一个实施例,在指针值最初已被验证后,第一部分的数学变换的结果(例如,哈希摘要)在布隆过滤器中被表示。在另一个实施例中,在指针值最初已被验证后,该指针值和哈希摘要的组合在布隆过滤器中被表示(例如,指针值和哈希摘要被级联,指针值添加到哈希摘要,哈希摘要按对应于指针值的量来移位等)。这在本文中后面参照框915描述。在一个实施例中,将哈希摘要分成多个段,为那些段的每个段计算值,并且设置对应于设置值的布隆过滤器的比特。为了确定指针以前是否已被信任(例如,哈希在布隆过滤器上被表示),将从分组的第二部分提取的数据分割成多个段,为那些段的每个段计算值,以及校验对应于那些值的布隆过滤器的比特。如果它们全部被设置,则指针以前已被信任。然而,如果未设置任何比特,则指针以前尚未被验证。当然,其它方式可用于缓存验证的结果,包括使用多个布隆过滤器。再参照图9,在框825,如果从分组的第二部分(例如,从L2TP数据分组中的cookie字段)提取的数据匹配哈希引擎225执行的数学变换的结果,则流程转到框915,在该框,来自第一部分的数据被设为是受信任的。例如,如果使用布隆过滤器,将从分组的第二部分提取的数据(以及可选地与从分组的第一部分提取的数据组合)被表示到布隆过滤器中(例如,将从第二部分提取的数据(或可选地从第一和第二部分提取的数据的组合)分割成一个或多个段,计算那些段的每个段的值,以及设置对应于那些值的布隆过滤器的比特)。流程随后从框915转到参照图8所述的框830。虽然图中的流程图示出本发明的某些实施例执行的操作的特定顺序,但应理解,此类顺序是示范性的(例如,备选实施例可以在不同的顺序中执行操作,组合某些操作,重叠某些操作等)。虽然本发明已根据几个实施例来描述,但本领域的技术人员将认识到本发明不限于所述实施例,而是能够通过随附权利要求的精神和范围内的修改和变化来实践。描述因此要视为是说明性的而不是限制性的。权利要求1.一种用于一对网络元件的第一网络元件上执行的安全快速表查找的方法,包括建立协议的多个连接,其中建立每个连接包括在所述第一网络元件与所述一对网络元件的第二网络元件之间交换本地选择的标识符,其中为每个连接建立执行以下操作在所述第一网络元件的存储器中分配连接数据,生成本地标识符,所述本地标识符是到所分配的连接数据的指针,应用数学变换到所生成的本地标识符,分别在连接建立分组的第一和第二部分中包括表示所生成的本地标识符的值和所生成的本地标识符的数学变换的结果,以及将所述连接建立分组传送到所述第二网络元件;以及响应于从所述第二网络元件接收该协议的第一数据分组,执行以下操作从所述第一数据分组的第一部分和第二部分提取数据,应用所述数学变换到从所述第一部分提取的数据,以及确定从所述第一部分提取的数据的数学变换的结果匹配从所述第一分组的第二部分提取的数据,以及解引用所述第一部分中提取的数据以定位用于所述第一数据分组的所分配的连接数据。2.如权利要求1所述的方法,其中表示所生成的本地标识符的所述值是所生成的本地标识符的混乱值。3.如权利要求1所述的方法,其中对于每个连接建立,所生成的本地标识符是到所分配的连接数据的存储器地址。4.如权利要求1所述的方法,还包括响应于从所述第二网络元件接收该协议的第二数据分组,执行以下操作从所述第二数据分组的第一部分和第二部分提取数据,应用所述数学变换到从所述第一部分提取的数据,以及确定从所述第一部分提取的数据的数学变换的结果与从所述第二数据分组的第二部分提取的数据不匹配,以及丢弃所述第二数据分组。5.如权利要求1所述的方法,其中所述协议是第2层隧道化协议(L2TP),其中每个连接建立分组的第一部分和所述第一数据分组的第一部分对应于会话ID字段,并且其中每个连接建立分组的第二部分和所述第二数据分组的第二部分对应于cookie字段。6.如权利要求1所述的方法,还包括对于每个连接,在所述数学变换应用到所生成的本地标识符期间使用相同的nonce值,并且响应于接收所述第一数据分组还在所述数学变换应用到从所述第一数据分组的第一部分提取的数据期间使用所述相同的nonce值。7.如权利要求1所述的方法,其中所述数学变换是单向哈希算法,以及其中应用到所生成的本地标识符的所述数学变换的结果是从所述数学变换产生的哈希摘要的一部分,以及其中对从所述第一部分提取的数据的所述数学变换的结果是由该数学变换产生的哈希摘要的一部分,所述部分对应于从应用到所生成的本地标识符的所述数学变换产生的哈希摘要的所述部分。8.如权利要求1所述的方法,其中在专用于连接数据的存储器的部分中分配用于每个连接的连接数据。9.如权利要求8所述的方法,还包括其中将所述数学变换应用到从所述第一部分提取的数据是响应确定从所述第一部分提取的数据在专用于连接数据的存储器的部分的范围内。10.一种为带有双向标识符的协议执行安全快速表查找的网络元件,所述网络元件包括控制平面,包括一个或多个协议模块以建立连接,其中每个协议模块为每个连接执行以下操作在所述网络元件的数据平面的存储器中分配用于该连接的连接数据,选择本地标识符,所述本地标识符是到用于该连接的所分配的连接数据的指针,基于所选择的标识符,生成验证签名,以及与一个或多个协议参与对等网络元件协商所选择的指针和所述验证签名;以及数据平面,与所述控制平面耦合,所述数据平面包括存储器,存储每个连接的所分配的连接数据,分组解析引擎,接收和解析从用于所建立的连接的所述一个或多个协议参与对等网络元件接收的数据分组,其中每个接收的数据分组包括本地标识符和验证签名,所述分组解析引擎从所述数据分组提取所述本地标识符和所述验证签名,哈希引擎,与所述分组解析引擎耦合,所述哈希引擎应用哈希算法到所提取的本地标识符,以及受信任指针验证引擎,与所述分组解析引擎和所述哈希引擎耦合,所述受信任指针验证引擎执行以下操作比较所提取的验证签名和所述哈希算法应用到所提取的本地标识符的结果的对应结果,以及解引用所提取的本地标识符中其对应提取的验证签名匹配所述哈希算法应用到该提取的本地标识符的对应结果的那些本地标识符。11.如权利要求10所述的网络元件,其中所述受信任指针验证引擎还要丢弃其提取的验证签名与所述哈希算法应用到所提取的本地标识符的对应结果不匹配的那些数据分组。12.如权利要求10所述的网络元件,其中所述协议模块之一是第2层隧道化协议(L2TP)模块,其中协商所选择的指针和验证签名包括所述L2TP模块生成包括所选择的指针和验证签名的L2TP连接建立分组。13.如权利要求12所述的网络元件,其中所述L2TP模块要在所述L2TP连接建立分组的会话ID字段中包括所选择的指针,并且在所述L2TP连接建立分组的cookie字段中包括所述验证签名。14.如权利要求10所述的网络元件,其中所述控制平面要还基于nonce值为每个连接生成所述验证签名,以及其中所述数据平面中的所述哈希引擎还要在应用所述哈希算法到所提取的本地标识符时使用所述nonce值。15.如权利要求10所述的网络元件,其中用于每个连接的所选择的本地标识符是到用于该连接的数据平面的所分配的连接数据的存储器地址。16.一种用于在一对网络元件的第一网络元件上为带有双向标识符的协议所执行的安全快速表查找的方法,所述方法包括接收多个连接建立请求,每个请求要为带有双向标识符的协议建立连接;为每个接收的连接建立请求执行以下操作在所述网络元件的存储器中分配连接数据,选择本地标识符,所述本地标识符是到所分配的连接数据的指针,对所选择的本地标识符进行哈希以产生验证签名,以及生成连接建立分组,所述连接建立分组在所述分组的报头的第一部分中包括所选择的本地标识符,并且在所述分组的所述报头的第二部分中包括所述验证签名,其中用于该连接的数据分组包括报头,所述报头包括对应的第一部分和第二部分,以及将所述连接建立分组传送到一对网络元件的第二网络元件;从所述第二网络元件接收用于所建立的连接的多个数据分组,为每个接收的数据分组执行以下操作提取该数据分组的报头的第一部分中包括的数据和该数据分组的所述报头的第二部分中包括的数据,对从所述报头的第一部分提取的数据进行哈希,比较从所述报头的第一部分提取的数据的哈希的结果和从所述报头的第二部分提取的数据,响应于确定从所述报头的第一部分提取的数据的哈希的结果匹配从所述报头的第二部分提取的数据,解引用从所述报头的第一部分提取的数据以定位所述存储器中所分配的连接数据。17.如权利要求16所述的方法,其中对于每个接收的数据分组,还执行以下操作响应于确定从所述报头的第一部分提取的数据的哈希的结果和从所述报头的第二部分提取的数据不匹配,丢弃该数据分组。18.如权利要求16所述的方法,其中所述验证签名是所选择的本地标识符的哈希的结果的一部分。19.如权利要求16所述的方法,其中对于每个连接,所述指针是所分配的连接数据的存储器地址。20.如权利要求16所述的方法,其中所述协议是第2层隧道化协议(L2TP),其中每个连接建立分组的第一部分和所述第一数据分组的第一部分对应于会话ID字段,并且其中每个连接建立分组的第二部分和所述第二数据分组的第二部分对应于cookie字段。全文摘要在带有双向标识符的协议的连接建立期间,连接数据被分配,本地选择的标识符是到分配的连接数据的指针,以及数学变换被应用到指针。指针和数学变换的结果分别被包括在连接建立分组的第一和第二部分中。在接收该协议的数据分组时,提取数据分组的第一和第二部分(这对应于连接建立分组的第一和第二部分)。在连接建立期间使用的相同数学变换被应用到从数据分组的第一部分提取的数据。数学变换的结果与从数据分组的第二部提取的数据进行比较;如果值匹配,则从第一部分提取的数据受到信任,并且被解引用以访问与该数据分组相关联的分配的连接数据。文档编号H04L29/08GK102422617SQ201080021442公开日2012年4月18日申请日期2010年5月13日优先权日2009年5月13日发明者J·利纳姆,S·苏布拉马尼安申请人:瑞典爱立信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1