成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MAC 地址為什么不需要全球唯一

網絡 網絡管理
MAC 地址(Media access control address)是分配給網絡接口控制器(Network interface controller, NIC)的唯一標識符,它會在網絡段中充當網絡地址使用。

MAC 地址(Media access control address)是分配給網絡接口控制器(Network interface controller, NIC)的唯一標識符,它會在網絡段中充當網絡地址使用,所有具有網卡的主機都有單獨的 MAC 地址,該地址總共包含 48 位,占 6 字節的空間,可以表示 281,474,976,710,656 個網絡設備,一個正常的 MAC 地址如下所示的格式表示,每個字節都會使用兩位 16 進制的數字:

  1. 6e:77:0f:b8:8b:6b 

因為 MAC 地址需要保證唯一,所以 IEEE 會根據設備的制造商分配地址段,48 位 MAC 地址的前 24 位是設備制造商的標識符[^2],也就是組織唯一標識符(Organizationally Unique Identifier,OUI),后面的 24 位是序列號;如果每個設備制造商都能保證在同一個命名空間中的全部 MAC 地址唯一,那么全世界所有的 MAC 地址就可以保證唯一。

圖 1 - MAC 地址

MAC 地址可以使用兩種不同的格式表示,分別是 48 位的 EUI-48 和 64 位的 EUI-64[^3],本文會使用 EUI-48 格式的 MAC 地址,EUI-64 主要用于 IPv6 協議,我們在這篇文章就不展開討論了。在通常情況下,MAC 地址會使用 24 位表示組織的序列號,但是因為很多組織不會生產這么多的設備,所以在實際操作中會劃分出三種不同大小的地址塊[^4]:

圖 2 - MA-L, MA-M, MA-S

  • MA-L(MAC Address Block Large) - 包含 24 位組織標識符和 24 位地址;
  • MA-M(MAC Address Block Medium) - 包含 28 位組織標識符和 20 位地址;
  • MA-S(MAC Address Block Small) - 包含 36 位組織標識符和 12 位地址;

這三種不同大小的地址塊價格也完全不同,MA-L 的注冊價格為 2995 美金,而 MA-S 的注冊價格為 755 美金,感興趣并且有需要的讀者可以在 IEEE 的官方購買[^5],在理想情況下,所有的地址加起來價值大概在 52 萬億美金左右,果然定義和掌握了標準就可以躺著等別人注冊來賺錢。

這種由機構分發 MAC 地址段并由設備商保證地址唯一的方式就是為了保證全世界所有硬件的網絡地址唯一,但是在實際操作中,全球唯一是無法保證的而且我們也并不需要地址的全球唯一,這主要因為以下兩個原因:

  • 在不同操作系統上,我們都可以通過軟件直接修改網卡的 MAC 地址;
  • 只需要保證一個局域網內的 MAC 地址不重復,網絡就可以正常工作;

修改地址

無論是在 Linux 上還是在 macOS 上,修改網絡設備的 MAC 地址都是非常簡單的。在 Linux 操作系統中我們可以使用命令 ifconfig 修改設備上的 MAC 地址:

  1. $ ifconfig eth0 | grep ether 
  2.         ether 6e:77:0f:b8:8b:6b  txqueuelen 1000  (Ethernet) 
  3. $ ifconfig eth0 down 
  4. $ ifconfig eth0 hw ether 6e:77:0f:b8:8b:6a 
  5. $ ifconfig eth0 up 
  6. $ ifconfig eth0 | grep ether 
  7.         ether 6e:77:0f:b8:8b:6a  txqueuelen 1000  (Ethernet) 

只要我們使用上述的命令就可以輕松地修改當前網卡的 MAC 地址,不過建議不要在遠程的 Linux 機器上使用,最好在本地的 Linux 上測試相關的命令,在修改測試完成之后也最好使用命令將 MAC 地址改回去;在 macOS 上修改 MAC 地址也可以使用 ifconfig 命令,使用的方式與 Linux 幾乎完全相同。

因為 MAC 地址是與硬件綁定的,所以這種修改 MAC 地址的方式其實都是臨時的,一旦操作系統重啟,這些變更就會被系統撤銷,想要讓類似的變更永久生效需要在系統重啟時執行相應的命令或者修改對應的網卡配置文件[^6]。

局域網通信

所有的計算機和終端設備都需要通過網絡適配器連接到局域網中,每一個適配器都有唯一的鏈路層地址,也被叫做 LAN 地址或者 MAC 地址,MAC 地址被設計成了扁平結構,它們不會隨著所處網絡的不同而發生改變。

當設備的網絡適配器想要向其他的適配器發送數據幀時,它會將目的適配器的 MAC 地址插入到如下所示的以太網幀中,每個以太網幀都與 IP 數據報類似,包含源地址和目標地址,只是以太網幀中的地址是 MAC 地址,而 IP 數據報中的地址是 IP 地址:

圖 3 - 以太網幀

局域網中的數據傳輸不是通過網絡層的 IP 地址進行路由和轉發的,然而 IP 地址一般都是發送數據主機知道的唯一信息,想要在局域網中發送數據,還是需要知道它們的 MAC 地址。當我們的設備想要向其他的設備發送數據時,它會先通過 ARP(Address Resolution Protocol,地址解析協議) 在局域網中獲取目的 IP 地址對應的 MAC 地址:

(1)源主機會向當前局域網中發送 ARP 請求,目標的 MAC 地址是 FF-FF-FF-FF-FF-FF,這表示當前請求是一個廣播請求,局域網內的所有設備都會收到該請求;

(2)接收到 ARP 請求的主機都會檢查目的 IP 和自己的 IP 地址是否一致;

  • 如果 IP 地址不一致,主機會忽略當前的 ARP 請求;
  • 如果 IP 地址一致,主機會直接向源主機發送 ARP 響應;

(3)源主機在接收到 ARP 的響應之后,會更新本地的緩存表并繼續向目的主機發送數據;

圖 4 - 地址解析協議

在局域網中我們一般會使用集線器(Hub)或者交換機(Switch)來連接不同的網絡設備。因為在集線器連接的局域網中,所有的數據幀都會被廣播給局域網內的全部主機,所以使用相同的 MAC 地址一般也不會出現太多的問題;但是交換機會學習局域網中不同設備的 MAC 地址并將數據幀轉發給特定主機,所以如果局域網是由交換機構成的,就會影響網絡的通信。

圖 5 - 集線器和交換機

假設局域網中的具有兩臺 MAC 地址完全相同的網絡設備 A 和 B,即 6e:77:0f:b8:8b:6b,當設備 A 想要向設備 B 發送以太網幀時會遇到如下所示的情況:

  • 設備 A 在構造的以太網幀中將源地址和目的地址都設置為 6e:77:0f:b8:8b:6b 并向交換機發送數據;
  • 交換機接收到了設備 A 發送的數據幀后,會從數據幀的源地址學習到設備 A 的 MAC 地址并將 6e:77:0f:b8:8b:6b -> A 這條記錄插入本地緩存中;
  • 交換機發現收到數據幀的目的地址會指向了網絡設備 A,所以它會將該數據轉發回 A;

因為交換機的 MAC 地址學習策略,所以我們不能在同一個局域網中使用相同的 MAC 地址,但是因為 MAC 地址是鏈路層網絡中的概念,跨局域網的網絡傳輸需要通過網絡層的 IP 協議,所以在不同的局域網中使用相同的 MAC 地址就不存在類似的問題了。

總結

MAC 地址是鏈路層網絡中的重要概念,在局域網中會通過 MAC 地址轉發以太網數據幀,全球唯一的 MAC 地址是非常理想的情況,然而在實際的網絡場景中,我們不需要保證如此強的限制:

  • MAC 地址可以通過軟件進行修改,而第三方的山寨廠商不會在 IEEE 中申請獨立的 MAC 地址段,它們也可能會盜用其他廠商申請的 MAC 地址;
  • 保證 MAC 地址在局域網中唯一就不會造成網絡問題,不同局域網中的 MAC 地址可以相同;

上述的結論不是說全球唯一的 MAC 地址沒有意義,與此相反,我們應該盡可能保證 MAC 地址的唯一,這樣在組建局域網時才不需要手動確認所有設備的 MAC 地址,減少網絡工程師的工作量。到最后,我們還是來看一些比較開放的相關問題,有興趣的讀者可以仔細思考一下下面的問題:

  • MAC 地址和 IP 地址之間有什么樣的關系?
  • 為什么我們有了 MAC 地址還需要 IP 地址?

 

責任編輯:趙寧寧 來源: 真沒什么邏輯
相關推薦

2014-01-17 13:09:48

Linux碎片整理

2021-07-06 11:10:22

LinuxmacOSWindows

2021-05-07 15:18:26

比特幣禁令監管

2019-07-15 08:00:00

AI人工智能

2012-06-12 09:46:21

Linux碎片整理

2021-04-27 08:52:55

Linux MacOS碎片

2014-09-24 09:31:31

Dockersshd

2013-09-27 11:31:18

IP地址MAC地址

2021-07-02 09:00:00

自動駕駛特斯拉技術

2022-06-02 16:04:02

DeFi金融比特幣

2015-07-29 09:42:09

工程師全棧工程師

2024-09-19 13:00:26

悲觀鎖SQL樂觀鎖

2017-03-13 13:54:40

戴爾

2022-03-22 13:39:10

框架react面試

2012-08-23 09:50:07

測試測試人員軟件測試

2009-11-23 12:45:22

2019-02-25 08:57:22

5G6G網絡

2015-08-20 10:56:19

算法界面開發

2013-12-02 09:43:29

字符串編程

2024-02-22 09:00:00

LogitMat數據集算法
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91久久综合亚洲鲁鲁五月天 | 在线āv视频 | 国产日韩一区 | 亚洲一区二区三区桃乃木香奈 | av毛片| 一本大道久久a久久精二百 欧洲一区二区三区 | 羞羞视频网站免费观看 | 欧美一级免费黄色片 | 欧美成人精品一区二区男人看 | 亚洲不卡av在线 | 久久大| 久久国产精品一区二区三区 | 亚洲欧美中文字幕 | 国产精品精品久久久 | 国产在线二区 | 亚洲精品中文字幕在线 | 亚洲第一天堂 | 老司机狠狠爱 | 五月婷婷色 | 午夜小视频在线观看 | 91一区二区三区 | 亚洲久久在线 | 久久av网 | 午夜精品久久久久99蜜 | www中文字幕 | 日韩电影免费在线观看中文字幕 | 99精品免费| 羞羞视频在线观看免费观看 | 日本一区二区在线视频 | 欧美在线a | 一片毛片| 亚洲免费视频网址 | 国产视频导航 | 亚洲欧美自拍偷拍视频 | 国产精品久久国产精品 | 久久这里只有精品首页 | 成人精品国产一区二区4080 | 九九亚洲精品 | 欧美日韩综合 | 国产视频久久 | 在线色网 |