局域網中處於同一網段中的主機通信
假如:主機 A 要和主機 B 通信,主機 A 知道主機 B 的IP地址。知道IP地址是通信的前提。首先,要通進行通信,IP地址和MAC地址是必不可少的,IP地址已經知道了,那么主機 A 必須要知道主機 B 的MAC地址,先在ARP表中查看有無該IP地址,如果有,就找出對應的硬件MAC地址,如果沒有,主機 A 廣播發送ARP請求來獲取目的MAC地址,說 who is 192.168.1.102 ?

不同網段間主機通信
這里的不同網段,指的是不在同一子網下。
假如:主機 A 要和主機 D 進行通信,那么同樣的,主機 A 如果廣播發送 ARP 請求,詢問192.168.1.22在哪里,很顯然,主機 A 和主機 D 不在同一個網段內,路由器默認不轉發廣播報文,那么主機 D 就收不到 ARP 請求,也就無法回應主機 A,主機 A 也就無從獲取主機 D 的MAC地址。

其實,主機 A 會首先檢查目的IP地址是否與自己在同一網段,如果在,就直接廣播ARP請求來獲取目的主機的MAC地址,如果不在同一網段,又配置有網關地址的話,那么主機 A 就通過 ARP 請求,詢問192.168.0.1(網關)在哪里,網關收到后就會回應主機 A ,把網關的MAC地址告訴主機 A ,當獲取到網關的MAC地址后,把網關的MAC地址作為MAC幀中的目的MAC地址,然后就把數據丟給網關 192.168.0.1 ,網關根據路由表,轉發給下一個路由器,再由下一個路由器交付給主機 D 所在的網絡,即網關,網關再通過ARP,找到目的主機 D ,完成數據交付。
