赞
踩
为了提高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`。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。