ICMP详解

ICMP简介

ICMP的全称是Internet Control Message Protocol。也就是网络控制报文协议。

ICMP是一个网络层协议。用来检测IP报文是否能够正常发送,以及出错原因,以及查询主机的信息。

也就是差错查询和信息查询。

我们经常使用的ping工具就是利用ICMP实现的。

ICMP详解

在这里插入图片描述

ICMP报文
在这里插入图片描述

在IP Header中有一个字段代表是否为ICMP包。

ICMP数据中 主要包括 以下字段:

1、Type
ICMP数据包的类别

2、Code
对Type的进一步说明

3、标识符
唯一表示一个会话

4、选项数据
用来携带查询的信息。

差错控制

1、主机可达
发送一个type = 8,code = 0的ICMP Request包,表示这是一个请求包,如果顺利的到达对应的主机,主机会发送一个type = 0,code = 0的ICMP Reply包。

如果发送方收到Reply包,就说明主机可达。

2、主机不可达
发送一个type = 8,code = 0的ICMP Request包,如果路由器中不存在到达目的IP的路由的时候,会返回一个type = 3,code = 1的ICMP包,表示主机不可达。

当发送方收到包后,发现type = 3, code = 1,说明主机不可达。

3、超时
当一个ICMP包中TTL等于0的时候,路由器会将其抛弃,然后给发送端发送一个ICMP包,对应的type = 11,code = 0。

信息查询

比如ICMP可以查询对应主机的时间戳

发送方发送一个type = 13,code = 0的ICMP请求包,当主机收到后,返回一个type = 14,code = 0的ICMP应答包,将时间戳保存在之前说的选项字段中。

ICMP报文类别

在这里插入图片描述

PING

ping就是利用 ICMP发送请求报文 来探测主机之间是否网络是否通畅

tracert

tracert用来获取主机之间的路由信息。依次发送ttl = 1,2,3…n的ICMP请求包。通过对应的路由器发送超时ICMP包来获取对应的路由信息。

  • 9
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Linux 内核中,与 ICMP 相关的参数主要有以下几个: 1. icmp_echo_ignore_all:该参数控制是否忽略所有 ICMP 回显请求(ping命令)。如果该参数的值为 1,则内核将忽略所有 ICMP 回显请求;如果该参数的值为 0,则内核将响应所有 ICMP 回显请求。该参数的默认值为 0。 2. icmp_echo_ignore_broadcasts:该参数控制是否忽略广播地址的 ICMP 回显请求。如果该参数的值为 1,则内核将忽略广播地址的 ICMP 回显请求;如果该参数的值为 0,则内核将响应广播地址的 ICMP 回显请求。该参数的默认值为 1。 3. icmp_ignore_bogus_error_responses:该参数控制是否忽略针对不存在连接或已经关闭的连接的 ICMP 差错报文。如果该参数的值为 1,则内核将忽略这些 ICMP 差错报文;如果该参数的值为 0,则内核将向发送 ICMP 差错报文的主机发送一个 ICMP 差错报文。该参数的默认值为 0。 4. icmp_ratelimit:该参数控制 ICMP 差错报文的速率限制。如果内核在一秒钟内接收到太多的 ICMP 差错报文,则会将多余的报文丢弃。该参数的默认值为 1000 次/秒。 5. icmp_ratemask:该参数用来设置对某些 ICMP 差错报文进行速率限制。例如,如果想对 ICMP 目标不可达报文进行限制,则可以将 icmp_ratemask 参数的值设置为 0x00000002。默认情况下,该参数的值为 0xFFFFFFFF,表示对所有的 ICMP 差错报文进行限制。 6. icmp_errors_use_inbound_ifaddr:该参数控制 ICMP 差错报文中使用的源 IP 地址。如果该参数的值为 1,则 ICMP 差错报文中使用的源 IP 地址为接收该报文的网络接口的 IP 地址;如果该参数的值为 0,则 ICMP 差错报文中使用的源 IP 地址为发送该报文的网络接口的 IP 地址。该参数的默认值为 0。 需要注意的是,这些参数的修改需要具有 root 权限,可以通过 sysctl 命令进行修改,例如: ``` sysctl -w net.ipv4.icmp_echo_ignore_all=1 ``` 该命令将忽略所有的 ICMP 回显请求。如果需要永久生效,可以将修改写入 /etc/sysctl.conf 文件中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值