一、两台主机之间的通信解读ARP
首先我们必须明白一点的是,IP地址只在网络及其以上的层有用,在链路层及以下的层是没有用的。TCP/IP协议栈从上层到下层的封装过程中,第三层封装需要知道目的IP,第二层封装需要知道目的MAC(物理地址)。在实际网络的链路上传送数据帧时,最终还必须是硬件地址。说到底IP地址是虚的,两台主机的通信归根结底是要落实到实物上的,所以说,两台主机之间通信光有IP地址是不够的,还需要有物理地址。
首先,我们知道,一台主机可以通过DNS服务知道另一台它想要通信主机的IP,这一步称为域名到IP地址的转换;而ARP所做的事就是通过IP地址得到对应的物理地址,这一步叫做IP地址到物理地址的转换。通过这两部便得到了目的主机的IP地址和物理地址。
其次,每台主机上都会有一个APR高速缓存,里面有所在局域网上的各主机和路由器的IP地址到硬件地址的映射表。当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。
下面所示的这张图有两个局域网LAN1和LAN2,它们的网关分别是路由器1和路由器2,下面阐述两种通信情形。
第一种情况:局域网内的主机通信
主机1-2想和主机1-3通信,通过DNS服务知道了主机1-3的IP地址。主机1-2用子网掩码和主机1