计算机网络智能诊断技术探讨
2020-04-14
(中共四川省委党校 四川行政学院,四川 成都 610072)
0 引言
计算机网络可以实现高效的信息共享、信息分发等服务,在人类社会日益依赖计算机网络的背景下,如果计算机网络发生故障很可能造成严重的损失,而计算机网络智能诊断方法具有强大的鲁棒性和容错能力,能够在不确定或未知的系统中通过自主学习处理定量和定性信息,同时可以很好地适应计算机网络的各种动态变化[1]。基于上述优点智能诊断技术已被广泛应用于诊断计算机网络故障,并获得了一定的成果。
1 计算机网络智能诊断理论方法
计算机网络智能故障诊断技术主要涉及模糊推理和遗传算法、人工神经网络、专家系统、人工免疫算法等理论和方法。
1.1 基于人工神经网络的网络故障诊断方法
基于人工神经网络的网络故障诊断过程主要包括以下几个步骤:第一步,预处理采集到的故障数据,筛选车真正需要的数据,然后通过约简方法去掉数据中的不必要的冗余信息点。第二步,使用训练样本集训练神经网络,训练成熟后可以确定神经网络的结构(中间层的传递函数、神经元数目)和参数(神经元之间的连接权值和阀值)[2],此时借助测试样本集测试神经网络,如果故障诊断的准确率在整个测试过程中未达到预期,则需要再次进行神经网络训练。
1.2 基于专家系统、模糊推理的网络故障诊断法
模糊推理的过程是利用模糊逻辑输入具体信息后最终输出信息。第一步,建立知识库,这一步需要充分利用专家系统大致描述故障和障碍现象以及故障现象与故障现象之间的关联。第二步,通过数据挖掘、专家定制和神经网络技术创建模糊规则。第三步,使用模糊推理机查找故障位置及其类型。
1.3 基于支持向量机的网络故障诊断法
支持向量机属于机器学习算法,泛化能力很强。相较于其他智能诊断方法,基于支持向量机的网络故障诊断法面对小样本、非线性、高维模式识别等问题具有明显的优势,适用于图像处理、模式识别、数据分析[3]。具体诊断步骤如下:第一步,获取网络状态并约简,然后将特征数据分为训练样本集、测试样本集。第二步,选择支持向量机初始参数,包含内核函数参数、惩罚参数。第三步,借助训练样本集来训练支持向量机以获得最佳分类超平面。第四步,使用测试样本集检验网络故障诊断有效性。如诊断准确率不能满足要求,则需要增加样本训练集中的样本,重新训练支持向量机。第五步,如诊断准确率符合要求,则进入正式的在线故障诊断阶段。计算机网络故障诊断是一个非常有代表性的小样本问题,而支持向量机作为现阶段解决小样本问题的最理想的算法在诊断网络故障时可以获得非常理想的效果。
2 基于支持向量机的计算机网络故障检测模型
2.1 传统网络故障检测存在的问题
随着新的网络应用程序的不断出现以及配置方法的多样化,计算机网络故障诊断难度不断提升。对于计算机网络故障诊断来说,异常检测技术非常重要。异常检测技术的基本步骤是:首先,需要从检测源中提取一些相关量。即从大量的网络数据中提取出相关量展开统计,以构建特征数据体系。如果网络中的行为数据与事先建立的特征数据之间的偏差超过某个数值,则可以判定计算机网络发生了故障,这样一来,计算机网络诊断问题的关键就是模式识别问题,通过机器学习方式解决解决网络故障问题。在样本足够多的前提下研究了传统的机器学习算法可以获得理想的效果。但是,在计算机网络应用程序层中获取的用于机器学习的数据和实际应用中的检测数据相比显然是一个很小样本问题,在小样本情况下运用传统的机器学习算法识别网络故障存在两个问题:①因为计算机网络应用程序不断出现以及持续更新,目前无法找出能表征所有应用程序层故障的函数[4]。②除了用来通信数据流外,计算机网络还包含很多用来纠错、控制的数据流以及部分格式错误的数据包。上述噪声数据可能会导致目标函数无法正确映射训练数据。
2.2 支持向量机(SVM)方法的优点
基于上述问题,虽然人工神经网络技术在网络层、数据链路层可以获得理想的应用效果,但在计算机网络应用程序层无法充分发挥作用。例如,网络结构如何确定、过度训练、过度学习、训练不足、局部极小点问题。针对这些问题,弗拉基米尔·N·瓦普尼克(Vladimir N Vapnik)提出了统计学习理论(SLT),基于理论构建比较完善的用于小样本的学统计体系,并开发出一个新模型——支持向量机(SVM)[5],有效地控制机器学习的复杂程度,显著提升学习机器的推广性,解决了“维数灾难”问题,通过内积核函数讲低维空间转换为高维特征空间在高维特征空间中创建线性判别函数,从而在最初的空间中实现非线性判别函数。理论上讲,支持向量机(SVM)方法不仅保证了学习机器的推广性,而且还解决了维数问题。同时,理论上支持向量机(SVM)方法无需考虑局部极小点问题,因此,支持向量机(SVM)方法非常适合用于检测计算机网络应用程序层故障。
2.3 基于支持向量机的网络故障检测模型框架
如图1,基于支持向量机的计算机网络应用程序层的故障检测模型主要包括数据捕获模块、支持向量库、支持向量机预测模块、数据预处理模块、支持向量机训练模块构成的事件分析器;事件数据库;输出和响应模块[6]。
模型基本处理流程:①数据捕获模块采集计算机网络应用层数据,对网络应用层的记录进行分析,提取特征信息。②数据预处理模块对网络连接的特征信息进行预处理,得到支持向量机的输入向量格式。③如果处于支持向量机训练状态,则训练支持向量机并将训练结果存储在支持向量库中。当处于支持向量机预测状态时,支持向量机预测模块是输入向量;预测结果存储在事件数据库中,并执行响应操作,如发出警报,给出处理建议等。④数据预处理模块对故障记录执行加权预处理用于支持向量机的输入向量。借助训练样本集进行支持向量机训练,获得的支持向量存储在支持向量库中。⑤基于支持向量库,由支持向量机检测器处理输入的测试样本,获得预测输出值Y,数值为为1或-1,1表示网络正常,-1表示网络异常。⑥当预测输出值为-1时则判定计算机网络应用层出现故障。为了进行检测可以选择一次上层网络连接作为样本,通过六元组(timestamp,srclP,dstlP,srcPort,dstPort,protocolType)表示一次上层网络连接。timestamp代表一次上层网络连接开始的时间。对于单个数据包将发送该数据包的时间作为timestamp。如果是连续的数据包序列,则网络连接发起时首个数据包发送的时间作为timestamp,其数值可精确到微秒级别。srcIP、srcPort分别代表源主机的地址和端口号,而dstlP、dsttPort分别代表目标主机的地址和端口号。将输入空间定义为M,其代表所有网络连接的集合[7]。假设每个网络连接有x个特征信息,则M∈Rn。将N定义为输出域,一维向量m用于表示网络连接m={m1,m1,...mx},其中mi={1,2,....x}代表样本m的第i个特征值。
3 结语
综上,面对越来越负责的计算机网络以及不断变化的计算机网络应用程序层,传统的基于机器学习算法的网络故障诊断方法存在不足。因此,为了准确有效地诊断计算机网络故障问题有必要在了解常用解网络故障诊断方法的基础上探讨更加高效的故障检测模型。