爲什麼有mac地址還學要有IP地址??

歷史原因:早期的以太網只有集線器 ,沒有交換機,所以發出去的包能被以太網內的所有機器監聽到,因此要附帶上MAC地址,每個機器只需要接受與自己MAC地址相匹配的包。

個人感覺上面的說法並不是太準確。找明白人問了一下說:早期的以太網的廠商競爭十分激烈,所生產的網卡的類型也不相同。爲了能使不同網卡之間的不同設備進行通信,所以產生了IP地址。


答案一:

1. 有了MAC地址爲什麼還需要IP地址?

由於全世界存在着各式各樣的網絡,它們使用不同的硬件地址。要是這些異構網絡能夠互相通信就必須進行非常複雜的硬件地址轉換工作,因此由用戶或用戶主機來完成這項工作幾乎是不可能的事。但統一的IP地址把這個複雜問題解決了。連接到因特網的主機只需擁有統一的IP地址,它們之間的通信就像連接在同一個網絡(虛擬互連網絡或者簡稱IP網)上那麼簡單方便,因爲調用ARP的複雜過程都是由計算機軟件自動進行的,對用戶來說是看不見這種調用過程的。

2. 有了IP地址爲什麼還需要MAC地址?

a.信息傳遞時候,需要知道的其實是兩個地址:終點地址、下一跳的地址。IP地址本質上是終點地址,它在跳過路由器的時候不會改變,而MAC地址則是下一跳的地址,每跳過一次路由器都會改變。這就是爲什麼還要用MAC地址的原因之一,它起到了記錄下一跳的信息的作用。 
b.網絡體系結構的分層模型:用MAC地址和IP地址兩個地址,用於分別表示物理地址和邏輯地址是有好處的。這樣分層可以使網絡層與數據鏈路層的協議更靈活地替換。 
c.歷史原因:早期的以太網只有集線器,沒有交換機,所以發出去的包能被以太網內的所有機器監聽到,因此要附帶上MAC地址,每個機器只需要接受與自己MAC地址相匹配的包。


答案二:

首先明確一點,並不是所有的網絡之間傳輸數據都需要mac地址和ip地址,比如說點對點線路之間的通信就沒有MAC地址,網絡層使用ipx協議時就沒有ip地址,但是在當前的主流網絡中,我們都使用ip地址和mac地址

既然mac地址唯一,爲什麼還要有IP地址?

之前我們提到,mac地址是唯一的,那理論上,在任何兩個設備之間,我應該都可以通過mac地址發送數據,爲什麼還需要ip地址?

mac地址就好像個人的身份證號,人的身份證號和人戶口所在的城市,出生的日期有關,但是和人所在的位置沒有關係,人是會移動的,知道一個人的身份證號,並不能找到它這個人,mac地址類似,它是和設備的生產者,批次,日期之類的關聯起來,知道一個設備的mac,並不能在網絡中將數據發送給它,除非它和發送方的在同一個網絡內。

所以要實現機器之間的通信,我們還需要有ip地址的概念,ip地址表達的是當前機器在網絡中的位置,類似於城市名+道路號+門牌號的概念。通過ip層的尋址,我們能知道按何種路徑在全世界任意兩臺Internet上的的機器間傳輸數據。

mac地址通常是不變的,ip地址是可變的,尤其是移動設備,ip地址會經常變更。

mac地址的設計不攜帶設備在網絡中的位置信息,想要通過mac地址通信,我們得在所有的設備上維護一張很大的表,記錄所有mac地址路由在當前位置的的下一跳,這顯然是不合理的。

既然能通過ip地址發送數據,爲什麼要有mac地址

既然ip地址有位置信息,而且在一個網絡中也是唯一的,那麼我們爲什麼不完全通過ip地址通信,拋棄mac地址呢?或者說,合併ip層和mac層的功能。

  • 歷史原因
    最初的鏈路層協議是和ip地址無關的,沒有網絡層方面的設定,只有物理層和鏈路層,最初也只有集線器,沒有交換機路由器,服務器之間傳輸數據全靠mac地址。在沒有ip地址之前,mac地址已經在使用了。現在到處都在用的二層交換機,就是根據mac地址轉發數據。

  • 設計的原因
    現在這樣設計是好的設計,鏈路層的實現不需要考慮數據之間的轉發,網絡層的實現不需要考慮物層的影響。

也就是說,理論上可行,目前無太大意義,反而有壞處。



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