版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机网络课程设计说明书题目:IP数据包抓获及分析系别:计算机科学与工程学院专业:软件工程学生姓名:谢才浪学号:0800350222指导教师:王虎寅2011年3月25日目录1设计任务………………11需求分析…………11.1功能需求………………………11.2界面需求………………………11.3输入输出需求………………………13总体设计………………………13.1设计技术………………………13.2功能设计………………………13.3IP数据包结构分析………14详细设计……………………24.1界面设计………………………24.2详细功能设计………………………35设计总结………………………96使用说明……………101设计任务 本课程设计的内容是设计一个IP数据包的捕获解析器,将结果显示在输出设备上,并且保存为系统日志。1需求分析2.1功能需求能够对网络上的数据包进行捕获,分析,显示结果。保存为日志文件。2.2界面需求主面板,显示结果输出控制台,操作工具栏,网络端口选择界面2.3输入输出需求选择网络端口,打开IE浏览器上网,接收数据,数据包分析结果在输出面板上显示。3总体设计3.1设计技术使用java来开发本次课程设计,运用Jpcap类库来解决网络数据包的捕获分析问题,JPCAP实际上并非一个真正去实现对数据链路层的控制,而是一个中间件,JPCAP调用wincap/libpcap,而给JAVA语言提供一个公共的接口,从而实现了平台无关性。3.2功能设计首先要检测本机的网络端口,选择网络端口后对其监控,当它接收或者发送数据包的时候进行捕获,对捕获的数据包进行分析,对于IP报文的结构的主要信息输出在显示界面,保存后可以随时用本程序进行查看。3.3IP数据包结构分析04816192431版本报头标长服务类型总长度标识标志片偏移生存时间协议头校验和源IP地址目的IP地址选项填充域数据部分上图是IP数据包的格式,IP数据包的第一个字段是版本字段,其度是4位,表示所使用的IP协议的版本.目前的版本是IPV4,版本字段的值是4,下一代版本是IPV6,版本字段值是6.本程序主要针对版本是IPV4的数据包的解析.报头标长字段为4位,它定义了以4B为一个单位的IP包的报文长度.报头中除了选项字段和填充域字段外,其他各字段是定长的.因此,IP数据包的头长度在20—40B之间,是可变的。服务类型(TOS)子域和3位优先级子域组成,1位为保留位,该字段结构如图B7b6b5b4b3b2b1b0优先级DTRC0服务类型字段共8位,用于指示路由器如何处理该数据包.该字段长度由4位总长度字段为2B,它定义了以字节为单位的数据包的总长度.IP数据包的最大长度为65535B.标识字段的长度为16位,用于识别IP数据包的编号.每批数据都要有一个标识值,用于让目的主机判断新来的数据属于哪个分组.报头中的标志字段如图7-3所示.标志字段共3位,最高位是0.禁止分片标志DF(donotfragment)字段的值若为1,表示不能对数据包分片;若DF值为0,则表明可以分片.分片标志MF( morefragment)的值为1,表示接收到的不是最后一个分片;若MF值为0,表示接收到的是最后一个分片.片偏移字段共13位,说明分片在整个数据包中的相对位置.片偏移值是以8B为单位来记数的,因此选择的分片长度应该是8B的整数倍.生存时间(TTL)字段为8位,用来设置数据包在互联网络的传输过程的寿命,通常是用一个数据包可以经过的最多的路由器跳步数来限定的.协议字段为8位,表示使用此IP数据包的高层协议类型头校验和字段为16位,用于存放检查报头错误的校验码。检验的范围是整个IP包的报头4详细设计4.1界面设计显示网卡信息选择网卡4.2详细功能设计获得网卡配置信息要想从网络中捕获数据包,第一件必须要做的事就是获取本机的网络接口列表。Jpcap提供了方法JpcapCaptor.getDeviceList()完成这个任务,该方法返回一组NetworkInterface对象。 NetworkInterface接口对象包含了对应网络接口的一些信息,例如:名称、描述、IP以及MAC地址以及数据链路层名称和描述。publicNetworkInterface[]getDevices(){devices=JpcapCaptor.getDeviceList();returndevices;}//获得网卡接口list描述publicvoiddesNetworkInterface(){sb.append("************************网卡信息****************************************\n");sb.append("总共有"+devices.length+"个网络设备接口\n");for(inti=0;i<devices.length;i++){sb.append("\n设备接口"+(i+1)+":\n");sb.append("网络接口名称:"+devices[i].name+"\n");//选中一个网卡接口进行监听if(!(devices[i].name.contains("GenericDialupAdapter"))){device=devices[i];}sb.append("网络接口描述:"+devices[i].description+"\n");sb.append("数据链路层名称:"+devices[i].datalink_name+"\n");sb.append("数据链路层描述:"+devices[i].datalink_description+"\n");sb.append("是否是LOOPBACK设备:"+devices[i].loopback+"\n");sb.append("MAC地址:");intflag=0;for(byteb:devices[i].mac_address){flag++;if(flag<devices[i].mac_address.length){sb.append(Integer.toHexString(b&0xff)+":");}elsesb.append(Integer.toHexString(b&0xff)+"\n");}}sb.append("**********************************************************************\n");获得一个网卡的接口连接一旦有了网络接口列表就可以从选定用于捕获数据包的网络接口,可以使用方法JpcapCaptor.openDevice()来打开网络接口。调用JpcapCaptor.openDevice()方法必须指定下列参数:名称 目的NetworkInterderface要打开的网络接口。intrface intsnaplen 一次捕获数据包的最大byte数。booleanprommics 是否采用混乱模式混乱模式中,可以捕获所有数据包,即便源MAC或目的MAC地址与打开的网络接口的MAC地址不相同。而非混乱模式中只能捕获由宿主机发送和接收的数据包。intto_ms 捕获的数据包的超时设置(数量级为毫秒)。//获得一个网卡接口的连接publicvoidgetCap(NetworkInterfacenInterface,booleanmixMode,Stringfilter){try{jCaptor=JpcapCaptor.openDevice(nInterface,2048,mixMode,5000);}catch(IOExceptione){e.printStackTrace();}}开始捕获数据包首先定义一个实现PacketReceiver接口的类。PacketReceiver接口中定义了receivePacket()方法,只需实现receivePacket()这个方法。在类定义的时候继承PacketReceiver,然后在类中实现publicvoidreceivePacket(Packetpacket){packets.add(packet);//捕获包并保存到链表中analysis(packet);//分析包}数据包分析分析IP数据包if(packetinstanceofIPPacket){//分析IPIPPacketiPacket=(IPPacket)packet;sb.append("---IP版本:"+iPacket.version+"---\n");if(iPacket.version==4){//分析IPv4协议sb.append("Typeofservice:"+iPacket.rsv_tos+"\n");sb.append("Priority:"+iPacket.priority+"\n");sb.append("PacketLength:"+iPacket.length+"\n");sb.append("Identification:"+iPacket.ident+"\n");sb.append("Don'tFrag?"+iPacket.dont_frag+"\n");sb.append("MoreFrag?"+iPacket.more_frag+"\n");sb.append("FragOffset:"+iPacket.offset+"\n");sb.append("TimetoLive:"+iPacket.hop_limit+"\n");sb.append("Protocol:"+iPtocol+"(TCP=6;UDP=17)\n");sb.append("Sourceaddress:"+iPacket.src_ip.toString()+"\n");sb.append("Destinationaddress:"+iPacket.dst_ip.toString()+"\n");sb.append("Options:"+iPacket.option+"\n");sb.append("------------------\n");}分析以太网帧信息if(dPacketinstanceofEthernetPacket){//分析以太网帧EthernetPacketePacket=(EthernetPacket)dPacket;sb.append("src_mac:");intflag1=0;for(byteb:ePacket.src_mac){flag1++;if(flag1<ePacket.src_mac.length){sb.append(Integer.toHexString(b&0xff)+":");}elsesb.append(Integer.toHexString(b&0xff)+"\n");}sb.append("dst_mac:");intflag2=0;for(byteb:ePacket.dst_mac){flag2++;if(flag2<ePacket.dst_mac.length){sb.append(Integer.toHexString(b&0xff)+":");}elsesb.append(Integer.toHexString(b&0xff)+"\n");}sb.append("frametype:"+Integer.toHexString(ePacket.frametype&0xffff)+"\n");sb.append("------------------\n");}else{sb.append(dPacket+"\n");sb.append("------------------\n");}将数据保存//保存捕获包于文件中publicvoidsaveFile(StringfileName){if(jCaptor==null){JOptionPane.showMessageDialog(null,"NoPacketyet!","NO-PACKETS",JOptionPane.INFORMATION_MESSAGE);}else{try{writer=JpcapWriter.openDumpFile(jCaptor,fileName);while(packets.size()!=0){writer.writePacket(packets.removeFirst());}writer.close();}catch(IOExceptione){e.printStackTrace();}}}这里传送的参数fileName在主窗口的代码中生成:elseif(e.getSource()==F_save){JFileChooserchooser=newJFileChooser();intreturnType=chooser.showSaveDialog(null);if(returnType==JFileChooser.APPROVE_OPTION){Filefile=chooser.getSelectedFile();StringfileName=file.getAbsolutePath();cPacket.saveFile(fileName);}用线程对端口进行实时监控publicCatchPacketcPacket;Threadt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长租公寓内控制度
- 财政局财务内控制度
- 福建政府采购内控制度
- 发改委财务内控制度
- 设立内控制度
- 信息披露内控制度
- 询问内控制度
- 警务保障室内控制度
- 汽运集团内控制度
- 广州银行内控制度
- 排球 垫球、传球技术 教案()
- 中级微观经济学智慧树知到答案2024年对外经济贸易大学
- 中考英语阅读理解50篇附解析
- 2023年西藏中考数学真题试卷及答案
- WS-T 10010-2023 卫生监督快速检测通用要求(代替WS-T 458-2014)
- 输变电工程标准化施工作业卡变电工程
- 《国共合作与北伐战争》优课一等奖课件
- 中国旅游客源国概况-第二章-中国海外客源市场分
- 《分散系》说课课件
- 中小学综合实践活动课程指导纲要
- 加油站综合应急预案演练记录
评论
0/150
提交评论