本申请要求由MehdiArashmidAkhavainMohammadi等人于2014年10月6日提交的题为“ReversePathValidationforSourceRoutedNetworks(用于源路由网络的反向路径验证)”的美国专利申请No.14/507,142的优先权,该美国专利申请的全部内容通过引用合并至本文中,如同全文复制一样。关于联邦资助研究或开发的声明不适用参考缩微胶片附录不适用
背景技术:
::在基于索引的源路由网络中,数据分组可以携载有效载荷(例如,数据内容)和用于对数据分组进行路由的路径信息二者。在许多实现中,期望能够确保数据分组沿预期的下一跳节点和/或链路通过网络被正确地路由。常规验证技术例如反向路径转发检查、资源预留协议(resourcereservationprotocol,RSVP)记录路由、多协议标签交换(multiprotocollabelswitch,MPLS)探测以及跟踪路由可以利用查找表使用源地址和/或目的地址来通过网络对数据分组进行路由,但是可能不能检测路由错误。同样,常规验证技术可能不适于基于索引的源路由网络。当数据分组通过网络被不正确地发送时,数据分组可能被丢弃和/或被错误地路由。期望有一种机制使得接收器能够验证通过基于索引的源路由网络的数据分组的转发。技术实现要素:在一种实施方式中,本公开内容包括一种分组转发验证方法,所述分组转发验证方法包括:接收包括下一跳索引和多个下一跳标识的数据分组,其中,下一跳索引引用来自多个下一跳标识的下一跳标识,并且其中,多个下一跳标识指示数据分组的通过网络的下一跳的序列;使用下一跳索引和多个下一跳标识来识别前一跳网络节点;确定数据分组的发送器网络节点;将前一跳网络节点与发送器网络节点进行比较;当前一跳网络节点与发送器网络节点不相同时,检测到转发错误;以及当前一跳网络节点与发送器网络节点相同时,处理数组分组。在另一实施方式中,本公开内容包括一种装置,所述装置包括接收器和处理器。接收器被配置成接收数据分组,数据分组包括:下一跳索引,其中,下一跳索引指示多个下一跳标识中的下一跳条目;多个下一跳标识,其中,多个下一跳标识对数据分组的下一跳网络节点的序列进行标识;以及有效载荷。处理器耦接至存储器和接收器,其中,存储器包括存储在非暂态计算机可读介质中的计算机可执行指令,使得所述计算机可执行指令在由处理器执行时使处理器执行以下操作:使用下一跳索引来识别前一跳网络节点;确定数据分组的发送器网络节点;将前一跳网络节点与发送器网络节点进行比较;当前一跳网络节点与发送器网络节点不匹配时,指示转发错误;以及当前一跳网络节点与发送器网络节点匹配时,转发数据分组。在又一实施方式中,本公开内容包括一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读介质上的可执行指令,使得所述可执行指令在由处理器执行时使网络节点执行以下操作:接收数据分组,数据分组包括下一跳索引、多个下一跳标识和有效载荷,其中,下一跳索引指示多个下一跳标识中的下一跳条目,多个下一跳标识对数据分组的下一跳网络节点的序列进行标识;以及使用下一跳索引来确定前一跳网络节点;识别数据分组的发送器网络节点;将前一跳网络节点与发送器网络节点进行比较;当前一跳网络节点与发送器网络节点不匹配时,指示转发错误;以及当前一跳网络节点与发送器网络节点匹配时,转发数据分组。根据以下结合附图和权利要求书所做的详细描述,将更清楚地理解这些以及其他特征。附图说明为了更透彻地理解本公开内容,现在参考以下结合附图和具体实施方式所做的简要描述,其中,相似的附图标记表示相似的部件。图1是网络的实施方式的示意图;图2是网络单元的实施方式的示意图;图3是源路由数据分组的实施方式的示意图;图4是传送源路由数据分组的网络的实施方式的示意图;图5是传送源路由数据分组的网络的另一实施方式的示意图;图6是分组转发验证方法的实施方式的流程图;以及图7是分组转发验证方法的另一实施方式的流程图。具体实施方式首先应当理解,虽然下面提供了一个或更多个实施方式的示例性实现,但是所公开的系统和/或方法可以使用任意种技术来实现,而不管该技术是否为当前已知或现有的。公开内容决不应当限制于下面所示的示例性实现、附图和技术——包括本文所示出和描述的示例性设计和实现,而是可以在所附权利要求的范围及其等同方案的完全范围内进行修改。本文所公开的是用于验证通过源路由网络进行的分组转发以及识别网络故障点的各种实施方式。各种实施方式可以使网络运营商能够对照由控制器确定的数据路径来验证实际的数据路径,这可以使网络运营商能够在检测到错误时识别网络故障点。例如,路径转发验证可以基于入链路和/或头部信息来提供逐跳数据路径验证和/或确认。可以在无需大量的分组修改和/或无需单独的调试协议的情况下对分组转发进行验证。另外,分组转发验证可以结合网络修复机制(例如,源路由快速重路由)来实现并且可以减少业务中断。图1是本公开内容的实施方式可以操作的网络100的实施方式的示意图。网络100可以被配置为基于索引的源路由网络并且可以包括多个网络节点102A-102G。网络节点102A-102G可以是支持通过网络100传输数据业务(例如,数据分组)的任何设备和/或部件。例如,网络节点102A-102G可以包括交换机、路由器、如本领域普通技术人员在查看本公开内容时会意识到的用于传送数据分组的任何其他合适的网络设备或其组合。网络节点102A-102G可以被配置成从其他网络节点接收数据分组、验证路径路由以及将数据分组发送至其他网络节点。一个或更多个网络节点102A-102G可以由网络运营商和/或集中式控制器(例如,软件定义网络(software-definednetwork,SDN)控制器)进行配置。网络节点102A-102G可以经由多个链路104A-104I彼此耦接。本文讨论的链路104A-104I可以是物理链路例如电气链路、光纤链路和/或用于传输数据的逻辑链路(例如,虚拟链路)。本领域技术人员将意识到,网络节点之间的链路还可以是逻辑链路(例如,两个节点之间的链路在逻辑层面上可能呈现为直接链路,但在物理层面上涉及通过其他节点的路由)。虽然针对网络节点102A-102G的特定配置公开了图1的实施方式,但是要注意,网络100可以包括如本领域普通技术人员在查看本公开内容时会意识到的任何适当数目的网络节点102A-102G和/或网络节点102A-102G的配置。图2是可以用于通过图1所示的网络100的至少一部分传输和处理数据业务的网络元件200的实施方式的示意图。例如,网络单元200可以是图1所描述的网络节点102A-102G。可以在网络元件200中实现本公开内容所描述的特征/方法中的至少一些特征/方法。例如,本公开内容的特征/方法可以实现成硬件、固件和/或被安装以在硬件上运行的软件。网络元件200可以是通过网络、系统和/或域名来传输数据的任何设备(例如,调制解调器、交换机、路由器、桥接器、服务器、客户端等)。此外,除非本公开内容内另有特别指示和/或要求,否则术语网络“元件”、网络“节点”、网络“部件”、网络“模块”和/或类似的术语可以被互换地用来一般地描述网络设备并且不具有特定或特殊意义。在一种实施方式中,网络元件200可以为被配置成传送数据分组以及验证通过网络进行的分组转发的装置。例如,网络元件200可以实现和/或集成在图1所描述的网络节点102A-102G内。网络元件200可以包括耦接至收发器(Tx/Rx)220的一个或更多个下游端口210,收发器220可以是发送器、接收器或其组合。Tx/Rx220可以经由下游端口210向其他网络节点发送帧和/或从其他网络节点接收帧。类似地,网络元件200可以包括耦接至多个上游端口240的另外的Tx/Rx220,其中,Tx/Rx220可以经由上游端口240向其他节点发送帧和/或从其他节点接收帧。下游端口210和/或上游端口240可以包括电发送部件和/或电接收部件以及/或者光发送部件和/或光接收部件。处理器230可以耦接至Tx/Rx220并且可以被配置成对帧进行处理和/或确定哪些节点来发送(例如,传输)分组。在实施方式中,处理器230可以包括可以用作数据存储器、缓冲器等的一个或更多个多核处理器和/或存储器模块250。处理器230可以被实现为通用处理器或者可以是一个或更多个专用集成电路(application-specificintegratedcircuit,ASIC)、现场可编程门阵列(field-programmablegatearray,FPGA)和/或数字信号处理器(digitalsignalprocessor,DSP)的一部分。虽然被示出为单个处理器,但是处理器230并不被限制于此,而是可以包括多个处理器。处理器230可以被配置成验证分组转发和/或识别网络中的故障点。图2示出了存储器模块250可以耦接至处理器230并且可以是被配置成存储各种类型的数据的非暂态介质。存储器模块250可以包括存储器设备,所述存储器设备包括二级存储器、只读存储器(read-onlymemory,ROM)以及随机存取存储器(random-accessmemory,RAM)。二级存储器一般包括一个或更多个磁盘驱动器、光驱动器、固态驱动器(solid-statedrive,SSD)和/或磁带驱动器,并且二级存储器用于数据的非易失性存储并且在RAM不足以容纳所有工作数据时用作溢出存储设备。二级存储器可以用于存储下述程序,该程序在其被选择用于执行时被加载到RAM中。ROM用于存储在程序执行期间所读取的指令以及可能的数据。ROM是相对于二级存储器的较大存储容量通常具有小的存储容量的非易失性存储器设备。RAM用于存储易失性数据并且可能存储指令。对ROM和RAM二者的访问通常比对二级存储器的访问快。存储器模块250可以用于容置用于执行本文描述的各种示例实施方式的指令。在一种示例实施方式中,存储器模块250可以包括可以实现在处理器230上的路径验证模块260。在一种实施方式中,路径验证模块260可以被实现成通过网络(例如,基于索引的源路由网络)传送数据分组、验证分组转发和/或识别网络中的故障点。例如,路径验证模块260可以被配置成确定接收到的数据分组是否是从发送器正确地转发的。路径验证模块260可以实现在发送器(Tx)、接收器(Rx)或者上述二者中。要理解,通过将可执行指令编程和/或加载到网络元件200上,处理器230、缓存器和长期存储器中的至少一者被改变,从而将网络元件200部分地转换成特定机器或装置,例如具有本公开内容所教示的新颖功能的多核转发架构。可以通过现有技术中已知的公知设计规则将可以通过将可执行软件加载到计算机中实现的功能转换成硬件实现是电气工程和软件工程领域的基础。在以软件来实现构思与以硬件来实现构思之间的决策通常取决于以下考虑:设计的稳定性以及要生产的单元的数目,而不是在软件域转换成硬件域时所涉及的任何问题。通常,仍要频繁改变的设计可以优选地以软件来实现,这是因为重新开发硬件实现比重新开发软件设计更为昂贵。通常,会大量生产的稳定的设计可以优选地以硬件(例如,以ASIC)来实现,这是因为对于大批量生产,硬件实现可能比软件实现更为便宜。通常,可以以软件形式来开发和测试设计并且随后通过现有技术中已知的公知设计规则将所述设计转换成以对软件的指令进行硬连线的ASIC形式的等效硬件实现。以与由新的ASIC控制的机器是特定机器或装置相同的方式,已经编程和/或加载有可执行指令的计算机同样可以被视为特定机器或装置。可以通过使处理器(例如,可选地具有多个处理内核的通用处理器)执行计算机程序来实现本公开内容的任何处理。在该情况下,可以使用任何类型的非暂态计算机可读介质向计算机或网络设备提供计算机程序产品。可以将计算机程序产品存储在计算机或网络设备中的非暂态计算机可读介质中。非暂态计算机可读介质包括任何类型的有形存储介质。非暂态计算机可读介质的示例包括磁存储介质(例如,软盘、磁带、硬盘驱动器等)、光磁存储介质(例如,磁光盘)、光盘只读存储器(compactdiscread-onlymemory,CD-ROM)、可记录光盘(compactdiscrecordable,CD-R)、可重写光盘(compactdiscrewritable,CD-R/W)、数字多功能光盘(digitalversatiledisc,DVD)、蓝光(注册商标)盘(Blu-raydisc,BD)以及半导体存储器(例如,掩模ROM、可编程ROM(programmableROM,PROM),可擦除PROM)、闪速ROM和RAM)。可以使用任何类型的暂态计算机可读介质向计算机或网络设备提供计算机程序产品。暂态计算机可读介质的示例包括电信号、光信号以及电磁波。暂态计算机可读介质可以经由有线通信线路(例如,电线和光纤)或无线通信线路向计算机提供程序。图3是源路由数据分组300的实施方式的示意图。在实施方式中,可以使用源路由数据分组300来通过基于索引的源路由网络转发数据内容。例如,可以由图1描述的多个网络节点102A-102G通过网络100传送源路由数据分组300。源路由数据分组300一般可以包括头部310、路径路由部320以及有效载荷部330。头部310可以包括用于通过网络对数据分组进行路由的信息。路径路由部320可以识别数据分组沿路径经过的多个下一跳308(例如,下一跳网络节点、链路、端口和/或接口)。有效载荷部330可以包括有效载荷或数据内容。在实施方式中,头部310包括下一跳索引字段302、跳数字段304以及跳大小字段306。下一跳索引字段302可以包括用于识别路径路由部320中的下一跳条目的下一跳索引值。跳数字段304可以包括指示从源网络节点至目的网络节点的跳数的跳数值。跳数字段304可以与下一跳索引字段302结合使用以确定网络节点是否是目的网络节点。跳大小字段306可以包括指示路径路由部320中的每个条目的长度(例如,以比特或字节为单位)的长度值。在实施方式中,下一跳索引字段302和跳大小字段306可以结合使用以解析和/或遍历路径路由部320中的条目。例如,跳数索引字段302的值与跳大小字段306的值的乘积可以产生偏移,该偏移可以用于确定(例如,定位)路径路由部320中的条目。图4是传送源路由数据分组的网络400的实施方式的示意图。网络400可以包括多个网络节点402A-402G以及多个链路404A-404I。网络节点402A-402G可以与图1中描述的网络节点102A-102G类似地进行配置,并且链路404A-404I可以与图1中描述的104A-104I类似地进行配置。网络400可以被配置成沿从网络节点402A至网络节点402G的流向来传送数据业务(例如,数据分组)。网络节点402A可以被配置成获得(例如,接收或生成)数据分组406、生成数据分组408以及根据数据分组408的路径路由部来发送数据分组408。数据分组408可以是源路由数据分组(例如,图3中描述的源路由数据分组300)。网络节点402A可以被配置成对数据分组406进行封装和/或将多个字段(例如,图3中描述的路径路由部320)添加到数据分组406以生成数据分组408。数据分组408可以包括头部,该头部包括具有值为1的下一跳索引字段、具有值为4的跳数字段以及具有值为8的跳大小字段。数据分组408的路径路由部可以指示沿链路404A、链路404B、链路404C以及链路404I的转发路由。数据分组408的有效载荷部可以包括数据分组406的有效载荷部。网络节点402A可以被配置成根据数据分组408的下一跳索引值和路径路由部来发送数据分组408。下一跳索引值可以引用路径路由部中的第一条目,该第一条目可以指示沿链路404A将数据分组408发送至网络节点402B。可以将下一跳索引值递增成值为2,并且可以将数据分组408发送至下一跳。网络节点402B可以被配置成接收数据分组408、验证数据分组408的分组转发、生成数据分组410以及根据数据分组410的路径路由部来发送数据分组410。网络节点402B可以被配置成检查数据分组408以验证该分组转发。网络节点402B可以被配置成通过使数据分组408的下一跳索引字段值递减并且使用经递减的下一跳索引字段值来定位数据分组408的路径路由部中的用于前一网络节点的条目,从而来确定前一跳网络节点。例如,可以将下一跳索引值2递减以获得经递减的下一跳值为1。经递减的下一跳索引的值1可以引用数据分组408的路径路由部中的第一条目,该第一条目可以用于识别前一跳网络节点,也被称为发送网络节点。数据分组408的路径路由部中的条目可以引用网络节点、端口和/或链路。例如,数据分组408的路径路由部中的第一条目可以指示链路404A,该链路404A与作为链路404A上的前一跳网络节点或发送器网络节点的网络节点402A相关联。网络节点402B可以被配置成将数据分组408的路径路由部所指示的前一跳网络节点与数据分组408的发送器网络节点(例如,实际的前一跳网络节点)进行比较。例如,网络节点402B可以通过检查接收到数据分组408的入接口(例如,链路和/或端口)并且确定关联或连接至该入接口的发送器来确定数据分组408的发送器网络节点。网络节点402B可以被配置成当数据分组408的路径路由部所指示的前一跳网络节点与数据分组408的发送器网络节点不匹配时丢弃数据分组408和/或指示发生了错误。当数据分组408的路径路由部所指示的前一跳网络节点与数据分组408的发送器网络节点匹配时,网络节点402B可以被配置成进一步处理数据分组408。网络节点402B可以被配置成将数据分组408的下一跳索引值(例如,下一跳值为2)与跳数值(例如,跳数值4)进行比较以确定网络节点402B是否是有效载荷的目的节点。当下一跳索引值小于或约等于跳数值时,网络节点402B可以被配置成确定网络节点402B不是有效载荷的目的节点。网络节点402B可以被配置成根据数据分组410的原始的下一跳索引值(例如,未经递减的下一跳索引值2)和路径路由部来发送数据分组410。下一跳索引值可以引用路径路由部中的第二条目,该第二条目可以指示沿链路404B将数据分组410发送至网络节点402D。在发送数据分组410之前,网络节点402B可以使数据分组408的下一跳索引值递增并且可以使用经递增的下一跳字段值(例如,经递增的下一跳值为3)作为数据分组410中的下一跳索引值。与前面描述类似地,网络节点402D可以被配置成接收数据分组410、验证数据分组410的分组转发、生成数据分组412以及根据数据分组412的路径路由部来发送数据分组412。网络节点402D可以被配置成检查数据分组410以验证分组转发。网络节点402D可以被配置成通过使数据分组410的下一跳索引值递减并且使用经递减的下一跳索引值来定位数据分组410的路径路由部中的用于前一跳网络节点的条目,从而来确定前一跳网络节点。网络节点402D可以被配置成将数据分组410的路径路由部所指示的前一跳网络节点与数据分组410的发送器网络节点进行比较。网络节点402D可以被配置成当数据分组410的路径路由部所指示的前一跳网络节点与数据分组410的发送器网络节点不匹配时丢弃数据分组410和/或指示发生了错误。当数据分组410的路径路由部所指示的前一跳网络节点与数据分组410的发送器网络节点匹配时,网络节点402D可以被配置成进一步处理数据分组410。网络节点402D可以被配置成将数据分组410的下一跳索引值与跳数值进行比较以确定网络节点402D是否是有效载荷的目的节点。当下一跳索引值小于或约等于跳数字段值时,网络节点402D可以被配置成确定网络节点402D不是有效载荷的目的节点。网络节点402D可以被配置成根据数据分组410的原始的下一跳索引值和路径路由部来发送数据分组412。数据分组410的下一跳索引值可以引用路径路由部中的第三条目,该第三条目可以指示沿链路404C将数据分组412发送至网络节点402E。在发送数据分组412之前,网络节点402D可以使数据分组410的下一跳索引值递增并且可以使用经递增的下一跳值作为数据分组412中的下一跳索引值。与前面描述类似地,网络节点402E可以被配置成接收数据分组412、验证数据分组412的分组转发、生成数据分组414以及根据数据分组414的路径路由部来发送数据分组414。网络节点402E可以被配置成检查数据分组412以验证分组转发。网络节点402E可以被配置成通过使数据分组412的下一跳索引值递减并且使用经递减的下一跳索引值来定位数据分组412的路径路由部中的用于前一跳网络节点的条目,从而来确定前一跳网络节点。网络节点402E可以被配置成将数据分组412的路径路由部所指示的前一跳网络节点与数据分组412的发送器网络节点进行比较。网络节点402E可以被配置成当数据分组412的路径路由部所指示的前一跳网络节点与数据分组412的发送器网络节点不匹配时丢弃数据分组412和/或指示发生了错误。当数据分组412的路径路由部所指示的前一跳网络节点与数据分组412的发送器网络节点匹配时,网络节点402E可以被配置成进一步处理数据分组412。网络节点402E可以被配置成将数据分组412的下一跳索引值与跳数值进行比较以确定网络节点402E是否是有效载荷的目的节点。当下一跳索引值小于或约等于跳数值时,网络节点402E可以被配置成确定网络节点402E不是有效载荷的目的节点。网络节点402E可以被配置成根据数据分组412的原始的下一跳索引值和路径路由部来发送数据分组414。数据分组410的下一跳索引值可以引用路径路由部中的第四条目,该第四条目可以指示沿链路404I将数据分组414发送至网络节点402G。在发送数据分组414之前,网络节点402E可以将使数据分组412的下一跳索引值递增并且可以使用经递增的下一跳值作为数据分组414中的下一跳索引值。网络节点402G可以被配置成接收数据分组414、验证数据分组414的分组转发、对数据分组414进行解封装以及处理有效载荷。注意,如本领域普通技术人员会意识到的,术语“解封装”或“去封装”可以互换地使用。网络节点402G可以被配置成检查数据分组414以验证分组转发。网络节点402G可以被配置成通过使数据分组414的下一跳索引值递减并且使用经递减的下一跳索引值来定位数据分组414的路径路由部中的用于前一跳网络节点的条目,从而来确定前一跳网络节点。网络节点402G可以被配置成将数据分组414的路径路由部所指示的前一跳网络节点与数据分组414的发送器网络节点进行比较。网络节点402G可以被配置成当数据分组414的路径路由部所指示的前一跳网络节点与数据分组414的发送器网络节点不匹配时丢弃数据分组414和/或指示发生了错误。当数据分组414的路径路由部所指示的前一跳网络节点与数据分组414的发送器网络节点匹配时,网络节点402G可以被配置成进一步处理数据分组414。网络节点402G可以被配置成将数据分组414的下一跳索引值与跳数值进行比较以确定网络节点402G是否是有效载荷的目的节点。当下一跳索引值大于跳数值时,网络节点402G可以被配置成确定网络节点402G是有效载荷的目的节点。网络节点402G可以被配置成处理数据分组414。处理数据分组414可以包括对数据分组414进行解封装和/或从数据分组414中移除多个字段(例如,路径路由部)并且处理有效载荷。数据分组414的有效载荷部可以与数据分组406的有效载荷部基本上类似。处理有效载荷部可以包括使用有效载荷、将有效载荷存储至存储器中、转发有效载荷、对有效载荷进行路由(例如,因特网协议(InternetProtocol,IP)路由)和/或本领域普通技术人员在查看本公开内容时会意识到的任何其他适当的处理。图5是传送源路由数据分组的网络500的实施方式的示意图。网络500可以包括多个网络节点502A-502G以及多个链路504A-504I。网络节点502A-502G可以与图1中描述的网络节点102A-102G类似地进行配置,并且链路404A-404I可以与图1中描述的链路104A-104I类似地进行配置。网络500可以被配置成沿从网络节点502A至网络节点502G的流向来传送数据业务(例如,数据分组)。网络节点502A可以被配置成获得(例如,接收或生成)数据分组506、生成数据分组508以及根据数据分组508的路径路由部来发送数据分组508。数据分组508可以是源路由数据分组(例如,图3中描述的源路由数据分组300)。网络节点502A可以被配置成对数据分组506进行封装和/或将多个字段(例如,图3中描述的路径路由部320)添加到数据分组506以生成数据分组508。数据分组508可以包括头部,该头部包括具有值为1的下一跳索引字段、具有值为4的跳数字段以及具有值为8的跳大小字段。数据分组508的路径路由部可以指示沿链路504A、链路504B、链路504C以及链路504I的转发路由。数据分组508的有效载荷部可以包括数据分组506的有效载荷部。网络节点502A可以被配置成根据数据分组508的下一跳索引值和路径路由部来发送数据分组508。下一跳索引值可以引用路径路由部中的第一条目,该第一条目可以指示沿链路504A将数据分组508发送至网络节点502B。可以不使下一跳索引值递增并且可以将其发送至下一跳。网络节点502B可以被配置成接收数据分组508、验证数据分组508的分组转发、生成数据分组510以及根据数据分组510的路径路由部来发送数据分组510。网络节点502B可以被配置成检查数据分组508以验证该分组转发。网络节点502B可以被配置成通过使用数据分组508的下一跳索引字段值来定位数据分组508的路径路由部中的用于前一跳网络节点的条目,从而来确定前一跳网络节点。例如,下一跳索引值1可以引用数据分组508的路径路由部中的第一条目,该第一条目可以用于识别前一跳网络节点或发送器节点。数据分组508的路径路由部中的条目可以引用网络节点、端口和/或链路。例如,数据分组508的路径路由部中的第一条目可以指示可以链路504A,该链路504A与作为链路504A上的前一跳网络节点或发送器网络节点的网络节点502A相关联。网络节点502B可以被配置成将数据分组508的路径路由部所指示的前一跳网络节点与数据分组508的发送器网络节点(例如,实际的前一跳网络节点)进行比较。例如,网络节点502B可以通过检查接收到数据分组508的入接口(例如,链路和/或端口)并且确定关联或连接至该入接口的发送器来确定数据分组508的发送器网络节点。网络节点502B可以被配置成当数据分组508的路径路由部所指示的前一跳网络节点与数据分组508的发送器网络节点不匹配时丢弃数据分组508和/或指示发生了错误。当数据分组508的路径路由部所指示的前一跳网络节点与数据分组508的发送器网络节点匹配时,网络节点502B可以被配置成进一步处理数据分组508。网络节点502B可以被配置成将数据分组508的下一跳索引值(例如,下一跳值为1)与跳数值(例如,跳数值为4)进行比较以确定网络节点502B是否是有效载荷的目的节点。当下一跳索引值小于跳数值时,网络节点502B可以被配置成确定网络节点502B不是有效载荷的目的节点。网络节点502B可以使数据分组508的下一跳索引值递增并且可以使用经递增的下一跳索引值(例如,经递增的下一跳值为2)作为数据分组510中的下一跳索引值。网络节点502B可以被配置成根据数据分组510的经递增的下一跳索引值和路径路由部来发送数据分组510。下一跳索引值可以引用路径路由部中的第二条目,该第二条目可以指示沿链路504B将数据分组510发送至网络节点502D。与前面描述类似地,网络节点502D可以被配置成接收数据分组510、验证数据分组510的分组转发、生成数据分组512以及根据数据分组512的路径路由部来发送数据分组512。网络节点502D可以被配置成检查数据分组510以验证分组转发。网络节点502D可以被配置成通过使用数据分组510的下一跳索引值来定位数据分组510的路径路由部中的用于前一跳索引值的条目,从而来确定前一跳网络节点。网络节点502D可以被配置成将数据分组510的路径路由部所指示的前一跳网络节点与数据分组510的发送器网络节点进行比较。网络节点502D可以被配置成当数据分组510的路径路由部所指示的前一跳网络节点与数据分组510的发送器网络节点不匹配时丢弃数据分组510和/或指示发生了错误。当数据分组510的路径路由部所指示的前一跳网络节点与数据分组510的发送器网络节点匹配时,网络节点502D可以被配置成进一步处理数据分组510。网络节点502D可以被配置成将数据分组510的下一跳索引值与跳数值进行比较以确定网络节点502D是否是有效载荷的目的节点。当下一跳索引值小于跳数字段值时,网络节点502D可以被配置成确定网络节点502D不是有效载荷的目的节点。网络节点502D可以使数据分组510的下一跳索引值递增并且可以使用经递增的下一跳索引值(例如,经递增的下一跳索引值3)作为数据分组512中的下一跳索引值。网络节点502D可以被配置成根据数据分组510的经递增的下一跳索引值和路径路由部来发送数据分组512。数据分组510的下一跳索引值可以引用路径路由部中的第三条目,该第三条目可以指示沿链路504C将数据分组512发送至网络节点502E。与前面描述类似地,网络节点502E可以被配置成接收数据分组512、验证数据分组512的分组转发、生成数据分组514以及根据数据分组514的路径路由部来发送数据分组514。网络节点502E可以被配置成检查数据分组512以验证分组转发。网络节点502E可以被配置成通过使用数据分组512的下一跳索引值来定位数据分组512的路径路由部中的用于前一跳网络节点的条目,从而来确定前一跳网络节点。网络节点502E可以被配置成将数据分组512的路径路由部所指示的前一跳网络节点与数据分组512的发送器网络节点进行比较。网络节点502E可以被配置成当数据分组512的路径路由部所指示的前一跳网络节点与数据分组512的发送器网络节点不匹配时丢弃数据分组512和/或指示发生了错误。当数据分组512的路径路由部所指示的前一跳网络节点与数据分组512的发送器网络节点匹配时,网络节点502E可以被配置成进一步处理数据分组512。网络节点502E可以被配置成将数据分组512的下一跳索引值与跳数值进行比较以确定网络节点502E是否是有效载荷的目的节点。当下一跳索引值小于跳数值时,网络节点502E可以被配置成确定网络节点502E不是有效载荷的目的节点。网络节点502E可以使数据分组512的下一跳索引值递增并且可以使用经递增的下一跳索引值(例如,经递增的下一跳索引值4)作为数据分组514中的下一跳索引值。网络节点502E可以被配置成根据数据分组512的经递增的下一跳索引值和路径路由部来发送数据分组514。数据分组510的下一跳索引值可以引用路径路由部中的第四条目,该第四条目可以指示将数据分组514沿链路504I发送至网络节点502G。网络节点502G可以被配置成接收数据分组514,验证数据分组514的分组转发,对数据分组514进行解封装以及处理有效载荷。网络节点502G可以被配置成检查数据分组514以验证分组转发。网络节点502G可以被配置成通过使用数据分组514的下一跳索引值来定位数据分组514的路径路由部中的用于前一跳网络节点的条目,从而来确定前一跳网络节点。网络节点502G可以被配置成将数据分组514的路径路由部所指示的前一跳网络节点与数据分组514的发送器网络节点进行比较。网络节点502G可以被配置成当数据分组514的路径路由部所指示的前一跳网络节点与数据分组514的发送器网络节点不匹配时丢弃数据分组514和/或指示发生了错误。当数据分组514的路径路由部所指示的前一跳网络节点与数据分组514的发送器网络节点匹配时,网络节点502G可以被配置成进一步处理数据分组514。网络节点502G可以被配置成将数据分组514的下一跳索引值与跳数值进行比较以确定网络节点502G是否是有效载荷的目的节点。当下一跳索引值约等于跳数值时,网络节点502G可以被配置成确定网络节点502G是有效载荷的目的节点。网络节点502G可以被配置成处理数据分组514。处理数据分组514可以包括对数据分组514进行解封装和/或从数据分组514中去除多个字段(例如,路径路由部)并且处理有效载荷。数据分组514的有效载荷部可以与数据分组506的有效载荷部基本上类似。处理有效载荷部可以包括使用有效载荷,将有效载荷存储至存储器中、转发有效载荷、对有效载荷进行路由(例如IP路由)和/或本领域普通技术人员在查看本公开内容时会意识到的任何其他适当的处理。图6是用于网络节点的分组转发验证方法600的实施方式的流程图并且可以与图2中描述的路径验证模块260类似。在实施方式中,网络节点(例如,图4中描述的网络节点402A-402G)可以被配置成接收数据分组、验证分组转发、发送数据分组和/或确定发生了分组转发错误。网络节点可以被配置成将数据分组的实际的前一下一跳(例如,发送器网络节点)与数据分组的路径路由部中的下一跳条目进行对照检查以确定是否发生了分组转发错误和/或识别网络中的故障点。在步骤602处,网络节点可以接收数据分组。数据分组可以包括头部、路径路由部和有效载荷,并且可以与图3中描述的源路由数据分组300类似地进行配置。在步骤604处,网络节点可以使用下一跳索引来识别前一跳网络节点。在实施方式中,可以使数据分组的下一跳索引值递减并且可以使用经递减的下一跳索引值来定位数据分组的路径路由部中的用于前一跳网络节点的条目。例如,网络节点可以使用经递增的下一跳索引和跳大小值来解析和/或遍历数据分组的路径路由部。在步骤606处,网络节点可以确定数据分组的发送器网络节点。网络节点可以使用接收到数据分组的入接口(例如,端口)来确定数据分组的实际前一跳或发送器。例如,网络节点可以利用本地数据库(例如,SDN控制器数据库)使用入接口标识(ID)来确定实际的前一跳和/或发送接口ID。本地数据库可以由集中式控制器(例如,SDN控制器)进行分配、由运营商来提供、使用链路层发现协议(linklayerdiscoveryprotocol,LLDP)来建立和/或使用本领域普通技术人员在查看本公开内容时会意识到的任何其他适当的协议来建立。在步骤608处,网络节点可以将由下一跳索引所指示的前一跳与发送器网络节点进行比较。当由下一跳索引所指示的前一跳网络节点与发送器网络节点匹配时,网络节点可以进行至步骤612;否则,网络节点可以进行至步骤610。在步骤612处,网络节点可以确定网络节点自身是否是有效载荷的目的地。当网络节点是有效载荷的目的地时,网络节点可以进行至步骤614;否则,网络节点可以进行至步骤616。例如,网络节点可以将下一跳索引值与跳数值进行比较以确定网络节点是否是有效载荷的目的地。当下一跳索引值大于跳数值时,网络节点可能是有效载荷的目的地。当下一跳索引值小于或约等于跳数值时,网络节点不可能是有效载荷的目的地。在步骤616处,网络节点可以更新数据分组。网络节点可以使用原始的下一跳索引值(例如,未经递减的下一跳索引值)来确定数据分组的下一跳。在确定数据分组的下一跳时,可以使原始的下一跳索引值递增。在步骤618处,网络节点可以将数据分组发送至在步骤616中确定的由数据分组的路径路由部所指示的下一跳网络节点并且可以结束。返回至步骤612,当网络节点是有效载荷的目的地时,网络节点可以进行至步骤614。在步骤614处,网络节点可以对数据分组的有效载荷进行解封装。例如,网络节点可以从有效载荷中去除数据分组的一个或更多个字段(例如,路径路由部)。另外地,可以如图4中描述来进一步处理有效载荷部。返回至步骤608,当由下一跳索引所指示的前一跳网络节点与发送器网络节点不匹配时,网络节点可以进行至步骤610。在步骤610处,网络节点可以指示发生了错误。当检测到错误时,网络节点可以将发送器网络节点识别为网络故障点。网络节点还可以触发报警或事件、设置标志、向网络运营商通知、触发网络修复或恢复协议和/或本领域普通技术人员在查看本公开内容时会意识到的任何其他适当的动作。图7是用于网络节点的分组转发验证方法的另一实施方式的流程图并且可以与图2中描述的路径验证模块260类似。在实施方式中,网络节点(例如,图5中描述的网络节点502A-502G)可以被配置成接收数据分组、验证分组转发、发送数据分组和/或确定发生了分组转发错误。网络节点可以被配置成对照数据分组的路径路由部中的下一跳条目来检查数据分组的实际的前一下一跳(例如,发送器网络节点)以确定是否发生了分组转发错误和/或识别网络中的故障点。在步骤702处,网络节点可以接收数据分组。数据分组可以包括头部、路径路由部和有效载荷,并且可以与图3中描述的源路由数据分组300类似地进行配置。在步骤704处,网络节点可以使用下一跳索引来识别前一跳网络节点。在实施方式中,可以使用数据分组的下一跳索引值来定位数据分组的路径路由部中的用于前一跳网络节点的条目。例如,网络节点可以使用下一跳索引和跳大小值来解析和/或遍历数据分组的路径路由部。在步骤706处,网络节点可以确定数据分组的发送器网络节点。网络节点可以使用接收到数据分组的入接口(例如,端口)以确定数据分组的实际前一跳或发送器。例如,网络节点可以利用本地数据库(例如,SDN控制器数据库)使用入接口ID来确定实际的前一跳和/或发送接口ID。本地数据库可以由集中式控制器(例如,SDN控制器)进行分配、由运营商来提供、使用LLDP来建立和/或使用本领域普通技术人员在查看本公开内容时会意识到的任何其他适当的协议来建立。在步骤708处,网络节点可以将由下一跳索引所指示的前一跳与发送器网络节点进行比较。当由下一跳索引所指示的前一跳网络节点与发送器网络节点匹配时,网络节点可以进行至步骤712;否则,网络节点可以进行至步骤710。在步骤712处,网络节点可以确定网络节点是否是有效载荷的目的地。当网络节点是有效载荷的目的地时,网络节点可以进行至步骤714;否则,网络节点可以进行至步骤716。例如,网络节点可以将下一跳索引值与跳数值进行比较以确定网络节点是否是有效载荷的目的地。当下一跳索引值约等于跳数值时,网络节点可能是有效载荷的目的地。当下一跳索引值小于跳数值时,网络节点不可能是有效载荷的目的地。在步骤716处,网络节点可以更新数据分组。网络节点可以使下一跳索引值递增并且可以使用经递增的下一跳索引值来确定数据分组的下一跳。在步骤718处,网络节点可以将数据分组发送至在步骤716中确定的由数据分组的路径路由部所指示的下一跳网络节点并且可以结束。返回至步骤712,当网络节点是有效载荷的目的地时,网络节点可以进行至步骤714。在步骤714处,网络节点可以对数据分组的有效载荷进行解封装。例如,网络节点可以从有效载荷中去除数据分组的一个或更多个字段(例如,路径路由部)。另外地,可以如图5中描述来进一步处理有效载荷部。返回至步骤708,当由下一跳索引所指示的前一跳网络节点与发送器网络节点不匹配时,网络节点可以进行至步骤710。在步骤710处,网络节点可以指示发生了错误。当检测到错误时,网络节点可以将发送器网络节点识别为网络故障点。网络节点还可以触发报警或事件、设置标志、向网络运营商通知、触发网络修复或恢复协议和/或本领域普通技术人员在查看本公开内容时会意识到的任何其他适当的动作。公开了至少一种实施方式,并且由本领域普通技术人员对实施方式和/或实施方式的特征进行的改变、组合和/或修改在本公开内容的范围内。通过组合、整合和/或省略实施方式的特征所产生的替选实施方式也在本公开内容的范围内。在明确地指出了数值范围和限制的情况下,这样的明确范围或限制应当被理解为包括落入明确指出的范围或限制内的相似量级的迭代范围或限制(例如,从大约1至大约10包括2、3、4等;大于0.10包括0.11、0.12、0.13等)。例如,一旦公开了具有下限R1和上限Ru的数值范围,则具体公开了落入该范围内的任何数字。特别地,具体公开了该范围内的与以下数字:R=R1+k*(Ru-R1),其中,k是以百分之1的增量从百分之1增加至百分之100的变量,例如,k为百分之1、百分之2、百分之3、百分之4、百分之5,……,百分之50、百分之51、百分之52,……,百分之95、百分之96、百分之97、百分之98、百分之99或者百分之100。此外,也具体公开了如在上文中定义的由两个R数字所限定的任何数值范围。除非另外指出,否则使用术语“大约”意指后面的数字的±10%。针对权利要求书的任何要素使用术语“可选地”意指需要该要素,或者替选地,不需要该要素,两种替选方式均在权利要求书的范围内。使用较宽的术语例如包括(comprise)、包括(include)和具有应当被理解为提供对较窄的术语例如由……组成、基本上由……组成以及基本上包括的支持。因此,保护范围不受以上所陈述的描述限制,而是由所附的权利要求书来限定,该范围包括权利要求的主题的所有等同方案。每个或每一项权利要求作为进一步的公开内容合并到说明书中并且权利要求是本公开内容的实施方式。在本公开内容中的对参考文献的讨论并非承认其为现有技术,特别是具有在本申请的优先权日之后的公开日期的任何参考文献。在本公开内容中引证的所有专利、专利申请和公开的公开内容通过引用在它们提供示例性细节、程序性细节或对本公开内容的其他补充细节的程度上合并到本文中。虽然已经在本公开内容中提供了若干个实施方式,但是应当理解的是,在不背离本公开内容的精神或范围的前提下,所公开的系统和方法可以以许多其他具体形式来实施。本示例要视为示例性而非限制性的,并且意在不限于本文中给出的细节。例如,可以将各种元件或部件组合或整合在另外的系统中,或者可以省略或不实现某些特征。另外,在不背离本公开内容的范围的前提下,在各种实施方式中被描述和示出为分立的或单独的技术、系统、子系统和方法可以与其他系统、模块、技术或方法组合或整合。被示出为或讨论为彼此耦接或直接耦接或通信的其他项可以通过某种接口、设备或中间部件来间接耦接或通信,无论是采用电方式、机械方式或其他方式。在不背离本文所公开的精神和范围的前提下,本领域技术人员可以确定并做出关于改变、替换和变更的其他示例。当前第1页1 2 3 当前第1页1 2 3