1. 程式人生 > 其它 >1、小永哥協議分析之ARP協議

1、小永哥協議分析之ARP協議

技術標籤:計算機網路之協議分析之路

什麼是ARP協議?

ARP :地址解析協議,即將ip地址轉換成對應的MAC地址,此外,器對裡的協議為RARP:反向地址接卸協議,即將MAC地址轉換成ip地址

為什麼要使用ARP協議

在弄清問題之前,我首先看看OSI模型,他將網路工作分為7層我們實際上只有四層各層之間不是直接訪問,而是通過介面傳遞資訊,其中ip地址在網路層,MAC地址在資料鏈路層,協議在傳送資料包時,首先要封裝網路層與鏈路層的報頭但協議協議只知道目的的Ip地址,不知道器實體地址,又不能跨越第二、層,因此引入ARP協議。

APR協議工作原理(區域網)

當主機A向主機B中傳送IP資料報時,會現在ARP快取表中檢視是否有主機B的ip地址,若有,就在ARP快取記憶體中查出對應的MAC地址,將MAC地址寫入MAC幀,然後通過區域網將MAC幀發往硬體地址。

如果查詢不到主機B的IP地址,具體會做以下幾件事:
1、ARP程序在本區域網廣播一個ARP請求分組
2、本區域網的所有主機上方隕星的ARP程序都會收到此ARP請求分組
3、主機B的ip地址與ARP請求的一致,就收下這個ARP請求,並向主機A傳送ARP相應分組,並在這個相應分組中寫入自己的硬體地址。其他主機會丟棄這個ARP請求
4、主機A收到主機B的ARP響應後,就在其ARP快取記憶體中寫入主機B的IP地址到硬體地址的對映。
在這裡插入圖片描述
上述就是APR常見案例包

ARP的通訊原理(非區域網)

⒈首先HostA會在區域網A中傳送ARP請求廣播,發現區域網A中未有主機應答。

⒉找到與區域網A上的一個路由器Route的硬體地址。

⒊傳送方此時為路由器,把IP資料報轉發到與Route相連的另一個網路,在區域網B內進行廣播。

⒋HostB發現ARP請求報後,進行應答,將自己的在這裡插入程式碼片硬體地址通過路由器傳送給HostA
獲取區域網內的MAC地址

#!/bin/bash 
net='192.168.119.'   #當前區域網的網路號
i=1                  #表示主機號
count=0
while [ $i -le 254 ]  #主機號1-254
do
    if [ $count -eq 20 ];then   #每 ping 20個ip,sleep 1秒
	    count=0
            sleep
1 fi ping -c1 $net$i & #後臺執行 let i++ let count++ done wait echo '###################################################################' arp | grep -v 'incomplete' #過濾不含有incomplete的內容 echo '###################################################################'