【知识产权代理】【专利服务】Tel:18215660330

带内元数据在中间节点处的导出和移除的制作方法

专利2022-11-25  5


优先权

本申请要求于2017年11月4日递交的印度临时申请no.201741039352的优先权,其全部内容通过引用合并于此。

本公开涉及网络路径跟踪。



背景技术:

路径跟踪解决方案记录实时客户流量内的路径。这种解决方案的示例包括带内/现场操作、管理和维护(ioam)或网络内遥测(int)。这些解决方案使用分组中的空间,该空间与分组行进的跃点数成正比。分组内存储的数据示例包括针对分组遍历的每个节点的标识符、时间戳、访问的接口、队列深度等。

对于具有大量节点和/或长路径的大型网络,该方法可能导致需要在分组中携带的大量元数据。基于逐跃点插入唯一元数据的方案遭受实施挑战。它们要么需要在每个跃点上改变分组的大小(这引起路径最大传输单元(pmtu)问题),要么需要在分组内的不同位置对分组进行写操作。换句话说,从分组中读取指针,然后将数据放入该指针指示的位置。这在硬件中不容易实现。

附图说明

图1是根据示例实施例的被配置为在网络中的中间节点处实现带内元数据导出和移除的系统的框图。

图2是类似于图1的图,并且示出根据示例实施例的当元数据报头中的空间不足发生时的元数据导出。

图3是类似于图2的图,并且示出根据示例实施例的选择性和部分元数据导出。

图4是类似于图3的图,并且示出根据示例实施例的当分组丢弃(packetdrop)发生时的元数据导出。

图5是示出根据示例实施例的元数据报头的报头字段的图。

图6是示出根据示例实施例的导出的元数据的数据管理的图。

图7是描绘根据示例实施例的由中间/传输节点执行的操作的流程图。

图8是根据示例实施例的被配置为执行元数据导出的网络节点的框图。

图9是描绘根据示例实施例的由网络控制器执行的操作的流程图。

图10是根据示例实施例的被配置为参与本文提出的元数据导出机制的网络控制器的框图。

具体实施方式

概述

在独立权利要求中阐述了本发明的方面,在从属权利要求中阐述了优选特征。一个方面的特征可以单独地或与其他方面结合地应用于每个方面。

根据一个实施例,提供一种在网络路径中的一个或多个中间节点处执行的方法。节点接收具有报头的分组,该报头包括随着分组沿网络路径行进而累积的元数据。节点检测触发条件是否发生。响应于检测到触发条件发生,节点将报头中累积的元数据的至少一部分导出到目的地实体,使得在将元数据的该部分导出后将其从报头移除。

还描述了用于实现本文描述的方法的系统和装置,包括用于实现所述方法的网络节点、计算机程序、计算机程序产品、计算机可读介质以及在有形介质上编码的逻辑。

示例实施例

路径跟踪解决方案记录实时流量内的路径。分组跟踪解决方案的一个示例是带内/现场操作、管理和维护(ioam),而另一个示例是网络内遥测(int)。这两种解决方案都使用分组中的空间,该空间与分组行进的跃点数成正比。分组内包括的元数据的示例是针对分组遍历的每个节点的标识符、时间戳、访问的接口、队列深度等。

出于操作原因,这些解决方案需要一种机制来限制记录到分组中的数据量。希望分组大小保持在路径的最大传输单位(pmtu)限制内,以防止由于ioam元数据而导致分组丢弃。另外,数据平面/硬件实现对它们可以“看到”分组中进行检查的深度有限制。例如,使用层4(l4)信息执行等价多路径(ecmp)哈希,并且许多硬件专用集成电路(asic)仅支持特定的查找深度。更进一步,对在分组内的不同位置处写入数据存在数据平面/asic约束。

在一般情况下,本文提出的解决方案解决了如下挑战:需要收集m个跃点的ioam元数据,但是分组中的空间大小仅为n,m>n。该解决方案解决了几个问题。第一,为了强制最大ioam数据大小,当达到最大数据大小时,数据记录停止。结果,在具有大直径的网络中仅部分路径信息跟踪是可见的。第二,一些ioam数据(例如,传输证明)必须由服务节点处理,而其他ioam数据(例如,跟踪和性能)主要由中央站/控制器使用。传输证明数据是由节点写入分组的元数据中的数据,以验证分组沿分组遍历的路径经过网络中的给定节点/实体。在给定路径中可能有几个这种“检查点”节点。第三,当存在分组丢弃时,传输中的ioam数据丢弃(因为ioam数据在分组内携带)。然而,该ioam数据对于排除和调试分组丢弃的原因很有用。

ietf草案https://tools.ietf.org/html/draft-brockners-inband-oam-data-04#第4.1节详细介绍了ioam路径跟踪记录中使用的用于跟踪的分组格式。有两种记录路径跟踪信息的方法。第一种是在分组中预分配元数据容器。每个节点以距报头的当前偏移量更新其数据,并更新路径中下一节点将使用的偏移量。有称为“八位位组-左”的字段,该字段指示在元数据容器中针对路径跟踪数据保留了多少空间。第二种是将分组逐渐增长到最大大小。每个节点将其跟踪数据添加到ioam跟踪报头之后,直到报头中指示的最大大小为止。有称为“最大长度”的字段,该字段指定分组可以从路径跟踪数据到达的最大大小。当“八位位组-左”字段为零或达到“最大长度”时,路径跟踪记录停止。因此,在预分配方法和增量方法中,仅记录部分数据,否则分组的大小可能不自然地增长。

根据本文中提出的实施例,当ioam数据被添加并且剩余要包括的大小不足时,则节点导出数据并重置收集的跟踪元素以为更多数据腾出空间。这样,可以限制报头中的空间,并且仍然有可能获得足够相关的信息。如果分组被丢弃,这还将有助于确定分组被丢弃的位置/路径子集。

首先参考图1,示出了根据示例实施例的系统10的图。该系统包括网络控制器(管理实体)20、收集器22(1)和驻留在网络40中的多个网络节点(简称为“节点”)30(1)至30(n)。网络40的30(1)至30(n)可以是特定ioam域50的一部分,并且可以有其他ioam域60和70等,它们在网络控制器20的控制下或在单独/不同的网络控制器的控制下。为了简单起见,在图1中仅示出了单个网络控制器20。然而,图1示出了可以存在针对其他ioam域60和70中的每个的专用收集器实体,其中收集器22(2)用于域60,收集器22(3)用于域70。

节点30(1)是域50的入口节点,节点30(n)是出口节点。对于图1所示的示例网络,节点30(1)、30(2)、30(3)、30(4)和30(5)是中间节点或传输节点的示例。

分组80被入口节点30(1)接收。此时,分组可以包括传输报头82和有效载荷84。传输报头82可以是例如因特网协议版本6(ipv6)报头,但是其他传输报头类型也是可能的。有效载荷84可以是分组80携带的任何类型的数据。在节点30(1)将分组转发到下一跃点(例如,节点30(2))之前,节点30(1)添加元数据报头86,以及将元数据添加到元数据报头86中,以形成分组80’。下面进一步描述元数据报头86和元数据的示例,但是通常,元数据报头86填充有路径相关信息。当分组80’被其他节点中的每个节点(例如,节点30(2)、30(3)、30(4)、30(5)等)接收时,每个节点通过将更多元数据添加到元数据报头来更新报头86中的元数据。根据本文提出的技术,不是等待直到分组到达出口节点30(n)以获得对元数据报头86中的累积的元数据的访问,而是分组路径中的一个或多个中间/传输节点可以将元数据报头86中累积的元数据的至少一部分导出到期望的目的地,例如到收集器22。这在图1中的标号100和110处示出,来自节点30(4)和30(5)。收集器22(1)可以是网络分析实体或应用,其可以存储和分析接收到的导出数据,或者使所存储的导出数据可用于另一实体进行分析。在一些实施例中,收集器22(1)的功能可以与网络控制器20的功能集成在一起。

在一个示例中,元数据报头86是ioam报头,并且元数据是ioam元数据。此外,报头86中包括的元数据的示例包括针对分组遍历的每个节点的标识符、时间戳、访问的接口、队列深度等。元数据的其他示例包括:在每个节点处花费的时间、节点状态(包括中央处理器(cpu)使用情况,输入/输出(i/o)使用情况、内存使用情况,节点的地理位置等)。

当具有ioam元数据的分组从一个ioam域遍历到另一个ioam域时,此处提出的机制允许移除ioam元数据、将ioam元数据发送到专用于给定域的收集器(例如域50的收集器22(1))、将不具有元数据但具有ioam空容器的分组发送到下一个域(例如域70),以收集新域的新元数据,其最终被发送到仅管理该新域的收集器域(例如域70的收集器22(3))。

在本文中提出了使得在任何跃点处都能够导出ioam数据的机制,包括传输节点,例如图1的示例中的节点30(2)、30(3)、30(4)和30(5)。传输节点可以被配置为导出ioam数据,并根据本地决策选择从分组中优选地移除ioam数据(的一部分)。节点将导出的ioam数据包括在遥测分组或消息中,如附图标记90所示。本地决策可以是:(1)分组或元数据报头中缺少可用空间:或(2)管理原因,例如ioam域中的管理边界,使得期望并非所有节点都具有ioam数据的完全可见性;或者(3)其他触发器,例如每种类型得元数据的语义。

此外,可能存在将仅移除ioam数据得一部分的情况(即保留传输证明数据和端到端数据,但移除(部分)跟踪数据)。

现在参考图2。图2图2类似于图1,示出了上述技术的第一示例用例。图2示出了当路径长度超过分组中或分组的用于记录路径相关信息的元数据报头中可用的数据空间时,缺乏可见性的问题的解决方案。解决方案是使中间/传输节点导出沿分组路径收集的至少一些累积元数据,并重置路径跟踪元数据的累积,以允许在元数据报头中进一步收集和累积新的路径跟踪元数据。这在图2中示出,例如,附图标记200和210分别用于中间/传输节点30(3)和30(5)。

基于在给定节点上配置的某些策略,当没有更多空间时,节点导出已累积的所有元数据,并用新数据覆写现有数据。更具体地,在图2的示例中,节点30(1)接收包括ipv6报头222和有效载荷224的分组220。在步骤240,节点30(1)添加ioam报头226(并且将ioam元数据添加到报头226),并且结果分组被发送到节点30(2)。ioam报头226包括例如报头字段230、传输证明数据232和跟踪数据234。

接下来,节点30(2)从节点30(1)接收结果分组,并且在242a处,用ioam元数据更新ioam报头,并在网络中发送分组。节点30(3)从节点30(2)接收结果分组。节点30(3)确定分组(或ioam报头226)中没有足够的可用空间来添加更多ioam元数据。结果,在242b处,节点30(3)复制ioam报头226中包含的所有ioam元数据,用于在遥测分组(未显示)中导出到期望的目的地,例如如200所示的收集器22(1)。在这样做时,节点30(3)将重置从节点30(3)向前的路径跟踪。节点30(3)重置路径跟踪,并且节点30(3)通过用适合于节点30(3)的新数据覆写ioam元数据报头226的内容来更新ioam报头226。节点30(3)在网络上转发结果分组。

节点30(4)从节点30(3)接收分组。在242c处,节点30(4)确定分组中(例如,元数据报头226中)有足够的空间来添加更多数据,因此它用适合于节点30(4)的元数据来更新ioam报头226,并在网络中转发分组。

节点30(5)从节点30(4)接收分组。如同节点30(3),在242d处,节点30(5)确定分组(或ioam报头226)中没有足够的可用空间来添加更多ioam元数据。结果,在242d处,节点30(5)复制ioam报头226中包含的所有ioam元数据,以在遥测分组(未示出)中导出到期望的目的地,例如如210所示的收集器22(1)。在这样做时,节点30(5)将重置从节点30(5)向前的路径跟踪。节点30(5)重置路径跟踪,并且节点30(5)通过用适合于节点30(5)的新数据覆写ioam元数据报头226的内容来更新ioam报头226,节点30(5)在网络中转发结果分组。

最终,分组到达节点30(n),即出口节点。在244处,作为出口节点的节点30(n)将从分组中移除ioam报头,并且在260处,将ioam报头中的累积的ioam数据导出到期望的目的地,例如收集器22(1)。

在前面的示例中,当节点30(3)和30(5)执行传输中导出时,节点可以导出所有累积的数据,但是仅用新数据覆写需要覆写的内容,而不必覆写所有累积的数据。

使用以上结合图2描述的技术,接收导出的数据的实体,例如收集器22(1),将接收路径的所有相关数据(运输证明数据和跟踪数据),但是以片段的形式,每个片段被单独导出。例如,节点30(3)将导出占从节点30(1)到节点30(2)的路径的一部分的累积的ioam元数据,节点30(5)将导出占从节点30(3)到节点30(4)的路径的一部分的累积的ioam元数据,节点30(n)将累积占从节点30(5)到节点30(n)路径的剩余部分的ioam元数据。接收到导出的元数据的实体,例如收集器22(1),然后可以将来自多个单独导出的记录的分组路径的整个视图拼凑在一起。

现在参考图3,图3示出了针对ioam元数据的传输中选择性和部分导出的示例用例(例如,在元数据头中保留传输证明数据232,但是导出跟踪数据234)。在该示例中,节点30(3)和30(5)再次在300和310处导出累积的元数据,但是不是所有累积的元数据。在步骤320、322a-322d和324处描绘的分组流类似于图2所示的分组流240、242a-242d和244,除了来自节点30(3)的导出322b和节点322d处来自节点30(5)的导出是例如仅跟踪数据234的遥测分组(未示出)中的导出,如在330处所示。累积的传输证明数据232将保留在报头226中。当进行部分导出时,节点仅需要重置ioam数据中导出的那部分,例如累积的跟踪数据234。最后跃节点30(n)还将所有累积的元数据导出到收集器22(1),如附图标记360所示。

现在参考图4,图4示出了其中触发导出的条件与ioam报头中的可用空间无关的示例实施例。相反,为了帮助在分组丢弃时进行故障隔离,可以配置/指示网络中的多个中间节点导出ioam数据。目的地实体,例如收集器22(1),可以将来自多个出口点的ioam数据相关联以隔离分组丢弃。在图4所示的示例场景中,分组丢弃发生在节点30(3)和30(4)附近的路径中的某处,如附图标记400所示,并且节点30(4)导出累积的ioam元数据,如附图标记410所示。

示例中的分组流如下。在420处,节点30(1)将ioam报头226添加到分组220,并将适合于节点30(1)的数据添加到ioam报头226。节点30(1)将结果分组发送到节点30(2)。节点30(2)从节点30(1)接收分组,并且在422a处,节点30(2)用适合于节点30(2)的数据更新ioam报头,并将分组发送到节点30(3)。节点30(3)从节点30(2)接收到分组,并且在422b处用适合于节点30(3)的数据更新ioam报头。然而,分组在节点30(3)和节点30(4)之间的某处丢弃/丢失。作为示例,节点30(4)被配置为将遥测分组(未示出)中的元数据的至少一部分导出到收集器22(1)。

当分组丢弃发生时,有多种方式可以从一个或多个节点触发导出。根据一种技术,网络控制器20可以向分组丢弃附近的一个或多个节点发送带外命令,该带外命令配置这些一个或多个节点以将ioam元数据导出到控制器20。这些一个或多个节点将开始将ioam元数据导出到控制器,直到控制器20命令它们停止导出ioam元数据。根据另一技术,网络控制器20可以向该路径中的节点(例如,节点30(1))发送命令,该命令使该节点在ioam报头226中包括标志以触发该节点之后的一个或多个节点,从而导出其部分或全部累积的ioam元数据。接收到在ioam报头中设置了该标志的分组的节点将识别该标志的存在,并通过将累积的元数据导出到目的地(例如,网络控制器20)来进行响应。后一种技术的优点在于导出将是选择性的,也将是临时的,由包括ioam报头中设置的该标志的分组触发。

在图1至图4中,导出操作一般包括三个步骤:(1)将元数据头的分组转发路径中的元数据的至少一部分复制到遥测分组或消息中;(2)从报头中移除元数据的该部分,并重置元数据字段以使其可重复使用以存储新的元数据;以及(3)将遥测分组/消息中包括的收集数据发送到收集点或目的地实体,例如网络收集器22(1)。

在任何前述实施例中,当进行跟踪数据重置时,还对报头中的信息进行重置,该信息指示分组是否满足某个初始(未满足)条件。例如,可以将上述“八位位组-左”字段重置为指示ioam元数据头中有可用空间。

现在参考图5,图5示出了以上在图2至图4中参考的ioam报头226的报头230的示例。在一种形式中,报头230包括ioam跟踪类型字段500、最大长度字段510和一个或多个标志520。标志520之一,例如一位标志522,可以被分配以触发针对上面结合图3描述的分组丢弃实施例的ioam元数据的选择性导出。标志522,在被设置为“1”时可以向节点指示将要导出其ioam元数据,而在被设置为“0”时,可以向节点指示将不导出其ioam元数据。

仍参考图5,最大长度字段510也可以用于本文提出的实施例的目的。从以上对图1和图2的描述中回顾,最大长度被节点用来确定分组的元数据报头何时是满的。因此,诸如参照图1至图4的网络控制器20之类的控制实体可以在报头230中设置最大长度字段510的值,以使节点在沿路径的某个点处导出其累积的元数据。如果期望沿网络路径以某个节点跃间隔(hopinterval)导出ioam数据,则将该字段的值设置为一个值,该值将导致在边缘节点(入口节点和出口节点)之间以期望的节点跃间隔发生导出。例如,如果网络的直径为8个节点,并且每个节点向ioam报头添加10个字节的元数据,并且期望在每个第3个节点处导出ioam数据,则将最大长度字段510设置为等于3个节点将累积的数据量,或30个字节(例如,不是80个字节)。这将导致每第3个节点导出其累积的元数据。因此,通过为最大长度字段510设置适当的值,网络控制器20可以控制网络中导出ioam数据的节点的间隔以沿路径创建多个导出点,这对于隔离故障可能是有用的。

在图1至图4中,当节点将元数据导出到目的地(例如,控制器22(1))时,由于累积的数据的性质,来自多个节点的元数据可能交叠。接收到导出数据的目的地可以使用片段偏移/更多片段注释方案,以相对于来自分组路径中其他节点的导出数据(可能交叠)来识别/区分来自给定节点的导出数据。这在图6中示出,其中对于每个接收到的导出的ioam元数据610(1)至610(m),存在片段偏移/更多片段字段620(1)至620(m)用于从节点重新组装接收到的导出数据。例如,分组的生存时间(ttl)字段(其在分组遍历的每个跃点处减少一),在包括在导出的数据中时,可用于对从网络中的多个节点导出的数据进行排序。

现在参考图7,图7示出了根据本文提出的实施例的在网络路径中的一个或多个中间/传输节点处执行的方法700的流程图。图7所示的流程图是流程图意指对于本文描述的所有实施例是通用的。在710处,接收到分组,该分组具有报头,该报头包括随着分组沿网络路径行进而累积的元数据。在720处,节点检测触发条件是否发生。在730处,响应于检测到触发条件发生,节点将报头中累积的元数据的至少一部分导出到目的地实体(例如,结合图1-4描述的收集器22(1)),使得在将元数据的该部分导出后将其从报头中移除。更具体地,如上所述,导出操作730包括:将元数据的部分复制到遥测分组中,从报头中移除元数据的部分;并将遥测分组发送到目的地实体。

如上所述,触发条件可以采取多种形式。触发条件可以是节点确定分组中没有可用空间用于附加元数据。在这种情况下,触发条件可以基于:(a)节点确定报头的长度将超过与报头相关联的最大长度字段中的值所指定的最大长度;(b)节点检测到报头的字段中表明报头中没有可用空间用于附加元数据的指示符;或(c)达到分组的最大大小。

在又一种形式中,触发条件是节点确定分组中包括的元数据的部分对于位于不同管理域(例如,不同ioam域)中的一个或多个节点不可见的情况,如以上结合图1所述。

在再一种形式中,触发条件基于元数据的类型。这种条件的一个示例是当跟踪数据存在并且分组离开域时。收集的跟踪数据的类型可能限制其对域外实体的公开。跟踪中节点标识符(id)的存在可以公开网络的内部拓扑,因此可以作为剥离(移除)和导出数据的原因之一。

在又一种形式中,触发条件是节点确定报头的长度将超过与报头相关联的最大长度字段中的值所指定的最大长度,其中最大长度字段种的值被设置为使得节点沿路径以跃间隔导出至少一部分元数据。诸如网络控制器20之类的实体可以设置最大长度字段的值,并且命令图1至图4中的入口节点(例如,节点30(1))以在将ioam报头添加到分组时使用该值。

在又一个变型中,触发条件是在报头中存在预定的指令指示符,诸如在ioam报头的报头字段中的标志,如图5所示。指令指示符可以由网络控制器实体,例如网络控制器20,或在其控制下设置。网络控制器实体可以命令网络中的节点,例如入口节点,以在分组丢弃发生时将指令指示符包括在报头中以隔离网络中的分组丢弃。

方法700还可以包括:重置导出元数据的报头的部分;以及通过覆写报头的至少一部分来用新的元数据更新报头的该部分。

如以上结合图2至图4所说明的,元数据可以包括路径跟踪数据和传输证明数据。此外,如结合图3描述的,导出可以包括排除路径跟踪数据而不是传输证明数据。

在从报头导出元数据的部分之后,导出元数据的报头的部分被重置,因此,节点可以通过覆写报头的部分来用新的元数据更新报头的部分。如上所述,报头可以是ioam报头。

现在参考图8。图8示出了被配置为执行本文所述的操作的网络节点800的框图,例如图1至图4中所示的任何网络节点30(2)、30(3)、30(4)和30(5)。网络节点800包括一个或多个处理器810、存储器820、总线830和网络处理器单元840。处理器810可以是微处理器或微控制器。网络处理器单元840可以包括一个或多个专用集成电路(asic),并且促进网络设备800与其他网络节点以及网络控制器20之间的网络通信。存在多个网络端口842,节点800在这些端口处接收分组,并且节点800从这些端口将分组发送到网络中。处理器810执行与存储在存储器820中的软件相关联的指令。具体地,存储器820存储导出逻辑850的指令,该指令在由处理器810执行时使处理器810执行本文所述的导出操作。存储器820还存储从网络控制器接收的配置信息860,以根据期望的网络功能来配置网络节点。应当注意,在一些实施例中,导出逻辑850可以以固件的形式实现,该固件由asic作为网络处理器单元840的一部分进行处理。

存储器820可以包括现在已知或以后开发的任何类型的只读存储器(rom)、现在已知或以后开发的任何类型的随机存取存储器(ram)、磁盘存储介质设备、防篡改存储装置、光学存储介质设备、闪存设备、电、光或其他物理/有形存储设备。通常,存储器820可以包括一种或多种由包括计算机可执行指令的软件编码的有形(非暂时性)计算机可读存储介质(例如,存储设备),并且当该软件被执行(由处理器810执行)时,它可用于执行本文所述的网络节点操作。

现在参考图9,图9示出了根据示例实施例的由网络控制器(例如,网络控制器20)执行的方法900的流程图。方法900描绘了网络控制器可以执行的一些操作,但不一定是全部的操作。在910处,网络控制器确定要执行的动作。例如,在915处,网络控制器可以在其控制下接收网络中的分组丢弃的通知或以其他方式获悉网络中的分组丢弃。如果是,则在920处,网络控制器可以命令节点(例如入口节点)或恰好在网络中怀疑分组丢弃发生处之前的节点以当分组丢弃发生时将指令指示符(例如,标志)包括在报头中,要包括在元数据报头中的指令指示符将导致网络节点在检测到指令指示符时导出元数据。结果,所有能够识别指令指示符并导出元数据的节点都将这样做。网络控制器可以允许该导出继续进行,直到分组丢弃的原因和/或位置被隔离为止,如925处的指示符。一旦原因和/或位置被隔离,则在930处,网络控制器将终止包括用于导出元数据的指令指示符。或者,即使原因和/或位置未被隔离,网络控制器也可以在超时一段时间后终止包括该指示符,如935所示。这是因为通常不期望节点在一段不确定的时间内导出元数据。

作为另一动作的示例,网络控制器20可以按某些常规/预定的跃间隔配置节点导出,如940所示。在945处,网络控制器命令节点(例如,入口节点)以将报头的最大长度的值包括在报头字段中,其中最大长度字段中的值被设置为使得节点沿路径以常规/预定的跃间隔导出至少一部分元数据。应该理解的是,当分组丢弃情况发生时,也可以执行操作940和945,但是这些操作对于其他情况也具有实用性。

现在参考图10。图10示出了可以执行本文描述的网络控制器20的功能的计算/控制实体1000的框图。计算/控制实体1000包括一个或多个处理器1010、存储器1020、总线1030和网络接口单元1040,诸如使网络连通的一个或多个网络接口卡。存储器1020存储用于出口控制和管理逻辑1050的指令,该指令在由处理器1010执行时使处理器执行本文所述的网络控制器操作。

存储器1010可以包括现在已知或以后开发的任何类型的rom、现在已知或以后开发的任何类型的ram、磁盘存储介质设备、防篡改存储装置、光学存储介质设备、闪存设备、电学、光学或其他物理/有形存储设备。通常,存储器1020可以包括一个或多个由包括计算机可执行指令的软件编码的有形(非暂时性)计算机可读存储介质(例如,存储设备),并且当该软件被执行(由处理器1010执行)时,它可用于执行本文描述的网络控制器操作。

总而言之,本文提出了基于各种触发器从多个中间节点导出和移除跟踪元数据的机制/技术。跟踪数据在导出时被重置,以允许新的跟踪数据记录。这允许中间导出分组元数据,其中ioam数据为示例。有几种方法可以用于中间节点基于各种触发器(例如,分组大小,元数据(ioam数据)大小、分组/ioam数据长度的配置阈值、元数据类型或ioam数据中的指令、本地配置或策略)导出元数据。

因此,在一种形式中,提供了一种方法,该方法包括:在网络路径中的一个或多个中间节点处:接收具有报头的分组,该报头包括随着分组沿网络路径行进而累积的元数据;检测触发条件是否发生;以及响应于检测到触发条件发生,将在报头中累积的元数据的至少一部分导出到目的地实体,使得在导出元数据的该部分后将其从报头中移除。

在另一种形式中,提供了一种装置,包括:多个端口,在这些端口处可以从网络接收分组,并且可以从这些端口将网络分组发送到网络中;以及处理器,其被配置为:接收具有报头的分组,该报头包括随着分组沿网络路径行进而累积的元数据;检测触发条件是否发生;以及响应于检测到触发条件发生,将报头中累积的元数据的至少一部分导出到目的地实体,使得在导出元数据的该部分后将其从报头中移除。

在又一种形式中,一种或多种非暂时性计算机可读存储介质,其编码有指令,这些指令在由节点的处理器执行时使处理器:接收具有报头的分组,该报头包括随着分组沿网络路径行进时累积的元数据;检测触发条件是否发生;以及响应于检测到触发条件发生,将在报头中累积的元数据的至少一部分导出到目的地实体,使得在导出元数据的该部分后将其从报头中移除。

以上描述仅旨作为示例。尽管本文中以一种或多种特定示例的方式对技术进行了说明和描述,但是由于在权利要求的范围和权利要求的等同物的范围内可以进行各种修改和结构改变,因此,本发明并不限于所示出的细节。


技术特征:

1.一种方法,包括:

在网络中的路径中的一个或多个中间节点处:

接收具有报头的分组,该报头包括随着所述分组沿所述网络中的所述路径行进而累积的元数据;

检测触发条件是否发生;以及

响应于检测到所述触发条件发生,将在所述报头中累积的所述元数据的至少一部分导出到目的地实体,使得在导出所述元数据的该部分后将其从所述报头中移除。

2.根据权利要求1所述的方法,其中,导出包括:

将所述元数据的所述部分复制到遥测分组中;

从所述报头中移除所述元数据的所述部分;以及

将所述遥测分组发送到所述目的地实体。

3.根据权利要求1或2所述的方法,其中,所述触发条件是所述节点确定在所述分组中没有用于附加元数据的可用空间。

4.根据权利要求3的方法,其中,所述触发条件基于以下各项:(a)所述节点确定所述报头的长度将超过由与所述报头相关联的最大长度字段中的值所指定的最大长度;(b)所述节点在所述报头的字段中检测到指示符,该指示符表示所述报头中没有用于附加元数据的可用空间;或者(c)达到分组的最大大小。

5.根据权利要求1至4中任一项所述的方法,其中,所述触发条件是所述节点确定所述元数据的所述部分对于位于不同管理域中的一个或多个节点不应为可见的。

6.根据权利要求1至5中任一项所述的方法,其中,所述触发条件基于元数据的类型。

7.根据权利要求1至6中任一项所述的方法,其中,所述触发条件是所述节点确定所述报头的长度将超过由与所述报头相关联的最大长度字段中的值所指定的最大长度,其中,所述最大长度字段中的值被设置为使节点沿所述路径以跃间隔导出所述元数据的至少一部分。

8.根据权利要求1至7中任一项所述的方法,其中,所述触发条件是在所述报头中存在预定指令指示符。

9.根据权利要求8所述的方法,其中,所述指令指示符由网络控制器实体设置。

10.根据权利要求9所述的方法,还包括:当分组丢弃发生时,所述网络控制器实体命令节点将所述指令指示符包括在所述报头中。

11.根据权利要求1至10中任一项所述的方法,还包括:

重置导出元数据的所述报头的所述部分;以及

通过覆写所述报头的所述部分,用新的元数据更新所述报头的所述部分。

12.根据权利要求1至11中任一项所述的方法,其中,所述元数据包括路径跟踪数据和传输证明数据,并且其中,导出包括导出所述路径跟踪数据而不是导出所述传输证明数据。

13.根据权利要求1至12中任一项所述的方法,其中,所述报头是现场操作、管理和维护(ioam)报头。

14.一种装置,包括:

多个端口,在所述多个端口处能够从网络接收分组,并且能够从所述多个端口将网络分组发送到所述网络;以及

处理器,所述处理器被配置为:

接收具有报头的分组,所述报头包括随着所述分组沿所述网络中的所述路径行进而累积的元数据:

检测触发条件是否发生;并且

响应于检测到所述触发条件发生,将在所述报头中累积的所述元数据的至少一部分导出到目的地实体,使得在导出所述元数据的该部分后将其从所述报头移除。

15.根据权利要求14所述的装置,其中,所述处理器被配置以通过以下方式导出:

将所述元数据的所述部分复制到遥测分组中;

从所述报头移除所述元数据的所述部分;以及

将所述遥测分组发送到所述目的地实体。

16.根据权利要求14或15所述的装置,其中,所述触发条件是所述节点确定所述分组中没有用于附加元数据的可用空间。

17.根据权利要求14至16中的任一项所述的装置,其中,所述触发条件是所述处理器确定所述报头的长度将超过由与所述报头相关联的最大长度字段中的值所指定的最大长度,其中,所述最大长度字段中的值被设置为使得节点沿所述路径以跃间隔导出所述元数据的至少一部分。

18.根据权利要求14至17中任一项所述的装置,其中,所述触发条件是在所述报头中存在预定指令指示符。

19.一种或多种非暂时性计算机可读存储介质,其编码有指令,所述指令在由节点的处理器执行时使所述处理器:

接收具有报头的分组,该报头包括随着所述分组沿网络中的所述路径行进而累积的元数据;

检测触发条件是否发生;以及

响应于检测到所述触发条件发生,将在所述报头中累积的所述元数据的至少一部分导出到目的地实体,使得在导出所述元数据的该部分后将其从所述报头移除。

20.根据权利要求19所述的非暂时性计算机可读存储介质,其中,使所述处理器导出的指令包括使所述处理器执行以下操作的指令:

将所述元数据的所述部分复制到遥测分组中;

将所述元数据的所述部分从所述报头移除:以及

将所述遥测分组发送到目的地实体。

21.一种装置,其包括网络中的路径中的一个或多个中间节点,所述装置包括:

接收单元,用于接收具有报头的分组,该报头包括随着所述分组沿所述网络中的所述路径行进而累积的元数据;

检测单元,用于检测触发条件是否发生;以及

导出单元,用于响应于检测到所述触发条件发生而将在所述报头中累积的所述元数据的至少一部分导出到目的地实体,使得在导出所述元数据的该部分后将其从所述报头移除。

22.根据权利要求21所述的装置,还包括用于实现根据权利要求2至13中任一项所述的方法的单元。

23.一种计算机程序、计算机程序产品或计算机可读介质,其包括指令,所述指令在由计算机执行时使所述计算机执行根据权利要求1至13中任一项所述的方法的步骤。

技术总结
提供了一种在网络路径中的一个或多个中间节点处执行的方法。该节点接收具有报头的分组,该报头包括随着分组沿网络路径行进而累积的元数据。节点检测是否发生了触发条件。响应于检测到发生了触发条件,节点将累积在报头中的元数据的至少一部分导出到目的地实体,使得在将元数据的该部分导出之后将其从报头中移除。

技术研发人员:世维莎·赛布雷·班得瑞;弗兰克·布罗克纳斯;阿克沙亚·纳达哈里;卡洛斯·M·皮格纳塔鲁
受保护的技术使用者:思科技术公司
技术研发日:2018.10.30
技术公布日:2020.05.19

转载请注明原文地址: https://bbs.8miu.com/read-267657.html

最新回复(0)