ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:147.42KB ,
资源ID:1009240      下载积分:30 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1009240.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(网络流量在线分析系统的设计与实现.docx)为本站会员(龙***)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

网络流量在线分析系统的设计与实现.docx

1、 1综合实训报告题目:网络流量在线分析系统的设计与实现2信息学院计算机科学系目 录一、 实训目的 3二、 实训内容 3三、 主要设备及环境 3四、 设计与步骤 4五、 过程与调试 22六、 整理与小结 23七、 参考文献 24八、 附录 253一 、 实 训 目 的设计并实现一个网络流量的分析系统。该系统具有以下功能:(1)实时抓取网络数据。 (2)网络协议分析与显示。 (3)将网络数据包聚合成数据流,以源 IP、目的 IP、源端口、目的端口及协议等五元组的形式存储。 (4)计算并显示固定时间间隔内网络连接(双向流)的统计量(如上行与下行的数据包数目,上行与下行的数据量大小等) 。在这些统计数

2、据的基础上分析不同网络应用的流量特征。二 、 实 训 内 容(1)能够实时抓取网络中的数据包。并实时显示在程序界面上。用户可自定义过滤条件以抓取所需要的数据包。(2)分析各个网络协议格式,能够显示各协议字段的实际意义。例如,能够通过该程序反映 TCP 三次握手的实现过程。(3)采用 Hash 链表的形式将网络数据以连接(双向流)的形式存储。(4)计算并显示固定时间间隔内网络连接(双向流)的统计量(如上行与下行的数据包数目,上行与下行的数据量大小等) 。例如,抓取一段时间(如30 分钟)的网络流量,将该段时间以固定时长(如 1 分钟)为单位分成若干个时间片,计算网络连接在每一个时间片内的相关统计

3、量。并在上述统计数据的基础上分析不同应用如 WEB、DNS、在线视频等服务的流量特征。注意,可根据4实际的流量分析需要自己定义相关的统计量。三 、 主 要 设 备 及 环 境硬件设备:(1)台式计算机或笔记本计算机(含网络适配器)软件设备:(2)Windows 操作系统(3)网络数据包捕获函数包,Windows 平台为 winpcap(4)编程语言选用 C/C+。(5)编程环境为 codeblocks4、设计与步骤(1) 设计代码检索机器所连接的所有网络适配器,并在屏幕中显示适配器的名称和详细信息,用户可以输入适配器编号选择指定的适配器用来捕获包,如果没有找到适配器,提示用户检查 WinPca

4、p 是否安装,代码与结果显示如下:/* set the source */if (pcap_createsrcstr(source, PCAP_SRC_IFLOCAL, NULL, NULL, NULL, errbuf) = -1) printf(“%sn“, errbuf);exit(-1);printf(“source: %s“, source);/* find all devices */if (pcap_findalldevs_ex(source, NULL, exit(-1);/* choose one devices */d = alldevs;while (d != NULL)

5、printf(“%s, %sn“, d-name, d-description);d = d-next;5printf(“choose a devicenumber between 1 to 4:“);scanf(“%d“, d = alldevs;while (-i)d = d-next;printf(“n-n“);printf(“selected device: %sn“, d-name);实验结果显示如下:(2) 选择指定适配器后,调用 ifprint();函数计算本机的 IP 地址、掩码、广播地址、目标地址等信息,并用声明 static char b;用来记录本机 IP地址,为接下来查

6、找 Hash 表判断流量包的流向做准备:void ifprint(pcap_if_t *d)pcap_addr_t *a;/* 名称 */printf(“%sn“,d-name);/* 描述 */if (d-description)printf(“tDescription: %sn“,d-description);/* 回环地址 */printf(“tLoopback: %sn“,(d-flags /* IP 地址 */6for(a=d-addresses;a;a=a-next)printf(“tAddress Family: #%dn“,a-addr-sa_family);switch(a-

7、addr-sa_family)case AF_INET:printf(“tAddress Family Name: AF_INETn“);if (a-addr)/* Y- IP 地址 */printf(“tAddress: %sn“,iptos(struct sockaddr_in *)a-addr)-sin_addr.s_addr);b = iptos(struct sockaddr_in *)a-addr)-sin_addr.s_addr);if (a-netmask)/* Y- 掩码 */printf(“tNetmask: %sn“,iptos(struct sockaddr_in *)

8、a-netmask)-sin_addr.s_addr);if (a-broadaddr)/* Y- 广播地址 */printf(“tBroadcast Address: %sn“,iptos(struct sockaddr_in *)a-broadaddr)-sin_addr.s_addr);if (a-dstaddr)/* Y - 目标地址 */printf(“tDestination Address: %sn“,iptos(struct sockaddr_in *)a-dstaddr)-sin_addr.s_addr);break;default:/* 未知 */printf(“tAddr

9、ess Family Name: Unknownn“);break;printf(“n“);/* 来自 tcptracert, 把数字 IP 地址转换为点格式 */#define IPTOSBUFFERS 12char *iptos(u_long in)static char outputIPTOSBUFFERS3*4+3+1;static short which;7u_char *p;p = (u_char *)which = (which + 1 = IPTOSBUFFERS ? 0 : which + 1);sprintf(outputwhich, “%d.%d.%d.%d“, p0,

10、p1, p2, p3);return outputwhich;结果显示如下:(3) 接收到用户输入的适配器编号,打开指定适配器:/* open one device */cap_ins_des = pcap_open(d-name, 65536, PCAP_OPENFLAG_PROMISCUOUS, 1000, NULL, errbuf);if (cap_ins_des = NULL) printf(“%sn“, errbuf);pcap_freealldevs(alldevs);exit(-1);(4) 打开指定文件存储捕获的数据包:/* open a file to dump data *

11、/dumpfp = pcap_dump_open(cap_ins_des, “traffic1“);if( dumpfp = NULL) printf(“Error on opening output filen“);exit(-1);8(5) 在 main()函数开始做一个声明,方便用户自由选择过滤规则,声明如下:int switchnum;char t1 = “ip“;/ip 过滤规则char t2 = “ip and tcp“;/tcp 过滤规则char t3 = “ip and udp“;/udp 过滤规则char t4 = “;/mac 帧过滤char packet_filter10

12、0; / the filter设置过滤规则时使用 swich()语句判断用户输入的编号,是对应的编号与对应的过滤规则相一致:/* open a file to dump data */dumpfp = pcap_dump_open(cap_ins_des, “traffic1“);if( dumpfp = NULL) printf(“Error on opening output filen“);exit(-1);/* get the netmask, used at compiling the filter */if (d-addresses != NULL)netmask = (struc

13、t sockaddr_in *)(d-addresses-netmask)-sin_addr.S_un.S_addr; /*#$% /* 255.25.255.0 */ netmask = 0;/*选择过滤规则*/printf(“n-n“);printf(“%d:%sn“,1, “IP 协议“);printf(“%d:%sn“,2, “IP 和 TCP 协议“);printf(“%d:%sn“,3, “IP 和 UDP 协议“);printf(“%d:%sn“,4, “MAC 帧“);printf(“请选择要获取的协议类型):“);scanf(“%d“, switch (switchnum)c

14、ase 1:strcpy(packet_filter,t1);break;case 2:strcpy(packet_filter,t2);break;9case 3:strcpy(packet_filter,t3);break;case 4:strcpy(packet_filter,t4);break;default:printf(“errorn“);/* compile the filter */if (pcap_compile(cap_ins_des, /int argv_time = 2;/args.timeLen = argv_time;/printf(“抓取时长:%d sn“, ar

15、gs.timeLen);if(pthread_create(return -1;void *thread_clock(void *argv)pcap_t *handle = (argument*)argv)-handle;int timeLen = (argument*)argv)-timeLen; / set time/ printf(“%d“,timeLen);Sleep(timeLen*1000);pcap_breakloop(handle);结果显示如下:(7) 抓包时调用函数 pcap_loop()函数调用 cb_getPacket()函数,实现在线程内的抓包,Sleep 函数一旦结

16、束,通过 pcap_breakloop()退出抓包:pcap_loop(cap_ins_des, -1, cb_getPacket, (u_char*)dumpfp);void cb_getPacket(u_char *dumpfile, const struct pcap_pkthdr *pkthdr, const u_char *packet)/ ip_header *seg_ip = (ip_header*)(package + ETHER_LEN);pcap_dump(dumpfile, pkthdr, packet);ethernet_protocol_packet_callback(dumpfile,pkthdr,packet);(8) 设置完成抓包时长后,系统开始进行抓包,一旦抓包结束,调用pcap_close()关闭会话并释放适配器列表:pcap_close(cap_ins_des);pcap_freealldevs(allAdapters);/释放适配器列表(9) 捕获结束后将捕获的数据包存入 traffic1.data 文件中,再将文件打开进行分析,打开文件之前使用 pcap_createsrcstr 函数指明文件位置为本机文件,文件名为“traffic1.data” ,在调用 pcap_open()打开捕

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。