地址解析協議(ARP)
地址解析協議(ARP)是指網絡地址和MAC地址之間的轉換
當一台主機需要向另一台主機發送數據時,需要知道目的主機的ip地址外還需要知道目的主機的mac地址。源主機首先會在自己的ARP表中尋找目的ip對應的mac地址,無法找到則發出一個arp廣播包,目的主機收到廣播包后發送一個響應報文告知源主機自己的mac地址。
交換機對包的處理:
當交換機收到包時,會查找交換機表,其可能遇到三種情況:
- 未找到相應記錄,廣播該包,將該包發送給除源端口外的所有端口
- 找到相應記錄,且對應端口與源端口不同,將該包轉發給相應端口
- 找到相應端口,但相應端口與源端口相同,將該包丟棄
路由器對ARP的處理
路由器會阻斷包括ARP在內的廣播包,也就是說主機無法通過以上的方式獲取目的主機的mac地址。
當兩台主機位於不同子網或網段時,主機之間無法通過交換機通信,這個時候必須借助網關或者路由器。當主機發現訪問的主機位於不同網段時,主機會將包發送給路由器,在通過路由器轉發該包。
上圖中,H1主機發送數據包給H2,在傳輸過程中,目的ip始終為h2的ip,但目的mac地址是下一跳的mac地址。
需要注意的是,圖中沒有注明每個路由器的ip地址,而在實際網絡中,路由器內含有一個交換表注明目的ip與下一跳ip的映射,路由器底層將下一跳的ip進行轉化以獲取下一跳的mac地址。