付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Tools ysisandVisualizationBasedNetworkAuthor:LUYa-nanTutor:LI TheWirelessInternethasgotrapiddevelopmentwiththewidelypopularofiOSandAndroidtforminrecentyears.Inthispaper,wepreliminarilyexploredthemethodsofInternettrafficysistoclassifydifferentapplications,inviewoftherequirementsintrafficcontrol,securitytesting,networkmanagementorotherfields.Firstly,wedeterminedthesystemfunctionalrequirements,whichincludesdataacquisition,networkflowextractionandstorage,networkflowfeatureextractionand byreferencetodomesticandforeignresearch.Thenwedesignedandimplementedapracticaltoolfor ysisandvisualizationbasedon networklog.ThetoolincludesthenetworklogacquisitionmodulewithAndroidapplicationdevelopment,theone-wayandtwo-waynetworkflowextractionmodulebydetectingSYN,ACKandFINbitinTCPpacket,thenetworkflowstoragemodulewithcustomfiletypesandstoragestrategy,thenetworkflowfeatureextractionmoduleandtheclassificationmoduleusingtheK-meansclusteringalgorithm.Wecollectedthenetworklogandtrafficoffourpopularnetworkapplications,suchasWeixin,Youku,IqiyiandDoudizhu,usingthetool.Then,weextractedandstoredtheone-wayandtwo-waynetworkflowsinthetraffic,filteredtheflowswhicharenotenough10(fortwo-wayflows)or5(forone-wayflows)packets,andextractedstatisticalfeaturevectorstofiles.Finally,weperformedclusterysisusingtheK-meansalgorithmbysettingdifferentKvalueswithone-or-two-wayflows,andcomparedtheclassificationresultsforpreliminaryconclusion.Wealsoestimatedtherationalityofdataset’sconstituentsindirectly,usingthefeatureselectionalgorithmsinWEKA,andsoestimatedhowmuchinfluencetheconstituentshadonclusterresults.Finally,wesummarizedtheachievementsand ingsinthetools’designinganddeeperstudy,andthenprospectthefuturework. ,Network,ysis, 绪 研究背 国内外研究现 工作目标与内 的组织结 相关技术综 机器学习算 K-means聚类算 基于网络密度的聚 C4.5决策树算 网络流量的特 分类与识别方 特征选择的方 特征选择的一般过 WEKA工具中的特征选择功 本章小 网络流量分析工具需求分 运行环 功能性需 3.2.1功 网络流解析与功 网络流特征提 特征分 非功能性需 网络流量分析工具设计与实 工具总体架构设 主机数据库设 移动客户端网络日志模块设计与实 网络流解析模块设计与实 网络流模块设计与实 基于机器学习的分类模块设计与实 网络流分类识别功能设 本章小 网络流量分析工具实 实验环 ................................................................................................................特征选择实验结果与分 单向流特征选择结 双向流特征选择结 聚类实验结果与分 参数设 类型识别定 实验结 实验结果分 本章小 总结与展 工作总 工作展 致 参考文 向量,将每个网络流投射到一个空间中;最后,使用聚类算法将空间中使用相价标准。最终确定本所使用的方法:首先利用Android平台网络日志,以标记流量的来源;然后解析并网络流,提取网络流特征,使用较为简单的K-means聚类算为实现上述工作目标,本需要Android移动客户端的网络日志,提取和研视化分析工具,并进行实验得到初步结论。具体而言,本确定Android移动客户端的网络日志要的内容,的方法,以及向主设计实现网络流解析与模块本文的主要内容是研究一套基于移动客户端的网络日志分析与可视化工具,首先需要移动客户端的网络日志,对应的网络流量数据,研究基于机器学习的的功能需求和设计思路,给出系统的总体结构设计和模块详细设计方案;最后,相关技术综述K-means聚类算本主要研究使用了k-means聚类算法,其算法基本思想是初始随机生成K个簇N个对象中,随机选取K2~3步直至新的聚类中心点与原聚类中心点相等或小于指定阀值或者达到DBSCANDensity-basedSpatialClusteringofApplicationswithNoise)是一种基于网络密度的聚类算法,将聚类簇定义为高密度网络中样本的最大集合。BSCAN对噪声干扰敏感度小,并且可以发现任意形状的聚类簇。DBSCAN是非常有代表性的基于样本点空间中发现任意形状的聚类族。DBSCAN采用迭代查找的方法,通过迭代地查C4.5中归纳出一组采用树形结构表示的分类规则[1]。自20世纪60年代以来,决策树方法1策树分类模型;第2步是利用生成的决策树模型对类型未知的样本进行分类。在使用决策树模型对类型未知样本进行分类时,从根节点开始逐步对该样本的属性进试,C4.5决策树算法,其在处理流量分类问题C4.5决策树方法在模型构建和样本预测过程中都不依赖于网络流样本的分布,在利用C4.5SVM流量特征是Moore等人于2005年提出来的,他们给出了网络流量传输过程中表现出来的能够对流进行区分的249个经典统计特征和有关的测量方法[10],是目前基于Crotti[7]等人提出了协议的概念,它代表了一种协议所产生网络流的统计特性,戴强[8]等人发现在文件共享过程中,P2P流量具备以下特征:TCP连接特征,一个P2P源端和一个或多个P2PIPIP和目的端port的比值识别P2P;上下行P2P流量特征,上传流量和流量比值也可以识别P2P;数据报文大小特征。P2P的这些行为特征区别于其他的网络应用。如果不能通过网络流携带的数据匹配正则表达式的方式识别出所使用的网络应用特征选择过程一般包括四个部分:产生过程,评价函数,停止准则,验证过程。产2-1图2-1特征选择过程WEKA的全名是怀卡托智能分析环境(WaikatoEnvironmentforKnowledge InfoGainAttributeEval:根据与分类有关的每一个属性的信息增益进行评估WEKA工具中关于特征选择的功能。网络流量分析工具需求分析移动客户端采用Android系统,用于网络日志数据。主机端为UbuntuLinux系统,用于网络流量,并进行处理分析。根据1.3节中对流量分析目标的描述,确定分析工具需要具备、网络流解析与、网络流特征提取以及特征分析等功能。机镜像端口,从无线路由器接口获取网络流量,为标准的pcap格式,有成工具如tcpdump、wireshark可以使用。网络日志是要获取系统当前所有对络连接的信息并记录下来,作为网络日志,包括连接的服务器端IP地址,服务器端端,所使用的通信协议,对应的应用应用名称app_name>,<服务器端IP地址>,<服务器端端>,<通信协议>}。网络日志完成后,可以编辑接受数据主机的IP地址,通过无线网络传送到主在本中,移动客户端选择Android客户端,网络日志本可以使用netstat工具获借鉴其实现方法(开源),使用Android程序设计方法,实现模块,名称为Netlog。模块设计用例图如图3-1所示。图3-1网络日志模块模块设计用例IPIP地址是相反的,但是他们属于同一个网络流中,因此,首先开始发送数据报的一方定义为客户端,将另一个定义为服务器端。五元组{<服务器端IP地址>,<客户端IP地址>,<服务器端端>,<客户端出现重合的概率是极小的。所以,本模块中使用七元组{<IP地址>,<客户端IP地址>,<服务器端端>,<客户端端>,<传输层使用的协议>,<开始时间-需要实现单向流的解析,又需要实现双向流的解析。网络流包含如下两部分:1,固定格式命名的流tcp数据包文件,将每个网络流的3-1表3-1网络流统计特征IPIPIPACKSYNURG位置位的包IPIPIP加服务器端IP地址及端,网络流的传输方向,网络流的开始时间,作为特征向量IP地址,即可实现标识特WEKA工具进行实验,则需要ARFF格式的特征文件。具体的说,需要实现机器学习算法,比如K-means聚类算法,C4.5决策树算法,EM最大期望算法,SVM支持向量机,贝叶斯分类器等等。目前,可以只实现KmeansK-meansK值.45,应10较为合理,应该能够充分体现网络流的统计特征,又保证了运算效率,因此,本中优先使用10进行实验,之后尝试增大或缩小后的分类结果,寻求最佳值。而对于单向网络流,相应的选用5进行实验。 网络流量分析工具设计与实现4-1图4-1网络流量分析工具模块结构Tcpdump截包模块所使用令格式为“tcpdumptcp–ieth0–wxxx.pcap”然后,使用网络流解析与模块从pcap文件中解析单向和双向网络流,将网络根据聚类算法的设定,对网络流的前N(本对双向网络流优先取10,对单向网络5)个数据包进行分析,这就要求过滤出含有足够N个数据包的网络流。在分析工具中,通过流日志过滤模块从filelog文件中进行筛选,得到合格的网络流文件名,存图4-2网络流量分析工具数据处理流程然后,在网络流特征向量提取模块中,根据filelog.new中的文件列表,逐次网络流,提取每个网络流的相应统计特征(见3.2.3节),存入文件。IP外,由于特征向量中有一部分并非来源于所要重点的网络应用,需要将其过滤掉,以免影响分类结果,得到feature.kmeans.pure特征向量文件。WEKA中的特征选择算法,对从参考文献中借鉴得到的特征向量进行选择,最后,在K-meansfeature.kmeans.pure特征向量文件,进分类结果的可视化借助excel工具,使用分析工具生成的统计数据,制作图表。数据处理流程如图4-2所示。netlog表,用于移动客户端的网络日志数据。如表4-1所示表4-1netlog数据库表应用程序名称(原始字符串smalintipapp表,用于服务器端IP地址与应用程序名称(规范化)的映射表,包ipname两个字段。如表4-2所示。应用程序名称(规范化feature表,用于所有网络流的特征向量。如表4-3所示表4-3feature数据库表smalintsmalintintintfloatfloatsmalintsmalintsmalintACKsmalintSYNsmalintURG位置位的包floatfloatfloatfloatfloat经过实验和调研,一般用户无权限“/proc/<进程id>”,所以,要获取数遍历“/proc/<进程id>/fd/”,执行“ls–l”命令,运用正则表达式选出含进程id>/stat”文件中应用名称,将{inode,app_name}存入散列表。遍历“/proc/net/”中的tcp、tcp6、udp、udp6文件,每一行,获得服务器地网络通信,即“127.x.x.x”,“192.168.x.x”,“”形式的IP地址。1inode值查询散列表,得到对应应用名称,从而形成一条完整TCPserver,4-3图4-3网络日 流程4-4InodeToName类实现了inode值与应用名称关联数据申请root权限。load()方法中实现了方法,生成完整的prg_hash数据集。图4-4网络日志模块类结构name、rem_address、portprotocolIP断两个对象是否相等,避免重复。toString()方法的功能是将段输出为字符串,作Netloglog_set变量,类型Set<log_item>,以不重复方式所有网络日志。host_ip和host_port主机IP地址与端,用于发送数据。tcp_udp()方法实现了方循环更新log_set数据hex_ip()方法的功能是将十六进制IP转换为ASCII字符串。store()和send()方法的功能是、发送网络日志数据。设为假,停止数据,并将run_over设为真;若成功,则store_stat设为真,退出应用;若发送操作执行完成,send_returnedsend_stat为假,发送成运行时,初始只有“root权限”按钮可用,点击申请root权限,成功之后只有“采IP地址发送数据,若发送失败,可以重试,也可以暂存本地文件,之后一并发送。运行时界面如图4-5所示。图4-5网络日志模块运行时界RubyTCPServerrubysocket模块打开TCPServer进程6789端口等待客户端连接建立连接之后调用mysql模通过移动客户端的网络日志,是在数据库netlog表中,其应用名称可读性 ee.emtoos.ee.e“tencent.mm:push”等几个,而且Android使用伪IPv6地址,协议名称为IPv6,但通信数据包均为IPv4,其IPv6地址也是在IPv4地址前面简单的加上“::ffff:”,造成数据处理的许多不便。ipapp.rb的功能即是将可读略差的应用名称转换为“weixin”这样的可读性较强的名称,并统一化,将伪IPv6地址转换为IPv4地址,存入数据库ipapp将截取数据包内的服务器端IP地址解析出来,配合已知的应用名称,存入数据库ipapp表。程序名称为ipapp2.rb。这样做有一些缺陷,即不可避免的会有一些主机服务程序使用网络,会有少量ipapp2.rbip有重复,说明重复的IP即是混杂IP,记录在errorips文件中,之后统一将这些条目删除。程序名称为ipapp3.rb。图4-6单向网络流解析流程SYNIP和判断数据包是否ACK置位。若是,则其方向为Server->;否则,其方向为->Server。判断数据包是否FIN置位。若是,则结束其所属的流,销毁流对象。解析流程如图4-6所示。判断数据包是否SYNACK未置位。若是,建立一个新的流对象;否IP和端口信息查找已有流对象,判断其属于哪个流,若寻不到,则丢弃。判断数据包是否FIN置位。若是,则结束其所属的流,销毁流对象。解析流程如图4-7所示。图4-7双向网络流解析流程两者之主要区别在于查找已有网络流对象的方法上,系统依据四元组{<源IP>,<源端口>,<目的IP>,<目的端口>}来识别数据包是否属于某一网络流。当设定数据包严格相等的含义为:数据包{<源IP>,<源端口>,<目的IP>,<目的端口>}=网络流{<源IP>,<源端口>,<目的IP>,<目的端口>}。交叉相等的含义为:数据包{<目的<目的端口>,<源IP>,<源端口>}=网络流{<源IP>,<源端口>,<目的IP>,<目的端本模块可以借鉴开源工具tcpflow的部分实现方法。tcpflow是一个用于从pcapTCP网络流的工具,其输出为可读的网络流信息的文本文件。主要借鉴了4-8flow_addrflowflow_addr类与flow类描述了一个网络流的基本信息src、dst、sport、dport变量分别表示IPIP和端口。tstarttlast变量网络流的开始时间和结束时间。重载“==”方法用于判定两个流对象是否相等图4-8网络流解析模块类结构图表4-4tcpdemux类中的数据类型 std::tr1::unordered_set<classtcpip*>typedefstd::tr1::unordered_map<flow_addr,tcpip*,flow_addr_hash,flow_map变量,类型flow_map_t(其定义见图中注释),所有目前已知的流当前所有流对象的具体信息。process_infile()方法的功能是从pcap文件或网卡接口数据包。create_tcpip()、find_tcpip()remove_flow()方法的功能分别是创建、查找流tcp数据包文件命名格式为<服务器端IP>.<服务器端端口>.<传输方向>.<流开始时间(秒)>.<流开始时间(毫秒)>,例如 .576052”IPIP均为无线路由器,没有实用意义;3,传输方向0表示Server->,1表示->Server,2表示网络流TCP报文与时间戳,而原数据包在处理过程中已经破坏,因此重新定义了二进制文件格式,不使用libpcap格式。格式如下:[<时间戳秒><时间戳毫秒><数据包字节长度>\n数据包数据][<时间戳秒><时间戳毫秒><数据包字节长度>\n数据包数据]……[<时间戳秒><时间戳毫秒><数据包字节长度>\n数据包数据]TCP报文的各个字段值。如此循环,可以得到每个数据包。filelog索引文件条目格式为“<文件名><数据包总数><流是否完整>”。由于每RubyCOUNT的IP端传输方向包数目”,存入filelog.new文件中。该程序名称为filelog.rb。Featurefilelog.new文件中得到的文件名信息,流数据文件,循环数据包,根据数据包内数据更新Feature类实例,直到达到设定的数据包个数COUNT,然后按设计中的标准格式输出特征向量到特征文件。用于存入数据库的特征向feature.store文件,用WEKA工具的特征向量存入feature.arff文件,用于机器学习算法输入的特征向量存入feature.kmeans文件。1)filelog.new文件,得到被挑选合格的网络流文件名集合,并设置值。COUNT表示提取每个流前COUNT2)流数据文件,逐次读入数据包,根据数据包内数据更新Feature类实例,直到数据包处理个数达到设定的COUNT值。然后按设计中的标准格式输出特征向量到特使用Ruby语言实现特征向量模块,通过调用ruby的mysql模块建立数据库连接,从feature.store文件中每一行,分割字符串获取每个字段的值,循环存入数据库feature表。程序名称为store.rb。由于要处理的输入数据为特征向量,等价于坐标,因此首先定义Point类,存IP地址,以标识其来源,并实现方便Cluster类,用以描述聚类结果的一个簇,包含簇中心点向量和此簇中每聚类算法得到的输出是聚类簇的中心点向量和此簇内所有特征向量的IP值,可读4-9Point类用于描述一个特征向量于特征向量的来源IP,便于之后统计。doNormalize()和disNormalize()两个方法用于将特征向量归一化和反归一化。distance()方法的功能是求取两个特征点之间的距离图4-9Kmeans聚类算法模块类结构图center变量,Point类型,聚类簇的中心点坐标。points变量,C++vector<Point>类型,用于该簇中所有特征向量的值。doNormalize()和disNormalize()两个方法用于KmeansKmeans类实现了kmeans算法,获取特征向量输入,得到簇输出points变量,C++vector<Point>类型,用于所有参与聚类的特征向量的值。clusmount变量用于设置聚类个数,便于调整实验。doNormalize()和disNormalize()每得知某个向量属于某个类,就将其{<IP地址>,<类名称>}二元组记录下来,之IP地址,查找是否有相应的类名4-10图4-10网络流分类识别模块数据流图网络流量分析工具实验5-1图5-1本地实验环境锐捷交换机,使Linux下软件配置。连接互联网,配置被镜像端口(命令“monitorsession1sourceinterfacefastEthernet0/5both”)和镜像端口(命令“monitorsession1destinationinterfacefastEthernet0/3”)。IP,DNS5-1Ruby开发环境,AndroidSDKJava开发环境,C/C++开发环境。有线网卡接口连接到交换机镜像端口,通过无线网卡连接无线路由器,实现截取局域网内网络流量与Android移动客户端的通信。 分属三个不同类别,其中属于通信类(或社交类),优酷和爱奇艺属于视优酷和爱奇艺同属类,而又有不同,可以通过分类初步判断聚类算法对不络流特征向量6903条,双向网络流特征向量2033条。并且,单向网络流中、优酷、爱奇艺、主四种应用的特征向量条数分别为:1405,3567,1873,58。双向网络流中、优酷、爱奇艺、主四种应用的特征向本部分工作使用WEKA工具中的特征选择功能来实现。WEKA工具包,使用“java-jarweka.jar”命令运行,特征源文件使用特征向量提取模块生成的feature.arff{a_dataea_ACfsSubsetEvalGreedyStepwise算法组合,得到的最优特征集为mean_IAT,var_IAT}{ea_Aa_I}CfsSubsetEvalGreedyStepwise算法组合,得到的最优特征集为而本中所选用的14个网络流统计特征,是根据参考文献选取的,是已经被讨来,预计就会有的流特征能够对聚类效果产生重要影响。使用网络流的前N5个数据包,对双向流使用前10个数据包。 识别率统计的影响也就越大,而且,尽管有些簇很小,但很纯净,比4条特征向量youkuTotalyoukuTotalvectorsincluster6:youkuTotalvectorsincluster8:2条来源于 iqiyiTotalvectorsincluster12:表 有一些簇,来源于应用的特征向量占绝大多数,则可以认为这是流量的集中区,可以大略认为该类别中所有向量均来源于。如表5-2所示。表5-2表 应用的簇举youkuTotalvectorsincluster3:的特征向量有10条,比例为91%。iqiyiTotalvectorsincluster20:的特征向量有8条,比例为89%。youkuiqiyiTotalvectorsincluster21: 的特征向量有45条,比例为92%。 。如表5-3所示。youkuyoukuTotalvectorsincluster5:优酷的特征向量有7条,比例为88%。youkudoudizhuTotalvectorsincluster4:优酷的特征向量有6条,比例为75%。youkuTotalvectorsincluster24: 中区,可以大略认为该类别中所有向量均来源 。如表5-4所示表5-4表示爱奇艺应用的簇举例iqiyiTotalvectorsincluster10:1036iqiyiTotalvectorsincluster14:youkuiqiyiTotalvectorsincluster18:5596%表示类的和主的特征向量非常少,我们可以初步判定其为类。如表5-5所示。另外,在表5- 类的簇举youkuiqiyi16Totalvectorsincluster1:youkuiqiyi27Totalvectorsincluster7:youkuiqiyi16Totalvectorsincluster9:被划分类别。这类簇也要被忽略。如表5-6所示。表5-6无法判别的簇举例youkuiqiyiTotalvectorsincluster0:046,来源于优酷与爱奇艺的特征向量共占19条,比例为41%,来源于的比例为59%70%。iqiyidoudizhuTotalvectorsincluster2:在编号2的簇中,特征向量总数为12,来源于爱奇艺的特征向量共占7条,比例为58%,其余来源比例更少,不足70%。youkuTotalvectorsincluster29:2917 足70%。定为70%,都聚类在同一个簇中,就可以粗略认为该应用就属于这一类别。5-2K-meansK值,共20组实验,K1020010为单位依次递增。纵坐标表示某一类型的流流量识别102030405060708090100110120130140150160170180190聚类主双向流聚类数量对识别率的102030405060708090100110120130140150160170180190聚类双向流聚类数量对识别率的102030405060708090100110120130140150160170180190聚类主流量识别图5-3双向流聚类数量对识别率的影响5-3K-meansK20组实验,K1020010为单位依次递增。纵坐标表示某一类型的从折线趋势可以看到,在K=60时得到比较好的结果,但仍有较大波动,到K=120时得到稳定的结果。流量的识别率约为60%,优酷流量的识别率约为65%,爱奇艺流量的识别率约为75%。主流量的识别率在K=130时,达到40%,说明其特征向量是有效果的,只是因为基数太小,被其他类型流量覆盖。同时作为优酷与爱奇艺组合的类流量,识别率达到90%。情况下,原本效果很好的某类流量,会被其他类型的流量覆盖。这正是为何K=10时类识别率达到100%的原因。但随着聚类数量的增加,这种偏向会得到一定程度WEKA工具进行特征选择,间接判定了原KK-means算法进行聚类,,总结与展望础。然后数据,进行了初步分类探索。使用K-means算法的分类模块。向网络流,并且在K=120时达到稳定、识别率较高的结果。探索选取网络流前多少个数据包进行分析最合适,本没有做,只是通过估计对双
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年考点起重机司机(限桥式起重机)作业模拟考试题库及答案详解
- 2026年国际工程承包模拟试题(含答案)
- 2026年机械设计基础模拟试题(含答案)
- 2026年光线性唇炎诊断模拟试题(含答案)
- 2026年安全基本常识模拟试题(含答案)
- 基础英语口语实战技巧:2026年考试及答案详解
- 2026年自考高级财务会计历年试题及答案详解
- 2026年公司食堂安全模拟试题(含答案)
- 2026年科长考试模拟题及答案详解
- 学院085602化学工程考研报录数据分析报告(初试+复试+调剂)
- 强制性条文执行情况检查表光伏区发电设备建筑工程
- 装配式钢筋混凝土沉井施工方案
- 2026年重庆沙坪坝区社区专职工作者后备人选招聘考试试卷-含答案解析
- 管理人员能力素质测评题目及答案
- 机械制造装备设计3
- 中国严重创伤急救与创伤中心建设指南(2025版)
- 2026海洋工程装备特种合金选材与防腐技术报告
- 合租水电费用分担协议范本三篇
- JTT 1514-2024 公路水运工程施工安全标准化技术要求
- GB/T 7977-2026纸、纸板和纸浆水抽提液电导率的测定
- 噬血细胞综合征护理查房
评论
0/150
提交评论