有了MAC地址,為什么還要用IP地址?


1.當年設計IP地址的目的是什么呢?

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

2.那么為什么我們需要IP地址呢?

因為如果我們只用MAC地址的話,我們會發現路由器需要記住每個MAC地址所在的子網是哪一個(不然每一次收到數據包的時候路由器都要重新滿世界地去找這個MAC地址的位置)。而世界上有248個MAC地址,這就意味着即使我們給每個MAC地址只留1字節的儲存空間,每個路由器也需要256TB的內存!這顯然是不可能實現的。這就是我們需要IP地址的原因了。和MAC不同的是,IP地址是和地域相關的。對於位於同一個子網上的設備,我們給他們分配的IP 地址前綴都是一樣的,這個前綴就像郵政編碼一樣。這樣,路由器過IP地址的前綴就能知道這個設備在哪個子網上了。現在,路由器只需要記住每個子網的位置即可,大大減少了路由器所需要的內存。

3.既然IP地址不能去掉,那么能不能去掉MAC地址呢?

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

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

補充1:ARP協議僅適用於局域網嗎?

ARP協議只對它的下一個要連接的設備MAC層進行訪問,同在一個局域網內的主機可以直接訪問MAC層;但是對於不同網絡中的主機,就需要IP轉發,ARP只與轉發的路由器的MAC層進行對話,告訴源主機該路由器的MAC地址,好讓IP數據包進行選路轉發。就像這樣,ARP只對和它直接相連的主機的硬件網口進行通信,若要多跳,則每跳之間會有自己的ARP進程運行,互不干擾。

補充2:ARP攻擊是不是只能在局域網中?

ARP攻擊就是通過偽造IP地址和MAC地址實現ARP欺騙,能夠在網絡中產生大量的ARP通信量使網絡阻塞,攻擊者只要持續不斷的發出偽造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網絡中斷或中間人攻擊。ARP攻擊主要是存在於局域網網絡中,局域網中若有一台計算機感染ARP木馬,則感染該ARP木馬的系統將會試圖通過“ARP欺騙”手段截獲所在網絡內其它計算機的通信信息,並因此造成網內其它計算機的通信故障。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM