




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《计算机网络》实验报告项目名称《WindowsSocket编程》、《NS2网络仿真实验》、《ip数据包捕获》专业班级软件工程1205班学号3901120508姓名甘婷实验成绩:批阅教师:年月日实验1《WindowsSocket编程》实验学时:2实验地点:X204实验日期:2014.04.23实验目的通过实验,使学生熟悉并掌握计算机Windows编程的基本知识,进一步加深学生对课堂所学基本内容的理解,掌握基本的Windows编程技巧,通过实验使得学生能够进行一些简单的网络程序设计。2.实验内容1.介绍基本的WindowsSocket编程技巧;2.基于WindowsSocket编程,设计并实现一个简单的聊天系统,包括客户端及服务器端。3.实验方法利用MFC,参考网络上socket编程指南进行实验实验步骤1.工程创建(1)服务器端创建(2)客户端创建2.Winsock初始化在Windows环境下进行网络程序设计时,所有的Winsock函数都是从ws2_32.dll导出的,我们可以通过#pragma
comment(lib,
"ws2_32.lib")语句链接到该库文件。但在使用Winsock函数之前还必须调用WSAStartup函数对库资源进行初始化工作,使用完毕后,在退出程序之前,我们还必须调用WSACleanup函数来释放库资源。3.编程模式(1)服务器端1)创建socketSocket函数的原型为:2)绑定bindbind函数的原型:3)监听listen4)接受连接accept,接收/发送数据send/recv5)发送/接收数据6)关闭监听套接字,终止服务器(2)客户端:1)创建连接套接字2)设置通信地址3)向服务器提出连接请求:4)连接成功后,接收服务器端发送来的信息5)关闭套接字,终止通信4.项目简单演示1)开启服务器端,等待客户端连接2)开启客户端,可以开启多个,为了达到效果,可以再不同的机器上开启客户端3)连接服务器。4)开始聊天,只要连接上服务器的客户端都会收到聊天信息,相当于简单的群聊。实验结果成功启动服务器:启动客户端:向服务端发送消息:服务端成功接收到消息:实验2《NS2网络仿真实验》实验学时:2实验地点:XXX实验日期:2014.XX实验目的学生能够初步掌握NS2网络模拟平台,并且能够利用网络模拟平台进行简单的实验。学习采用距离矢量算法(DistanceVectorAlgorithm)的动态路由。加深对TCP拥塞控制与流量控制机制的理解,并且能够为实验需要简单修改NS2的核心模块。实验内容本实验分为三个实验过程,NS2平台的坏境搭建、NS2网络路由协议的仿真以及要简单修改NS2的核心模块。此外,在实验过程中需要同学们自学linux操作系统的安装和使用(可在虚拟机中安装linux,本实验指导书使用的VMware虚拟机中的ubuntu操作系统),熟悉linux下的软件开发过程(如vi编辑器,gcc编译器),熟悉Tcl和Otcl脚本语言,熟悉C++编程语言。实验3《ip数据包捕获》实验学时:2实验地点:X203实验日期:2014.05.05实验目的JPCAP是一个能够捕获、发送网络数据包的java类库包。这个包用到了Winpcap/Libpcap和原始套接字API,目前,JPCAP在FreeBSD3.x、LinuxRedHat6.1、Solaris和MicrosoftWindows2000/XP系统上已经做过测试,并且支持Ethernet,IPv4,IPv6,ARP/RARP,TCP,UDP,ICMPv4协议。JPCAP是由在美国加利福尼亚大学Irvine分校(UCI)攻读博士学位的日本人KeitaFujiiy研制发布的,其主页为/kfujii/。JAVA语言虽然在TCP/UDP传输方面给予了良好的定义,但对于网络层以下的控制,却是无能为力的。JPCAP扩展包弥补了这一点。JPCAP实际上并非一个真正去实现对数据链路层的控制,而是一个中间件,JPCAP调用Winpcap/Libpcap,给JAVA语言提供一个公共的接口,从而实现了平台无关性,并能够捕获、发送网络数据包。通过本次实验熟悉使用JPCAP捕获数据包,并从捕获的数据了解ip数据包包含的信息。实验内容 1.使用KeitaFujiiy编写的基于JPCAP的JPCAPDumper软件捕获网络数据,了解JPCAP能实现的功能。JPCAPDumper为英文程序,可参考反编译和汉化后的程序数据包捕获器,功能一致;2.熟悉JPCAPAPI的常用类(ARPPacket、DatalinkPacket、IPAddress、IPPacket等);3.熟悉JPCAP环境的安装步骤;4.使用JPCAP编写简单的ip数据包捕获程序;5.参考反编译和汉化的数据包捕获器代码,实现可视化ip数据包捕获程序(选作)。实验方法使用MyEclipse进行相应的代码编程,加上做成可视化界面。实验步骤1.JPCAP环境的安装JPCAP实际上并非一个真正去实现对数据链路层的控制,而是一个中间件,JPCAP调用Winpcap/Libpcap,给JAVA语言提供一个公共的接口,从而实现了平台无关性,并能够捕获、发送网络数据包。因此要是用JPCAP首先需要安装Winpcap(Windows操作系统)或Libpcap(Linux操作系统)。(1)安装JavaSDK()(2)安装最新版本的LibPcap(对于Linux平台,/)或者WinPcap(对于Windows平台,http://winpcap.polito.it/)(3)下载并解压缩Jpcap的最新版本(/kfujii/jpcap/doc/index.html)。(4)以WindowXP系统为例,具体准备工作如下:复制Jpcap.dll到C:\WINDOWS\system32安装winpcap4.0.2在Eclipse工程中导入jpcap.jar2.JPCAPDumper的使用JPCAPDumper是KeitaFujiiy编写的基于JPCAP的网络分析软件,用于演示JPCAP的功能。JPCAPDumper为英文程序,对中文操作系统支持较差,可参考反编译和汉化后的程序数据包捕获器,两者功能一致。3.熟悉JPCAPAPI阅读资料里提供的JPCAPAPI,熟悉JPCAP常用类和方法。Jpcap0.4版本共有1个分析器接口14个分析器类,分别简介如下:JpcapHandler:这个接口用来定义分析被捕获数据包的方法ARPPacket:这个类描述了ARP/RARP包,继承了Packet类 DatalinkPacket:这个抽象类描述了数据链路层EthernetPacket:这个类描述了以太帧包,继承DatalinkPacket类ICMPPacket:这个类描述了ICMP包,继承了IPPacket类IPAddress:这个类描述了IPv4和IPv6地址,其中也包含了将IP地址转换为域名的方法IPPacket:这个类描述了IP包,继承了Packet类,支持IPv4和IPv6IPv6Option:这个类描述了IPv6选项报头Jpcap:用来捕获数据包Jpcap.JpcapInfo:Jpcap的内部类,它包含被捕获数据包的信息(在jpcap0.4修改部分BUG之后不再使用这个类)JpcapSender:它用来发送一个数据包JpcapWriter:它用来将一个被捕获的数据包保存到文件Packet:这个类是所有被捕获的数据包的基类TCPPacket:这个类描述TCP包,继承了IPPacket类UDPPacket:这个类描述了UDP包,继承了IPPacket类4.简单的抓包程序以抓取ip数据包为例,JPCAP抓包基本步骤为:绑定网络设备、抓包、分析。实验结果部分源码:importjava.io.IOException;importjpcap.JpcapCaptor;importjpcap.NetworkInterface;importjpcap.packet.IPPacket;importjpcap.packet.Packet;publicclassIPPacketTest{ publicstaticvoidmain(String[]args){ //一、绑定网络设备 NetworkInterface[]devices=JpcapCaptor.getDeviceList(); for(NetworkInterfacen:devices) System.out.println(+" | "+n.description); System.out.println("-------------------------------"); JpcapCaptorjpcap=null; intcaplen=1512; booleanpromiscCheck=true; //caplen限制每一次收到一个数据包,只提取该数据包中前多少字节 //Promisc:设置是否混杂模式。处于混杂模式将接收所有数据包,若之后又调用了包过滤函数setFilter()将不起任何作用 //60这个参数主要用于processPacket()方法,指定超时的时间 try{ jpcap=JpcapCaptor.openDevice(devices[1],caplen,promiscCheck,60); }catch(IOExceptione){ e.printStackTrace(); } //二、抓包 inti=0; while(i<10){ Packetpacket=jpcap.getPacket(); if((packetinstanceofIPPacket)&&(((IPPacket)packet).version==4)){ i++; IPPacketip=(IPPacket)packet;//将包强制转换为IP包 System.out.println("版本:IPV4"); System.out.println("优先权:"+ip.priority); System.out.println("区分服务:最大吞吐量:"+ip.t_flag); System.out.println("区分服务:最高可靠性:"+ip.r_flag); System.out.println("长度:"+ip.length); System.out.println("标识:"+ip.ident); System.out.println("DF:Don'tFragment:"+ip.dont_frag); System.out.println("MF:MoreFragment:"+ip.more_frag); System.out.println("片偏移:"+ip.offset); System.out.println("生存时间:"+ip.hop_limit); Stringprotocol=null; switch(newInteger(tocol)){ case1:protocol="ICMP";break; case2:protocol="IGMP";break; case6:protocol="TCP";break; case8:protocol="EGP";break; case9:protocol="IGP";break; case17:protocol="UDP";break; case41:protocol="IPv6";break; case89:protocol="OSPF";break; default:break; } System.out.println("协议:"+protocol); System.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店卫生间卫生检查制度
- plc机柜间管理制度
- 上班手机集中管理制度
- 中介行业业务管理制度
- 会议接待服务管理制度
- 自来水公司库房管理制度
- 义齿企业培训管理制度
- 中职学校寝室管理制度
- 肝胆外科病案讨论
- 湖南外国语职业学院《中药生物技术实验》2023-2024学年第二学期期末试卷
- MOOC 统计学-南京审计大学 中国大学慕课答案
- MOOC 嵌入式系统-西北工业大学 中国大学慕课答案
- 北京市密云区2024届物理八年级下册期末联考试题含解析
- 工程造价专业《工程项目管理实训》课程标准
- 《高温熔融金属吊运安全规程》(AQ7011-2018)
- 《观念决定行动》课件
- 年产4亿片阿奇霉素片的精烘包及车间设计
- 分组密码的攻击方法与实例分析
- 《现代汉语》考试复习题库及答案
- 关于幼儿园沙水区自主游戏探究的论文
- (完整word)软件验收单
评论
0/150
提交评论