一种实现报文检错的方法及装置与流程

文档序号:11732016阅读:375来源:国知局
一种实现报文检错的方法及装置与流程

本发明涉及数据通信领域,尤指一种实现报文检错的方法及装置。



背景技术:

在运行商网络、企业网络、以及互联网网络等网络中涉及种类和数量都十分庞大的网络设备,例如:宽带远程接入服务器(bras)设备、接入/核心路由器设备、接入/核心交换机设备、三层交换机设备和各种光网络设备等。这些网络设备运行ip网络协议,通过相互连接构建了一个基于ip网络协议的世界。报文经过网络设备传输时部分报文字段是不应发生变化的,而在报文传输过程中则可能发生报文错误的情况;以企业网络为例,假设存在区域a与区域b、区域a与区域c的通信链路,区域a和区域b之间的通信链路由于路由器或交换机的丢包率高、系统问题等ip链路问题使不应发生变化的报文字段在区域a和区域b之间传输时发生变化,造成报文错误的问题,影响正常通信。上述系统问题可能是系统软件或硬件存在故障、或外部环境影响系统工作性能(比如电磁干扰)等影响报文正常传输的问题。如果不应发生变化的报文字段被改变,例如ip地址字段被修改,则报文会被投递到错误的目的地址,最终作为坏包丢弃,影响网络的正常通信。

当网络规模不大时,发现错误报文后,一般可以由经验丰富的技术人员根据经验判断是否网络设备可能存在的问题,通过重启可能存在问题的网络设备、重新进行网络连接、或更换网络设备等方法进行报文出错问题的解决。当网络规模增大到一定程度时,如何确定报文是否发生错误变得十分困难,基于错误报文依据经验进行网络设备是否存在问题的判断准确程度也大大降低,解决错误报文问题需要进行多次尝试,而每次尝试都可能造成网络彻底中断,影响网络的正常通信。尤其是对于规模庞大的互联网网络,确定报文发生错误尤为困难。



技术实现要素:

为了解决上述技术问题,本发明提供一种实现报文检错的方法及装置,能够在网络规模增大的情况下,确定报文是否发生错误。

为了达到本发明目的,本发明提供了一种实现报文检错的方法,包括:

按照预设周期缓存实时抓取被检测网络传输的入向报文和出向报文;

将第一个预设周期和第二个预设周期中缓存的入向报文和出向报文中不应发生变化部分进行匹配,确定第一个预设周期中未匹配成功的报文为发生错误的报文;

所述第一个预设周期与第二个预设周期相邻,且第一个预设周期早于第二个预设周期。

可选的,按照预设周期缓存实时抓取被检测网络传输的入向报文和出向报文后,该方法还包括:

将缓存的入向报文和出向报文按照预设策略进行种类划分。

可选的,按照预设策略进行种类划分具体包括:

根据源地址、和/或目的地址、和/或源端口、和/或目的端口进行所述缓存的入向报文和出向报文种类的划分。

可选的,按照预设策略进行分类具体包括:

将缓存的入向报文或出向报文的源地址、和/或目的地址、和/或源端口、和/或目的端口进行算数相加后,以种类划分的个数作为除数进行取模计算,根据取模计算结果的不同将所述缓存的入向报文和出向报文划分为相应的种类;或,

将缓存的入向报文或出向报文的源地址、目的地址、源端口、目的端口进行变换值计算,以种类划分的个数作为除数进行取模计算,根据取模计算结果的不同将所述缓存的入向报文和出向报文划分为相应的种类。

可选的,变换值计算包括:哈希计算或消息摘要算法第五版md5计算。

可选的,对入向报文和出向报文中不应发生变化部分进行匹配具体包括:

对划分的各个种类中的所述入向报文和出向报文中不应发生变化部分进行匹配。

可选的,确定第一个预设周期中未匹配成功的报文为发生错误的报文之前,该方法还包括:

过滤所述被检测网络主动发出的出向报文和发送给所述被检测网络的入向报文。

可选的,该方法还包括:

预先建立以服务器、和/或配置的进程、和/或配置的线程构成的分析单元;

分配给各分析单元进行划分的一个或一个以上种类的所述入向报文和出向报文中不应发生变化部分的匹配。

可选的,分配给各分析单元进行划分的一个或一个以上种类的所述入向报文和出向报文中不应发生变化部分的匹配具体包括:

根据各分析单元的负荷,确定分配给各分析单元进行相应个数种类的所述入向报文和出向报文中不应发生变化部分的匹配。

可选的,将入向报文与出向报文中不应发生变化部分进行匹配具体包括:

将所述入向报文中不应发生变化部分的内容与出向报文中所述不应发生变化部分的内容进行匹配;或,

提取所述入向报文中不应发生变化部分的内容的特征值和所述出向报文中不应发生变化部分的内容的特征值;

将提取的所述入向报文中不应发生变化部分的内容的特征值与提取的所述出向报文中不应发生变化部分的内容的特征值进行匹配。

另一方面,本申请还提供一种实现报文检错的装置,包括:缓存单元和匹配单元;其中,

缓存单元,用于按照预设周期缓存实时抓取被检测网络传输的入向报文和出向报文;

匹配单元,用于将第一个预设周期和第二个预设周期中缓存的入向报文和出向报文中不应发生变化部分进行匹配,确定第一个预设周期中未匹配成功的报文为发生错误的报文;

所述第一个预设周期与第二个预设周期相邻,且第一个预设周期早于第二个预设周期。

可选的,该装置还包括种类划分单元,用于按照预设周期缓存实时抓取被检测网络传输的入向报文和出向报文后,将缓存的入向报文和出向报文按照预设策略进行种类划分。

可选的,匹配单元具体用于,

匹配单元,用于对划分的各个种类中,将第一个预设周期和第二个预设周期中缓存的入向报文和出向报文中不应发生变化部分进行匹配,确定第一个预设周期中未匹配成功的报文为发生错误的报文。

可选的,该装置还包括过滤单元,用于在匹配单元确定第一个预设周期中未匹配成功的报文为发生错误的报文之前,过滤所述被检测网络主动发出的出向报文和发送给所述被检测网络的入向报文。

可选的,该装置还包括构建及分配单元,用于预先建立以服务器、和/或配置的进程、和/或配置的线程构成的分析单元;

分配给各分析单元进行划分的一个或一个以上种类的所述入向报文和出向报文中不应发生变化部分的匹配。

与现有技术相比,本申请技术方案包括:按照预设周期缓存实时抓取被检测网络传输的入向报文和出向报文;将第一个预设周期和第二个预设周期中缓存的入向报文和出向报文中不应发生变化部分进行匹配,确定第一个预设周期中未匹配成功的报文为发生错误的报文;第一个预设周期与第二个预设周期相邻,且第一个预设周期早于第二个预设周期。本发明方法通过对实时抓取的入向报文和出向报文按照预设周期进行缓存和进行不应发生变化部分的匹配,实现了对实时传输报文中发生错误的报文的检测。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实现报文检错的方法的流程图;

图2为本发明实现报文检错的装置的结构程图。

图3为本发明第一实施例的方法流程图;

图4为本发明第二实施例的方法流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

图1为本发明实现报文检错的方法的流程图,如图1所示,包括:

步骤100、按照预设周期缓存实时抓取被检测网络传输的入向报文和出向报文;

需要说明的是,预设周期根据被检测网络传输报文的速度进行设定,一般的,预设周期为被检测网络传输一条报文所需的时长,可以通过传输特定的测试报文来获取该时长;另外,第一个和第二个预设周期仅是一个相对的概念,当确定完第一个预设周期发生错误的报文后,第一个预设周期缓存的入向报文和出向报文的报文检错已经结束,此时,原来的第二预设周期更新为新的第一个预设周期,原来的第二个预设周期的下一个预设周期更新为新的第二个预设周期。

按照预设周期缓存实时抓取被检测网络传输的入向报文和出向报文后,本发明方法还包括:

将缓存的入向报文和出向报文按照预设策略进行种类划分。

需要说明的是,由于入向报文和出向报文存在不应发生变化部分,因此划分种类时,相匹配的入向报文和出向报文必然在一个种类中。

按照预设策略进行种类划分具体包括:

根据源地址、和/或目的地址、和/或源端口、和/或目的端口进行缓存的入向报文和出向报文种类的划分。

优选的,按照预设策略进行分类具体包括:

将缓存的入向报文或出向报文的源地址、和/或目的地址、和/或源端口、 和/或目的端口进行算数相加后,以种类划分的个数作为除数进行取模计算,根据取模计算结果的不同将缓存的入向报文和出向报文划分为相应的种类;或,

将缓存的入向报文或出向报文的源地址、目的地址、源端口、目的端口进行变换值计算,以种类划分的个数作为除数进行取模计算,根据取模计算结果的不同将缓存的入向报文和出向报文划分为相应的种类。

进一步地,变换值计算包括:哈希计算或消息摘要算法第五版(md5)计算。

步骤101、将第一个预设周期和第二个预设周期中缓存的入向报文和出向报文中不应发生变化部分进行匹配,确定第一个预设周期中未匹配成功的报文为发生错误的报文;这里,第一个预设周期与第二个预设周期相邻,且第一个预设周期早于第二个预设周期。

对入向报文和出向报文中不应发生变化部分进行匹配具体包括:

对划分的各个种类中的入向报文和出向报文中不应发生变化部分进行匹配。

将入向报文与出向报文中不应发生变化部分进行匹配具体包括:

将入向报文中不应发生变化部分的内容与出向报文中不应发生变化部分的内容进行匹配;或,

提取入向报文中不应发生变化部分的内容的特征值和出向报文中不应发生变化部分的内容的特征值;

将提取的入向报文中不应发生变化部分的内容的特征值与提取的出向报文中不应发生变化部分的内容的特征值进行匹配。

确定第一个预设周期中未匹配成功的报文为发生错误的报文之前,本发明方法还包括:

过滤被检测网络主动发出的出向报文和发送给被检测网络的入向报文。

本发明方法还包括:

预先建立以服务器、和/或配置的进程、和/或配置的线程构成的分析单 元;

分配给各分析单元进行划分的一个或一个以上种类的入向报文和出向报文中不应发生变化部分的匹配。

优选的,分配给各分析单元进行划分的一个或一个以上种类的入向报文和出向报文中不应发生变化部分的匹配具体包括:

根据各分析单元的负荷,确定分配给各分析单元进行相应个数种类的入向报文和出向报文中不应发生变化部分的匹配。

本发明方法通过对实时抓取的入向报文和出向报文按照预设周期进行缓存和进行不应发生变化部分的匹配,实现了对实时传输报文中发生错误的报文的检测。进一步地,通过错误报文的检测提高了对大规模网络中造成报文错误的网络设备故障处理的准确率。

图2为本发明实现报文检错的装置的结构程图,如图2所示,包括:缓存单元和匹配单元;其中,

缓存单元,用于按照预设周期缓存实时抓取被检测网络传输的入向报文和出向报文;

匹配单元,用于将第一个预设周期和第二个预设周期中缓存的入向报文和出向报文中不应发生变化部分进行匹配,确定第一个预设周期中未匹配成功的报文为发生错误的报文;

第一个预设周期与第二个预设周期相邻,且第一个预设周期早于第二个预设周期。

匹配单元具体用于,

将第一个预设周期和第二个预设周期中缓存的入向报文和出向报文中不应发生变化部分,

将入向报文中不应发生变化部分的内容与出向报文中不应发生变化部分的内容进行匹配;或,

提取入向报文中不应发生变化部分的内容的特征值和出向报文中不应发生变化部分的内容的特征值;

将提取的入向报文中不应发生变化部分的内容的特征值与提取的出向报文中不应发生变化部分的内容的特征值进行匹配;

确定第一个预设周期中未匹配成功的报文为发生错误的报文。

本发明装置还包括种类划分单元,用于按照预设周期缓存实时抓取被检测网络传输的入向报文和出向报文后,将缓存的入向报文和出向报文按照预设策略进行种类划分。

种类划分单元具体用于,按照预设周期缓存实时抓取被检测网络传输的入向报文和出向报文后,将缓存的入向报文和出向报文根据源地址、和/或目的地址、和/或源端口、和/或目的端口进行种类的划分。

优选的,种类划分单元具体用于,

按照预设周期缓存实时抓取被检测网络传输的入向报文和出向报文后,将缓存的入向报文或出向报文的源地址、和/或目的地址、和/或源端口、和/或目的端口进行算数相加后,以种类划分的个数作为除数进行取模计算,根据取模计算结果的不同将缓存的入向报文和出向报文划分为相应的种类;或,

将缓存的入向报文或出向报文的源地址、目的地址、源端口、目的端口进行变换值计算,以种类划分的个数作为除数进行取模计算,根据取模计算结果的不同将缓存的入向报文和出向报文划分为相应的种类。

匹配单元具体用于,

匹配单元,用于对划分的各个种类中,将第一个预设周期和第二个预设周期中缓存的入向报文和出向报文中不应发生变化部分进行匹配,确定第一个预设周期中未匹配成功的报文为发生错误的报文;

本发明装置还包括过滤单元,用于在匹配单元确定第一个预设周期中未匹配成功的报文为发生错误的报文之前,过滤被检测网络主动发出的出向报文和发送给被检测网络的入向报文。

本发明装置还包括构建及分配单元,用于预先建立以服务器、和/或配置的进程、和/或配置的线程构成的分析单元;

分配给各分析单元进行划分的一个或一个以上种类的入向报文和出向报文中不应发生变化部分的匹配。

构建及分配单元具体用于,

预先建立以服务器、和/或配置的进程、和/或配置的线程构成的分析单元;

根据各分析单元的负荷,确定分配给各分析单元进行相应个数种类的入向报文和出向报文中不应发生变化部分的匹配。

以下通过具体实施例对本发明方法进行清楚详细的说明,实施例仅用于陈述本发明,并不用于限定本发明方法的保护范围。

实施例1

本实施例进行报文检错时,被检测网络可以是一个或一个以上网络设备构成的网络,网络设备可以是路由器或交换机等;本实施例获取被检测网络传输的入向报文和出向报文实时的进行抓取和缓存,缓存入向报文和出向报文时还记录包含时间属性、报文的流向信息等。图3为本发明第一实施例的方法流程图,如图3所示,包括:

如图3所示,本实施例具体包含如下步骤

步骤300、实时抓取被检测网络传输的入向报文和出向报文;

步骤301、按照预设周期对实时抓取的被检测网络的入向报文和出向报文进行缓存;

步骤302、将缓存的入向报文和出向报文按照预设策略进行种类划分;

需要说明的是,对于一个经过被检测网络未发生错误的报文,假设是报文p,当它进入被检测网络时作为入向报文被抓取时为p1;离开被检测网络时被抓取时为p2,进行种类划分时,需要保证报文p的入向报文和出向报文在同一个种类中。

本实施例进行种类划分可以通过以下方式实现:

将缓存的入向报文或出向报文的源地址、和/或目的地址、和/或源端口、和/或目的端口进行算数相加后,以种类划分的个数作为除数进行取模计算,根据取模计算结果的不同将缓存的入向报文和出向报文划分为相应的种类;或,

将缓存的入向报文或出向报文的源地址、目的地址、源端口、目的端口进行变换值计算,以种类划分的个数作为除数进行取模计算,根据取模计算结果的不同将缓存的入向报文和出向报文划分为相应的种类。这里,变换值计算包括:哈希计算或消息摘要算法第五版(md5)计算。

步骤303、对划分的各个种类,将第一个预设周期和第二个预设周期中缓存的入向报文和出向报文中不应发生变化部分进行匹配,确定第一个预设周期中未匹配成功的报文为发生错误的报文。这里,第一个预设周期与第二个预设周期相邻,且第一个预设周期早于第二个预设周期。

需要说明的是,入向报文和出向报文可以在缓存过程中进行区分。另外,报文从流入到流出被检测网络所需时长为预设周期,所以与第一个预设周期内的入向报文相匹配的出向报文必然在第一个预设周期或第二个预设周期内,如果在第一个和第二个预设周期内不存在与第一个预设周期内的入向报文相匹配的出向报文,则报文在被检测网络传输时发生了错误。

本实施例进行入向报文和出向报文中不应发生变化部分的匹配可以通过以下优选方式实现:

本实施例预先建立以服务器、和/或配置的进程、和/或配置的线程构成的分析单元;

由各分析单元进行划分的一个或一个以上种类的入向报文和出向报文中不应发生变化部分的匹配。具体的,

根据各分析单元的负荷,确定由各分析单元进行相应个数种类的入向报文和出向报文中不应发生变化部分的匹配。例如,本实施例包括分析单元1、分析单元2、分析单元3;其中,分析单元1由单独的物理服务器构成,分析单元2和分析单元3在另一物理服务器配置的两个线程构成,分析单元2和分析单元3的性能和内存可以根据本领域技术人员对划分种类的多少和各种类报文数量结合经验进行配置。本实施例假设划分为4个种类,则理论上分析单元1应该进行两个种类的入向报文和出向报文中不应发生变化部分的匹配;分析单元2和分析单元3分别进行1个种类的入向报文和出向报文中不应发生变化部分的匹配;如果划分种类较多,在给各分析单元分配完划分的种类后,对新划分的种类,可以根据分析单元的负荷情况进行负载均衡,当 然,本领域技术人员还可以通过建立新的分析单元,用于新划分种类的入向报文和出向报文中不应发生变化部分的匹配。负荷状态可以通过分析单元实时或周期反馈,也可以通过设定告警阈值,在超过告警阈值时主动进行反馈。

需要说明的是,报文经过网络设备传输时,不应发生变化部分从流入网络设备到流出网络设备,其内容是不会发生变化的,即如果网络未出现链路问题,则入向报文中不应发生变化部分的报文字段和出向报文中不应发生变化部分的报文字段所包含的内容是一样的,匹配确定包含内容一致时,确定报文没有发生错误;例如、假设网络设备传输的报文不应发生变化部分的内容是[0x10,0x20,0x30],则报文检错的装置如果获取到一个入向报文,不应发生变化部分的内容是[0x10,0x20,0x30];报文检错的装置根据入向报文和出向报文不应发生变化部分的匹配,确定报文未发生错误;本实施例如果报文不应发生变化部分在传输过程中发生了改变,则例如获取的出向报文变成[0x10,0x20,0x31],此时,报文检错的装置无法匹配与入向报文不应发生变化部分相同的出向报文,确定报文发生了错误。不同种类的报文,在网络设备传输时不发生变化的报文字段部分可能是不同的,具体可以根据本领域技术人员的公知常识进行确定,发生变化的报文字段是指除不发生变化的报文字段部分的内容,如ip报文的ttl字段,在传输过程中会被网络设备做合法修改(比如、此时网络设备时一个路由器)。

对入向报文与出向报文中不应发生变化部分进行匹配可以是对入向报文中不应发生变化部分与出向报文中不应发生变化部分进行内容上的一一对比;

对入向报文与出向报文中不应发生变化部分进行匹配还可以通过对入向报文中不应发生变化部分和出向报文中不应发生变化部分分别提取特征值后,将入向报文中不应发生变化部分提取的特征值与出向报文中不应发生变化部分提取的特征值进行匹配,通过提取特征值的方法可以提高入向报文和出向报文的匹配效率。

需要说明的是,本实施例抓取的报文在种类划分和后续匹配过程中,可以直接通过提取的特征值(哈希计算获得的值或md5计算获得的值)进行,提取的特征值包括报文长度、和/或源地址、和/或目的地址、和/或源端口、 和/或目的端口、和/或报文区分字段等。

确定第一个预设周期中未匹配成功的报文为发生错误的报文之前,本实施例还包括:过滤被检测网络主动发出的出向报文和发送给被检测网络的入向报文。

实施例2

本实施例中,预先建立以服务器、和/或配置的进程、和/或配置的线程构成的分析单元;假设之前划分的各个种类的报文已经根据各个分析单元的性能和负荷进行了分配,本实施例假设根据种类划分的方法产生一个新的种类,图4为本发明第二实施例的方法流程图,如图4所示,包括:

步骤400、将缓存的入向报文和出向报文按照预设策略进行种类划分,产生新的种类;

步骤401、获取各个分析单元的负荷状态,根据负荷装置将新产生的种类分配到一个分析单元中。

分析单元的负荷状态可以包括:cpu使用率、内存使用率,还可以包括缓存的未进行匹配的报文的数量等。

本实施例中,可以设定各个分析单元相应的负荷阈值,当分析单元负荷达到负荷阈值时,则无需获取该分析单元的负荷状态。

步骤402、若分析单元接收新产生种类的入向报文和出向报文时负荷过大,则拒绝接收分配的新产生种类的入向报文和出向报文;

步骤403、重新将新产生的种类分配到一个新确认的分析单元中。

需要说明的是,分析单元的负荷可以周期性或触发性反馈,也可以通过查询方式获得。分析单元还可以在负荷降低(例如有些种类的报文已经匹配完成,或者该种类报文缓存数量减少)及负荷超出一定范围时主动进行反馈。使分析单元的负荷信息可以及时的获得。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利 要求书所界定的范围为准。

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