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

借肩膀靠下


本人ccna ccnp,在路由交換行業摸爬滾打8年有餘,要把這個問題說清不容易,簡單的說,mac位於osi網絡模型的第二層,俗稱鏈路層,而ip地址位於osi模型的第三層,俗稱網絡層。

mac地址主要用於鏈路層的通訊,事實上這個所有以太網通訊最終都是鏈路層的通訊,只不過翻譯的過程電腦或者路由器幫你做掉了。其中的一個過程就叫做arp,用來翻譯ip和mac地址。先說簡單的沒有路由器的情況,主機a要給主機b發數據,主機a會詢問,主機b的ip地址所對應的mac是啥?這是個廣播,網絡中所有主機會收到,但是隻有主機b會回給主機a,告訴主機a,它自己的mac地址,這樣,主機a就記錄下了主機b的ip和mac的對應關係。之後只要發給這個ip的數據就直接往這個mac上發就可以了。所以,最終數據發給哪個主機,是mac地址決定的。

那路由又是怎麼回事兒呢,先看看以太網的幀格式,以太網幀就像一個信封,幀頭寫了目的mac和源mac地址,裡面就把上層ip幀裝裡面了。那ip幀呢,幀頭寫了目的ip和源ip等信息,再將上層的封包裝裡面,比如tcp或者udp,這樣一層一層包裝上去。交換機收到以太網幀,只會處理以太網的幀頭,決定往哪個端口轉發,路由器呢,則要處理ip幀頭,再決定往哪個端口轉發。怎麼處理呢?舉個例子,你要從上海,寫一封信到廣州,你會寫上你朋友在廣州的地址,這個地址,就是類似ip地址。但是這封信不是直接送到廣州的,而是要先送到郵局,這個郵局就是類似我們說的路由器,第一個路由器,我們可以稱之為網關。郵局看到ip地址,哦,是發往廣州的,他就要查,這封郵件的下一站要去哪裡,比如下一站是杭州的中轉站,而郵局根據內部的代號,就知道下個目的地地址了,這個代號就是mac地址,就這樣,郵件打上去杭州的包裝,去了杭州。到了杭州,中轉站拆掉外層的包裝,再檢查目的ip,再決定去哪裡,比如福州,於是包上福州目的信息的包裝,送到了福州,福州中轉站拆掉外層包裝,根據目的ip,下一站是廣州目的地,於是再包裝上目的地是廣州的包裝,送到了廣州。再這裡,杭州和福州的中轉站,就類似路由器,路由器根據ip路由表決定下一跳,但是最終需要通過mac地址(外層包裝)來決定傳送給誰。

一般一個物理設備對應一個mac地址,並且是全球唯一,對應協議棧的數據鏈路層。而ip地址是對於一臺設備或者一個接口可以是多個,並且隨時可以根據所在網絡進行更換,更換後的ip和mac會通過一些協議和機制來更新。

所以如果只有鏈路層而沒有網絡層,那麼整個通訊就是一張沒有路由的大網,一個人找一臺主機就要廣播給全網主機,這顯然是不可能的。網絡層就能將鏈路層的廣播域劃分開,通過路由表決定數據走向。而鏈路層除了尋址,還有很多其他功能,比如lacp聚合,stp防止網絡風暴等,這些都是以太網鏈路層的功能,網絡層不參與也不需要ip地址。

以上是針對以太網來說的,事實上ip網絡已經可以被承載在其他類型的網絡上,那些網絡的鏈路層定義是不同於以太網的,比如大家熟悉的wifi,lte,基於802.15.4的zigbee等,這樣,ip網絡事實上是硬件無關的尋址方式,而mac地址僅僅針對特定硬件類型的網絡。就比如上面送郵件的例子,地址還是廣州的地址,但是沒有交給郵局送,而是交給了快遞,那麼經過的中轉站和快遞的內部站點通信方式和郵局可能完全不一樣,但是信件還是被送到了廣州的地址。

那麼關於路由啊,ip分類啊,掩碼啊可以講幾天,就不展開了,有興趣可以看看ccna。


碼農德晨


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

其實光有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地址唯一,能滿足通信的需求,它現在就發揮著通信的作用,不過是在局域網裡發揮作用。



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

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

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

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



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

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


php設計模式


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

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

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

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

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

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

在這裡解釋一下廣播風暴

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

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

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

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


固執的鐵頭娃


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

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

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

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

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

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

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

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

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

2、跨網絡如何進行通信

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

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

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

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

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


喲喲吼說科技


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

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

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

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


手機用戶1683369100


本行業問題,我來回答。

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

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


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

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

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

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

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

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

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

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

通信一小兵


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


光場空間


這個問題簡單,如果說MAC是你家的地址 的話,哪IP就是你家的門牌號,如果你的朋友去你家串門光有地址是不行的,因為,在一個小區或在一個村莊不可能只能你一家 ,如果沒有門牌 號你朋友怎麼找到你家呀。 是吧 ; 這個就是為什麼有了MAC為什麼還有IP地址的原因。


晉城泰和安電子


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

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


分享到:


相關文章: