簡單來說,ARP協議是IP地址轉換成MAC地址的協議。鏈路層協議。過程如下:
- 1:首先,每個主機都會在自己的ARP緩沖區中建立一個ARP列表,以表示IP地址和MAC地址之間的對應關系。
- 2:當源主機要發送數據時,首先檢查ARP列表中是否有對應IP地址的目的主機的MAC地址,如果有,則直接發送數據,如果沒有,就向本網段的所有主機發送ARP數據包,該數據包包括的內容有:源主機 IP地址,源主機MAC地址,目的主機的IP 地址。
- 3:當本網絡的所有主機收到該ARP數據包時,首先檢查數據包中的IP地址是否是自己的IP地址,如果不是,則忽略該數據包,如果是,則首先從數據包中取出源主機的IP和MAC地址寫入到ARP列表中,如果已經存在,則覆蓋,然后將自己的MAC地址寫入ARP響應包中,告訴源主機自己是它想要找的MAC地址。
- 4:源主機收到ARP響應包后。將目的主機的IP和MAC地址寫入ARP列表,並利用此信息發送數據。如果源主機一直沒有收到ARP響應數據包,表示ARP查詢失敗。
PS:廣播發送ARP請求,單播發送ARP響應。
當你FTP某個主機的過程:
ARP欺騙:
ARP欺騙實質上,讓本應該送往目的ip的數據包,發送到了錯誤的地址,因此好像造成了一種“上不了網”的感覺。
ARP欺騙分為二種,一種是對路由器ARP表的欺騙;另一種是對內網PC的網關欺騙。
ARP欺騙的3種基本方式:
1. 主機C冒充網關欺騙主機B;
2. 主機c冒充主機B欺騙網關;
3. 主機C同時欺騙主機B和網關,實現數據中轉,並監聽到所有主機B的數據。
截獲網關數據
網絡執法官
:1)交換機 在計算機網絡系統中,交換機是針對共享工作模式的弱點而推出的。交換機擁有一條高帶寬的背部總線和內部交換矩陣。交換機的所有的端口都掛接在這條背 部總線上,當控制電路收到數據包以后,處理端口會查找內存中的地址對照表以確定目的MAC(網卡的硬件地址)的NIC(網卡)掛接在哪個端口上,通過內部 交換矩陣迅速將數據包傳送到目的端口。目的MAC若不存在,交換機才廣播到所有的端口,接收端口回應后交換機會“學習”新的地址,並把它添加入內部地址表 中。 交換機工作於OSI參考模型的第二層,即數據鏈路層。交換機內部的CPU會在每個端口成功連接時,通過ARP協議學習它的MAC地址,保存成一張 ARP表。在今后的通訊中,發往該MAC地址的數據包將僅送往其對應的端口,而不是所有的端口。因此,交換機可用於划分數據鏈路層廣播,即沖突域;但它不 能划分網絡層廣播,即廣播域。 交換機被廣泛應用於二層網絡交換,俗稱“二層交換機”。 交換機的種類有:二層交換機、三層交換機、四層交換機、七層交換機分別工作在OSI七層模型中的第二層、第三層、第四層盒第七層,並因此而得名。 2)路由器 路由器(Router)是一種計算機網絡設備,提供了路由與轉送兩種重要機制,可以決定數據包從來源端到目的端所經過 的路由路徑(host到host之間的傳輸路徑),這個過程稱為路由;將路由器輸入端的數據包移送至適當的路由器輸出端(在路由器內部進行),這稱為轉 送。路由工作在OSI模型的第三層——即網絡層,例如網際協議。 路由器的一個作用是連通不同的網絡,另一個作用是選擇信息傳送的線路。 路由器與交換器的差別,路由器是屬於OSI第三層的產品,交換器是OSI第二層的產品(這里特指二層交換機)。 3)網關 網關(Gateway),稱網間連接器、協議轉換器。網關在網絡層以上實現網絡互連.
網關區別於路由器(由於歷史的原因,許多有關TCP/IP 的文獻曾經把網絡層使用的路由器(Router)稱為網關,在今天很多局域網采用都是路由來接入網絡,因此現在通常指的網關就是路由器的IP),經常在家 庭中或者小型企業網絡中使用,用於連接局域網和Internet。 網關也經常指把一種協議轉成另一種協議的設備,比如語音網關。 在傳統TCP/IP術語中,網絡設備只分成兩種,一種為網關(gateway),另一種為主機(host)。網關能在網絡間轉遞數據包,但主機不能 轉送數據包。在主機(又稱終端系統,end system)中,數據包需經過TCP/IP四層協議處理,但是在網關(又稱中介系 統,intermediate system)只需要到達網際層(Internet layer),決定路徑之后就可以轉送。在當時,網關 (gateway)與路由器(router)還沒有區別。 在現代網絡術語中,網關(gateway)與路由器(router)的定義不同。網關(gateway)能在不同協議間移動數據,而路由器(router)是在不同網絡間移動數據,相當於傳統所說的IP網關(IP gateway)。 網關是連接兩個網絡的設備,對於語音網關來說,他可以連接PSTN網絡和以太網,這就相當於VOIP,把不同電話中的模擬信號通過網關而轉換成數字信號,而且加入協議再去傳輸。在到了接收端的時候再通過網關還原成模擬的電話信號,最后才能在電話機上聽到。 對於以太網中的網關只能轉發三層以上數據包,這一點和路由是一樣的。而不同的是網關中並沒有路由表,他只能按照預先設定的不同網段來進行轉發。網關最重要的一點就是端口映射,子網內用戶在外網看來只是外網的IP地址對應着不同的端口,這樣看來就會保護子網內的用戶。
ARP 緩存
為最大限度地減少廣播 ARP 請求幀的數量,許多 TCP/IP 協議實現都包含一個 ARP 緩存,它是一個記錄了最近解析過的 IPv4 地址及其相應的 MAC 地址的表。在發送 ARP 請求幀之前,ARP 將首先檢查此緩存。每個接口都有其自己的 ARP 緩存。
ARP 緩存可具有以下特性(具體取決於供應商實現):
ARP 緩存條目可以是動態的(基於 ARP 應答),也可以是靜態的。靜態 ARP 緩存條目是永久性的,您可以使用 TCP/IP 工具(例如 Windows 附帶的 Arp 工具)手動添加它們。靜態 ARP 緩存條目禁止節點發送對常用的本地 IPv4 地址(例如路由器和服務器的 IPv4 地址)的 ARP 請求。使用靜態 ARP 緩存條目的問題是,在網絡適配器設備發生更改時您必須手動更新它們。 動態 ARP 緩存條目擁有與之相關的超時值,所以在超過指定的時間后,將從緩存中刪除它們。例如,Windows 的動態 ARP 緩存條目不超過 10 分鍾就會被刪除。
要查看基於 Windows 的計算機上的 ARP 緩存,請在命令提示符下鍵入 arp -a。您還可以使用 Arp 工具來添加或刪除靜態 ARP 緩存條目。
RARP:
反向地址轉換協議(RARP)允許局域網的物理機器從網關服務器的 ARP 表或者緩存上請求其 IP 地址。網絡管理員在局域網網關路由器里創建一個表以映射物理地址(MAC)和與其對應的 IP 地址。當設置一台新的機器時,其 RARP 客戶機程序需要向路由器上的 RARP 服務器請求相應的 IP 地址。假設在路由表中已經設置了一個記錄,RARP 服務器將會返回 IP 地址給機器,此機器就會存儲起來以便日后使用。
主要用於無盤工作站啟動時獲取IP地址。