ping的工作原理
我们判断与对方网络是否畅通,通常使用的是ping命令。
那ping命令的原理有了解吗,在一次面试中,我被面试官以很温柔的语气问出了一道我答不出来的题。
这里需要了解一个协议IP的协议的助手—ICMP协议
ping是基于ICMP协议工作的,全称是 Internet Control Message Protocol,互联网控制报文协议。
那如何体现控制
网络包在复杂的传输环境里,常常会遇到各种问题,所以需要传出消息,报告遇到的问题,这样才可以调整传输策略,以此来控制整个局面。
首先了解一下ICMP的功能
ICMP主要的功能是:确认IP包是否成功到达目标地址、报告发送过程中IP包被废弃的原因和改善网络设置等。
在IP通信中如果某个IP包因为某种原因未能到达目标地址,那么这个具体原因将由ICMP负责通知。
主机A---->路由器1---->路由器2---->主机B(电源关闭)
详细过程:
发送包—路由器2为了知道主机B的MAC地址,而发送ARP包----APR请求 ----再次发送ARP请求(然而主机B已经关机)----再次发送ARP包-----多次发送ARP包无果-----由于始终无法到达主机B,路由器2返回一个ICMP目标不可达的包发给主机A。
主机A 向主机B发送了数据包,由于某种原因,途中的路由器2未能发现主机B的存在,这时,路由器2就会向主机A发送一个ICMP目标不可达数据包,说明发往主机B的包未能成功。