用于流分析的分组标记的方法与流程

文档序号:13081406阅读:286来源:国知局
用于流分析的分组标记的方法与流程

本发明的实施例涉及提供网络域中的网络分析。确切地说,实施例涉及由网络域中的节点实现的、允许能够使跨域的数据流的数据分组相关的网络分析的方法和系统。



背景技术:

为了理解网络域中数据业务的总体行为,重要的是理解网络中各个数据业务流的特性。各个数据业务流的特性能包含有关与每个数据流中的一组分组相关的各个数据分组或度量的信息。这些度量能包含诸如平均数据分组大小、数据分组封装类型、跨网络域发送与接收数据分组之间的延迟、跨网络的数据流的吞吐量的变化(即抖动)、数据流的带宽利用、每个数据流的路径的标识以及与每个数据流相关的类似度量和数据的测量。一旦对于数据流已经收集了这类网络分析数据,就能结合对于穿过网络的其它数据流收集的类似数据分析它,以作为一个整体构建跨网络的数据业务的行为的图像或模型。

收集网络分析数据在网络域内的节点子集执行。这些节点能被选择或者放置在网络内以提供网络域中数据业务的一致画面。例如,收集网络分析数据的节点能是网络域中在网络域边缘的入口或出口节点,其允许结束数据流的分析。还能利用在内部的节点标识网络域内的内部瓶颈和类似问题。然而,收集和报告网络分析数据能在正在执行收集的节点处消耗大量资源。

给节点增加这个任务能对其性能具有负面影响。从而,重要的是,尽可能有效地在每个参与节点处收集网络分析数据。用于收集网络分析数据的许多解决方案是无效且不可工作的。单纯的实现将是检查穿过网络中节点的每个数据分组。然而,这将是计算密集的,并且将严重影响节点的性能。在许多情况下,在节点处执行采样以选择数据流的数据业务的代表性子集用于网络分析。然而,采样的使用阻止了同一数据分组的跨网络域跟踪。这限制了能执行的分析类型,因为有关数据分组的信息将逐节点地变化,并且不能执行基于各个数据分组的端对端跟踪的分析。



技术实现要素:

一种方法由具有多个节点的网络域的节点实现,其中该节点担任数据流的网络域的入口节点。该方法允许跨网络域的数据流分析。该方法包含:在网络域的入口节点接收属于数据流的数据分组;确定数据分组是否被标记以供数据流分析;确定用于数据流的网络域的出口节点是否支持数据分组标记;用标记标签来标记数据分组,该标记标签向网络域中的支持节点指示数据分组要被处理以供数据流分析;以及向着网络域的出口节点转发数据分组。

网络装置担任具有多个节点的网络域的节点,其中该节点担任数据流的网络域的入口节点。该方法允许跨网络域的数据流分析。网络装置包含其中存储有标记模块的非暂态计算机可读介质。网络装置还包含耦合到非暂态计算机可读介质的处理器。处理器配置成执行标记模块。标记模块配置成:在所述网络域的入口节点接收属于数据流的数据分组;确定数据分组是否被标记用于所述数据流分析;确定用于数据流的网络域的出口节点是否支持数据分组标记;用标记标签来标记数据分组,该标记标签向网络域中的支持节点指示数据分组要被处理以供数据流分析;以及向着网络域的出口节点转发数据分组。

计算装置担任具有多个节点的网络域的节点,其中该节点担任数据流的网络域的入口节点。计算装置执行用于实现网络功能虚拟化(nfv)的多个虚拟机,其中来自多个虚拟机的虚拟机配置成实现允许跨网络域的数据流分析的方法。计算装置包含其中存储有标记模块的非暂态计算机可读介质。计算装置还包含耦合到非暂态计算机可读介质的处理器。处理器配置成执行虚拟机,其中虚拟机配置成执行标记模块。标记模块配置成:在网络域的入口节点接收属于数据流的数据分组;确定数据分组是否被标记以供数据流分析;确定用于数据流的网络域的出口节点是否支持数据分组标记;用标记标签来标记数据分组,该标记标签向网络域中的支持节点指示数据分组要被处理以供数据流分析;以及向着网络域的出口节点转发数据分组。

控制平面装置实现软件定义的连网(sdn)网络的控制平面,sdn网络包含实现sdn网络的数据平面的多个网络装置,其中控制平面装置配置成执行允许跨网络域的数据流分析的方法。控制平面装置包含其中存储有标记模块的非暂态计算机可读介质。控制平面装置还包含耦合到非暂态计算机可读介质的处理器。处理器配置成执行标记模块。标记模块配置成:在网络域的入口节点接收属于数据流的数据分组;确定所述数据分组是否被标记以供数据流分析;确定用于数据流的网络域的出口节点是否支持数据分组标记;用标记标签来标记数据分组,该标记标签向网络域中的支持节点指示数据分组要被处理以供数据流分析;以及向着网络域的出口节点转发数据分组。

附图说明

通过参考用于例证本发明实施例的如下描述和附图可最好地理解本发明。在附图中:

图1是由数据流穿过的网络域的一个实施例的图解。

图2是用于标记用于网络分析的数据分组的过程的一个实施例的流程图。

图3a是用于标记用于多协议标签交换网中的网络分析的数据分组的过程的一个实施例的流程图。

图3b是用于标记用于因特网协议网络中的网络分析的数据分组的过程的一个实施例的流程图。

图4是用于网络域中的出口节点的过程的一个实施例的图解。

图5a-d是标记标签的各种实施例的图解。

图6是实现用于标记和网络分析的过程的网络装置(nd)的一个实施例的图解。

图7a例证了根据本发明的一些实施例的示范网络内网络装置(nd)之间的连接性以及nd的三个示范实现。

图7b例证了根据本发明的一些实施例实现专用网络装置的示范方式。

图7c例证了根据本发明的一些实施例可耦合虚拟网络元件(vne)的各种示范方式。

图7d例证了具有图7a的每一个nd上的单个网络元件(ne)的网络。

图7e例证了根据本发明的一些实施例的示例,其中每一个nd都实现单个ne(见图6d),但集中式控制平面已经将不同nd中的多个ne抽象成图6d的一个或多个虚拟网络之一中的单个ne。

图7f例证了根据本发明的一些实施例的一种情况:其中多个vne被实现在不同nd上并且彼此耦合,并且其中集中式控制平面已经抽象了这多个vne,使得它们看起来好像图7a的虚拟网络之一内的单个vne。

图8例证了根据本发明的一些实施例包含硬件的通用控制平面装置,硬件包括一组一个或更多处理器(其经常是商用现货(cots)处理器)和网络接口控制器(nic;也称为网络接口卡)(其包含物理ni)以及其中存储有集中式控制平面(ccp)软件的非易失性机器可读存储介质。

具体实施方式

如下描述描述了用于实现允许网络域中数据分析的方法和设备。该方法和系统在入口节点、中间支持节点和出口节点实现。入口节点将标记标签插入到在入口节点接收的特定数据流的数据分组中。当接收到标记的数据分组时,中间支持节点报告回入口节点或类似的分析节点。当数据分组到达网络域中的数据流的出口节点时,出口节点报告给入口节点或分析节点,然后从数据分组中移除标记标签,之后它被转发出网络域。网络域中的节点能在它们自己之间发信号,以确定网络域中的哪些节点支持标记和数据分析过程和系统,使得数据流的入口节点标记送往支持该方法和系统的出口节点的数据分组。

在说明书中提到的“一个实施例”、“实施例”、“示例实施例”等指示描述的实施例可包含具体特征、结构或特性,但不是每一个实施例都一定包含该具体特征、结构或特性。而且,此类短语不一定指的是同一实施例。进一步说,当具体特征、结构或特性结合一实施例进行描述时,认为在本领域技术人员的知识范围内的是,结合其它实施例实现此类特征、结构或特性,不管是否明确描述了。

带括号的文本以及具有虚线边框(例如大虚线、小虚线、点划线以及点)的框在本文可用于例证向本发明实施例添加附加特征的可选操作。然而,此类记号不应该被视为意味着这些是唯一选项或可选的操作,和/或具有实线边框的框在本发明的某些实施例中不是可选的。

在如下说明书和权利要求书中,可使用术语“耦合”和“连接”,连同它们的派生词。应该理解,这些术语不打算作为彼此的同义词。“耦合”用于指示两个或更多元件彼此协同操作或交互作用,它们可以或者可以不彼此直接物理接触或电接触。“连接”用于指示在彼此耦合的两个或更多元件之间建立通信。

流程图中的操作将参考其它附图的示范实施例进行描述。然而,应该理解,流程图的操作可由本发明的除了参考其它附图论述的实施例以外的实施例执行,并且参考这些其它附图论述的本发明的实施例可执行与参考流程图论述的操作不同的操作。

概述

网络分析需要收集每个数据流的数据以确定其对总体网络业务的影响以及每个数据流本身正在如何执行。然而,检查在网络中的每个节点处的数据流中的每个数据分组可能是昂贵的,在节点(即路由器和交换机)上的计算处理能力以及在链路上报告和交换收集的网络分析数据所需的带宽方面都是。当正监测的数据流具有高带宽时,或者当有大量数据流要监测时,这可能是严重问题。

采样是用于在不检查每一个分组的情况下获得数据分组的统计属性的常用技术。然而,在没有特殊辅助下期望数据流的端对端分析的情况下不能应用采样,因为在网络中的不同节点获得的数据分组的不同样本可能不重叠(即,它们不会包含有关相同数据分组的信息),这使给定数据流的由每个节点收集的数据之间的相关非常困难。

实施例提供了允许经由采样进行高效的数据流网络分析的方法和系统形式的解决方案。数据流可通过给定网络域中的许多节点。流进入网络域通过的入口节点能配置成允许出于各种原因进行数据流采样,包含为了网络分析的目的。入口节点能以某种方式标记给定数据流的接收的数据分组,以指示当这个数据分组穿过网络域时,它已经被选择进行特殊处理。在检测到此类数据分组标记时,流通过的其它节点可收集并报告有关同一组分组的特性。在相同分组上收集的数据能被相关并进一步分析。这些分析能有助于展现流和网络的更深洞察。在标记的数据分组离开网络之前,应该移除数据分组中的标记。

分组标记

为了本文公开的实施例的目的,能有许多不同的方式标记数据分组。在涉及多协议标签交换(mpls)数据分组的一些实施例中,例如为了标记目的,一个或更多新mpls标签可能被插入在标签栈中。在涉及因特网协议(ip)分组的实施例中,例如,为了标记目的,可能插入新ip选项报头。作为示例而非限制,本文下面描述的实施例聚焦在mpls和ip上。本领域技术人员将理解,本文描述的过程和系统也可应用于并适用于其它网络基础设施和技术。对于其它网络技术,可遵循相同指南,设计适当标记技术。

示例网络域

图1是由数据流穿过的网络域的一个实施例的图解。作为示例,提供了例证的简化网络拓扑以演示穿过网络域的数据分组的标记和监测。网络包含一组节点,它们能是交换机、路由器或类似的连网装置。网络域是一组连网装置,它们可具有共同的管理员和配置。网络域能包含用任何数量和配置的链路组织的任何数量的连网装置。连网装置能使用任何通信介质(例如光纤)、连网协议(例如mpls或ip)与有线或无线链路以及与任何数量的此类链路连接。

在示例例证的网络拓扑中,给定数据流的入口节点与两个外部节点和两个内部节点直接通信(即链接)。网络拓扑包含可被视为边界节点的两个其它节点,其中一个是数据流的出口节点。一组监测节点已经在网络域内设立,以当它们穿过网络域时,监测数据分组的网络分析。在此示例拓扑中已经选择监测节点被放置在数据流业务可获取替换路由的位置。监测节点的有策略放置能向跨网络域的数据分组的移动提供高度可见性。

标记

实施例提供了一种过程,借此在网络域边缘处的入口节点能配置成标记接收的选择数量的数据分组,并跨网络域转发到出口节点,在此数据分组将退出网络域。这些数据分组能用对于每个数据流利用的单独选择判据在逐个数据流的基础上采样。能使用任何选择判据或过程标识要跟踪的数据分组,取决于要收集的网络分析数据。能以设置间隔或特定排序来标记具体数据流的数据分组。在其它实施例中,能基于报头或有效载荷特性选择数据分组。网络管理员能设置任何选择判据。

本文下面描述用于标记标识的数据分组的示例过程,其与用于数据分组选择的任何频率或判据可兼容。类似地,用于标记数据分组的精确机制可根据所涉及的技术而变化。本文下面提供了一般过程,后面是mpls和ip技术的特定示例。

图2是用于标记用于网络分析的数据分组的过程的一个实施例的流程图。该过程由网络域的数据流的入口节点实现。每个数据流都能具有网络域的单独入口和出口节点,并且给定网络节点能充当一些数据流的入口节点,同时充当其它数据流的出口节点。为了清晰起见,图1的示例网络可指的是例证穿过网络域的单个数据流。本领域技术人员将理解到,使用边缘节点的任何组合作为入口和出口节点,任何数量的数据流都能穿过网络域。

该过程因此能响应于在节点处接收到数据分组而发起(框201)。然后对该数据分组是否要被标记以供数据流分析做出确定(框203)。该确定能基于可适合于网络分析的任何配置的判据做出。选择数据分组能无需检查,而通过按具体顺序、以具体间隔或者基于类似的选择方案来选择它们。类似地,能审视有效载荷或报头的内容,以确定是否满足指定判据。这种审视能给数据流处理增加附加的计算要求。如果确定接收的数据分组未被标记,则该过程通过向着网络域的出口节点转发数据分组来完成(框209)。转发能根据转发信息库或使用类似过程来执行。

如果确定数据分组被标记,则该过程对数据分组的网络域的出口节点是否支持数据分组标记过程做出确定(框205)。通过检查数据分组的报头信息和/或与数据分组属于的数据流相关的信息能确定出口节点。如果出口节点不支持标记过程,则该过程继续进行转发数据分组,无需标记它(框209)。这能影响根据标识要标记的数据分组所利用的算法而选择用于标记的下一数据分组。例如,如果数据分组基于其顺序进行标识,则能选择下一数据分组来代替这个数据分组。送往不支持标记过程的出口节点的数据分组使这个数据分组被跳过,因为如果数据分组被标记,则数据分组可在具有由标记过程生成的标记标签的情况下退出网络域,这可能对其在网络域外部的处置具有负面影响,其中标记标签可能被不恰当地处理,而不是被丢弃。

如果数据分组已经被选择用于标记,并且还确定数据分组的出口节点支持标记过程,则数据分组能用标记标签来标记,该标记标签向网络域中的支持节点指示该数据分组要被处理用于网络分析(框207)。能利用任何类型和内容的标记标签来标记网络分组用于网络分析收集。本文下面关于图5a-d论述示例实现。一旦数据分组已经用标记标签标记了,则它就能使用由转发信息库或类似的处理结构根据数据分组报头确定的转发信息向着出口节点转发(框209)。

标记mpls分组

在mpls网络中实现标记过程的实施例中,入口标签边缘路由器(i-ler)确定进入mpls网络中的数据分组是否应该被标记用于网络分析。该选择应该保证,选择的数据分组的数据流的出口标签边缘路由器(e-ler)能够移除数据分组标记。i-ler通过将特殊mpls标签插入到标签栈中来标记数据分组,在一个实施例中,特殊mpls标签被插入在传输和应用标签之后。此类标记标签能被称为标记标签指示符(mli)。在其它实施例中,i-ler也可以可选地将流标记标签(flm)插入在mli之后。

标记标签指示符能包含众所周知的预留标签值。在一个实施例中,能定义两个mli,mli1和mli2,如本文下面进一步说明的。e-ler通过从标签栈中移除标记标签来移除标记标签。如下部分含有mpls的标记过程的一些示例以及示例mli和flm格式。在这些示例中,传输标签能是标签分布协议(ldp)或资源预留协议-隧道工程(rsvp-te)标签,应用标签能是边界网关协议(bgp)2级虚拟私用网(l2vpn)或3级虚拟私用网(l3vpn)标签,并且mli和flm被插入在栈的底部或其附近。

图3a是用于标记用于多协议标签交换网中的网络分析的数据分组的过程的一个实施例的流程图。该过程由网络域的数据流的入口节点(即i-ler)实现。如所提到的,数据流能具有网络域的单独入口和出口节点(即e-ler),并且给定网络节点能充当一些数据流的入口节点,同时充当其它数据流的出口节点。

该过程能响应于在mpls网络域的入口节点(i-ler)处接收到数据分组而发起(框301)。然后对该数据分组是否要被标记以供数据流分析做出确定(框303)。该确定能基于可适合于网络分析的任何配置的判据做出。选择数据分组能无需检查,而通过按具体顺序、以具体间隔或者基于类似的选择方案来选择它们。类似地,能审视有效载荷或封装mpls标签的内容,以确定是否满足指定判据。这种审视能给数据流处理增加附加的计算要求。如果确定接收的数据分组未被标记,则该过程通过向着网络域的出口节点(e-ler)转发数据分组来完成(框309)。转发能根据转发信息库或使用类似过程来执行。

如果确定数据分组被标记,则该过程对数据分组的网络域的出口节点(e-ler)是否支持数据分组标记过程做出确定(框305)。通过检查数据分组的报头信息和/或与数据分组属于的数据流相关的信息能确定出口节点。如果出口节点不支持标记过程,则该过程继续进行转发数据分组,无需标记它(框309)。这能影响根据标识要标记的数据分组所利用的算法选择用于标记的下一数据分组,如上面所提到的。送往不支持标记过程的出口节点(e-ler)的数据分组使这个数据分组被跳过,因为如果数据分组被标记,则数据分组可在具有用由标记过程生成的标记标签的情况下退出网络域,这可能对其在网络域外部的处置具有负面影响,其中标记标签可能被不恰当地处理,而不是被丢弃。在mpls的情况下,e-ler有可能会误解和错误处置标记标签,并且这可使数据分组被丢弃。

如果数据分组已经被选择用于标记,并且还确定数据分组的出口节点(e-ler)支持标记过程,则数据分组能用标记标签标记,该标记标签向网络域中的支持节点指示该数据分组要被处理进行网络分析(框307)。能利用任何类型和内容的标记标签来标记网络分组用于网络分析收集。本文下面关于图5a-c论述mpls的示例实现。对于mpls,标记标签能包含标记标签指示符和/或流标记标签。一旦数据分组已经用标记标签标记了,则它能使用由转发信息库或类似的处理结构根据数据分组报头确定的转发信息向着出口节点(e-ler)转发(框309)。

单个标记标签指示符1(mli1)

图5a是用于mpls实现的标记标签的一个实施例的图解。所例证的标记标签在本文被称为标记标签指示符1(mli1)。mli1利用预留的标签值。使用预留的标签值允许在网络域中间的标签转接路由器(ltr)检测数据分组中的标记标签。一旦检测到,ltr能处理数据分组并且也报告数据分组,有助于并且改进了网络分析的总体数据收集。

在利用单个标记标签指示符(例如mli1)的实施例中,数据分组中mli1的存在仅提示这个数据分组需要特殊处理的路径上的其它节点(ltr)。在设置成监测数据分组的路径上的每个节点上配置对于处理数据分组要采取的动作的细节,配置的动作能包含报告、记录、打时间戳、打指纹、根本没有动作以及类似动作。这由管理员或网络分析应用决定经由命令线接口(cli)、网络管理系统、软件定义的网络(sdn)(例如开放流系统)式控制接口或类似系统在监测节点(ltr)上配置这些动作。

流标记标签(fml)

在其它实施例中,没使用预留的mli,通过使用流标记标签(fml),数据流在入口节点(i-ler)与出口节点(e-ler)之间的数据分组采样仍是可能的。在此实施例中,fml能是从点对点(p2p)或融合的多点对点(mp2p)标签交换路径(lsp)的出口节点(e-ler)的标签空间分配的下游;或者能是从点对多点(p2mp)lsp的入口节点(i-ler)的标签空间分配的上游。在此实施例中,fml是正常标签(与上面论述的预留标签形成对照),并且对应于fml的标签动作将向出口节点(e-ler)指示这是采样的数据分组,并且需要特殊处置(例如为了网络分析目的)。

在此实施例中,在路径(lsp)中间的监测节点(ltr)将不能够检测到标记并收集信息,因为它们将不能够分清哪些分组含有fml,因为它被埋没在标签栈内,并且不利用总是被审视的预留标签来将它标识为被标记。在图5b中例证了具有流标记标签的mpls分组的例证。

标记标签指示符2+流标记标签

在另外实施例中,利用第二类型标记标签指示符(2)(mli2),连同流标记标签。mli2利用另一预留标签值(不同于mli1)。在如下所描述的几个不同方案中能指配流标记标签。

在第一方案中,流标记标签能是真实标签,在p2p或融合(mp2p)lsp情况下分配的下游,或者在p2mplsp情况下分配的上游。对应于fml的标签动作将指示需要附加的特殊处置(例如用于网络分析目的)。

在第二方案中,能单纯为了流标识目的指配流标记标签。在此情况下,在出口节点(e-ler)上的标签表中不对fml编程。fml将被包含在记录消息或报告消息中,用于网络分析应用的标识目的。在此实施例中,入口节点(i-ler)会将mli22推送到接收的数据分组上,后面是标签栈上的流标记标签。fml能用于使用任何格式或方案的唯一标识符来唯一标识流。fml被分配用于标识目的,并且能被包含在记录消息或报告消息中(即,这些消息被发送到网络分析应用和服务器)。在一些实施例中,fml应该足以用于载荷平衡目的,即,充当如在rfc6790中所定义的熵标签。图5c是mli2和fml标签方案的一个实施例的图解。

因特网协议

在另一实施例中,该过程和系统能被实现为ip网络的一部分,诸如ipv4或ipv6网络域。在ipv4网络域中,具有固定长度(1个八位组)的新ipv4选项可由入口路由器插入到数据分组的ipv4分组报头中,以标记用于网络分析的数据分组。这个选项被称为ip标记选项(mo)。理想地,在标记的数据分组退出网络之前,应该从数据分组中移除新标记选项。

类似地,在ipv6网络中,能使用新固定长度(总共8个八位组)ipv6扩展报头标记ipv6分组。新扩展报头的格式必须遵循如在rfc2460中所规定的指南。如果ip网络域中的节点(例如路由器)不支持这个新标记选项,则新选项类型的前两位必须是00,其指示这个选项应该被跳过,并且继续正常处理报头。这个选项的后20位能是将携带本文上面关于mpls数据分组和封装所定义的fml的流标记标签字段。图5d是用于标记网络分析的数据分组的ipv6格式的例证。

图3b是用于标记用于因特网协议网络中的网络分析的数据分组的过程的一个实施例的流程图。该过程由网络域的数据流的入口节点(即入口路由器)实现。如所提到的,数据流能具有网络域的单独入口和出口节点(即出口路由器),并且给定网络节点能充当一些数据流的入口节点,同时充当其它数据流的出口节点。

该过程能响应于在ip网络域的入口节点(入口路由器)处接收数据分组而发起(框351)。然后对该数据分组是否要被标记以供数据流分析做出确定(框353)。该确定能基于可适合于网络分析的任何配置的判据做出。选择数据分组能无需检查,而通过按具体顺序、以具体间隔或者基于类似的选择方案来选择它们。类似地,能审视ip数据分组有效载荷或ip数据分组报头的内容,以确定是否满足指定判据。这种审视能给数据流处理增加附加的计算要求。如果确定接收的数据分组未被标记,则该过程通过向着ip网络域的出口节点(即出口路由器)转发数据分组来完成(框359)。转发能根据转发信息库或使用类似过程来执行。

如果确定数据分组要被标记,则该过程对数据分组的ip网络域的出口节点(出口路由器)是否支持数据分组标记过程做出确定(框355)。通过检查ip数据分组的报头信息和/或与数据分组属于的数据流相关的信息能确定出口节点。如果出口节点不支持标记过程,则该过程继续进行转发数据分组,无需标记它(框309)。这能影响根据标识要标记的数据分组所利用的算法而选择用于标记的下一数据分组,如上面所提到的。送往不支持标记过程的出口节点(出口路由器)的数据分组使这个数据分组被跳过,因为如果数据分组被标记,则数据分组可在具有由标记过程生成的标记标签的情况下退出网络域,这可能对其在网络域外部的处置具有负面影响,其中标记标签可能被不恰当地处理,而不是被丢弃。在ip的情况下,内部路由器和出口路由器在误解和错误处置标记标签时将忽略可选的报头信息的内容,并且这可使数据分组被丢弃。

如果数据分组已经被选择用于标记,并且还确定数据分组的出口节点(出口路由器)支持标记过程,则数据分组能用标记标签标记,该标记标签向网络域中的支持节点指示该数据分组要被处理进行网络分析(框357)。能利用任何类型和内容的标记标签来标记网络分组用于网络分析收集。本文上面关于图5d论述了适合于ip网络域的示例实现。对于ip,标记标签能在ipv4或ipv6报头中包含流标记标签或类似信息。一旦数据分组已经用标记标签标记了,则它能使用由转发信息库或类似的处理结构根据数据分组报头确定的转发信息向着出口节点(出口路由器)转发(框359)。

标记移除

不管网络的类型如何,例如mpls或ip网络域,出口节点都将检查数据分组以标识标记的数据分组,并将在数据分组被转发出网络域之前移除标记标签。当在出口节点接收到每个数据分组时,每个数据分组都被检查以标识被标记的数据分组,并且然后移除标记标签。

图4是用于网络域中的出口节点的过程的一个实施例的图解。该过程在出口节点响应于从面对网络域并且具有网络域外部的下一跳的接口接收到数据分组而发起(框401)。节点担任给定数据流的出口节点。对于其它数据流,同一节点可以是沿数据流路径的节点或入口节点。当这些条件满足时,对接收的数据分组是否包含标记标签进行检查(框403)。如果没有标记标签,则数据分组能被转发到网络域外部的下一跳。标记标签的位置和内容将根据所利用的标记标签方案和网络的类型变化,如在上面的实施例和示例中所阐述的。

然而,如果数据分组的确包含标记标签,则出口路由器从数据分组中移除标记标签(框405)。移除标记标签能是移除封装层、删除报头数据或类似的移除技术,其移除标记标签并将数据分组返回到未标记状态,使得数据分组的随后处理不会受之前已经标记的数据分组的影响。数据分组然后能根据转发信息库或使用类似过程被转发到下一跳(框407)。

标记标签支持的信令

入口节点(例如e-ler或出口路由器)能发信号通知网络域中的其它节点(例如采用i-ler或入口路由器形式的入口节点)其处理并移除包含mli和fml的标记标签的能力。这个能力被称为标记标签能力(mlc)。mlc的信令能以不同方式发生,取决于网络利用的协议(例如在mpls网络域中使用的mpls信令协议)和网络的类型。在一个实施例中,能利用标签分布协议(ldp)进行发信号。新mlc类型-长度-值(tlv)能被添加为标签映射消息tlv的可选参数,以发信号通知,在ldp隧道尾端的出口节点(即e-ler)能处理并移除mli和fml。在另一实施例中,rsvp-te能被用于发信号。新mlc能力tlv能被添加为lsp属性tlv,以发信号通知,在rsvp-te隧道尾端的出口节点(即e-ler)能处理并移除mli和flm。在另外的实施例中,信令协议能是边界网关协议(bgp)。新的可选可传递mlc属性能作为path属性的一部分添加到bgpupdate消息,以发信号通知广告bgp路由器能处理和移除mli和flm。

分组处理示例

在本文上面描述的过程的一个示例应用中,mpls网络域提供bgpmplsl3vpn服务。网络分析服务器正在监测这个网络。所有ler都配置成为了网络分析目的对1%的分组进行采样和报告。在网络中间的一些关键ltr还配置成报告具有mli的分组。参考示例图1,ltr被标记为监测节点,而i-ler是入口节点,并且e-ler是出口节点。在此示例中,lsp穿过这两个节点之间的网络,并且携带要监测的数据流。

每个i-ler都配置成对进来的vpn分组的1%进行采样以报告给网络分析服务器。在此,能更详述报告,其可含有删节的分组以及其它元数据,诸如时间戳、到达接口和类似信息。对于为了分析目的标识的每一个分组,在向着e-ler发送分组之前,i-ler会将标记标签指示符2(mli2)和流标记标签插入到mpls标签栈中。

在网络内部战略位置的一些ltr还能配置成检测mli。它们还将向分析服务器发送标记的分组的报告。在此,报告可仅含有最小信息,诸如时间戳和fml。还指令所有e-ler检测具有mli的所有分组。关于这些标记的分组的报告被发送到网络分析服务器。在此,可详述报告,类似于由i-ler生成的报告。网络分析服务器能驻留在与网络域的节点通信的任何位置。在分组退出mpls网络之前,mli和flm全都被e-ler移除。

过程特征

能采用该过程和系统改进数据收集效率,以易于实现并获得跟踪和特征化真实数据流的数据。实施例提供了使节点(路由器和交换机)能够为了网络分析目的对进来的业务进行采样的数据分组标记解决方案。这允许网络域的节点在每个流的基础上处理和报告更小数量的分组。实施例使具有较低处理能力的交换机和路由器能够监测较高带宽流以及较大量的流。另外,这些实施例是简单的,并且易于在路由器和交换机级或者经由cli、经由基于sdn的实现或类似配置选项来实现。实施例还能与许多不同类型的标记技术一起工作。标记方法不限于本文上面论述的已经作为示例提供的方法。从而,实施例能监测并测量真实业务和流,它们不要求使用所生成的操作、运营和管理(oam)业务。

架构

图6是实现标记过程和系统的网络装置的一个实施例的图解。网络装置(nd)是以通信方式互连网络上其它电子装置(例如其它网络装置、最终用户装置)的电子装置。一些网络装置是为多个连网功能(例如路由、桥接、交换、层2聚合、会话边界控制、服务质量和/或订户管理)提供支持,和/或为多个应用服务(例如数据、语音和视频)提供支持的“多服务网络装置”。

在一个实施例中,标记过程由网络装置601或类似计算装置实现。网络装置601能具有使它能够接收数据业务并向着其目的地转发它的任何结构。网络装置601能包含执行网络装置601功能的网络处理器603或网络处理器组。本文所用的“组”是包含一项的任何正整数项。网络装置601能经由网络处理器603执行标记模块607以实现标记功能,包含当担任入口节点时标记数据分组,或者当担任出口节点时移除标记,其中网络装置601担任本文上面所描述的网络域中的交换机或路由器。

网络装置601与具有用户设备和/或内容服务器的被管理网络单独连接。网络处理器603能将标记模块607作为分立硬件、软件模块或它们的任何组合实现。网络处理器603还能服务于路由信息库605a以及与数据业务转发和网络拓扑维护相关的类似功能。路由信息库605a能实现为用于转发协议数据单元pdu(即分组)的匹配动作表。标记模块607的功能能用网络装置内的软件(包含固件)和硬件的任何组合实现为模块。由网络装置601实现和执行的标记模块607的功能包含本文上面进一步描述的功能。

在一个实施例中,网络装置601能包含一组线路卡617,它们通过标识目的地并将数据业务转发到适当线路卡617(具有经由下一跳导向或朝向目的地的出口端口)来处理进来的数据业务并向着相应目的地节点转发。这些线路卡617还能实现转发信息库605b,或它们的相关子集。线路卡617也能实现或促进本文上面描述的标记模块607功能。线路卡617经由交换机组构611彼此通信,并使用以太网、光纤或类似通信链路和介质通过附连网络621与其它节点通信。

已经参考框图的示范实施例描述了流程图的操作。然而,应该理解,流程图的操作可能由本发明除了论述的实施例以外的实施例执行,并且参考框图论述的实施例能执行不同于参考流程图论述的实施例的操作。虽然流程图示出了由某些实施例执行的具体操作次序,但应该理解,此类次序是示范性的(例如,备选实施例可按不同次序执行操作,组合某些操作,重叠某些操作等)。

如本文所描述的,由网络装置601执行的操作可指的是硬件的特定配置(诸如配置成执行某些操作或具有预定功能性的专用集成电路(asic))或存储在采用非暂态计算机可读介质实施的存储器中的软件指令。从而,附图中示出的技术能使用在一个或更多电子装置(例如终端站、网络单元)上存储和执行的代码和数据实现。此类电子装置使用计算机可读介质(诸如非暂态计算机可读存储介质(例如磁盘、光盘、随机存取存储器、只读存储器、闪存装置、相变存储器)和暂态计算机可读通信介质(例如电、光、声或其它形式的传播信号,诸如载波、红外信号、数字信号))存储和传递(在内部和/或通过网络与其它电子装置)代码和数据。此外,此类电子装置通常包含耦合到一个或更多其它组件诸如一个或更多存储装置(非暂态机器可读存储介质)、用户输入/输出装置(例如键盘、触摸屏和/或显示器)和网络连接的一组一个或更多处理器。该组处理器与其它组件的耦合通常通过一个或更多总线和桥(也称为总线控制器)。从而,给定电子装置的存储装置通常存储代码和/或数据以便在那个电子装置的该组一个或更多处理器上执行。本发明的实施例的一个或更多部分可使用软件、固件和/或硬件的不同组合来实现。

电子装置使用机器可读介质(也称为计算机可读介质)诸如机器可读存储介质(例如磁盘、光盘、只读存储器(rom)、闪存装置、相变存储器)和机器可读传送介质(也称为载体)(例如电学、光学、无线电、声学或其它形式的传播信号,诸如载波、红外信号)存储和传送(在内部和/或通过网络与其它电子装置)代码(其由软件指令组成并且其有时被称为计算机可读代码或计算机程序)和/或数据。从而,电子装置(例如计算机)包含硬件和软件,诸如一组一个或更多处理器,耦合到一个或更多机器可读存储介质以存储用于在该组处理器上执行的代码和/或存储数据。比如,电子装置可包含含有代码的非易失性存储器,由于非易失性存储器能永久保存代码/数据,甚至当电子装置关闭时(当移除电源时),并且当电子装置开启时,要由那个电子装置的处理器执行的代码部分通常从较慢的非易失性存储器拷贝到那个电子装置的易失性存储器(例如动态随机存取存储器(dram)、静态随机存取存储器(sram))。典型的电子装置还包含一组一个或更多物理网络接口以与其它电子装置建立网络连接(或使用传播信号传送和/或接收代码和/或数据)。本发明的实施例的一个或更多部分可使用软件、固件和/或硬件的不同组合来实现。

图7a例证了根据本发明的一些实施例的示范网络内网络装置(nd)之间的连接性以及nd的三个示范实现。图7a示出了nd700a-h和在a-b、b-c、c-d、d-e、e-f、f-g和a-g之间以及在h与a、c、d和g中每个之间通过线路的连接性。这些nd是物理装置,并且这些nd之间的连接性能是无线的或有线的(经常称为链路)。从nd700a、e和f延伸的附加线路例证,这些nd充当网络的入口点和出口点(并且从而,这些nd有时被称为边缘nd;而其它nd可被称为核心nd)。

图7a中的两个示范nd实现是:1)使用定制专用集成电路(asic)和专有操作系统(os)的专用网络装置702;以及2)使用公共现货(cots)处理器和标准os的通用网络装置704。

专用网络装置702包含连网硬件710,连网硬件710包括计算资源712(其通常包含一组一个或更多处理器)、转发资源714(其通常包含一个或更多asic和/或网络处理器)和物理网络接口(ni)716(有时称为物理端口)以及其中存储有连网软件720的非易失性机器可读存储介质718。物理ni是nd中的硬件,通过其进行网络连接(例如无线地通过无线网络接口控制器(wnic)或通过插入电缆到连接到网络接口控制器(nic)的物理端口),诸如由nd700a-h之间的连接性所示出的那些。在操作期间,连网软件720可由连网硬件710执行以例示一组一个或更多连网软件实例722。每一个连网软件实例722以及连网硬件710执行该网络软件实例的部分(如果它是专用于该连网软件实例和/或由那个连网软件实例在时间上与连网软件实例722其它部分共享的硬件时间片的硬件的话)形成独立的虚拟网络元件730a-r。每一个虚拟网络元件(vne)730a-r包含控制通信和配置模块732a-r(有时称为本地控制模块或控制通信模块)以及转发表734a-r,使得给定虚拟网络元件(例如730a)包含控制通信和配置模块(例如732a)、一组一个或更多转发表(例如734a)以及连网硬件710执行虚拟网络元件(例如730a)的那部分。在一些实施例中,控制通信和配置模块732a涵盖本文上面所描述的标记模块733a。

网络接口(ni)可以是物理的或虚拟的;并且在ip上下文中,接口地址是指配给ni的ip地址,如果它是物理ni或虚拟ni的话。虚拟ni可与物理ni、另一虚拟接口关联,或者它自己独立(例如,环回接口、点对点协议接口)。ni(物理或虚拟)可被编号(具有ip地址的ni)或不编号(没有ip地址的ni)。环回接口(及其环回地址)是经常用于管理目的的ne/vne(物理或虚拟)的特定类型虚拟ni(和ip地址);其中此类ip地址被称为节点环回地址。指配给nd的ni的ip地址被称为那个nd的ip地址;在更大粒度级,指配给为在nd上实现的ne/vne指配的ni的ip地址能被称为那个ne/vne的ip地址。

专用网络装置702经常在物理上和/或逻辑上被视为包含:1)nd控制平面724(有时称为控制平面),包括执行控制通信和配置模块732a-r的计算资源712;以及2)nd转发平面726(有时称为转发平面、数据平面或媒体平面)包括利用转发表(即实现为匹配动作表)734a-r和物理ni716的转发资源714。作为示例,其中nd是路由器(或正在实现路由功能性),nd控制平面724(执行控制通信和配置模块732a-r的计算资源712)通常负责参与控制如何路由数据(例如分组)(例如数据的下一跳和该数据的外出物理ni)并将该路由信息存储在转发表734a-r中,并且nd转发平面726负责在物理ni716上接收该数据,并基于转发表734a-r将该数据转发出物理ni716中的适当ni。

图7b例证了根据本发明的一些实施例实现专用网络装置702的示范方式。图7b示出了包含卡738(通常是热插拔)的专用网络装置。虽然在一些实施例中,卡738属于两种类型(操作为nd转发平面726的一个或更多(有时称为线路卡)以及操作以实现nd控制平面724的一个或更多(有时称为控制卡)),但备选实施例可将功能性组合在单个卡上和/或包含附加卡类型(例如一个附加卡类型被称为服务卡、资源卡或多应用卡)。服务卡能提供专业化处理(例如,层4到层7服务(例如防火墙、因特网协议安全性(ipsec)(rfc4301和4309)、安全套接字层(ssl)/传输层安全性(tls)、入侵检测系统(ids)、对等(p2p)、ip语音(voip)会话边界控制器、移动无线网关(网关通用分组无线电服务(gprs)支持节点(ggsn)、演进的分组核心(epc)网关))。作为示例,服务卡可用于终止ipsec隧道,并执行伴随的认证和加密算法。这些卡通过例证为背板736的一个或更多互连机制(例如第一全网格耦合线路卡而第二全网格耦合所有卡)耦合在一起。

返回图7a,通用网络装置704包含硬件740,硬件740包括一组一个或更多处理器742(其经常是cots处理器)和网络接口控制器744(nic;也称为网络接口卡)(其包含物理ni746)以及其中存储有软件750的非易失性机器可读存储介质748。在操作期间,处理器742执行软件750以例示监管程序754(有时称为虚拟机监测程序(vmm)以及由监管程序754运行的一个或更多虚拟机762a-r,它们被统称为软件实例752。虚拟机是物理机的软件实现,它运行程序就好像它们正在物理非虚拟化机器上执行一样;并且应用一般不知道它们正运行在虚拟机上,与运行在“裸金属”主机电子装置上相对,尽管一些系统提供了准虚拟化,其为了优化目的允许操作系统或应用知晓虚拟化的存在。每一个虚拟机762a-r以及硬件740执行该虚拟机的部分(如果它是专用于该虚拟机和/或由该虚拟机在时间上与虚拟机762a-r其它部分共享的硬件时间片的硬件的话)形成独立的虚拟网络元件760a-r。在一些实施例中,虚拟机模块762a涵盖标记模块764a。

虚拟网络元件760a-r执行与虚拟网络元件730a-r类似的功能性。比如,监管程序754可呈现虚拟操作平台,它对虚拟机762a看起来就像是连网硬件710,并且虚拟机762a可用于实现类似于控制通信和配置模块732a和转发表734a的功能性(硬件640的这个虚拟化有时被称为网络功能虚拟化(nfv))。从而,nfv可用于将许多网络设备类型整合在工业标准高容量服务器硬件、物理交换机和物理存储装置上,其可位于数据中心、nd、和客户住宅设备(cpe)中。然而,本发明的不同实施例可以不同方式实现虚拟机762a-r中的一个或更多。例如,虽然本发明的实施例用对应于一个vne760a-r的每个虚拟机762a-r例证了,但备选实施例可以更细粒度级实现这个对应关系(例如,线路卡虚拟机虚拟化线路卡,控制卡虚拟机虚拟化控制卡等);应该理解到,本文关于虚拟机与vne对应关系描述的技术还适应于使用此类更细粒度级的实施例。

在某些实施例中,监管程序754包含提供与物理以太网交换机类似的转发服务的虚拟交换机。确切地说,这个虚拟交换机在虚拟机与nic744之间以及可选地在虚拟机762a-r之间转发业务;此外,这个虚拟交换机可加强策略上不准许彼此通信(例如通过尊重虚拟局域网(vlan))的vne760a-r之间的网络隔离。

图7a中的第三示范nd实现是混合网络装置706,其在单个nd中或nd内的单个卡中既包含定制asci/专有os又包含cots处理器/标准os。在此类混合网络装置的某些实施例中,平台vm(即,实现专用网络装置702功能性的vm)可提供在混合网络装置706中存在的连网硬件的准虚拟化。

不管nd的以上示范实现如何,当考虑由nd实现的多个vne中的单个vne时(例如其中仅一个vne是给定虚拟网络的一部分),或者其中当前仅单个vne由nd实现,简写术语网络元件(ne)有时用于指的是该vne。还有,在所有以上示范实现中,vne(例如vne730a-r、vne760a-r以及混合网络装置706中的那些)在物理ni(例如716、746)上接收数据,并将该数据转发出物理ni(例如716、746)中的适当ni。例如,实现ip路由器功能性的vne在ip分组中的一些ip报头信息的基础上转发ip分组;其中ip标题信息包含源ip地址、目的地ip地址、源端口、目的地端口(其中“源端口”和“目的地端口”在本文指的是协议端口,与nd的物理端口相对)、传输协议(例如用户数据报协议(udp)(rfc768、2460、2675、4113和5405)、传送控制协议(tcp)(rfc793和1180)以及差分服务(dscp)值(rfc2474、2475、2597、2983、3086、3140、3246、3247、3260、4594、5865、3289、3290和3317)。

图7c例证了根据本发明的一些实施例可耦合vne的各种示范方式。图7c示出了在nd700h中的vne770h.1和nd700a中实现的vne770a.1-770a.p(并且可选地还有vne770a.q-770a.r)。在图7c中,vne770a.1-p在它们能从nd700a外部接收分组并将分组转发到nd700a外部的意义上彼此分开;vne770a.1与vne770h.1耦合,并且从而它们在它们的相应nd之间传递分组;vne770a.2-770a.3可选地可在它们本身之间转发分组,无需将它们转发到nd700a外部;并且vne770a.p可选地可以是包含vne770a.q(后面是vne770a.r)的vne链中的第一个(这有时被称为动态服务链锁,其中vne系列中的每一个vne都提供不同的服务,例如一层或多层4-7网络服务)。虽然图7c例证了vne之间的各种示范关系,但备选实施例可支持其它关系(例如更多/更少vne、更多/更少动态服务链、具有一些公共vne和一些不同vne的多个不同动态服务链)。

图7a的nd例如可形成因特网或私用网的一部分;并且其它电子装置(未示出;诸如最终用户装置,包含工作站、膝上型电脑、笔记本、平板电脑、掌上电脑、移动电话、智能电话、多媒体电话、因特网协议语音(voip)电话、终端、便携式媒体播放器、gps单元、可穿戴装置、游戏系统、机顶盒、启用因特网的家用电器)可耦合到网络(直接或通过其它网络诸如接入网)以通过网络(例如因特网或覆盖在因特网上(例如通过隧穿)的虚拟私用网(vpn))彼此通信(直接或通过服务器)和/或访问内容和/或服务。此类内容和/或服务通常由属于服务/内容服务器的一个或更多服务器(未示出)或参与对等(p2p)服务的一个或更多最终用户装置(未示出)提供,并且例如可包含公用网页(例如免费内容、店面、搜索服务)、私用网页(例如提供电子邮件服务的凭用户名/密码访问的网页)和/或vpn上的公司网络等。比如,最终用户装置可(例如通过(有线或无线)耦合到接入网的客户住宅设备)耦合到边缘nd,边缘nd(例如通过一个或更多核心nd)耦合到其它边缘nd,其它边缘nd耦合到充当服务器的电子装置。然而,通过计算和存储虚拟化,在图7a中操作为nd的一个或更多电子装置还可托管一个或更多此类服务器(例如在通用网络装置704的情况下,一个或更多虚拟机762a-r可操作为服务器;对于混合网络装置706情况也是如此;在专用网络装置702的情况下,一个或更多此类服务器还可运行在由计算资源712执行的监管程序上);在此情况下服务器被说成与该nd的vne协同定位。

虚拟网络是提供网络服务(例如l2和/或l3服务)的物理网络(诸如在图6a中的那个)的逻辑抽象。虚拟网络能实现为覆盖网(有时称为网络虚拟化覆盖),其通过底层网(例如l3网络,诸如使用隧道(例如通用路由封装(gre)、层2隧穿协议(l2tp)、ipsec)来创建覆盖网的因特网协议(ip)网络)提供网络服务(例如层2(l2,数据链路层)和/或层3(l3,网络层)服务)。

网络虚拟化边缘(nve)坐落在底层网络的边缘处,并且参与实现网络虚拟化;nve的面向网络的一侧使用底层网络隧穿到和来自其它nve的帧;nve的面向外部的一侧向网络外部的系统发送数据并从其接收数据。虚拟网络实例(vni)是nve上虚拟网络的特定实例(例如nd上的ne/vne、nd上的ne/vne的一部分,其中那个ne/vne通过仿真被分成多个vne);一个或更多vni能被例示在nve上(例如作为nd上的不同vne)。虚拟接入点(vap)是nve上用于将外部系统连接到虚拟网络的逻辑连接点;vap能是通过逻辑接口标识符(例如vlanid)标识的物理端口或虚拟端口。

网络服务的示例包含:1)以太网lan仿真服务(基于以太网的多点服务,类似于因特网工程设计任务组(ietf)多协议标签交换(mpls)或以太网vpn(evpn)服务),其中外部系统通过底层网络上的lan环境跨网络互连(例如,nve为不同的此类虚拟网络提供单独l2vni(虚拟交换实例),以及跨底层网络的l3(例如ip/mpls)隧穿封装);以及2)虚拟化ip转发服务(从服务定义角度类似于ietfipvpn(例如边界网关协议(bgp)/mplsipvpnrfc4364)),其中外部系统通过底层网络上的l3环境跨网络互连(例如,nve为不同的此类虚拟网络提供单独l3vni(转发和路由实例),以及l3(例如ip/mpls)跨底层网络隧穿封装)。网络服务还可包含服务质量能力(例如业务归类标记、业务调节和调度)、安全性能力(例如过滤器保护客户住宅免于网络发起的攻击,以避免畸形的路由通告)以及管理能力(例如全检测和处理)。

图7d例证了根据本发明的一些实施例在图7a的每一个nd上具有单个网络元件的网络,并且在这个直接转发的方法内,将传统分布式方法(通常由传统路由器使用)与用于保持可达性和转发信息(也称为网络控制)的集中式方法形成对照。确切地说,图7d例证了与图7a的nd700a-h具有相同连接性的网络元件(ne)770a-h。

图7d例证了分布式方法772分布用于生成可达性并跨ne770a-h转发信息的责任;换言之,分布邻居发现和拓扑发现的过程。

例如,在使用专用网络装置702的情况下,nd控制平面724的控制通信和配置模块732a-r通常包含可达性和转发信息模块以实现一个或更多路由协议(例如外部网关协议,诸如边界网关协议(bgp)(rfc4271)、内部网关协议(igp)(例如开放最短路径优先(ospf)(rfc2328和5340)、中间系统到中间系统(is-is)(rfc1142)、路由信息协议(rip)(版本1rfc1058、版本2rfc2453以及下一代rfc2080))、标签分布协议(ldp)(rfc5036)、资源预留协议(rsvp)(rfc2205、2210、2211、2212以及rsvp业务工程(te):对lsp隧道rfc3209的rsvp的扩充、通用多协议标签交换(gmpls)信令rsvp-terfc3473、rfc3936、4495和4558),它们与其它ne通信以交互路由,并且然后基于一个或更多路由度量选择那些路由。从而,ne670a-h(例如执行控制通信和配置模块732a-r的计算资源712)通过分布式确定网络内的可达性并计算它们的相应转发信息来执行它们用于参与控制要如何路由数据(例如分组)(例如数据的下一跳和该数据的外出物理ni)的责任。路由和相邻项被存储在nd控制平面724上的一个或更多路由结构(例如路由信息库(rib)、标签信息库(lib)、一个或更多相邻结构)中。nd控制平面724基于路由结构用信息(例如相邻和路由信息)对nd转发平面726编程。例如,nd控制平面724将相邻和路由信息编程到一个或更多转发表734a-r中,它们是nd转发平面726上的匹配动作表(例如转发信息库(fib)、标签转发信息库(lfib)和一个或更多相邻结构)的实现。对于层2转发,nd能存储用于基于那个数据中的层2信息转发数据的一个或更多桥接表。虽然上面的示例使用专用网络装置702,但相同分布式方法772能被实现在专用网络装置704和混合网络装置706上。

图7d例证了集中式方法774(也称为软件定义的连网(sdn)),其解耦进行有关从底层系统向哪里发送业务的判定的系统,该底层系统将业务转发到选择的目的地。所例证的集中式方法774具有用于在集中式控制平面776(有时称为sdn控制模块、控制器、网络控制器、openflow控制器、sdn控制器、控制平面节点、网络虚拟化权威机构或管理控制实体)中生成可达性和转发信息的责任,并且从而邻居发现和拓扑发现的过程被集中。集中式控制平面776具有南向接口782,其具有数据平面780(有时称为基础设施层、网络转发平面或转发平面(其不应该与nd转发平面混淆)),其包含ne770a-h(有时称为交换机、转发元件、数据平面元件或节点)。集中式控制平面776包含网络控制器778,网络控制器778包含集中式可达性和转发信息模块779,该模块779确定网络内的可达性并通过南向接口782(其可使用openflow协议)向数据平面780的ne770a-h分布转发信息。从而,网络智能集中在集中式控制平面776中,其在通常与nd分开的电子装置上执行。

例如,在数据平面780中使用专用网络装置702的情况下,nd控制平面724的每一个控制通信和配置模块732a-r通常都包含提供南向接口782的vne侧的控制代理。在此情况下,nd控制平面724(执行控制通信和配置模块732a-r的计算资源712)执行其通过与集中式控制平面776通信的控制代理从集中式可达性和转发信息模块779接收转发信息(并且在一些情况下是可达性信息)来参与控制要如何路由数据(例如分组)(例如数据的下一跳和该数据的外出物理ni)的责任(应该理解到,在本发明的一些实施例中,控制通信和配置模块732a-r除了与集中式控制平面776通信还可扮演确定可达性和/或计算转发信息的角色,尽管比在分布式方法的情况下少得多;此类实施例一般被视为落在集中式方法774之下,但也可被视为混合方法)。在一些实施例中,集中式可达性和转发模块779涵盖本文上面所描述的标记模块781中的标记功能。

虽然上面示例使用专用网络装置702,但相同集中式方法774能用通用网络装置704(例如,每一vne760a-r都执行其通过与集中式控制平面776通信以从集中式可达性和转发信息模块779接收转发信息(并且在一些情况下是可达性信息)来控制要如何路由数据(例如分组)(例如数据的下一跳和该数据的外出物理ni)的责任;(应该理解到,在本发明的一些实施例中,vne760a-r除了与集中式控制平面776通信还可扮演确定可达性和/或计算转发信息的相同角色,尽管比在分布式方法的情况下少得多)以及混合网络装置706实现。事实上,使用sdn技术能增强通常在通用网络装置704或混合网络装置706实现中使用的nfv技术,因为nfv能够通过提供其上能运行sdn软件的基础设施来支持sdn,并且nfv和sdn都旨在利用商品服务器硬件和物理交换机。

图7d还示出集中式控制平面776具有到应用层786的北向接口784,应用层786中驻留有应用788。集中式控制平面676具有形成应用788的虚拟网络792(有时称为逻辑转发平面、网络服务或覆盖网络(其中数据平面780的ne770a-h是底层网络))的能力。从而,集中式控制平面776保持所有nd和配置的ne/vne的全局视图,并且它将虚拟网络高效地映射到底层nd(包含随着物理网络通过硬件(nd、链路、或nd组件)故障、添加、或移除的改变而保持这些映射)。应用层786从而允许执行管理与网络元件关联的功能并与之交互的应用。

虽然图7d示出了分布式方法772与集中式方法774分开,但在本发明的某些实施例中可以不同方式分布网络控制的工作,或将二者组合。例如:1)实施例一般可使用集中式方法(sdn)774,但具有委托给ne的某些功能(例如,分布式方法可用于实现故障监测、性能监测、保护交换和邻居和/或拓扑发现的基元中的一项或多项);或者2)本发明的实施例可经由集中式控制平面和分布式协议来执行邻居发现和拓扑发现,并且比较的结果提出了它们不同意的例外。此类实施例一般被视为落在集中式方法774下,但也可被视为混合方法。

虽然图7d例证了每一个nd700a-h都实现单个ne770a-h的简单情况,但应该理解,参考图7d描述的网络控制方法还对于nd700a-h中的一个或更多实现多vne(例如vne730a-r、vne760a-r,在混合网络装置706中的那些)的网络工作。备选地或此外,网络控制器778还可仿真单个nd中的多个vne的实现。确切地说,代替在单个nd中实现多个vne(或除此之外),网络控制器778可将单个nd中的vne/ne的实现呈现为虚拟网络792中的多个vne(虚拟网络792中的相同虚拟网络中的所有、虚拟网络792中不同虚拟网络中的每个、或某种组合)。例如,网络控制器778可使nd实现底层网络中的单个vne(ne),并且然后逻辑上分割集中式控制平面776内的那个ne的资源以呈现虚拟网络792中的不同vne(其中覆盖网络中的这些不同vne正在共享底层网络中nd上的单个vne/ne实现的资源)。

另一方面,图7e和7f分别例证了网络控制器778可作为虚拟网络792中不同网络的一部分呈现的ne和vne的示范抽象。图7e例证了根据本发明的一些实施例的简单情况,其中每一个nd700a-h都实现单个ne770a-h(见图6d),但集中式控制平面676已经将不同nd(ne770a-c和g-h)中的多个ne抽象成(以表示)图7d的虚拟网络792中的一个的单个ne770i。图7e示出了在这个虚拟网络中ne770i耦合到ne770d和770f,它们二者仍都耦合到ne770e。

图7f例证了根据本发明的一些实施例的一种情况:其中多个vne(vne770a.1和vne770h.1)被实现在不同nd(nd700a和nd700h)上,并且彼此耦合,并且其中集中式控制平面776已经抽象了这多个vne,使得它们看起来好像图7d的虚拟网络792中的一个内的单个vne770t。从而,ne或vne的抽象能跨越多个nd。

虽然本发明的一些实施例将集中式控制平面676实现为单个实体(例如在单个电子装置上运行的单个软件实例),但备选实施例为了冗余和/或可缩放目的可将功能性分散在多个实体上(例如运行在不同电子装置上的多个软件实例)。

类似于网络装置实现,运行集中式控制平面776的电子装置从而还有包含集中式可达性和转发信息模块779的网络控制器778可以各种方式实现(例如专用装置、通用(例如cots)装置或混合装置)。这些电子装置类似地将包含计算资源、一组或一个或更多物理nic、和其上存储有集中式控制平面软件的非易失性机器可读存储介质。比如,图8例证包含硬件840的通用控制平面装置804,硬件840包括一组一个或更多处理器842(其经常是cots处理器)和网络接口控制器844(nic;也称为网络接口卡)(其包含物理ni846)以及其中存储有集中式控制平面(ccp)软件850的非易失性机器可读存储介质848。

在使用计算虚拟化的实施例中,处理器842通常执行软件以例示监管程序854(有时称为虚拟机监测程序(vmm)以及由监管程序854运行的一个或更多虚拟机862a-r,它们被统称为软件实例852。虚拟机是物理机的软件实现,其运行程序就好像它们正在物理非虚拟化机器上执行一样;并且应用一般不知晓它们正运行在虚拟机上(与运行在“裸金属”主机电子装置上相对),尽管一些系统提供了准虚拟化,其为了优化目的允许操作系统或应用知晓虚拟化的存在。再者,在使用计算虚拟化的实施例中,在操作期间,在操作系统864a顶上的ccp软件850(例证为ccp实例876a)的实例通常在虚拟机862a内执行。在不使用计算虚拟化的实施例中,在操作系统864a顶上的ccp实例876a在“裸金属”通用控制平面装置804上执行。

操作系统864a提供了基本处理、输入/输出(i/o)和连网能力。在一些实施例中,ccp实例876a包含网络控制器实例878。网络控制器实例878包含集中式可达性和转发信息模块实例879(其是中间件层,向操作系统864a提供网络控制器878的上下文并与各种ne通信),以及中间件层(提供各种网络操作所需的智能,诸如协议、网络态势感知和用户界面)上的ccp应用层880(有时称为应用层)。在更抽象级别,集中式控制平面876内的这个ccp应用层880与虚拟网络视图(网络的逻辑视图)一起工作,并且中间件层提供从虚拟网络到物理视图的转换。ccp应用能涵盖本文上面描述的标记模块881的功能性。类似地,除了其它应用888,ccp应用层880能实现标记模块887。

集中式控制平面876基于每个流的中间件层映射和ccp应用层880计算向数据平面880传送相关消息。流可被定义为一组分组,其报头匹配给定的位模式;在这个意义上,传统ip转发也是基于流的转发,其中流例如由目的地ip地址定义;然而,在其它实现中,用于流定义的给定位模式可在分组报头中包含更多字段(例如10个或更多)。数据平面880的不同nd/ne/vne可接收不同消息,从而还有不同转发信息。数据平面880处理这些消息,并对适当ne/vne的转发表(有时称为流表)中的适当流信息和对应动作编程,并且然后ne/vne将进来的分组映射到在转发表中表示的流,并基于转发表中的匹配转发分组。

虽然附图中的流程图示出了由本发明某些实施例执行的具体操作顺序,但应该理解,这种顺序是示范性的(例如备选实施例可按不同顺序执行操作、组合某些操作、重叠某些操作等)。

本领域技术人员将认识到,使用术语“示范性”在本文中用于指“例证性”或“充当示例”,并不打算暗示具体实施例优选于另一实施例,或者具体特征是必不可少的。同样,术语“第一”和“第二”以及类似术语只是用于区分项目或特征的一个具体实例与另一个实例,并不指示具体次序或排列,除非上下文另有明确指示。另外,本文所使用的术语“步骤”打算与“操作”或“动作”同义。本文对步骤序列的任何描述根本不暗示这些动作必须按具体次序执行,或者甚至这些操作以任何次序执行,除非所描述的操作的上下文或细节以别的方式明确指示。

当然,本发明可用与本文阐述的方式不同的其它特定方式执行,没有脱离本发明的范围和实质特性。上面论述的一个或更多特定过程可使用一个或更多适当配置的处理电路执行。在一些实施例中,这些处理电路可包括用适当软件和/或固件编程以执行上述一个或更多操作或其变形的一个或更多微处理器、微控制器和/或数字信号处理器。在一些实施例中,这些处理电路可包括定制硬件,以执行一个或更多上述功能。目前的实施例因此在所有方面都被视为例证性的而非限制性的。

虽然本发明已经在几个实施例方面进行了描述,但本领域技术人员将认识到,本发明不限于所描述的实施例,能用在所附权利要求书的精神和范围内的修改和变化来实行。从而,描述被视为例证性的,而非限制性的。

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