一种带内遥测的方法以及设备与流程

专利2022-06-29  96


本发明涉及通信技术,具体地讲是一种带内遥测的方法以及设备。



背景技术:

随着数据中心网络技术的迅速发展,实现对于整个数据中心网络中端到端的报文流监控对于管理数据中心网络具有重要意义。

数据中心网络包括:多个转发设备和监控设备。监控设备可以利用in-bandtelemetry(带内远程遥测)技术获取多个转发设备转发的端到端之间的报文流,从而实现报文流的监控。

具体地,转发设备可以对经过本设备的报文流进行采样得到采样报文,并将采样报文的采样报文信息发送给监控设备。监控设备可以基于采样报文信息实现对于端到端之间的报文流监控。

postcard(明信片)是一种新型in-bandtelemetry技术。使能postcard特性的设备每一条都能够向monitor(监控设备)发送report(报告)报文。这些设备上能够为被监控数据流建立流表,当被监控的数据流发生丢包、延迟变化状态变化时,向monitor(监控设备)发送postcard报告报文。

但是,很多在网设备的交换芯片并不支持postcard,无法从数据层面实行带内遥测,需要提供一种方案使得不具备硬件支持postcard特性的设备向monitor发送report报文。



技术实现要素:

本申请的目的在于,提供一种带内遥测的方法以及设备,用以从控制层面实现带内遥测。

为实现上述目的,本发明提供了一种带内遥测的方法,其中,该方法包括:为被监控数据流的每个被采样报文生成转发前镜像报文和转发后镜像报文;基于每个所述被采样报文的转发前镜像报文和转发后镜像报文,识别被监控数据流的转发状态;根据第一个所述被采样报文的转发前镜像报文建立所述监控数据流的postcard软件表项;将基于第一个所述被采样报文识别到的被监控数据流的转发状态记录于新建的所述postcard软件表项。

为实现上述目的,本发明还提供了一种带内遥测的设备,包括交换芯片,处理器、存储有计算机指令的存储器以及多个接口;该设备中,

所述交换芯片,用于为被监控数据流的每个被采样报文生成转发前镜像报文和转发后镜像报文,并发往所述处理器;

所述处理器执行所述存储器中存储的计算机指令,基于每个所述被采样报文的转发前镜像报文和转发后镜像报文,识别被监控数据流的转发状态;根据第一个所述被采样报文的转发前镜像报文建立所述监控数据流的postcard软件表项;将基于第一个所述被采样报文识别到的被监控数据流的转发状态记录于新建的所述postcard软件表项。

本申请的有益效果在于这样,对于不具备支持postcard功能交换芯片的通信设备,从软件层面实现postcard特性,进行控制层面的带内遥测。

附图说明

图1所示为一种带内遥测方法流程图;

图2所示为本发明实施例提供的设备实现带内遥测的第一实例示意图;

图3所示为本发明实施例提供的设备实现带内遥测的第一实例示意图;

图4所示为本发明实施例提供的设备实现带内遥测的第一实例示意图。

具体实施方式

将以多个附图所示的多个例子进行详细说明。在以下详细描述中,多个具体细节用于提供对本公开的全面理解。实例中没有详细地描述已知的方法、步骤、组件以及电路,以免使这些例子的难于理解。

使用的术语中,术语“包括”表示包括但不限于;术语“含有”表示包括但不限于;术语“以上”、“以内”以及“以下”包含本数;术语“大于”、“小于”表示不包含本数。术语“基于”表示至少基于其中一部分。

如图1所示,本发明提供的带内遥测方法包括以下处理:

处理101,为被监控数据流的每个被采样报文生成转发前镜像报文和转发后镜像报文。

处理102,基于每个被采样报文的转发前镜像报文和转发后镜像报文,识别被监控数据流的转发状态。

处理103,根据第一个被采样报文的转发前镜像报文建立监控数据流的postcard软件表项。

处理104,将基于第一个被采样报文识别到的被监控数据流的转发状态记录于新建的postcard软件表项。

图1所示方法的有益效果在于,对于不具备支持postcard功能交换芯片的通信设备,从软件层面实现postcard特性,进行控制层面的带内遥测。

图2所示为本发明实施例提供的实现带内遥测的设备20,该设备20可以但不限于是三层交换机或路由器,该设备20包括交换芯片21、处理器(centralprocessingunit,cpu)22及存储器23。

交换芯片21的多个端口与网络设备20的外部口相连,图2以交换芯片21的端口n,m用以举例以下方案的实施。交换芯片21可以基于asic(applicationspecificintegratedcircuit,专用集成电路)或fpga(field-programmablegatearray,现场可编程门阵列等芯片实现。存储器630存储的指令由处理器620执行。

交换芯片21的端口n收到数据报文300-309,在上行转发中,先将数据报文300-309分别与上行硬件监控表项进行匹配。

上行硬件监控表项的匹配项(matchfiled)是被监控的数据流的流特征参数,譬如源ip地址、目的ip地址,协议类型、源udp端口号、目的udp端口等等。上行硬件监控表项的动作项(actionfield)按照采样率对数据流的数据报文进行采样,在被采样报文中添加对应的流标识,复制添加了流标识的被采样报文,添加被采样报文的到达端口、到达时间,发送到处理器22。

交换芯片21根据上行硬件监控表项,对收到的数据报文309进行采样,为数据报文309添加流标识,复制带有流标识的数据报文309,在复制的带有流标识的数据报文309上添加数据报文309的到达端口n和到达时间t1,生成数据报文309的转发前镜像报文309-1,发往处理器22。

交换芯片21会继续对带有流标识309的数据报文进行后续转发处理。交换芯片21完成数据报文300-309转发处理的下行转发之后,将数据报文300-309分别与下行硬件监控表项进行匹配。下行硬件监控表项的匹配项是流标识,因此完成转发的数据报文300-308不会匹配下行硬件监控表项,只有同一数据流的被采样的数据报文309匹配中该下行硬件监控表项。下行硬件监控表项的动作项包括:复制带有流标识的数据报文309,在复制的带流标识的数据报文309上添加数据报文309的发送端口和发送时间,发往cpu。

交换芯片21根据下行硬件监控表项对带有流标识的数据报文309进行复制,为复制的带流标识的数据报文309的上添加数据报文309的发送端口m和发送时间t2,生成数据报文309的转发后镜像报文309-2,发往处理器22。交换芯片21剥掉数据报文309的流标识,通过出端口m发送数据报文309,不影响数据层面的转发。

处理器22根据转发前镜像报文309-1在存储器23中的postcard软件表中,未查找到对应的表项,则建立数据流的postcard软件表项,将数据报文309的接收端口作为数据流的入端口记录在新建的postcard软件表项。

处理器22根据转发后镜像报文309-2携带的发送端口m,作为数据流的出端口记录在已建立的postcard软件表项。

处理器22计算转发后镜像报文309-2携带的发送时间t2与转发前镜像报文309-1携带的接收时间t1的时间差,作为数据流的转发时延记录在已建立的postcard软件表项。

处理器22在存储器中用于存储数据流被采样报文到达时间的存储地址未查找到记录有到达时间,则记录数据报文309的到达时间t1,而不计算数据流的平均到达时间。处理器22丢弃收到的转发前镜像报文309-1和转发后镜像报文309-2。

如图3所示,交换芯片21的端口x收到数据报文310-319,在上行转发中,先将数据报文310-319分别与上行硬件监控表项进行匹配。

交换芯片21根据上行硬件监控表项,对收到的数据报文319进行采样,为数据报文319添加流标识,复制带有流标识的数据报文319,在复制的带有流标识的数据报文319上添加数据报文319的到达端口x和到达时间t3,生成数据报文319的转发前镜像报文319-1,发往处理器22。

交换芯片21会继续对带有流标识319的数据报文进行后续转发处理。交换芯片21完成数据报文310-319转发处理的下行转发之后,将数据报文310-319分别与下行硬件监控表项进行匹配。

交换芯片21根据下行硬件监控表项对带有流标识的数据报文319进行复制,为复制的带流标识的数据报文319添加发送端口m和发送时间t4,生成数据报文319的转发后镜像报文319-2,发往处理器22。交换芯片21剥掉数据报文319的流标识,通过出端口m发送数据报文319。

处理器22根据转发前镜像报文319-1在存储器23的postcard软件表中,查找到已建立的数据流的postcard软件表项。处理器22根据转发前镜像报文319-1携带的接收端口x,作为数据流的入端口,检查数据流的入端口x与已建立的postcard软件表项所记录的入端口n不一致,将postcard软件表项记录的入端口更新为端口x,生成通知转发状态变化的postcard报告报文41,发送到交换芯片21。交换芯片21通过到达监控器路径上的端口,向监控器发送postcard报告报文41。

处理器22检测转发后镜像报文319-2携带的发送端口m与已建立的postcard软件表项所记录的出端口m一致,则不更新。

处理器22计算转发后镜像报文319-2携带的发送时间t4与转发前镜像报文319-1携带的接收时间t3的时间差,作为数据流的转发时延。处理器22确定发送时间t4与接收时间t3计算出时间差未超出转发时延阈值,则认为数据流的转发时间与postcard软件表项记录的转发时延一致,而无需更新或向monitor发送postcard报告报文。

处理器22在存储器中查找到记录的到达时间t1,将到达时间t3与到达时间t1时间差除以采样率的值,作为数据流的平均到达时间,记录在postcard软件表项。处理器22将存储器中记录的数据流的到达时间t1更新为t3。处理器22丢弃收到的转发前镜像报文319-1和转发后镜像报文319-2。

如图4所示,交换芯片21的端口x收到数据报文320-329,在上行转发中,先将数据报文320-329分别与上行硬件监控表项进行匹配。

交换芯片21根据上行硬件监控表项,对收到的数据报文329进行采样,为数据报文329添加流标识,复制带有流标识的数据报文329,在复制的带有流标识的数据报文329上添加数据报文329的到达端口x和到达时间t5,生成数据报文329的转发前镜像报文329-1,发往处理器22。

交换芯片21继续对带有流标识329的数据报文进行后续转发处理。交换芯片21完成数据报文320-329转发处理的下行转发之后,将数据报文320-329分别与下行硬件监控表项进行匹配。

交换芯片21根据下行硬件监控表项对带有流标识的数据报文329进行复制,为复制的带流标识的数据报文329添加发送端口m和发送时间t6,生成数据报文329的转发后镜像报文329-2,发往处理器22。交换芯片21剥掉数据报文319的流标识,通过出端口m发送数据报文329。

处理器22根据转发前镜像报文329-1在存储器23的postcard软件表中,查找到已建立的数据流的postcard软件表项。处理器22将转发前镜像报文319-1携带的接收端口x,作为数据流的入端口,检查数据流的入端口x与已建立的postcard软件表项所记录的入端口x一致。

处理器22检查转发后镜像报文319-2携带的发送端口m与已建立的postcard软件表项所记录的出端口m一致。

处理器22计算转发后镜像报文319-2携带的发送时间t6与转发前镜像报文329-1携带的接收时间t5的时间差,作为数据流的转发时延。处理器22检查计算出的转发时延未超出转发时延阈值,则认为数据流的转发时间与postcard软件表项记录的转发时延一致,而无需更新或向monitor发送postcard报告报文。

处理器22在存储器中查找到记录的到达时间t3,将转发前镜像报文到达时间t5与到达时间t3的时间差除以采样率的值,作为数据流的平均到达时间。处理器22检查计算的平均到达时间超出平均到达时间阈值,确定与postcard软件表项中记录的平均到达时间不一致。处理器22将存储器中记录的数据流的到达时间t3更新为t5。处理器22更新postcard软件表项记录的平均到达时间,生成通知转发状态变化的postcard报告报文42并发给交换芯片21。交换芯片21通过到达监控器路径上的端口,向监控器发送postcard报告报文42。处理器22丢弃收到的转发前镜像报文329-1和转发后镜像报文329-2。

图2-图4中,交换芯片21可通过在数据报文在设备内转发所封的内部转发头内添加流标识、到达时间、到达端口、发送时间、发送端口等信息;到达时间和发送时间可是时间戳。

图2-图4实施例的有益效果在于,在网络设备不具备支持postcard功能交换芯片情况下,利用数据报文,软件层面实现postcard特性,执行了不同于传统的数据层面带内遥测的方案,实现的是新型的控制层面的带内遥测,并且不会影响数据报文的网络内转发。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。


技术特征:

1.一种带内遥测的方法,其特征在于,所述方法包括,

为被监控数据流的每个被采样报文生成转发前镜像报文和转发后镜像报文;

基于每个所述被采样报文的转发前镜像报文和转发后镜像报文,识别被监控数据流的转发状态;

根据第一个所述被采样报文的转发前镜像报文建立所述监控数据流的postcard软件表项;

将基于第一个所述被采样报文识别到的被监控数据流的转发状态记录于新建的所述postcard软件表项。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括,

检查根据其他每个所述被采样报文识别到的被监控数据流的转发状态与已建立的所述postcard软件表项所记录的被监控数据流的转发状态是否一致;

若否,则更新所述postcard软件表项所记录的被监控数据流的转发状态并生成通知转发状态变化的postcard报告报文;

向监控器发送所述postcard报告报文。

3.根据权利要求1所述的方法,其特征在于,所述为被监控数据流的每个被采样报文生成转发前镜像报文和转发后镜像报文包括,

根据上行硬件监控表项对收到的所述被监控数据流的数据报文进行采样,为每个所述被采样数据报文添加流标识,复制每个带有流标识的所述被采样报文,为每个复制的带有流标识的被采样报文添加到达端口和到达时间,生成每个所述被采样数据报文的转发前镜像报文;

根据下行硬件监控表项对每个已完成转发的带有流标识的所述被采样报文进行复制,为每个复制的完成转发的带有流标识的被采样报文添加发送端口和发送时间,生成每个所述被采样报文的所述转发后镜像报文。

4.根据权利要求3所述的方法,其特征在于,基于每个所述被采样报文的转发前镜像报文和转发后镜像报文,识别每个所述被采样报文的转发状态包括:

将每个所述被采样报文的转发前镜像报文携带的到达端口,识别为所述被监控数据流的入端口;

将每个所述被采样报文的转发后镜像报文携带的发送端口,识别为所述被监控数据流的出端口;

将每个所述被采样报文的转发后镜像报文携带的发送时间与转发前镜像报文携带的接收时间的时间差,识别为所述被监控数据流的转发时延。

5.根据权利要求1所述的方法,其特征在于,基于每个所述被采样报文的转发前镜像报文和转发后镜像报文,识别每个所述被采样报文的转发状态还包括:判断是否存储有每个所述被采样报文的前一个所述被采样报文的到达时间,若是,将两个连续的所述被采样的转发前镜像报文携带的到达时间的时间差除以采样率的值,识别为所说被监控数据流的均到达时间。

6.一种带内遥测的设备,包括交换芯片,处理器、存储有计算机指令的存储器以及多个接口,其特征在于,

所述交换芯片,用于为被监控数据流的每个被采样报文生成转发前镜像报文和转发后镜像报文,并发往所述处理器;

所述处理器执行所述存储器中存储的计算机指令,基于每个所述被采样报文的转发前镜像报文和转发后镜像报文,识别被监控数据流的转发状态;根据第一个所述被采样报文的转发前镜像报文建立所述监控数据流的postcard软件表项;将基于第一个所述被采样报文识别到的被监控数据流的转发状态记录于新建的所述postcard软件表项。

7.根据权利要求6所述的设备,其特征在于,

所述处理器执行所述存储器中存储的计算机指令,检查根据其他每个所述被采样报文识别的被监控数据流的转发状态与已建立的所述postcard软件表项所记录的被监控数据流的转发状态是否一致;若否,则更新所述postcard软件表项所记录的被监控数据流的转发状态并生成通知转发状态变化的postcard报告报文,并发往交换芯片;

所述交换芯片,向监控器发送所述postcard报告报文。

8.根据权利要求6所述的设备,其特征在于,

所述交换芯片,根据上行硬件监控表项采样收到的所述被监控数据流的数据报文,为每个所述被采样数据报文添加流标识,复制每个带有流标识的所述被采样报文,为每个复制的带有流标识的被采样报文添加到达端口和到达时间,生成每个所述被采样数据报文的转发前镜像报文;

所述交换芯片,根据下行硬件监控表项对每个已完成转发的带有流标识的所述被采样报文进行复制,为每个复制的完成转发的带有流标识的被采样报文添加发送端口和发送时间,生成每个所述被采样报文的所述转发后镜像报文。

9.根据权利要求8所述的设备,其特征在于,

所述处理器执行所述存储器中存储的计算机指令,将每个所述被采样报文的转发前镜像报文携带的到达端口,识别为所述被监控数据流的入端口;将每个所述被采样报文的转发后镜像报文携带的发送端口,识别为所述被监控数据流的出端口;将每个所述被采样报文的转发后镜像报文携带的发送时间与转发前镜像报文携带的接收时间的时间差,识别为所述被监控数据流的转发时延。

10.根据权利要求8所述的设备,其特征在于,

所述处理器执行所述存储器中存储的计算机指令,判断是否存储有每个所述被采样报文的前一个所述被采样报文的到达时间,若是,将两个连续的所述被采样的转发前镜像报文携带的到达时间的时间差除以采样率的值,识别为所说被监控数据流的均到达时间。

技术总结
本发明提供了一种带内遥测的方法和设备,其中方法包括,为被监控数据流的每个被采样报文生成转发前镜像报文和转发后镜像报文;基于每个被采样报文的转发前镜像报文和转发后镜像报文,识别被监控数据流的转发状态;根据第一个被采样报文的转发前镜像报文建立监控数据流的postcard软件表项;将基于第一个被采样报文识别到的被监控数据流的转发状态记录于新建的postcard软件表项。这样,在网的通信设备的交换芯片即使不支持postcard功能,能够通过该方法使该设备的处理器建立postcard软件表项,用以从软件层面实现Postcard特性,进行控制层面带内遥测。

技术研发人员:王明辉
受保护的技术使用者:新华三信息安全技术有限公司
技术研发日:2020.01.13
技术公布日:2020.06.09

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

最新回复(0)