计算机网络课程设计监控IP数据包流量.docx
- 文档编号:26744783
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:9
- 大小:105.25KB
计算机网络课程设计监控IP数据包流量.docx
《计算机网络课程设计监控IP数据包流量.docx》由会员分享,可在线阅读,更多相关《计算机网络课程设计监控IP数据包流量.docx(9页珍藏版)》请在冰豆网上搜索。
计算机网络课程设计监控IP数据包流量
四川理工学院
课程设计书
学院 计算机学院
专业 计算机科学与技术
班级
题目 监控IP数据包流量
教师
学生
课程设计小组成员及分工
本小组成员:
xxx yyy zzz
分工:
xxx做本课程设计的目的,本课程设计的要求及本课程设计的一些内容
yyy做本课程设计的一些基础知识,本课程设计的分析,本课程设计的结果,本课程设计的总结
zzz做本课程设计的代码,本课程设计的框架设计,本课程设计的结果验证,本课程设计的逻辑分析。
目 录
一、课程设计目的和要求 1
1.课程设计目的:
1
2.课程设计要求:
1
二、课程设计的内容 1
三、课程设计核心知识 3
四、课程设计框架 5
五、课程设计详细分析 7
六、实验源代码 14
七、课程设计总结 30
一、课程设计目的和要求
1.课程设计目的:
随着internet技术的发展,基于IP协议的网络应用成为网络技术研究与软件开发的一个重要基础,因此学习网络层的基本概念,了解IP协议的基本内容,对于掌握TCP/IP协议的主要内容和学习网络课程是十分重要的。
通过本次课程设计,有助于熟悉IP包格式和加深对IP协议的理解。
2.课程设计要求:
编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据包的源地址统计出在该时间段内发出的IP包的个数,将其写入日志文件中并用图形表示出来。
程序的具体要求如下:
1.在图形窗口界面下,根据用户输入的捕获时间和选择的网卡输出该段时间内的IP数据包流量分析
2.能够将捕获的信息写入日志文件
二、课程设计的内容
1.课程设计的内容:
1)使用Winpcap,Winpcap的主要功能在于独立于主机协议(如TCP/IP)发送和接受原始数据包;
2)列出网卡列表,让用户选择可用的网卡;
3)使用过滤器捕获IP包,别的包都过滤掉;
4)捕获IP包并按包的源地址进行统计(用链表结构进行实现)。
5)将统计结果输出到图形窗口界面或输出到日志文件
程序流程如图8-1所示。
2.一些必要的基础知识
1.熟悉IP首部格式
2.使用Winpcap工具
WinPcap是一个基于Win32平台的,用于捕获网络数据包并进行分析的开源库.
WinPcap产生的目的,就是为Win32应用程序提供这种访问方式;WinPcap提供了以下功能
a)捕获原始数据包,无论它是发往某台机器的,还是在其他设备(共享媒介)上进行交换的
b)在数据包发送给某应用程序前,根据用户指定的规则过滤数据包
c)将原始数据包通过网络发送出去
d)收集并统计网络流量信息
使用Winpcap工具主要需要三个步骤:
1).安装底层驱动:
在Winpcap官网(www.winpcap.org)下载并安装Winpcap.exe即可
2).导入库文件:
下载wpdpack开发包,并在开发环境(VC)中导入Lib和Include文件夹路径。
VC导入步骤(工具->选项->目录,分别在IncludeFiles和LibraryFiles中加入…/wpdpack/Include和…/wpdpack/Lib)
3).在应用程序中导入需要的DLL和头文件:
方法一:
VC下:
工程->设置->链接在Object/Librarymodules下添加ws2_32.libwpcap.lib(注意中间的空格)
方法二:
在源文件中添加命令处理:
#pragmacomment(lib,“ws2_32.lib”)
#pragmacomment(lib,“wpcap.lib”)
本程序将会用到的Winpcap功能有:
获取本机所有适配器信息pcap_findalldevs
以混杂模式打开适配器 pcap_open_live
编译并设置过滤器 pcap_compilepcap_setfilter
捕获数据包 pcap_next_ex
释放打开的适配器信息 pcap_freealldevs
3.VC++图形窗口界面编程
包括按钮,编辑框,列表框,列表控件等控件的使用
4.其他相关知识,如文件操作,链表操作等
三、课程设计核心知识
1.获取本机网卡信息
本课程设计要实现对数据包的捕获,首先就要获取并列出本机上的所有网卡信息,这个功能是通过Winpcap提供的pcap_findalldevs来实现的。
该函数原型如下
int pcap_findalldevs(pcap_if_t** alldevs,char*errbuf)
pcap_if_t是一个用于描述网卡信息的结构体。
里面包含了网卡的名字,描述等信息。
通过这个函数可以得到一个网卡信息组成的链表。
函数错误则返回-1。
2.打开用户选定的网卡
得到网卡信息之后,可以通过列表框等形式显示出来,在用户选择后,通过pcap_open_live打开指定网卡:
pcap_t*pcap_open_live(char*device,intsnaplen,intpromisc,intto_ms,char*ebuf)
函数功能:
获得用于捕获网络数据包的数据包捕获描述字。
参数说明:
device参数为指定打开的网络设备名。
snaplen参数定义捕获数据的最大字节数。
promisc指定是否将网络接口置于混杂模式。
to_ms参数指*定超时时间(毫秒)。
ebuf参数则仅在pcap_open_live()函数出错返回NULL时用于传递错误消息。
这些参数中最重要的就是promisc参数,通过它可以将网卡监听设置为混杂模式,混杂模式是指不管网卡接收到的数据包是不是发给自己的,都向应用程序上传。
这样可以捕获一些广播信息。
本程序将监听模式设为混杂模式。
3.编译并设置过滤器
在打开网卡并得到网卡描述符后,可以编译并设置过滤器。
编译过滤器:
intpcap_compile(pcap_t* p,structbpf_program* fp,
char* str,int optimize,bpf_u_int32 netmask)
编译一个数据包过滤器,将一个能被核心态(kernel-level)过滤器引擎解释的程序中的高层过滤表达式(filteringexpression)进行转化。
pcap_compile()被用来将字符串str编译进过滤器程序(fp),程序(fp)是一个指向bpf_program结构体并被pcap_compile()赋值的指针。
optimize控制是否对目标代码(resultingcode)的性能进行优化。
Netmask表明IPv4掩码,它仅在检查过滤器程序中的IPv4广播地址的时候被使用。
返回-1表示发生了错误,此时,pcap_geterr()将被用来显示错误信息。
设置过滤器
intpcap_setfilter(pcap_t* p,structbpf_program*fp)
把一个过滤器同一次抓包关联起来。
pcap_setfilter被用来指定一个过滤器程序。
fp是一个指向bpf_program结构体的指针,通常是pcap_compile()执行的结果。
当失败时返回-1,此时,pcap_geterr()被用来显示错误信息;返回0表示成功。
4.抓包:
接下来就是最后一步抓包,Winpcap提供的抓包接口主要有
pcap_next_ex和pcap_loop两种
pcap_loop直接由数据包捕获驱动所调用,它在底层抓取到包时,直接调用用户传入的处理函数
本程序使用另一个函数pcap_next_ex:
pcap_next_ex(pcap_t*p,structpcap_pkthdr**pkt_header,constu_char**pkt_data)
功能:
从interface或离线记录文件获取一个报文
参数:
p:
已打开的捕捉实例的描述符
pkt_header:
报文头
pkt_data:
报文内容
返回值:
1:
成功0:
获取报文超时
-1:
发生错误 -2:
获取到离线记录文件的最后一个报文
四、课程设计框架
1.核心流程图:
本程序是VC下基于对话框的窗口程序。
界面如下:
图1
主要设计流程如下
1.在OnInitialDialog中获取并显示网卡信息
2.在用户点击开始监听按钮时:
a)验证用户有效输入(验证用户是否输入有效的监控时间,是否选择合适的过滤器,以及是否已选择网卡)
b)以混杂模式打开网卡
c)根据用户在列表框中的选择编译并设置过滤器
d)开始抓取报文,将结果添加到统计链表。
并随时检测是否超时。
e)抓取完成之后,将结果输出到列表控件界面
f)在用户关闭窗口或者开始再次监控时提示是否将结果输入日志文件(在用户再次选择监控时,需要清空已有数据)
g)用户关闭窗口时,提示保存日志并释放打开的所有适配器信息
五、课程设计详细分析
一、相关数据结构:
1.IP首部结构体IP_HEADER
typedefstructip_header
{
unsignedcharver_ihl; //版本号以及首部长度
unsignedchartos; //区分服务
unsignedshorttotallen; //总长度
unsignedshortid; //表示
unsignedshortflags_fragoffset; //标志和片偏移
unsignedcharttl; //生存时间
unsignedcharproto; //协议类型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 课程设计 监控 IP 数据包 流量