[計算機網絡]IP地址和MAC地址缺一不可!

在學習計算機網絡的過程中,一直有一個問題困擾着我:爲什麼需要MAC地址和IP地址結合使用才能尋址,知道IP地址之後還要通過ARP協議反查對應的MAC地址?

後來本菜雞發現這IP地址和MAC地址二者是相輔相成的:

  • IP地址是網絡層使用的地址,它能唯一地確定一臺主機在網絡中的位置,另外它有一種辦法來區分不同的網絡。IP地址在劃分的時候會把網絡劃分爲若干個子網。
  • MAC地址是數據鏈路層使用的地址,它也能唯一地確定一臺主機在網絡中的位置。但是它沒有一種辦法很好地區分不同的網絡。

因此在尋路的過程中,先通過IP地址找到目的主機對應的子網,然後再使用ARP協議得到主機的具體MAC地址,從而正確的找到目的主機,這樣是效率最高也是最實用的方法。

然後我們就發現這個問題變得簡單了:當年設計 IP 地址的目的是什麼呢?當年設計出 IP 地址這個東西,就是因爲隨着網絡中的設備逐漸增多,人們發現路由(也就是尋找數據包從發送方到接收方的路徑)變得越來越困難了。於是人們想了一個辦法,就是把網絡劃分成很多個子網。這樣,在路由的時候,路由器可以把其他子網看成一個整體來進行計算。對於目的地在其他子網的數據包,路由器只需要讓數據包到達那個子網即可,而剩下的工作就由子網內部解決了。雖然這種方法只能讓尋找到的路徑接近最優而不保證最優,不過它大大減少了路由器的計算量,利大於弊,所以被採用了。

那麼爲什麼我們需要 IP 地址呢?因爲如果我們只用 MAC 地址的話,我們會發現路由器需要記住每個 MAC 地址所在的子網是哪一個(不然每一次收到數據包的時候路由器都要重新滿世界地去找這個 MAC 地址的位置)。而世界上有 2的48次方個 MAC 地址,這就意味着即使我們給每個 MAC 地址只留 1 字節的儲存空間,每個路由器也需要 256 TB 的內存!這顯然是不可能實現的。

這就是我們需要 IP 地址的原因了。和 MAC 不同的是,IP 地址是和地域相關的。對於位於同一個子網上的設備,我們給他們分配的 IP 地址前綴都是一樣的。這個前綴就像郵政編碼一樣。這樣,路由器過 IP 地址的前綴就能知道這個設備在哪個子網上了。現在,路由器只需要記住每個子網的位置即可,大大減少了路由器所需要的內存。

既然 IP 地址不能去掉,那麼能不能去掉 MAC 地址呢?也不能。因爲 IP 地址是要設備上線以後,才能根據他進入了哪個子網來分配的,在設備還沒有 IP 地址的時候(或者分配 IP 地址的過程中),我們還需要用 MAC 地址來區分不同的設備。

總之,MAC 地址就像自己的 ID 號,而 IP 地址就像帶着郵政編碼的住址,各有各的用途。所以我們需要兩個地址,缺一不可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章