有了網絡,你我可以隨心所欲地瀏覽全世界的資訊新聞,快捷地收發(fā)郵件信息,與遠在千里之外的人分享資源,坐在家里買賣商品,使地球村成為可能,這些都已經成為了很多人生活的一部分。但人們在發(fā)明計算機網絡之初,只是考慮到了網絡的互聯互通,而沒有考慮到安全性。這其中有一個比較重要的網絡協議ARP,沒有它,IPV4網絡就無法正常工作,但很多安全問題又因它而起。今天我們就對ARP協議做一些介紹,希望大家能對ARP協議有一個較為正確的認識。
ARP協議:
為了工作需要,很多企業(yè)都會建立自己的企業(yè)內網,我們稱之為局域網,如政府部門、機關單位、學校宿舍都對以太網情有獨鐘。在這種網絡中有兩種地址,一種是IP地址,它是由軟件分配的,可以改變,工作于OSI參考模型的第三層;另一種是MAC地址,也稱為網卡地址,是存儲在種個網卡的,是不可改變的,工作于OSI參考模型的第二層。局域網中的每一臺計算機都具有這兩種地址。
按照OSI封裝、解封裝的工作過程,必須實現這兩種地址之間的轉換,這中間需要用到ARP以及RARP協議,當然我今天的重點是ARP。
ARP協議,又稱為地址解析協議,英文全稱是(Address Resolution Protocol)是屬于TCP/IP協議族的。它的主要作用是網絡地址轉換。
在局域網中,當一臺主機把以太網數據幀發(fā)送到另一臺主機時,是根據48bit以太網地址來確定目的接口的。網絡中實際傳輸的每一幀里包含有目標主機的介質訪問控制子層(Media Access Control,MAC)地址。在以太網中,一個主機要和另一個主機進行直接通信,必須要知道目標主機的MAC地址。而MAC地址可以通過地址解析協議獲得。所謂“地址解析”就是在IP地址和采用不同網絡技術的硬件地址之間提供的動態(tài)映射。ARP協議就是用來獲取目的主機的MAC地址的。需要獲取的主機MAC地址,是存儲在網絡傳輸數據幀中的。
當然,還有另外一個協議是RARP,叫做反向地址解析協議(Reverse Address Resolution Protocol,RARP),其作用是將MAC地址轉換為IP地址。
ARP緩存表:
為了提高通信的效率,網絡上每臺主機都有一個ARP緩存表,這也是ARP高效運行的關鍵所在。緩存表中存放了最近的Internet地址到硬件地址之間的映射記錄。用戶可以使用arp–a命令查看本機ARP緩存內容。以主機A向主機B發(fā)送數據為例,當發(fā)送數據時,主機A會在本機的ARP緩存表中尋找是否有目標IP地址。如尋找到,將目標主機MAC地址寫入以太網幀首部加入到輸出隊列等候發(fā)送;否則,主機A就會在網絡上發(fā)送一個ARP請求廣播,詢問同一網段內主機B的MAC地址。網絡上其他主機并不響應該ARP詢問,只有主機B的ARP層收到這份報文后,才會向主機A發(fā)送一個ARP應答,告知其MAC地址為“00-E0-4C-87-DD-D2”
此時,主機A將獲得主機B的MAC地址,就可以向主機B發(fā)送信息。在發(fā)送信息的同時更新本機的ARP緩存表,以便下次再向主機B發(fā)送信息時,直接從ARP緩存表里查找。每臺在第一次登錄網絡建立網絡連接時,都要發(fā)送ARP廣播包;如果要訪問的主機的IP地址和MAC地址在本機ARP緩存表中不存在,也將向網絡發(fā)送ARP請求。由此可以根據每個用戶的既定訪問權限信息對主機的ARP緩存表作相應改變,從而達到訪問控制的目的。
但考慮到網絡的實時變化,ARP高速緩存中的記錄不是一承不變的,而是是動態(tài)變化的,每當發(fā)送一個指定地點的數據報且高速緩存中不存在當前項目時,ARP便會自動添加當前項目。ARP緩存采用老化機制,在一段時間內如果表中的某一行沒有被使用,該行就會被刪除,如此可以大大縮小ARP緩存表的長度,加快查詢速度。因此,訪問控制要求所進行的ARP緩存改變必須進行定時刷新,從而適應ARP緩存老化機制。