码迷,mamicode.com
首页 > Web开发 > 详细

Internet控制报文协议ICMP协议

时间:2020-08-20 19:04:14      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:mamicode   其他   无法解析   命令参数   情况   image   网关   网络通   初始   

ICMP(Internet Control Message Protocol)Internet控制报文协议。
它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。 控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
ICMP协议属于网络层协议,
ICMP作用:用来在网络设备间传递各种差错和控制信息,它对于收集各种网络信息、诊断和排除各种网络故障具有至关重要的作用
ICMP协议中用到的报文类型:Echo-Request和Echo-Reply 两种报文 使用的都是单播报文
技术图片

ICMP类型:
技术图片
技术图片

Ping 和 Tracert是两个常用网络管理命令。
Ping 作用:用来测试网络可达性
技术图片
ping命令参数(windows)

-t : ping 指定的主机,直到停止。
若要停止,键入 Ctrl+C。
-n count :发送指定的数据包数,默认发送四个。
-l size :指定发送的数据包的大小,默认发送的数据包大小为32byte。
-f : 在数据包中设置“不分段”标记(仅适用于 IPv4)。数据包就不
会被路由上的网关分段。
-i TTL :将"生存时间"字段设置为TTL指定的值。

-r count :记录计数跃点的路由(仅适用于 IPv4),最多记录9个。

-w timeout : 指定超时间隔,单位为毫秒。

-4 :强制使用 IPv4。

-6 : 强制使用 IPv6。

Ping返回信息

1.Request timed out(请求超时)

(1)对方已关机,或者网络上根本没有这个地址

(2)对方与自己不在同一网段内,通过路由也无法找到对方

(3)对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)

(4)错误设置IP地址

2.Destination host Unreachable(对方主机不存在或者没有跟对方建立连接)

(1)对方与自己不在同一网段内,而自己又未设置默认的路由

(2)网线出了故障

这里要说明一下“destination host unreachable”和 “time out”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候会出现“time out”,如果路由表中连到达目标的路由都没有,那就会出现“destination host unreachable”
3.Bad IP address
这个信息表示可能没有连接到DNS服务器,所以无法解析这个IP地址,也可能是IP地址不存在

Tracert 作用:路由跟踪程序,用来显示到达目的主机的路径。

TRACERT常用的配置参数如下:
-a (source-ip-address)参数
指定tracert报文的源地址。

-f (first-ttl)参数
指定初始TTL。缺省值是1。

-m (max-ttl)参数
指定最大TTL。缺省值是30。

-name参数
使能显示每一跳的主机名。

-p (port)参数
指定目的主机的UDP端口号。

TRACERT原理:
第一步:发送一个UDP报文,TTL值为1
RTA向目的端主机B发送一个UDP报文,TTL值为1,目的UDP端口号是大于30000的一个数,因为在大多数情况下,大于30000的UDP端口号是任何一个应用程序都不可能使用的端口号
第一跳(RTB)收到源端发出的UDP报文后,判断出报文的目的IP地址不是本机IP地址,将TTL值减1后,判断出TTL值等于0,则丢弃报文并向源端发送一个ICMP超时(Time Exceeded)报文(该报文中含有第一跳的IP地址10.0.0.2),这样源端就得到了RTB的地址

第二步:发送一个UDP报文,TTL值为2
源端收到RTB的ICMP超时报文后,再次向目的端发送一个UDP报文,TTL值为2。
第二跳(RTC)收到源端发出的UDP报文后,回应一个ICMP超时报文,这样源端就得到了RTC的地址(20.0.0.2)

第N步:发送一个UDP报文,TTL值为N
以上过程不断进行,直到目的端收到源端发送的UDP报文后,判断出目的IP地址是本机IP地址,则处理此报文。根据报文中的目的UDP端口号寻找占用此端口号的上层协议,因目的端没有应用程序使用该UDP端口号,则向源端返回一个ICMP端口不可达(Destination Unreachable)报文。
源端收到ICMP端口不可达报文后,判断出UDP报文已经到达目的端,则停止Tracert程序,从而得到数据报文从源端到目的端所经历的路径(10.0.0.2;20.0.0.2;30.0.0.2)。

Internet控制报文协议ICMP协议

标签:mamicode   其他   无法解析   命令参数   情况   image   网关   网络通   初始   

原文地址:https://blog.51cto.com/14208050/2521273

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!