Ping的整个过程。ICMP报文是什么

本文详细介绍了ICMP协议在网络层的作用以及Ping命令的具体工作流程,包括如何通过ICMP发送请求与响应,以及ARP解析过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了提高IP数据报交付成功机会,在网络层使用过了网际控制报文协议(ICMP)来允许主机或路由器报告差错和异常情况。ICMP报文作为IP层数据报的数据,加上数据报首部,组成IP数据报发出去。ICMP协议是IP层协议。

假设有两台主机`PC1`和`PC2`,如下:

​```
         PC1------------PC2     
         IP:192.168.1.1      IP:192.168.1.2
​```

`Ping`的过程如下:
> - `PC1`在应用层发起个目标`IP`为`192.168.1.2`的`Ping`请求。
> - 直接使用网际层的`ICMP`协议,不经过传输层。
> - 网际层接收来处上层的数据后,根据`ICMP`协议进行封装,添加`PC1`的`IP`为源`IP`和`PC2`的`IP`为目标`IP`后封装成数据包。下传到网络接口层。
> - 网络接口层接收数据包后,进行封装,源`MAC`地址为`PC1`的`MAC`地址,目标`MAC`地址则查询自己的`ARP`缓存表获取。如果`PC1`的`ARP`缓存表中没有目标`IP`对应的`MAC`地址,则`PC1`发出一个`ARP`广播报文。`ARP`报文中源`MAC`地址为`PC1`的`MAC`地址,源`IP`地址为`PC1`的`IP`,所要请求的是`PC2`的`IP`对应的`MAC`地址。
> - `PC2`收到`ARP`广播后,进行解封装,发现所请求的`MAC`地址是自己的。则`PC2`将`PC1`的`MAC`地址写入`ARP`缓存表中。然后向`PC1`发送一个 `ARP`应答单播。该单播消息包括目标`IP`为`PC1`的`IP`,目标`MAC`为`PC1`的`MAC`地址,源`IP`为`PC2`的`IP`,源`MAC`为`PC2`的`MAC`。
> - `PC1`接收到`PC2`的`ARP`应答报文后,将`PC2`的`MAC`地址存入`ARP`缓存中,并将`PC2`的`MAC`地址作为目标地址封装到数据帧中。发给下层进行网络传输。
> - `PC2`接收这个帧后,在网络接口层查看目标`MAC`地址是否指向自己。是,`PC2`则将帧头去掉,向上层传输。
> - `PC2`网际层接收到这个信息包,查看包头,发现目标`IP`和自己匹配,则解封装,将数据向上层传输。
> - 传输层接收来自下层的`Ping`请求的`UDP`报文,则去掉`UDP`报头,向应用层传送。
> - 应用层收到`Ping`请求后,发送一个`Ping`回应报文给`PC1`。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值