吴炜文3112006351实验报告

吴炜文3112006351实验报告

ID:26019016

大小:471.50 KB

页数:23页

时间:2018-11-24

吴炜文3112006351实验报告_第1页
吴炜文3112006351实验报告_第2页
吴炜文3112006351实验报告_第3页
吴炜文3112006351实验报告_第4页
吴炜文3112006351实验报告_第5页
资源描述:

《吴炜文3112006351实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验报告课程名称___网络应用编程_______题目名称基础篇2,5,6章学生学院___计算机学院_________专业班级12级网络工程1班学号3112006351学生姓名_____吴炜文__________指导教师孙为军____________2015年6月24日-23-实验1IP包流量分析程序一.实验目的和要求1.实验目的IP就是真实流量,是有人真正浏览了您的网站而产生的流量,每台电脑只有一个IP地址,所以一个IP就是一个人,反映在统计上就是独立IP数量,IP是InternetProtocol(因特网协议)的缩写,

2、它是通过计算机网络进行交流的最常用的协议之一。随着网络技术的飞速发展,链路容量和设备处理能力不断升级,Internet的规模呈爆炸性增长,社会对Internet的依赖性越来越高,随之而来,网络传输的业务类型已从简单的低带宽要求的文件传送、电子邮件等变为数据、语音、视频等大流量业务,并且,业务对可靠性,实时性,安全性传输的要求越来越高。基于IP协议的应用成为网络技术研究与软件开发的一个重要基础,因此学习网络层以基本概念,了解IP协议的基本内容,对于掌握TCP/IP协议的主要内容和学习网络课程是十分重要的,通过本次课程设计,

3、有助于熟悉IP包格式和加深对IP协议的理解。2.实验要求编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据包的源地址统计出该源地址在该时间段内发出的IP包的个数,将其写入日志文件或用图形表示出来(建议用图形表示出统计结果)。二.实验环境操作系统:Windows7编译语言:c++,JAVA编译环境:Microsoftvisualc++6.0,Eclispe三.实验原理原始实验:IP数据报的格式说明IP协议都具有什么功能。其首部,版本目前广泛使用的版本号为4;首部长度站4bit;服务类型占8bit,其中服务类型

4、TOS子域占4位,优先级子域占3位,另一位为保留位;总长度字段为2B,IP数据包的最大长度是65535B;标识占16bit,它是一个计数器,用来产生数据报的标识;标志占3bit,其中最低为为MF,MF=1时为后面“还有分片”,MF=0表示这是数据报片中的最后一个,DF=0时,表示允许分片;片偏移以8个字节为偏移单位;生存时间字段记为TTL,单位为秒;协议段占8bit,用于指出次数据是使用何种协议,典型的协议号有6:TCP,17:UDP,1:ICMP。-23-本程序使用套接字socket编程,将网卡设为能够接受流经网卡的所

5、有类型的数据包。首先,初始化套接字,然后监听数据包,解析数据包。SOCKETsock=socket(AF_INET,SOCK_RAW,IPPROTO_IP)用来创建套接字,其参数为通信发生的区字段和套接字的类型。WSAIoctl(sock,IO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen)函数用来把网卡设置为混杂模式。recv(sock,buffer,65535,0)函数用来接收经过的IP包,其参数分别是套接字描述符,缓冲区的地址,缓冲区的大小。typedefstructIP_H

6、EAD{}ip_head;用来定义IP头部数据。setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char*)函数用来获取本机IP地址。htons()函数将无符号短整型转换为网络字节顺序的数据。扩展实验:使用Winpcap捕获数据包获取网络设备列表列出所有网卡,让用户选择需要监视的网卡以混杂模式打开网卡编译并设置过滤器捕获IP数据包在Eclipse环境下运用JAVA语音编写。二.实验步骤和结果记录实验流程图:-23-结果截图:显示出5个网卡的信息-23-选择第五个网卡进行IP包流量分析二.关键

7、源代码publicclassTestJpcap{publicstaticvoidmain(String[]args)throwsIOException{Scannerconsole=newScanner(System.in);getDevices();//显示PC机上可用的网卡的信息System.out.println("请输入网卡号<0-5>");intnum=console.nextInt();//获取用户要打开的网卡号System.out.println("请输入抓包时间(分钟)");intminuets=cons

8、ole.nextInt();//获取用户抓包时间oneByOneReceiver(num,minuets);//调用抓包方法获取网络接口列表publicstaticvoidgetDevices(){NetworkInterface[]devices=JpcapCaptor.getDeviceList();for(in

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。