1. ICMP (Internet Control Message Protocol)是网络层的一个重要协议。
2. ICMP的作用:用来在网络设备间传递各种差错和控制信息,它对于收集各种网络信息,诊断和排除各种网络故障具有重要的作用。
3. ICMP协议中的报文类型:Echo-Request和Echo-Reply两种报文。均使用单播报文。
4. 编码类型
类型type | 编码code | 描述 |
0 | 0 | Echo Reply |
3 | 0 | 目的网络不可达 |
3 | 1 | 目的主机不可达 |
3 | 2 | 协议不可达 |
3 | 3 | TCP/UDP端口不可达 |
5 | 0 | 重定向 |
8 | 0 | Echo Request |
11 | 0 | ICMP TTL超时 |
5. 发生重定向的条件:
1. 同接口进出
2. 满足第二条源和下一跳同网段
3. 路由器RTB发出的重定向报文,即发送请求的主机对应的网络设备。
6. ping命令
检查网络连通性的工具,同时能够收集其他信息。
参数
-a 将地址解析为主机名,指定发送ICMP ECHO-REQUEST报文的源IP地址。如果不指定源IP地址,将采用出接口的IP地址作为ICMP ECHO-REQUEST报文发送的源地址。
-c compartment 路由隔离舱标识符。
-f 在数据包中设置“不分段”标记(仅适用于 IPv4)。
-h (ttl-value)指定TTL的值,缺省值是255。
-i TTL 生存时间。
-j host-list 与主机列表一起使用的松散源路由(仅适用于 IPv4)。
-k host-list 与主机列表一起使用的严格源路由(仅适用于 IPv4)。
-l size 发送缓冲区大小。
-n count 要发送的回显请求数。缺省情况下发送5个ICMP ECHO-REQUEST报文。
-p Ping Hyper-V 网络虚拟化提供程序地址。
-r count 记录计数跃点的路由(仅适用于 IPv4)。
-s count 计数跃点的时间戳(仅适用于 IPv4)。
-R 同样使用路由标头测试反向路由(仅适用于 IPv6)。
根据 RFC 5095,已弃用此路由标头。
如果使用此标头,某些系统可能丢弃
回显请求。
-S srcaddr 要使用的源地址。
-t Ping 指定的主机,直到停止。
若要查看统计信息并继续操作,请键入 Ctrl+Break;
若要停止,请键入 Ctrl+C。
-v TOS 服务类型(仅适用于 IPv4。该设置已被弃用,对 IP 标头中的服务类型字段没有任何影响)。
-w timeout 等待每次回复的超时时间(毫秒)。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
7. tracert命令
检测网络丢包及时延的有效手段,同时可以帮助管理员发现网络中的路由环路。
-d 不将地址解析成主机名。
-h maximum_hops 搜索目标的最大跃点数。
-j host-list 与主机列表一起的松散源路由(仅适用于 IPv4)。
-R 跟踪往返行程路径(仅适用于 IPv6)。
-S srcaddr 要使用的源地址(仅适用于 IPv6)。
-w timeout 等待每个回复的超时时间(以毫秒为单位)。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
8. windows电脑开启及禁止ping命令
按下Win+R,输入【cmd】
开启Ping命令:netsh firewall set icmpsetting 8 enable
禁止ping命令:netsh firewall set icmpsetting 8 disable
上述指令中的“8”代表ICMP协议中的Echo Request命令。