捕获ping和traceroute命令的请求和相应的过程:

捕获ping和traceroute命令的请求和相应的过程:

1.所涉及协议的工作原理;

Ping命令是测试主机到主机之间是否可以通信,如果不能ping到某台主机,表明不能和这台主机建立连接。Ping使用的是ICMP协议,它发送ICMP回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。

首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址“14.215.177.39”一起交给IP层协议(和ICMP一样,实际上是一组后台运行的进程),IP层协议将以地址“14.215.177.39”作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并在一个映射表中查找出IP地址14.215.177.39所对应的物理地址(也叫MAC地址,这是数据链路层协议构建数据链路层的传输单元——帧所必需的),一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。

其中映射表由ARP实现。ARP(Address Resolution Protocol)是地址解析协议,是一种将IP地址转化成物理地址的协议。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。

ICMP协议是通过IP协议发送数据包的,IP协议是一种无连接的,不可靠的数据包协议。当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这 也就是为什么说建立在IP层以上的协议是可能做到安全的原因。ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成。而前 16bit就组成了ICMP所要传递的信息。

尽管在大多数情况下,错误的包传送应该给出ICMP报文,但是在特殊情况下,是不产生ICMP错误报文的。如下

(1)ICMP差错报文不会产生ICMP差错报文(出IMCP查询报文)(防止IMCP的无限产生和传送)

(2)目的地址是广播地址或多播地址的IP数据报。

(3)作为链路层广播的数据报。

(4)不是IP分片的第一片。

(5)源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地 址或多播地址。

ICMP协议大致分为两类,一种是查询报文,一种是差错报文。其中查询报文有以下几种用途:

(1)ping查询

(2)子网掩码查询(用于无盘工作站在初始化自身的时候初始化子网掩码)

(3)时间戳查询(可以用来同步时间)

Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。首先,tracert送出一个TTL是1的IP 数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL减1。此时,TTL变为0,所以该路由器会将此数据包丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),tracert 收到这个消息后,便知道这个路由器存在于这个路径上,接着tracert 再送出另一个TTL是2 的数据包,发现第2 个路由器… tracert 每次将送出的数据包的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个数据包 抵达目的地。当数据包到达目的地后,该主机则不会送回ICMP time exceeded消息,一旦到达目的地,由于tracert通过UDP数据包向不常见端口(30000以上)发送数据包,因此会收到「ICMP port unreachable」消息,故可判断到达目的地。

tracert 有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,Tracert给TTL记数器加1,继续进行。

2.实验设计思路和实验过程;

(1)ping命令实验设计

首先打开wireshark抓包软件进行抓包,然后打开命令行ping域名为www.baidu.com

在wireshark软件中过滤器中输入ICMP。对抓到的ICMP包进行分析。

(2)首先打开wireshark抓包软件进行抓包,然后通过打开命令行输入tracert www.baidu.com

在wireshark过滤器输入ICMP。对抓到的ICMP报文进行分析。

3.实验结果展示及分析,可截图给出捕获的数据包序列,并分析每种数据包的详情。

(1)ping命令请求和响应过程截图及其分析

ping www.baidu.com如下图所示:

在这里插入图片描述

抓的ICMP包如下图,通过过滤器过滤的ICMP包:

ICMP报文的种类有两种,一种是差错报告报文,另一种是ICMP询问报文。
在这里插入图片描述

Source:源IP地址192.168.1.154

Destination:目的IP地址14.215.177.39

请求报文截图:ICMP报文的具体格式:icmp报文封装在ip数据包中。而ip数据包本身放在帧的数据区中通过物理网络传递。为标识ICMP报文,封装该类报文的IP数据包首部协议子段需设置为1。

每个ICMP报文的开头都包含三个字段,1字节的类型(type)字段,1字节的代码(code)字段和2字节的检验和(checksum)字段。代码字段提供了有关报文类型更为细致的信息。检验和字段用于保证报文的完整性。
在这里插入图片描述

在这里插入图片描述

Ipv4:网络层协议,源ip地址为192.168.1.154,目的ip地址为14.215.177.39

ICMP:

Type:8表示ping的请求回显。

Checksum:检验和,用于检查数据的错误。

Identification标识和sequence序号用于匹配应答和请求。成对的请求和应答报文使用相同的标识和序号字段。

Response frame:响应帧的序号:12449

Date(32bytes):填充数据,共32字节。

应答报文截图:
在这里插入图片描述

Type:0表示回送应答(ping reply)。

Identification标识和sequence序号用于匹配应答和请求。成对的请求和应答报文使用相同的标识和序号字段。

Checksum(检验和):用来保证ICMP数据的头部和数据部分的完整。

Request frame:请求帧序号12415

Response time:响应时间35ms

(2)traceroute命令实验截图及其分析

tracert www.baidu.com过程中可以看到是逐个发送,每次发送的是三个,通过tracert也可以知道从源到目的端口的网络瓶颈在哪里。部分显示*的原因大概率是路由器设置了不处理traceroute报文所致。如下图所示:通过最多30个跃点跟踪到baidu.com(14.215.177.38)的路由。
在这里插入图片描述

当TTL=0时,返回一个超时报文。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

​ 当一台计算机发送IP数据包时,会为数据包设置存活时间(TTL)值。每当数据包经过一个路由器,其存活时间值就会减 1。当存活时间减到 0 时,路由器将不再转发数据包,而是发送一个 ICMP TTL 数据包给最初发出数据包的计算机。Traceroute 程序首先向目标主机发出 TTL 为 1 的数据包,发送数据包的计算机与目标主机之间的路径中的第一个路由器,在转发数据包时将数据包的 TTL 减 1,它发现 TTL 被减为了 0,于是向最初发出数据包的计算机发送一个 ICMP TTL 数据包,Traceroute 程序以此获得了与目标主机之间的路径上的第一个路由器的IP地址。后面 traceroute 程序依次向目标主机发送 TTL 为 2、3、4 . . . 的数据包,逐个探测出来与目标主机之间的路径上每一个路由器的 IP 地址。主机发送的第一个包的TTL为1,并在随后的每次发送中将TTL值加1。ICMP中的type11表示的是超时报文。在超时报文中TTL的值只剩下1。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值