基于Linux平台的本机网络监测仪的设计(C语言)
基于Linux平台的本机网络监测仪的设计(C语言)(任务书,开题报告,中期报告,毕业论文,16000字,程序代码)
摘 要
伴随着互联网的高速发展,各种新的网络应用程序不断涌现,对计算机网络的监测就愈加显得重要。我们需要一款软件来帮助我们实时的了解网络的运行状况,以帮助我们做出相应的调整。本系统就刚好对应于这种需求,系统主要实现的功能有 :实时捕获流经本机的数据包,将网络数据包转换成可读格式;实时统计本机的流量以及网速; 将以上这些信息显示图形用户界面上, 方便用户更直观的获得信息。
本机网络监测仪,工作于linux操作系统环境下,可以将TCP/IP网络中传送的数据包的“头”完全截获下来提供分析,它是网络分析、监测的基础,该系统采用C语言、捕捉网络数据包的libpcap函数库,以及用于图形用户界面的Qt 实现。
关键词:计算机网络, TCP/IP协议 , QT , libpcap库
ABSTRACT
With the rapid development of Internet, various new emerging network applications, the monitoring of computer networks becomes increasingly more important. We need a real-time software to help us grasp the health network ,and to help us adjust appropriate. This system corresponds to exactly this need, the system achieved the main features are real-time capture of data packets flowing through the machine, the network data packets into readable format; real-time traffic statistics and the local network speed; the above Information display graphical user interface, more intuitive user access to information. [资料来源:www.doc163.com]
The local network monitor works on the linux operating system environment, which can be full captured by TCP / IP network packet transmitted the "head". it is the foundation of network analysis, monitoring ,the system uses the C Language, the libpcap network packet capture library, and Qt for graphical user interface implementation.
Keywords: network, tcp/ip, qt , libpcap
软件需求
操作系统版本:Ubuntu10.10
开发工具:QtCreater ,QtDesigner,vim
数据包捕获模块设计
数据包捕获原理
在以太网的一个冲突域中,通信基于广播方式, 这里所说的广播方式,只是在共享传播介质的以太网中,数据帧的传播是广泛传播,任何网络节点可以接收到,至于是否真正处理,还要看数据帧的真实目的地址,所有网络接口都可以监听到在物理网络介质上传输的所有数据帧。
正常情况下,一个网络接口(网卡)应该只响应这样的两种数据帧:
(1) 与自己的MAC地址想匹配的数据帧
(2) 发向所有机器的广播数据帧
网络中的主机系统,数据的手法是由网卡完成的。网卡接收到传来的数据帧,其内嵌的处理程序会检查数据帧的目的MAC地址,并根据网卡驱动程序设计的接收模式来判断该不该进一步处理。如果应该处理,就接收该数据帧并产生中断信号通知CPU,否则就简单丢弃,因为整个过程是有网卡独立完成的,与主机上的操作系统没有关系。CPU得到中断信号产生中断,操作系统这才会根据网卡驱动程序设置的中断处理程序地址来调用驱动程序接收数据,数据接收之后被放入信号堆栈,等待操作系统的进一步处理。 [资料来源:http://Doc163.com]
网卡一般有4种接收模式:
(1) 广播模式:该模式下的网卡能接收网络中的广播信息。
(2) 组播模式:该模式下的网卡能够接收组播信息。
(3) 直接模式:在这种模式下,只有匹配目的MAC地址的网卡才能接收该数据帧。
(4) 混杂模式:在这种模式下,网卡能接收一切监听到的数据帧,而且无论其目的的MAC地址是什么。
通常,网卡的缺省配置是同时支持前3种接收模式的。由于本文主要是本机数据包的捕获与处理,所以就不用设置网卡的混杂模式。
项目概述
本文将在Ubuntu下实现对本地网络的监测,包括对流经本机数据包的截获、分析,网络流量的统计,网速的计算以及 Qt图形化界面的展现。其中涉及到Linux下的C开发、 TCP/IP协议、Qt开发等相关方面。
开发工具
此次设计主要采用QtCreater、QtDesigner、vim、libpcap库,下面对Qt和libpcap进行简要介绍。
本机网络监测仪需要实时监测本机的网络信息,如何能有效的做到有效的监视和预警网络呢。该监测仪具有一般的的具有一般的数据包捕获和抓取功能,同时还有统计网络流量、计算网速的功能, 这些都可以帮助用户和管理员实时了解网络的运行情况。以下是系统功能的详细描述。
[资料来源:https://www.doc163.com]
1、捕获数据包:捕获流经本地的数据包,从本机发出的数据包和流向本机的数据包
2、协议分析: 通过对网络数据报的实时或事后的解码分析,可以了解网络上运行的协议和服务,数据帧的源地址和目的地址,数据帧的格式等信息
3、流量统计: 统计网络的上行流量、下行流量和总流量
4、网速计算: 计算网络的上行速度,下行速度
5、图形界面: 以图形化展示方式把协议分析、流量统计、网速计算的结果展现在用户面前
[版权所有:http://DOC163.com]
[资料来源:https://www.doc163.com]