03.05 MAC地址唯一,不能滿足通信需求嗎?為什麼需要IP?

借肩膀靠下


本人程序員,經常與數據通信打交道,這個問題我來回答一下:

其實光有MAC地址沒有IP地址,或是隻有IP地址沒有MAC地址都是沒法正常準確通信的。

MAC地址

  • 定義:MAC(Access Control)地址,俗稱,物理地址或是硬件地址
  • 構成:MAC地址是有48比特的十六進制進制數據構成,分為24字節和後24字節,前24位叫做組織唯一標識符Organizationally Unique Identifier,即OUI),是由IEEE的註冊管理機構分配給不同的廠家,用於區分不同的網絡硬件生產廠家,後24位為擴展標示符,是同一廠家對不同設備的區分,每一臺網絡設備具有固定的MAC地址,在其出廠時就確定了。
  • 用途:MAC地址用於區分同一網段內的不同主機,MAC地址就像我們的身份證號,用來唯一的標識一臺主機。

與IP地址有何異同

  • 構成:IP地址由32比特的二進制來表示,為了好記和美觀將IP用十進制來表示,像192.128.1.1。
  • 在OSI網絡模型中所處的位置:IP地址位於OSI模型的網絡層用來標識不同的網絡斷,而MAC地址位於OSI的數據鏈路層,用來標識不同的主機。

為什麼有唯一的MAC地址還需要IP地址

  • 準確通信的前提:MAC地址相當於人的身份證號,與人唯一匹配,人的身份證號和擁有人的出生日期等相關,但是跟擁有人所在的位置沒有關係,只知道身份證號並不能找到這個人,除非知道這個人所在的城市以及街道和門牌號,MAC地址類似,在出廠後位於哪裡被使用並不知道,所以通信的時候除非兩臺主機位於同一網段內,否則不能通信,有了IP地址將確定了通信對象所在的網段,這樣就能準確通信了。
  • 便於網絡維護:當一個通信的網絡主機發生故障時,有IP更容易地為主機位置,否則只有mac地址,就需要將所有的主機檢查一遍。
  • 有利於數據傳輸:無論是局域網還是廣域網,數據在通信鏈路上的傳播,表現為數據包從一個節點傳到另一個節點,有了IP地址,通過路由器的路由表更容易定位主機位置,就像你將一個僅知道身份證號的人在全國這麼多人中找出來的難度遠大於找出一個即知道身份證又知道街道門牌號的人。這樣數據傳輸更有效。
  • 更高效的利用網絡資源:二層次地址的尋址比單層次的尋址要更多的節省網絡資源,如果在僅有MAC的網絡拓撲結構之間通信,那將是極大的網絡開銷,不值得采用。

當然,僅有IP沒有MAC,也是不可取的,有IP地址的通信比起僅有MAC的通信,由於歷史原因早起的通信只有集線器沒有交換機,所以發出去的包能被同一網段內的所有主機監聽到,有MAC地址後,只有與MAC地址的主機才接受數據包,有利於主機之間的屏蔽。

總上:僅有MAC地址的通信是不高效,不值得采用的,二層次地址尋址結構更有利於網絡的拓展


如果我的回答對你有幫助,煩請點贊和轉發,也可以留言共同交流,共同成長。


愛答問題的小星星


“我是喲喲吼說科技,專注於數據網絡的回答,歡迎大家與我交流數據網絡的問題”

MAC(Media Access Control,媒體訪問控制)地址俗稱物理地址或硬件地址,是工作在數據鏈路層定義網絡設備位置的一種標示。

為什麼說每個電子設備的MAC地址是唯一的,因為MAC地址是由48位十六進制字符串組成的,前24位標示不同廠商的代碼,也稱為唯一的標示符。後24位是由各廠商自行分配的,稱為拓展標示符,因此來說設備的MAC地址是唯一的。

如題,既然MAC地址是唯一,為什麼不能滿足通信需求呢?

因為MAC地址是工作在數據鏈路層的局域網中,不滿足各個網絡互聯組成互聯網的通信需求。下面喲喲來聚個例子大家就可以清楚了:

在網絡進行通信過程中,數據比特流會通過物理層介質發送至數據鏈路層進行下一步處理,到數據鏈路層後完全可以根據MAC地址去尋址進而完成主機之間的通信。

但這盡限於在同一個局域網中,那你有沒有考慮過以下幾點:

1、遠距離如何組建局域網

假設你在中國,要個美國的朋友進行通信,若採用MAC地址進行尋址通信,那豈不是需要把物理鏈路直接連至美國?這有些不現實了。

2、跨網絡如何進行通信

世界上不可能只有一個局域網,那麼跨網絡進行通信的話MAC地址是無法識別網絡地址的,這樣就無法完成通信。

3、設備承載能力如何提升

再誇張一點,全世界同用一張局域網,兩者通信若採用MAC進行尋址的話,那麼局域網內每臺主機需要多高級的硬件配置才能把所有主機的MAC地址放入本地MAC地址緩存表中,這顯然也不現實。

綜上所述,喲喲還是認為MAC地址雖然是唯一的,但若要保證互聯網通信的有效性、便捷性、安全性,還是必須IP地址來一起完成的。

歡迎大家多多關注我,在下方評論區說出自己的見解。


喲喲吼說科技


本行業問題,我來回答。

如果用純粹的原理來說,可能比較枯燥,下邊我用舉例來說明吧,這樣可能看得簡單一些。

MAC地址是媒體訪問控制的縮寫,也就是你的設備的硬件地址,位於數據鏈路層,現在我們舉例子裡這個MAC地址被比喻成你的名字,假設叫王大明。


IP地址是現在網絡裡的IP,目前我們一般應用的是IPV4,相當於什麼哪,相當於你的住宅地址。

局域網的一個子網相當於你的房間,裡邊可能有10幾個人都在,但是隻有你叫王大明。

這樣一來,如果房間裡張小明要找你,只要喊:王大明,我找你。你就可以聽到並且回答了,這樣速度很快。也就是說:MAC地址的尋址屬於通信基本靠吼。

這就是同一個網絡裡利用MAC地址尋址的速度更快的原因。

但是要跨網絡怎麼辦?假設還是李小明要找你,他在302,你在402,李小明喊了你聽不到,就得有一個知道你在哪個房間的人告訴李小明:王大明在402,這樣李小明才能找到你。問題來了,如果你在另外一個省怎麼辦,如果李小明還要找王曉華怎麼辦?他需要知道所有的人在哪裡才能回答這個問題。而且,如果你今天在北京,明天在上海怎麼辦?你的一舉一動都必須向這個人彙報了他才會知道。

之所以不能用MAC地址做為尋址的最大原因就是,單一使用MAC地址尋址,對於中轉設備的要求太高,服務器存儲量極大、存儲調用速度長,而且還比如頻繁更新設備所在位置,對於設備的性能要求太高,也就會價格極其昂貴,中轉設備極為昂貴就會阻礙整個網絡的建設。

IP地址尋址就象我們寫信,一級級的地址讓信息的傳遞更加快速而且便捷,明確的IP地址,沿途的路由器會象接力一樣把你的消息送到該去的地方。

還有一個不能用Mac地址尋址的重要原因就是,Mac地址本身是可以修改的,隨便在網上找一個免費的軟件就可以修改,甚至windows系統都可以自行修改,完全沒有安全性。就好像每個人都可以隨便改名字叫"王大明\

通信一小兵


前幾天剛從網上看到的,首先明確幾條概念,

Mac 地址 是你電腦網卡的唯一標識,是屬於物理地址,而ip 是邏輯地址。

因為規定所有進入網絡的設備都必須實現網卡接口

Mac 地址理論上唯一,但它不是唯一的。是可以修改的。

Mac地址位於倒數第二層鏈路層 是設備與設備之間的通信。

為什麼說mac地址全球唯一 做不到通信呢? 因為會造成廣播風暴 。

在這裡解釋一下廣播風暴

比如說,你要發送一條數據到另一臺電腦上, 鏈路層會發出廣播,漫無目的去尋找你要發送目的電腦的mac地址。全球電腦數量過多,電腦之間的廣播次數超多,就跟道路一樣變得擁擠,混亂,出現數據錯誤。

ip 地址的出現,是為了解決廣播風暴的問題,因為ip地址有分段,就相當於劃分地區。縮小廣播範圍,減少廣播的次數。

比如說 北京的ip段是110,天津的ip段是120 。我現在的ip段是130, 我要給北京的某臺主機發送數據,廣播就只和110段ip地址進行廣播交互。而不會全球廣播。從而縮小廣播範圍和次數。更快的找到主機。

理解不足之處,還需各位指出。謝謝


changeMe


也不是不行,只是網絡規模大的時候,尋找地址將會非常困難。IP是順序編碼,可分段管理,除了地址上的管理,IP還能對數據包進行標籤分類(就是端口號),否則現在這麼多種軟件產生數據,怎麼區分是誰的。實際上通信協議並不只有IP,也有些專用設備通信不使用IP。早期使用ipx,appletalk等協議的也很多。IP的傳送效率並不高,但是IP的尋址優勢非常大,特別適合大型網絡。因此逐漸成為主流。


莊惠松


兩者處在不同的網絡層級,mac地址標示硬件唯一性,一般不能改變。IP地址是可以隨時按需要改變的,用IP是為了方便網絡管理。

舉個不恰當的例子,你手機(比作mac地址)到不同的國家可以換不同運營商的SIM卡(比作IP地址)使用,如果沒有SIM卡(IP地址)這種東西,你去一個地方或換一個運營商就要把手機拿去營業廳登記mac地址,錄入運營商數據庫才能使用運營商的網絡打電話、上網,太麻煩了。

所以,你的手機是唯一的(mac地址 不論在哪個國家、哪個運營商的網絡裡) ,但你的手機號(IP地址)是隨時可以改變的,換個SIM卡就行了。看這樣方便多了吧。

再簡單點說,mac地址就像一輛汽車的車架號,IP地址就像 車牌。


用戶e271828182845904


簡單的說,mac是工地民工,私域網(局域網)是包工頭,互聯網是建築公司高管,根服務器(dns)是國家高管。 國家高管直接下令對單個民工指揮,那除非這個國家高管非常強力,否則一個人不能直接指揮千千萬萬個民工做具體的事情而不衝突。 這不僅符合管理學,也符合容錯理論。即讓錯誤控制在一個層級,再去修復。假設是高管內鬥,也不影響國家政策和民工繼續蓋房子。

話說回來,要實現你說的那樣,技術上也是可以的。只是不符合管理科學和風險控制。此回答無貶低任何階級之意。


斷腸人在天之涯


MAC地址唯一,能滿足通信的需求,它現在就發揮著通信的作用,不過是在局域網裡發揮作用。



但是,這跟需要IP沒有關係。IP是出於管理上的需要。

這是一種分層次的設計。IP在上層,MAC在下層。

這個下層的建設和消失,十分不穩定,經常發生變動。

每天都有不同地區的局域網被創建,也會有不同地區的局域網消失;活動中的局域網也會發生變更,常常有新的機子加入,也有老的機子廢除。這些都看做是MAC的變更。



如此頻繁和廣泛的變動,要做到全局的管理是不容易的。引入IP層來專門管理通信,就是要防止這種變更影響到通信,否則通信的管理問題就太頭疼了,影響效率。

現在有了IP,隨便你MAC層次怎麼變動更改,都不影響通信問題。


php設計模式


ip方便配置,可聚合,減少路由條目,mac相對固定,2者相互配合,互聯網上用ip好找到目標,mac地址解決同一鏈路上的物理尋址,唯一,確定,不需要額外配置,條目有限,沒有路由負擔,一條arp廣播搞定(大聲吼一嗓子)


光場空間


MAC是硬件地址,可以理解為某一設備的標識。

IP地址,是一種邏輯劃分。

這樣做的好處很多,你可以想象一種最簡單的方式,同一地區分配類似的ABC類地址,那路由表是不是就可以做聚合了。縮減了路由表項到可實現的地步。而硬件地址可是毫無規律的隨機散步。


分享到:


相關文章: