网络寻址过程详解
今天了解一下arp协议,即ARP(Address Resolution Protocol)。是根据IP地址获取物理地址的一个TCP/IP协议。IP间的通讯一来MAC地址,通讯双方在一个局域网内的情况极少,通常需要多台服务器或网络设备之间的中转才能到达。在中转时会需要下一站中转设备的MAC地址来搜索下一个中转目标。这时就会用到arp协议。
交换机它维护了一张 MAC 地址表,用来反映各端口和 MAC 地址的对应关系,以便做好数据转发工作。下面我们来看一下路由器的工作原理,在路由器中也要维护一张表格,叫做路由条目表,用来反映如何到达某个 IP 地址网段,同时在路由器中也有 ARP 高速缓存,反映了该路由器各直接网段的 IP 地址和 MAC 地址的对应关系
1) 由于 B 的 IP 地址并没有和 A 在一个网段,所以当 A 向 B 发送数据时, A 并不会直接把数据给 B ,而是交给自己的网关,也就是 192.168.0.254 ,所以 A 首先会 ARP 广播请求 192.168.0.254 的 MAC 地址
2) A 得到网关的 MAC 地址后,以它为数据帧的目标 MAC 地址进行封装数据,并发送出去
3) routerA 收到该帧后,检查该帧的目标 IP ,并到自己的路由表查找如何到达该网段(目的IP与各网络的掩码相与:直接较付->特定主机路由->间接交付->默认路由),找到下一跳地址是 routerB 的 s0 端口,于是将数据重新封装,将源地址改为 s0 端口 MAC 地址,目标 MAC 地址改为 routerB 的 s0 端口 MAC 址址,并发送给 routerB
4) 中间路由器传递过程同理
5) 最后一个路由(此例为 routerC )收到该帧,发现目标 IP 就在自己的直连网段,于是查看 ARP 缓存,如果找到该 IP 的 MAC 地址,则以该 MAC 地址封装数据发送出去,如果在 ARP 缓存没找到,则发出 ARP 广播,请求该 IP 的 MAC 地址,得到对应的 MAC 地址后,再发送给主机 B
在以上数据传递过程中,我们发现,数据帧的源 IP 和目标 IP 始终是不变的,而经过每个路由进行重新封装数据时 MAC 地址则在不断的变化,总是以自己的地址作为源 MAC 地址,下一跳的地址作为目标 MAC 地址。