在本文阐述的网络流量监控系统的第二个模块即流量信息统计模块中正是利用了IP帮助的函数GetIpStatistics、GetIcmpStatistics、GetUdpStatistic,GetTcpStatistic来分别实现IP,ICMP,TCP以及UDP协议相关的统计信息。详细的设计过程将会在下文中得到体现。
2.3 总体结构设计
通过收集与分析简单网络流量监控软件的用户需求,总结出以下特征:
(1)系统功能的实现需要对网络接口流过的数据包的尽可能多的捕获,并且是实时不间断连续式的,要多信道多方式全面监测,故将网卡设置为混杂模式,然后进行数据包的采集;
(2)被监测的数据包的内容要进行一定的分析,按照数据包对应的协议格式,对数据包的协议类型、源目地址、数据包截获时间、数据包内容进行分析,还要过滤无用的数据包,不完整的或者是被丢弃的;
(3)根据用户提出的不同的要求能够依照特定的地址范围、特定的协议类型,相关条件分析等条件进行自定义监视;
(4)实现日志记录,保存,便于日后分析;
(5)对某些常见的攻击进行发现分析。
总合以上系统要求与综合分析,本系统总体设计如下,采用VC++6.0编写,系统具有两个主要功能部分:数据捕获与显示模块、流量信息统计模块,如图11所示。
11系统结构
数据采集模块:采用原始套接字进行开发设计,对流经用户主机网卡的数据包进行识别并捕获。对捕获到的数据包能进行IP报文解析并显示具体内容,字段等。同时,用户可以选择过滤条件,过滤掉不需要的传输层协议的IP包;也可以采取自定义的方式来抓取特定目的IP地址的所有数据包。在完成数据捕获和显示后,能够对所抓取的数据包进行保存日志,以便日后查看与分析。此外,在数据包的解析过程中附加了对一些常见的入侵攻击行为数据特征的判断与识别,对于相似度过高的,能发出预警。
信息统计模块:实现统计的功能,例如统计ICMP信息,要实现错误消息、目的不可达、TTL超时、重定向、回显请求、回显应答、时间戳请求、时间戳应答的数量收集分类等;统计TCP最大连接数、监听连接数、重置连接数、当前连接数、接收段数、发送段数、重发段数、接收错误数等数据信息的统计和分类。这部分的功能采用IP帮助比较容易实现的。
2.4 流程图设计
根据上面对各个功能模块的划分,进行更进一步的分析和设计,得到监测流量数据的采集、注册表网络性能块访问等大致的工作流程图 VC++网络流量监控系统设计与实现(5):http://www.youerw.com/jisuanji/lunwen_13069.html