自治系统间跟踪路由消息的制作方法

文档序号:24495522发布日期:2021-03-30 21:22阅读:86来源:国知局
自治系统间跟踪路由消息的制作方法



背景技术:

各种各样的用户设备(例如智能电话、平板计算机和/或类似物)连接到服务提供商网络,以访问由基于分组的数据网络提供的资源和服务,诸如因特网、企业内部网、内容提供商、虚拟专用网络(vpn)和/或类似物。每个服务提供商网络通常都提供广泛的网络基础设施、以向用户设备提供基于分组的数据服务。每个服务提供商网络可包括广域网(wan),诸如包括多个自治系统的wan内的单个自治系统(as)、wan内的两个或多个as、和/或类似物。



技术实现要素:

根据一些实现,一种方法可以包括:由网络设备接收消息;由网络设备确定该消息包括返回信息,该返回信息指示到生成该消息的初始设备的路径;通过由网络设备向返回信息添加上游设备标识符来修改消息,其中上游设备标识符标识消息从其被接收的设备;通过由网络设备向返回信息中添加该初始设备是否由网络设备使用分段标识符可到达的指示来修改消息;并且由网络设备将经修改的消息提供给下游设备。

根据一些实现,网络设备可以包括一个或多个存储器;一个或多个处理器,通信地被耦合到一个或多个存储器的,被配置为:确定消息包括指示到生成该消息的初始设备的路径的返回信息;通过向返回信息添加上游设备标识符来修改消息,其中上游设备标识符标识消息从其被接收的设备;通过向返回信息中添加该初始设备是否由网络设备使用分段标识符可到达的指示来修改消息;提供经修改的消息给下游设备;接收包括返回信息的返回消息;并基于初始设备是否由网络设备使用分段标识符可到达的指示,将返回消息选择性地转发到消息从其被接收的设备或转发到初始设备。

根据一些实现,一种非暂时性计算机可读介质可以存储一个或多个指令。一个或多个指令当由网络设备的一个或多个处理器执行时,可以使一个或多个处理器:确定消息包括指示到生成该消息的初始设备的路径的返回信息;向返回信息添加上游设备标识符,其中上游设备标识符标识消息从其被接收的设备;向返回信息中添加该初始设备是否由网络设备使用与初始设备相关联的分段标识符可到达的指示;接收或生成包括返回信息的返回消息;并基于初始设备是否由网络设备使用分段标识符可到达的指示,将返回消息选择性地转发到消息从其被接收的设备或转发到初始设备。

附图说明

图1a-1g是本文描述的示例性实现的图。

图2是其中可以实现本文描述的系统和/或方法的示例环境的图。

图3是图2的一个或多个设备的示例组件的图。

图4-6是用于跟踪路由消息传送的示例过程的流程图。

具体实施方式

示例实现的以下详细描述参考附图。不同附图中的相同附图标记可以标识相同或相似的元件。

服务提供商网络可以将消息从初始设备路由到目的地设备。例如控制器可以使用路由信息来标识从初始设备到目的地设备的路径。该消息可以包括指示路径的信息,从而路径的网络设备可以将消息转发到适当的下游设备,直到消息到达目的地设备为止。作为示例,在使用分段路由(例如分段路由v6+(srv6+)等)的网络中,消息(例如消息的路由头部,诸如压缩路由器头部(crh))可以包括分段标识符(sid)的列表,该分段标识符列表指示由与沿着该路径的网络设备或网络设备的网络地址(例如互联网协议v6(ipv6)地址等)相对应的分段组成的路径。分段可以包括从第一网络设备到第二网络设备的拓扑路径。

网络设备可以接收消息并且基于由消息标识的sid来标识路径的下一跳。网络设备使用基于路由协议分发的路由信息,可以将下一跳的相应网络地址添加到消息中,并将经修改的消息转发到下一跳。在一些实现中,网络设备可以基于消息来执行动作。例如该消息可以包括指示该动作的目的地选项。

as可以包括网络设备集合,该网络设备可以访问基于路由协议分发的路由信息。基于路由信息,as内的网络设备可能能够根据消息的sid来相互路由消息。当要从第一as向第二as提供消息时,第一as的边缘路由器可以用包括crh的ipv6头部封装消息,并且可以将分组提供给第二as的边缘路由器。然而,在两个或多个as的情况下,第二as可能没有与第一as中的网络设备保持一致的可到达性,因为可能无法将第一as的路由信息分发给第二as中的节点,并且因为用于路由的sid可能不一定是双向的(例如从网络设备1到网络设备2的分段的sid可能与从网络设备2到网络设备1的分段的sid不同)。因此,第二as的网络设备可能不能通过参考第二as可访问的路由信息来一致地标识到第一as中的网络设备的返回路径。这可能会影响诸如ping消息、跟踪路由消息等的各种消息的性能或有用性。

当消息横穿一个或多个as的网络设备集合时,本文描述的一些实现提供对消息的返回路径的确定。当消息从网络设备被转发到网络设备时,可以通过修改消息来定义返回路径。例如每个网络设备可以添加标识网络设备的网络地址的返回信息以及允许路由到网络设备从其接收消息的设备(例如上游设备)的上游设备标识符。网络设备可以基于上游设备的网络地址来确定上游设备标识符,上游设备可能在将消息转发到网络设备之前将其添加到消息中。这可以提供在as内部以及在as之间(例如通过as的边缘设备)的返回路径确定,从而能够实现跨两个或更多个as的返回路径确定。

此外,本文描述的实现提供将可到达性信息以被添加到返回信息中,其可以指示返回路径上的每个网络设备是否可以直接到达初始设备。这可以节省返回路径上的临时网络设备的资源,因为对初始设备具有可到达性的任意网络设备都可以将消息转发到初始设备,从而规避了临时网络设备。更进一步,返回信息的确定可以由网络设备在返回路径上执行(例如基于消息中包括的目的地选项,由网络设备的控制平面执行),从而节省了与网络设备关联的控制器平台的资源,并减少了与消息关联的延迟。因此,提供了由网络设备进行的as间返回路径确定,这对于诸如ping消息、跟踪路由消息等的各种消息类型可能是有用的。

图1a-1g是本文描述的示例实现100的图。如图所示,示例实现100包括五个网络设备:网络设备1、网络设备2、网络设备3、网络设备4和网络设备5。每个网络设备都与相应的网络地址(尽管可以使用任何形式的网络地址,在此为ipv6地址)和相应的sid相关联。sid可以标识从下一网络设备到网络设备的分段。例如如下所述,sid可以标识在包括网络设备的返回路径上的用于返回消息的分段。网络设备1、2和3与第一as(例如as1)相关联,并且网络设备4和5与第二as(例如as2)相关联。设备之间的虚线示出与设备之间的分段相对应的sid。例如从网络设备2到网络设备1的分段在图1a中显示为sida。

如图1a所示,并且通过附图标记101,网络设备1可以生成消息。因此,网络设备1在本文中可以被称为消息的初始设备。该消息可以包括任意类型的消息。该消息的示例内容由附图标记102示出,尽管该消息可以包括附加信息或者可以不包括图1所示的信息的至少一部分。

如附图标记103所示,消息(例如消息的crh和/或类似物)可以指示消息的目的地。在此,该消息的目的地是as2中的网络设备5。例如该消息可以包括一个或多个sid和/或网络地址,其指示该消息到达网络设备5的路径(例如在分组的crh中)。在一些实现中,一个或多个sid和/或网络地址可以由网络设备1的控制器确定。

如附图标记104所示,该消息可以包括目的地选项(显示为操作和管理(oam)目的地选项)。目的地选项可以指示网络设备要将消息提供给网络设备的控制平面。例如控制平面可以处理返回信息的确定以及基于返回信息的消息的修改,如下面更详细描述的。如本文所使用的,控制平面可以指路由引擎和/或类似物。如果消息中未包含目的地选项,则网络设备可以使用分组转发引擎来处理消息。在一些实现中,消息可以包括与目的地选项不同的指示类型。例如该消息可以包括指示该消息将由控制平面和/或类似物处理的sid。

如附图标记105所示,该消息可以包括返回信息。可以以诸如阵列(例如类型-长度-值(tlv)阵列等)的数据结构来提供返回信息。返回信息可以由在从网络设备1到网络设备5的路径上的每个网络设备进行修改或添加,如下文更详细地描述。返回信息一旦完成,就可以标识从消息的目的地(例如网络设备5)到消息的初始设备(例如网络设备1)的返回路径。返回信息可以与消息相关联(例如附加到消息、消息的一部分、可以随消息一起行进和/或类似物),并且可以与对应的返回消息相关联。

如附图标记106所示,返回信息可以包括索引值。在这里,为了清楚起见,索引值显示与返回信息的每一行关联的网络设备的缩写(例如nd1对应于网络设备1,依此类推)。在一些实现中,索引可以使用整数索引(例如从零、一或不同的值开始)或另一种类型的索引。

如附图标记107所示,返回信息可以指示网络地址。返回路径上的每个网络设备都可以将其自己的网络地址添加到返回信息中。如附图标记108所示,返回信息可以包括上游分段标识符,诸如sid和/或类似物。sid可以标识从下游设备到上游设备的分段。例如如果网络设备2添加了sid,则网络设备2添加的sid可以标识从网络设备2到网络设备1的分段。在这种情况下,网络设备2可以使用路由信息并使用网络设备1的网络地址来确定sid(如下所述,网络设备1可以在转发消息之前将其添加到返回信息中)。

如附图标记109所示,返回信息可以包括初始设备(例如网络设备1)是否可从网络设备到达的指示。该指示可以被称为初始方可到达性比特。例如如果网络设备n具有到网络设备1(例如初始设备)的可到达性,则网络设备n可以将初始方可到达性比特设置为1。如本文中所使用的,如果第一节点可以使用单个分段向第二节点提供消息,则称第一节点具有到第二节点的可到达性。在一些实现中,可到达性可以指直接可到达性。如附图标记110所示,如果初始方可到达性比特被设置为真值,则返回信息可以指示对应的sid从与索引值相关联的网络设备到达初始设备。初始方可达性比特和对应的sid的使用可以能够实现使用返回信息的返回消息的压缩,因为可以将返回消息从返回路径的、具有到初始设备的可到达性的最早的网络设备路由到初始设备,因此可以绕开一个或多个中间网络设备。

如图1b所示,并且通过附图标记111,网络设备1可以初始化返回信息。初始化的返回信息由附图标记112表示。网络设备对返回信息的添加或修改在对应于该网络设备的返回信息的可视表示中以粗体、带下划线的文本指示。如所示,网络设备1可以添加第一索引(例如nd1)、网络设备1的网络地址(例如ipv6地址为0.0.0.0.0.0)、初始方可到达性比特值为1(例如真)、初始方可到达性sid为“节点sid”。节点sid可以例如基于内部网关协议(igp)等全局地标识网络设备到与针对该网络设备的路由信息相关联的设备。因此,任意具有对标识网络设备1的路由信息的访问的设备(例如as1的设备,诸如网络设备1、2和3),都可以具有使用与网络设备1相关联的节点sid的到网络设备1的可到达性。

如附图标记113所示,网络设备1可以将消息转发到网络设备2。例如网络设备1可以将消息转发到由消息的目的地信息标识的下一设备。在一些实现中,转发到路径的下一设备的消息可以被称为经修改的消息,因为该消息的返回信息已经被上游设备修改。如本文所使用的,转发或传输消息可以指的是标识消息的下一跳(例如基于与下一跳相关联的sid)并将标识下一跳的信息(例如与下一跳相关联的sid)添加到消息的头部(例如消息的crh和/或类似物),使得该消息被网络设备的分组转发引擎转发到下一跳。

如附图标记114所示,网络设备2可以基于消息的目的地选项将消息提供给网络设备2的控制平面。如附图标记115所示,网络设备2的控制平面可以基于确定消息包括返回信息或与返回信息相关联来更新或修改返回信息。例如控制平面可以将与网络设备2有关的信息添加到返回信息中,如附图标记116所示。此处,网络设备2递增索引(为清楚起见,显示为nd2)并添加网络设备2的网络地址(例如1.1.1.1.1.1)。此外,网络设备2将sida的上游分段标识符添加到返回信息中,指示从网络设备2到网络设备1的分段。网络设备2可以通过参考使用网络设备1的网络地址(例如0.0.0.0.0.0)路由信息来标识sida,网络设备1在转发消息之前将其添加到返回信息中。因此,如果网络设备2接收到包括返回信息的返回消息,则网络设备2可以通过参考与网络设备2相关联的索引值来将下一跳标识为由sida标识的分段。

在一些实现中,网络设备2可以将邻接sid添加到返回信息中。邻接sid可能在网络设备2本地(例如可能不会作为路由信息全局分配),并且可能标识网络设备2可以使用的下一跳而无需执行路由查找。邻接sid的使用可能会破坏一个循环,否则该循环可能是由链接崩溃引起的。

如进一步所示,网络设备2可以基于确定网络设备2可以使用节点sid的sid到达网络设备1,来添加初始方可到达性比特值为1(例如,真)和初始方可到达性sid为“节点sid”。

如图1c所示,并且通过附图标记117,网络设备2可以将消息(例如经修改的消息)转发到网络设备3。如图所示,网络设备3可以基于目的地选项将消息提供给控制平面,并且控制平面可以更新或修改返回信息,如结合图1b更详细地描述的。例如如附图标记118所示,网络设备3可以递增索引(显示为nd3)并添加网络设备3的网络地址(例如2.2.2.2.2.2)。此外,网络设备3将sidb的上游分段标识符添加到返回信息中,指示从网络设备3到网络设备2的分段。网络设备3可以通过参考使用网络设备2的网络地址(例如1.1.1.1.1.1)的路由信息来标识sidb,网络设备2在转发消息之前将其添加到返回信息中。因此,如果网络设备3接收到包括返回信息的返回消息,则网络设备3可以通过参考与网络设备3相关联的索引值来将下一跳识别为由sidb标识的分段。如进一步所示,基于确定网络设备3可以使用节点sid的sid来到达网络设备1,网络设备3可以添加初始方可到达性比特值为1(例如真)和初始方可到达性sid为“节点sid”。

应该注意的是,图1a-1g中描述的数据结构仅作为示例提供。数据结构可以具有多种形式或布置。作为一个示例,可以与用于上游网络设备的索引相关联而不是与用于将sid添加到返回信息的下游网络设备的索引相关联地提供到达上游网络设备的sid。

如图1d所示,并且通过附图标记119,网络设备3可以将消息(例如经修改的消息)转发到as2的网络设备4。例如网络设备3可以基于诸如边界网关协议(bgp)和/或类似协议的外部网关协议来转发消息。因此,网络设备3和网络设备4可以分别被视为as1和as2的边缘路由器或边界路由器。在此,as2无法访问as1的路由信息,这意味着网络设备3和4不具有针对初始设备(例如网络设备1)的可到达性。

附图标记120、121和122指示的操作涉及网络设备4和网络设备5两者,并且为了简洁起见在单个步骤组中表示。这些操作首先在收到来自网络设备3的消息后由网络设备4执行,然后在收到来自网络设备4的消息之后由网络设备5执行。此外,由网络设备4添加的返回信息由索引nd4表示,并且由网络设备5添加的返回信息由索引nd5指示。

如附图标记120所示,网络设备4可以基于目标选项将消息提供给网络设备4的控制平面。如附图标记121所示,网络设备4可以更新返回信息。例如如附图标记122所示,网络设备4可以递增索引(显示为nd4),可以确定并添加针对到网络设备3的一跳的上游分段标识符(例如sidc、基于bgp的值等),并且可以基于确定网络设备4没有到网络设备1的可到达性,将初始方可到达性比特设置为零(例如假值)。网络设备4可以将消息转发到网络设备5(例如,目的地网络设备),网络设备5可以执行类似的操作,如图1d所示。

如图1e所示,并且通过附图标记123,网络设备5可以基于该消息生成返回消息。例如如果消息包括ping消息、路由跟踪消息、回声请求消息等,则返回消息可以携带基于由消息请求的或基于消息生成的信息。如附图标记124所示,网络设备5可以使用与对应于网络设备5的索引相关联的返回信息来生成返回消息。如附图标记125所示,网络设备5可以基于返回信息来确定网络设备5不具有到网络设备1的可到达性,并且可以相应地使用由sidd标识的分段(例如,从网络设备5到网络设备4的分段)作为返回消息的目的地来生成返回消息。如附图标记126所示,网络设备5可以经由与sidd相关联的分段将返回消息传输到网络设备4。

如图1f所示,并通过附图标记127,网络设备4可以基于与网络设备4相关联的返回信息来转发该返回消息。例如网络设备4可以基于针对网络设备4的初始方可到达性比特被设置为假值,来标识要到达上游设备(例如,网络设备3)的分段或上游设备标识符,并且可以在与上游设备标识符相关联的分段上转发返回消息(由附图标记128示出)。

如图1g所示,并且通过附图标记129,网络设备3可以基于与网络设备3关联的初始方可到达性比特被设置为真值,确定网络设备3可以直接到达网络设备1。因此,如附图标记130所示,网络设备3可以将返回消息的目的地设置为与网络设备1相对应的节点sid。在一些实现中,网络设备3可以基于网络设备3可直接到达网络设备1,丢弃与由该返回信息标识的一个或多个中间网络设备(例如,网络设备2)相关联的返回信息,该中间网络设备将不接收该返回消息。因此,网络设备3可以减小返回消息的大小,并节省网络设备2的资源和网络链路资源。如附图标记131所示,网络设备3可以将返回消息直接提供给网络设备1(例如在单个分段上和/或不经由网络设备2提供返回消息)。

因此,消息路径上的网络设备可以为返回消息的对应返回路径生成返回信息。由网络设备生成的返回信息可以减少延迟,否则该延迟将由生成返回信息的控制器引起。此外,通过网络设备对返回信息的生成可以实现as之间的返回路径消息传送,从而简化用as之间路径对某些类型的消息(例如ping消息、跟踪路由消息、回声请求等)的实现。

如上所述,仅提供图1a-1g作为一个或多个示例。其他示例可以与关于图1a-1g描述的示例不同。

图2是示例环境200的示意图,其中可以实现本文描述的系统和/或方法。如图2所示,环境200可以包括客户端设备210、控制器平台220、网络230和网络230的一组网络设备240。环境200的设备可以经由有线连接、无线连接或有线和无线连接的组合来互连。

客户端设备210包括能够接收、生成、存储、处理和/或提供诸如本文所述的信息的信息的一个或多个设备。例如客户端设备210可以包括移动电话(例如智能电话、无线电话等)、膝上型计算机、平板计算机、台式计算机、手持计算机、游戏设备、可穿戴通信设备(例如智能手表、一副智能眼镜、心率监视器、健身追踪器、智能服装、智能珠宝、头戴式显示器等)或类似类型的设备。在一些实现中,客户端设备210可以经由网络230和网络设备240从控制器平台220接收信息和/或向控制器平台220传输信息。在一些实现中,客户端设备210可以经由网络230从其他客户端设备210接收网络业务和/或可以经由网络230向其他客户端设备210提供网络业务(例如,通过使用网络设备240作为中介来路由分组)。

控制器平台220包括确定和分发路由信息、路由路径等的一个或多个设备。在一些实现中,控制器平台220可以被设计为模块化的,使得可以根据特定需要来往复交换某些软件组件。这样,控制器平台220可以容易地和/或快速地被重新配置为不同的用途。在一些实现中,控制器平台220可以从一个或多个客户端设备210和/或网络设备240接收信息和/或向一个或多个客户端设备210和/或网络设备240传输信息。在一些实现中,控制器平台220可以被称为控制器。

在一些实现中,如图所示,控制器平台220可以被托管在云计算环境222中。值得注意的是,尽管本文描述的实现将控制器平台220描述为被托管在云计算环境222中,但是在一些实现中,控制器平台220可以并非基于云(即,可以在云计算环境之外实现),或也可以部分基于云。

云计算环境222包括托管控制器平台220的环境。云计算环境222可以提供不需要最终用户关于托管控制器平台220的系统和/或设备的物理位置和配置的知识的计算、软件、数据访问、存储等服务。如图所示,云计算环境222可以包括一组计算资源224(统称为“计算资源224”,并且单独称为“计算资源224”)。

计算资源224包括一个或多个个人计算机、工作站计算机、大型机设备或其他类型的计算和/或通信设备。在一些实现中,计算资源224可以托管控制器平台220。云资源可以包括在计算资源224中执行的计算实例、在计算资源224中提供的存储设备、由计算资源224中提供的数据传递设备等等。在一些实现中,计算资源224可以经由有线连接、无线连接或有线和无线连接的组合与其他计算资源224通信。

如图2进一步所示,计算资源224包括一组云资源,诸如一个或多个应用(“app”)224-1、一个或多个虚拟机(“vm”)224-2、虚拟存储装置(“vs”)224-3、一个或多个管理程序(“hyp”)224-4等。

应用224-1包括可以提供给客户端设备210或由客户端设备210访问的一个或多个软件应用。应用224-1可以消除在客户端设备210和/或网络设备240上安装和执行软件应用的需要。例如应用224-1可以包括与控制器平台220相关联的软件和/或能够经由云计算环境222提供的任意其他软件。在一些实现中,一个应用224-1可以经由虚拟机224-2向一个或多个其他应用224-1发送信息/从一个或多个其他应用224-1接收信息。

虚拟机224-2包括执行诸如物理机的程序的机器(例如计算机)的软件实现。虚拟机224-2可以是系统虚拟机,也可以是进程虚拟机,这取决于虚拟机224-2对任意实际机的使用和与任意实际机的对应程度。系统虚拟机可以提供支持执行完整操作系统(os)的完整系统平台。进程虚拟机可以执行单个程序,并且可以支持单个进程。在一些实现中,虚拟机224-2可以代表用户(例如客户端设备210的用户或控制器平台220的运营商)执行,并且可以管理云计算环境222的基础设施,诸如数据管理、同步、或长时间的数据传递。

虚拟存储装置224-3包括一个或多个存储系统和/或使用存储系统或计算资源224的设备内的虚拟化技术的一个或多个设备。在一些实现中,在存储系统的上下文中,虚拟化的类型可以包括块虚拟化和文件虚拟化。块虚拟化可以指的来自物理存储的逻辑存储的抽象(或分离),从而可以在不考虑物理存储或异构结构的情况下访问存储系统。分离可以允许存储系统的管理员在如何管理最终用户的存储上具有灵活性。文件虚拟化可以消除在文件级别访问的数据与物理存储文件的位置之间的依赖性。这可以能够实现存储使用的优化、服务器合并和/或无中断文件迁移的性能。

管理程序224-4可以提供硬件虚拟化技术,该技术允许多个操作系统(例如“顾客操作系统”)在诸如计算资源224的主机计算机上同时执行。管理程序224-4可以向顾客操作系统呈现虚拟操作平台,并可以管理顾客操作系统的执行。各种操作系统的多个实例可以共享虚拟化的硬件资源。

网络230包括一个或多个有线和/或无线网络。例如网络230可以包括蜂窝网络(例如第五代(5g)网络、长期演进(lte)网络、第三代(3g)网络、码分多址(cdma)网络等)、公共陆地移动网络(plmn)、局域网(lan)、广域网(wan)、城域网(man)、电话网(例如公共交换电话网(pstn)、专用网络、自组织网络、企业内部网、因特网、基于光纤的网络、as等、和/或这些或其他类型网络的组合。

网络设备240包括能够以本文所述的方式来接收、处理、存储、路由和/或提供业务(例如,分组、消息、回复消息、回复信息、其他信息或元数据和/或类似物)的一个或多个设备。例如网络设备240可以包括路由器,诸如标签交换路由器(lsr)、标签边缘路由器(ler)、入口路由器、出口路由器、边界路由器、提供商路由器(例如提供商边缘路由器、提供商核心路由器等)、虚拟路由器等。另外地或替代地,网络设备240可以包括网关、交换机、防火墙、集线器、网桥、反向代理、服务器(例如代理服务器、云服务器、数据中心服务器等)、负载均衡器和/或类似设备。网络设备240在本文中可以被称为节点。在一些实现中,网络设备240可以是在诸如机架的壳体内实现的物理设备。在一些实现中,网络设备240可以是由云计算环境或数据中心的一个或多个计算机设备实现的虚拟设备。

提供图2所示的设备和网络的数量和布置作为示例。实际上,与图2所示的设备和/或网络相比、可能存在更多的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或不同布置的设备和/或网络。此外,图2所示的两个或更多设备可以在单个设备内实现,或者图2所示的单个设备可以被实现为多个分布式设备。另外地或可替代地,环境200的设备集合(例如一个或多个设备)可以执行被描述为由环境200的另一设备集合执行的一个或多个功能。

图3是设备300的示例组件的图。设备300可以对应于客户端设备210、控制器平台220、计算资源224和/或网络设备240。在一些实现中,客户端设备210、控制器平台220、计算资源224和/或网络设备240可以包括一个或多个设备300和/或设备300的一个或多个组件。如图3所示,设备300可以包括总线310、处理器320、存储器330、存储组件340、输入组件350、输出组件360和通信接口370。

总线310包括允许设备300的组件之间进行通信的组件。处理器320以硬件、固件或硬件和软件的组合来实现。处理器320是中央处理器(cpu)、图形处理器(gpu)、加速处理器(apu)、微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic)或其他类型的处理组件。在一些实现中,处理器320包括能够被编程以执行功能的一个或多个处理器。存储器330包括随机存取存储器(ram)、只读存储器(rom)和/或另一类型的动态或静态存储设备(例如闪存、磁存储器和/或光存储器),其存储供处理器320使用的信息和/或指令。

存储组件340存储与设备300的操作和使用有关的信息和/或软件。例如存储组件340可以包括硬盘(例如磁盘、光盘、磁光盘、和/或固态磁盘)、光盘(cd)、数字多功能光盘(dvd)、软盘、盒带、磁带和/或另一类型的非暂时性计算机可读介质、以及相应的驱动器。

输入组件350包括允许设备300诸如经由用户输入(例如触摸屏显示器、键盘、小键盘、鼠标、按钮、开关和/或麦克风)接收信息的组件。另外地或可替代地,输入组件350可以包括用于感测信息的传感器(例如全球定位系统(gps)组件、加速计、陀螺仪和/或致动器)。输出组件360包括提供来自设备300的输出信息的组件(例如显示器、扬声器和/或一个或多个发光二极管(led))。

通信接口370包括类收发机组件(例如收发机和/或单独的接收机和发射机),其使设备300能够诸如经由有线连接、无线连接或有线连接与无线连接的组合与其他设备通信。通信接口370可以允许设备300从另一设备接收信息和/或向另一设备提供信息。例如通信接口370可以包括以太网接口、光接口、同轴接口、红外接口、射频(rf)接口、通用串行总线(usb)接口、wi-fi接口、蜂窝网络接口等。

设备300可以执行本文描述的一个或多个过程。设备300可以基于处理器320执行由诸如存储器330和/或存储组件340的非暂时性计算机可读介质存储的软件指令来执行这些处理。计算机可读介质在本文中被定义为非暂时性存储设备。存储设备包括单个物理存储设备内的存储空间或分布在多个物理存储设备上的存储空间。

可以经由通信接口370从另一计算机可读介质或另一设备将软件指令读取到存储器330和/或存储组件340中。当被执行时,存储在存储器330和/或存储组件340中的软件指令可以使处理器320执行本文所述的一个或多个过程。另外地或替代地,可以使用硬连线电路代替软件指令或与软件指令结合使用以执行本文所述的一个或多个过程。因此,本文描述的实现不限于硬件电路和软件的任意特定组合。

作为示例提供了图3中所示的组件的数量和布置。在实践中,设备300可以包括比图3所示的组件更多的组件、更少的组件、不同的组件或布置不同的组件。另外地或替代地,设备300的组件集合(例如一个或多个组件)可以执行被描述为由设备300的另一组件集合执行的一个或多个功能。

如本文中所使用的,术语业务或内容可以包括分组集合。分组可以指用于传送信息的通信结构,例如协议数据单元(pdu)、网络分组、数据报、分段、消息、块、小区、帧、子帧、时隙、符号、上述任意一项的一部分和/或能够经由网络传输的另一类型的格式化或未格式化数据单元。

图4是用于自治系统间跟踪路由消息传送的示例过程400的流程图。在一些实现中,图4的一个或多个过程框可以由网络设备(例如图1a-1g的网络设备1-5,网络设备240等)执行。在一些实现中,图4的一个或多个过程框可以由另一设备或设备组执行,该另一设备或设备组与网络设备分离或包括网络设备,诸如客户端设备210、控制器平台220等。

如图4所示,过程400可以包括接收消息(框410)。例如网络设备(例如使用处理器320、通信接口370等)可以接收消息,如上所述。

如图4进一步所示,过程400可包括确定该消息包括指示到生成该消息的初始设备的路径的返回信息(框420)。例如如上所述,网络设备(例如使用处理器320等)可以确定该消息包括指示到生成该消息的初始设备的路径(例如返回路径)的返回信息。

如图4进一步所示,处理400可包括通过添加上游设备标识符来修改消息,其中上游设备标识符标识从其接收消息的设备(框430)。例如如上所述,网络设备(例如使用处理器320、通信接口370等)可通过添加上游设备标识符来修改消息。在一些实现中,上游设备标识符标识从其接收消息的设备。

如图4进一步所示,过程400可包括通过添加初始设备是否由网络设备使用分段标识符可到达的指示来修改消息(框440)。例如网络设备(例如使用处理器320,输入组件350,输出组件360,通信接口370和/或类似物)可以通过添加初始设备是否由网络设备使用分段标识符可达的指示来修改消息,如上所述。

如图4进一步所示,过程400可以包括将经修改的消息提供给下游设备(框450)。例如如上所述,网络设备(例如使用处理器320、通信接口370等)可以将经修改的消息提供给下游设备。

过程400可以包括附加的实现,诸如以下描述的和/或结合本文其他地方描述的一个或多个其他过程的任意单个实现或实现的任意组合。

在第一实现中,过程400包括:接收包括返回信息的返回消息;基于上游设备标识符,将返回消息转发给从其接收该消息的设备。

在第二实现中,单独地或与第一实现组合,过程400包括基于该指示并在转发返回消息之前确定初始设备使用分段标识符不可到达,其中基于确定初始设备使用分段标识符不可到达来正在将返回消息转发到从其接收消息的设备。

在第三实现中,单独地或与第一和第二实现中的一个或多个组合,过程400包括:接收包括返回信息的返回消息;基于所述指示,确定所述初始设备由所述网络设备使用所述分段标识可到达;并且基于所述初始设备由所述网络设备使用所述分段标识可到达,使用分段标识符将所述返回消息转发给所述初始设备。

在第四实现中,单独地或与第一实现至第三实现中的一个或多个组合,过程400包括确定与从其接收消息的设备的网络地址相关联的分段标识符,其中上游设备标识符包括分段标识符。

在第五实现中,单独地或与第一至第四实现中的一个或多个组合,过程400包括通过将网络设备的网络地址添加到消息中来修改消息。

在第六实现中,单独地或与第一至第五实现中的一个或多个组合,当初始设备由网络设备使用分段标识符可到达时,该方法还包括:通过向消息添加分段标识符来修改消息。

在第七实现中,单独地或与第一至第六实现中的一个或多个组合,网络设备与第一自治系统相关联,并且初始设备与不同于第一自治系统的第二自治系统相关联。

在第八实现中,单独地或与第一至第七实现中的一个或多个组合,网络设备与第一自治系统相关联,并且下游设备与不同于第一自治系统的第二自治系统相关联。

在第九实现中,单独地或与第一至第八实现中的一个或多个组合,确定由网络设备的控制平面执行。

在第十实现中,单独或与第一至第九实现中的一个或多个组合,控制平面基于消息中包括的目的地选项来执行确定。

尽管图4示出了过程400的示例框,但是在一些实现中,过程400可以包括比图4所示的框相比更多的框、更少的框、不同的框或不同地布置的框。另外地或可替代地,过程400的两个或更多个框可以并行执行。

图5是用于自治系统间跟踪路由消息传送的示例过程500的流程图。在一些实现中,图5的一个或多个过程框可以由网络设备(例如图1a-1g的网络设备1-5、网络设备240等)执行。在一些实现中,图5的一个或多个过程框可以由另一设备或设备组执行,该另一设备或设备组与网络设备分离或包括网络设备,诸如客户端设备210、控制器平台220等。

如图5所示,过程500可以包括确定消息包括指示到生成该消息的初始设备的路径的返回信息(框510)。例如如上所述,网络设备(例如使用处理器320等)可以确定消息包括指示到生成该消息的初始设备的路径(例如返回路径)的返回信息。

如图5进一步所示,过程500可包括通过向返回信息添加上游设备标识符来修改消息,其中上游设备标识符标识从其接收消息的设备(框520)。例如如上所述,网络设备(例如使用处理器320、通信接口370等)可以通过向返回信息添加上游设备标识符来修改消息。在一些实现中,上游设备标识符标识从其接收消息的设备。

如图5进一步所示,过程500可包括通过将初始设备是否由网络设备使用分段标识符可到达的指示添加到返回信息中来修改消息(框530)。例如网络设备(例如使用处理器320、通信接口370等)可通过将初始设备是否由网络设备使用分段标识符可到达的指示添加到返回信息来修改消息,如上所述。

如图5进一步所示,过程500可以包括将经修改的消息提供给下游设备(框540)。例如如上所述,网络设备(例如使用处理器320、通信接口370等)可以将经修改的消息提供给下游设备。

如图5进一步所示,过程500可以包括接收包括返回信息的返回消息(框550)。例如如上所述,网络设备(例如使用处理器320、通信接口370等)可以接收包括返回信息的返回消息。

如图5进一步所示,过程500可以包括:基于初始设备是否由网络设备使用分段标识符可到达的指示,将返回消息选择性地转发到从其接收消息的设备或初始设备(框560)。例如网络设备(例如使用处理器320、通信接口370等)可基于初始设备是否由网络设备使用分段标识符可到达的指示,将返回消息选择性地转发到从其接收消息的设备或初始设备,如上所述。

过程500可以包括附加的实现,诸如以下和/或结合本文其他地方描述的一个或多个其他过程描述的任何单个实现或实现的任何组合。

在第一实现中,过程500包括基于将返回消息转发到初始设备而移除返回信息的至少一部分。

在第二实现中,单独地或与第一实现组合,返回信息的至少一部分包括上游设备标识符。

在第三实现中,单独地或与第一和第二实现中的一个或多个组合,该消息包括ping消息或跟踪路由消息中的至少一个。

在第四实现中,单独地或与第一至第三实现中的一个或多个组合,由网络设备确定上游设备标识符和指示。

尽管图5示出了过程500的示例框,但是在一些实现中,过程500可以包括比图5所描述的框更多的框、更少的框、不同的框或不同地布置的框。另外地或可替代地,过程500的两个或更多个框可以并行执行。

图6是用于自治系统间跟踪路由消息的示例过程600的流程图。在一些实现中,图6的一个或多个过程框可以由网络设备(例如图1a-1g的网络设备1-5、网络设备240等)执行。在一些实现中,图6的一个或多个过程框可以由另一设备或设备组执行,该另一设备或设备组与网络设备分离或包括网络设备,诸如客户端设备210、控制器平台220等。

如图6所示,过程600可包括确定消息包括返回信息,该返回信息指示到生成该消息的初始设备的路径(框610)。例如如上所述,网络设备(例如使用处理器320等)可以确定消息包括指示到生成该消息的初始设备的路径的返回信息。

如图6进一步所示,过程600可包括将上游设备标识符添加到返回信息中,其中上游设备标识符标识从其接收消息的设备(框620)。例如如上所述,网络设备(例如使用处理器320、通信接口370等)可以向返回信息添加上游设备标识符。在一些实现中,上游设备标识符标识从其接收消息的设备。

如图6进一步所示,过程600可以包括:向返回信息添加初始设备是否由网络设备使用与初始设备相关联的分段标识符可到达的指示(框630)。例如网络设备(例如使用处理器320、通信接口370等)可以向返回信息添加初始设备是否由网络设备使用与初始设备相关联的分段标识符可到达的指示,如上所述。

如图6进一步所示,过程600可包括接收或生成包括返回信息的返回消息(框640)。例如网络设备(例如使用处理器320、通信接口370等)可以接收或生成包括返回信息的返回消息,如上所述。

如图6进一步所示,过程600可包括基于初始设备是否由网络设备使用分段标识符可到达的指示,将返回消息选择性地转发至从其接收消息的设备,或转发至初始设备(框650)。例如网络设备(例如使用处理器320、通信接口370等)可以基于初始设备是否由网络设备使用分段标识符可到达的指示,将返回消息选择性地转发至从其接收消息的设备,或转发至初始设备,如上所述。

过程600可以包括附加实现,诸如以下和/或结合本文其他各处描述的一个或多个其他过程所描述的任意单个实现或实现的任意组合。

在第一实现中,网络设备是消息的目的地设备。

在第二实现中,单独地或与第一实现组合,过程600包括基于路由信息以及基于从其接收消息的设备的网络地址来确定上游设备标识符,其中网络地址是被包括在返回信息中。

在第三实现中,单独地或与第一和第二实现中的一个或多个组合,与初始设备相关联的分段标识符和上游设备标识符包括互联网协议v6上的分段路由分段标识符。

尽管图6示出了过程600的示例块,但是在一些实现中,过程600可以包括比图6所示的框更多的框、更少的框、不同的框或不同地布置的框。另外地或可替代地,可以并行地执行过程600的两个或更多个框。

在一些实施例中,一种方法,包括由网络设备接收消息;由所述网络设备确定所述消息包括返回信息,所述返回信息指示到生成所述消息的初始设备的路径;通过由所述网络设备向所述返回信息添加上游设备标识符来修改所述消息,其中所述上游设备标识符标识从其所述消息从其被从其接收的设备;通过由所述网络设备向所述返回信息中添加所述初始设备是否由所述网络设备使用分段标识符是否可到达的指示来修改所述消息;以及由所述网络设备向下游设备提供所经修改的所述消息。

在一些实施例中,该方法还包括接收包括所述返回信息的返回消息;以及基于所述上游设备标识符,向从其所述消息从其被从其接收的所述设备转发所述返回消息。

在一些实施例中,该方法还包括基于所述指示并在转发所述返回消息之前,确定所述初始设备使用所述分段标识符不可到达,其中将所述返回消息转发到向从其所述消息从其被从其接收的所述设备转发所述返回消息是基于确定所述初始设备使用所述分段标识符不可到达的。

在一些实施例中,该方法还包括接收包括所述返回信息的返回消息;以及基于所述指示,确定所述初始设备由所述网络设备使用所述分段标识符可到达;以及基于所述初始设备由所述网络设备使用所述分段标识符可到达,使用所述分段标识符向所述初始设备转发所述返回消息。

在一些实施例中,该方法还包括确定分段标识符与从其所述消息从其被从其接收的所述设备的网络地址相关联的分段标识符,其中所述上游设备标识符包括所述分段标识符。

在一些实施例中,该方法还包括通过向所述消息添加所述网络设备的网络地址来修改所述消息。

在一些实施例中,其中当所述初始设备由所述网络设备使用所述分段标识可到达时,所述方法还包括:通过向所述消息添加所述分段标识符来修改所述消息。

在一些实施例中,其中所述网络设备与第一自治系统相关联,并且所述初始设备与不同于所述第一自治系统的第二自治系统相关联。

在一些实施例中,其中所述网络设备与第一自治系统相关联,并且所述下游设备与不同于所述第一自治系统的第二自治系统相关联。

在一些实施例中,其中所述确定是由所述网络设备的控制平面执行的。

在一些实施例中,其中所述控制平面基于被包括在所述消息中的目的地选项来执行所述确定。

在一些实施例中,一种网络设备,包括一个或多个存储器;以及一个或多个处理器,通信地被耦合到所述一个或多个存储器,用于:确定消息包括指示到生成所述消息的初始设备的路径的返回信息;通过向所述返回信息添加上游设备标识符来修改所述消息,其中所述上游设备标识符标识所述从其消息从其被从其接收的设备;通过向所述返回信息添加所述初始设备是否由所述网络设备使用分段标识符是否可到达的指示来修改所述消息;向下游设备提供所经修改的所述消息;接收包括所述返回信息的返回消息;以及基于所述初始设备是否由所述网络设备使用所述分段标识符是否可到达的所述指示,向从其所述消息从其被从其接收的所述设备或向所述初始设备选择性地转发所述返回消息。

在一些实施例中,其中所述一个或多个处理器还用于:基于向所述初始设备转发所述返回消息,移除所述返回信息的至少一部分。

在一些实施例中,其中所述返回信息的所述至少一部分包括所述上游设备标识符。

在一些实施例中,其中所述消息包括ping消息或跟踪路由消息中的至少之一种。

在一些实施例中,其中所述上游设备标识符和所述指示由所述网络设备确定。

在一些实施例中,一种存储指令的非暂时性计算机可读介质,所述指令包括一个或多个指令,所述一个或多个指令当由网络设备的一个或多个处理器执行时,所述一个或多个指令可以使得所述一个或多个处理器用于:确定消息包括指示到生成所述消息的初始设备的路径的返回信息;向所述返回信息添加上游设备标识符,其中所述上游设备标识符标识从其所述消息从其被从其接收的设备;向所述返回信息添加所述初始设备是否由所述网络设备使用与所述初始设备相关联的分段标识符是否可到达的指示;接收或生成包括所述返回信息的返回消息;以及基于所述初始设备是否由所述网络设备使用所述分段标识符是否可到达的所述指示,向从其所述消息从其被从其接收的所述设备或向所述初始设备选择性地转发所述返回消息。

在一些实施例中,其中所述网络设备是所述消息的目的地设备。

在一些实施例中,其中使得所述一个或多个处理器向所述返回信息添加所述上游装置设备识别标识符的所述一个或多个指令使得所述一个或多个处理器用于:基于路由信息和基于从其所述消息从其被从其接收的所述设备的网络地址,确定所述上游设备标识符,其中所述网络地址被包括在所述返回信息中。

在一些实施例中,其中与所述初始设备相关联的所述分段标识符和所述上游设备标识符包括互联网协议v6上的分段路由v6分段标识符。

前述公开内容提供了说明和描述,但并不旨在穷举或将实现限制为所公开的精确形式。修改和变化可以根据以上公开内容进行,或者可以从实现的实践中获得。

如本文所用,术语“组件”旨在被广义地解释为硬件、固件和/或硬件和软件的组合。

显然,本文所述的系统和/或方法可以以硬件、固件或硬件和软件的组合的不同形式来实现。用于实现这些系统和/或方法的实际的专用控制硬件或软件代码并不限制实现。因此,本文中不参考特定软件代码来描述系统和/或方法的操作和行为-应理解,可以基于本文的描述将软件和硬件设计为实现系统和/或方法。

即使特征的特定组合在权利要求中叙述和/或在说明书中公开,这些组合也不旨在限制各种实现的公开。实际上,许多这些特征可以以权利要求书中未具体记载和/或说明书中未公开的方式组合。尽管下面列出的每个从属权利要求可能仅直接依赖于一个权利要求,但是各种实现的公开包括与权利要求集合中的每个其他权利要求相结合的每个从属权利要求。

除非明确地描述,否则本文中使用的元素、动作或指令均不应被解释为关键或必要的。另外,如本文所使用,冠词“一”和“一个”旨在包括一个或多个项,并且可以与“一个或多个”互换使用。此外,如本文所使用的,冠词“该”旨在包括与冠词“该”相关联引用的一个或多个项,并且可以与“一个或多个”互换使用。此外,如本文所用,术语“集合”旨在包括一个或多个项(例如相关项、无关项、相关项和无关项的组合等),并且可以与“一个或多个”互换使用。在仅旨在仅一项的情况下,使用短语“仅一个”或类似语言。同样,如本文所使用的,术语“具有”、“有”、“含有”等旨在是开放式术语。此外,除非另有明确说明,否则短语“基于”旨在表示“至少部分地基于”。另外,如在此使用的,术语“或”在串联使用时旨在是包括性的,并且可以与“和/或”互换使用,除非另有明确说明(例如,如果与“或”或“仅之一”组合使用)。

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