《网络层协议分析实验报告(共12页).docx》由会员分享,可在线阅读,更多相关《网络层协议分析实验报告(共12页).docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上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 数据报的格式,理解 IP V4 地址的编址方法,加深对 IP
2、协议的理解。3)、IP 数据报分片实验我们已经从前边的实验中看到,IP 报文要交给数据链路层封装后才能发送。理想情况下,每个 IP 报文正好能放在同一个物理帧中发送。但在实际应用中,每种网络技术所支持的最大帧长各不相同。例如:以太网的帧中最多可容纳 1500 字节的数据,这个上限被称为物理网络的最大传输单元(MTU,MaxiumTransfer Unit)。TCP/IP 协议在发送 IP 数据报文时,一般选择一个合适的初始长度。当这个报文要从一个 MTU 大的子网发送到一个 MTU 小的网络时,IP 协议就把这个报文的数据部分分割成能被目的子网所容纳的较小数据分片,组成较小的报文发送。每个较小
3、的报文被称为一个分片(Fragment)。每个分片都有一个 IP 报文头,分片后的数据报的 IP 报头和原始 IP 报头除分片偏移、MF 标志位和校验字段不同外,其他都一样。重组是分片的逆过程,分片只有到达目的主机时才进行重组。当目的主机收到 IP 报文时,根据其片偏移和标志 MF 位判断其是否一个分片。若 MF 为 0,片偏移为 0,则表明它是一个完整的报文;否则,则表明它是一个分片。当一个报文的全部分片都到达目的主机时,IP 就根据报头中的标识符和片偏移将它们重新组成一个完整的报文交给上层协议处理。4)、ARP协议分析实验本次实验使用的Windows自带的Arp命令,提供了显示和修改地址解
4、析协议所使用的地址映射表的功能。Arp 命令的格式要求如下:ARP -s inet_addr eth_addr if_addrARP -d inet_addr if_addrARP -a inet_addr -N if_addr其中: -s:在 ARP 缓存中添加表项:将 IP 地址 inet_addr 和物理地址 ether_addr 关联,物理地址由以连字符分隔的 6 个十六进制数给定,使用点分十进制标记指定 IP 地址,添加项是永久性的; -d:删除由 inet_addr 指定的表项; -a:显示当前 ARP 表,如果指定了 inet_addr 则只显示指定计算机的 IP 和物理地址;
5、inet_addr:以点分十进制标记指定 IP 地址; -N:显示由 if_addr 指定的 ARP 表项; if_addr:指定需要选择或修改其地址映射表接口的 IP 地址; ether_addr:指定物理地址;1.A.3、实验步骤1)、ICMP协议分析步骤1:分别在 PC1 和 PC2 上运行 Wireshark,开始截获报文,为了只截获和实验内容有关的报文,将 Wireshark 的 Captrue Filter 设置为“No Broadcast and no Multicast”;步骤2:在 PC1 以 PC2 为目标主机,在命令行窗口执行 Ping 命令;请写出执行的命令:ping
6、192.168.3.183 步骤3:停止截获报文,将截获的结果保存为“ICMP-1-学号”,分析截获的结果,回答下列问题:1)您截获几个 ICMP 报文?分别属于那种类型?答: 66个 33个请求报文33个回复报文 2)分析截获的 ICMP 报文,查看表 1.A.1 中要求的字段值,填入表中。表 1.A.1 ICMP报文分析报文号源IP目的IP报文格式类型代码标识序列号16192.168.3.183192.168.3.3reply00x0001817192.168.3.3192.168.3.183request00x0001908192.168.3.183192.168.3.3reply00x
7、0001409192.168.3.3192.168.3.183request00x0001561192.168.3.3192.168.3.183request00x00013162192.168.3.183192.168.3.3reply00x000131【x为学号后两位】实验捕获的报文数据截图:报文16报文17报文x报文x+1分析在上表中哪个字段保证了回送请求报文和回送应答报文的一一对应,仔细体会Ping 命令的作用。如何保证请求报文和应答报文时一一对应的?答: 序号保证了请求报文和回复报文的一一对应。Ping可以检验网络能否想通。 步骤4:在 PC1 上运行 Wireshark 开始截获报
8、文;步骤5:在PC1上执行Tracert命令,向一个本网络中不存在的主机发送数据报,如:Tracert ;步骤6:停止截获报文,将截获的结果保存为“ICMP-2-学号”,分析截获的报文,回答下列问题:截获了报文中哪几种 ICMP 报文?其类型码和代码各为多少?答: 两种请求报文和回复报文。 目标主机不可达 Type: 3 (Destination unreachable) Code: 1 (Host unreachable) 在截获的报文中,超时报告报文的源地址是多少?这个源地址指定设备和 PC1 有何关系?答: 192.168.3.3 这个地址是PC1 的网关地址。 通过对两次截获的 ICM
9、P 报文进行综合分析,仔细体会 ICMP 协议在网络中的作用。答:ICMP报文有两种:差错报告报文和询问报文。其中差错报告报文用来报告差错类型,询问报文用与寻找目标主机应用有ping、tracert,时间戳可以用来计算RTT时间。 2)、IP协议分析步骤1:截获 PC1 上 ping PC2 的报文,结果保存为“IP-学号”;步骤4:取序号为学号的数据报,分析 IP 协议的报文格式,完成下列各题:-1)分析 IP 数据报头的格式,完成表 5.2;表 5.2 IP协议字段报文信息说明版本4IPV4头长20 bytes服务类型0回复报文总长度60标识0x0001标志0x00片偏移0生存周期64协议
10、Icmp校验和0x7e97源地址192.168.3.3目的地址192.168.3.183实验捕获的报文数据截图(突出显示分析的报文):1) 查看该数据报的源 IP 地址和目的 IP 地址,他们分别是哪类地址?体会 IP 地址的编址方法。答:均为 C类地址。1-126为A类地址,128-191为B类地址,192-223为C类地址。 3)、IP数据报分片实验步骤1:在 PC1、PC2 两台计算机上运行 Wireshark,为了只截获和实验有关的数据报,设置 Wireshark 的截获条件为对方主机的 IP 地址,开始截获报文;步骤2:在 PC1 上执行如下 Ping 命令,向主机 PC2 发送 4
11、500B 的数据报文:Ping l 4500 n 6 PC2的IP地址步骤3:停止截获报文,分析截获的报文,回答下列问题:1)以太网的 MTU 是多少?答: 1500,以太网中规定MTU为1500B 2)对截获的报文分析,将属于同一ICMP 请求报文的分片找出来,主机 PC1 向主机 PC2发送的 ICMP 请求报文分成了几个分片?答:4个 3)若要让主机PC1向主机PC2发送的数据分为 3 个分片,则 Ping 命令中的报文长度应为多大?为什么?答:1480*3=4440B,因为MTU为1500,要使报文最长,则其首部应最小即20字节,故报文长度最长为1480*3=4440 4)将第二个 I
12、CMP 请求报文的分片信息填入表 5.3:表 5.3 ICMP请求报文分片信息分片序号标识(Identification)标志(Flag)片偏移(Fragment数据长度50x67bb0x0000-147960x67bb0x0014801480-295970x67bb0x0029604440-45074)、ARP协议分析实验步骤1:在 PC1、PC2 两台计算机上执行如下命令,清除 ARP 缓存:答: ARP -d 步骤2:在 PC1、PC2 两台计算机上执行如下命令,查看高速缓存中的 ARP 地址映射表的内容:答: ARP -a 步骤3:在 PC1 和 PC2 上运行 Wireshark 截
13、获报文,为了截获和实验内容有关的报文,Wireshark 的 Captrue Filter 设置为默认方式;步骤4:在主机 PC1 上执行 Ping 命令向 PC2 发送数据报;步骤5:执行完毕,保存截获的报文并命名为 “ARP-1-学号”;步骤6:在 PC1、PC2 两台计算机上再次执行 ARP a 命令,查看高速缓存中的 ARP 地址映射表的内容:1)这次看到的内容和步骤 2的内容相同吗?结合两次看到的结果,理解 ARP 高速缓存的作用。答:内容结果不相同。ARP高速缓存是动态的,每当发送一个指定地点的数据报且高速缓存中不存在当前项目时,ARP便会自动添加该项目。计算机进行路由选择时首先在
14、ARP高速缓存中查找,如果没有找到,再通过广播请求消息来查找。 把这次看到到的高速缓存中的 ARP 地址映射表写出来或给出截图。接口IP地址IP地址Internet Address物理地址Physical Address类型Type备注192.168.3.100-19-e0-b8-50-f0动态228.227.85.11301-00-5e-63-55-71静态231.192.88.4201-00-5e-40-58-2a静态步骤7:重复步骤 45,将此结果保存为 “ARP-2-学号”;步骤8:打开 arp-1-学号,完成以下各题:1)在截获的报文中由几个 ARP 报文?在以太帧中,ARP 协议类
15、型的代码值是什么?答: 4个,在以太帧中,ARP 协议类型的代码值是IP(0x0800) a) 分析 arp-1 中 ARP 报文的结构,完成表 5.4。表 5.4 ARP报文分析ARP请求报文ARP应答报文字段报文信息及参数字段报文信息及参数硬件类型Ethernet(1)硬件类型Ethernet(1)协议类型IP(0x0800)协议类型IP(0x0800)硬件地址长度6硬件地址长度6协议地址长度4协议地址长度4操作Request(1)操作Reply(2)源站物理地址(10:78:d2:9d:9b:dc)源站物理地址(10:78:d2:98:7b:42)源站IP地址192.168.3.3源站I
16、P地址192.168.3.183目的站物理地址(10:78:d2:98:7b:42)目的站物理地址(10:78:d2:9d:9b:dc)目的站IP地址192.168.3.183目的站IP地址192.168.3.31.B 编程构造IP数据包部分使用C语言构造IP数据包程序。1) IPv4基本定长首部结构体定义struct iphdr ip verlen ;u_char ip_tos;u_short ip_len;short ip_id;short ip_fragoff;u_char ip_ttl;u_char ip_prpto;short ip_cksum;IPadder ip_src;IPad
17、dr ip_dst;U_char ip_data1;2)构造IP报文unsigned char * Build_IP_Packet(unsigned int d_ip, unsigned int s_ip,unsigned char proto_type, const unsigned char *buf, int len,unsigned char * ippacket, int *iplen)*iplen=sizeof(struct iphdr)+len;Unsigned char *dbuf=ippacket+sizeof(strct iphdr);Strct iphdr *iph=(s
18、trct pihdr *)ippacket;Memcpy(dbuf,buf,len);Iph-version=4;Iph-ih1=5;Iph-tos=0;Iph-toto_len=htons(*iplen);Iph-id=htons(0x65d2);Iph-frag_off=htons(0);Iph-tt1=64;Iph-daddr=d_ip;Iph-saddr=s_ip;Iph-protocol=proto_type;Iph-check=0;Iph-check=checksum(unsigned short *)ippacket sizeof(strct iphdr);return ippacket;3)IP校验和计算/TCPIP协议中的校验和计算unsigned short checksum(unsigned short *ptr, int nbytes)unsigned long cksum=0; while(nbytes 1) cksum+=* ptr +; nbytes -=sizeof(USHORT); if(nbytes) cksum+=*(UCHAR *) ptr; /将32位数转换成16 while (cksum16) cksum=(cksum16)+(cksum & 0xffff); return (USHORT) (*cksum); 专心-专注-专业