我们以一个网络为例,有A、B、C、D四台机器,一台路由RA,子网掩码均为255.255.255.0,默认路由为192.168.0.1.
1、在同一网段内
在主机A 上运行ping 192.168.0.5
后,都发生了什么呢?
-
- 首先,ping命令会构建一个固定格式的ICMP请求数据包;
-
- 由ICMP协议将这个数据包连同地址
192.168.0.5
一起交给IP层协议;
- 由ICMP协议将这个数据包连同地址
-
- IP层协议将以地址
192.168.0.5
作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并想办法得到192.168.0.5
的MAC地址,以便交给数据链路层构建一个数据帧。关键就在这里,IP层协议通过机器B的IP地址和自己的子网掩码,发现它和自己属于同一网络,就直接在本网络内查找这台机器的MAC,如果以前两机有过通信,在A 机的ARP缓存表应该有B机IP与其MAC的映射关系,如果没有,就发一个ARP请求广播,得到B机的MAC,一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。
- IP层协议将以地址
-
- 主机B收到这个数据帧后,先检查它的目的地