网络协议分析实验指导书

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

网络协议分析实验指导书贾伟陕西理工学院数学与计算机科学学院2015-06网络协议分析实验说明适用网络工程专业2012级。实验总学时:10学时;实验项目:6个,其中3个验证,3个综合,必须完成1、2、4这三个实验。通过使用wireshark捕获数据包进行分析和使用C语言编程实现对数据包的构造和分析进行实验,每个实验完成后需要将实验捕获的数据、程序代码等实验数据保存下来并上交。实验完成后,除上交纸质的实验报告外,还要上交实验有关的电子文件,要求文件命名为:“实验X_学号_姓名_其它说明”,X取值为中文汉字“一”、“二”、……,连接符为英文输入的下划线“_”,学号为完整长度,各项中间均不得添加空格。实验项目表序号实验项目名称内容课时性质0网络协议分析基础(预备实验)数据包捕获软件的使用;C语言编程。2验证/可选1网络层协议分析捕获ARP、IP、ICMP网络数据包并分析;编程构造IP数据包。4综合/必做2传输层协议分析捕获TCP、UDP网络数据包并分析;编程构造UDP数据包。4综合/必做3HTTP协议分析捕获HTTP网络数据包并分析。2验证/可选4协议分析器程序设计编程捕获数据包并统计数据包信息。4综合/可选5Winpcap编程基础通过Winpcap捕获发送数据包2验证/可选0.网络协议分析基础(预备实验)0.A数据包捕获软件的使用数据包捕获分析软件建议选择Wireshark,因为它目前是全世界最广泛的网络数据包分析软件之一。参考文献:(ISBN:978-7-115-30236-6)ChrisSanders;诸葛建伟等(译).Wireshark数据包分析实战(第2版).人民邮电出版社.2013,3.0.A.1尝试软件的下载和安装0.A.2设置软件捕获过滤器0.A.3选取网卡,开启捕获0.A.4停止捕获,保存捕获数据,打开捕获的数据文件0.A.5打开捕获的数据文件,查看数据包内容0.A.6设置显示过滤器0.A.8Wireshark高级数据包分析查看网络端点和网络会话;跟踪TCP流,图形展示IO流和数据流。0.BC语言编程与网络数据包操作分析熟悉内存数据块的数据保存形式和对其使用不同指针的读取形式所获得的不同数据内容。0.B.1C的有关知识回顾1)了解ANSICandISOC的KeywordsC89has32keywords(reservedwordswithspecialmeaning):autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhile2)掌握C的有关基本数据类型及其长度类型长度(bit)说明char:8typical8-bitsshort:16typical16-bitsint:16/32typical16-bitsor32-bits,bits-numberofintmustbemorethanshort.long:32typical32-bits,alsolargerthanint3)字符数组和结构体定义(1)定义字符数组的语法(2)定义结构体的语法(3)数据类型的强制类型转换语法4)指针操作(1)定义指针变量的语法(2)指向字符数组的指针(3)指向结构体的指针5)比特位操作(与、或和移位)0.B.2C语言编程练习1)输出内存地址的16进制形式2)讨论IPv4地址的定义和操作定义形式i)定义为32bit长度的无符号整数unsignedintip;ii)定义为4个8bit长度的无符号字符串unsignedcharip[4];实现1)点分十进制形式的输入输出;2)判断是否是合法的IP地址;3)判断属于的IP地址类别(A、B、C、D类);4)给IP地址和掩码,给出网络前缀;5)给2个IP地址和掩码,判断两个IP是否属于同一个网络。3)字节序(BYTEORDER)讨论了解字节序(大端序和小端序)的含义.参考网上资料:字节序。1)如何判断本机的字节序。intmain(intargc,char**argv){//怎样判断机器的**字节顺序**是高字节在前还是低字节在前?//1.A.有个使用指针的方法:2.另外一个可能是用联合。intx=0x87654321;unsignedchar*p;p=(unsignedchar*)&x;printf(%X\n,x);//87654321for(inti=0;i4;i++){printf(%2X,p[i]);}//21436587if(*(char*)&x==0x21)printf(\nlittle-endian\n);elseprintf(\nbig-endian\n);system(PAUSE);return0;}2)定义字节序的转换函数(宏)/*网络字节序(NETWORKBYTEORDER)转换函数*//*NETWORKBYTEORDERCONVERSIONNOTNEEDEDONABIG-ENDIANCOMPUTER*//*X86计算机为Little-endian*/#definehtons(x)((0xff&((x)8))|((0xff&(x))8))#definehtonl(x)((((x)24)&0x000000ff)|(((x)8)&0x0000ff00)|\(((x)8)&0x00ff0000)|(((x)24)&0xff000000))#definentohs(x)((0xff&((x)8))|((0xff&(x))8))#definentohl(x)((((x)24)&0x000000ff)|(((x)8)&0x0000ff00)|\(((x)8)&0x00ff0000)|(((x)24)&0xff000000))4)字符数组指针与结构体指针的转换例子:构建以太网帧数据intbuild_eth_frame(unsignedchar*daddr,unsignedchar*saddr,unsignedshorttype,unsignedchar*buf,intlen,unsignedchar*eth_frame[],int*ethframeLen){unsignedchar*frame=(unsignedchar*)malloc(14+len);structethhdr*eth=(structethhdr*)frame;unsignedchar*dbuf=frame+14;memcpy(dbuf,buf,len);memcpy(eth-h_dest,daddr,6);memcpy(eth-h_source,saddr,6);eth-h_proto=htons(type);*eth_frame=frame;*ethframeLen=14+len;return*ethframeLen;}1.网络层协议分析1.A数据包捕获分析部分1.A.1、实验目的1)、了解ICMP协议报文类型及作用。2)、理解IP协议报文类型和格式。3)、分析ARP协议的报文格式,理解ARP协议的解析过程。1.A.2、实验内容介绍1)、ICMP协议分析实验执行ping和tracert命令,分别截获报文,分析截获的ICMP报文类型和ICMP报文格式,理解ICMP协议的作用。2)、IP协议分析实验使用Ping命令在两台计算机之间发送数据报,用Wireshark截获数据报,分析IP数据报的格式,理解IPV4地址的编址方法,加深对IP协议的理解。3)、IP数据报分片实验我们已经从前边的实验中看到,IP报文要交给数据链路层封装后才能发送。理想情况下,每个IP报文正好能放在同一个物理帧中发送。但在实际应用中,每种网络技术所支持的最大帧长各不相同。例如:以太网的帧中最多可容纳1500字节的数据,这个上限被称为物理网络的最大传输单元(MTU,MaxiumTransferUnit)。TCP/IP协议在发送IP数据报文时,一般选择一个合适的初始长度。当这个报文要从一个MTU大的子网发送到一个MTU小的网络时,IP协议就把这个报文的数据部分分割成能被目的子网所容纳的较小数据分片,组成较小的报文发送。每个较小的报文被称为一个分片(Fragment)。每个分片都有一个IP报文头,分片后的数据报的IP报头和原始IP报头除分片偏移、MF标志位和校验字段不同外,其他都一样。重组是分片的逆过程,分片只有到达目的主机时才进行重组。当目的主机收到IP报文时,根据其片偏移和标志MF位判断其是否一个分片。若MF为0,片偏移为0,则表明它是一个完整的报文;否则,则表明它是一个分片。当一个报文的全部分片都到达目的主机时,IP就根据报头中的标识符和片偏移将它们重新组成一个完整的报文交给上层协议处理。4)、ARP协议分析实验本次实验使用的Windows自带的Arp命令,提供了显示和修改地址解析协议所使用的地址映射表的功能。Arp命令的格式要求如下:ARP-sinet_addreth_addr[if_addr]ARP-dinet_addr[if_addr]ARP-a[inet_addr][-Nif_addr]其中:-s:在ARP缓存中添加表项:将IP地址inet_addr和物理地址ether_addr关联,物理地址由以连字符分隔的6个十六进制数给定,使用点分十进制标记指定IP地址,添加项是永久性的;-d:删除由inet_addr指定的表项;-a:显示当前ARP表,如果指定了inet_addr则只显示指定计算机的IP和物理地址;inet_addr:以点分十进制标记指定IP地址;-N:显示由if_addr指定的ARP表项;if_addr:指定需要选择或修改其地址映射表接口的IP地址;ether_addr:指定物理地址;1.A.3、实验步骤1)、ICMP协议分析步骤1:分别在PC1和PC2上运行Wireshark,开始截获报文,为了只截获和实验内容有关的报文,将Wireshark的CaptrueFilter设置为“NoBroadcastandnoMulticast”;步骤2:在PC1以PC2为目标主机,在命令行窗口执行Ping命令;请写出执行的命令:【】步骤3:停止截获报文,将截获的结果保存为“ICMP-1-学号”,分析截获的结果,回答下列问题:1)您截获几个ICMP报文?分别属于那种类型?答:2)分析截获的ICMP报文,查看表1.A.1中要求的字段值,填入表中。表1.A.1ICMP报文分析报文号源IP目的IP报文格式类型代码标识序列号1617XX+16162【x为学号后两位】实验捕获的报文数据截图:报文16报文17报文x报文x+1分析在上表中哪个字段保证了回送请求报文和回送应答报文的一一对应,仔细体会Ping命令的作用。如何保证请求报文和应答报文时一一对应的?答:步骤4:在PC1上运行Wireshark开始截获报文;步骤5:在PC1上执行Tracert命令,向一个本网络中不存在的主机发送数据报,如:Tracert;步骤6:停止截获报文,将截获的结果保存为“ICMP-2-学号”,分析截获的报文,回答下列问题:截获了报文中哪几种ICMP报文?其类型码和代码各为多少?答:在截获的报文中,超时报告报文的源地址是多少?这个源地址指定设备和PC1有何关系?答:通过对两次截获的ICMP报文进行综合分析,仔细体会ICMP协议在网络中的作用。答:2)、IP协议分析步骤1:截获PC1上pingPC2的报文,结果保存为“IP-学号”;步骤4:取序号为学号的数据报,分析IP协议的报文格式,完成下列各题:-1)分析IP数据报头的格式,完成表5.2;表5.2IP协议字段报文信息说明版本头长服务类型总长度标识标志片偏移生存周期协议校验和源地址目的地址实验捕获的报文数据截图(突出

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功