报文通道的检测方法及装置与流程

文档序号:11180437阅读:563来源:国知局
报文通道的检测方法及装置与流程

本发明涉及网络技术领域,尤其涉及一种报文通道的检测方法及装置。



背景技术:

随着网络技术的发展,各种各样的协议报文也随着网络设备功能的日益增强而不断被应用到网络环境中,现在的网络设备进行通讯时,都是通过专门网络测试仪对各个网络设备以及无线接入点进行检测,以检测出无线网络中连接的终端和无线信号强度等等,但是当网络设备中的报文通道出现故障如时延性出现严重延迟时,就只能对网络设备的各项功能一个个测试分析以排查故障,最终才能确定是时延性出现问题,显然,现有的网络设备检测方式,对报文通道的检测效率较低。



技术实现要素:

本发明的主要目的在于提出一种报文通道的检测方法及装置,旨在解决现在的网络设备检测方式,对报文通道的检测效率较低。

为实现上述目的,本发明提供的一种报文通道的检测方法,所述报文通道的检测方法包括:

在待检测报文通道的出口获取检测报文;

解析出所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳;

基于所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳,计算所述检测报文在所述待检测报文通道中的时延;

将计算的所述时延作为所述待检测报文通道的平均时延。

优选地,所述在待检测报文通道的出口获取检测报文的步骤之前,所述报文通道的检测方法包括:

按照预设的报文格式构造所述检测报文;

根据预设的发送方式将构造的所述检测报文传送至所述待检测报文通道 中,其中,在将所述检测报文传送至所述待检测报文通道的入口时,记录当前时刻作为所述检测报文的起始时间戳;

在执行所述在待检测报文通道的出口获取检测报文的步骤的同时,执行以下步骤:

记录当前时刻作为所述检测报文的终止时间戳。

优选地,所述在待检测报文通道的出口获取检测报文的步骤之后,所述报文通道的检测方法还包括:

若预设时间间隔内,在所述待检测报文通道的出口获取到多个检测报文,则统计获取到的检测报文的个数;

根据统计的个数确定所述预设时间间隔内所述待检测报文通道的报文累计量。

优选地,当定时执行所述在待检测报文通道的出口获取检测报文的步骤时,所述根据统计的个数确定所述预设时间间隔内所述待检测报文通道的报文累计量的步骤之后,所述报文通道的检测方法还包括:

将所述待检测报文通道的报文累计量与上一个预设时间间隔内所述待检测报文通道的报文累计量进行比对;

在所述待检测报文通道的报文累计量与上一个预设时间间隔内所述待检测报文通道的报文累计量相等时,对所述待检测报文通道进行清空复位。

优选地,所述将计算的所述时延作为所述待检测报文通道的平均时延的步骤之后,所述报文通道的检测方法还包括:

将所述待检测报文通道的平均时延与预设时延进行比对;

在所述待检测报文通道的平均时延高于预设时延时,提高所述待检测报文通道的优先级。

此外,为实现上述目的,本发明还提出一种报文通道的检测装置,所述报文通道的检测装置包括:

获取模块,用于在待检测报文通道的出口获取检测报文;

解析模块,用于解析出所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳;

计算模块,用于基于所述检测报文在所述待检测报文通道中的起始时间 戳和终止时间戳,计算所述检测报文在所述待检测报文通道中的时延;

处理模块,用于将计算的所述时延作为所述待检测报文通道的平均时延。

优选地,所述报文通道的检测装置还包括:

构造模块,用于按照预设的报文格式构造所述检测报文;

传送模块,用于根据预设的发送方式将构造的所述检测报文传送至所述待检测报文通道中,其中,在将所述检测报文传送至所述待检测报文通道的入口时,记录当前时刻作为所述检测报文的起始时间戳;

记录模块,用于所述获取模块在待检测报文通道的出口获取检测报文的同时,记录当前时刻作为所述检测报文的终止时间戳。

优选地,所述报文通道的检测装置还包括:

统计模块,用于若预设时间间隔内,在所述待检测报文通道的出口获取到多个检测报文,则统计获取到的检测报文的个数;

确定模块,用于根据统计的个数确定所述预设时间间隔内所述待检测报文通道的报文累计量。

优选地,当所述获取模块定时在待检测报文通道的出口获取检测报文时,所述报文通道的检测装置还包括:

第一比对模块,用于将所述待检测报文通道的报文累计量与上一个预设时间间隔内所述待检测报文通道的报文累计量进行比对;

复位模块,用于在所述待检测报文通道的报文累计量与上一个预设时间间隔内所述待检测报文通道的报文累计量相等时,对所述待检测报文通道进行清空复位。

优选地,所述报文通道的检测装置还包括:

第二比对模块,用于将所述待检测报文通道的平均时延与预设时延进行比对;

提高模块,用于在所述待检测报文通道的平均时延高于预设时延时,提高所述待检测报文通道的优先级。

本发明提出的报文通道的检测方法及装置,先在待检测报文通道的出口获取检测报文,然后解析出所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳,再基于所述检测报文在所述待检测报文通道中的起始时 间戳和终止时间戳,计算所述检测报文在所述待检测报文通道中的时延,最后将计算的所述时延作为所述待检测报文通道的平均时延,而不是在检测网络设备的报文通道时,只能对网络设备的各项功能一个个测试分析以排查故障,最终才能确定是时延性出现问题,本发明通过对检测报文进行分析,以确定报文通道的时延,提高了对报文通道检测的效率。

附图说明

图1为本发明报文通道的检测方法第一实施例的流程示意图;

图2为本发明报文通道的检测方法第二实施例的流程示意图;

图3为本发明报文通道的检测方法第三实施例的流程示意图;

图4为本发明报文通道的检测方法第四实施例的流程示意图;

图5为本发明报文通道的检测装置第一实施例的功能模块示意图;

图6为本发明报文通道的检测装置第二实施例的功能模块示意图;

图7为本发明报文通道的检测装置第三实施例的功能模块示意图;

图8为本发明报文通道的检测装置第四实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种报文通道的检测方法。

参照图1,图1为本发明报文通道的检测方法第一实施例的流程示意图。

本实施例提出一种报文通道的检测方法,所述报文通道的检测方法包括:

步骤s10,在待检测报文通道的出口获取检测报文;

在本实施例中,所述步骤s10之前,包括步骤:

1、按照预设的报文格式构造所述检测报文;

在本实施例中,首先按照预先定义的报文格式构造检测报文,为了降低检测报文对报文通道产生的负载压力,所述报文格式优选包括检测报文的报 文长度、报文类型、报文时戳标记等等。具体地,将所述报文长度设置到小于预设长度,如8个字节;而由于检测报文的构造要具有唯一性、特殊性,不能与真实的协议报文相混淆,因此通过设定检测报文的各个字段域的特征值与知名协议进行区分,相当于将检测报文的报文类型设置为不同于协议报文的报文类型。值得注意的是,检测报文的生存期在报文通道处理流程范围内,在完成报文通道性能统计处理后,该检测报文便终结。

具体地,所述检测报文的报文格式中包括的各个字段详解如下:

dstmac(目的地址)—00:d0:d0:ff:ff:ff;

ehertype(以太网类型)—0x8875与知名ehertype进行区分;

channelno—标记该检测报文所要检测的报文通道的通道编号,也称通道标识;

rxtimestamp—检测报文接收时的时戳标记;

txtimestamp—检测报文发送时的时戳标记。

进一步地,所述报文格式还可包括报文通道的通道标识,即构造检测报文时,还可将报文通道的通道标识作为报文参数进行检测报文的构造,后续检测报文构造完成后,可根据检测报文中包括的报文通道的通道标识,将检测报文传送至通道标识对应的报文通道中,而不是随机发送至报文通道中,提高了报文通道检测的智能性。

2、根据预设的发送方式将构造的所述检测报文传送至所述待检测报文通道中,其中,在将所述检测报文传送至所述待检测报文通道的入口时,记录当前时刻作为所述检测报文的起始时间戳;

在本实施例中,在构造检测报文完成后,可按照预设发送周期将构造的检测报文传送至待检测报文通道中,也可根据按需方式将检测报文传送至待检测报文通道中,所述发送周期表示间隔多久发送一个检测报文,具体时间可根据情况进行设置,例如每隔0.1秒发送一个检测报文,而所述按需方式可以根据用户配置在指定周期内发送特定数量的检测报文,本实施例中,所述待检测报文通道可包括网络设备中的各个报文通道,也可以是指定的一个或多个报文通道,而根据预设的发送方式将构造的检测报文传送至所述待检测报文通道中时,若构造检测报文时并没有根据报文通道的通道标识进行构造,则在发送检测报文时,循环向网络设备的各个报文通道进行入口发包,即此 时所述待检测报文通道是网络设备中的各个报文通道,此处发包周期要与当前协议规定的最小发包周期相匹配,过小的发包周期会产生比较大的通道负载,影响检测报文的传输时延,过大的发包周期会降低检测的准确性;若构造检测报文时是根据报文通道的通道标识进行构造的,则在发送检测报文时,先识别检测报文中携带的通道标识,并根据预设的发送方式将检测报文传送至识别的所述报文通道中,即此时所述待检测报文通道是指定的报文通道。

在将构造的检测报文传送至所述待检测报文通道中时,为了报文通道的处理时延做出准确检测,采用在检测报文内打时戳的方式,具体的时戳处理要分别放置在所述待检测报文通道的入口位置和所述待检测报文通道的出口位置,这样可以更准确测试评估检测报文在所述待检测报文通道内经过的时间,从而测算所述待检测报文通道当前性能状况,而时戳处理通过在底层硬件实现,针对检测报文直接在报文内部指定偏移字段打上当前时戳。而在将检测报文传送至所述待检测报文通道的入口时,记录当前时刻作为所述检测报文的起始时间戳。

在执行所述步骤s10的同时,执行以下步骤:

记录当前时刻作为所述检测报文的终止时间戳。

即在待检测报文通道的出口获取检测报文时,记录当前时刻作为所述检测报文的终止时间戳,最终,所述检测报文就是携带进入所述待检测报文通道的起始时间点和从所述待检测报文通道出来的终止时间点的检测报文。

在本实施例中,在待检测报文通道的出口获取检测报文的方式包括:同时在各个待检测报文通道的出口获取一个检测报文,或同时在各个待检测报文通道的出口依次获取多个检测报文;或者依次在各个待检测报文通道的出口获取一个检测报文,或依次在各个待检测报文通道的出口依次获取多个检测报文。

步骤s20,解析出所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳;

在本实施例中,在从待检测报文通道的出口获取到检测报文后,进入协议栈中对获取的检测报文进行解析,本实施例中的所述待检测报文通道可以表示为cpu(centralprocessingunit,中央处理器)列队,也可称之为通道队列,而所述协议栈可以表示cpu协议栈,其中,所述cpu协议栈的报文通道 就有48个报文通道,相当于有48个cpu队列。

在本实施例中,在所述待检测报文通道中获取到检测报文时,即可确定待检测报文通道的通道标识,即检测报文中哪一个报文通道中出来,则该报文通道即为待检测的报文通道,并获取所述待检测报文通道的通道标识;或者在所述待检测报文通道中获取到检测报文时,分析检测报文携带的通道标识,以确定待检测待检测报文通道。而在获取到检测报文之后,对获取的检测报文进行解析,以解析出检测报文的时间戳,所述时间戳即所述检测报文在对应的报文通道中的起始时间戳和终止时间戳。具体地,是通过dma((directmemoryaccess,直接内存存取)方式把检测报文从报文通道中提取到cpu协议栈(也可称之为cpu内存)中以便于进行解析计算,在底层实现上当cpu队列缓存内有检测报文,则通过dma将检测报文从报文通道中复制到cpu内存区域并触发中断信号,以便于解析所述检测报文的起始时间戳和终止时间戳。

步骤s30,基于所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳,计算所述检测报文在所述待检测报文通道中的时延;

在确定检测报文的起始时间戳或终止时间戳之后,基于所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳,即可计算所述检测报文在所述待检测报文通道中的时延,也就是将终止时间戳的时间减去起始时间戳的时间点,即可得到时间差,该时间差即为所述检测报文在所述待检测报文通道中的时延。具体地,在获取到检测报文内容后从检测报文指定位置读取rxtimestamp和txtimestamp时戳。两者通过delaytime=txtimestamp–rxtimestamp公式即可完成时延计算。而报文通道的通道标识则直接通过channelno字段解析得出。另外,也可以通过底层dma机制携带报文通道的通道标识到cpu内存中,以通过软件模块读取。在本实施例仅采用解析报文方式获取。

步骤s40,将计算的所述时延作为所述待检测报文通道的平均时延。

在计算检测报文在所述待检测报文通道的时延之后,将计算的所述时延作为所述待检测报文通道的平均时延,具体地,在待检测报文通道的出口获取到的检测报文为一个时,将计算的所述时延作为所述待检测报文通道的平均时延;而在待检测报文通道的出口获取到的检测报文为多个时,将所述待 检测报文通道中各个检测报文的时延进行相加并求平均值,并将所述平均值作为所述待检测报文通道的平均时延,根据这种方式即可得到各个待检测报文通道的平均时延。而待检测报文通道的平均时延的计算方式还可以以不同周期进行计算:例如以周期为5秒、15秒、30秒进行时延均值计算,计算公式如下:avg=(t1+t2···+tn)/period,其中,tn是一个检测周期内第n个检测报文的时延值,根据这种计算方式即可计算各个待检测报文通道的平均时延。

为更好理解本方案,举例应用场景如下:

首先,构造检测报文,检测报文的格式为:

dstmac:

data:0x00d0d0ffffff

mask:0xffffffffffff

ethertype:

data:0x8875

mask:0xffff

channelno:

data:xx

mask:0xff

检测报文构造完成后,指定action动作如下:

copytocpu

cosqcpunew

drop

其中,copytocpu动作负责把检测报文复制到cpu端口即报文通道的入口;cosqcpunew动作用于指定检测报文需要进入的cpu端口队列即报文通道队列的通道编号;drop动作表示丢弃检测报文,该动作是在报文通道检测完成后。

本发明提出的报文通道的检测方法,先在待检测报文通道的出口获取检测报文,然后解析出所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳,再基于所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳,计算所述检测报文在所述待检测报文通道中的时延,最后将计 算的所述时延作为所述待检测报文通道的平均时延,而不是在检测网络设备的报文通道时,只能对网络设备的各项功能一个个测试分析以排查故障,最终才能确定是时延性出现问题,本发明通过对检测报文进行分析,以确定报文通道的时延,提高了对报文通道检测的效率。

进一步地,为了提高报文通道的检测灵活性,基于第一实施例提出本发明报文通道的检测方法的第二实施例,在本实施例,参照图2,所述步骤s10之后,所述报文通道的检测方法还包括:

步骤s50,若预设时间间隔内,在所述待检测报文通道的出口获取到多个检测报文,则统计获取到的检测报文的个数;

步骤s60,根据统计的个数确定所述预设时间间隔内所述待检测报文通道的报文累计量。

在本实施例中,若预设时间间隔内,在所述待检测报文通道的出口获取到多个检测报文,则统计获取到的检测报文的个数,然后根据统计的个数即可确定所述预设时间间隔内所述待检测报文通道的报文累计量。其中,所述预设时间间隔根据具体时间进行设置,可以设置为30秒、1分钟、10分钟或30分钟等等,最终,将所述待检测报文通道的报文累计量作为所述待检测报文通道的检测结果。具体地,计算方式如下:avg=count/period,其中,count是一个统计周期内待检测报文通道传输的检测报文的累加个数。

进一步地,还可按照周期性统计所述待检测报文通道的检测报文个数,即每隔预设时间间隔统计待检测报文通道的检测报文。

在本实施例中,不仅仅采用时延作为报文通道的检测结果,还将累计量作为报文通道的检测结果,提高了报文通道检测的灵活性。

进一步地,为了提高报文通道的检测灵活性,基于第二实施例提出本发明报文通道的检测方法的第三实施例,在本实施例,参照图3,当定时执行所述在待检测报文通道的出口获取检测报文的步骤时,所述步骤s60之后,所述报文通道的检测方法还包括:

步骤s70,将所述待检测报文通道的报文累计量与上一个预设时间间隔内所述待检测报文通道的报文累计量进行比对;

步骤s80,在所述待检测报文通道的报文累计量与上一个预设时间间隔内所述待检测报文通道的报文累计量相等时,对所述待检测报文通道进行清空复位。

在本实施例中,在确定所述待检测报文通道的累计量后,将所述待检测报文通道的报文累计量与上一个预设时间间隔内所述待检测报文通道的报文累计量进行比对,若比对结果相同,说明本次预设时间间隔内检测报文在所述待检测通道中没有传送成功,即可表示所述待检测报文通道已经完全阻塞了,才导致检测报文发送失败,此时,对所述待检测报文通道进行清空复位,相当于通过复位相关的底层模块来解决问题。

具体地,在构造报文的发送方式不同时,待检测报文通道累计量的检测方式也包括以下两种情况:

1)对于周期性发送检测报文的情况下,则定时读取待检测报文通道中检测报文的数量,并将本次读取的检测报文的数量与所述待检测报文通道上次读取的检测报文的数量进行比较,以判断所述待检测报文通道是否处于有效工作状态;如果统计计数有累加变化则说明所述待检测报文通道工作正常,无需进行自恢复处理,值得注意的是,在上述的定时处理中,定时周期要大于检测报文的发送周期,这样才能保证在正常情况下获取检测报文统计的数值是累加计数后;如果统计计数没有变化,说明所述待检测报文通道处于失效状态,即所述待检测报文通道阻塞了,则此时对所述待检测报文通道进行清空复位以恢复所述待检测报文通道。

2)对于按需发送检测报文的情况,如果前后两次读取检测报文的累加计数无变化,需要进一步区分当前网络设备是处于空闲状态还是出现报文通道故障到检测报文失效,在按需检测状况下,触发检测报文的发送,并在发送完成后重新读取报文统计计数;如果全局统计计数有累加变化,说明所述待检测报文通道工作正常,无需自恢复处理;如果按需检测状况下,通过报文通道的统计计数判断出产生故障,同样对所述待检测报文通道进行清空复位以恢复所述待检测报文通道。

在本实施例中,若检测报文发送周期是1秒,那么在故障检测自恢复决策处理中,3秒内若无法收到检测报文或者检测报文计数累加统计不变,则认为所述待检测报文通道产生故障,可对所述待检测报文通道进行清空复位, 以保障所述待检测报文通道不产生长时间的检测报文丢失情况;或者是通过切换报文通道并采用复位底层硬件模块方式来恢复原有报文通道。

进一步地,为了提高报文通道的检测灵活性,基于第一、第二或第三实施例提出本发明报文通道的检测方法的第四实施例,参照图4,在本实施例,所述步骤s40之后,所述报文通道的检测方法还包括:

步骤s90,将所述待检测报文通道的平均时延与预设时延进行比对;

步骤s100,在所述待检测报文通道的平均时延高于预设时延时,提高所述待检测报文通道的优先级。

在本实施例中,首先获取所述待检测报文通道的平均时延;然后将所述平均时延与预设时延进行比较;如果当前能够满足协议要求,即所述待检测报文通道的所述平均时延低于或等于预设时延时,说明报文通道传输的报文速度较快,达到要求了,不会出现较大的延迟,此时不做处理;如果所述待检测报文通道的所述平均时延高于预设时延,说明报文通道的时延性较大,可能是通道的报文传输速度较慢,不符合要求,则此时提高所述待检测报文通道的优先级,以增强所述报文通道的性能,以便于下次传输协议报文时该报文通道的时延性会降低。

进一步地,还可以根据不同的策略需求查找更优报文通道,具体地,可以是在协议提取阶段指定需要变更的报文通道,以完成报文通道的自适应优化,以便于所述报文通道所在的网络设备传输协议报文时,先采用所述网络设备中优先级高的报文通道作为协议报文待传送的报文通道。

进一步地,本实施例中采用平均时延与协议要求最高时延门限即预设时延进行比较。如果当前报文通道的平均时延>协议要求时延最高时延门限,则在当前调度节点内较高优先级报文通道开始查找,如果找到高优先报文通道时延性能<协议要求时延最高门限,进一步读取当前报文通道的检测报文累计量和待优选报文通道的检测报文累计量,按累计量比例估算待选择报文通道的预测时延性能。如果此预测时延性能大于当前传输协议要求时延,则递次查找更高优先级报文通道直至最高优先级报文通道。如果最高级优先级报文通道依旧无法满足,则不做自适应优化动作。

在本实施例中,由于应用场景是网络设备拥有多个报文通道,并且各个 报文通道根据检测报文进行自适应检测与处理的过程,并且到cpu协议栈的报文通道有48个cpu队列,因此,队列调度采用4级调度方式进行调度。

在本发明中,实现了报文通道的自适应检测和自适应决策处理,提高了检测报文在网络设备中的处理效能和检测报文处理通道的冗余保护,提高了网络健壮性和容错能力。特别是在大业务量、复杂网络场景下,有效地解决了网络协议报文在设备内部的优化处理,保障了网络的正常运行。

本发明进一步提供一种报文通道的检测装置。

参照图5,图5为本发明报文通道的检测装置第一实施例的功能模块示意图。

需要强调的是,对本领域的技术人员来说,图5所示功能模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图5所示的报文通道的检测装置的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解该报文通道的检测装置的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。

本实施例提出一种报文通道的检测装置,所述报文通道的检测装置包括:

获取模块10,用于在待检测报文通道的出口获取检测报文;

在本实施例中,所述获取模块10获取检测报文之前,所述报文通道的检测装置包括预设模块,用于构造检测报文和传送检测报文至报文通道,所述预设模块包括构造模块、传送模块和记录模块,具体地:

构造模块,用于按照预设的报文格式构造所述检测报文;

在本实施例中,所述构造模块首先按照预先定义的报文格式构造检测报文,为了降低检测报文对报文通道产生的负载压力,所述报文格式优选包括检测报文的报文长度、报文类型、报文时戳标记等等。具体地,将所述报文长度设置到小于预设长度,如8个字节;而由于检测报文的构造要具有唯一性、特殊性,不能与真实的协议报文相混淆,因此通过设定检测报文的各个字段域的特征值与知名协议进行区分,相当于将检测报文的报文类型设置为不同于协议报文的报文类型。值得注意的是,检测报文的生存期在报文通道处理流程范围内,在完成报文通道性能统计处理后,该检测报文便终结。

具体地,所述检测报文的报文格式中包括的各个字段详解如下:

dstmac(目的地址)—00:d0:d0:ff:ff:ff;

ehertype(以太网类型)—0x8875与知名ehertype进行区分;

channelno—标记该检测报文所要检测的报文通道的通道编号,也称通道标识;

rxtimestamp—检测报文接收时的时戳标记;

txtimestamp—检测报文发送时的时戳标记。

进一步地,所述报文格式还可包括报文通道的通道标识,即所述构造模块构造检测报文时,还可将报文通道的通道标识作为报文参数进行检测报文的构造,后续检测报文构造完成后,可根据检测报文中包括的报文通道的通道标识,将检测报文传送至通道标识对应的报文通道中,而不是随机发送至报文通道中,提高了报文通道检测的智能性。

传送模块,用于根据预设的发送方式将构造的所述检测报文传送至所述待检测报文通道中,其中,在将所述检测报文传送至所述待检测报文通道的入口时,记录当前时刻作为所述检测报文的起始时间戳;

在本实施例中,在所述构造模块构造检测报文完成后,所述传送模块可按照预设发送周期将构造的检测报文传送至待检测报文通道中,所述传送模块也可根据按需方式将检测报文传送至待检测报文通道中,所述发送周期表示间隔多久发送一个检测报文,具体时间可根据情况进行设置,例如每隔0.1秒发送一个检测报文,而所述按需方式可以根据用户配置在指定周期内发送特定数量的检测报文,本实施例中,所述待检测报文通道可包括网络设备中的各个报文通道,也可以是指定的一个或多个报文通道,而根据预设的发送方式将构造的检测报文传送至所述待检测报文通道中时,若构造检测报文时并没有根据报文通道的通道标识进行构造,则所述传送模块在发送检测报文时,循环向网络设备的各个报文通道进行入口发包,即此时所述待检测报文通道是网络设备中的各个报文通道,此处发包周期要与当前协议规定的最小发包周期相匹配,过小的发包周期会产生比较大的通道负载,影响检测报文的传输时延,过大的发包周期会降低检测的准确性;若构造检测报文时是根据报文通道的通道标识进行构造的,则所述传送模块在发送检测报文时,先识别检测报文中携带的通道标识,并根据预设的发送方式将检测报文传送至 识别的所述报文通道中,即此时所述待检测报文通道是指定的报文通道。

在将构造的检测报文传送至所述待检测报文通道中时,为了报文通道的处理时延做出准确检测,采用在检测报文内打时戳的方式,具体的时戳处理要分别放置在所述待检测报文通道的入口位置和所述待检测报文通道的出口位置,这样可以更准确测试评估检测报文在所述待检测报文通道内经过的时间,从而测算所述待检测报文通道当前性能状况,而时戳处理通过在底层硬件实现,针对检测报文直接在报文内部指定偏移字段打上当前时戳。而在将检测报文传送至所述待检测报文通道的入口时,记录模块记录当前时刻作为所述检测报文的起始时间戳。

记录模块,用于所述获取模块在待检测报文通道的出口获取检测报文的同时,记录当前时刻作为所述检测报文的终止时间戳。

即所述获取模块10在待检测报文通道的出口获取检测报文时,所述记录模块记录当前时刻作为所述检测报文的终止时间戳,最终,所述检测报文就是携带进入所述待检测报文通道的起始时间点和从所述待检测报文通道出来的终止时间点的检测报文。

在本实施例中,所述获取模块10在待检测报文通道的出口获取检测报文的方式包括:同时在各个待检测报文通道的出口获取一个检测报文,或同时在各个待检测报文通道的出口依次获取多个检测报文;或者依次在各个待检测报文通道的出口获取一个检测报文,或依次在各个待检测报文通道的出口依次获取多个检测报文。

解析模块20,用于解析出所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳;

在本实施例中,在从待检测报文通道的出口获取到检测报文后,所述解析模块20进入协议栈中对获取的检测报文进行解析,本实施例中的所述待检测报文通道可以表示为cpu(centralprocessingunit,中央处理器)列队,也可称之为通道队列,而所述协议栈可以表示cpu协议栈,其中,所述cpu协议栈的报文通道就有48个报文通道,相当于有48个cpu队列。

在本实施例中,所述获取模块10在所述待检测报文通道中获取到检测报文时,即可确定待检测报文通道的通道标识,即检测报文中哪一个报文通道中出来,则该报文通道即为待检测的报文通道,并获取所述待检测报文通道 的通道标识;或者在所述待检测报文通道中获取到检测报文时,分析检测报文携带的通道标识,以确定待检测待检测报文通道。而在获取到检测报文之后,所述解析模块20对获取的检测报文进行解析,以解析出检测报文的时间戳,所述时间戳即所述检测报文在对应的报文通道中的起始时间戳和终止时间戳。具体地,是通过dma((directmemoryaccess,直接内存存取)方式把检测报文从报文通道中提取到cpu协议栈(也可称之为cpu内存)中以便于进行解析计算,在底层实现上当cpu队列缓存内有检测报文,则通过dma将检测报文从报文通道中复制到cpu内存区域并触发中断信号,以便于解析所述检测报文的起始时间戳和终止时间戳。

计算模块30,用于基于所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳,计算所述检测报文在所述待检测报文通道中的时延;

在确定检测报文的起始时间戳或终止时间戳之后,所述计算模块30基于所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳,即可计算所述检测报文在所述待检测报文通道中的时延,也就是将终止时间戳的时间减去起始时间戳的时间点,即可得到时间差,该时间差即为所述检测报文在所述待检测报文通道中的时延。具体地,在获取到检测报文内容后从检测报文指定位置读取rxtimestamp和txtimestamp时戳。两者通过delaytime=txtimestamp–rxtimestamp公式即可完成时延计算。而报文通道的通道标识则直接通过channelno字段解析得出。另外,也可以通过底层dma机制携带报文通道的通道标识到cpu内存中,以通过软件模块读取。在本实施例仅采用解析报文方式获取。

处理模块40,用于将计算的所述时延作为所述待检测报文通道的平均时延。

在所述计算模块30计算检测报文在所述待检测报文通道的时延之后,所述处理模块40将计算的所述时延作为所述待检测报文通道的平均时延,具体地,在待检测报文通道的出口获取到的检测报文为一个时,将计算的所述时延作为所述待检测报文通道的平均时延;而在待检测报文通道的出口获取到的检测报文为多个时,将所述待检测报文通道中各个检测报文的时延进行相加并求平均值,并将所述平均值作为所述待检测报文通道的平均时延,根据这种方式即可得到各个待检测报文通道的平均时延。而待检测报文通道的平 均时延的计算方式还可以以不同周期进行计算:例如以周期为5秒、15秒、30秒进行时延均值计算,计算公式如下:avg=(t1+t2···+tn)/period,其中,tn是一个检测周期内第n个检测报文的时延值,根据这种计算方式即可计算各个待检测报文通道的平均时延。

为更好理解本方案,举例应用场景如下:

首先,构造检测报文,检测报文的格式为:

dstmac:

data:0x00d0d0ffffff

mask:0xffffffffffff

ethertype:

data:0x8875

mask:0xffff

channelno:

data:xx

mask:0xff

检测报文构造完成后,指定action动作如下:

copytocpu

cosqcpunew

drop

其中,copytocpu动作负责把检测报文复制到cpu端口即报文通道的入口;cosqcpunew动作用于指定检测报文需要进入的cpu端口队列即报文通道队列的通道编号;drop动作表示丢弃检测报文,该动作是在报文通道检测完成后。

本发明提出的报文通道的检测装置,先在待检测报文通道的出口获取检测报文,然后解析出所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳,再基于所述检测报文在所述待检测报文通道中的起始时间戳和终止时间戳,计算所述检测报文在所述待检测报文通道中的时延,最后将计算的所述时延作为所述待检测报文通道的平均时延,而不是在检测网络设备的报文通道时,只能对网络设备的各项功能一个个测试分析以排查故障,最终才能确定是时延性出现问题,本发明通过对检测报文进行分析,以确定报 文通道的时延,提高了对报文通道检测的效率。

进一步地,为了提高报文通道的检测灵活性,基于第一实施例提出本发明报文通道的检测装置的第二实施例,在本实施例,参照图6,所述报文通道的检测装置还包括:

统计模块50,用于若预设时间间隔内,在所述待检测报文通道的出口获取到多个检测报文,则统计获取到的检测报文的个数;

确定模块60,用于根据统计的个数确定所述预设时间间隔内所述待检测报文通道的报文累计量。

在本实施例中,若预设时间间隔内,在所述待检测报文通道的出口获取到多个检测报文,则所述统计模块50统计获取到的检测报文的个数,然后所述确定模块60根据统计的个数即可确定所述预设时间间隔内所述待检测报文通道的报文累计量。其中,所述预设时间间隔根据具体时间进行设置,可以设置为30秒、1分钟、10分钟或30分钟等等,最终,将所述待检测报文通道的报文累计量作为所述待检测报文通道的检测结果。具体地,计算方式如下:avg=count/period,其中,count是一个统计周期内待检测报文通道传输的检测报文的累加个数。

进一步地,所述统计模块50还可按照周期性统计所述待检测报文通道的检测报文个数,即每隔预设时间间隔统计待检测报文通道的检测报文。

在本实施例中,不仅仅采用时延作为报文通道的检测结果,还将累计量作为报文通道的检测结果,提高了报文通道检测的灵活性。

进一步地,为了提高报文通道的检测灵活性,基于第二实施例提出本发明报文通道的检测装置的第三实施例,在本实施例,参照图7,当所述获取模块定时在待检测报文通道的出口获取检测报文时,所述报文通道的检测装置还包括:

第一比对模块70,用于将所述待检测报文通道的报文累计量与上一个预设时间间隔内所述待检测报文通道的报文累计量进行比对;

复位模块80,用于在所述待检测报文通道的报文累计量与上一个预设时间间隔内所述待检测报文通道的报文累计量相等时,对所述待检测报文通道 进行清空复位。

在本实施例中,在确定所述待检测报文通道的累计量后,所述第一比对模块70将所述待检测报文通道的报文累计量与上一个预设时间间隔内所述待检测报文通道的报文累计量进行比对,若比对结果相同,说明本次预设时间间隔内检测报文在所述待检测通道中没有传送成功,即可表示所述待检测报文通道已经完全阻塞了,才导致检测报文发送失败,此时,所述复位模块80对所述待检测报文通道进行清空复位,相当于通过复位相关的底层模块来解决问题。

具体地,在构造报文的发送方式不同时,待检测报文通道累计量的检测方式也包括以下两种情况:

1)对于周期性发送检测报文的情况下,则定时读取待检测报文通道中检测报文的数量,并且所述第一比对模块70将本次读取的检测报文的数量与所述待检测报文通道上次读取的检测报文的数量进行比较,以判断所述待检测报文通道是否处于有效工作状态;如果统计计数有累加变化则说明所述待检测报文通道工作正常,无需进行自恢复处理,值得注意的是,在上述的定时处理中,定时周期要大于检测报文的发送周期,这样才能保证在正常情况下获取检测报文统计的数值是累加计数后;如果统计计数没有变化,说明所述待检测报文通道处于失效状态,即所述待检测报文通道阻塞了,则此时所述复位模块80对所述待检测报文通道进行清空复位以恢复所述待检测报文通道。

2)对于按需发送检测报文的情况,如果前后两次读取检测报文的累加计数无变化,需要进一步区分当前网络设备是处于空闲状态还是出现报文通道故障到检测报文失效,在按需检测状况下,触发检测报文的发送,并在发送完成后重新读取报文统计计数;如果全局统计计数有累加变化,说明所述待检测报文通道工作正常,无需自恢复处理;如果按需检测状况下,通过报文通道的统计计数判断出产生故障,所述复位模块80同样对所述待检测报文通道进行清空复位以恢复所述待检测报文通道。

在本实施例中,若检测报文发送周期是1秒,那么在故障检测自恢复决策处理中,3秒内若无法收到检测报文或者检测报文计数累加统计不变,则认为所述待检测报文通道产生故障,可对所述待检测报文通道进行清空复位, 以保障所述待检测报文通道不产生长时间的检测报文丢失情况;或者是通过切换报文通道并采用复位底层硬件模块方式来恢复原有报文通道。

进一步地,为了提高报文通道的检测灵活性,基于第一、第二或第三实施例提出本发明报文通道的检测装置的第四实施例,在本实施例,参照图8,所述报文通道的检测装置还包括:

第二比对模块90,用于将所述待检测报文通道的平均时延与预设时延进行比对;

提高模块100,用于在所述待检测报文通道的平均时延高于预设时延时,提高所述待检测报文通道的优先级。

在本实施例中,首先获取所述待检测报文通道的平均时延;然后所述第二比对模块90将所述平均时延与预设时延进行比较;如果当前能够满足协议要求,即所述待检测报文通道的所述平均时延低于或等于预设时延时,说明报文通道传输的报文速度较快,达到要求了,不会出现较大的延迟,此时不做处理;如果所述待检测报文通道的所述平均时延高于预设时延,说明报文通道的时延性较大,可能是通道的报文传输速度较慢,不符合要求,则此时所述提高模块100提高所述待检测报文通道的优先级,以增强所述报文通道的性能,以便于下次传输协议报文时该报文通道的时延性会降低。

进一步地,还可以根据不同的策略需求查找更优报文通道,具体地,可以是在协议提取阶段指定需要变更的报文通道,以完成报文通道的自适应优化,以便于所述报文通道所在的网络设备传输协议报文时,先采用所述网络设备中优先级高的报文通道作为协议报文待传送的报文通道。

进一步地,本实施例中采用平均时延与协议要求最高时延门限即预设时延进行比较。如果当前报文通道的平均时延>协议要求时延最高时延门限,则在当前调度节点内较高优先级报文通道开始查找,如果找到高优先报文通道时延性能<协议要求时延最高门限,进一步读取当前报文通道的检测报文累计量和待优选报文通道的检测报文累计量,按累计量比例估算待选择报文通道的预测时延性能。如果此预测时延性能大于当前传输协议要求时延,则递次查找更高优先级报文通道直至最高优先级报文通道。如果最高级优先级报文通道依旧无法满足,则不做自适应优化动作。

在本实施例中,由于应用场景是网络设备拥有多个报文通道,并且各个报文通道根据检测报文进行自适应检测与处理的过程,并且到cpu协议栈的报文通道有48个cpu队列,因此,队列调度采用4级调度方式进行调度。

在本发明中,实现了报文通道的自适应检测和自适应决策处理,提高了检测报文在网络设备中的处理效能和检测报文处理通道的冗余保护,提高了网络健壮性和容错能力。特别是在大业务量、复杂网络场景下,有效地解决了网络协议报文在设备内部的优化处理,保障了网络的正常运行。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

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