网络协议之网络探测协议ICMP及其应用ping,traceroute

写在前面

我们知道,网络环境本身是非常不稳定的,那么当出现问题时,有没有一种标准的协议来处理类似的问题呢?答案是肯定的,这个协议就是ICMP,全称,Internet control message protocol,互联网控制报文协议。当然有了协议还不够,就像是写代码的时候只定义接口是不够的,还要定义具体的实现类。对于ICMP协议我所知的实现类,即具体应用有ping,traceroute。

1:正文

首先ICMP协议是属于网络层的协议,封装在IP数据包里,格式如下:
在这里插入图片描述
报文主要分为两种类型。查询报文类型和差错报文类型,其中查询报文类型就是简单的主动请求和主动应答,而ping使用的就是这种报文,这点我们可以通过抓包来进行验证。
对于差错报文类型,其具体的应用是traceroute,traceroute会故意模拟错误,比如从1开始设置ttl值从而获取到到目标主机都经过了哪些路由,如下:

# traceroute www.google.com
traceroute: Warning: www.google.com has multiple addresses; using 66.249.89.99
traceroute to www.l.google.com (66.249.89.99), 30 hops max, 38 byte packets
1 192.168.0.1 (192.168.0.1) 0.653 ms 0.846 ms 0.200 ms
2 118.250.4.1 (118.250.4.1) 36.610 ms 58.438 ms 55.146 ms
3 222.247.28.177 (222.247.28.177) 54.809 ms 39.879 ms 19.186 ms
4 61.187.255.253 (61.187.255.253) 18.033 ms 49.699 ms 72.147 ms
5 61.137.2.177 (61.137.2.177) 32.912 ms 72.947 ms 41.809 ms
6 202.97.46.5 (202.97.46.5) 60.436 ms 25.527 ms 40.023 ms

traceroute还可以故意设置不分片来探测中间路由的分组大小,如果遇到较小的路由分组大小,则会收到需要进行分片但设置了不分片位”的差错回复,直到获取一个最大的可以不需要分片就能到达目标主机的分组大小,从而提高数据包传输效率。

写在后面

参考文章列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值