ICMP协议
Internet控制消息协议ICMP(Internet Control Message Protocol)是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制信息,并对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。使用基于ICMP的应用时,需要对ICMP的工作原理非常熟悉。
作用:传递差错、控制、查询等信息。
ICMP重定向
如图所示:
- 主机A希望发送报文到服务器A,于是根据配置的默认网关地址向网关RTB发送报文。
- 网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备RTA,因为此转发路径是更优的路径,所以RTB会向主机发送一个Redirect消息,通知主机直接向另一个网关RTA发送该报文
- 主机收到Redirect消息后,会向RTA发送报文,然后RTA会将该报文再转发给服务器A
ICMP差错检测
ICMP Echo Request和ICMP Echo Reply消息常用于诊断源和目的地之间的网络连通性
ICMP错误报告
当网络设备无法访问目标网络时,会自动发送ICMP目的不可达报文到发送端设备。
ICMP应用-Ping
ping命令回复的内容:
- 字节:bytes=32表示测试中发送的数据包大小是32个字节.
- 时间:time=238ms表示与对方主机往返一次所用的时间time=238ms.
- TTL值:对应的操作系统。
TTL值 | 对应操作系统 |
---|---|
32 | Windows系列 |
64 | Linux |
128 | Win2000/NT |
255 | Unix |
消息类型
网络不可达(Network Unreachable) |
---|
主机不可达(Host Unreachable) |
协议不可达(Protocol Unreachable) |
端口不可达(Port Unreachable) |
重定向(Redirect for network) |
常用命令:
ping IP/域名
ping IP/域名 -t #不间断向目标IP发送数据包,直到我们强迫其停止。
ICMP应用-Tracert
Tracert显示数据包在网络传输过程中所经过的每一跳。
常用命令:
tracert IP/域名
Tracert显示数据包在网络传输过程中所经过的每一跳。
常用命令:
tracert IP/域名