第5次实验:ICMP

目的:
要看ICMP(互联网控制信息协议)是如何使用的。ICMP是IP的一个配套协议,通过处理各种错误和测试情况,帮助IP执行其功能。通过处理各种错误和测试情况来帮助IP执行其功能。它在第5.6.4节中有介绍。文中有涉及。在做这个实验之前,先复习一下这一部分。
环境:
WireShark;tracert;ping

实验报告正文

实验过程

ping命令测试

ping baidu.com

请添加图片描述

tracetr追踪

tracert baidu.com

请添加图片描述

WireShark开始捕获

使用icmp过滤,同时开启Resolve network names,重复上述1、2步骤,结果如下

请添加图片描述

各字段描述如下:

请添加图片描述

Type表示消息类型,request为8,reply为0;Checksum为校验和表示校验码;Sequence Number用于链接数据报,连续的request和reply包会增加1;Data为数据部分,长度可变

查看TTL超时的包

WireShark中用黑色标识

请添加图片描述

TTL超时包的结构图

TypeCodeChecksumUnusedIPICMP
1 Byte1 Byte2 Byte4 Byte20 Byte8 Byte

IP结构参见实验4

实验结果

ICMP 回显请求和回显应答数据包的 Type/Code 值分别是什么

请求包Type/Code为0x0800;应答包为0x0000

如何比较一个回显请求的标识符和序列号和对应的回声回复

一个请求包对应的应答包的Seq相同

Identifier 和 Sequence Number 如何比较连续的 echo request 数据包

连续的请求应答包在Sequence Number会增加1

echo reply中的数据和echo request中的数据是一样的还是不同的

相同

ICMP TTL超出数据报的类型/代码值

Type: 11 (Time-to-live exceeded)

说明如果接收者不提前知道期 ICMP 消息的结构,如何安全地找到并处理所有 ICMP 字段。

ICMP在沟通之中,主要是透过不同的类别(Type)与代码(Code)让机器来识别不同的连线状况,从而对应不同的ICMP消息格式。

超时数据包的ICMP头长度

请添加图片描述

如图所示,8Byte

ICMP 有效载荷包含一个 IP 报头。 此标头中的 TTL 值是多少

请添加图片描述

TTL=1。数据包每经过一个路由器TTL将会减1,当TTL为0时将丢弃这个包。所以此时TTL=1的包经过处理后TTl将变为0,路由器将会丢弃此IP包并向IP包的发送者发送 ICMP time exceeded消息。

计算机(源)如何从一个TTL超出的数据包中学习沿路径的路由器的IP地址

TTL超时包的负载部分的IP报头里面有两端的路由器IP地址。

  1. 从源地址发出一个ICMP请求回显(ICMP Echo Request)数据包到目的地址,并将TTL设置为1;
  2. 到达路由器时,将TTL减1;
  3. 当TTL变为0时,包被丢弃,路由器向源地址发回一个ICMP超时通知(ICMP Time Exceeded Message),内含发送IP包的源地址,IP包的所有内容及路由器的IP地址;
  4. 当源地址收到该ICMP包时,显示这一跳路由信息;
  5. 重复1~5,并每次设置TTL加1;
  6. 直至目标地址收到探测数据包,并返回ICMP回应答复(ICMP Echo Reply);
  7. 当源地址收到ICMP Echo Reply包时停止tracert

沿着traceroute探测的路径,每个路由器要探测多少次

Traceroute每跳默认发送3个探测包。

计算机(源)是如何发送一个请求包来寻找(通过触发TTL超时响应)路由器N沿着路径跳转到目的地的

请添加图片描述
请添加图片描述
请添加图片描述

如图,源地址172.23.151.28向目的地址39.156.66.10发送ICMP请求回显(ICMP Echo Request)数据包,每跳默认发送3个,TTL设置为1;数据包遇到路由器之后,被丢弃,返回Time tolive exceeded超时通知,解析出路由器IP地址172.19.251.13。源地址再发数据包,设置TTL=2,从而解析出第二跳路由172.16.201.66。同理,解析出后续路由ip。

实验反思

通过本次实验,我深入了解了ICMP(互联网控制信息协议)的使用方法。ICMP作为IP的一个配套协议,在处理错误和测试情况时起到了重要的作用,帮助IP执行其功能。在实验过程中,我使用了ping命令测试和tracert命令追踪,并使用WireShark进行捕获和分析。通过分析捕获的数据包,我了解了ICMP数据包的结构和各字段的含义,包括Type、Code、Checksum、Sequence Number和Data等。我还学会了如何比较回显请求的标识符和序列号以及对应的回声回复,以及如何比较连续的echo request数据包。此外,我还了解了ICMP TTL超出数据报的类型/代码值和超时数据包的ICMP头长度,以及如何安全地处理所有ICMP字段。最后,我学会了通过TTL超时数据包来学习沿路径的路由器的IP地址,并了解了traceroute探测的路径和每个路由器要探测的次数。通过本次实验,我加深了对ICMP协议的理解,提高了实验操作和数据分析的能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值