具体实施方式
概述
诸如交换机、路由器或网络处理器等网元通常在本地缓冲器中储存从通信网络接收的分组,并经由选定的输出端口,例如,根据预定路由计划,向通信网络传输所储存的分组。
包括大量网元的通信网络的性能可能由于各种原因而降低。例如,当网元将属于多个数据流的分组路由到公共输出端口时,可能发生拥塞或分组丢弃。在本专利申请的上下文中,术语“数据流”是指通过通信网络从特定源向特定目的地发送的一系列分组。
本文所述实施方式提供了用于报告来自网元的信息以供分析的改进的方法和***。原则上,网元可以为了分析而报告在本地评价的各种性能指标。这样的指标的示例包括缓冲器中的队列的占用水平、诸如数据流计数和拥塞事件计数等计数指标,以及网元的各种操作属性的统计指标。然而,此类指标所提供的信息往往不足以用于调试某些故障条件,例如在数据流层级上分析性能问题。
在所公开的技术中,通过提供在期望的时间储存于网元的缓冲器中的实际分组(即,原始的非统计信息)的快照来实现对网元的状态的最大可见度。
在所公开的技术中,快照包括在给定的快照时间储存于网元的缓冲器中的一些或所有分组。通过提供这样的详细快照,能够以在无所公开的技术的情况下不可能的精细分辨率来分析复杂的故障条件。所公开的技术例如可适用于包括在其中分配空间用于对分组进行排队的共享缓冲器的网元,以及随时间动态变化的用于检测故障条件(例如,拥塞)的各种阈值。
为了产生快照,网元可以通过停止分组接收和传输而同时转储缓冲器内容来冻结缓冲器的状态。然而,由于至少两个原因,这一方法是不利的。首先,不期望地中断了网元的操作,并且其次,基于原始缓冲器内容分析故障条件需要复杂的处理。在所公开的技术中,网元在正常操作期间提供其缓冲器内容的快照,即使缓冲器内容由于分组接收和传输而不断变化的话亦如此。
在一些实施方式中,网元响应于接收到快照请求而发起快照的生成。例如,网元可以经由合适的接口来接收快照请求。备选地,通过硬件,例如,响应于检测到诸如拥塞等故障条件,或者响应于接收到触发快照生成的专用分组,来生成快照。
在所公开的实施方式中,产生快照涉及对网元中在快照请求之前接收到的分组与在快照请求之后接收到的分组加以区分。网元通过仅对在快照请求之前接收到的分组进行镜像以供经由专用端口(或多个端口)传输来报告快照,而在快照请求之后接收到的分组则不被镜像并且因此被排除在快照之外。
在一些实施方式中,交换机作出选择以对排定用于传输且满足预定条件的分组进行镜像。例如,所述条件可以选择对经由给定端口接收的、去往给定端口的、具有一定优先级的、驻留在给定队列中的分组等进行镜像。在实施方式中,交换机将满足条件的排定分组拷贝到分配给专用端口的外出队列。因此可以生成缓冲器内容的选择性快照并经由专用端口将其报告给用户。
在一些实施方式中,交换机通过在所储存的分组的相应的分组描述符中写入具有两种可能状态的快照标志的更新状态来标记用于镜像的分组。交换机在接收快照请求之前将标志初始化成所述状态中之一,并响应于接收到快照请求而将该标志翻转成另一状态。在排定了给定的分组用于传输时,交换机检查分组描述符,并且如果描述符中的值不同于标志的当前值,则将该分组镜像到专用端口。
在一些实施方式中,对分组进行镜像涉及对所要镜像的分组应用附加的处理,以便例如减少传输镜像的分组所需的带宽。在示例实施方式中,交换机对镜像的分组进行采样,从而实际上将仅会对用于镜像的选定分组的子集进行镜像。在另一实施方式中,交换机仅对分组的报头部分进行镜像。在又一实施方式中,交换机对分组的数据部分应用数据压缩以便减小分组大小。
***描述
图1是示意性地图示根据本文所述实施方式的支持提供其缓冲器内容的快照的网络交换机20的框图。为了简洁起见,网络交换机20也简称为“交换机”。
交换机20包括多个端口24,用于连接到其他网元或网络节点(未示出)。在本例中,交换机经由多个端口24A连接到通信网络30,并且经由端口24B连接到分析器34以供调试目的。在备选实施方式中,分析器被包含在通信网络中。端口24A和端口24B中的每一个都充当用于从通信网络或分析器接收传入分组的输入端口和用于向通信网络或分析器传输传出分组的输出端口。备选地,给定的端口可以充当输入端口或输出端口。
通信网络30可以包括根据任何合适的协议标准进行操作的分组网络,诸如IP网络或以太网网络。在备选实施方式中,所公开的技术可以实施于其他种类的网元中,诸如路由器、网桥或网络处理器。网元和通信网络可以根据诸如InfiniBand(IB)等任何其他合适的通信标准或协议进行操作。
分析器34包括分析器处理器(未示出),该分析器处理器基于从交换机20(以及有可能从其他网元)接收的状态报告对通信网络30的性能进行分析。在一些实施方式中,网络交换机经由端口24B与分析器34交换各种消息。例如,交换机20可以从分析器34接收用于报告交换机的更新状态的命令。基于所报告的状态,分析器34可以标识交换机20和/或通信网络30中的故障条件,并采取纠正措施,举例而言,诸如根据需要而重新配置交换机20。
虽然在本例中分析器34经由端口24中之一连接到交换机,但在备选实施方式中,分析器34经由管理接口(图中未示出)与交换机通信并从交换机接收快照报告。
在图1的示例中,分析器34经由端口24B本地连接到交换机20。在备选实施方式中,分析器34包括中央实体,该中央实体通过通信网络30从一个或多个网元(举例而言,诸如交换机20)接收用于分析的报告。
交换机20包括分组处理模块40和共享缓冲器44,分组处理模块40用于处理传入分组和传出分组,而共享缓冲器44管理分配缓存资源的各个方面,例如,用于在向通信网络回传之前储存接收到的分组。
共享缓冲器44包括一个或多个进入队列46以及一个或多个外出队列48,进入队列46用于储存经由端口24A从网络抵达的分组,而外出队列48用于储存等待经由端口24A向通信网络传输的分组。在共享缓冲器44中,可以将不同大小的队列动态分配给不同的数据流或者不同的输入端口或输出端口。在备选的交换机实施方式中,还可以使用其中队列具有相同大小的常规缓冲器。
在进入方向上,分组处理模块40对接收到的分组应用各种处理,诸如验证分组净荷中的数据的正确性、分组分类和确定优先次序,以及路由。为此,分组处理模块通常检查分组报头中的某些字段,诸如源地址和目的地地址、端口号以及所使用的底层网络协议。在外出方向上,分组处理模块40使用任何合适的仲裁方案来排定储存在外出队列48中的分组经由相应输出端口的传输。
在一些实施方式中,交换机20在共享缓冲器44的进入队列46中暂时储存尚无外出队列可用的分组或者其处理尚未完成的分组。交换机20在共享缓冲器的外出队列48中储存其路由已经解析并等待传输的分组。在一些实施方式中,除了进入分组队列和外出分组队列之外,交换机还包括用于标识共享缓冲器中经由给定的输入端口接收(并且有可能储存在多个进入队列中)的分组的手段(例如,各种计数器和数据结构,诸如分组描述符)。类似地,交换机可以对共享缓冲器中去往给定的输出端口(以及有可能储存在多个外出队列中)的所有分组进行计数和标识。
交换机20还包括可配置式交换结构50,交换结构50例如根据预定路由计划,经由相应的队列在输入端口与输出端口24A之间转发分组。在一些实施方式中,使用储存成对的输入端口和输出端口之间的关联的转发数据库(Forwarding Database,FDB)(图中未示出)来实施交换结构50。
备选地,交换机20可以保持一组路由规则,例如,每一数据流的路由规则。转发分组通常是基于对分组报头中的某些字段(例如,下列字段中的一个或多个:源地址、目的地地址、底层协议、源端口号和目的地端口号)计算哈希函数。
通常,每个分组属于某个数据流。通过将某个数据流的分组路由到某个端口,交换结构50致使该数据流的分组通过通信网络30经某个路由路径得到递送。根据路由计划,交换机20可以同时将多个数据流路由到公共输出端口。
在本专利申请的上下文中以及在权利要求书中,使用术语“分组”来描述通过网络路由的基本数据单元。不同的网络类型和通信协议针对这样的数据单元使用不同的术语,例如,分组、帧或信元。在本文中,将所有这些数据单元都视为分组。
交换机20还包括交换机控制器60,交换机控制器60执行交换机20的各种管理和分组处理功能。例如,交换机控制器对交换结构50进行配置,以便应用期望的路由计划。通过控制路由计划,交换机20能够致使分组通过通信网络30遍历各个路由路径。在一些实施方式中,交换机控制器60响应于接收到例如来自分析器34的重新配置命令而重新路由给定的数据流。
交换机控制器60包括快照处理机64,快照处理机64按需产生共享缓冲器44中的内容的快照。快照处理器所实行的主要任务包括:
·接收快照配置,该快照配置包括:(i)触发配置,其指定发起快照产生的条件;以及(ii)缓存配置,其指定要在快照报告中包含的共享缓冲器的部分。
·响应于快照请求而发起快照产生。快照请求例如可以是经由端口24B从分析器接收的。备选地或附加地,经由任何其他合适的接口接收快照请求。此外备选地或附加地,由一些硬件事件内部地触发快照请求。在以下描述中,术语“接收快照请求”是指从交换机外部接收快照请求和内部地在交换机内发起快照请求。
·通过对共享缓冲器中在接收快照请求之前和之后接收到的分组加以区分来虚拟地冻结缓冲器内容以供产生快照。
·通过经由专用端口24B对被排定用于向其预期目的地传输的、在快照请求之前接收的,以及满足缓存配置的分组进行镜像来报告所请求的快照。
在本专利申请的上下文中以及在权利要求书中,术语“镜像”意指复制某些缓冲器内容并将复制的内容发送到专用端口(例如,发送到与专用端口相关联的外出队列)——有可能在对该内容应用一些处理之后进行。如下文将会进一步描述,这样的处理对于减小镜像内容的大小可能是有利的。镜像内容将会既经由其预期外出端口传输到其预期目的地,又经由专用端口传输到另一不同的目的地。
应当注意,在实际实现方案中,在接收快照请求的时刻与为了产生快照而(虚拟地)冻结缓冲器内容的实际时间点之间可能存在一些延迟。在本专利申请的上下文中以及在权利要求书中,短语“在接收快照请求之前”意指介于接收快照请求的时间与交换机在其后从快照排除接收到的分组的实际时间之间的任何时间。
将缓存配置在接收快照请求之前,或者作为快照请求的一部分提供给快照处理机。缓存配置可以由网络管理者例如经由端口24B使用分析器34或者使用任何其他合适的接口提供给交换机。通过定义单独的触发配置和缓存配置,交换机可以在复杂场景下生成快照。例如,触发配置指定响应于在给定队列中检测到拥塞条件而触发快照,并且当该触发实际发生时交换机生成缓冲器中该给定队列的快照,或者缓冲器中其分组去往与该给定队列相同的端口的所有队列的快照。
在一些实施方式中,快照处理机通过仅标记在快照请求之前接收于交换机中的分组用于镜像来区分在快照请求之前和之后接收到的分组。在另一实施方式中,快照处理机与在快照请求之后接收到的分组不同地标记在快照请求之前接收到的分组。例如,快照处理机保持快照标志(未示出),并基于该快照标志的当前值来标记接收到的分组(例如,当储存在缓冲器中时),所述快照标志在接收快照请求之前和之后取得不同的相应值。
在一些实施方式中,交换机为共享缓冲器中的分组储存相应的分组描述符。分组描述符包含元数据,该元数据例如可以包括指向实际分组所驻留在的缓冲器中的起始地址的指针、分组大小、接收分组所经由的输入端口、传输分组将会经由的输出端口等。在一些实施方式中,分组描述符包含专用字段,该专用字段由快照处理机64用来标记用于镜像的分组。
图1中所示的交换机20、通信网络30和分析器34的配置为示例配置,其纯粹是为了概念清晰而选择的。在备选实施方式中,可以使用任何其他合适的交换机、通信网络和分析器。交换机20的一些元件,诸如快照处理机64,能够以硬件实现,例如,以一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)实现。附加地或备选地,一些交换机元件,例如交换机控制器60,可以使用软件或者硬件与软件元素的组合来实现。共享缓冲器44可以使用任何合适的存储器来实现,例如,使用随机存取存储器(RAM)来实现。
在本专利申请的上下文中以及在权利要求书中,术语“电路”是指交换机20的除端口24以外的所有元件。在图1中,电路包含分组处理模块40、共享缓冲器44、交换结构50和交换机控制器56,交换机控制器56包括快照处理机64。
在一些实施方式中,可以由用软件编程用以实行本文所述功能的通用处理器来实行电路的一些功能,例如,交换机控制器60。软件例如能够以电子形式通过网络下载到处理器,或者其可以备选地或附加地提供和/或储存在非暂时性有形介质上,诸如磁存储器、光学存储器或电子存储器上。
图2是示意性地图示根据本文所述实施方式的用于使用外出镜像来提供网络交换机中所缓存的分组的快照的方法的流程图。
图2的方法包括通常由交换机20并行执行的进入部分和外出部分,以及可在进入部分和外出部分的执行期间的任何时间(例如,异步地)发生的触发部分。一般而言,进入部分处理分组接收和存储,外出部分处理分组传输和镜像以供报告快照,而触发部分处理响应于接收到快照请求而改变快照标志的值。在图2的示例中,快照标志是二值化的,即,具有两个可能的值,例如,“0”和“1”。
方法的进入部分开始于在初始化步骤100快照处理机将快照标志初始化成其可能的值中之一。使用快照标志用于区分在接收快照请求之前接收到的分组和在快照请求之后接收到的分组。在快照配置步骤104,快照处理机接收快照配置,该快照配置包括触发配置和缓存配置。
缓存配置指定要将快照请求时储存于缓冲器中的哪些分组包含在快照报告中。示例缓存配置包括:
·经由给定输入端口接收的分组。
·经由给定输入端口接收并具有一定优先级级别的分组。
·去往给定输出端口的分组。
·去往给定输出端口并具有一定优先级级别的分组。
·储存在共享缓冲器中的特定队列中的分组。
在一些实施方式中,指定作为一对的输出端口加单个优先级级别的缓存配置相当于指定为缓冲器中的这样的分组分配的外出队列。缓存配置还可以将诸如上文所述定义等一个或多个定义结合起来,例如,为快照指定经由多个特定输入端口接收的、去往给定输出端口的以及具有一定优先级级别的所有分组。
在实施方式中,交换机支持包含某些分组的快照,以及包含多达在快照请求之前储存于缓冲器中的分组的整个集合的快照。然而,这样的宽缓存配置可能具有带宽影响,如下文将会详细描述。
触发配置指定发起快照生成的条件。在一些实施方式中,触发配置指定手动发起产生快照,例如,通过例如使用合适的软件接口(未示出)经由交换机控制器向快照处理机提供快照请求来发起。
备选地,触发配置如本文将会描述的那样指定硬件驱动的触发。在一些实施方式中,分组处理模块40针对各自包含一个或多个条目的一个或多个访问控制列表(AccessControl List,ACL)(未示出)来查询交换机中接收的分组。ACL条目通常包括规则和要对与该规则匹配的分组施加的相应动作(例如,转发或丢掉分组)。在一些实施方式中,ACL保持专用规则,相应动作针对该专用规则要求提供共享缓冲器44的快照。在这样的实施方式中,响应于接收到与专用规则相匹配的分组而触发快照请求。
在另一实施方式中,触发配置指定当在交换机内检测到预定的基于硬件的条件(例如,故障条件)时触发生成快照。例如,由于交换机端口中的一个或多个被拥塞而发生故障条件。
交换机可以使用任何合适的方法来检测拥塞,举例而言,诸如通过标识给定队列的占用水平超过拥塞阈值来检测拥塞。备选地或附加地,交换机可以通过测量缓冲器中的一个或多个队列的填充速率和清空速率来检测拥塞。作为另一示例,交换机响应于使用诸如尾部丢弃或加权随机早期检测(Weighted Random Early Detection,WERD)等分组丢弃方案因缺乏缓存空间丢弃一个或多个分组而检测到故障条件。
在接收步骤108,网络交换机经由输入端口中之一从通信网络接收分组,并且例如根据预配置的路由计划来为接收到的分组选择相应的输出端口。在存储步骤112,交换机将接收到的分组储存在共享缓冲器内分配给选定的输出端口的队列中。
在实施方式中,每个分组连同具有专用镜像字段的相应描述符一起储存。快照处理机通过基于快照标志的值设定相应描述符中的镜像字段来标记储存在共享缓冲器中的分组。如下文将会描述,快照标志的值响应于接收到快照请求而改变,这致使对在快照请求之前接收到的分组和在快照请求之后接收到的分组作出了不同的标记。在步骤112之后,方法循环返回到步骤108,以便从通信网络接收后续分组。
方法的外出部分开始于在排定步骤120分组处理模块对储存在共享缓冲器中的分组进行排定用于传输。排定该分组经由在步骤108为所述分组选择的输出端口进行传输。
在镜像检查步骤124,快照处理机检查分组描述符中的镜像字段以及用于决定所排定的分组是否需要镜像的附加快照准则。在一些实施方式中,快照准则至少包括下列条件:i)分组描述符中的镜像字段具有与快照标志的当前值不同的值,这指示出分组是在快照请求之前接收的;以及ii)分组满足在步骤104所接收的快照配置的缓存配置。
在一些实施方式中,如下文将会描述,被选择用于镜像的分组可经受附加处理,诸如采样、传输分组内容的仅一部分,以及数据压缩。在一些实施方式中,将镜像分组储存在分配给专用输出端口24B的专用外出队列中,以便向分析器34传输。所述处理可以在将镜像分组储存在专用外出队列中之前应用,或者在排定镜像分组以供传输之时应用。
在快照报告步骤128,交换机控制器排定在步骤124镜像的分组经由专用端口的传输,并且方法循环返回到步骤120以便排定在共享缓冲器中排队的附加分组的传输。
方法的触发部分包括触发步骤132,在该触发步骤快照处理机接收快照请求,并且在响应中,翻转二值化的快照标志的值,例如,从“1”翻转成“0”(或者反之亦然)。作为结果,与在翻转快照标志之前接收到的分组相比,将会用互补的二值化的值来标记在翻转快照标志之后接收到的分组(在相应的分组描述符的镜像字段中标记)。当在步骤120将会排定标记有翻转的值的分组以供传输时,这些分组将不满足上述快照准则的部分(i),并且因此将不会被镜像,并且将不会是报告的快照的一部分。
快照处理机可能在报告较早时发起的快照已经结束之前接收到快照请求,例如因硬件事件而接收到快照请求,这可能会干扰正确的快照报告。在一些实施方式中,快照处理机忽略在对活动快照的报告结束之前到达的快照请求。在这样的实施方式中,快照处理机仅在证实对任何先前触发的快照的报告已经结束之后才在步骤132翻转快照标志。
在一些实施方式中,快照处理机支持每次报告单个快照。作为结果,快照处理机需要在开始生成另一快照之前标识出对一个快照的报告已经结束。快照处理机能够以各种方式检测快照已经结束。一般而言,报告快照在所要镜像的所有分组不再驻留于共享缓冲器中时结束。在示例实施方式中,响应于接收到快照请求,快照处理机保存满足快照配置的缓存配置的、在共享缓冲器中排队的分组的一个或多个分组计数。当排定镜像分组以供经由专用端口传输时,快照处理机相应地递减相关的分组计数。快照处理机响应于检测到所有的分组计数变成零而检测到报告快照已经完成。
在备选实施方式中,快照处理机从分析器接收对报告快照已经结束的指示。例如,分析器响应于检测到从分析器接收到快照报告的第一分组起经过的时间长于预定持续时间(例如,预配置的老化时间,由交换机用以从缓冲器移除比该老化时间更旧的分组)而发送该指示。
在一些实施方式中,快照处理机对分组进行镜像,其中将报头部分扩展了。例如,快照处理机向镜像分组的报头添加元数据,诸如接收分组所经由的输入端口、向分组的预期目的地发送该分组所经由的输出端口、分组所储存于的进入队列和/或外出队列、储存在共享缓冲器中的分组的大小等。分析器可以使用这样的元数据,例如根据一个或多个元数据属性来对镜像分组的流中的分组进行分类以供分析。
由于快照报告造成的性能影响
在所公开的实施方式中,被镜像以供经由单个专用端口传输的分组通常经由多个端口传输到其预期目的地。跨端口通向网络的带宽可能远大于可用于经由专用端口传输镜像分组的带宽。作为结果,排队的镜像分组可能迫使交换机延迟原始分组向其预期目的地的传输,这降低了交换机在快照报告期间的吞吐量。
在一些实施方式中,为了适应用于报告快照的有限带宽,快照处理机通过对镜像分组应用附加处理来减少所需的带宽。
一种适应用于报告快照的有限带宽的简单方法是在缓存配置中仅指定缓冲器的有限区段,例如,单个队列或单个输出端口。此外,分析器可在不同时间请求若干个不同的快照,并基于多个快照来分析网络性能。
在一些实施方式中,快照处理机根据某种采样方案对镜像分组进行采样,这致使仅向专用端口传输镜像分组的部分子集。例如,快照处理机实际上可对选定用于镜像的预定N个数目的分组中之一进行镜像。采样比率1/N取决于传输的所有分组的数目与实际镜像的分组的数目之间的带宽比率。在示例实施方式中N=10,并且因此选定用于镜像的分组的仅10%被实际镜像并包含在快照报告中。在其他实施方式中,交换机可以例如根据合适的伪随机选择方案来随机地对镜像分组进行采样。
在许多实践情况中,分析器仅基于在快照中报告的分组的报头中可用的信息来评价网络性能。在这样的情况下,快照处理机在一个实施方式中通过仅将选定用于镜像的分组的报头部分进行排队以供向分析器传输来减少传输镜像分组所需的带宽。例如,假定512字节的分组大小,其报头部分包含128字节,该报头部分单独消耗传输完整分组大小所需带宽的仅25%。
在一些实施方式中,快照处理机通过至少对镜像分组的数据部分应用数据压缩过程来减少传输镜像分组所需的带宽。快照处理机可以应用任何合适的数据压缩方法,举例而言,诸如GZIP数据压缩方法。压缩比率通常取决于分组净荷中的实际内容。
产生快照的示例
在下面的描述中,描述了网络交换机中快照生成的示例。参考图3A和图3B描述该示例。
图3A是示意性地图示根据本文所述实施方式的图1中所描绘的网络交换机的简化视图的框图。图3B是示意性地图示根据本文所述实施方式的产生图3A的交换机的缓冲器的快照的示例的示图。
图3A中的网络交换机的简化视图仅描绘了本例所需的网络交换机20的元件。图3A中,网络交换机的端口24A被标示为IN-X和IN-Z以及OUT-Y,并且分别充当连接到通信网络30的输入端口和输出端口。端口24B被标示为DBG,并且用来连接到分析器34。在本例中,将网络交换机的外出队列48标示为Q_LOW和Q_HIGH,分别用于储存低优先级分组和高优先级分组。
网络交换机经由端口IN-X和端口IN-Z接收分组。为接收到的分组指派低优先级或高优先级级别,并且交换机根据相应的优先级级别将分组储存在Q_LOW或Q_HIGH中。进一步假定:
·经由端口IN-X和端口IN-Z接收的所有分组都是去往端口OUT-Y的。
·在向端口OUT-Y递送分组的过程中,高优先级分组总是先于低优先级分组。
·端口OUT-Y以标示为RY的速率向网络传输数据。
·端口IN-X以比端口OUT-Y的速率快一倍的速率RX接收数据,即,RX=2RY,而端口IN-Z以端口OUT-Y的速率的一半的速率RZ接收数据,即,RZ=RY/2。
·用快照配置对交换机进行了配置,在该快照配置中缓存配置指定经由端口IN-X接收且去往端口OUT-Y的低优先级分组。触发配置将触发条件指定为Q_LOW中的占用水平达到50个或更多个分组。
在图3B的示图中,交换机在时间T0开始经由端口IN-X接收一系列100个分组。分组编号为1…100,并且其指派的优先级针对高优先级和低优先级分别标示为“H”和“L”。如图3B中所示,经由端口IN-X到达的分组具有交错的优先级,1H、2L、3H、…、99H、100L。因此,交换机将奇数编号的分组1H、3H、…、99H储存在Q_HIGH中,而将偶数编号的分组2L、4L、…、100L储存在Q_LOW中。交换机用快照标志值“1”来标记分组1…100中的每一个。
由于RX=2·RY,因此在经由端口IN-X接收这100个分组期间,这些分组中的仅50个经由端口OUT-Y外出。基于仲裁策略,分组1H、3H、…、99H从Q_HIGH外出,而分组2L、4L、…、100L正被储存在Q_LOW中。
在时间T1,将接收到的分组100L储存在Q_LOW中,并且Q_LOW中的占用水平达到50个分组,这触发生成快照。响应于该触发,交换机将快照标志的值从“1”翻转成“0”。应当注意,在时间T1,高优先级分组已经被传输(99H被部分地传输)并且因此在触发时间不驻留于缓冲器中,并且将不会被包含在快照报告中。
与经由端口IN-X接收分组100L并行地,交换机开始以速率RZ=RY/2经由端口IN-Z接收高优先级分组101H…200H。用经更新的快照标志值“0”标记分组101H…200H。由于分组99H的传输清空了Q_HIGH,因此交换机继而开始传输来自Q_LOW的分组2L。分组2L满足缓存配置且其标记值不同于快照标志的当前值,并且因此作为快照的一部分被镜像。
类似的论点适用于分组2L、4L、…、100L和101H…200H,并且如图中所见,只有在快照触发(T1)之前接收到的分组2L、4L、…、100L才经由端口DBG进行镜像。在时间T2,分组100L的传输结束,并且报告快照结束。
应当注意,一般而言,即使在T1与T2之间Q_LOW和Q_HIGH全都包含分组,但根据快照配置仅Q_LOW中的分组才会被镜像。
本文所述实施方式是以举例方式给出的,并且亦可使用其他合适的实施方式。例如,在上文所述实施方式中,交换机通常每次产生一个快照。在备选实施方式中,可以同时产生和报告多个快照。对于多个快照的支持可以通过各种方式来实现。例如,在一个实施方式中,交换机管理多个快照标志,每个快照标志具有不同的两个值并且关联于相应的快照配置。在另一实施方式中,交换机管理可具有用于支持多个快照的不止两个值的快照标志。
在上文所述实施方式中,交换机经由单个专用端口报告快照。然而,在备选实施方式中,交换机可以经由多个专用端口报告快照。在一个实施方式中,交换机经由属于公共链路聚合组(Link Aggregation Group,LAG)的多个端口报告快照。
虽然上文所述实施方式主要涉及在工作中产生缓冲器内容的快照,但所公开的实施方式类似地可适用于离线调试,其中停止经由交换机的业务流以便产生快照。
应当明白,上文所述实施方式是以示例的方式引用的,并且以下权利要求并不限于上文具体示出和描述的内容。确切地,其范围包括上文所述各个特征的组合及子组合二者,以及其在本领域技术人员阅读前文描述后将会想到且未在现有技术中公开的改变和修改。通过引用并入本专利申请中的文档应被视为本申请的组成部分,除非这些并入的文档中所定义的任何术语达到与本说明书中明确或隐含作出的定义相冲突的程度,在此情况下应当仅考虑本说明书中的定义。