為什麼區域網要用mac地址而不直接使用IP地址,統一用IP地址不是更好嗎?
謝邀。
乙太網發明出來的時候,IP還沒有壟斷網路層協議,那時還有Novell網的IPX/SPX協議、DEC公司開發的CLNP網路協議,以及Apple公司開發的Apple Talk協議,乙太網需要支持這所有的網路層協議,如果沒有MAC地址,勢必需要網卡解讀網路層協議頭的地址信息,而每一種網路層的地址都大相徑庭,所以增加了乙太網卡的實現複雜度。
而網卡有了MAC地址,可以不依賴於任何網路層協議,可以獨立判斷一個以太幀是否接收(依據MAC地址匹配),這樣大大簡化了網卡的實現。
即使以後出現更多的網路層協議,網卡也無需太多的改變,這就是網路分層的精髓,一層的內部實現無需知曉其上層、或下層協議欄位。
ip地址會變的,mac地址不會。
ip地址是本地動態或靜態分配的,mac地址是出廠配好的。
如果整個網路是靜態的,所有的ip地址都是進網需要找管理員去要的,那麼沒問題,用ip地址做mac是可以的。
如果網路是動態的,事情會複雜一點。首先動態地址分配過程需要有一個全球唯一標識,否則沒法給你分地址。為什麼呢?因為分地址的協議一定是廣播的(你還沒有ip地址,沒法單播給你),是發給你的而不是發給其他人的,需要一個匹配關係。當然可以通過dhcp里的session號碼去匹配,可能會產生衝突(每個主機隨機產生一個,衝突可能性非常小,1/40億)。這麼來看,還是可以解決的。
回頭看看用ip地址尋的的欄位填充問題。
MAC二層轉發,IP三層轉發。當年只有路由器才支持三層轉發功能,路由器貴得很,所以在區域網中一些廠商開發了基於MAC的交換機,便宜。 至於三層交換機,那是後來的事情了。思科起家就是做路由器的,他的交換機產品線收購的Catalyst,當初思科路由器跑IOS系統,交換機跑CatOS,後來才統一成IOS。
這個問題兩句話就能解釋。
1、去除MAC之後不再有鏈路層,包最多只能經過一跳,因為沒有地方存儲路徑中間節點信息。
2、去除MAC之後用IP作為鏈路層標識符,實現也是可行的,但是分層不清晰,路由會很麻煩。
mac地址是你收快遞在幾樓幾號
ip 地址是你姓名
只有姓名和電話是不是快遞小哥每次到你樓下都得拿個大喇叭(廣播包)喊:名字叫xxx樓主下來收快遞了!
結果喊了半天沒反應,結果你上班(另外一個lan)去了!
ip地址對應一個邏輯上的終端
mac地址對應你的物理埠在IP 層抽象的互連網上,我們看到的只是IP 數據報,路由器根據目的站的IP 地址進行選路。在具體的物理網路的鏈路層,我們看到的只是MAC 幀,IP 數據報被封裝在MAC幀裡面。MAC 幀在不同的網路上傳送時,其MAC 幀的首部是不同的。這種變化,在上面的IP層上是看不到的。每個路由器都有IP 地址和硬體地址。使用IP 地址與硬體地址,儘管連接在一起的網路的硬體地址體系各不相同(這點很重要,因為互聯網是一個異構的網路),但IP 層抽象的互連網卻屏蔽了下層這些很複雜的細節,並使我們能夠使用統一的、抽象的IP 地址進行通信。
其他答案從技術上說都不錯,我換個角度答下。樓主的問題並非不可行。
大家在現今電腦中看到的MAC地址屬於Ethernet協議(相信也就是題主所指區域網)的下層子協議。
最早的時候,Ethernet和IP都是為各自目的獨立開發的,如果是個純粹的區域網,你可以寫個程序,直接用mac地址互訪,完全跳過tcp/ip(ARP,dhcp不就是這樣)。所以談不上誰要為誰屏蔽什麼複雜性。只是當80年代各種技術都相對成熟,那些大廠從中選擇了不同技術,進行搭配,做成產品,然後以合適的價格賣出來。在這個商業競爭中,ethernet+ip的組合佔了上風,那些想從底層重新做一套整合版的廠商,如果有,也早已經倒閉了。
OSI模型可以幫助你理解,但這個模型本身不是目的。如果你能想出一個合適的場景,以現有硬體資源,直接把ipv6地址硬編碼到網卡上作為mac層的地址,也沒啥不行。搞不好還能忽悠出一個「劃時代」的創業項目呢。
總之,先賢們開發Ethernet和IP時腦袋裡並沒什麼框框,我們需要理解他們留下來的財富,但未必要被這些財富所束縛。題主的腦洞很棒。在你的家庭成員內 ,你爸媽是叫你小名好還是叫你書名好. 沒從專業方面解釋,請見諒. 1樓的回答很好. 2樓作了補充,我只好打醬油了.
《計算機網路自頂向下方法》對該問題有明確的回答
英文原版:
中文譯版:
實在是想不明白,Mac地址用的好好的,為何要用IP,然後我們在這討論半天?
IP是網路層的東西,MAC是物理層的東西。
你非要說墨水能替代文字的話。。我也沒辦法區域網要用mac地址而不直接使用IP地址,統一用IP地址不是更好嗎?
可以統一用IP地址,但是不好。統一使用IP地址就和統一使用mac地址本質就一樣了。
匯流排型乙太網是共享介質型網路,就一堆機子中怎麼找到你想通信的機子。使用mac地址來標識每個機子,mac地址是唯一的,mac地址拿來定址的。通信的時候,需要定址,定址的地址就是mac地址。ip地址和mac地址建立一一對應的關係後,在區域網中,ip地址也可以標識一台主機。ip地址與mac地址都是一堆數字,能夠標識不同主機就可以了。但是ip地址設計並不是就在區域網中通信,還有實現不同網路之間的通信。
ip地址結構:網路號+主機號,ip可以不僅僅表示主機,還表示主機所在網路。
mac地址結構: 前24位的組織唯一標誌符 + 後24位是由廠家自己分配的擴展標識符
本來想找找有沒有改硬體mac的教程,隨手答一下這個問題吧。
打個比方,你報警的時候打110就行了,不管座機旁邊現在坐的是李警官還是張警官,你不care的,換人也不會有差。
名字就相當於mac,但很多時候你不會在乎對方是誰,只在乎對方是否業務熟練。
謝邀,這個問題當年我學計算機網路時好多人都會對這有疑問,MAC地址一般是燒寫在網卡上,在硬體級別是無法更改的,軟體級別的修改暫且不管,在區域網內用arp協議來維護ip與mac的映射,在linux系統中,路由表的一條記錄,有的是有標誌G的,這個是用來區分間接路由和直接路由的,發往直接路由的分組既要有ip地址又要有鏈路層地址,也就是MAC,而間接路由,ip是最終目的地,鏈路層卻是網關,想想一個數據分組是如何一步步傳輸的,你就會知道,MAC地址是用於兩個在一個網段主機的通信,而ip是用來選路的,數據分組中都是最終目的ip和下一跳的網卡的MAC,而且網卡正是根據目的MAC是否是自己,來決定是否處理這個數據分組(混雜模式除外),這個我這幾天也好好想了哈,不知道講清楚沒
推薦閱讀:
※高帶寬往低帶寬傳送數據的處理機制是怎樣的?
※測試TCP server的QPS的合適方法?
※為什麼traceroute通過外網到了一個內網地址?
※《TCP/IP詳解卷一》中這一句話應該怎麼理解?
※網路連接中的長連接和短鏈接是什麼意思?
TAG:計算機網路 |