全球专业中文经管百科,由121,994位网友共同编写而成,共计436,047个条目

地址解析協議

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

地址解析協議(Address Resolution Protocol,簡稱ARP)

目錄

什麼是地址解析協議

  地址解析協議(ARP)為IP地址到對應的硬體地址之間提供動態映射。ARP用於將電腦的網路地址(IP地址32位)轉化為物理地址(MAC地址48位)[RFC826].ARP協議是屬於鏈路層的協議,在乙太網中的數據幀從一個主機到達網內的另一臺主機是根據48位的乙太網地址(硬體地址)來確定介面的,而不是根據32位的IP地址。內核(如驅動)必須知道目的端的硬體地址才能發送數據。當然,點對點的連接是不需要ARP協議的。

ARP的原理[1]

  1.ARP的高速緩存技術

  ARP高效運行的關鍵是每台使用ARP的主機中都有一個ARP高速緩存。ARP在緩存中存放了最近被解釋的IP地址到MAC地址之間的映射記錄,以減少廣播量。由於多數網路通信都要連續發送多個報文,所以高速緩存大大提高了ARP的效率。ARP緩存總是為本地子網保留硬體廣播地址(0xffffffffffffh)作為一個永久項。此項使主機能夠接受ARP廣播,當查看緩存時,該項不會顯示。另外,在ARP請求報文中還放人信源機的IP地址和MAC地址的映射,以防止信宿機接著為信源機的MAC地址再來一次ARP請求,形成死鎖。信源機在廣播自己的地址映射時,網路上所有主機都可以將它存人自己的緩存。在新機入網時,主動廣播自己的地址映射,以減少其他主機對該新主機的ARP請求廣播。ARP協議使用一個數據結構atp—table的表。表中每個條目描述一個IP和物理地址的對應。這些條目在IP地址需要轉換的時候創建,隨著時間推移變得陳舊的時候被刪除。

  ARP表包含一個指針(arp—tables向量表)的表,把arp—table的條目鏈接在一起。這些條目被緩存,以加速對它們的訪問。每一個條目用它的IP地址的最後兩個位元組做表的索引進行查找,然後跟蹤這個條目鏈,直到找到正確的條目。Linux也緩存從atp—table條目預先建立的硬體頭,用hhcache數據結構的形式進行緩存。網路拓撲結構不斷變化,IP地址可能被重新分配到不同的硬體地址。例如,一些撥號服務為它建立的每一個連接分配一個IP地址。為了讓ARP表中包括最新的條目,每當需要分配一個新的條目而ARP表到達了它的最大尺寸的時候,就查找最舊的條目並刪除它們,從而更新緩存表。每個動態ARP高速緩存項的生存時間從被創建時開始算起為10min。2min內未用則刪除。緩存容量滿時,刪除最老的記錄。

  ARP高速緩存保存有動態項和靜態項。動態項是自動添加和刪除的,而靜態ARP項是永久的,可用TCP/IP工具ARP手工載入。靜態ARP高速緩存項用於防止向路由器和伺服器IP地址發出ARP請求。通過添加靜態ARP項可減少ARP請求訪問主機的次數。當網路介面配置改變時,應手工更新靜態ARP項。對於一個ARP請求來說,除目的端硬體地址外的所有其他的欄位都有填充值。當系統收到一份目的端為本機的ARP請求報文後,它就把硬體地址填進去,然後用兩個目的端地址分別替換兩個發送端地址,並把操作欄位置為2,最後把它發送回去。在ARP背後有一個基本概念,那就是網路介面有一個硬體地址(一個48bir的值,以標識不同的乙太網或令牌環網路介面),在硬體層次上進行的數據幀交換必須使用正確的硬體地址。因此,僅僅知道主機的IP地址並不能讓內核發送一幀數據給主機。內核(如乙太網驅動程式)必須知道目的端的硬體地址才能發送數據。

  ARP的功能是在32bitlP地址和採用不同網路技術的硬體地址之間提供動態映射。點對點鏈路不使用ARP。當設置這些鏈路時(一般在引導過程進行),必須告知內核鏈路每一端的IP地址,並不涉及像乙太網地址這樣的硬體地址。

  2.ARP高速緩存超時設置

  在ARP高速緩存中的表項一般都要設置超時值。從伯克利系統演變而來的系統一般對完整的表項設置超時值為20min,而對不完整的表項(例如在乙太網上對一個不存在的主機發出ARP請求)設置超時值為3min。當這些表項再次使用時,這些實現一般都把超時值重新設為20min.

  3.ARP命令

  ARP高速緩存在ARP的運行過程中非常關鍵。高速緩存中的每一項內容都有一個定時器,根據它來刪除不完整和過時的表項。ARP命令加上參數—a可顯示ARP高速緩存中的所有內容。超級用戶可以用參數-d來刪除ARP高速緩存中的某一項內容(可以在運行一些例子之前使用該命令格式,以看清楚ARP的交換過程)。另外,可以通過參數—s來增加高速緩存中的內容。這個參數需要主機名和乙太網地址:對應於主機名的IP地址和乙太網地址被增加到高速緩存中。新增加的內容是永久性的(比如,它沒有超時值),除非在命令行的末尾附上關鍵字temp。位於命令行末尾的關鍵字pub和,s參數一起,可以使系統起著主機ARP代理的作用。系統將回答與主機名對應的IP地址的ARP請求,並以指定的乙太網地址作為回答。如果廣播的地址是系統本身,那麼系統就為指定的主機名起著委托ARP代理的作用。

ARP的使用[2]

  為了查看受害機器的ARP表,我們所使用的命令非常類似於在Windows實時響應中所使用的命令:

  victim#./arp—an

  從受害系統上返回的ARP表如下:

  ?(192.168.1.1,at00:BD:81:43:07:03[ether]on ethO

  結果顯示了IP地址為192.168.1.1的網路介面具有MAC地址00:BD:81:43:07:03。其他信息將有助於在不能控制IP地址時,在網路上追蹤IP地址為192.168.1.1的機器。可以檢查每一臺機器,直至發現MAC地址為06:BD:8l:43:07:03的機器。

  警告:在許多操作系統中,具有足夠特權的用戶可以修改他自己的MAC地址(和IP地址)。在Windows或Unix機器中,這一行為是可能的。

ARP的功能

  從邏輯Internet地址到對應的物理硬體地址需要進行翻譯。

查看ARP緩存表的方法

  ARP 緩存表是可以查看的,也可以添加和修改。在命令提示符下,輸入“arp -a”就可以查看ARP 緩存表中的內容了。用“arp -d”命令可以刪除ARP 表中某一行的內容;用“arp -s”可以手動在ARP 表中指定IP 地址與MAC 地址的對應。

參考文獻

  1. 駱耀祖.高等院校電腦科學與技術“十五”規劃教材 電腦網路實用教程.機械工業出版社,2005年01月.
  2. [美]Mike Shema,Chris Davis,Aaron Philipp等.反黑客工具箱 (第三版).清華大學出版社,2009.1.

  

本條目對我有幫助3
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

泡芙小姐,Mis铭,Tracy,苏青荇,LuyinT.

評論(共0條)

提示:評論內容為網友針對條目"地址解析協議"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

官方社群
下载APP

闽公网安备 35020302032707号