《計算機網路微課堂》實驗2 MAC地址,IP地址,ARP協議

peterjxl發表於2024-06-01

本模擬實驗的內容是驗證 MAC 地址與 IP 地址的關係,以及 ARP 協議的作用。

我們首先拖動兩臺計算機到邏輯工作空間,然後選擇自動連線,讓他們互聯起來,作為左邊這臺計算機配置 IP 地址 192.168.0.1,給右邊這臺計算機配置 IP 地址 192.168.0.2,我們可以在右邊的工具欄點選檢視,來檢視計算機的埠狀態彙總表以及 ARP 表:

我們看一下埠狀態彙總表,這是計算機的乙太網卡,這是我們剛才配置的 IP 地址,這是網路卡上面的 MAC 地址:

我們還可以再檢視一下它的 ARP 快取記憶體表,目前來說它是空的:

我們把滑鼠狀態切換回選擇狀態,然後切換實施模式到模擬模式,我們現在讓左邊的計算機給右邊的計算機傳送一個簡單的資料包:

就點右邊的信封上的一個加號,讓左邊的計算機給右邊的計算機傳送:

我們可以看到這個資料包本身是用 ICMP 協議構建的,但是在體系結構的第二層準備封裝成幀的時候,發現目標 IP 地址並不在自己的 IP 快取中,所以沒有辦法找到相應的 MAC 地址,所以暫時不能傳送 ICMP 的資料包,只能傳送一個 ARP 的請求,於是就構建一個 ARP 的請求幀。

我們可以看到 ARP 的請求跟它的目的 MAC 地址填為全 F 也就是廣播地址。我們看一下它的具體的封裝細節,就是 ARP 協議構建的資料包,那麼這是它的原 MAC 地址和 IP 地址,也就自己的,下面的是他要傳送資料包的目的地址,但是他不知道這個目的地址對應的 MAC 地址。ARP 協議打完包以後要封裝成乙太網的幀就放在這個位置上。那麼注意一下目的地址,填的是全 F,也就是一個廣播地址:

我們點選下一步,那麼我們可以看到 ARP 廣播請求到達了右邊這臺計算機,我們點開看一下細節,右邊這臺計算機把它解析以後發現這是一個 ARP 的廣播請求,他先把 ARP 的裡面帶來的資訊更新到自己的 ARP 的快取記憶體表裡,這個資訊就是左邊發 IP 廣播請求的主機它的 IP 地址以及 MAC 地址的對應關係:

現在右邊這臺主機知道了,對方是來詢問自己的 MAC 地址的,所以它就要構建一個 ARP 的單播的這樣的一個響應。

那目的地址它是要發給左邊這臺計算機的,所以就填左邊這臺計算機的 MAC 地址。那麼這個就是右邊這臺計算機構建的用 ARP 協議構建的單播的響應,那麼裡面的原 MAC 地址和原 IP,地址放的是自己的,目的 MAC 地址和目的,這個 IP 地址放的是對方的,

我們現在就可以再點下一步來看一下,那麼這個 ARPP 的單播響應就傳送回去了。那麼給大家看一下左邊這臺計算機收到單播響應以後進行解析,發現了這是一個 ARP 的響應,於是他把 ARP 的包裡面的資訊取出來,來更新它自己的 ARP 快取表,然後他再把 ICMP 的資料包就剛才沒有發的資料包包也發出去了。我們現在來檢視一下它更新完了自己的 ARP 快取記憶體表這樣的一個內容。這個內容就是他已經知道了,對方的 IP 地址和 MAC 地址都有關係:

再前進,這就是我們本來想發的 ICMP 的資料包終於被髮出來了,那麼收到後再給對方發回一個 ICMP 的響應:

那麼我們再次來看一下,讓左邊再給右邊發一個 ICMP 的資料包,這個時候我們就可以看到是直接傳送 ICMP 資料包了,而不會再像最初一樣要有一個 ARP 的廣播請求去詢問 IP 地址和 MAC 地址的對應關係:

下面我們可以透過命令來把左邊的 ARP 的快取記憶體表給它清了,我們先用 ARP -a 先看一下它裡面進入了右邊這臺計算機的 IP 地址和 MAC 地址的對應關係,我們輸入 ARP -d 我們再輸入 ARP -a 來檢視一下,那麼這說明的內容已經被我們刪除了,我們再次用 ICMP 的來發包,我們會發現它又再次呼叫了 ARP 的廣播請求:

相關文章