作业6:ICMP

ICMP是TCP/IP模型中网络层的重要成员,与IP协议、ARP协议、RARP 协议及 IGMP协议共同构成 TCP/IP模型中的网络层。ping 和 tracert 是两个常用网络管理命令,ping 用来测试网络可达性,tracert用来显示到达目的主机的路径。ping和tracert都利用ICMP 协议来实现网络功能,它们是把网络协议应用到日常网络管理的典型实例。

实验9:ICMP

一、实验目的

分析ICMP

二、实验环境

与因特网连接的计算机,操作系统为Windows,安装有Wireshark、浏览器等软件。

三、实验步骤

Windows下的Ping和Tracert命令依赖于ICMP。ICMP可以看作是IP协议的伴随协议。ICMP报文被封装在IP 数据报发送。

一些ICMP报文会请求信息。例如:在ping中,一个ICMP回应请求报文被发送给远程主机。如果对方主机存在,期望它们返回一个ICMP回应应答报文。

一些ICMP报文在网络层发生错误时发送。例如,有一种ICMP报文类型表示目的不可达。造成不可达的原因很多,ICMP报文试图确定这一问题。例如,可能是主机关及或整个网络连接断开。

有时候,主机本身可能没有问题,但不能发送数据报。例如IP首部有个协议字段,它指明了什么协议应该处理IP数据报中的数据部分。IANA公布了代表协议的数字的列表。例如,如果该字段是6,代表TCP报文段,IP层就会把数据传给TCP层进行处理;如果该字段是1,则代表ICMP报文,IP层会将该数据传给ICMP处理。如果操作系统不支持到达数据报中协议字段的协议号,它将返回一个指明“协议不可达”的ICMP报文。IANA同样公布了ICMP报文类型的清单。

1、ping 和 ICMP

利用Ping程序产生ICMP分组。Ping向因特网中的某个特定主机发送特殊的探测报文并等待表明主机在线的回复。具体做法:

(1)打开Windows命令提示符窗口(CMD),输入arp -d清空arp表。

(2)启动Wireshark,在过滤显示窗口(filter display window)中输入icmp,开始Wireshark 分组俘获。

(3)输入“ping –n 10 任意域名” 。其中“-n 10”指明应返回10条ping信息,默认数据包大小为32字节。

(4)当ping程序终止时,停止Wireshark 分组俘获。

停止分组俘获后,会出现下图所示的界面:

下图是在分组内容窗口中显示了ICMP协议的详细信息。观察这个ICMP分组,可以看出,此ICMP分组的Type 8 and Code 0 即所谓的ICMP “echo request” 分组。

抓包解读

  1. 网络协议:IPV4
  2. IP帧部首长度:20byt
  3. 服务类型:0x00
  4. IP帧总长度:60字节
  5. 协议类型:ICMP(1)
  6. 检验和:0x4d4e
  7. 源地址IP:192.168.1.17
  8. 目标地址IP:182.61.200.7
  1. 查看ping请求分组,ICMP的type 和code是多少?

Type 8 and code 0

  1. 为什么 ICMP 数据包没有源端口号和目的端口号?

ICMP数据包没有源端口号和目的端口号,是因为它是在网络层工作的协议,主要用于网络控制和错误报告,而不是应用程序通信。

  1. 查看任意的响应ICMP数据包,ICMP的type(类型)和code又是多少?该ICMP数据包还有哪些其他字段?校验和,序列号和标识符字段有多少字节?

2、tracert和 ICMP

Traceroute 程序可用于确定数据包从源到目的地的路径,原理是发送 TTL 增加的数据包,当 TTL = 1 的包达到路由器,该路由器会将该包丢弃,并且发送 ICMP 错误给请求的机器。

traceroute 通过首先发送一个或多个带有生存时间 (TTL) 字段设置为 1 的数据报;然后发送一个或多个带有 TTL 字段设置为 2 的数据报到同一个目的地;然后发送一个或多个带有 TTL 字段设置为 3 的数据报到同一个目的地,以此类推,直到目的地真正收到此数据报为止。路由器必须将每个接收到的数据报中的 TTL 减 1,如果 TTL 达到 0,路由器会向来源主机发送 ICMP 消息。由于这种行为,TTL 为 1 的数据报将导致距发送方一次跳跃的路由器,将 ICMP TTL 超出的消息发送回发送方主机;以TTL 为 2 发送的数据报将导致距离为两次跳跃的路由器,将 ICMP 消息发送回发送方主机等等。以这种方式,执行 traceroute 的主机可以通过查看包含ICMP TTL 超出消息的数据报中的来源 IP 地址来获知其自身与目的地之间的路由器的身份。

Tracert的实验步骤

打开命令提示符进行路由跟踪,跟踪任意域名,

CMD > tracert 任意域名

  1. 您的主机的IP地址是多少?目标主机的 IP 地址是多少?

主机ip:192.168.17.1

目标主机ip:104.193.88.123

  1. 检查源主机收到的最后三个 ICMP 数据包。这些数据包与 ICMP 错误数据包有何不同?他们为什么不同?

ICMP错误数据包是指当IP数据包传输过程中发生错误时,由路由器或目标主机返回的ICMP消息。例如,如果一个IP数据包无法到达目标主机,则该主机可能会发送一个ICMP“目标不可达”消息。这种类型的数据包具有不同的类型和代码字段值,以指示特定的错误类型。

相比之下,非错误ICMP数据包是指用于其他目的而不是报告错误的ICMP消息。例如,ICMP回显请求(ping)是一种常见的非错误ICMP消息,用于测试主机之间的可达性。非错误ICMP数据包通常具有不同的类型和代码字段值,以指示其特定的目的。

这两种类型的ICMP数据包之所以不同,是因为它们具有不同的目的和用途。ICMP错误数据包用于报告错误和故障,以便网络管理员可以进行故障排除和修复。非错误ICMP数据包用于其他目的,例如测试网络的可达性、诊断延迟等。

  1. 在 tracert 跟踪测量中,是否有一个连接的延迟比其他连接长得多?是否有连接的延迟明显长于其他连接?以上情况如果存在,能否结合IP地址的查询,解释以上现象。

tracert命令中,它使用了一系列的ICMP回显请求(ping)数据包,每个数据包有不同的TTL(生存时间)值,以便跟踪到目标主机的路径并测量延迟。当一个TTL值的数据包到达路由器时,该路由器将该TTL值减少1,并将数据包发送回源主机。这样,源主机就可以确定到达该路由器所需的时间,并逐步构建整个路径的延迟信息。

如果存在某个连接的延迟比其他连接长得多,或者存在某个连接的延迟明显长于其他连接,这可能意味着该连接所经过的路由器存在问题,例如网络拥塞、路由器故障等。此外,也可能是因为该连接所经过的链路更长、带宽更小、距离更远等原因导致延迟较高。

通过IP地址查询可以进一步解释这种现象。如果延迟较高的连接通过某个特定的路由器或ISP(互联网服务提供商)传输,则可能与该路由器或ISP的性能和拓扑结构有关。如果延迟较高的连接穿过某个地理区域或国家,则可能与该区域或国家的网络基础设施有关。此外,还可能是因为该连接所经过的链路带宽受限,比如某些ISP可能会限制上传和下载速度,导致延迟较高。

推荐一款网络IP数据库及追踪工具Best Trace(点击超链接下载)

官网:https://www.ipip.net/

  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值