160 likes | 423 Views
RFC 826: Address Resolution Protocol (ARP) 位址解析協定. 指導教授:梁德昭 博士 報告學生:張維揚. 1999/10/19. 位址解析協定 (ARP) 的簡介. TCP/IP 通訊協定是利用 IP 位址來定址的,但其下層 的通訊介面也有自己的定址方式,其位址稱為硬體位 址。若在網路上的主機不知道這個硬體位址,即使知 道對方的 IP 位址,也是不能進行通訊的。因通訊介面 並不認得 IP ,必須將 IP 位址映射成硬體位址,所以 在通訊介面及 IP 位址之間須存在一機制進行位址的映
E N D
RFC 826: Address Resolution Protocol (ARP) 位址解析協定 指導教授:梁德昭 博士 報告學生:張維揚 1999/10/19
位址解析協定 (ARP) 的簡介 TCP/IP 通訊協定是利用IP 位址來定址的,但其下層 的通訊介面也有自己的定址方式,其位址稱為硬體位 址。若在網路上的主機不知道這個硬體位址,即使知 道對方的IP位址,也是不能進行通訊的。因通訊介面 並不認得IP ,必須將IP 位址映射成硬體位址,所以 在通訊介面及IP位址之間須存在一機制進行位址的映 射。而位址解析協定( Address Resolution Protocol ) 就是負責將 IP 位址映射為硬體位址的。
IP 位址v.s硬體位址 ● 以 Mail.im.tku.edu.tw (163.13.200.193) 主機為例 IP 位址是由 32 個位元所組成的 例:10100011000011011100100011000001 硬體位址通常是由 48 個位元所組成的 例:00:90:27:a5:94:e3 而硬體位址是由廠商所生產的網路卡來決定
ARP與RARP的關係 32-bit Internet Address 163.13.200.193 ARP RARP 48-bit Ethernet Address 00:90:27:a5:94:e3 ARP 提供動態的對應關係,可從IP 位址找到相對的硬體位址
位址解析協定(ARP)運作的機制 ARP協定定義了IP 位址與硬體位址間的對映與 轉換,當已知對方的IP 位址時,透過它便可得知其 實際的網路位址,以便將資料封包送到對方手上。 ARP的設計原理是利用廣播(Broadcasting)的 方式,若某主機 A 欲送一資料封包給另一主機 B, 而又只知道它的 IP 位址時,它就會在網路上廣播一 個ARP request 封包來詢問 B的實際硬體位址,主 機B收到此一訊息之後就會回送一個ARP reply封包 給A,上面有它自己的硬體位址資料。如此 A 就可 知道B的實際位址了。
圖例位址解析協定(ARP)運作的機制 ※PC53想要與Mail.im.tku.edu.tw進行連線時: MAIL :IP位址163.13.200.193 硬體位址 00:90:27:a5:94:e3 PC53:IP位址163.13.200.53 硬體位址 00:80:c8:65:f9:a8 Mail回覆自己的硬體位址給PC53 BBS PC53 WWW Mail PC53廣播送出Mail主機的IP位址
ARP Cache 為了ARP的高效率運作,每部主機都維持一個ARP 快取是不可或缺的。因此使用ARP的主機都會在系 統內保有一個cache,動態維持著一份 IP 位址與硬 體位址的對照表。一旦要傳送資料時,需要ARP進 行硬體位址映射時,會先去檢查cache中的 IP 位址 與硬體位址對照表,若於其中發現有符合要求的IP 位址,則傳回其對應的硬體位址,如此一來,就不 用再廣播ARP的請求,節省了相當多的時間,效率 上也提昇了許多。
ARP Cache (續) ※查詢ARP Cache的紀錄,可使用 arp -a的指令來顯示
ARP Cache (續) ※對不存在的主機做 ARP 請求:
ARP Cache Timeout ARP Cache Timeout 通常被應用在 ARP Cache 的紀錄上,而起源於柏克萊大學的實際應用上, 通常對於一筆完整的紀錄有 20 分鐘、不完整紀 錄有3分鐘的逾時暫停設定,每當這些紀錄一被 使用,這些實際應用的 20 分鐘暫停設定通常會 重新啟動。
ARP的封包格式介紹 乙太網路 目的位址 乙太網路 來源位址 框架 類型 硬體 位址 類型 通訊 協定 位址 類型 硬 體 位 址 大 小 通 訊 協 定 位 址 大 小 OP 發送者 乙太網 路位址 發送 者IP 位址 目的端 乙太網 路位址 目的 端IP 位址 (byte) 6 1 1 6 6 2 2 2 2 6 4 4 乙太網路標頭 28位元組的ARP請求/回覆 1、框架類型欄指出其後資料的型態,如對ARP請求或回覆,本欄位的值為0x0806。 2、硬體位址類型值為1代表乙太網路位址;通訊協定位址則是指定被對應的通訊協定 3 型態,若其值為0x0800代表IP位址。 3、硬體位址大小以及通訊協定位址大小指定了硬體位址與通訊協定址的小大(byte), 3 對ARP請求或者ARP回覆而言,其值分別為6與4。 4、OP欄指定本訊息是否為ARP請求(值為1)、ARP回覆(值為2)、逆向ARP請求(值為3) 4 逆向ARP回覆(值為4)。
A B F (Router) C D 當欲連線主機不在本段網路時 ※當A主機欲傳送資料至D主機時,其ARP機制運作如下: 1、主機A欲傳送資料至D時,先利用routing table來判別D主機是否與其處 於同一段網路中,在此判斷出並非是,故資料應往預設路由器F傳送。 2、主機A先檢查其ARP Cache中,是否有路由器F的紀錄,如有,直接依 據其紀錄中F的硬體位址,將資料傳送出去給F。 3、如果在ARP Cache中並無此筆紀錄,則主機A則利用廣播的方式,發出 ARP request,而路由器F經由主機A廣播而發現其欲取得自己的硬體 位址,則路由器F在收到訊息後,就會填上自己的硬體回址,再做ARP reply的動作給主機A。 4、主機A依據收到路由器F的硬體位址,將資料傳送至路由器。 5、路由器F再依據路由表決定下一路徑要傳給誰。
無報酬 ARP (Gratuitous ARP) Gratuitous ARP 是 ARP 的另一個特性,其是一主機發 出一個 ARP 請求的封包,詢問自己的 IP 位址,這通常 是發生在系統啟動的時候。而在 ARP 請求封包中,發 送端和目的地的 IP 位址都是相同的,在乙太網路標頭 中,來源的硬體位址是讓主機硬體位址,目的地的硬體 位址是廣播位址ff:ff:ff:ff:ff:ff。 。
無報酬 ARP (Gratuitous ARP) 續 Gratuitious ARP 具有下列兩個特性: 1、幫助主機判斷是否有其他的主機,也具有相同 的IP位址。 2、倘若曾送出無報酬 ARP 的主機在此時更換了 硬體位址,則這個封包會通知同纜線上的其它 主機適切地更新它們在 ARP 快取中的紀錄。
其它 ARP的指令 ※以 BSD 平台而言: ● 【 arp –a 】 顯示所有在 ARP 快取裡頭的紀錄。 ● 【 arp –s hostname 】 加一筆新的紀錄到 ARP 快取中 ● 【 arp –d hostname 】 刪除一筆紀錄 註:其它指令可利用『 man arp 』取得