华为HCIE R&S笔记-09以太网技术ICMP

ICMP:
Internet控制报文协议ICMP(Internet Control Message Protocol)是网络层一个重要协议,ICMP协议号为1,ICMP协议用来在网络设备间传递各种差错和控制信息,它对手机各种网络信息、诊断和排除各种网络故障具有至关重的作用。ICMP直接在三层上携带信息,没有四层协议端口号。

  1. ICMP重定向:
    ICMP重定向,由路由器产生,主机处理,当一个数据从端口接收到数据,查看路由表,如果再将数据从接收端口发送出去,会触发ICMP重定向。只针对某些网络去重定向,为控制信息,用来控制主机访问方向。
    华为HCIE R&S笔记-09以太网技术ICMP_第1张图片

如图所示:主机A想要访问服务器A,他的默认网关为RTB,于是发送ICMP报文给RTB,但是服务器A位于RTA上(路由协议获取服务器A的位置),于是RTB发送ICMP重定向给主机A,告诉主机A访问服务器A将数据包送往RTA。
2. ICMP差错检测:
用来检测网络连通性,命令为 PING
差错信息分为两种:①ICMP Echo Request
②ICMP Echo Reply
(1)ICMP差错报文:
华为HCIE R&S笔记-09以太网技术ICMP_第2张图片

① Type:7bit,用来标示此ICMP的协议类型,例如为Request、Reply
② Code:7bit,编码,与Type相对应,同一种Type可能有多种描述信息
③ Checksum:16bit,校验和,用来校验ICMP数据包的完整性
类型 编码 描述
0 0 Echo Reply
3 0 网络不可达
3 1 主机不可达
3 2 协议不可达
3 3 端口不可达
5 0 重定向
8 0 Echo Request

(2)Ping原理:
华为HCIE R&S笔记-09以太网技术ICMP_第3张图片

主机A想要检测与服务器A是否连通,发送ICMP Echo Request报文给服务器A,如果服务器A收到主机A发送过来的ICMP Echo Request请求报文,会回复ICMP Echo Reply报文回复给主机A。
Ping命令选项:
-a 将目标的机器标识转换为ip地址
-t 若使用者不人为中断会不断的ping下去
-n 要求ping命令连续发送数据包,直到发出并接收到count个请求
在ping后加-l 和你行为的包的大小,例如: ping 127.0.0.1 -l 6400(ping包最大不能超出65500Byte,)
(3)ICMP错误报告:
华为HCIE R&S笔记-09以太网技术ICMP_第4张图片

当网络设备无法访问目标时,会自动发送ICMP目的不可达报文到发送端设备。
3.Tracert:
探测命令,用来查看去往目的地所走的路径。
Tracert是Windows下常用的命令行工具(基于ICMP协议),UNIX下与之对应的是traceroute(基于UDP协议)。
华为HCIE R&S笔记-09以太网技术ICMP_第5张图片

Tracert-UDP原理:
① 主机A发送一个UDP报文(端口号非常大),TTl值为1(默认发送三次),传递到RTA时TTL为0,RTA丢弃UDP报文,回复给主机A一个ICMP timer的超时报文,此时主机A得到了第一跳RTA的IP地址
② 主机A继续发送UDP报文(端口号非常大),TTl值为2(默认发送三次),传递到RTB时TTL为0,RTB丢弃UDP报文,回复给主机A一个ICMP timer的超时报文,此时主机A得到了第二跳RTA的IP地址
③ 以此类推,直到主机A发送UDP报文(端口号非常大),TTL值为4(默认发送三次),传递到主机B时,此时主机B发送目的地址为自己,查找端口号,由于端口号非常之大,此时主机B并没有使用该端口号,于是回复一个端口号不可达信息该主机A,主机A收到此报文表示已经到达目的地。
华为HCIE R&S笔记-09以太网技术ICMP_第6张图片

Tracert-ICMP协议原理:
这种探测方式与基于UDP协议的路由探测的实现步骤一样,但发送端送出的不是一个UDP数据包,而发送的是一个ICMP类型为8的Echo Request(回显请求)数据报文。与基于UDP协议的路由探测技术一样,每次发送端都会把TTL值加1,每个中转路由器都对TTL值减1,如果为0,便丢弃后给发送端发送一个超时报文,若不为0,则继续转发给下一跳。唯一不同的是,当这个数据报到达最终目的节点时,由于发送端发送的是Echo Request报文,所以接收端就会相应一个ICMP类型为0的数据报文。这样,当发送端收到ICMP类型为0的数据报文时,就知道了全部路由已经查询完毕,终止继续探测。

你可能感兴趣的:(华为HCIE-RS,华为)