您的当前位置:首页正文

网络流量监测软件的设计与实现

2022-12-25 来源:客趣旅游网
网络流量监测软件的设计与实现 严家兴,杨 巍,胡 滨 (南京农业大学信息科技学院,江苏南京210095) 摘 要:随着互联网科技迅速发展,网络状况也变得日益复杂,为了使用户更好地适应于复杂的网络环 境.更加适宜于复杂网络环境管理的网络流量监测系统也就变得十分必要。本设计采用了基于WinPcap环 境的SharpPcap捕获框架,更好地对数据进行捕获分析,为用户提供更为精确的网络数据流量捕获结果。 同时与原始套接字方式的数据捕获进行对比,获取更加精确的网络数据流量的同时,也为我们提供了更 好的网络数据收发构造的分析基础。在数据包捕获的基础上完成了用户数据流量监测以及网络环境管理 等功能,对于网络数据收发原理也有了更深认识。 关键词:网络流量监测;原始套接字;过滤器;SharpPcap 随着计算机网络技术的飞速发展,越来越多的 新兴技术被用于网络建设,使得我们的网络越发的 有效,健全。但是,网络的飞速发展为我们带来极 大便利的同时,也为我们带来了大量的问题。于是 大量的网络安全技术应运而生,保障着我们日渐依 赖的网络。由于传统结构的网络向P2P的网络结构 转变,从而产生了多样化的网络环境。这种复杂的 存在本身也是具有双面性的,它的难察觉、易操作 的特性使得其用于黑客技术的时候,使我们难以发 现,同时具有极高危害,以为黑客可以通过数据监 听的方式,截获用户数据,造成用户信息泄露。而 对于网络管理人员来说,可以通过网络数据嗅探的 方式对网络流量交换过程进行实时监控,借此可以 发现网络数据交换过程中的危险行为信号 。 。 1.1 数据包嗅探的原理 网络环境下,于用户而言,无论是网络信息的安全 还是网络资费的控制都变得越发困难,而对于运营 商而言,网络维护的难度与成本也随之大大增加。 在一个计算机系统中,主要通过计算机网卡来 实现计算机系统的数据收发功能。其主要原理是通 在这种两难的环境下,人们越来越期望于寻找到一 过传输介质将数据传输到网卡,计算机网卡接收到 网络数据之后,检查数据包中的MAC地址是否为 本机,同时判断是否应该接收该数据包。如果认为 该接收就接收数据包后向CPU发出中断信号,如果 认为不该接收数据包就直接丢弃。这种机制下,对 于不应该接收的数据包,CPU并不知道其存在。 种高效便捷的网络维护手段,而网络流量监测则作 为一种行之有效的网络安全维护手段,其重要性自 是不言而喻 “ 。本设计采用基于WinPcap环境的 SharpPcap技术实现了网络流量数据的实时捕获以及 网络流量监测功能,可以适时地为用户提供有效的 流量统计数据,使得用户可以对自己设备的网络环 境做到了如指掌。 由于网卡具有广播方式、组播方式、直接方式 以及混杂方式。所以可以利用网卡的混杂模式实现 网络数据包嗅探。在网卡的混杂模式下,网卡会接 l数据包嗅探 数据包嗅探是网络流量监测软件的设计与实现 过程中最困难也是最关键的一环。只有实现这一 步,才能真正意义上的实现网络流量监测的工作。 嗅探技术是网络安全攻防技术中极其关键的一 种方式。网络嗅探就是利用计算机网络接口截获本 收所有传输到自身的信息,而不经过验证确认,这 样,计算机就可以接收到所有流经自身的网络数据 包,从而通过数据包解析实现网络嗅探功能 。 1.2数据包嗅探的方法 其主要方式有通过windows套接字方式进行数 据捕获获取、使用rawether技术以及第三方类库所 提供的网络捕获功能接口。这三种方式虽然都能一 定程度上完成数据包嗅探功能,但是其原理以及效 率都是有所不同的。下文会对于三种方式做出更加 详细的介绍以及分析 。 属于其他计算机的数据报文。网络数据嗅探技术的 ●第一作者:严家兴(1981一),男,本科,助理工程师, 主要从事计算机与网络实验室的运行与维护。 ●通讯作者:胡 滨(1980一),男,研究生,副教授,主 要研究方向为复杂网络理论与应用。 ●收稿日期:2014—06—17 —三种方法中最为简单的就是直接利用Winsock 的API进行编程捕获。但是该种方法具有极大的弊 端。首先,其功能导致其只能捕获IP以上层的数据 38一 严家兴,等:网络流量监测软件的设计与实现 包,而不能解析底层数据包,其次,无法接收到本 机发出的数据,最后,如果要实现过滤,必须先接 收到数据包,而在之后的处理过程中进行过滤。这 就带来了巨大的系统开销。巨大的延迟以及较高的 丢包率使得这种方法并不为人们所青睐。 NDIS驱动是一种较好的方式,其功能强大全 面,可以实现数据的高捕获率同时也可以实现整个 以太网包的捕获。但是,虽然其功能强大,由于相 对应的就是编程过程及其复杂,难以用于简单的应 用程序。 使用WinPcap等类库比起其他方法具有更多优 点。首先,其应用简单,可以通过及其简单的函数 调用实现复杂的网络数据捕获以及数据包解析。其 次,它可以捕获本机的数据包,同时还可以捕获完 整的数据帧,而不会丢弃信息。然后,WinPcap与 Libpcap的兼容可以使得应用程序具有极高的可兼容 性。最为重要的是,类库的封包过滤是内核级的, 这也就意味着我们的数据包过滤功能,不会带来巨 大的系统开销,这种前提下,也就会减少CPU处理 时间,同时降低丢包率。 2概要设计 2.1 需求分析 设计通过图形化界面,向用户提供计算机系统 网络信息,并通过用户操作获取更加详细的信息。 该过程中,图形化界面是一个非常重要的环节。由 于计算机网络是一个专业性较强的领域,所以,网 络流量监测软件的使用方法设计需要考虑到用户对 于网络知识了解状况不一的情况。如何将复杂困难 的问题通过简单直接的方式传达给用户也是软件设 计所需要重视的方面之一。 另外,降低操作难度,将数据包捕获与网络流 量监测分开,使用户各取所需。由于数据包捕获对 于普通用户而言,操作难度较大,返回数据较难理 解,所以将网络流量监测作为主界面,将数据包捕 获作为功能界面。 网络流量监测软件是一款以网络流量获取及网 络数据包捕获为核心功能的计算机软件。其主要功 能包括:计算机网络环境获取、计算机性能状况获 取、计算机网络流量获取、计算机网络数据包捕获 以及文件导出功能。 2.2模块分析 2.2.1 网络环境获取 网络环境获取模块旨在为用户获取计算机系统 的网络环境提供一种方便、快捷的操作方式。由于 不同的计算机系统,其所有的网络环境也不同。本 模块为用户提供了包括计算机主机信息、网络信 息、网卡信息以及所安装网络协议等四个部分的详 细信息获取。这些信息的了解有助于加深用户对于 自己计算机的网络状况的理解,同时也可以方便用 户对于之后的软件操作。例如,事先了解用于网络 流量监测功能时所选择的网卡的具体参数,则会在 之后网络数据包捕获的过程中,更加清晰的了解计 算机当前数据收发的状态。 2.2.2计算机性能状况获取 计算机性能状况也可以说是用户使用计算机时 最为关心的参数之一。即使是对计算机系统所知甚 少的用户,也往往会以计算机的CPU利用率和内存 使用率作为计算机系统性能的评判标准。这样也就 使得获取计算机的CPU利用率和内存使用率变得意 义重大。本模块通过计算机性能计数器提取数据的 方式,获取计算机的性能状况,并通过进度条和具 体数据两种方式反馈给用户,使用户既能直观的了 解计算机性能状况,又能通过详细的性能数据掌握 计算机的详细状况,从而加深对计算机的性能状况 了解。 2.2.3计算机网络流量获取 网络流量监测软件的设计与实现,其中最重 要,也最为直观的功能就在于计算机的网络流量获 取。这也是一般使用网络流量监测软件使用最为广 泛的功能。软件通过读取性能计数器中网络接口的 具体数据,所以,在使用网络流量监测功能之前, 需要先选择想要监测的网卡名。由于现在计算机系 统往往有多个网卡,所以我们需要在使用的时候, 确定自己想要监测的网卡。这是通过读取注册表中 的性能计数器的数据,就可以获取该网络适配器的 各项具体数据,例如:接收的数据、发送的数据 等。通过软件的缓存计算手段就可以获取计算机系 统的网络流量状况。这种手段也是大多数市面上的 网络流量监测软件所使用的方法,所以通过这种手 段所获取到底网络流量数据与市面上常见的360网 速监测、金山卫士监测所显示的数据是相同,但 是,数据与计算机任务管理器所显示的数据并不一 致。 2.2.4 网络数据包捕获 网络数据包捕获可以说是网络流量监测软件的 核心功能,也是该程序设计与实现的重中之重。它 可以为那些对于计算机网络具有较好认识的用户提 供较为专业的服务,可以用于评价计算机系统所处 的网络系统的环境。该模块被分为Socket数据捕获 和SharpPcap数据捕获两种。其捕获功能的实现是 相似的,但是通过不同的捕获手段。通过选择软件 提供的网卡列表,可以选择对计算机某个网络适配 器开启监测,届时,软件会捕获计算机该网络适配 一39— 高 校 实 验 室 工 作 研 究 器所接收到的所有网络数据包。并显示给用户。 主界面下部通过进度条的形式用以显示计算机 SharpPcap的捕获方式还提供了内核级的过滤器,可 性能参数,例如:CPU占用率以及内存占用率等性 能信息。随后的利用三个richTextbox分别展示网络 适配器详细信息、计算机性能详细信息以及用户操 作步骤。 网络环境窗体的设计与实现: 网络环境窗体共分为四个独立窗体:网络协议 以根据用户的选择返回用户所需要的计算机数据报 信息。 2.2.5 文件导出 由于网络数据包捕获的过程是一个高效的过 程,在网络繁忙的状况下,往往可以在短时间内捕 获到大量的网络数据报,这就对数据显示和分析带 来了压力,所以软件提供了文件导出的功能。我们 可以在数据包捕获之后,将所捕获的数据包简要信 息导出到输出文件中。这种功能一方面为用户提供 了相对更多的分析时间,另一方面也使得计算机系 统所获取的网络流量信息可以保存,这也就解决了 数据的存储问题。 同时由于用户对于网络方向的操作往往抱有一 定的顾虑,所以软件将会将用户每一步的点击操作 信息窗口、主机信息窗口、网卡信息窗口以及网络 环境信息窗口。图2是网络协议信息窗口的样式设 计。布局上,主要通过一个RichTextbox用于显示获 取到的协议信息,同时通过两个Button控制窗口。 获取并显示在文本框中,并可以根据用户的需求导 到文件巾,永久保存。这在一定程度上可以打消 用户的顾虑,同时也保障了网络环境的安全性和可 恢复性。使得软件的使用上更加的方便以及安全。 3详细设计与实现 主界面(图1)作为程序的入口,其设计直接 影响到用户体验。 图2协议窗口 其余窗口设计与实现的过程与网络协议信息窗 口基本相似,在此就不一一赘述了。 详细信息窗体的设计与实现: 详细信息窗体实际上就是将主窗体界面下部的 网络适配器详细信息与计算机性能详细信息提取出 来,放到同一个窗体中显示。一则是为了方便用户 信息的显示,其次也是为了方便用户信息的保留。 捕获界面的设计与实现: 数据报捕获界面共有两部分组成、一部分是使用 Socket方式捕获数据报的界面(如图3),另一个则 是通过SharpPcap方式捕获数据报的界面(如图4)。 图1 流量监测软件主界面 在主界面的设计上,采用了传统的应用程序的 常见分布形式,以菜单栏布置程序功能窗口的控制 按钮,以状态栏馒示一些用户提示信息。 主界面上部部署了网卡显示信息以及控制按 钮,其后通过ZedGraph控件以及Label控件,用于 图3 Socket数据报捕获窗口 相对而言,SharpPcap捕获比起Socket捕获的功 能相对更加强大一点,例如SharpPcap的统计信息以 及其基于内核的过滤器。由于该类功能并不相同,所 爪用户实时流量状态。 .-.——以程序将两种捕获方式分开设计并实现窗口。 40..—— 严家兴,等:网络流量监测软件的设计与实现 在Socket捕获窗口(图3)中,利用了List— 一些了。在SharpPcap窗口(图4)中加入了过滤器 View控件作为捕获数据报信息的承载容器。当用户 点击捕获数据时,则会在其下方的文本框内显示所 选数据报的内容。 而通过SharpPcap捕获窗口的设计就相对复杂 的功能。可以通过设置过滤器实现根据协议以及根 据地址进行数据捕获。通过checkbox实现了选项之 间的操作互锁,以避免用户误操作导致内核过滤器 失效。 图4 SharpPcap数据捕获窗口 文件导出窗体的设计与实现: 为了保证程序运行的安全,同时也为了提高用 [3]罗亚非.基于TCP的Socket多线程通信[J].电脑知识与技 术,2009.03:563—565+598. 户使用的便捷程度,软件提供了文件导出的功能。 主要存在捕获数据包文件导出、配置文件生成以及 用户文件导出。用户操作文件导出设计在了主界面 上,用户操作之后可以通过导出按钮将操作时间以 及操作步骤导出到文件中。而配置文件的生成和数 据捕获文件的导出则分别设计了操作窗口。 系统会将默认输出目录设置为文件当前目录, 而文件名则会用OutFile加上日期时间。如果同一天 内多次导出,则会自动追加在原有文件后。 文件成功导出之后将会通过MessageBox向用户 [4]欧军,吴清秀,裴 云,等.基于socket的网络通信技术 研究[J].网络安全技术与应用,2011,07:l9—21. [5]刘振宪,王津涛,侯德,等.基于原始套接字的网络安全 研究与实现[J].计算机工程与设计,2006,05:768—770 +779 [6]陈烽华,张代远.基于Raw Socket技术的改进Sniffer[J].计 算机时代,2007,05:22—23. [7]张永涛,刘鑫,李鸥.以太网数据包嗅探技术[J].微计 算机信息,2005,20:l3—14+108. [8]王维颀.局域网数据包抓取与分析器的设计[J].科技资讯, 2011,32:15. [9]康晓东,裴昌幸.基于WinPcap库的网络封包嗅探器实 进行提示,并显示输出目录以及文件名。 现[J].电子科技,2005,02:33—36. [10]Olakanmi ADEWARA,Ayodeji OLUWATOPE,Lawrence KE— 4 结 语 在互联网飞速发展的今天,任何一种技术都不 可能停滞不前。维护网络安全与网络攻击的竞争仍 然将要继续下去。网络流量监控的前景依然广阔, 小到用户流量监测,大到网络环境监测与网络安全 保障.都离不开网络流量监控。本软件实现了用户 级的网络流量监测,同时实现了部分网络数据流量 捕获的功能。 ●参考文献: [1]朱亦钢.应用Zedgraph高效开发数据图表[J].电脑编程技 巧与维护,2009,12:59—61+124. HINDE,Tricha ANJALI,Temitope ALADESANMI,Olatunde ABIONA,Adeniran OLUWARANT1,Clement ONIME.A Scal— able Architecture for Network Traffic Monitoring and Analysis U— sing Free Open Source Software[J].Int】J.of Communications, Network and System Sciences,2009,0206:. [11]J.W.一K.Hong,S.一S.Kwon,J—Y.Kim.Web TrafMon: Web——based Internet/lntranet network trafic moniftoring and a— nalysis system.Computer Communications.1999 [12]吉尚戎.NET框架程序员参考手册[M].北京:国防工 业出版社,2002. [13]孙贤淑.IP网络流量测量的研究与应用[D]. E京:北京邮 电大学,2005. [14]刘业,田琨玮,刘林峰綦于SharpPcap的网络流量监控 系统[J].计算机工程与设计,2013.07:2328—2332. [2]胡晓元,史浩山.WinPcap包截获系统的分析及其应用[J]. 计算机1:程,2005,02:96—98. [15]鲁翠柳.基于SharpPcap的多线程局域网监听技术研究[J]. 煤炭技术,2011,12:151—152. 41— 

因篇幅问题不能全部显示,请点此查看更多更全内容