發布時間: 2017-10-28 22:47:54
?1、概述
地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議。主機發送信息時將包含目標IP地址的ARP請求廣播到網絡上的所有主機,并接收返回消息,以此確定目標的物理地址;收到返回消息后將該IP地址和物理地址存入本機ARP緩存中并保留一定時間,下次請求時直接查詢ARP緩存以節約資源。地址解析協議是建立在網絡中各個主機互相信任的基礎上的,網絡上的主機可以自主發送ARP應答消息,其他主機收到應答報文時不會檢測該報文的真實性就會將其記入本機ARP緩存;由此攻擊者就可以向某一主機發送偽ARP應答報文,使其發送的信息無法到達預期的主機或到達錯誤的主機,這就構成了一個ARP欺騙。ARP命令可用于查詢本機ARP緩存中IP地址和MAC地址的對應關系、添加或刪除靜態對應關系等。
2、ARP的工作過程:
1) 當主機x和主機y在同一個網段中時:
首先主機x會查找自己的ARP緩存表,而這個表在windows系統中是使用ARP –A命令來進行查看的,如果存在主機y的ip地址與MAC地址之間的映射,那么可以直接使用這個關系中MAC地址對ip數據包進行封裝。
如果在緩存表中沒有找到這個關系,那么主機x以廣播的方式發送一個ARP的請求報文,使得本網絡中的每一個主機都能收到這個報文, 這個ARP報文中,包含主機x的源ip地址和源MAC地址,以及目的ip地址,目的MAC地址中內容是全為f的廣播地址。
主機y收到這樣的報文后,將主機x發送的ARP的x的ip和MAC的對應關系存入自己的緩存中,同樣將構造一個相應的ARP報文,將自己的MAC地址放到報文中,單播會主機x。
主機x收到這個相應報文后,將自己的緩存表中添加主機y的MAC地址與ip地址的對應關系,然后進行數據發送。
2)當主機x和主機y不在同一個網段中時:
如果主機x不知道網關的MAC地址,(也就是說在主機x的緩存表中沒有網關的MAC地址映射)那么主機x先構造一個ARP的廣播的請求報文,請求網關的MAC地址,進而獲得網關的MAC與ip的對應關系。
如果主機x的緩存中已經有了網關的MAC地址與ip地址之間的關系了,那么將主機x發給主機y的ARP報文中的目的MAC地址的位置填寫網關的MAC地址,發給網關。
如果在網關的ARP緩存表中有y的MAC地址,則網關直接將來自主機x的報文中的目的MAC地址字段填寫主機y的MAC地址直接發給主機y。
如果在網關的緩存中不存在主機y的MAC地址,那么網關繼續以廣播的方式發送一個ARP的請求報文,請求主機y的MAC地址,然后,主機y相應單播回自己的MAC地址,其他主機不響應,這里的過程就是相同的網段中的ARP的建立的過程了。
通過以上兩種方式,就建立起了ARP的解析的過程。
上一篇: {H5}混合開發之ionic快速開始