arp協定在TCP/IP模型中屬於IP層(網路層),在OSI模型中屬於連結層。 arp是位址解析協議,是根據IP位址取得實體位址的一個TCP/IP協議,用於將電腦的網路位址(IP位址32位元)轉換為實體位址(MAC位址48位元);ARP協定是屬於鏈路層的協議,在乙太網路中的資料幀從一個主機到達網內的另一台主機是根據48位元的乙太網路位址來決定介面的。
本教學操作環境:windows7系統、Dell G3電腦。
arp是什麼協定?在哪一層?
arp協議,也稱為位址解析協議,是根據IP位址取得實體位址的一個TCP/IP協定。它可以解決同一個區域網路內主機或路由器的IP位址和MAC位址的對應問題。 arp協定在TCP/IP模型中屬於IP層(網路層),在OSI模型中屬於連結層。
在區域網路中,網路中實際傳輸的是“幀”,幀裡面是有目標主機的MAC位址的。在乙太網路中,一個主機要和另一個主機進行直接通信,必須知道目標主機的MAC位址。但這個目標MAC位址是如何取得的呢?它就是透過位址解析協定獲得的。所謂「位址解析」就是主機在傳送訊框前將目標IP位址轉換成目標MAC位址的過程。 ARP協定的基本功能就是透過目標設備的IP位址,查詢目標設備的MAC位址,以確保通訊的順利進行。
ARP(AddressResolutionProtocol)位址解析協定用於將電腦的網路位址(IP位址32位元)轉換為實體位址(MAC位址48位元)[RFC826]。 ARP協定是屬於連結層的協定,在乙太網路中的資料幀從一個主機到達網內的另一台主機是根據48位元的乙太網路位址(硬體位址)來決定介面的,而不是根據32位的IP位址。核心(如驅動)必須知道目的端的硬體位址才能傳送資料。當然,點對點的連線是不需要ARP協定的。
arp協定的功能
#使用arp協議,可根據網路層IP資料包頭中的IP位址資訊解析出目標硬體位址(MAC位址)訊息,以確保通訊的順利進行。
OSI模型把網路工作分成七層,IP位址在OSI模型的第三層,MAC位址在第二層,彼此不直接處理。透過乙太網路傳送IP封包時,需要先封裝第三層(32位元IP位址)、第二層(48位元MAC位址)的封包頭,但由於傳送時只知道目標IP位址,不知道其MAC位址,又不能跨第二、三層,所以需要使用位址解析協定。使用位址解析協議,可根據網路層IP資料包包頭中的IP位址資訊解析出目標硬體位址(MAC位址)訊息,以確保通訊的順利進行。
ARP協定範例
為了解釋ARP協定的作用,就必須理解資料在網路上的傳輸過程。這裡舉一個簡單的PING例子。
假設我們的電腦IP位址是192.168.1.1,要執行這個指令:ping192.168.1.2。該指令會透過ICMP協定發送ICMP封包。
這個過程需要經過下面的步驟:
1、應用程式建構資料包,此範例是產生ICMP包,提交給核心(網路驅動程式);
# 2、核心檢查是否能夠轉換該IP位址為MAC位址,也就是在本機的ARP快取中查看IP-MAC對應表;
3、如果存在該IP-MAC對應關係,那麼跳到步驟9;如果不存在該IP-MAC對應關係,那麼接續下面的步驟;
4、核心進行ARP廣播,目的地的MAC位址是FF-FF-FF-FF-FF-FF, ARP指令類型為REQUEST(1),包含有自己的MAC位址;
5、當192.168.1.2主機接收到該ARP請求後,就會傳送一個ARP的REPLY(2)指令,其中包含自己的MAC位址;
6、本地取得192.168.1.2主機的IP-MAC位址對應關係,並儲存到ARP快取中;
7、核心將把IP轉換為MAC位址,然後封裝在乙太網路頭結構中,再把資料送出去;
使用arp-a指令就可以查看本地的ARP快取內容,所以,執行一個本地的PING指令後,ARP快取就會存在一個目的IP的記錄了。當然,如果你的封包是傳送到不同網段的目的地,那就一定存在一條網關的IP-MAC位址對應的記錄。
知道了ARP協議的作用,就能夠很清楚地知道,封包的向外傳輸很依賴ARP協議,當然,也就是依賴ARP快取。要知道,ARP協定的所有操作都是核心自動完成的,同其他的應用程式沒有任何關係。同時要注意的是,ARP協定只使用於本網路。
擴展知識:ARP欺騙(安全隱患)
arp協定是建立在網路中各個主機互信的基礎上的,網路上的主機可以自主發送ARP應答訊息,其他主機收到應答封包時不會偵測該封包的真實性就會將其記入本機ARP快取;由此攻擊者就可以向某一主機發送偽ARP應答報文,使其發送的訊息無法到達預期的主機或到達錯誤的主機,這就構成了一個ARP欺騙。
ARP欺騙可以導致目標電腦與網關通訊失敗,更會導致通訊重定向,所有的資料都會通過攻擊者的機器,因此存在極大的安全隱患。
如何防禦?
● 不要把網路安全信任關係建立在IP基礎上或MAC基礎上(RARP同樣存在欺騙的問題),理想的關係應該建立在IP MAC基礎上。
● 設定靜態的MAC-->IP對應表,不要讓主機重新整理設定好的轉換錶。
● 除非有必要,否則停止使用ARP,將ARP做為永久條目保存在對應表中。
● 使用ARP伺服器。透過此伺服器尋找自己的ARP轉換表來回應其他機器的ARP廣播。確保這台ARP伺服器不被駭。
● 使用「proxy」代理IP的傳輸。
● 使用硬體屏蔽主機。設定好路由,確保IP位址能到達合法的路徑(靜態設定路由ARP條目),注意,使用交換集線器和橋接器無法阻止ARP欺騙。
● 管理員定期用回應的IP包中獲得一個RARP請求,然後檢查ARP回應的真實性。
● 管理員定期輪詢,檢查主機上的ARP快取。
● 使用防火牆連續監控網路。注意有使用SNMP的情況下,ARP的欺騙有可能導致陷阱包遺失。 [6]
● 若感染ARP病毒,可透過清空ARP快取、指定ARP對應關係、新增路由資訊、使用防毒軟體等方式解決。
更多相關知識,請造訪常見問題欄位!
以上是arp協定在哪一層的詳細內容。更多資訊請關注PHP中文網其他相關文章!