用于在MPLS分组上施加标签栈条目的装置、系统和方法与流程

文档序号:16513538发布日期:2019-01-05 09:29阅读:252来源:国知局
用于在MPLS分组上施加标签栈条目的装置、系统和方法与流程

多协议标签交换(mpls)网络通常包括促进业务从源设备流向目的设备的各种路径。在这样的mpls网络中,这些路径可以通过与路径的不同部分相对应的一系列标签而被标识和/或被表示。例如,分组可以从源设备到目标设备遍历传统的mpls网络。沿着路上,分组可以到达中间节点,中间节点将分组的现有标签交换为与lsp内的后续跃点(hop)相对应的另一标签并且然后转发分组。由于标签通常以这种方式在分组遍历传统mpls网络时被交换,所以这些路径可以被称为标签交换路径(lsp)。

lsp可以包括和/或表示网络内的各种节点。这些节点中的每个节点可以保持和/或编程相关lsp的控制和数据平面状态或数据。例如,某个网络节点可以表示100,000个lsp中的一部分。换言之,100,000个lsp可以包括和/或通过该网络节点。

在很多传统配置中,由网络节点保持的数据平面状态的数目可以与包括该网络节点的lsp的数目成正比。换言之,这样的传统配置可能要求数据平面状态保持与控制平面状态成正比。例如,在网络节点表示100,000个lsp中的一部分的情况下,当发生变化时,该网络节点可能需要通过创建、更新和/或删除这样的标签来管理数据平面中的100,000个不同的标签。结果,网络节点可以在几乎不变的基础上向数据平面添加和/或删除标签。

然而,较新的mpls技术可以使得lsp能够共享标签,使得支持mplslsp所需要的标签数目显著减少。采用这种较新的mpls技术,而不是保持与数据平面中的lsp的数目相同数目的标签,每个网络节点可能只需要保持与lsp中所包括的不同后续跃点的数目相同数目的标签。

作为具体示例,表示100,000个lsp中的一部分的网络节点可以与表示那些100,000个lsp中的一部分的10个其他节点进行对接。网络节点可能只需要保持与其他节点相对应的10个不同标签,而不是在数据平面的转发表中保持100,000个标签,从而大幅度降低了资源消耗和/或处理需求。结果,网络节点可以能够管理数据平面的转发表中的标签,而不需要如此频繁地执行更新。

在这种新的mpls技术中,入口节点(即,lsp的开始节点)可以通过在分组上施加一个或多个标签来促进沿着lsp的网络分组的传输。例如,入口节点可以在分组的头部中插入包括描述分组的预期lsp内的跃点的至少一部分标签的标签栈。当分组遍历lsp时,这些标签可以使得lsp内的传输节点能够适当地路由和/或传输分组,使得分组能够到达lsp的出口节点(即,最终节点)。

不幸的是,利用这种新的mpls技术的一些网络节点可能不能将足够数目的标签推送和/或施加到分组的标签栈上,以使得分组能够沿着整个lsp被转发。例如,传统的网络节点可以被限制为施加和/或推送5个标签栈条目。在新的mpls技术中,在分组到达与标签相关联的节点之后,标签可以从分组的标签栈中“被弹出”(例如,被删除)。因此,一旦分组已经遍历了五个跃点,分组当前所在的节点可能无法继续转发分组,而不需要分组的路径的附加知识。结果,分组可能无法到达其预期目的地。

因此,本公开标识并且解决了对于用于在mpls分组上施加标签栈条目的附加装置、系统和方法的需求。



技术实现要素:

如下面将更详细描述的,本公开总体上涉及用于在mpls分组上施加标签栈条目的装置、系统和方法。在一个示例中,用于施加这样的标签栈条目的计算机实现的方法可以包括:(1)在网络内的入口节点处接收对沿着lsp向网络内的出口节点转发分组的请求,(2)标识入口节点能够在分组的标签栈内转发的标签的数目的极限,(3)确定lsp路径内的跃点的数目超过入口节点能够转发的标签的数目的极限,并且然后响应于确定lsp内的跃点的数目超过入口节点能够转发的标签的数目的极限,(4)至少部分基于入口节点能够转发的标签的数目来选择lsp内的至少一个跃点以用作委托节点,委托节点向分组的标签栈上施加与lsp内的下游跃点相对应的至少一个标签,以及(5)沿着lsp从入口节点向委托节点转发分组,以使得当分组朝向出口节点遍历时,委托节点能够向标签栈上施加标签。

作为另一示例,一种用于实现上述方法的系统可以包括被存储在存储器中的各种模块。该系统还可以包括执行这些模块的至少一个物理处理器。例如,该系统可以包括:(1)在网络内的入口节点处接收对沿着lsp向网络内的出口节点转发分组的请求的接收模块,(2)标识入口节点能够在分组的标签栈内转发的标签的数目的极限的标识模块,(3)确定lsp内的跃点的数目超过入口节点能够转发的标签的数目的极限的确定模块;(4)至少部分基于入口节点能够转发的标签的数目来选择lsp内的至少一个跃点以用作委托节点的授权模块,委托节点向分组的标签栈上施加与lsp内的下游跃点相对应的至少一个标签,以及(5)转发模块,其沿着lsp从入口节点向委托节点转发分组,以使得当分组朝向出口节点遍历时,委托节点能够向标签栈上施加标签。

作为另一示例,一种用于实现上述方法的装置可以包括存储与网络内的lsp的部分相对应的多个标签的至少一个存储设备。在这个示例中,该装置还可以包括通信地耦合到网络节点内的存储设备的至少一个物理处理设备,其中物理处理设备(1)在网络内的入口节点处接收对沿着lsp向网络内的出口节点转发分组的请求,(2)标识入口节点能够在分组的标签栈内转发的标签的数目的极限,(3)确定lsp内的跃点的数目超过入口节点能够转发的标签的数目的极限,并且然后响应于确定lsp内的跃点的数目超过入口节点能够转发的标签的数目的极限,(4)至少部分基于入口节点能够转发的标签的数目来选择lsp内的至少一个跃点以用作委托节点,委托节点向分组的标签栈上施加与lsp内的下游跃点相对应的至少一个标签,以及(5)沿着lsp从入口节点向委托节点转发分组,以使得当分组朝向出口节点遍历时,委托节点能够向标签栈上施加标签。

根据本文中描述的一般原理,来自任何上述实施例的特征可以彼此组合使用。结合附图和权利要求阅读以下具体实施方式,将能够更全面地理解这些和其他实施例、特征和优点。

附图说明

附图示出了多个示例性实施例并且是说明书的一部分。与以下描述一起,这些附图示出并且解释本公开的各种原理。

图1是用于在mpls分组上施加标签栈条目的示例性系统的框图;

图2是用于在mpls分组上施加标签栈条目的附加示例性系统的框图;

图3是用于在mpls分组上施加标签栈条目的示例性方法的流程图;

图4是标识lsp的信息的图示;

图5是用于在mpls分组上施加标签栈条目的附加示例性系统的框图;

图6是用于在mpls分组上施加标签栈条目的附加示例性系统的框图;

图7是用于在mpls分组上施加标签栈条目的附加示例性系统的框图;以及

图8是能够结合本文中描述和/或示出的一个或多个实施例来实现和/或使用的示例性计算系统的框图。

贯穿附图,相同的附图标记和描述表示相似但不一定相同的元素。虽然本文中描述的示例性实施例容易受到各种修改和替代形式的影响,但是具体实施例已经通过示例在附图中被示出并且将在本文中被详细描述。然而,本文中描述的示例性实施例并不旨在限于所公开的特定形式。相反,本公开涵盖落入所附权利要求的范围内的所有修改、等同物和替代方案。

具体实施方式

本公开描述了用于在mpls分组上施加标签栈条目的各种装置、系统和方法。如下面将更详细解释的,本公开的实施例可以在实现弹出且转发数据平面的资源保留协议(rsvp)流量工程(te)lsp内的节点处的分组上施加标签栈条目。这些实施例可以使得这样的lsps内的分组能够通过选择lsp内的一个或多个节点以用作委托节点来到达其预期目的地。如下面将更详细解释的,在分组遍历lsp时,委托节点可以向分组的标签栈上施加一个或多个标签,从而使得分组能够到达lsp内的出口节点和/或下一委托节点。

某些lsp可以包括弹出且转发标签和交换且转发标签的组合。在这个上下文中,术语“弹出且转发标签”通常是指简单地在lsp的中间节点处从标签栈中被去除而不被任何新标签取代的标签。相反,术语“交换且转发标签”通常是指在lsp的中间节点处交换为另一标签的标签。

在一些示例中,网络节点可以能够仅转发标签栈内的一定数目的标签。例如,lsp的入口节点可能限于转发3个弹出转发传输标签。在这个示例中,在3个标签被弹出之后,从入口节点转发的分组的标签栈可能被耗尽。如果lsp包含多于3个跃点,则分组可以在到达lsp的出口节点之前被丢弃或返回到入口节点。相应地,本公开的实施例可以选择lsp内的一个或多个节点,以用作当分组到达委托节点时向标签栈上施加(例如,推送)新标签的委托节点。通过这样做,所公开的系统可以使得分组能够有效地遍历整个lsp。

继续这个示例,lsp的入口节点可以指引lsp内的节点自动地和/或自主地选择它们自己作为委托节点。例如,入口节点可以转发遍历lsp内的跃点的路径消息。该路径消息可以指示每个跃点能够转发的标签的数目。具体地,跃点可以计算它可以转发的标签的数目,并且经由路径消息将该值传递到下一下游跃点上。下游跃点可以基于从前一跃点接收的值来计算自己的转发极限。这个迭代过程可以重复进行,直到lsp内的跃点确定分组的标签栈将在分组到达跃点时被耗尽。因此,该跃点可以指定自己以用作委托节点。

在委托节点(和任何附加委托节点)已经被选择之后,lsp的入口节点可以建立lsp,使得所选择的跃点被指定为委托节点。例如,入口节点可以将跃点(或者跃点与下一下游跃点之间的链路)与委托标签相关联。在沿着lsp转发分组之前,入口节点可以堆叠其标签使得分组能够到达委托节点的分组的标签栈。当分组到达委托节点时,委托节点可以向标签栈上施加一组新的标签。这些标签可以使得分组能够继续遍历lsp。

下面将参考图1、2和5至7提供用于在mpls分组上施加标签栈条目的示例性系统的详细描述。还将结合图4提供标识不同lsp的信息的详细描述。将结合图3提供对应的计算机实现的方法的详细描述。另外,将结合图8提供用于执行这些方法的示例性计算系统的详细描述。

图1是用于在mpls分组上施加标签栈条目的示例性系统100的框图。如该图所示,示例性系统100可以包括用于执行一个或多个任务的一个或多个模块102。如下面将更详细解释的,模块102可以包括接收模块104、标识模块106、确定模块108、委托模块110以及转发模块112。尽管被示出为分离的元件,但是图1中的一个或多个模块102可以表示单个模块或应用的部分。

在某些实施例中,图1中的一个或多个模块102可以表示在由计算设备执行时引起计算设备执行一个或多个任务的一个或多个软件应用或程序。例如,并且如下面将更详细描述的,一个或多个模块102可以表示被存储并且被配置为在一个或多个计算设备上运行的模块,诸如图2所示的设备(例如,网络节点202和/或206)和/或图5至7所示的设备(例如,网络节点202、206、502、504、506、508、510、512、514、516、518和/或520)。另外,一个或多个模块102可以执行本文中结合图2所示的设备和/或图5至7所示的设备中的任何设备描述的任何功能。图1中的一个或多个模块102还可以表示被配置为执行一个或多个任务的一个或多个专用计算机中的全部或部分。

如图1所示,系统100还可以包括一个或多个存储器设备,诸如存储器140。存储器140通常表示能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储器140可以存储、加载和/或保持一个或多个模块102。存储器140的示例包括但不限于随机存取存储器(ram)、只读存储器(rom)、闪存、硬盘驱动器(hdd)、固态驱动器(ssd)、光盘驱动器、高速缓存、上述中的一个或多个的变体或组合、和/或任何其他合适的存储器。

如图1所示,系统100还可以包括一个或多个物理处理器,诸如物理处理器130。物理处理器130通常表示能够解释和/或执行计算机可读指令的任何类型或形式的硬件实现的处理单元。在一个示例中,物理处理器130可以访问和/或修改存储在存储器140中的一个或多个模块102。附加地或备选地,物理处理器130可以执行一个或多个模块102以促进跨越共享标签的lsp来提供节点保护。物理处理器130的示例包括但不限于微处理器、微控制器、中央处理单元(cpu)、实现软核处理器的现场可编程门阵列(fpga)、专用集成电路(asic)、上述中的一个或多个的部分、上述中的一个或多个变体或组合、和/或任何其他合适的物理处理器。

如图1所示,示例性系统100还可以包括一个或多个路由,诸如路由120。在一些示例中,路由120每个可以标识网络内的特定路径(例如,lsp)的至少一部分。在这样的示例中,路由120可以促进网络内的业务流动。路由120的示例包括但不限于地址解析协议(arp)路由、前缀、因特网协议(ip)路由、ip地址、媒体访问控制(mac)地址、上述中的一个或多个的变体或组合、和/或任何其他合适的路由。

示例性系统100还可以包括一个或多个标签,诸如标签122。在一些示例中,标签122可以包括和/或表示mpls标签。在这样的示例中,标签122可以被指派和/或附接到业务和/或单独的分组。标签122可以指示和/或对应于网络内的特定路径的至少一部分。因此,路由和/或转发决定可以由被指派给分组的特定标签来确定和/或控制。例如,路由器可以接收分组,标识被指派给该分组的标签之一,并且然后向与该特定标签相对应的下一跃点转发分组。

可以以各种方式实现图1中的示例性系统100。例如,示例性系统100的全部或一部分可以表示图2中的示例性系统200的各部分。如图2所示,系统200可以包括经由网络204与网络节点206通信的网络节点202。在一个示例中,模块102的全部或部分功能可以由网络节点202、网络节点206和/或任何其他合适的计算系统执行。如下面将更详细描述的,来自图1的一个或多个模块102在由网络节点202或206的至少一个处理器执行时,使得网络节点202或206能够在网络204内的mpls分组上施加标签栈条目。

网络节点202和206分别通常表示促进网络内和/或跨越网络的通信的任何类型或形式的物理计算设备。在一个示例中,网络节点202和206每个可以包括和/或表示路由器(诸如客户边缘路由器、提供商边缘路由器、集线器路由器、分支路由器、自治系统边界路由器和/或区域边界路由器)。网络节点202和206的附加示例包括但不限于交换机、集线器、调制解调器、网桥、中继器、网关、多路复用器、网络适配器、网络接口、服务器、上述中的一个或多个的部分、上述中的一个或多个的组合或变体、和/或任何其他合适的网络节点。

网络204通常表示能够促进通信或数据传输的任何介质或架构。在一个示例中,网络204可以促进网络节点202和206之间的通信。在这个示例中,网络204可以使用无线和/或有线连接来促进通信或数据传输。网络204的示例包括但不限于内联网、广域网(wan)、局域网(lan)、个域网(pan)、因特网、电力线通信(plc)、蜂窝网络(例如,全球移动通信系统(gsm)网络)、mpls网络、资源rsvp-te网络、上述中的一个或多个的部分、上述中的一个或多个的变体或组合、和/或任何其他适合的网络。尽管在图2中示出为在网络204的外部,但是网络节点202和206每个可以表示网络204的一部分和/或被包括在网络204中。

图3是用于在mpls分组上施加标签栈条目的示例性的计算机实现的方法300的流程图。图3所示的步骤可以由任何合适的计算机可执行代码和/或计算系统来执行,这包括图1中的系统100、图2中的系统200、图5中的系统500、图6中的系统600、图7中的系统700和/或上述中的一个或多个的变体或组合。在一个示例中,图3所示的每个步骤可以表示其结构包括和/或由多个子步骤表示的算法,其示例将在下面更详细地提供。

如图3所示,在步骤310,本文中描述的一个或多个装置和/或系统可以在网络内的入口节点处接收对沿着lsp向网络内的出口节点转发分组的请求。例如,作为图2或5至7中的网络节点202的一部分,接收模块104可以接收沿着lsp向图2或5至7中的网络节点206转发分组的请求。在这个示例中,网络节点202可以表示在图5至7所示的lsp中的入口节点,并且网络节点206可以表示在图5至7所示的lsp中的出口节点。

本文中使用的术语“入口节点”通常是指表示lsp开始和/或始发的节点的任何物理计算设备。本文中使用的术语“出口节点”通常是指表示lsp的最后跃点和/或最终目的地节点的任何物理计算设备。另外,本文中使用的术语“分组”通常是指包括一个或多个格式化数据单元的任何类型或形式的通信分组、封装、抽象和/或对象。本文中使用的术语“装置”通常是指能够执行和/或促进用于在mpls分组上施加标签栈条目的所公开的方法的计算装置和/或系统中的任何部分和/或组件集合。

本文中描述的系统可以以各种不同的方式和/或在各种不同的上下文中执行步骤310。在一些示例中,接收模块104可以监测到达网络节点202的业务。在监测这样的业务时,接收模块104可以检测和/或接收来自网络节点202的输入分组。然后,接收模块104可以(例如,基于在分组的头部中的信息)确定分组至少在中间去往网络节点206。在一些实施例中,接收去往网络节点206的分组可以表示和/或相当于请求沿着lsp向网络节点206路由分组。

附加地或备选地,接收模块104可以接收对建立在网络节点202处开始并且在网络节点206处结束的lsp的请求。例如,接收模块104可以从控制器和/或另一网络节点接收指派和/或建立与lsp内的链路相对应的标签的请求。

回到图3,在步骤320,本文中描述的一个或多个装置和/或系统可以标识入口节点能够在分组的标签栈内转发的标签的数目的极限。例如,作为图2或5至7中的网络节点202的一部分,标识模块106可以标识网络节点202能够在分组的标签栈内转发的标签的数目的极限。在这个示例中,标签栈可以包括共同表示图5中的示例性系统500、图6中的示例性系统600或图7中的示例性系统700的网络内的lsp的至少一部分的多个标签。本文中使用的术语“标签栈”通常是指各自标识lsp的某个分段或链路的标签的任何集合。

本文中描述的系统可以以各种不同的方式和/或在各种不同的上下文中执行步骤320。在一些示例中,标识模块106可以确定网络节点202能够处理和/或转发输出标签栈内的仅一定数目的标签。在一个实施例中,该约束可以是网络节点202的固有属性(例如,基于网络节点202的配置和/或设置)。附加地或备选地,该约束可以基于诸如网络节点202用于转发分组的协议、网络节点202将要转发的分组的类型和/或网络节点202所在的网络的类型等因素。

在一些实施例中,标识模块106可以确定要从网络节点202转发的分组的标签栈包含各种类型的标签。例如,标识模块106可以确定标签栈包含传输标签(即,与标识和/或通向lsp内的跃点的链路相对应的标签)和与lsp内的链路直接不相关的附加类型的标签(诸如应用标签)二者。在这个示例中,标识模块106可以基于与网络节点202能够转发的lsp内的链路直接相对应的标签的数目,来确定网络节点202能够转发的标签的数目的极限。

作为示例,标识模块106可以确定网络节点202能够在分组的标签栈内转发总共5个标签。然而,标识模块106可以确定这些标签中的2个是与lsp内的链路不直接相关的应用标签或附加传输标签。如此,标识模块106可以确定网络节点202能够转发的相关标签数目是3。

回到图3,在步骤330,本文中描述的一个或多个装置和/或系统可以确定lsp内的跃点的数目超过入口节点能够转发的标签的数目的极限。例如,作为图2或5至7中的网络节点202的一部分,确定模块108可以确定在lsp内在网络节点202与网络节点206之间的跃点的数目超过网络节点202能够转发的标签的数目的极限。

本文中使用的术语“lsp内的跃点的数目”通常是指在分组从lsp的入口节点被转发之后lsp内由分组遍历的网络节点的数目。例如,lsp内的跃点的数目可以对应于lsp内的不同节点的数目,不包括入口节点。因此,lsp内的跃点的数目可以与沿着整个lsp转发分组所需要的标签的数目相同。

本文中描述的系统可以以各种不同的方式和/或在各种不同的上下文中执行步骤330。在一些示例中,确定模块108可以基于要被转发到网络节点206的分组的头部内的标签栈和/或附加信息来确定网络节点202与网络节点206之间的跃点的数目。附加地或备选地,确定模块108可以通过查询网络节点202与网络节点206之间的节点和/或基于这些节点的先验知识来确定跃点的数目。

在确定lsp内的跃点的数目之后,确定模块108可以将该数目与网络节点202能够转发的标签的数目的极限相比较。在一些实施例中,该比较可以指示跃点的数目超过网络节点202的转发极限。例如,确定模块108可以确定网络节点202与网络节点206之间的lsp包含11个跃点并且网络节点202仅能够转发3个标签。因此,确定模块108可以确定包含3个弹出转发传输标签的标签栈不足以促进沿着lsp向网络节点206转发分组。例如,确定模块108可以确定标签栈在lsp中的第三跃点之后将被耗尽。

在其他实施例中,确定模块108可以确定lsp内的跃点的数目没有超过网络节点202能够转发的标签的数目的极限。例如,确定模块108可以确定lsp包含4个跃点并且网络节点202能够转发4个标签。在这些示例中,所公开的系统可以确定遍历lsp的分组能够使用分组的原始标签栈内所包括的标签来到达lsp的出口节点。确定模块108因此可以确定指定lsp内的委托节点是不必要的。

回到图3,在步骤340,本文中描述的一个或多个装置和/或系统可以至少部分基于入口节点能够转发的标签的数目来选择lsp内的至少一个跃点,以用作向分组的标签栈上施加与lsp内的下游跃点相对应的至少一个标签的委托节点。例如,作为图2或5至7中的网络节点202的一部分,委托模块110可以选择在lsp内在网络节点202与网络节点206之间的至少一个跃点,以用作向分组的标签栈上施加与lsp内的下游跃点相对应的至少一个标签的委托节点。该选择可以至少部分基于网络节点202能够转发的标签的数目。在这个示例中,选择跃点以用作委托节点可以响应于确定lsp内的跃点的数目超过网络节点202能够转发的标签的数目的极限而被执行。

本文中使用的术语“委托节点”通常是指当分组遍历lsp时向分组的标签栈施加(例如,添加)一个或多个标签的lsp内的任何节点。在一些示例中,委托节点可以位于lsp的中间(而不是lsp的入口节点)。委托节点可以向分组的标签栈上添加任何合适数目的标签。例如,委托节点可以施加节点能够转发的最大数目的标签。附加地或备选地,委托节点可以施加足够的标签以使得分组能够到达lsp的出口节点和/或lsp内的下一委托节点。此外,虽然所公开的系统可以在弹出转发数据平面的上下文中描述委托节点,但是委托节点可以在任何附加或合适类型的网络和/或协议中被使用和/或被实现。

本文中描述的系统可以以各种不同的方式和/或在各种不同的上下文中执行步骤340。在一些示例中,委托模块110可以至少部分基于跃点的有效传输标签栈深度(etld)来选择要用作委托节点的跃点。本文中使用的术语“etld”通常是指跃点能够在lsp内转发的标签的数目。

在一些示例中,入口节点的etld可以对应于入口节点能够转发的传输标签的最大数目。然而,lsp的中间的跃点的etld可能受限于和/或控制于由跃点接收的分组的标签栈内的标签的数目。例如,如果跃点接收到具有包含3个弹出且转发标签的标签栈的分组,则跃点可以在转发分组之前从标签栈中弹出一个标签。如此,跃点的etld不能超过2。以这种方式,lsp内的跃点的etld可以与最近的上游跃点的etld直接相关和/或受其约束。

跃点的etld也可以受到lsp内的剩余跃点的数目的限制。例如,在某些情况下,lsp内的跃点可以能够转发多达5个标签。然而,如果lsp在跃点的下游包含少于5个跃点,则跃点的etld可能受限于和/或对应于剩余下游跃点的数目。

在一些示例中,委托模块110可以基于确定跃点的etld是0来选择要用作委托节点的跃点。换言之,委托模块110可以基于确定分组的标签栈在分组到达跃点之前已经被耗尽,来选择lsp内的跃点以用作委托节点。委托模块110因此可以确定跃点应当向标签栈上施加新标签以使得分组能够沿着lsp进一步遍历。

在一些实施例中,网络节点202可以确定lsp内的全部或部分跃点的etld。例如,当被托管在网络节点202上时,委托模块110可以查询每个单独的跃点以确定跃点的etld。附加地或备选地,委托模块110可以具有每个跃点的etld的先验知识。在这些示例中,委托模块110可以当在网络节点202上运行的同时选择lsp内的一个或多个特定跃点以用作委托节点。

然而,在其他实施例中,委托模块110可以引导跃点以确定它是否应当用作委托节点。例如,因为在网络节点202处获取lsp内的每个跃点的etld可能是困难的和/或耗时的,所以网络节点202可以引导lsp内的跃点以自动地和/或自主地选择它们自己以用作委托节点。在一个实施例中,lsp内的每个跃点可以计算其自己的etld。在跃点确定其etld为0的情况下,跃点可以选择其自身以用作委托节点。

在一些实施例中,lsp内的跃点可以基于接收到最近的上游跃点的etld来确定其etld。例如,在lsp内的跃点确定其etld之后,跃点可以将etld传递到lsp内的下一下游跃点上。然后,下游跃点可以通过从上游跃点的etld中减去1来确定其etld。该迭代过程可以继续,直到lsp内的跃点确定其etld为0。例如,响应于接收到指示上游跃点的etld为1的消息,跃点可以指派自己以用作委托节点。

在一些示例中,在确定跃点要用作委托节点之后,跃点可以重置其etld。在一个实施例中,跃点可以通过确定跃点能够向分组的标签栈上施加的新标签的数目(例如,跃点能够转发的传输标签的最大数目)来重置其etld。在这些示例中,然后可以重复确定etld的迭代过程。例如,被选择以用作委托节点的跃点可以将其新的etld传递到下一下游跃点,并且下游跃点可以使用所接收的etld来计算其自己的etld。在一些实施例中,该过程可以继续,直到lsp内的每个节点已经确定其etld(例如,直到该过程已经到达网络节点206)。值得注意的是,在一些示例中,可以选择lsp内的多于一个跃点以用作委托节点。

在一些实施例中,委托模块110可以经由路径消息向lsp内的下一下游跃点指示网络节点202的etld。该路径消息还可以包含提示下游跃点确定跃点是否应当用作委托节点的信号(例如,标志)。例如,响应于标识出该信号,下游跃点可以计算其etld并且经由路径消息向下一下游跃点转发etld。在一个实施例中,路径消息可以表示沿着lsp遍历直到到达网络节点206的rspvp-te消息。

在一些示例中,委托模块110可以促进建立包含一个或多个委托节点的lsp。例如,网络节点206上的委托模块110的实例可以接收由网络节点202发起的路径消息。作为响应,委托模块110的实例可以沿着lsp朝向网络节点202转发预留消息。在一个实施例中,该预留消息可以包括和/或表示rsvp-te消息。

在lsp内的跃点接收到预留消息之后,跃点上的委托模块110的实例可以向预留消息添加标签。该标签可以指示或标识从跃点通向lsp内的下一下游跃点(例如,预约消息刚从其被转发的跃点)的链路。另外,跃点可以指示标签是弹出且转发标签还是委托标签。如下面将更详细解释的,委托标签可以向标识标签栈内的标签的跃点指示跃点要用作委托节点。例如,委托标签可以指示跃点应当向标签栈上施加新标签,而不是从标签栈中弹出标签。

在一个实施例中,委托模块110可以向预留消息的标签对象添加标签。在其他实施例中,委托模块110可以将标签添加到预留消息的记录路由对象中的标签子对象。附加地或备选地,记录路由对象中的标签子对象可以包括表示和/或指示标签类型的标志位。此外,委托模块110可以将跃点的标签与对应于标签的链路相结合地存储在跃点的控制平面的路由表中。附加地或备选地,委托模块110可以将标签与链路相结合地存储在跃点的数据平面的转发表中。

在委托模块110在网络节点202处接收到预留消息之后,委托模块110可以基于添加到预留消息的标签来建立lsp。例如,委托模块110可以解析和/或记录被包括在预留消息中的所有标签。通过这样做,委托模块110可以使得网络节点202能够将全部或部分标签添加到去往网络节点206的输入分组的标签栈上。

图4描述了定义和/或被包括在示例性lsp410内的各种网络节点和相应的标签。如图4所示,lsp410可以包含网络节点202、502、504、506、508、510、512、514、516、518、520和206。在这个示例中,lsp410内从一个跃点到下一下游跃点的每个链路可以对应于标签100、200、300、400、500、600、700、800、900、1000或1100中的一个和/或由其标识。

图5示出了包括lsp410的示例性系统500。在图5的示例中,lsp410不包含任何委托节点。例如,标识模块106可以确定网络节点202(即,lsp410的入口节点)能够转发11个传输弹出且转发标签。另外,确定模块108可以确定lsp410包含11个跃点。这样,确定模块108可以确定lsp410不必为了使分组从网络节点202遍历到网络节点206而实现委托节点。因此,图5中的lsp410内的每个标签可以是弹出且转发标签。

图6示出了包括lsp410的附加示例的系统600。在图6的示例中,lsp410内的一个或多个跃点可以用作委托节点。这个示例示出了选择lsp410内的委托节点的一种方法。特别地,图6示出了可以被称为“堆叠以到达委托节点”的方法。通常,该方法可以涉及选择lsp内的最可能的下游跃点以用作lsp的第一委托节点。

在图6的示例中,标识模块106可以确定网络节点202能够转发3个传输标签。相应地,如图6所示,网络节点202的etld是3。在这个示例中,网络节点202可以经由路径消息将该etld传递到网络节点502。路径消息可以提示网络节点502从网络节点202的etld中减去1,这导致网络节点502的etld为2。然后,网络节点502可以将该值传递到网络节点504,网络节点504可以使用该值来为网络节点504计算为1的etld。在从网络节点504接收到路径消息之后,网络节点506可以确定其自己的etld是0。因此,网络节点506可以确定它应当用作委托节点(即,委托节点602)。

在确定网络节点506应当用作委托节点602之后,网络节点506可以重置其etld。在图6的示例中,网络节点506可以确定其新的etld是5。在这个示例中,网络节点506的新etld可以大于网络节点202的etld,因为网络节点506不是入口节点。例如,两个节点都能够转发总共5个标签。然而,lsp410的入口节点可能需要转发lsp410中间的节点不需要转发的2个应用标签。

在确定网络节点506的新etld之后,网络节点506可以向网络节点508转发etld。然后,网络节点508可以向网络节点510转发其etld。该过程可以继续,直到网络节点516选择其自身以用作委托节点(即,委托节点604)。如同网络节点506一样,网络节点516可以重置其etld。在图6的示例中,网络节点516可以能够将5个标签施加到标签栈上。然而,网络节点516可以确定仅需要2个更多的标签来使得分组能够到达lsp410内的网络节点206。如此,网络节点516可以确定其新etld是2。网络节点516可以将该etld传递到网络节点518以继续确定lsp410内的每个跃点的etld的过程。该过程可以在网络节点206处终止。

在lsp410内的委托节点已经被选择之后,网络节点206可以向网络节点520转发预留消息。然后,网络节点520可以向预留消息添加与从网络节点520到网络节点206的链路相对应的标签(即,标签1100)。网络节点520还可以在预留消息内指示标签1100是弹出且转发标签。然后,网络节点520可以向网络节点518转发预留消息,网络节点518可以将弹出且转发标签1000添加到预留消息。

当网络节点516(用作委托节点604)接收到预留消息时,网络节点516可以将标签9000添加到预留消息。在这个示例中,网络节点516可以指示标签9000是委托标签(与图5中的表示弹出且转发标签的标签900相对)。在一些示例中,网络节点516可以基于已经添加到预留消息的标签来确定网络节点516将要向遍历lsp410的分组的标签栈施加哪些标签。例如,网络节点516可以确定它应当施加标签1000和1100。

向预留消息添加标签的过程可以继续,直到预留消息到达网络节点202。一旦网络节点202接收到预留消息,网络节点202可以基于预留消息内所包括的标签来建立lsp410。在图6的示例中,网络节点202可以确定网络节点506将委托标签4000添加到预留消息(与图5中的弹出且转发标签400相对)。另外,当用作委托节点602时,网络节点506可以确定它应当施加标签500、600、700、800和9000。

图7示出了系统700,其示出了选择lsp410内的委托节点的附加方法。特别地,图7示出了可以被称为“堆叠以到达出口节点”的方法。通常,该方法可以涉及入口节点使用与lsp内的每个委托节点相对应的标签来填充分组的标签栈。

在图7的示例中,网络节点202可以选择lsp410(即,网络节点502)内的第一下游跃点以用作lsp410内的第一委托节点(即,委托节点702)。通常,第一委托节点可以是与网络节点202的etld相一致的任何跃点。然而,选择在网络节点202旁边和/或靠近网络节点202跃点以用作第一委托节点可以使lsp410包含的委托节点的数目最大化。例如,当基于“堆叠以到达出口节点”方法建立lsp410时,在由网络节点202转发的标签内包括弹出且转发标签可以减少转发的委托标签的数目(并且因此减少可以被包括在lsp410内的委托节点的数目)。

在选择网络节点502用作lsp410内的第一委托节点之后,选择附加委托节点的过程通常可以与结合图6描述的过程相同和/或类似。例如,网络节点502可以计算其etld(即,5),并且然后经由路径消息将该etld传递到网络节点504。然后,网络节点504可以基于网络节点502的etld计算其自己的etld,并且将etld传递到网络节点506。该过程可以继续,直到网络节点512从网络节点510接收到为1的etld。然后,网络节点512可以选择本身以用作委托节点704。另外,网络节点512可以基于lsp410内的剩余跃点的数目将其etld重置为4。网络节点512可以将为4的etld传递到网络节点516,以继续确定lsp410内的每个跃点的etld的过程。该过程可以在网络节点206处终止。

在lsp410内的委托节点已经被选择之后,网络节点206可以生成预留消息,该预留消息将沿着lsp410的每个跃点被转发,直到到达网络节点202。如结合图6所述,lsp410内的每个跃点可以向预留消息添加适当的标签(例如,弹出且转发标签或委托标签)。一旦网络节点202接收到预留消息,网络节点202可以基于预留消息内所包括的标签来建立lsp410。

回到图3,在步骤350,本文中描述的一个或多个装置和/或系统可以沿着lsp从入口节点向委托节点转发分组,以使得当分组朝向出口节点遍历时,委托节点能够向标签栈上施加标签。例如,作为图2或5至7中的网络节点202的一部分,转发模块112可以沿着lsp从网络节点202向委托节点转发分组,以使得当分组朝向网络节点206遍历时,委托节点能够向标签栈上施加标签。在这个示例中,当适当的委托节点已经在lsp内被选择和/或网络节点202已经建立lsp之后,转发模块112可以沿着lsp转发分组。

本文中描述的系统可以以各种不同的方式和/或在各种不同的上下文中执行步骤350。在一些示例中,转发模块112(在网络节点202处)可以使用使得分组能够至少到达lsp内的第一委托节点的一个或多个标签来填充分组的标签栈。例如,转发模块112可以将标签推送到标签栈上,并且然后将标签与分组一起转发。然后,分组可以沿着lsp遍历,直到到达委托节点。然后,委托节点可以将附加的一组标签推送到标签栈上,从而使得分组能够继续遍历lsp。该过程可以继续,直到分组到达网络节点206。

如以上所解释的,图6示出了“堆叠以到达委托节点”的方法。在这个示例中,网络节点202可以将弹出且转发标签200和300以及标签4000推送到将要遍历lsp410的分组的标签栈上。然后,网络节点202可以向网络节点502转发分组。在接收到分组时,网络节点502可以从标签栈中弹出标签200,使得标签栈仅包含标签300和4000。然后,网络节点502可以将分组与标签栈一起转发到网络节点504。在接收到分组时,网络节点504可以从标签栈中弹出标签300,使得标签栈仅包含标签4000。然后,网络节点504可以将分组与标签4000一起转发。

在图6的示例中,网络节点506可以接收分组并且标识分组的标签栈内的标签4000。响应于确定标签4000是委托标签,网络节点506可以从标签栈中弹出标签4000,并且将标签500、600、700、800和9000推送到标签栈上。这组新的标签可以使得分组能够到达网络节点516。在接收到分组之后,网络节点516可以标识标签栈内的标签9000。作为响应,网络节点516可以弹出标签9000并且将标签1000和1100推送到标签栈上。这组新的标签可以使得分组能够到达网络节点206。

如以上所解释的,图7示出了“堆叠以到达出口节点”的方法。根据该方法,网络节点202可以将与lsp410内的委托节点相对应的每个委托标签推送到将要遍历lsp410的分组的标签栈上。在图6的示例中,网络节点202可以将委托标签2000和7000推送到标签栈上。在其他示例中,网络节点202还可以将一个或多个弹出且转发标签施加到标签栈上(例如,在lsp410内的第一委托节点不是最接近的下游跃点的情况下)。

在图6的示例中,网络节点202可以向网络节点502转发分组。在接收到分组之后,网络节点502可以标识标签栈内的标签2000。作为响应,网络节点502可以从标签栈中弹出标签2000(留下委托标签7000),并且将标签300、400、500和600推送到标签栈上。由网络节点502施加的新标签可以使得分组能够到达网络节点512。在接收到分组之后,网络节点512可以标识标签栈内的标签7000。响应于标识出标签7000,网络节点512可以从标签栈中弹出标签7000,并且将标签800、900、1000和1100推送到标签栈上。这组新的标签可以使得分组能够到达网络节点206。

结合图6和7描述的两种方法可以使得分组能够有效地遍历包含一个或多个委托节点的lsp。然而,这些方法可以提供各种不同的特征和/或优点。例如,基于“堆叠以到达出口节点”方法而配置的委托节点仅施加弹出且转发标签。参考图7的示例,该属性可以使得委托标签2000能够被沿着与标签300、400、500和600相对应的链路转发分组的每个lsp来共享。相比之下,除了弹出且转发标签之外,基于“堆叠以到达委托节点”而配置的委托节点还可以施加一个或多个委托标签。参考图6,如果lsp没有遍历与关联于委托标签9000的每个弹出且转发标签相对应的链路,则该属性可以防止lsp共享委托标签4000。

尽管“堆叠以到达出口节点”方法可以实现跨越lsp更好地共享委托标签,但是该方法可以施加和/或导致对lsp的长度的限制。例如,该方法可以基于入口节点的etld来限制lsp内的委托节点的数目。参考图7的示例,网络节点202可能仅推送3个委托标签,并且因此lsp410的长度可以基于相应委托节点的etld来受到限制。然而,在图6所示的“堆叠以到达委托节点”方法中,lsp410可以包含任何数目的跃点。基于所公开的方法的这些特征和/或任何附加特征,入口节点、控制器和/或网络管理员可以选择用于指派弹出转发lsp内的委托节点的最合适的方法。

计算系统800广泛地表示任何类型或形式的电力负载,包括能够执行计算机可读指令的单处理器或多处理器计算设备或系统。计算系统800的示例包括但不限于工作站、膝上型计算机、客户端终端、服务器、分布式计算系统、移动设备、网络交换机、网络路由器(例如,骨干路由器、边缘路由器、核心路由器、移动服务路由器、宽带路由器等)、网络设备(例如,网络安全设备、网络控制设备、网络定时设备、sslvpn(安全套接字层虚拟专用网络)设备等)、网络控制器、网关(例如,服务网关、移动分组网关、多路访问网关、安全网关等)、和/或任何其他类型或形式的计算系统或设备。

图8是能够结合本文中描述和/或示出的一个或多个实施例来实现和/或使用的示例性计算系统800的框图。在一些实施例中,计算系统800的全部或一部分可以(单独地或与其他元件结合地)执行结合图3描述的一个或多个步骤和/或作为用于(单独地或与其他元件结合地)执行结合图3描述的一个或多个步骤的手段。计算系统800的全部或一部分还可以执行本文中描述和/或示出的任何其他步骤、方法或过程和/或作为用于执行和/或实现本文中描述和/或示出的任何其他步骤、方法或过程的手段。

计算系统800可以被编程、被配置和/或以其他方式被设计为符合一个或多个联网协议。根据某些实施例,计算系统800可以被设计为与开放系统互连(osi)参考模型的一个或多个层的协议一起工作,诸如物理层协议、链路层协议、网络层协议、传输层协议、会话层协议、表示层协议和/或应用层协议。例如,计算系统800可以包括根据以下各项配置的网络设备:通用串行总线(usb)协议、电气和电子工程师协会(ieee)1394协议、以太网协议、t1协议、同步光网络(sonet)协议、同步数字体系(sdh)协议、综合业务数字网络(isdn)协议、异步传输模式(atm)协议、点对点协议(ppp)、以太网点到点协议(pppoe)、atm点对点协议(pppoa)、蓝牙协议、ieee802.xx协议、帧中继协议、令牌环协议、生成树协议和/或任何其他合适的协议。

计算系统800可以包括各种网络和/或计算组件。例如,计算系统800可以包括至少一个处理器814和系统存储器816。处理器814通常表示能够处理数据或解释和执行指令的任何类型或形式的处理单元。例如,处理器814可以表示专用集成电路(asic)、片上系统(例如,网络处理器)、硬件加速器、通用处理器和/或任何其他合适的处理元件。

处理器814可以根据上面讨论的一个或多个联网协议来处理数据。例如,处理器814可以执行或实现协议栈的一部分,可以处理分组,可以执行存储器操作(例如,对分组排队以用于稍后处理),可以执行最终用户应用,和/或可以执行任何其他处理任务。

系统存储器816通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器816的示例包括但不限于随机存取存储器(ram)、只读存储器(rom)、闪存或任何其他合适的存储器设备。尽管不是必需的,但是在某些实施例中,计算系统800可以包括易失性存储器单元(诸如例如系统存储器816)和非易失性存储设备(诸如例如主存储设备832,如下面详细描述的)二者。系统存储器816可以被实现为网络设备中的共享存储器和/或分布式存储器。此外,系统存储器816可以存储在网络操作中使用的分组和/或其他信息。

在某些实施例中,除了处理器814和系统存储器816之外,示例性计算系统800还可以包括一个或多个组件或元件。例如,如图8所示,计算系统800可以包括存储器控制器818、输入/输出(i/o)控制器820和通信接口822,其中的每个可以经由通信基础设施812互连。通信基础设施812通常表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础设施。通信基础设施812的示例包括但不限于通信总线(诸如串行ata(sata)、工业标准结构(isa)、外围组件互连(pci)、pciexpress(pcie)、和/或其他合适的总线)和网络。

存储器控制器818通常表示能够处理存储器或数据或者控制计算系统800的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施例中,存储器控制器818可以经由通信基础设施812控制处理器814、系统存储器816和i/o控制器820之间的通信。在一些实施例中,存储器控制器818可以包括可以传送数据(例如,分组)去往或来自链路适配器的直接存储器访问(dma)单元。

i/o控制器820通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的设备或模块。例如,在某些实施例中,i/o控制器820可以控制或促进计算系统800的一个或多个元件(诸如处理器814、系统存储器816、通信接口822和存储接口830)之间的数据传输。

通信接口822广泛地表示能够促进示例性计算系统800与一个或多个附加设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施例中,通信接口822可以促进计算系统800与包括附加计算系统的专用或公用网络之间的通信。通信接口822的示例包括但不限于链路适配器、有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)和任何其他合适的接口。在至少一个实施例中,通信接口822可以经由到网络(诸如因特网)的直接链路来提供到远程服务器的直接连接。通信接口822还可以通过例如局域网(诸如以太网网络)、个域网、广域网、专用网络(例如,虚拟专用网络)、电话或有线网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接地提供这样的连接。

在某些实施例中,通信接口822还可以表示被配置为经由外部总线或通信信道来促进计算系统800与一个或多个附加网络或存储设备之间的通信的主机适配器。主机适配器的示例包括但不限于小型计算机系统接口(scsi)主机适配器、通用串行总线(usb)主机适配器、ieee1394主机适配器、高级技术附件(ata)、并行ata(pata)、串行ata(sata)和外部sata(esata)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口822还可以使得计算系统800能够参与分布式计算或远程计算。例如,通信接口822可以从远程设备接收指令或向远程设备发送指令以用于执行。

如图8所示,示例性计算系统800还可以包括经由存储接口830耦合到通信基础设施812的主存储设备832和/或备份存储设备834。存储设备832和834通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备832和834可以表示磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口830通常表示用于在存储设备832和834与计算系统800的其他组件之间传输数据的任何类型或形式的接口或设备。

在某些实施例中,存储设备832和834可以被配置为从被配置为存储计算机软件、数据或其他计算机可读信息的可移除存储单元读取和/或向其写入。适合的可移除存储单元的示例包括但不限于软盘、磁带、光盘、闪存设备等。存储设备832和834还可以包括用于允许计算机软件、数据或其他计算机可读指令被加载到计算系统800中的其他类似的结构或设备。例如,存储设备832和834可以被配置为读取和写入软件、数据或其他计算机可读信息。存储设备832和834可以是计算系统800的一部分,或者可以是通过其他接口系统来访问的独立设备。

很多其他设备或子系统可以连接到计算系统800。相反,图8所示的所有组件和设备不需要存在以实践本文中描述和/或示出的实施例。上面提到的设备和子系统也可以以不同于图8所示的方式进行互连。计算系统800也可以采用任何数目的软件、固件和/或硬件进行配置。例如,本文中公开的一个或多个示例性实施例可以被编码为计算机可读介质上的计算机程序(也称为计算机软件、软件应用、计算机可读指令或计算机控制逻辑)。术语“计算机可读介质”通常是指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于传输型介质(诸如载波)和非暂态型介质,诸如磁存储介质(例如,硬盘驱动器和软盘)、光存储介质(例如,压缩盘(cd)和数字视频盘(dvd))、电子存储介质(例如,固态驱动器和闪存介质)以及其他分配系统。

虽然前述公开内容使用特定框图、流程图和示例阐述各种实施例,但是本文中描述和/或示出的每个框图组件、流程图步骤、操作和/或组件可以单独地和/或整体地使用各种硬件、软件或固件(或其任何组合)配置来实现。另外,其他组件中包含的组件的任何公开内容本质上应当被认为是示例性的,这是因为很多其他架构可以被实现以实现相同的功能。

在一些示例中,图1中的系统100的全部或一部分可以表示云计算或基于网络的环境的部分。云计算和基于网络的环境可以经由因特网来提供各种服务和应用。这些云计算和基于网络的服务(例如,软件即服务、平台即服务、基础设施即服务等)可以通过网络浏览器或其他远程接口可访问。本文中描述的各种功能还可以提供网络交换能力、网关接入能力、网络安全功能、用于网络的内容高速缓存和递送服务、网络控制服务和/或其他网络功能。

另外,本文中描述的一个或多个模块可以将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。附加地或备选地,本文中描述的一个或多个模块可以通过在计算设备上执行、在计算设备上存储数据、和/或以其他方式与计算设备交互来将处理器、易失性存储器、非易失性存储器和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。

本文中描述和/或示出的步骤的过程参数和顺序仅作为示例给出,并且可以根据需要进行改变。例如,尽管本文中示出和/或描述的步骤可以以特定顺序被示出或被讨论,但是这些步骤不一定需要按所示出或讨论的顺序进行执行。本文中描述和/或示出的各种示例性方法还可以省略本文中描述或示出的一个或多个步骤,或者包括除了所公开的步骤之外的附加步骤。

已经提供了前面的描述以使得本领域其他技术人员能够最佳地利用本文中公开的示例性实施例的各个方面。该示例性描述并非旨在穷尽或者限于所公开的任何精确形式。在不脱离本公开的精神和范围的情况下,很多修改和变化都是可能的。本文中公开的实施例在所有方面都应当被认为是说明性的而非限制性的。在确定本公开的范围时,应当参考所附权利要求及其等同物。

除非另有说明,否则在说明书和权利要求书中使用的术语“连接到”和“耦合到”(及其派生词)应当被解释为允许直接和间接(即,经由其他元件或组件)连接。此外,在说明书和权利要求书中使用的术语“一”或“一种”应当被解释为表示“至少一个”。最后,为了便于使用,说明书和权利要求书中使用的术语“包括”和“具有”(及其派生词)与词语“包含”可互换并且与词语“包含具有相同的含义。

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