检测环网络中点对多点标签交换路径的出口的制作方法

文档序号:19281424发布日期:2019-11-29 22:59阅读:148来源:国知局
检测环网络中点对多点标签交换路径的出口的制作方法

本公开涉及计算机网络,更具体地,涉及规划(engineering)计算机网络内的流量。



背景技术:

网络中的路由装置(通常称为路由器)保持描述通过网络的可用路由的路由信息。当接收到输入数据包时,路由器检查数据包内的信息,并根据路由信息转发数据包。为了保持网络的准确表示,路由器通常根据一个或多个定义的路由协议(例如,边界网关协议(bgp))交换路由信息。

多协议标签交换(mpls)技术可用于规划互联网协议(ip)网络内的流量模式。使用mpls,源装置可以请求通过网络到目的装置的路径,即,标签交换路径(lsp)。lsp定义了通过网络将mpls数据包从源装置传送到目的装置的一不同路径。沿着lsp的每个路由器都分配一个标签,并将标签传播到沿着该路径最近的上游路由器。沿着该路径的路由器协作执行mpls操作,以沿着建立的路径转发mpls数据包。存在各种用于建立lsp的协议,例如,标签分发协议(ldp)和具有流量工程扩展的资源预留协议(rsvp-te)。

网络内的多个路由装置可以布置为环网络。在一些示例中,环网络可以作为到客户网络的接入网络来操作。即,环网络可以操作,以在连接到环网络的客户网络之间提供快速的基于分组的通信传输,和/或向客户网络提供对诸如互联网或其他提供商网络等公共网络的访问。



技术实现要素:

总体上,描述了用于检测加入环网络中的点对多点(p2mp)标签交换路径(lsp)(“p2mplsp”)以接收多播流量感兴趣的出口网络装置(例如,路由器)的技术。在一些示例中,环网络中的多个路由器可以建立一个或多个单播多点对点(mp2p)lsp(“mp2p环lsp”),每个lsp终止于特定的出口路由器。给定mp2p环lsp的出口路由器也可以作为p2mplsp的入口路由器来操作,以将数据包流量提供到p2mplsp内,用于传输到p2mplsp的一个或多个出口路由器。

为了检测对于加入p2mplsp感兴趣的出口路由器,p2mplsp的入口路由器可以从出口路由器接收一个或多个p2mp出口标识消息。例如,对加入p2mplsp感兴趣的出口路由器可以确定其具有对从多播源接收多播流量感兴趣的接收器,其中,针对mp2p环lsp的出口路由器是到环网络的入口路由器。对加入p2mplsp感兴趣的出口路由器可以在mp2p环lsp上向p2mplsp的入口路由器发送p2mp出口标识消息,该消息使得p2mplsp的入口路由器能够习得感兴趣的出口路由器的身份。例如,p2mp出口标识消息可以是互联网组管理协议(igmp)成员资格报告消息。

响应于接收到p2mp出口标识消息,p2mplsp的入口路由器可以将感兴趣的出口路由器添加到p2mplsp。以这种方式,用于p2mplsp的入口路由器可以自动检测对加入p2mplsp感兴趣的出口路由器,并习得出口路由器的互联网协议(ip)地址,而不需要利用关于感兴趣的出口路由器的信息手动配置入口路由器。因为p2mp出口标识消息封装在注入mp2p环内的mpls数据包内,所以环周围的中间路由器可以简单地交换mpls数据包上的外部mpls标签,而不必检查数据包的有效载荷内容或者安装与p2mp出口标识消息相关联的控制平面状态。避免在p2mplsp的入口和出口路由器以外的路由器处创建控制平面状态,可以减少当信号通知p2mplsp时的网络资源开销。

在一个示例中,一种方法包括:由环网络中的第一网络装置标识点对多点(p2mp)标签交换路径(lsp),用于从特定多播组的多播源接收多播流量,其中,所述第一网络装置具有感兴趣的接收器,其中,所述第一网络装置将是p2mplsp的出口网络装置。该方法还包括由所述第一网络装置向所述p2mplsp的入口网络装置发送p2mp出口标识消息,以添加所述第一网络装置作为所述p2mplsp的出口网络装置,其中,发送p2mp出口标识消息包括:将所述p2mp出口标识消息输出到所述环网络中的多点对点(mp2p)环lsp中,其中,所述p2mplsp的入口网络装置是所述mp2p环lsp的唯一出口网络装置。

在另一示例中,一种方法包括:由环网络中的第一网络装置接收点对多点(p2mp)出口标识消息,以在环网络中添加第二网络装置作为p2mp标签交换路径(lsp)的出口,用于从特定多播组的多播源接收多播流量,其中,第二网络装置具有感兴趣的接收器,其中,接收p2mp出口标识消息,包括:在环网络中的多点对点(mp2p)环lsp上接收p2mp出口标识消息,其中,第一网络装置是mp2p环lsp的唯一出口网络装置。该方法还包括由所述第一网络装置并且响应于在所述mp2p环lsp上接收到所述p2mp出口标识消息,更新所存储的路由信息,以添加所述第二网络装置作为所述p2mplsp的出口网络装置。

在又一示例中,一种第一网络装置包括:多个物理接口,用于从环网络中的多个网络装置中的两个以上网络装置接收流量;一个或多个处理器,其被配置为:标识第一点对多点(p2mp)标签交换路径(lsp),用于从特定多播组的多播源接收多播流量,其中,所述第一网络装置具有感兴趣的接收器,其中,所述第一网络装置将是第一p2mplsp的出口网络装置;并且向所述p2mplsp的入口网络装置发送第一p2mp出口标识消息,以添加所述第一网络装置作为所述第一p2mplsp的出口网络装置,其中,为了发送所述第一p2mp出口标识消息,所述处理器还被配置为将所述第一p2mp出口标识消息输出到多点对点(mp2p)环lsp中,其中,所述第一p2mplsp的入口网络装置是所述mp2p环lsp的唯一出口网络装置。

在又一示例中,一种环网络的第一网络装置包括:多个物理接口,用于从环网络中的多个网络装置中的两个以上网络装置接收流量;一个或多个处理器,其被配置为:接收点对多点(p2mp)出口标识消息,以在环网络中添加第二网络装置作为p2mp标签交换路径(lsp)的出口,用于从多播源接收多播流量,其中,第二网络装置具有感兴趣的接收器,其中,接收p2mp出口标识消息,包括在多点对点(mp2p)环lsp上接收p2mp出口标识消息,其中,第一网络装置是mp2p环lsp的唯一出口网络装置;并且响应于在所述mp2p环lsp上接收到所述p2mp出口标识消息,更新所存储的路由信息,以添加所述第二网络装置,作为所述p2mplsp的出口网络装置。

在另一示例中,一种存储指令的网络装置的计算机可读存储介质,所述指令促使处理器:标识第一点对多点(p2mp)标签交换路径(lsp),用于从多播源接收多播流量,其中,环网络的网络装置具有感兴趣的接收器,其中,所述网络装置将是第一p2mplsp上的出口网络装置;并且向所述第一p2mplsp的入口网络装置发送第一p2mp出口标识消息,以添加所述网络装置作为所述第一p2mplsp的出口网络装置,其中,为了发送所述第一p2mp出口标识消息,所述处理器还被配置为将所述第一p2mp出口标识消息输出到所述环网络中的多点对点(mp2p)环lsp中,其中,所述第一p2mplsp的入口网络装置是所述mp2p环lsp的唯一出口网络装置。

在附图和以下描述中阐述一个或多个实施例的细节。从说明书和附图以及权利要求书中,其他特征、目的和优点将变得显而易见。

附图说明

图1是示出根据本文描述的技术的检测环网络中的点对多点(p2mp)lsp的出口路由器的示例网络系统的框图。

图2是示出根据本文描述的技术的检测对加入p2mplsp感兴趣的多个出口路由器的另一示例的框图。

图3是示出能够实现本文描述的技术的示例性装置(例如,路由器或网关)的框图。

图4是示出根据本文描述的技术的网络装置的示例操作的流程图。

具体实施方式

图1是示出根据本文描述的技术的检测对加入环网络中的点对多点(p2mp)lsp(称为“p2mplsp”)感兴趣的出口路由器的示例网络系统10的框图。如图1的示例所示,网络系统10包括路由器的集合(“r”),例如,r0至r9,这些路由器被设置成形成环网络20。如图1所示,环网络20作为用于多个客户网络13a至13e的接入网络来操作。即,环网络20操作,以在客户网络13之间提供快速的基于分组的通信传输,和/或向客户网络提供对诸如互联网或其他提供商网络等公共网络(例如,公共网络11)的访问。

每个客户网络13可以包括专用网络,并且可以包括局域网(lan)或广域网(wan),其包括多个用户装置(未示出)。用户装置可以包括个人计算机、膝上型计算机、工作站、个人数字助理(pda)、无线装置、网络就绪设备、文件服务器、打印服务器或其他装置。在某些情况下,用户装置请求并传送多播流。

通常,环网络20内的路由器r0至r9使用本文描述的多协议标签交换(mpls)信令机制来指定和信号通知“mpls环”及其成员资格。结果,路由器自动建立标签交换路径(lsp),作为mpls环的组件,用于环网络20内的数据包传输。这些lsp可能是流量工程。

如本文所述,在示例实现方式中,mpls环可以如下定义。给定图g=(v,e),其中,v是一组顶点(或节点),e是一组有向边(或链路),环r(例如,环网络20)是节点序列<r0,r1,r2,…,rn>,其中,n是环中的环节点的数量。环节点是路由器;链路是路由器之间的接口(例如,链路21)。如本文所使用的,r0是给定mpls环的集线器节点,并且也可以表示为rn。即,mpls环的集线器节点(hubnode)即是mpls环中的第0个节点也是第n个节点。在图1的示例中,用于环网络20的mpls环在相应路由器r0处具有集线器节点,该路由器也可以称为路由器r10(表示为“r0(10)”,因为在示例环网络中,n=10。对于节点序列中的每个节点i,链路(ri,r(i+1))和链路(r(i+1),ri)都在链路组e中。即,给定mpls环中的每个节点通过一对双向链路与环中的下一个和上一个节点相邻。mpls环中除了集线器节点之外的相邻节点的索引在该示例中的差距是增加1,并且在从集线器节点r0到节点r(n-1)的下游(ds)方向(在图1的示例中顺时针)上增加。通过示例,另一方向表示为上游方向(逆时针)。例如,在图1的示例中,在环网络20的mpls环的下游方向上流动的通信以顺时针方向遍历路由器r0至r9,因为这是路由器的索引以递增顺序定义的方向。在题为“pathprotectionforring-basedmulti-protocollabelswitchedpaths”的美国专利号9,413,605和kompella等人的“resilientmplsrings”,draft-ietf-mpls-rmr-05,internet-draft,2018年1月3日中,进一步描述了环网络的其他示例,这两个专利的全部内容都通过引用结合于此。

环网络20的mpls环由服务提供商(sp)网络或管理域上的唯一环标识符来标识。在图1的该示例中,环网络20被分配了环形标识符22。可以通过将环标识符和索引分配给形成mpls环的每个节点,并将环标识符分配给环节点之间的链路,来构造mpls环,这些链路将用于承载mpls环的流量。在本文的一些示例中,一对环节点之间的环链路可以被视为单个链路,尽管这些链路可以在第二层(2)(例如,作为链路聚合组)捆绑,或者在第三层(l3)作为链路捆绑显式捆绑,或者由于具有相同的环标识符而隐式捆绑。

管理员或网络管理系统可以手动定义mpls环,例如,通过分配新的未分配的环标识符,分配集线器节点(例如,路由器r0),以及分配属于mpls环的链路。路由器还可以通过发现的方式自动定义mpls环,例如,使用本文描述的对内部网关协议(igp)的扩展。作为一个示例,igp可用于发现环邻居和环接口。基于网络拓扑,每个节点可以自主地推选或者可以被配置为指定其单独接口中的哪一个耦接到形成正在建立的mpls环的链路。例如,使用igp,环网络20的每个路由器r0至r9声明自己是mpls环的成员,并声明其所属mpls环的环标识符。mpls环的集线器路由器r0还基于发现的邻居声明自己是环中最大的索引(r0→rn),这允许mpls环动态地形成闭环。

在许多情况下,在定义mpls环时,服务提供商网络可以包括其他非环节点,例如,服务节点和接入节点,这些节点可以附接到mpls环,但不是mpls环的一部分。在图1的示例中,网络系统10包括单宿主到路由器r2的接入节点an1,单宿主到路由器r7的an2。尽管图1中未示出,但是其他非环节点可以连接到客户网络13a至13e和公共网络11。这些非环节点可以距离mpls环一个或多个跳。

在示例实现方式中,路由器信令通知的环lsp在相同路由器(或环节点)ri处开始和结束。如本文所使用的,ri是环lsp的锚路由器,即,在环lsp开始和结束的地方。每个路由器都是在具有n个节点的环上定义的n个环lsp中的一个的锚。每个锚节点创建寻址到自身的lsp。这个环lsp可以包含一对反向旋转单播lsp。

本文描述的环lsp的一个示例是mp2p环lsp,其在mpls环的相同环节点上开始和结束,称为环lsp锚,并且仅遍历mpls环的路由器。在图1的示例中,为环网络20构造的mpls环包括以路由器r9开始和结束的多点对点(mp2p)环lsp24。即,mp2p环lsp24包括两个反向旋转单播lsp,其中,路由器r9是出口。流量可以从路由器r0至r8中的任一个进入环网络20,并在mp2p环lsp24上以顺时针方向和/或逆时针方向上向出口路由器r9发送。尽管图1用单个mp2p环lsp示出,mpls环内的每个路由器可以启动一个或多个mp2p环lsp的建立,每个mp2p环lsp具有一不同的环lsp标识符。

在建立环网络20的一个或多个环lsp时,路由器r0至r9中的每一个通过上述自动发现或配置获知其是所定义的环的路由器。路由器r0至r9中的每一个都能够习得环上其他路由器的索引,并且能够自主地选择用于环的接口和链路。此外,路由器r0至r9中的每一个都自动信号通知环网络的每个单独的环lsp。例如,路由器r9可以使用资源预留协议,例如,具有流量工程扩展的资源预留协议(rsvp-te),以建立从所有路由器r0至r8延伸到出口路由器r9的mp2p环lsp24。在d.awduche等人的“rsvp-te:extensionstorsvpforlsptunnels”,requestforcomments3209,2001年12月中描述了rsvp-te的进一步示例,其全部内容通过引用结合于此。路由器r9可以使用rsvp-te来保持与对等路由器(例如,路由器r0至r8)的路由通信会话,并输出控制平面消息,例如,rsvppath消息和rsvpresv消息,以信号通知环lsp的成员资格。为了说明的目的,关于rsvp-te协议描述了图1,但是路由器r0至r9可以使用非资源预留协议机制,例如,标签分发协议(ldp),用于建立mp2p环lsp24。

在信令mp2p环lsp24时,路由器r9可以创建在相反方向传播的两个路径消息。即,资源预留请求消息(例如,rsvppath消息)沿下游方向(顺时针和逆时针)发送,并包含通告路由器的相应上游标签和环lsp将承载的数据的任何流量规范(tspec)。以这种方式,rsvppath消息自动创建双向环lsp的上游lsp,例如,mp2p环lsp24。rsvpresv消息由环网络的每个路由器自动发布,并在上游方向发送。rsvpresv消息可以通告针对发送路由器的下游标签,包括上游tspec,并自动创建mp2p环lsp24的下游lsp。在deshmukh,a.等人的“rsvpextensionsforrmr”,draft-deshmukh-mpls-rsvp-rmr-extension-01,internet-draft,2017年9月8日中,进一步描述环网络的配置的额外示例,其全部内容通过引用结合于此。

在图1的示例中,路由器r9可以作为mp2p环lsp24的唯一出口路由器来操作。因为在该示例实现方式中,mp2p环lsp24是双向的多点对点lsp,所以mp2p环lsp24允许环网络20内的任何路由器(例如,r0至r8)作为入口来操作,以将数据包流量提供到mp2p环lsp24内,用于绕环网络20的上游方向和/或下游方向上传送到出口路由器r9。例如,添加到环的下游流量可能从连接到路由器r0至r8路由器的非环节点到达路由器r0至r8中的任何一个。下游流量从其上游邻居到达环网络20中的每个路由器,该路由器位于一个或多个被选择为环形组件的接口上。mp2p环lsp24的出口路由器r9接收来自其上游邻居的所有流量,并将流量发送到连接到路由器r9并可通过路由器r9到达的非环节点(例如,客户网络13e)。

尽管环网络20被示出为包括单个mp2p环lsp24,但是在一些示例中,环网络20可以包括多个mp2p环。在这种情况下,每个mp2p环都有自己的一组环lsp,终止于充当出口路由器的相关节点。例如,可以利用r2至r4建立第二mp2p环lsp(未示出),其中,第二mp2p环lsp终止于用于第二mp2p环lsp的出口路由器(例如,r2)。

在一些示例中,路由器r9也可以作为p2mplsp(例如,p2mplsp28)的入口路由器来操作,以将数据包流量提供到p2mplsp内,用于传输到环网络20中的一个或多个出口路由器。与点对多点环lsp手动配置或者具有更重的信令机制(例如,bgp等路由协议)的系统(这将需要在环上的每个中间路由器处存储状态和控制平面的参与)不同,本文描述的技术描述了具有更少的配置开销的、mp2p环lsp的入口路由器检测对加入p2mplsp感兴趣的一个或多个出口路由器。

根据本文描述的技术,入口路由器r9可以通过习得(例如)感兴趣的出口路由器的ip地址并通过接收指示感兴趣的出口装置的ip地址的p2mp出口标识消息来检测对加入p2mplsp感兴趣的一个或多个出口路由器。如下文进一步描述的,对成为p2mplsp28的出口路由器感兴趣的mp2p环lsp24的一个或多个入口路由器可以在mp2p环lsp24上向出口路由器r9输出各自的p2mp出口标识消息,表明其加入p2mplsp28的请求。

作为一个示例,不在环网络20上并且耦接到客户网络13b(例如,an1)的网络装置(“感兴趣的接收器”)可以请求接收多播流量(路由器r9对于该多播流量为入口)。在一些示例中,路由器r2可以从感兴趣的接收器an1接收表明an1对接收多播流量感兴趣的消息。在一些示例中,路由器r2可以根据igmp协议从感兴趣的接收器an1接收igmp成员资格报告消息,该消息表明an1对接收多播流量感兴趣。在一些示例中,路由器r2可以使用igmp代理在r2的上游接口上代表an1向p2mplsp28的入口路由器r9发送未经请求(unsolicited)的igmp成员资格报告消息。以这种方式,r2在其上游接口上执行igmp任务的宿主部分(hostportion)。在一些示例中,路由器r2可以根据pim协议从感兴趣的接收器an1接收协议无关多播(pim)消息,该消息表明an1对接收多播流量感兴趣。在任何情况下,路由器r2可以确定接收器an1对从多播源接收多播流量感兴趣,其中,路由器r9是p2mplsp28的入口。

响应于从感兴趣的接收器接收到该消息,路由器r2然后可以构造p2mp出口标识消息26a,该消息表明路由器r2对加入p2mplsp28作为出口路由器感兴趣。例如,路由器r2可以将p2mp出口标识消息26a封装在mpls数据包内,该mpls数据包带有与mp2p环lsp24相关联的外部mpls标签。例如,p2mp出口标识消息可以包括igmp成员资格报告消息或者能够向p2mplsp的入口路由器通知路由器希望加入p2mplsp的任何其他消息。

路由器r2可以向路由器r9发送p2mp出口标识消息26a。例如,路由器r2可以将p2mp出口标识消息26a输出到mp2p环lsp24中,其中,路由器r9是mp2p环lsp24的唯一出口路由器。因为p2mp出口标识消息封装在注入mp2p环内的mpls数据包内,所以围绕该环的中间路由器可以简单地交换mpls数据包上的外部mpls标签,而不必检查数据包的有效载荷内容或存储任何新的路由状态。

路由器r9可以从mp2p环lsp24上的路由器r2接收p2mp出口标识消息26a,并且可以添加路由器r2作为p2mplsp28的出口路由器。例如,响应于在mp2p环lsp24上从路由器r2接收到p2mp出口标识消息26a,路由器r9可以从p2mp出口标识消息26a的源ip地址确定路由器r2提供p2mp出口标识消息26a。路由器r9可以更新存储的路由信息,以添加路由器r2作为p2mplsp28的出口路由器。

不在环网络20上并且耦接到客户网络13d的另一感兴趣的接收器也可以请求接收多播流量(对于该多播流量,路由器r9是入口)。路由器r7可以确定接收器对从多播源接收多播流量感兴趣,其中,路由器r9是p2mplsp28的入口。

路由器r7然后可以构造p2mp出口标识消息26b,该消息表明路由器r7感兴趣加入p2mplsp28作为出口路由器。例如,路由器r7可以将p2mp出口标识消息26b封装在mpls数据包内,该mpls数据包带有与mp2p环lsp24相关联的外部mpls标签。

路由器r2可以通过将p2mp出口标识消息26b输出到mp2p环lsp24中,向路由器r9发送封装在mpls数据包内的p2mp出口标识消息26b,其中,路由器r9是mp2p环lsp24的唯一出口路由器。

路由器r9可以在mp2p环lsp24上从路由器r7接收p2mp出口标识消息26b,并且可以添加路由器r7作为p2mplsp28的出口路由器。例如,响应于在mp2p环lsp24上从路由器r7接收到p2mp出口标识消息26b,路由器r9可以从p2mp出口标识消息26b的源ip地址确定路由器r7提供(sourced)该p2mp出口标识消息26b。

响应于添加路由器r2和r7作为p2mplsp28的出口路由器,路由器r9可以用路由器r2和r7作为出口路由器,来信令(例如,通过发送rsvp路径消息)p2mplsp28。

当路由器r2或r7不再作为p2mplsp28的出口路由器来操作,即,r2或r7从其感兴趣的接收器接收消息并且不再具有与p2mplsp28相关联的多播源和组的任何感兴趣的接收器时,路由器r2或r7可以向p2mplsp28的路由器r9发送表明消息(例如,igmpv2或igmpv3leave消息),以离开p2mplsp。例如,路由器r2可以在mp2p环lsp24(其中,路由器r9是出口)上发送igmpleave消息。

以这种方式,p2mplsp28的入口路由器r9可以检测对加入p2mplsp28感兴趣的出口路由器,例如,出口路由器r2和r7,而无需显式配置,并且不必在入口路由器r9和出口路由器r2和r7之外的路由器处创建控制平面状态,从而减少配置p2mplsp28的配置开销。

图2是示出根据本文描述的技术的检测对加入p2mplsp感兴趣的一个或多个出口路由器的另一示例的框图。除了如下所述之外,图2的环网络20类似于图1的环网络20。图2示出了具有mp2p环lsp24的环网络20,其中,路由器r9是唯一出口。路由器r0至r8都能够为mp2p环lsp24提供数据包流量,即,作为入口路由器来操作。尽管在图2中未示出,但是可以为其他相应路由器r0至r8中的每一个自动创建类似的对应环lsp。

在图2的示例中,路由器r0、r2、r4和r7(在本文统称为“潜在p2mp出口路由器”)可以均标识一个或多个相应的感兴趣的接收器,用于从特定多播组(其中,路由器r9是p2mplsp28的入口路由器)的多播源接收多播流量。潜在出口路由器可以均向路由器r9发送相应的p2mp出口标识消息,例如,p2mp出口标识消息26a至26d(统称为“p2mp出口标识消息26”),使得路由器r9可以添加路由器r0、r2、r4和r7,作为p2mplsp28的出口路由器。

在图2的示例中,路由器r0可以构造p2mp出口标识消息26a,并将p2mp出口标识消息26a发送到路由器r9,使得路由器r9可以添加路由器r0,作为p2mplsp28的出口。例如,路由器r0可以将p2mp出口标识消息26a封装在mpls数据包内(该mpls数据包带有与mp2p环lsp24相关联的外部mpls标签),并且可以将p2mp出口标识消息26a输出到mp2p环lsp24中。

作为mp2p环lsp24的唯一出口的路由器r9可以从路由器r0接收p2mp出口标识消息26a,并且可以添加路由器r0,作为p2mplsp28的出口路由器。例如,响应于接收到p2mp出口标识消息26a,路由器r9可以根据p2mp出口标识消息26a的源地址确定路由器r0发送了p2mp出口标识消息26a。路由器r9可以更新所存储的路由信息,以添加路由器r0,作为p2mplsp28的出口路由器。

在一些示例中,尚未建立p2mplsp28。在该示例中,出口路由器r9可以等待信令(例如,通过发送rsvppath消息)p2mplsp28,直到路由器r9接收到至少两个以上p2mp出口标识消息。

然后,路由器r2可以构造p2mp出口标识消息26b,并将p2mp出口标识消息26b发送到路由器r9,使得路由器r9可以添加路由器r2,作为p2mplsp28的出口。例如,路由器r2可以将p2mp出口标识消息26b封装在mpls数据包内(mpls数据包带有与mp2p环lsp24相关联的外部mpls标签),并且可以将p2mp出口标识消息26b输出到mp2p环lsp24中。

作为mp2p环lsp24的唯一出口的路由器r9可以从路由器r2接收p2mp出口标识消息26b,并且可以添加路由器r2,作为p2mplsp28的出口路由器。例如,响应于接收到p2mp出口标识消息26b,路由器r9可以根据p2mp出口标识消息26b的源地址确定路由器r2发送了p2mp出口标识消息26b。路由器r9可以更新所存储的路由信息,以添加路由器r2作为p2mplsp28的出口路由器。

在该示例中,出口路由器r9可以信令(例如,通过发送rsvp路径消息)p2mplsp28,因为路由器r9已经接收到至少两个以上p2mp出口标识消息(例如,p2mp出口标识消息26a和26b)。在该示例中,路由器r9可以选择一个方向(例如,顺时针或逆时针),在该方向上绕环网络20向路由器r0和r2发送p2mp数据流量,并在所选择的方向上向路由器r0和r2发送相应的新资源预留请求消息(例如,rsvp-tepath消息),以信令向p2mplsp28添加分别向路由器r0和r2带来流量的分支。

路由器r9可以确定以顺时针方向和/或逆时针方向发送多播流量。如果路由器r9确定按顺时针方向发送多播流量,则路由器r9可以按顺时针方向发送单个新的资源预留请求消息。或者,如果路由器r9确定以逆时针方向发送多播流量,则路由器r9可以按逆时针方向发送单个新的p2mp资源预留请求消息。如果路由器r9确定以顺时针和逆时针方向发送多播流量,则路由器r9可以在每个方向发送相应的新p2mp资源预留请求消息,即,在顺时针方向发送一个rsvp-tepath消息,在逆时针方向发送另一rsvp-tepath消息。

在图2的示例中,当路由器r0和r2均接收到相应的rsvp-tepath消息时,路由器r0和r2可以根据对象确定路由器是否需要针对p2mplsp28发送rsvp-teresv消息。在一些示例中,rsvp-tepath消息可以包括表明rsvp-tepath消息对应的路径的对象。例如,该对象可以包括关于多播源和组的信息。

路由器r9可以从路由器r0和r2中的每一个接收rsvp-teresv消息。作为响应,路由器r9可以完成建立到路由器r0和r2的p2mplsp28。

在另一示例中,路由器r4可以构造p2mp出口标识消息26c,并将p2mp出口标识消息26c发送到路由器r9,使得路由器r9可以添加路由器r4,作为p2mplsp28的出口。例如,路由器r4可以将p2mp出口标识消息26c封装在mpls数据包内(mpls数据包带有与mp2p环lsp24相关联的外部mpls标签),并且可以将p2mp出口标识消息26c输出到mp2p环lsp24中。

作为mp2p环lsp24的唯一出口的路由器r9可以从路由器r4接收p2mp出口标识消息26c,并且可以添加路由器r4作为p2mplsp28的出口路由器。例如,响应于接收到p2mp出口标识消息26c,路由器r9可以根据p2mp出口标识消息26c的源地址确定路由器r4发送了p2mp出口标识消息26c。路由器r9可以更新存储的路由信息,以添加路由器r4作为p2mplsp28的出口路由器。

在一些示例中,在r9从路由器r4接收p2mp出口标识消息26c时,可能已经响应于接收p2mp出口标识消息26a和26b而建立p2mplsp28。在该示例中,路由器r9可以选择一个方向(例如,如上所述),在该方向上,绕环网络20向新的出口路由器r4发送流量,并且在所选择的方向上向路由器r4发送新的资源预留请求消息(例如,rsvp-tepath消息),以信令向p2mplsp28添加向路由器r4带来流量的分支。

在另一示例中,路由器r7可以向路由器r9发送p2mp出口标识消息26d,使得路由器r9可以添加路由器r7作为p2mplsp28的出口。例如,路由器r7可以将p2mp出口标识消息26d封装在mpls数据包内(mpls数据包带有与mp2p环lsp24相关联的外部mpls标签),并且可以将p2mp出口标识消息26d输出到mp2p环lsp24中。

作为mp2p环lsp24的唯一出口的路由器r9可以从路由器r7接收p2mp出口标识消息26d,并且可以添加路由器r7作为p2mplsp28的出口路由器。例如,响应于接收到p2mp出口标识消息26d,路由器r9可以根据p2mp出口标识消息26d的源地址确定路由器r7发送了p2mp出口标识消息26d。路由器r9可以更新存储的路由信息,以添加路由器r7作为p2mplsp28的出口路由器。

在一些示例中,在r9从路由器r7接收p2mp出口标识消息26d时,可能已经响应于接收p2mp出口标识消息26a、26b和/或26c而建立p2mplsp28。在该示例中,路由器r9可以选择一个方向(例如,如上所述),在该方向上绕环网络20向路由器r7发送流量,并且在所选择的方向上向路由器r7发送新的资源预留请求消息(例如,rsvp-tepath消息),以信令向p2mplsp28添加向路由器r7带来流量的分支。

图3是示出能够实现本文描述的技术的示例装置(例如,路由器或网关)的框图。路由器80可以包括网络(例如,网络系统10)中的任何路由器。例如,路由器80可以包括网关、边缘或接入路由器、核心路由器或在本文示出的根据在本文描述的技术使用环lsp转发mpls流量的其他装置。

在图3的示例中,路由器80包括控制单元82,其中,路由组件86为路由器80提供控制平面功能。路由器80还包括多个数据包处理器,例如,数据包转发引擎114a至114n(“pfe114”)和交换结构118,其共同提供用于转发网络流量的数据平面。pfe114经由接口卡112(“ifc112”)接收和发送数据包。在其他实施例中,每个pfe114可以包括更多或更少的ifc。尽管未示出,但是pfe114可以均包括中央处理单元(cpu)和存储器。在该示例中,路由组件86通过专用内部通信链路120连接到每个pfe114。例如,专用链路120可以包括千兆以太网连接。交换结构118提供高速互连,用于在pfe114之间转发输入的数据包,用于在网络上传输。题为“multi-chassisrouterwithmultiplexedopticalinterconnects”的美国专利8,050,559描述了一种多机架路由器,其中,多级交换结构(例如,3级clos交换结构)用作高端转发平面,以在多机架路由器的多个路由节点之间中继数据包。美国专利8,050,559的全部内容通过引用结合于此。

路由组件86提供了用于执行各种协议89的操作环境,这些协议可以包括具有由计算环境执行的指令的软件进程。如下文进一步详细描述的,协议89提供控制平面功能,用于以路由表或其他结构的形式存储网络拓扑,执行路由协议,以与对等路由装置通信并维持和更新路由表,并且提供管理接口,以允许用户访问和配置路由器80。控制单元82为路由组件86提供操作环境,并且可以单独以软件或硬件来实现,或者可以以软件、硬件或固件的组合来实现。例如,控制单元82可以包括执行软件指令的一个或多个处理器。在这种情况下,路由组件86可以包括各种守护程序(daemon)或软件模块(例如,一个或多个路由协议进程、用户接口等),并且控制单元82可以包括用于存储可执行指令的计算机可读存储介质,例如,计算机存储器或硬盘。

命令线路接口守护程序92(“cli92”)提供了接口,管理员或其他管理实体可以通过该接口使用基于文本的命令修改路由器80的配置。简单网络管理协议守护程序93(“snmp93”)包括snmp代理,该snmp代理从管理实体接收snmp命令,以设置和检索路由器80的配置和管理信息。例如,使用cli92和snmp93,管理实体可以启用/禁用和配置服务、安装路由、启用/禁用和配置速率限制器以及配置接口。

一个或多个路由协议(例如,igp94)以描述网络拓扑的路由信息库(rib)104的形式维持路由信息,并根据路由信息导出转发信息库(fib)106。在一些示例中,路由器80还可以维持存储mpls标签的标签fib,其可以是单独的数据结构或fib106的一部分。通常,路由信息表示网络的整体拓扑。(例如,通过应用编程接口(api)调用)igp94与内核101交互,以基于路由器80接收的路由协议消息更新rib104。rib104可以包括定义网络拓扑的信息,包括一个或多个路由表和/或链路状态数据库。通常,路由信息定义通过网络到网络内经由距离矢量路由协议(例如,bgp)习得的目的地/前缀的路由(即,一系列下一跳),或者定义具有使用链路状态路由协议(例如,is-is或ospf)习得的互连链路的网络拓扑。相反,fib106是基于网络内某些路由的选择而生成的,并且将数据包密钥信息(例如,目的地信息和来自数据包报头的其他选择信息)映射到一个或多个特定的下一跳,并最终映射到ifc112的一个或多个特定输出接口端口。路由组件86可以生成基数树形式的fib,该基数树具有表示网络内目的地的叶节点。

路由组件86还提供一个或多个流量工程协议的操作环境,以建立隧道,用于通过与不同服务链相关联的有序的一组服务节点转发用户数据包。例如,rsvp-te95可以执行具有流量工程扩展的资源预留协议,以交换流量工程(te)信息,例如,用于实现基于标签的数据包转发的mpls标签。作为另一示例,路由组件86可以执行标签分发协议96,以信令mpls环和环lsp,如本文所述。作为另一示例,路由组件86可以使用gre或基于ip的隧道协议来建立流量工程隧道。路由组件86可以维持例如流量工程数据库(ted)109,以存储流量工程数据。

rsvp-te95可以维持与对等路由器的路由通信会话,并输出控制平面信令消息,例如,资源预留请求消息和资源预留回复消息,例如,本文描述的rsvppath消息和rsvpresv消息,以信令环lsp(例如,图1的mp2p环lsp24)的成员资格。此外,rsvp-te95可以用从对等路由器习得的lsp环的转发标签对rib104和/或fib106进行编程,这进而促使内核101用主要和备用转发条目对转发asic116进行编程,用于转发mpls流量,如本文所述。在一些示例中,rsvp-te95可以基于例如经由cli92或snmp93接收的供应信息来实现lsp环的自动带宽管理功能。另外,或者可替代地,ldp96可以执行这些功能。igp94可以扩展,用于自动发现mpls环和环lsp。

路由组件86将表示fib106的软件副本的数据传送到每个pfe114中,以控制流量在数据平面内的转发。这允许更新存储在每个pfe114的存储器(例如,ram)中的软件fib,而不会降低路由器80的数据包转发性能。在一些情况下,路由组件86可以为每个相应的pfe114导出单独的和不同的软件fib。此外,一个或多个pfe114包括专用集成电路(asic116),pfe114基于复制到每个相应pfe114的软件fib(即,软件fib的硬件版本)利用fib的硬件副本来编程这些专用集成电路。

例如,内核101在主微处理器102上执行,并且可以包括例如unix操作系统衍生物,例如,linux或berkeley软件分发(bsd)。内核101处理来自igp94和rsvp-te95的内核调用,以基于rib104中表示的网络拓扑生成fib106形式的转发信息,即,执行路由解析和路径选择。通常,内核101以基数或其他查找树的形式生成fib106,以将数据包信息(例如,具有目的地信息和/或标签堆栈的报头信息)映射到下一跳,并最终映射到与相应pfe114相关联的接口卡的接口端口。fib106可以将例如网络目的地与特定的下一跳和相应的ifc112相关联。对于mpls相关的流量转发,对于给定的fec,fib106存储标签信息,该标签信息包括输入标签、输出标签和数据包的下一跳。

执行内核101的主微处理器102对pfe114编程,以安装fib106的副本。微处理器102可以包括一个或多个通用或专用处理器,例如,数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或任何其他等效逻辑器件。因此,本文使用的术语“处理器”或“控制器”可以指任何一个或多个前述结构或可操作以执行本文描述的技术的任何其他结构。在美国专利7,990,993中提供了示例路由器的示例细节,其中,处理器对一个或多个转发组件进行编程,该专利的全部内容通过引用结合于此。

在该示例中,asic116是可由在每个pfe114上执行的从微处理器编程配置的微码控制的芯片组(即,转发电路)。当转发数据包时,每个asic116的控制逻辑遍历从路由组件86接收的转发信息(fib106),并且在到达数据包的fib条目(例如,叶节点)时,微码实现的控制逻辑自动选择转发下一跳,并且根据在下一跳内定义的操作,处理数据包。以这种方式,在数据包遍历路由器80的内部架构时,pfe114的asic116通过在相应内部数据包转发路径上对每个数据包执行一系列操作来处理数据包。例如,可以基于相应的入口接口、入口pfe114、出口pfe30、出口接口或数据包在出口之前定向到的路由器80的其他组件中的任何一个,例如,一个或多个服务卡,对每个数据包执行操作。pfe114均包括转发结构,当执行时,这些转发结构检查每个数据包的内容(或另一数据包属性,例如,输入接口),并在此基础上,做出转发决策,应用过滤器和/或执行例如计费、管理、流量分析和负载平衡。

在一个示例中,每个pfe114将转发结构设置为下一跳数据,这些数据可以沿着网络装置的内部数据包转发路径作为一系列“跳”链接在一起。在许多情况下,转发结构在asic116的内部存储器中执行查找操作,其中,可以针对树(或trie)搜索、表(或索引)搜索来执行查找。可以用下一跳指定的其他示例操作包括过滤器确定和应用或者速率限制器确定和应用。查找操作在查找数据结构(例如,查找树)内定位匹配数据包内容或数据包或数据包流的另一属性(例如,数据包的入站接口)的项。根据asic116内的下一跳转发结构定义的操作的数据包处理的结果确定pfe114从一个ifc112上的输入接口向一个ifc112上的输出接口转发或以其他方式处理数据包的方式。

通常,内核101可以生成fib106,从而对asic116编程,以存储与每个服务链相关联的转发结构。例如,asic116可以配置有转发信息,该转发信息指定流量工程信息,例如,ip报头信息或mpls标签,以及用于促使可编程asic116根据转发信息封装数据包的操作。

路由器80可以包括根据本文描述的技术操作的出口标识单元120。在路由器80可以代表对加入p2mplsp28感兴趣的出口路由器(例如,图2的路由器r0、r2、r4和/或r7)的一些示例中,路由器80可以包括出口标识单元120,用于构造和发送p2mp出口标识消息,以添加路由器80作为p2mplsp的出口路由器。例如,路由器80可以确定其具有对从多播源(路由器r9是p2mplsp28的入口路由器)接收多播流量感兴趣的接收器。例如,路由器80可以实现igmp97,并且可以从客户网络13b的非环、感兴趣的接收器接收igmp成员资格报告消息,该消息表明该非环接收器对从多播源(其中,路由器r9是p2mplsp28的入口路由器)多播流量感兴趣。可替代地或另外,路由器80可以实现pim98,并且可以从客户网络13b的非环、感兴趣的接收器接收pim加入消息,该消息表明非环接收器对从多播源接收多播流量感兴趣,其中,路由器r9是p2mplsp28的入口路由器。路由器80可以存储数据结构(未示出),该数据结构包括多播源和组到p2mplsp28的映射,并且可以执行在接收到的igmp成员资格报告消息或pim加入消息中表明的多播组(和源)的数据结构的查找,以标识非环接收器将从多播源接收流量的p2mplsp28。在一些示例中,数据结构可以将多个不同的多播源和组对映射到存在于环网络上的相应不同的p2mplsp。

作为响应,出口标识单元120可以例如生成p2mp出口标识消息,以通知路由器r9路由器80请求加入p2mplsp28,作为出口路由器。例如,出口标识单元120可以使用igmp97来生成igmp成员资格报告消息,以通知路由器r9添加路由器80作为p2mplsp28的出口路由器。在一些示例中,路由器80可以根据igmp97使用igmp代理,路由器80可以代表其宿主(例如,客户边缘路由器或接入节点)向p2mplsp28的入口路由器r9发送未经请求的igmp成员资格报告消息。

出口标识单元120可以将p2mp出口标识消息(例如,igmp成员资格报告消息)封装在带有与mp2p环lsp24相关联的外部mpls标签的mpls数据包内。例如,出口标识单元120可以查找rib104和/或fib106,以确定与mp2p环lsp24相关联的mpls标签。出口标识单元120可以指示路由器80通过将p2mp出口标识消息输出到mp2p环lsp24中来将p2mp出口标识消息发送到mp2p环lsp28的入口路由器r9,其中,路由器r9是mp2p环lsp24的唯一出口路由器。

在一些示例中,出口标识单元120还可以确定路由器80不再具有p2mplsp28的任何感兴趣的出口路由器。例如,当路由器80不再具有多播组的任何感兴趣的接收器时(例如,通过接收表明期望接收器离开该组的igmp或pim消息),出口标识单元120可以查找多播源和组的入口路由器r9,并将p2mp离开消息(例如,igmp或pim离开消息)发送到mp2p环lsp24中,其中,路由器r9是唯一出口。

在路由器80是接收p2mp出口标识消息的p2mplsp28的入口(例如,图2的路由器r9)的一些示例中,出口标识单元120被配置为从一个或多个p2mp出口标识消息中确定p2mplsp28的一个或多个感兴趣的出口路由器的ip地址。例如,响应于接收到一个或多个p2mp出口标识消息,出口标识单元120可以从p2mp出口标识消息中的源ip地址确定感兴趣的出口路由器。出口标识单元120可以更新存储的路由信息,例如,rib104和fib106,以添加新的出口路由器,作为p2mplsp28的出口路由器。更具体地,在一些示例中,出口标识单元120可以调用rsvp-te95来发送资源预留请求消息(例如,rsvp-tepath消息),以信令p2mplsp28到新的出口路由器的新分支,并且继而可以接收表明资源已经预留给p2mplsp28的新分支的资源预留回复消息(例如,rsvp-teresv消息)。在一些示例中,在发送资源预留请求消息以添加新的出口路由器作为p2mplsp28的出口之前,出口标识单元120可以确定在环网络20上发送资源预留请求消息的方向。例如,出口标识单元120可以响应于接收到p2mp出口标识消息,选择发送资源预留请求消息的环网络的方向(例如,顺时针或逆时针)。

路由器80的出口标识单元120可以确定环网络中的出口路由器希望离开p2mplsp28。在该示例中,路由器80可以在mp2p环lsp24上接收p2mp离开消息。路由器80的出口标识单元120可以更新fib106和/或rib104,以移除p2mplsp28去往出口路由器(例如,路由器r2)的分支。路由器80可以发送例如rsvppathtear消息,以拆除p2mplsp28的与出口路由器r2相关联的分支,并且不再将p2mplsp28的多播流量转发到出口路由器r2。

仅出于示例性目的示出图3所示的路由器80的架构。本公开不限于该架构。在其他示例中,路由器80可以以多种方式配置。在一个示例中,控制单元82的一些功能可以分布在ifc112内。控制单元82可以单独以软件或硬件来实现,或者可以以软件、硬件或固件的组合来实现。例如,控制单元82可以包括处理器、可编程处理器、通用处理器、处理电路、集成电路、专用集成电路(asic)、现场可编程门阵列(fpga)或能够实现本文描述的技术的任何类型的硬件单元中的一个或多个。控制单元82还可以包括一个或多个处理器,其执行存储在计算机可读存储介质上的软件指令,例如,随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、非易失性随机存取存储器(nvram)、闪存、硬盘、cd-rom、软盘、盒式磁带、磁介质、光学介质或其他计算机可读存储介质。在一些情况下,计算机可读存储介质可以包括促使可编程处理器执行本文描述的技术的指令。

图4是示出根据本文描述的技术的网络装置(例如,路由器)的示例操作的流程图。尽管关于图1和2的路由器r2和r9以及图3的路由器80描述了图4,但是该流程图适用于环网络中的任何路由器。

路由器执行路由协议(例如,igp),以使用igp发现也被指派为与环网络相关联的mpls环的成员的相邻路由器。例如,路由器可以从两个以上路由器接收增强型igp消息,并且基于增强型igp消息内的索引,为mpls环的环lsp选择一个上游相邻路由器和一个下游相邻路由器。

响应于发现作为mpls环的成员的相邻路由器,路由器为mpls环建立mp2p环lsp,例如,mp2p环lsp24。mp2p环lsp24被配置为将mpls数据包绕环网络传输到一个不同的路由器,该路由器被指派为相应环lsp的唯一出口路由器。例如,路由器r9被指派为mp2p环lsp24的出口路由器。环网络内的任何路由器都可以作为入口来操作,以将数据包流量提供到mp2p环lsp24内,用于传输到出口路由器r9。

在一些示例中,mp2p环lsp24的出口路由器r9可以作为p2mplsp的入口路由器来操作。在该示例中,出口路由器(例如,路由器r2)可以标识p2mplsp(例如,p2mplsp28),用于从多播源和组接收多播流量,其中,路由器r2具有感兴趣的接收器,并且路由器r9是p2mplsp的入口路由器(402)。例如,路由器r2可以实现igmp,并且可以从非环接收器(或从代理)接收一个或多个igmp成员资格报告消息,该消息表明非环接收器对从路由器r9是入口路由器的多播源接收多播流量感兴趣,其中,igmp成员资格报告消息表明多播源。可替代地或另外,路由器r2可以实现pim,并且可以从非环接收器接收指定了源和组的一个或多个pim加入消息,该非环接收器对从路由器r9是入口路由器的多播源接收多播流量感兴趣,其中,pim消息表明多播源。

路由器r2可以经由图3的出口标识单元120发送p2mp出口标识消息,作为添加路由器r2为p2mplsp的出口的请求。为了发送p2mp出口标识消息,路由器r2将p2mp出口标识消息输出到mp2p环lsp24中,其中,路由器r9是mp2p环lsp24的唯一出口(404)。例如,路由器r2的出口标识单元120可以指示路由器r2封装与mp2p环lsp24相关联的mpls标签。例如,路由器r2可以将p2mp出口标识消息封装在mpls数据包内,mpls数据包带有与mp2p环lsp相关联的外部mpls标签。路由器r2然后可以将p2mp出口标识消息输出到mp2p环lsp24中,其中,路由器r9是mp2p环lsp24的唯一出口。

路由器r9可以在mp2p环lsp24上接收p2mp出口标识消息,以添加路由器r2作为p2mplsp28的出口(406)。作为mp2p环lsp24的唯一出口路由器,路由器r9可以在mp2p环lsp24上从对加入p2mplsp28作为出口路由器的感兴趣的路由器接收一个或多个p2mp出口标识消息。

响应于接收到p2mp出口标识消息,路由器r9添加路由器r2,作为p2mplsp28的出口路由器(408)。例如,路由器r9可以根据p2mp出口标识消息的源地址确定p2mp出口标识消息源自路由器r2。路由器r9可以更新其rib和/或fib,以添加路由器r2作为p2mplsp28的出口路由器。路由器r9然后可以信令p2mplsp28。例如,路由器r9的出口标识单元120可以调用rsvp-te来发送资源预留请求消息(例如,rsvp-tepath消息),以信令p2mplsp28到新的出口路由器的新分支,并且继而可以接收资源预留回复消息(例如,rsvp-teresv消息),该消息表明沿着路径的跳已经为p2mplsp28的新分支预留了资源并存储了mpls标签状态。入口路由器r9可以随后将其从多播源接收的多播流量发送到p2mplsp28上,并且沿着新分支的路由器沿着该路径转发多播流量,直到多播流量到达新的出口路由器(例如,路由器r2)。

根据示例,本文描述的任何技术的某些动作或事件可以以不同的顺序执行,可以添加、合并或完全省略(例如,并非所有描述的动作或事件对于技术的实践都是必要的)。此外,在某些示例中,动作或事件可以同时执行,例如,通过多线程处理、中断处理或多个处理器,而不是依次执行。

本公开中描述的技术可以至少部分地以硬件、软件、固件或其任意组合来实现。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,包括一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或任何其他等效集成或分立逻辑电路以及这些组件的任何组合。术语“处理器”或“处理电路”通常可以指任何前述逻辑电路,单独或与其他逻辑电路或任何其他等效电路组合。包括硬件的控制单元也可以执行本公开的一种或多种技术。

这种硬件、软件和固件可以在同一装置内或在单独的装置内实现,以支持本公开中描述的各种操作和功能。此外,所描述的单元、模块或组件中的任何一个可以一起或单独实现为分立但可互操作的逻辑装置。将不同的特征描述为模块或单元,旨在突出不同的功能方面,并不一定意味着这些模块或单元必须由单独的硬件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件组件来执行,或者集成在公共或单独的硬件或软件组件内。

本公开中描述的技术也可以在计算机可读介质中体现或编码,例如,包含指令的计算机可读存储介质。在计算机可读介质中嵌入或编码的指令可以促使可编程处理器或其他处理器执行该方法,例如,当执行指令时。计算机可读介质可以包括对应于诸如数据存储介质等有形介质的计算机可读存储介质或者包括例如根据通信协议促进计算机程序从一个地方传送到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质或(2)诸如信号或载波等通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索指令、代码和/或数据结构,用于实现本公开中描述的技术。计算机程序产品可以包括计算机可读介质。

计算机可读存储介质可以包括随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、闪存、硬盘、cd-rom、软盘、盒式磁带、磁介质、光学介质或任何其他可以用于以指令或数据结构的形式存储所需程序代码并且可以由计算机访问的介质。术语“计算机可读存储介质”是指非暂时性的有形存储介质,而不是连接、载波、信号或其他暂时性介质。

已经描述了各种示例。这些和其他示例在以下权利要求的范围内。

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