数据通信——网络层(ICMP)

ICMP是Internet控制报文协议,用于监测和诊断网络通信问题,如网络连通性、数据发送错误等。ping和tracert是其常见应用,分别用于测试网络可达性和显示数据路径。ICMP的重定向功能在优化路径的同时,也可能带来安全风险,如重定向攻击。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

    我们网上购物后,商家将包裹寄出。一般的,商家的发货地很遥远,快递小哥也无法一天送达,因此需要不停的转运。如果我们想要了解快递现在的情况,我们可以通过手机查询到快递的现状。网络通信也是一样,我怎么知道我的数据是否成功发送了呢?我的网络是否有问题呢?至此,ICMP为我们解决了这个问题。

 

什么是ICMP

    ICMP(Internet控制报文协议):它属于IP协议簇中的一员,这个协议是基于IP协议诞生,却又服务于IP协议。因为这个协议自己并不传输用户数据,他像一个监测者,监测这路由器以及网络层的数据发送情况,所以你可以把它理解成现实社会的督查,当传送数据过程中出现了错误,它会及时发现问题并向我们汇报。

ICMP特点

    它的作用是查看网络是否连通;数据发送过程中有什么问题;网络中的设备是否可以正常使用等。它对于网络安全十分重要!
    IP协议是面向无连接的协议,因此基于它的ICMP也是无连接协议。
    ping和tracert是两个常用网络管理命令,ping和tracert都利用ICMP协议来实现网络功能,它们是把网络协议应用到日常网络管理的典型实例
    ping用来测试网络可达性。我们在测试两个设备是否连通的时候呢,我们会ping一下,这个ping的指令就来源于ICMP协议。ping在这个协议里面称之为因特网探测器。                                               就像我们拨打电话的动作,ping+IP地址,就可以检测对方的电话是否能打通,如果打不通,就证明网络或者设备有问题
    tracert用来显示到达目的主机的路径。当我们无法访问目的设备时,ICMP会将错误的信息(不可达信息)反馈给发送者。ICMP通过Tracert这个功能来判断是否可到达目的设备。                            就像是监控,你给谁发送了什么数据信息,这些信息到过哪里,产生了什么变化,我们通过Tracert就能得知数据信息的流通路径(就好比你等快递时,查看快递到哪里了。)

 

关于Tracert

    Tracert(跟踪路由):基于报头的TTL的跳跃来对报文转发的路径进行跟踪。它是可以帮助我们及时的检测网络丢包和时延的有效工具,还可以让我们及时发现路由环路。

    Tracert在ICMP的使用中,为了到达某一个路径。首先源端会先将报文的TTL设置为1,该报文到达第一个节点后,TTL会被减少1,当TTL超时了,该节点向源端发送超时的icmp信息,信息中带有时间戳,源端收到了这个消息以后得知了第一个路由器的位置已经到达了。然后源端将TTL的值设置为2,报文到达第二个节点后超时,该节点同样向源端发送TTL超时信息,这样就得知了第二个路由器位置已经到达啦,重复以往,直到报文到达目的地址。

    但是到达了目标地址后不会再像之前一样返回ICMP报文了,到达主机后会返还一个ICMP数据报文,这个报文表示已经到达了目的地址,也通知端口不需要再次发送TTL进行后续定位了。这样根据每个节点返回给源端的时间戳,就可以计算出源目地址传输时的往返时间。

 

 ICMP的四个字段

ICMP报文的消息封装在ip报文中,当ip报文的头部Protocol值为1的时候,表示ICMP协议

ICMP协议有四个字段,每个字段表示不一样的状态指令,分别是:

TYPE(消息类型)CODE(该类型具体参数)Checksum(描述)报文内容
00可以应答
30网络不可达
31主机不可达
32协议不可达
33端口不可达
50重定向
80可以请求

就是说,在你对网络检测后,只会答复给你上面的描述,这样你就可以判断网络中哪个部分出现了问题。

ICMP重定向

上面最重要的是重定向,稍微讲一讲。

ICMP可以进行重定向。当路由器发现现路径并非是传输的最优路径时,会立刻向主机进行ICMP重定向的报文请求,请求更改路径。

例如:假设有如下场景

服务器A-----路由器RA------主机-------路由器RB--------服务器B

    主机想要访问服务器A,但是根据配置好的默认路径将报文给了RB,RB检测报文信息时发现和主机同一条路径下的RA可以到达服务器A,因此RA是更好的的路径。随后RB会向主机发送一个Redirect消息,通知主机向RA发送报文。主机收到Redirect消息以后,会向RA发送报文,随后RA再检查报文,最后到达服务器A。

    如果你看懂了上述的描述的话,是不是发现很有问题,如果黑客发送了一个重定向报文,一旦路由器接受了黑客的重定向申请,主机发送的数据流量就会跑到不知名的地方了!这个就是网络安全经典的攻击之一,重定向攻击。

 上图能够清晰反映出黑客通过重定向进行入侵

后续

ICMP最重要的也就是Ping和Tracert了,身为IP协议簇的一部分,使用方面可谓是最多的了,毕竟没事儿就要ping一下。IP协议簇也基本上快告一段落了,网络层越后续的内容越重头。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咕噜跳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值