管理网络设备处的服务链的方法、对应的网络设备与流程

文档序号:15116676发布日期:2018-08-07 20:30阅读:154来源:国知局

本公开总体涉及网络功能的管理,并且更具体地涉及支持网络功能的管理的服务链信息。



背景技术:

本部分是旨在向读者介绍可能与下文所述的和/或所要求保护的本公开各个方面相关的现有技术的各方面。这样的讨论有助于向读者提供背景信息以便帮助更好地理解本公开的各方面。因此,应当理解:这些陈述应按这种方式解读,而不是作为对现有技术的承认。

电信网络服务提供商目前提供一个或若干个中间盒服务或器具,这些中间盒服务或器具是适合于转换、检查、过滤或操纵除分组转发之外的数据分组的计算机联网设备。已知的这种中间盒服务的示例是防火墙(过滤不想要的或恶意的业务)、病毒扫描、深度分组检查(dpi)服务、网络地址转换nat(修改分组源和目的地地址)、入侵检测和预防(idp)服务等。这些中间盒服务会需要高吞吐量和分组检查能力。它们对终端用户(所谓的订户或客户)来说可以是透明或不透明的,并且可以托管(host)在专用物理硬件或虚拟机中。

当数据分组需要以给定顺序(即,服务链)由若干个中间盒服务(或网络功能)连续处理时,会需要服务链。此外,当可能有若干个服务链时,数据分组需要被引导到每个选择的服务链的正确的中间盒服务。

需要一种机制来建立这样的服务链(所谓的网络功能链),其中,分组不管其目的地如何都必须以较少的努力和计算沿着它们的服务路径(穿过一组执行给定处理的中间盒服务)转发。



技术实现要素:

本公开涉及一种在网络设备处实现的方法,所述网络设备被配置为操作多个网络功能并且从至少一个设备接收数据分组,

其中,所述方法包括:

-通过网络设备从一个设备接收数据分组;

-在通过至少一个网络功能进行处理之前,通过添加附加头部来修改所述数据分组,所述附加头部包括至少一个偏移量字段和用于列出至少一个标识符(每个标识符标识网络功能中的一个)的一个数据字段。

在实施例中,标识符可以以由对应的网络功能处理的有序列表的形式在数据字段中列出。

在实施例中,所述方法还可以包括:在网络功能处:

-在接收到所述数据分组时进行处理;

-在处理所述数据分组之后更新偏移量字段的当前值,以将处理后的数据分组寻址到处理的有序列表中列出的下一个网络功能。

在实施例中,所述网络功能可以越权数据字段中列出的至少一个标识符。

在实施例中,所述网络功能可以修改处理的有序列表的至少一个标识符。

在实施例中,修改至少一个列出的标识符可以包括以下至少一个操作:

-移除附加头部的数据字段中列出的至少一个标识符;

-将至少一个标识符添加到附加头部的数据字段中;

-用至少一个新的标识符替代数据字段中列出的至少一个标识符。

在实施例中,所述附加头部还可以包括用于指示所述数据字段的所述标识符是异构类型的类型字段。

本公开还涉及一种网络设备,其被配置为操作多个网络功能并且从至少一个设备接收数据分组,

其中,所述网络设备包括至少一个存储器和至少一个处理电路,所述处理电路被配置为:

-从一个设备接收数据分组;

-在通过至少一个网络功能处理之前,通过添加附加头部来修改所述数据分组,所述附加头部包括至少一个偏移量字段和用于列出至少一个标识符(每个标识符标识网络功能中的一个)的一个数据字段。

此外,本公开还涉及一种网络设备,其被配置为操作多个网络功能并且从至少一个设备接收数据分组,

其中,网络设备包括至少一个分类器,所述分类器被配置为:从一个设备接收数据分组;并且,在通过至少一个网络功能处理之前,通过添加附加头部来修改所述数据分组,所述附加头部包括至少一个偏移量字段和用于列出至少一个标识符(每个标识符标识网络功能中的一个)的一个数据字段。

在实施例中,标识符可以以由对应的网络功能执行的处理的有序列表的形式在数据字段中列出。

在实施例中,网络功能可以被配置为:

-在接收到所述数据分组时进行处理;

-在处理所述数据分组之后更新偏移量字段的当前值,以将处理后的数据分组寻址到处理的有序列表中列出的下一个网络功能。

在实施例中,所述网络功能可以被配置为越权数据字段中列出的至少一个标识符。

在实施例中,网络功能可以被配置为修改处理的有序列表的至少一个标识符。

在实施例中,通过所述网络功能修改至少一个列出的标识符可以包括以下至少一个操作:

-移除附加头部的数据字段中列出的至少一个标识符;

-将至少一个标识符添加到附加头部的数据字段中;

-用至少一个新的标识符替代数据字段中列出的至少一个标识符。

在实施例中,所述附加头部还可以包括用于指示所述数据字段的所述标识符是异构类型的类型字段。

此外,本公开还涉及一种计算机可读取的非暂时性程序存储设备,其有形地体现计算机可执行的、用以执行要在网络设备处实现的方法的指令的程序,所述网络设备被配置为操作多个网络功能并且从至少一个设备接收数据分组,

其中,所述方法包括:

-通过网络设备从一个设备接收数据分组;

-在通过至少一个网络功能执行处理之前,通过添加附加头部来修改所述数据分组,所述附加头部包括至少一个偏移量字段和用于列出至少一个标识符(每个标识符标识网络功能中的一个)的一个数据字段。

本公开还涉及一种计算机程序产品,其存储在非暂时性计算机可读介质上,并且包括处理器可执行的、用以实现要在网络设备处实现的方法的程序代码指令,所述网络设备被配置为操作多个网络功能并且从至少一个设备接收数据分组,

其中,所述方法包括:

-通过网络设备从一个设备接收数据分组;

-在通过至少一个网络功能进行处理之前,通过添加附加头部来修改所述数据分组,所述附加头部包括至少一个偏移量字段和用于列出标识符(每个标识符标识网络功能中的一个)的一个数据字段。

根据本公开的方法可以以可编程设备上的软件来实现。可以单独地用硬件或软件或其组合方式来实现该方法。

由本公开的元件实现的一些处理可以是计算机实现的。从而,这样的元件可以采取全硬件实施例、全软件实施例(包括固件、驻留软件、微代码等)或组合了软硬件方面的实施例的形式,它们在本文中可以统称为“电路”、“模块”或“系统”。此外,本发明可以采取由在任意有形介质中具体实现的计算机可用程序代码表达的具体实现于所述介质中的计算机程序产品的形式。

由于本公开的元件可以实现为软件,所以本公开可以具体实现为计算机可读代码,用于预配置到任意合适载体介质上的可编程装置。有形载体介质可以包括存储介质,例如软盘、cd-rom、硬盘驱动器、磁带设备或固态存储器设备等。

本公开因此提供了一种计算机可读程序,包括使计算机能够执行上述方法的计算机可执行指令。

在下文阐述所公开的实施例的范围内相称的一些方案。应该理解的是,这些方面只用于向读者提供对本公开可能采用的某些形式的概述,并且这些方面不意在限制本公开的范围。事实上,本公开可以包括下文可能没有阐述的多个方面。

附图说明

通过以下参考附图并通过非限制的方式描述的实施例和执行示例,本公开将被更好地理解和说明,在附图中:

-图1是适用于实现本原理的一些实施例的网络环境的示例的示意图;

-图2示出了根据本原理的用于管理网络设备中的服务链的示例性服务链头部;

-图3是根据本原理的用于管理网络设备中的服务链的示例性方法的流程图;

-图4和图5是描绘了根据本原理的分别具有同构标识符和异构标识符的服务链管理的示例的流程图;

-图6示出了根据本原理的图1的网络设备的每个设备/主机的硬件配置的示例。

在可能的情况下,贯穿附图,相同的附图标记将用于表示相同或类似部件。

具体实施方式

以下描述说明了本公开的原理。因此,可以理解的是,本领域的技术人员将能够设计出尽管没有明确地在此描述或示出但体现了本公开的原理并包括在本公开范围之内的各种布置。

本文中记载的所有示例和条件语言旨在用于教导目的,以帮助读者理解本公开的原理,并且应解释为不限于这些具体记载的示例和条件。

此外,本文中对本公开的原理、方面、实施例及本公开的特定示例做出引述的所有声明旨在包括本发明的结构和功能上的等同物两者。附加地,这种等同物旨在包括当前已知的等同物以及将来开发的等同物,即,为执行相同功能开发的任何元件,而与结构无关。

因此,例如,本领域的技术人员应当理解,本文中所呈现的框图表示体现本公开原理的解说性电路的概念图。类似地,应当理解,任何流程图、流程框图、状态转移图、伪代码等表示实质上可以在计算机可读介质中表示的、并且因此由计算机或处理器执行的各个处理,无论是否明确示出该计算机或处理器。

可以利用专用硬件以及能够与适当的软件相关联地执行软件的硬件来提供附图中示出的各个元件的功能。当由处理器来提供时,这些功能可以由单个专用处理器、单个共享处理器、或多个单独的处理器来提供,所述多个单独的处理器中的一些可以是共享的。此外,对术语“处理器”或“控制器”的显式使用不应理解为专门指能够执行软件的硬件,而是可以非限制地隐式包括数字信号处理器(dsp)硬件、用于存储软件的只读存储器(rom)、随机存取存储器(ram)以及非易失性存储器。

在其权利要求中,被表述为用于执行指定功能的装置和/或模块的任意元件旨在包括执行该功能的任何方式,包括例如a)执行该功能的电路元件的组合,或b)任何形式的软件(因而包括固件、微代码等)与用于执行软件来执行所述功能的适当电路的组合。因此,可以认为提供这些功能的任何装置等同于本文所示的装置。

此外,将理解的是,本公开的附图和说明书已经被简化,以示出有助于对本发明进行更清楚的了解的相关元素,同时为了简明起见,省略了在典型的数字多媒体内容递送方法、设备和系统中能找到的许多其它元素。然而,由于这些元件在本领域是公知的,本文中不提供对这些元件的详细讨论。本文的公开针对本领域技术人员已知的所有这些变化和修改。

图1是包括网络设备100(比如,客户驻地设备cpe)和(例如,经由电缆、光纤、xdsl、卫星、lte、3g技术等)与网络设备100通信的若干个设备10(比如,交换机、便携式媒体设备、移动电话、机顶盒、膝上型计算机等)的示例性网络基础设施的示意图。应该理解,可以在设备10和网络设备100之间设置其它装置(未示出)。

如图1所示,网络设备100可以包括属于例如数据中心的一个或若干个物理主机110(在图1的示例中,示出了五个主机110)。每个主机110可以运行一个或若干个网络功能111(例如,dhcp、dns、防火墙、家长控制(parentalcontrol)、入侵防御系统、病毒扫描、深度分组检查、网络地址转换等)。换句话说,由网络设备100提供的网络功能可以分布在若干个主机110上。

网络设备100还可以向网络设备10提供与广域网(wan)20(比如,互联网)的连接性。

在下文中,假设已经获得了设备10与网络设备100之间的网络配置。

此外,如图1的示例中进一步示出的,网络设备100可以包括以下网络功能:

-入口分类器(icla)112,被配置为从设备10接收数据分组(最终在网络处理诸如封装和解封装操作之后),并且将来自wan20的数据分组寻址到对应的设备10,并且相反地;

-出口分类器(ecla)113,被配置为在处理之后例如通过一个或若干个网络功能111从设备10接收数据分组并且将数据分组引导到wan20;或者,从wan20接收数据分组并且将数据分组引导到设备10;

-一个或若干个服务功能转发器(sff)114(图1中仅示出一个),其可以被配置为从入口分类器tcla112或出口分类器ecla113、在处理之后从nf111、从另一sff114(图1中未示出)接收数据分组。每个sff114还可以被配置为:根据一些服务链信息将从入口分类器icla112或者从nf111或从另一sff114接收的数据分组转发到另一nf111。最后,sff114还可以被配置为结束网络功能的服务链。

应该理解,一个或若干个网络功能可以在相同的主机110上执行。

在图1的示例中,网络设备被配置为支持多个网络功能111的链(也称为服务链或服务路径)的实现。

在根据本原理的实施例中,为了支持服务链,入口分类器icla112和出口分类器ecla113可以通过添加服务链头部(也被称为自包含头部)来封装其接收到的每个数据分组。

如图2的说明性但非限制性示例所示,服务链头部可以包括基本头部210和数据字段220。基本头部210还可以包括:

-字段211,用于定义原始内部数据分组的协议类型(例如,针对ipv4为00、针对ipv6为01、针对以太网为02、针对vxlan为03等);

-字段212,用于指定网络功能110的标识符的类型。标识符的类型可以是网络地址、网络端口、被寻址的sff114可以解析的进程标识符等。标识符类型可以是字节值(比如,针对ipv4地址为00、针对ipv6地址为01、针对mac地址为02、针对逻辑端口为11、针对物理端口为12、针对进程id为30等)。

-字段213,用于指示在服务链头部的数据字段中列出的标识符的长度。作为示例,网络地址针对ipv4可以长达4个字节、针对mac地址可以长达6个字节、针对ipv6可以长达16个字节。作为变型或作为补充,可以根据标识符类型值来计算每个网络功能标识符的长度;

-指定服务链头部(包括基本头部210)的总数据长度的字段214;

-被配置为携带偏移量的字段215。每个网络功能111被配置为在处理之后更新与数据分组相关联的偏移量。该偏移量向转发器sff114指示服务链头部200的数据字段220内的应接收数据分组的下一个网络功能111的标识符的位置。偏移量值提供了服务链内的位置。假设由icla112或ecla113设置的偏移量的初始值与基本头部210的长度(例如,4字节)相对应。当然,也可以使用其它值。

当然,服务链头部不限于以上列出的字段,并且可以包括例如分布在基本头部或数据字段中的附加字段。

在符合本原理的变型中,可以用指示以tlv(类型长度值)模式编码所考虑的数据分组的特定值(0xff)来填充基本头部210的字段212。当网络功能的标识符是异构的(即,这些标识符不是来自诸如ip地址或mac地址的单一类型)时,可以实现tlv模式。

在符合本原理的实施例中,数据字段220可以包括网络功能111的有序列表以处理给定设备10的数据分组。为此,定义服务链的网络功能111的有序列表可以包括网络功能111的对应标识符221。图1中示出了服务链115(包括两个网络功能111和ecla113)的示例。

当网络功能的标识符221为相同类型(比如,ip地址、mac地址、端口号等)时,数据字段220可以包括标识要被应用于数据分组的服务链的网络功能的标识符(icla或ecla的标识符可以列在有序列表中)的有序列表(例如,ip地址的列表)。在这种情况下,当转发器sff114接收到封装有服务链头部200的数据分组时,所述转发器sff114可以被配置为基于当前偏移量215的值来将所述数据分组寻址到有序列表中标识的下一个网络功能111。在完成之后并且在将数据分组发送回sff114之前,网络功能111可以递增当前偏移量115,使得sff114能够考虑链的下一个标识符以将业务引导到下一个网络功能111、icla110或ecla113。网络功能111可以基于当前偏移量值215和基本头部210的列出的标识符长度213更新当前偏移量215。

在改型中,相同类型的有序列表的标识符可以具有公共部分,使得仅可以将不同的部分引入到服务链头部200的数据字段220中,从而减小数据字段220的整体大小。例如,如果所涉及的所有主机均位于具有子网掩码255.255.255.0的同一局域网192.168.1.0-255(例如,192.168.1.12)内,则由上述0-255(例如,来自上面的ip地址的值12)表示的最后字节的压缩ip地址的数据字段足以替代整个ip地址的4字节。如果针对每个主机配置了lan上的mac地址11:11:11:11:11:00-ff,可以对该mac地址从6字节(例如,11:11:11:11:11:2e)到仅由范围00-ff表示的最后字节(例如,来自以上mac地址的值2e)应用相同压缩,导致所有主机均具有相同的五个起始字节。关于使用网络结构技术(特别是使用mac结构技术)的数据中心来说通常是这样的情况。因此,标识符类型字段212(在图2中示出)可以指定附加值(比如,针对压缩ipv4地址为100、针对压缩ipv6地址为101、针对压缩mac地址为102等)。可以注意到,当标识符类型是sff114的端口号时,已经使用了一个字节标识符。

当标识符221是异构的(例如,ip地址、mac地址、端口号等的混合)时,数据字段220可以包括以tlv模式编码的标识符的有序列表(即,编码的标识符包括类型、长度和值)。字段213的值(即,列出的标识符长度)可以是空的(即,存在若干类型的标识符)。在那种情况下,当转发器sff114接收到封装有服务链头部200的数据分组时,所述转发器sff114可以被配置为基于当前tlv标识符的值v来将所述数据分组寻址到有序列表中标识的下一个网络功能111。在完成之后并且在将数据分组发送回sff114之前,网络功能111可以递增当前偏移量115,使得sff114能够考虑服务链中的下一个tlv标识符,以将业务引导至对应的网络功能111、icla110或ecla113。网络功能111可以基于偏移量215的当前值和数据字段220中的以tlv模式编码的当前标识符的当前长度值l来更新偏移量215。

无论哪种类型的标识符(相同或异构),有序列表可以包括与给定数据分组相关联的服务路径的确切数量的网络功能。

此外,假设入口分类器icla112和出口分类器ecla113已经初步配置有服务链信息。它们知道与来自给定设备10的数据分组相关联的服务路径。

如图3所示,符合本原理的在网络设备100处实现的方法300可以包括:

-由网络设备100从与网络设备100连接的设备10接收(步骤301)数据分组并且将数据分组引导到wan20;

-在通过一个或若干个网络功能111进行处理之前,在入口分类器icla112处,通过添加服务链头部200来修改(步骤302)接收的数据分组,所述服务链头部包括与网络功能111相关联的标识符的有序列表;

-向转发器sff114发送(步骤303)修改后的数据分组;

-向根据服务链头部200的有序列表确定的网络功能111转发(步骤304)修改后的数据分组以便处理;

-通过所确定的网络功能111来处理(步骤305)接收的数据分组,并且更新服务链头部200的偏移量215;

-向转发器sff114发送(步骤306)由所确定的网络功能111处理的数据分组;

-将处理后的数据分组转发(步骤307)到有序列表的下一个网络功能111、另一个转发器sff114或出口分类器ecla113;

-当ecla113接收到已经由服务链头部200中列出所有网络功能111处理后的数据分组时,将处理后的数据分组向wan300发送(步骤308)。在向wan300发送之前,出口分类器ecla113可以将先前通过入口分类器icla112添加的服务链头部200从数据分组中移除。

当通过出口分类器ecla113在网络设备100处接收到来自wan300并且被引导到给定设备10的数据分组时,方法300的步骤还可以通过将入口分类器icla112与出口分类器ecla113切换来执行。在那种情况下,与接收的数据分组相关联的服务链头部200的有序列表可以包括在有序列表的最后位置中的icla112的标识符。

应当注意,服务链头部可以包括指示服务路径(例如,[nf1,nf2,ecla])是对称的标志,这意味着当相同的分类数据分组从wan20(例如,[nf2,nf1,icla])返回时,需要以默认的相反顺序应用相同的网络功能。出口分类器ecla可以跟踪并保存服务链头部的有序列表。

图4是根据本原理的当网络功能的标识符是相同类型(提供网络功能的主机110的ip地址)时网络设备100中的服务链的管理的示例。在该示例中,每个主机110被指派了ip地址,一次提供特定的网络功能,并且连接到属于服务链的转发器sff114的识别的端口,即在入口分类器icla112和出口分类器ecla113之间。

假设底层ip网络包括用于解析业务并将该业务路由到给定主机110的装置。转发器sff114(从ip地址接收分组)可以根据ip地址(例如,利用arp请求)来确定主机的mac地址,并且可以解析出主机mac地址的哪个端口与其内部mac学习平均数(learningmean)相对应。

在该示例中,来自设备10(例如,属于子级(child)的设备)的数据分组与由两个网络功能111定义的服务路径相关联:ips(入侵防护服务)然后是pct(家长控制),然后是出口分类器ecla113。

服务链配置器116可以利用与考虑的设备10(具有付费简档的子设备)相关联的信息来初始地配置入口分类器icla112和出口分类器ecla113。为此,可以分别在icla112和ecla113处更新查找表。在这样的查找表中,具有特定简档的给定设备的mac地址例如可以与服务路径(例如,由ip地址的有序列表所定义)相关联。在该示例中,具有优质订户简档的子设备10是通过其mac地址和从订户隧道id(例如,greid或vxlanid)或者从订户的外部ip地址(即,用于将lan分组传送到网络设备100的ip地址)得到的订户标识符来识别的。子设备10与由ips网络功能的ip地址(例如,10.0.0.3)、然后pct网络功能的ip地址(例如,10.0.0.4)以及然后ecla112的ip地址(例如,10.0.0.5)定义的服务路径相关联。为此,在该示例中,服务链配置器116已经为已经订阅了付费服务的子设备初始配置了icla112和ecla113两者以实现对称链,对于icla来说,是从结束到进入(mac地址子设备、付费外部家庭ip地址)(即,10.0.0.3、10.0.0.4、10.0.0.5),并且相反地对于ecla来说,是从进入到结束(mac地址子设备、付费外部家庭ip地址)(即,10.0.0.4、10.0.0.3、10.0.0.1)。

应该理解的是,服务链与设备相关联的方式可以取决于订阅模式。

当数据分组与icla查找表条目之一(在图4的示例中,来自子设备的数据分组)匹配时,icla112在内部数据分组250的顶部添加服务链头部200。如图4的示例所示,被添加到来自子设备10的数据分组250的服务链头部200具体包括:偏移量215,被设置为4字节(与基本头部210的长度相对应)的值;以及,数据字段220,包括定义要在所接收的数据分组上应用的服务路径的ip地址(即,10.0.0.3、10.0.0.4、10.0.0.5)的有序列表。

当从icla112接收到封装的数据分组时,在读取标识符类型212的值(即类型:ipv4,地址值:10.0.0.3)以及偏移量215(在这个例子中设置为4个字节)的值以检索数据字段220中的对应标识符之后,sff114将所述数据分组转发到在服务链头部200中列出的第一网络功能(即,网络功能ips)。

在处理了该数据分组并且更新了偏移量字段215(例如,更新到8,与具有读取标识符的长度的先前值相对应)之后,网络功能ips(ip地址10.0.0.3)向转发器sff114发送回经处理的数据分组,然后,在从偏移量字段215的值和标识符类型212(即,类型:ipv4,与网络功能pct相对应的地址值:10.0.0.4)中检索到相应的标识符之后,转发器sff114将该数据分组转发到服务链头部200中定义的服务路径的下一个网络功能pct。然后,网络功能pct处理数据分组并且更新偏移量字段215(例如,更新到12),然后向转发器sff114发送。

然后,转发器sff114读取偏移量字段215的更新值和具有标识符类型212的对应标识符(例如,类型:ipv4,与网络功能ecla相对应的地址值:10.0.0.5),然后将其转发到出口分类器ecla113。

当接收到封装的数据分组时,ecla113移除服务链头部,然后将数据分组寻址到wan20(最终,在由附图未示出的附加网络元件处理之后)。

图4的示例进一步描述了来自wan20并被引导到子设备10的数据分组。与来自wan20的这样的数据分组相关联的服务路径包括pct网络功能、ips网络功能和作为结束服务路径的最后的网络功能icla112。从wan20接收数据分组的ecla113以与先前关于icla112所描述的方式相同的方式添加服务链头部200。在服务路径的结束处,在将经处理的数据分组寻址到子设备10之前,icla112移除服务链头部。

图5是根据本原理的服务链的管理的另一示例,当网络功能的标识符是异构的时(即,来自不同类型,比如,网络功能主机的ip地址或者例如转发器的物理或逻辑端口)。在这个示例中,转发器sff114(ip地址10.0.0.2)通过ips网络功能的内部端口3(例如,转发器sff和网络功能在同一主机110上)连接ips网络功能,并且通过ip地址(例如,10.0.0.4)连接pct网络功能。与从子设备10接收的数据分组相关联的服务路径与关于图4描述的服务路径类似。

鉴于添加到数据分组的服务链头部200包含图4中的标识符的类型,因此头部200的标识符类型字段212包括指示实现了tlv模式(以tlv格式编码服务链头部200的数据字段220的标识符)的值0xff。

图5的icla112、网络功能ips和pct、转发器sff114和ecla113的行为与关于图4描述的行为类似,除了转发器sff114需要根据偏移量值215解析先前的标识符(数据字段220中列出的),以查找要被寻址的网络功能的标识符。

特别地,当从ecla112接收到封装的数据分组时,在读取标识符类型212的值(意味着tlv支持的0xff)和偏移量字段215(在该示例中被设置为4字节)的值以检索要考虑的对应tlv标识符之后,sff114可以将数据分组转发到服务链头部200中列出的第一网络功能。然后,sff114可以从tlv提取标识符类型和标识符值(即,类型:11(意指端口类型),值:3(意指端口号3)),并且可以将数据分组转发到对应的网络功能(例如,ips)。

所述网络功能(例如,ips)可以处理数据分组,并且可以将偏移量字段215更新为值8(与当前tlv标识符值4的长度l(即,tlv类型端口的长度)和当前偏移量值4相加相对应)。网络功能(例如,ips,端口号3)可以将经处理的数据分组发送回转发器sff114,然后,在从偏移量字段215的值和标识符类型212的值检索到对应tlv标识符(即,类型:00(意指ipv4类型),值:10.0.0.4)之后,转发器sff114将该数据分组转发到由服务链头部200中定义的服务路径的下一个网络功能(例如,pct)。然后,网络功能(pct)可以处理数据分组,并且还可以将偏移量字段215更新为值16(与先前值8与当前tlv值8的长度l(ipv4类型的tlv的长度)相加相对应),然后向转发器sff114发送。

再次,在从偏移量字段215的值(即,16)和标识符类型212的值(即,ff)检索到对应tlv标识符(即,类型:00(意指ipv4类型),值:10.0.0.5)之后,转发器sff114可以将数据分组转发到服务链头部200中定义的服务路径的下一个网络功能(例如,ecla113)。

当接收到封装的数据分组时,ecla113可以移除服务链头部,然后将数据分组寻址到wan20(最终,在由附图未示出的附加网络元件处理之后)。

在符合本原理的另一实施例中,网络功能的标识符列表不在有序列表中,而是在包括应用于数据分组的所有可用网络功能的随机列表中。随机列表也可以是所有可用网络功能的子集。

在本原理的另一实施例中,网络功能甚至可以添加、修改或删除有序列表或随机列表的一个或若干个标识符。为了一致性,网络功能也应对应地更新网络功能偏移量。在这种情况下,每个网络功能可以评价其本地输出,并且可以修改封装的数据分组的服务链头部200,以将业务引导到属于该列表的任何网络功能。考虑利用备选网络功能(例如,nf1、nf2或nf3、nf4、ecla)定义的服务路径,其中,根据网络nf1的内部结果,网络功能nf1的输出可以是网络功能nf2或nf3。在这种情况下,可以通过网络功能nf1来适配和更新数据字段220的有序列表(最初被设置为[nf1,nf2,nf4,ecla,nf3]),以变成[nf1,nf3,nf4,ecla,nf2]。

在本原理的另一实施例中,要被应用于数据分组的服务路径的网络功能可以越权(override)在服务功能头部中设置的标识符的有序列表。越权操作可以包括:绕过标识符列表中的一个或多个网络功能;再次返回到已经应用于所述数据分组的网络功能;以及,甚至根据特定条件用新标识符来替代该列表的标识符。例如,当考虑服务路径[nf1,nf2,ecla]时,在出现错误或故障排除的情况下,服务路径的网络功能nf1可以对应地更新服务链头部的标识符列表(例如,路径[nf1,nf3,nf2,ecla],其中,nf3是故障排除网络功能)。

在另一实施例中,要被应用于数据分组的服务路径的有序列表的网络功能自身可以决定将业务引导到有序列表的下一个网络功能的特定情况(在该网络功能存在若干情况时)。为此,网络设备的网络功能(一些或全部)需要知道网络功能的不同情况,例如,对于发现阶段,其中网络功能的每个情况执行发现协议(例如,遍布网络设备广播发现消息)。例如,当考虑数据分组的服务链头部中列出的服务路径[nf1,nf2a,ecla]时,入口分类器icla可以利用服务路径的第二网络功能nf2的第一情况nf2a的标识符来设置有序列表,而此第二网络功能的其它情况nf2b和nf2c在网络设备中操作并且在发现阶段期间被发现。网络功能nf1还可以接收第二网络功能nf2的不同情况nf2a、nf2b和nf2c的这些发现响应,并且因此可以根据例如一系列决定来利用[nf1,nf2b,ecla]或[nf1,nf2c,ecla]修改服务链头部的有序列表。

此外,可以添加服务链头部200的附加字段(附图中未示出),以便指示是否可以通过服务路径的网络功能来修改有序列表(可以允许一些网络功能,而不允许其它的网络功能)。例如,可以通过icla或ecla来填充这样的附加字段。

在这些实施例中,由于标识符的改变(特别是当实现了tlv模式时),可以在必要时更新偏移量字段215。

此外,应该理解,被添加到头部的服务链头部200的全局长度可以是固定的或可变的。

对于服务链头部,即使在通过网络功能沿服务路径应用一些修改时,也可以检索对给定数据分组的完整处理的历史。

此外,自包含服务头部可以携带转发器所需的全部信息。配置不依赖于特定的服务链,而仅依赖于针对任何转发器如何处理自包含服务头部。因此,自包含头部可以防止出现根据服务路径的复杂性来配置转发器sff的困难,并且可以防止出现诸如原子性、一致性和与分类器同步的配置问题。此外,自包含头部可以提高整体性能,因为它仅需要计算传入的数据分组来查找其下一个网络功能:无需在转发器级访问查找表或散列表,甚至更不需要访问用户侧的存储器或进程来查找目的地。

如描绘硬件配置的一个示例的图6所示,网络设备100的相应设备10和主机110中的每一个可以包括经由总线603连接在一起的中央处理单元(cpu)600(包括一个或若干个处理器)、存储器601以及一个或若干个接口602。cpu600被配置为:处理各种数据,并且控制相应设备10和主机110中的每一个的各种功能和组件。存储器601可以表示易失性存储器(比如,ram)以及非暂时性存储器(比如,rom、硬盘驱动器或闪存),用于根据需要处理和存储不同的文件和信息,包括计算机程序产品和软件。图1所示的上述网络功能和/或应用中的一些可以通过主机110的存储器601中存储的计算机可读程序来实现。接口602用于通过有线或无线连接在相应的设备10和主机110之间进行通信。接口602还可以包括用户输入和/或输出元件(例如,触摸板、显示屏、键盘、遥控器等)。

在附图中,应当理解,所示块或模块可以与功能单元相对应,其可以或可以不与可区分的物理单元相对应。例如,多个这种模块可以被关联在独特的组件或电路中,或与软件功能相对应。此外,模块可以潜在地由分离的物理实体或软件功能组成。

在说明书、权利要求书和附图中公开的参考可以单独地或以任意适当的组合方式来提供。在适当地情况下,可以以硬件、软件或二者的组合来实现特征。

本文中对“一个实施例”或“实施例”的提及意指结合实施例所描述的特定特征、结构或特性包括在所述方法和设备的至少一个实现中。在说明书中各处出现短语“在一个实施例中”不一定都指代相同的实施例,也不必是与其他实施例互斥地分离的或备选的实施例。

权利要求中出现的附图标记仅仅是说明性的,并且对权利要求的范围没有限制作用。

尽管这里仅公开了本公开的特定实施例,但是任何本领域技术人员将理解,可以做出本公开的其它修改、变化和可能。因此,这些修改、变化和可能应被认为落入本公开的精神和范围之内,从而形成这里描述和/或示例的本公开的一部分。

附图中的流程图和/或框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的配置、操作和功能。关于这一点,流程图或框图中的每个框可以表示代码模块、段或部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。还应注意,在一些备选实施例中,在框中标记的功能可以不按附图中标记的顺序发生。例如,连续示出的两个框事实上可以基本同时执行,或者在某些时候可以按照相反的顺序执行,或者可以按照备选顺序执行,这将取决于所涉及到的功能。还应注意,框图和/或流程图示意的每个框以及框图和/或流程图示意中的框组合可以由执行特定功能或动作的基于专用硬件的系统或者专用硬件和计算机指令的组合来实现。虽然没有明确描述,但是实施例可以被实施为任意组合或子组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1