网络层协议分析实验报告.docx

上传人:b****6 文档编号:12915596 上传时间:2023-06-09 格式:DOCX 页数:12 大小:142.68KB
下载 相关 举报
网络层协议分析实验报告.docx_第1页
第1页 / 共12页
网络层协议分析实验报告.docx_第2页
第2页 / 共12页
网络层协议分析实验报告.docx_第3页
第3页 / 共12页
网络层协议分析实验报告.docx_第4页
第4页 / 共12页
网络层协议分析实验报告.docx_第5页
第5页 / 共12页
网络层协议分析实验报告.docx_第6页
第6页 / 共12页
网络层协议分析实验报告.docx_第7页
第7页 / 共12页
网络层协议分析实验报告.docx_第8页
第8页 / 共12页
网络层协议分析实验报告.docx_第9页
第9页 / 共12页
网络层协议分析实验报告.docx_第10页
第10页 / 共12页
网络层协议分析实验报告.docx_第11页
第11页 / 共12页
网络层协议分析实验报告.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

网络层协议分析实验报告.docx

《网络层协议分析实验报告.docx》由会员分享,可在线阅读,更多相关《网络层协议分析实验报告.docx(12页珍藏版)》请在冰点文库上搜索。

网络层协议分析实验报告.docx

网络层协议分析实验报告

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命令;请写出执行的命令:

[ping192.168.3.183]

步骤3:

停止截获报文,将截获的结果保存为“ICMP-1-学号”,分析截获的结果,回答下列问题:

1)您截获几个ICMP报文?

分别属于那种类型?

答:

66个33个请求报文33个回复报文

2)分析截获的ICMP报文,查看表1.A.1中要求的字段值,填入表中。

表1.A.1ICMP报文分析

报文号

源IP

目的IP

报文格式

类型

代码

标识

序列号

16

192.168.3.183

192.168.3.3

reply

0

0x0001

8

17

192.168.3.3

192.168.3.183

request

0

0x0001

9

08

192.168.3.183

192.168.3.3

reply

0

0x0001

4

09

192.168.3.3

192.168.3.183

request

0

0x0001

5

61

192.168.3.3

192.168.3.183

request

0

0x0001

31

62

192.168.3.183

192.168.3.3

reply

0

0x0001

31

【x为学号后两位】

实验捕获的报文数据截图:

报文16

报文17

报文x

报文x+1

分析在上表中哪个字段保证了回送请求报文和回送应答报文的一一对应,仔细体会Ping命令的作用。

如何保证请求报文和应答报文时一一对应的?

答:

序号保证了请求报文和回复报文的一一对应。

Ping可以检验网络能否想通。

步骤4:

在PC1上运行Wireshark开始截获报文;

步骤5:

在PC1上执行Tracert命令,向一个本网络中不存在的主机发送数据报,如:

Tracert;

步骤6:

停止截获报文,将截获的结果保存为“ICMP-2-学号”,分析截获的报文,回答下列问题:

截获了报文中哪几种ICMP报文?

其类型码和代码各为多少?

答:

两种请求报文和回复报文。

目标主机不可达Type:

3(Destinationunreachable)Code:

1(Hostunreachable)

在截获的报文中,超时报告报文的源地址是多少?

这个源地址指定设备和PC1有何关系?

答:

192.168.3.3这个地址是PC1的网关地址。

通过对两次截获的ICMP报文进行综合分析,仔细体会ICMP协议在网络中的作用。

答:

ICMP报文有两种:

差错报告报文和询问报文。

其中差错报告报文用来报告差错类型,询问报文用与寻找目标主机应用有ping、tracert,时间戳可以用来计算RTT时间。

2)、IP协议分析

步骤1:

截获PC1上pingPC2的报文,结果保存为“IP-学号”;

步骤4:

取序号为学号的数据报,分析IP协议的报文格式,完成下列各题:

-

1)分析IP数据报头的格式,完成表5.2;

表5.2IP协议

字段

报文信息

说明

版本

4

IPV4

头长

20bytes

服务类型

0

回复报文

总长度

60

标识

0x0001

标志

0x00

片偏移

0

生存周期

64

协议

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发送4500B的数据报文:

Ping–l4500–n6PC2的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)将第二个ICMP请求报文的分片信息填入表5.3:

表5.3ICMP请求报文分片信息

分片序号

标识(Identification)

标志(Flag)

片偏移(Fragment

数据长度

5

0x67bb

0x00

0

0-1479

6

0x67bb

0x00

1480

1480-2959

7

0x67bb

0x00

2960

4440-4507

4)、ARP协议分析实验

步骤1:

在PC1、PC2两台计算机上执行如下命令,清除ARP缓存:

答:

ARP-d

步骤2:

在PC1、PC2两台计算机上执行如下命令,查看高速缓存中的ARP地址映射表的内容:

答:

ARP-a

步骤3:

在PC1和PC2上运行Wireshark截获报文,为了截获和实验内容有关的报文,Wireshark的CaptrueFilter设置为默认方式;

步骤4:

在主机PC1上执行Ping命令向PC2发送数据报;

步骤5:

执行完毕,保存截获的报文并命名为“ARP-1-学号”;

步骤6:

在PC1、PC2两台计算机上再次执行ARP–a命令,查看高速缓存中的ARP地址映射表的内容:

1)这次看到的内容和步骤2的内容相同吗?

结合两次看到的结果,理解ARP高速缓存的作用。

答:

内容结果不相同。

ARP高速缓存是动态的,每当发送一个指定地点的数据报且高速缓存中不存在当前项目时,ARP便会自动添加该项目。

计算机进行路由选择时首先在ARP高速缓存中查找,如果没有找到,再通过广播请求消息来查找。

把这次看到到的高速缓存中的ARP地址映射表写出来或给出截图。

接口IP地址

IP地址InternetAddress

物理地址PhysicalAddress

类型Type

备注

192.168.3.1

00-19-e0-b8-50-f0

动态

228.227.85.113

01-00-5e-63-55-71

静态

231.192.88.42

01-00-5e-40-58-2a

静态

 

步骤7:

重复步骤4—5,将此结果保存为“ARP-2-学号”;

步骤8:

打开arp-1-学号,完成以下各题:

1))在截获的报文中由几个ARP报文?

在以太帧中,ARP协议类型的代码值是什么?

答:

4个,在以太帧中,ARP协议类型的代码值是IP(0x0800)

a)分析arp-1中ARP报文的结构,完成表5.4。

表5.4ARP报文分析

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

源站IP地址

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.3

1.B编程构造IP数据包部分

使用C语言构造IP数据包程序。

1)IPv4基本定长首部结构体定义

structiphdr{

ipverlen;

u_charip_tos;

u_shortip_len;

shortip_id;

shortip_fragoff;

u_charip_ttl;

u_charip_prpto;

shortip_cksum;

IPadderip_src;

IPaddrip_dst;

U_charip_data[1];

}

34};

2)构造IP报文

unsignedchar*Build_IP_Packet(unsignedintd_ip,unsignedints_ip,

unsignedcharproto_type,constunsignedchar*buf,intlen,

unsignedchar*ippacket,int*iplen)

{{*iplen=sizeof(structiphdr)+len;

Unsignedchar*dbuf=ippacket+sizeof(strctiphdr);

Strctiphdr*iph=(strctpihdr*)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(unsignedshort*)ippacketsizeof(strctiphdr);

returnippacket;

}

3)IP校验和计算

//TCPIP协议中的校验和计算

unsignedshortchecksum(unsignedshort*ptr,intnbytes)

{unsignedlongcksum=0;

while(nbytes>1){

cksum+=*ptr++;

nbytes-=sizeof(USHORT);

}

if(nbytes){

cksum+=*(UCHAR*)ptr;

}//将32位数转换成16

while(cksum>>16)

cksum=(cksum>>16)+(cksum&0xffff);

return(USHORT)(*cksum);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2