一种带内网络遥测方法及设备

文档序号:22709 发布日期:2021-09-21 浏览:10次 >En<

阅读说明:本技术 一种带内网络遥测方法及设备 (In-band network remote measuring method and equipment ) 是由 黄振 闫波 于 2021-06-18 设计创作,主要内容包括:本申请提供了一种带内网络遥测方法及设备。该方法在转发带内遥测报文时,将获取的元数据信息以及待转发带内遥测报文的出端口标识对应的出端口带宽利用率和出端口丢包字节数写入该待转发带内网络遥测报文的元数据字段,并将待转发带内网络遥测报文发往下一跳设备。这样,带内网络遥测报文被写入的元数据信息与当前网络的实际情况相符,使得上层设备能借助带内网络遥测报文被写入的元数据信息对当前网络的运行状况进行更加全面的分析,以降低网络设备在转发报文时出现拥堵或出错的概率。(The application provides an in-band network telemetering method and equipment. When the method is used for forwarding the in-band telemetering message, the obtained metadata information, the output port bandwidth utilization rate and the output port packet loss byte number corresponding to the output port identification of the in-band telemetering message to be forwarded are written into a metadata field of the in-band network telemetering message to be forwarded, and the in-band network telemetering message to be forwarded is sent to next hop equipment. Therefore, the written metadata information of the in-band network telemetry message conforms to the actual condition of the current network, so that the upper-layer equipment can analyze the operation condition of the current network more comprehensively by means of the written metadata information of the in-band network telemetry message, and the probability of congestion or errors when the network equipment forwards the message is reduced.)

一种带内网络遥测方法及设备

技术领域

本申请涉及网络通信技术,特别涉及一种带内网络遥测方法及设备。

背景技术

NT(Network Telemetry,网络遥测)遥测技术实现了网络设备主动推送状态信息的能力,可以将目标对象的近距离测量值传输至远距离的测量站以实现远距离测量,因此,遥测技术被广泛用于解决传统网络监控手段无法解决“看不见”的问题,如时延、转发路径、缓存和丢包。

INT(In-band Network Telemetry,带内网络遥感)是一种遥测技术,用于解决转发路径和转发时延不可见的问题。报文到达作为首节点的INT设备,首节点在四层头部后插入INT头,元数据信息读取各元数据存储器的元数据信息并封装成MD(Meta Data,元数据),将MD插入到INT头部之后;作为中间节点的INT设备匹配到INT头部后,在INT头部后再插入一层MD;报文转发到作为尾节点的最后一跳INT设备,尾节点匹配INT头部后,再插入一层MD,并在报文外部封装一个IP头(ERSPAN),外层IP为监控服务器地址,这样INT报文便转发到监控服务器。

图1所示为INT设备读取各元数据信息的现有方式的示意图,INT设备从时间戳寄存器、设备标识(Device ID)寄存器、出入端口寄存器以及生存时间值寄存器分别读取元数据信息,然后封装为元数据写入INT报文。当时,由于INT设备的交换芯片读取芯片寄存器数量受到芯片固有能力的限制,因此目前交换芯片是从几个固定的芯片寄存器中取出元数据MD信息,大多数的INT设备因芯片寄存器读取数量受到限制,未将出端口信息作为需要写入INT报文MD的MD信息,监控服务器分析网络运行状况时,由于监测信息缺少了各级INT设备的出端口信息使得采集到的网络数据与实际情况并不相符,这也就使得上层设备借助监测信息并不能全面地对当前网络的运行状况进行分析,进而造成网络出现拥挤或出错的技术问题。

发明内容

本申请提供了一种带内网络遥测方法及设备,以降低网络拥塞或出错的概率。

本申请提供的技术方案包括:

第一方面,本申请实施例提供了一种带内网络遥测方法,该方法包括:

将各端口的端口标识及对应的出端口带宽利用率和出端口丢包字节数写入多个元数据寄存器的一个复用寄存器;

从所述多个元数据寄存器中获取元数据信息以及从所述复用寄存器读取根据待转发带内遥测报文的出端口标识对应的出端口带宽利用率和出端口丢包字节数;

将获取的所述元数据信息以及出端口带宽利用率和出端口丢包字节数写入所述待转发带内网络遥测报文的元数据字段;

将所述待转发带内网络遥测报文发往下一跳设备。

第二方面,本申请实施例提供了一种带内网络遥测设备,该设备包括:

写入模块,用于将各端口的端口标识及对应的出端口带宽利用率和出端口丢包字节数写入多个元数据寄存器的一个复用寄存器;

转发模块,用于从所述多个元数据寄存器中获取元数据信息以及从所述复用寄存器读取根据待转发带内遥测报文的出端口标识对应的出端口带宽利用率和出端口丢包字节数;将获取的所述元数据信息以及出端口带宽利用率和出端口丢包字节数写入所述待转发带内网络遥测报文的元数据字段;将所述待转发带内网络遥测报文发往下一跳设备。

由以上技术方案可以看出,本申请中,在转发INT报文时,将获取的元数据信息以及待转发INT的出端口标识对应的出端口带宽利用率和出端口丢包字节数写入该待转发INT报文的元数据字段,并将待转发INT报文发往下一跳设备。这样,INT报文被写入的元数据信息与当前网络的实际情况相符,使得上层设备能借助INT报文被写入的元数据信息对当前网络的运行状况进行更加全面的分析,以降低网络设备在转发报文时出现拥堵或出错的概率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1所示为INT设备读取各元数据存取的现有方式的示意图;

图2为本申请提供的带内网络遥测报文转发方法的流程图;

图3为本申请提供的INT设备读取各元数据存取的示意图;

图4为本申请提供的INT设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

参见图2,图2为本申请提供的带内网络遥测报文转发方法的流程图,该的方法可以应用于带内网络遥测报文转发路径中的首节点、中间节点或者尾节点,其中,首节点、中间节点或者尾节点为网络设备,该方法可以应用于网络设备的交换芯片。

如图2所示,该方法实现的流程可包括以下步骤:

步骤101,将各端口的端口标识及对应的出端口带宽利用率和出端口丢包字节数写入多个元数据寄存器的一个复用寄存器。

在本实施例中,针对每一端口的端口标识,该端口的端口标识的确定与交换芯片的数量相关,当本设备中交换芯片数量大于1时,则将该端口所在交换芯片的芯片ID和该端口的端口ID确定为用于在复用寄存器中存储该端口的端口带宽利用率和端口丢包字节数对应的端口标识。当本设备中交换芯片数量为1时,则将该端口的端口ID确定为用于在复用寄存器中存储该端口的端口带宽利用率和端口丢包字节数的端口标识。这样,交换芯片可以从复用寄存器中依据该端口对应的端口标号准确和快速获得该端口的端口带宽利用率和端口丢包字节数。基于此,作为一个实施例,上述各端口的端口标识可以为各端口的端口ID或各端口的芯片ID以及端口ID。以从复用寄存器中依据该端口对应的端口标号准确和快速获得该端口的端口带宽利用率和端口丢包字节数。

多个元数据寄存器可以包括专门用于存储时间相关数据的元数据寄存器、专门用于存储端口号的元数据寄存器,专们用于存储数据包PACKET的元数据寄存器。而复用寄存器可以理解为专门用于存储各端口的端口标识,以及各端口标识对应的出端口带宽利用率和出端口丢包字节数的元数据寄存器。作为一个实施例,复用寄存器可以是可编程的寄存器。

步骤102,从多个元数据寄存器中获取元数据信息以及从复用寄存器读取根据待转发带内遥测报文的出端口标识对应的出端口带宽利用率和出端口丢包字节数。

元数据信息可以包括从用于存储时间相关数据的元数据寄存器中获取交换芯片上各端口的时间戳,从用于存储端口号的元数据寄存器中获取出入端口号,从用于存储数据包PACKET的元数据寄存器中获取TTL(Time To Live,生存时间),从用于存储网络设备的设备标识Device ID的元数据寄存器中获取Device ID。

需要说明的是,若复用寄存器是可编程控制器,鉴于可编程控制器是用于存储Device ID的寄存器,基于此,可以从可编程控制器中获取Device ID、待转发INT报文的出端口标识对应的出端口带宽利用率和出端口丢包字节数。

步骤103,将获取的元数据信息以及出端口带宽利用率和出端口丢包字节数写入待转发带内网络遥测报文的元数据字段。

将获取的元数据信息写入至待转发INT报文的INT报头中各元数据信息对应的元数据字段中。

将获取的出端口带宽利用率写入至待转发INT报文的报文头中MD中用于标识出端口带宽利用率Egress Port Utilization字段的元数据字段,将获取的出端口丢包字节数写入至待转发INT报文的INT报头中MD中用于标识出端口丢包字节数Egress Port DropPkt Byte Cnt字段的元数据字段。

步骤104,将待转发带内网络遥测报文发往下一跳设备。

若本网络设备是首节点,那么,将待转发INT报文发往的下一跳设备就就是中间节点;若本网络设备是中间节点,那么,将待转发INT报文发往的下一跳设备就是尾节点;若本网络设备是尾节点,那么,将待转发INT报文发往的下一跳设备就是监控设备。

至此,完成图2所示的描述。

由此可见,在本申请实施例的技术方案中,在转发INT报文时,将获取的元数据信息以及待转发INT的出端口标识对应的出端口带宽利用率和出端口丢包字节数写入该待转发INT报文的元数据字段,并将待转发INT报文发往下一跳设备。这样,INT报文被写入的元数据信息与当前网络的实际情况相符,使得上层设备能借助INT报文被写入的元数据信息对当前网络的运行状况进行更加全面的分析,以降低网络设备在转发报文时出现拥堵或出错的概率。

本申请提供的一个实施例中,在步骤101之前,该方法还可以包括步骤A~步骤B:

步骤A,为各端口分别设置出端口信息寄存器。

每一端口既可以作入端口,又可以作出端口,为了存储该端口作为出端口对应的出端口发送报文数和出端口丢包数,则从寄存器中选择满足具有容纳其出端口发送报文数和出端口丢包数的存储空间要求的寄存器,当满足具有容纳存储出端口发送报文数和出端口丢包数的存储空间要求的寄存器数量大于或等于1,则从满足上述要求的存储器中任选择一个寄存器作为出端口信息寄存器。

步骤B,在各端口的出端口信息寄存器写入其出端口带宽利用率和出端口丢包数。

在选择好出端口信息寄存器之后,将该出端口的出端口发送报文数和出端口丢包数对应写入到出端口信息寄存器。

本实施例中,出端口发送报文数和出端口丢包数可以实时写入,也可以定时写入,本实施例对此并不限定。

可见,应用本实施例提供的技术方案,能够事先将各端口作为出端口的出端口发送报文数和出端口丢包数写入各端口已设置的出端口信息寄存器,以备后续从各端口的出端口信息寄存器中随时获取其出端口发送报文数和出端口丢包数。

本申请提供的一个实施例中,图2所示流程图中步骤101的实现方式可以包括如下步骤C~步骤F:

步骤C,从各端口的出端口信息寄存器读取出端口发送报文数和出端口丢包数。

基于上述描述,针对每一端口的出端口信息寄存器,该端口的出端口信息寄存器存储了该端口的出端口发送报文数和出端口丢包数。

步骤D,依据读取的各端口的出端口发送报文数计算各端口的出端口带宽利用率。

作为一个实施例,针对每一端口,依据该端口的出端口发送报文数计算该出端口的当前流量速率;依据计算出的当前流量速率和该端口的总带宽计算该端口的出端口带宽利用率。本实施例中端口的总带宽是指该端口的最大带宽。

一些实施例中,可以按照如下表达式计算出端口带宽利用率。

该表达式为:s/k=l;

其中,s为端口的当前流量速率,k为端口的总带宽,l为端口的出端口带宽利用率。

可见,应用本实施例提供的技术方案,能够快速和准确地确定端口的出端口带宽利用率。

步骤E,依据读取的各端口的出端口丢包数计算各端口的出端口丢包字节数。

在本步骤中,针对每一端口,依据该端口的出端口丢包数计算该端口的出端口丢包字节数。

作为一个实施例,可以使用网络设备中的一个辅助CPU(central processingunit,中央处理器)专门计算出端口带宽利用率和出端口丢包字节数,其中,网络设备包括主CPU和两个以上辅助CPU,该辅助CPU就是从网络设备中的所有辅助CPU中选择的一个辅助CPU,且该辅助CPU原本被分配的任务重分配给其他至少一个辅助CPU,基于此,交换芯片指示该交换芯片上的该辅助CPU执行步骤C~E,并将计算的出端口带宽利用率和出端口丢包字节数发送至交换芯片以使交换芯片执行步骤F。

步骤F,将各端口的端口标识与计算的其的出端口带宽利用率和出端口丢包字节数写入复用寄存器。

在本步骤中,复用寄存器中存储了各端口的端口标识,以及与各端口标识对应的出端口带宽利用率和出端口丢包字节数。

端口标识可以作为索引与该端口标识对应的端口的出端口带宽利用率和出端口丢包字节数呈映射关系存储在复用寄存器中。这样,可以依据作为索引的端口标识读取该端口标识对应的出端口带宽利用率和出端口丢包字节数。

可见,应用本实施例提供的技术方案,在读取出端口带宽利用率和出端口丢包字节数时,能够依据标号标识从复用寄存器中快速和准确地读取该端口标识对应的出端口带宽利用率和出端口丢包字节数。

下面基于一个实施例对图2所示流程进行描述:

在实际应用中,待转发INT报文的转发路径包括首节点、中间节点或者尾节点,其中,首节点、中间节点或者尾节点是交换设备。如图3所示,该交换设备的交换芯片实现带内网络遥测方法可以包括:

该交换芯片为本交换设备中n个端口RORT1~RORTn分别设置出端口信息寄存器,RORT1的出端口信息寄即图3中的RORT1寄存器就是用来存储端口RORT1对应的出端口1丢包数和出端口1发送报文数,……,RORTn的出端口信息寄存器即图3中的RORTn寄存器就是用来存储出端口n的出端口n丢包数和出端口n发送报文数,该交换芯片可以将一个辅助CPU(记为RCPU)原本被分配的任务重分配给其他至少一个辅助CPU,并由该RCPU利用出端口1的出端口1发送报文数确定出该出端口1的当前流量速率,并依据计算的当前流量速率和出端口1的总带宽,计算出端口1的出端口带宽利用率。同理,利用该RCPU依据出端口n的出端口n发送报文数和出端口n的总带宽计算出该出端口n的出端口带宽利用率,n为本交换设备中交换芯片上各端口的端口序号。同时,该RCPU利用出端口1的出端口1丢包数计算出端口1丢包字节数;同理,利用出端口n的出端口n丢包数计算出端口n丢包字节数。

确定本交换设备的交换芯片的数量,如果本设备中交换芯片数量大于1时,则将出端口1所在交换芯片的芯片ID和出端口1的端口ID作为端口标识以及与计算的出端口1的出端口带宽利用率和出端口丢包字节数,……,出端口n所在交换芯片的芯片ID和出端口n的端口ID作为端口标识以及与计算的出端口n的出端口带宽利用率和出端口丢包字节数一起写入复用寄存器。如果本设备中交换芯片数量为1时,则将出端口1的端口ID作为端口标识以及与计算的出端口1的出端口带宽利用率和出端口丢包字节数,……,出端口n的端口ID作为端口标识以及与计算的出端口n的出端口带宽利用率和出端口丢包字节数一起写入复用寄存器。

从用于存储端口号作为元数据寄存器的PORT相关寄存器中获取出入端口号,从用于存储数据包PACKET作为元数据寄存器的PACKET中获取TTL,从用于存储时间作为元数据寄存器时间相关寄存器中时间戳,其中,该复用寄存器可以是用于存储设备标识Device ID作为元数据寄存器的可编程寄存器,对该可编程寄存器重新编程以形成用于存储DeviceID、各端口的端口标识对应的出端口带宽利用率和出端口丢包字节数的寄存器,基于此,根据待转发INT报文的出端口标识读取与该出端口标识对应的出端口带宽利用率和出端口丢包字节数。如果该出端口标识为端口1,则利用端口1从重新编程的寄存器中读取DeviceID、端口1对应的出端口1带宽利用率和出端口1丢包字节数,同理,如果该出端口标识为端口n,利用端口n从重新编程的寄存器中读取Device ID、端口n对应的出端口n带宽利用率和出端口n丢包字节数。

假设待转发INT报文的出端口标识为端口1,则将获取的出入端口号、Device ID、端口1对应的出端口1带宽利用率和出端口1丢包字节数、TTL和时间戳写入待转发NT报文的元数据字段INT METADATA中,并将待转发INT报文发往下一跳设备,如果本交换设备是首节点,那么,将待转发INT报文发往中间节点。如果本交换设备是中间节点,那么,将待转发INT报文发往尾节点。如果本交换设备是尾节点,那么,将待转发INT报文发往监控设备。最终,待转发INT报文是发往监控设备,这样,INT报文被写入的元数据信息与当前网络的实际情况相符,使得上层设备能借助带内网络遥测报文被写入的元数据信息对当前网络的运行状况进行更加全面的分析,降低网络设备在转发报文时出现拥堵或出错的概率。

至此,完成实施例的描述。

下面对本申请提供的设备进行描述:

参见图4,图4为本申请提供的带内网络遥测设备400的结构示意图。该带内网络遥测设备包括存储器、系统总线、至少一个交换芯片和处理器,其中,交换芯片上集成有多个寄存器,这些寄存器分别为可编程元数据信息寄存器和用于存储各端口的元数据信息的元数据信息寄存器,如图4中元数据信息寄存器1、元数据信息寄存器2~元数据信息寄存器n,n为本设备的端口序号,这些寄存器还包括用于存储各端口的出端口发送报文数和出端口丢包数的出端口信息寄存器,如图4中出端口信息寄存器1~出端口信息寄存器n。

存储器可以用于存储可以由交换芯片执行的处理器可执行指令;交换芯片通过运行存储器中的处理器可执行指令执行操作:

写入模块,用于将各端口的端口标识及对应的出端口带宽利用率和出端口丢包字节数写入多个元数据寄存器的一个复用寄存器;

转发模块,用于从多个元数据寄存器中获取元数据信息以及从所述复用寄存器读取根据待转发带内遥测报文的出端口标识对应的出端口带宽利用率和出端口丢包字节数;将获取的元数据信息以及出端口带宽利用率和出端口丢包字节数写入所述待转发带内网络遥测报文的元数据字段;将待转发带内网络遥测报文发往下一跳设备。

本申请的一个实施例中,该设备还可以包括设置模块;

上述设置模块,用于为各端口分别设置出端口信息寄存器;

上述写入模块,还用于在各端口的出端口信息寄存器写入其出端口发送报文数和出端口丢包数。

本申请的一个实施例中,该写入模块将各端口的端口标识及对应的出端口带宽利用率和出端口丢包字节数写入多个元数据寄存器的一个复用寄存器,包括:从各端口的出端口信息寄存器读取出端口发送报文数和出端口丢包数;依据读取的出端口发送报文数计算所述各端口的出端口带宽利用率;依据读取的所述各端口的出端口丢包数计算所述各端口的出端口丢包字节数;将各端口的端口标识与计算的其的出端口带宽利用率和出端口丢包字节数写入复用寄存器。

作为一个实施例,处理器可以包括一个主CPU和两个以上辅助CPU,两个以上辅助CPU集成在本交换芯片上,存储器用于存储可以由主CPU以及两个以上辅助CPU执行的处理器可执行指令;主CPU处理通过运行存储器中的处理器可执行指令执行以下操作:从网络设备中的所有辅助CPU中选择一个辅助CPU,将选择的辅助CPU原本被分配的任务重分配给其他至少一个辅助CPU。两个以上辅助CPU中被选择的辅助CPU处理通过运行存储器中的处理器可执行指令执行以下操作:从各端口的出端口信息寄存器读取出端口发送报文数和出端口丢包数;并依据出端口发送报文数计算各端口的出端口带宽利用率,依据读取的所述各端口的出端口丢包数计算各端口的出端口丢包字节数;将计算的出端口带宽利用率和出端口丢包字节数发送至交换芯片,以使交换芯片将各端口的端口标识与计算的其的出端口带宽利用率和出端口丢包字节数写入复用寄存器。

本申请的一个实施例中,该各端口的端口标识为各端口的端口ID或各端口的芯片ID以及端口ID。

本申请的一个实施例中,复用寄存器是可编程的寄存器。

图4中的系统总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条箭头框线表示,但并不表示仅有一根总线或一种类型的总线。

至此,完成图4所示的描述。

由此可见,在本申请实施例的技术方案中,在转发INT报文时,将获取的元数据信息以及待转发INT的出端口标识对应的出端口带宽利用率和出端口丢包字节数写入该待转发INT报文的元数据字段,并将待转发INT报文发往下一跳设备。这样,INT报文被写入的元数据信息与当前网络的实际情况相符,使得上层设备能借助INT报文被写入的元数据信息对当前网络的运行状况进行更加全面的分析,以降低网络设备在转发报文时出现拥堵或出错的概率。

对于设备实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

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

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种用于远程心脏彩超检查的数据中转方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!