偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
MAC 地址(Media access control address)是分配給網(wǎng)絡(luò)接口控制器(Network interface controller, NIC)的唯一標(biāo)識(shí)符,它會(huì)在網(wǎng)絡(luò)段中充當(dāng)網(wǎng)絡(luò)地址使用。

MAC 地址(Media access control address)是分配給網(wǎng)絡(luò)接口控制器(Network interface controller, NIC)的唯一標(biāo)識(shí)符,它會(huì)在網(wǎng)絡(luò)段中充當(dāng)網(wǎng)絡(luò)地址使用,所有具有網(wǎng)卡的主機(jī)都有單獨(dú)的 MAC 地址,該地址總共包含 48 位,占 6 字節(jié)的空間,可以表示 281,474,976,710,656 個(gè)網(wǎng)絡(luò)設(shè)備,一個(gè)正常的 MAC 地址如下所示的格式表示,每個(gè)字節(jié)都會(huì)使用兩位 16 進(jìn)制的數(shù)字:

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

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

圖 1 - MAC 地址

MAC 地址可以使用兩種不同的格式表示,分別是 48 位的 EUI-48 和 64 位的 EUI-64[^3],本文會(huì)使用 EUI-48 格式的 MAC 地址,EUI-64 主要用于 IPv6 協(xié)議,我們?cè)谶@篇文章就不展開(kāi)討論了。在通常情況下,MAC 地址會(huì)使用 24 位表示組織的序列號(hào),但是因?yàn)楹芏嘟M織不會(huì)生產(chǎn)這么多的設(shè)備,所以在實(shí)際操作中會(huì)劃分出三種不同大小的地址塊[^4]:

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

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

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

這種由機(jī)構(gòu)分發(fā) MAC 地址段并由設(shè)備商保證地址唯一的方式就是為了保證全世界所有硬件的網(wǎng)絡(luò)地址唯一,但是在實(shí)際操作中,全球唯一是無(wú)法保證的而且我們也并不需要地址的全球唯一,這主要因?yàn)橐韵聝蓚€(gè)原因:

  • 在不同操作系統(tǒng)上,我們都可以通過(guò)軟件直接修改網(wǎng)卡的 MAC 地址;
  • 只需要保證一個(gè)局域網(wǎng)內(nèi)的 MAC 地址不重復(fù),網(wǎng)絡(luò)就可以正常工作;

修改地址

無(wú)論是在 Linux 上還是在 macOS 上,修改網(wǎng)絡(luò)設(shè)備的 MAC 地址都是非常簡(jiǎn)單的。在 Linux 操作系統(tǒng)中我們可以使用命令 ifconfig 修改設(shè)備上的 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) 

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

因?yàn)?MAC 地址是與硬件綁定的,所以這種修改 MAC 地址的方式其實(shí)都是臨時(shí)的,一旦操作系統(tǒng)重啟,這些變更就會(huì)被系統(tǒng)撤銷,想要讓類似的變更永久生效需要在系統(tǒng)重啟時(shí)執(zhí)行相應(yīng)的命令或者修改對(duì)應(yīng)的網(wǎng)卡配置文件[^6]。

局域網(wǎng)通信

所有的計(jì)算機(jī)和終端設(shè)備都需要通過(guò)網(wǎng)絡(luò)適配器連接到局域網(wǎng)中,每一個(gè)適配器都有唯一的鏈路層地址,也被叫做 LAN 地址或者 MAC 地址,MAC 地址被設(shè)計(jì)成了扁平結(jié)構(gòu),它們不會(huì)隨著所處網(wǎng)絡(luò)的不同而發(fā)生改變。

當(dāng)設(shè)備的網(wǎng)絡(luò)適配器想要向其他的適配器發(fā)送數(shù)據(jù)幀時(shí),它會(huì)將目的適配器的 MAC 地址插入到如下所示的以太網(wǎng)幀中,每個(gè)以太網(wǎng)幀都與 IP 數(shù)據(jù)報(bào)類似,包含源地址和目標(biāo)地址,只是以太網(wǎng)幀中的地址是 MAC 地址,而 IP 數(shù)據(jù)報(bào)中的地址是 IP 地址:

圖 3 - 以太網(wǎng)幀

局域網(wǎng)中的數(shù)據(jù)傳輸不是通過(guò)網(wǎng)絡(luò)層的 IP 地址進(jìn)行路由和轉(zhuǎn)發(fā)的,然而 IP 地址一般都是發(fā)送數(shù)據(jù)主機(jī)知道的唯一信息,想要在局域網(wǎng)中發(fā)送數(shù)據(jù),還是需要知道它們的 MAC 地址。當(dāng)我們的設(shè)備想要向其他的設(shè)備發(fā)送數(shù)據(jù)時(shí),它會(huì)先通過(guò) ARP(Address Resolution Protocol,地址解析協(xié)議) 在局域網(wǎng)中獲取目的 IP 地址對(duì)應(yīng)的 MAC 地址:

(1)源主機(jī)會(huì)向當(dāng)前局域網(wǎng)中發(fā)送 ARP 請(qǐng)求,目標(biāo)的 MAC 地址是 FF-FF-FF-FF-FF-FF,這表示當(dāng)前請(qǐng)求是一個(gè)廣播請(qǐng)求,局域網(wǎng)內(nèi)的所有設(shè)備都會(huì)收到該請(qǐng)求;

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

  • 如果 IP 地址不一致,主機(jī)會(huì)忽略當(dāng)前的 ARP 請(qǐng)求;
  • 如果 IP 地址一致,主機(jī)會(huì)直接向源主機(jī)發(fā)送 ARP 響應(yīng);

(3)源主機(jī)在接收到 ARP 的響應(yīng)之后,會(huì)更新本地的緩存表并繼續(xù)向目的主機(jī)發(fā)送數(shù)據(jù);

圖 4 - 地址解析協(xié)議

在局域網(wǎng)中我們一般會(huì)使用集線器(Hub)或者交換機(jī)(Switch)來(lái)連接不同的網(wǎng)絡(luò)設(shè)備。因?yàn)樵诩€器連接的局域網(wǎng)中,所有的數(shù)據(jù)幀都會(huì)被廣播給局域網(wǎng)內(nèi)的全部主機(jī),所以使用相同的 MAC 地址一般也不會(huì)出現(xiàn)太多的問(wèn)題;但是交換機(jī)會(huì)學(xué)習(xí)局域網(wǎng)中不同設(shè)備的 MAC 地址并將數(shù)據(jù)幀轉(zhuǎn)發(fā)給特定主機(jī),所以如果局域網(wǎng)是由交換機(jī)構(gòu)成的,就會(huì)影響網(wǎng)絡(luò)的通信。

圖 5 - 集線器和交換機(jī)

假設(shè)局域網(wǎng)中的具有兩臺(tái) MAC 地址完全相同的網(wǎng)絡(luò)設(shè)備 A 和 B,即 6e:77:0f:b8:8b:6b,當(dāng)設(shè)備 A 想要向設(shè)備 B 發(fā)送以太網(wǎng)幀時(shí)會(huì)遇到如下所示的情況:

  • 設(shè)備 A 在構(gòu)造的以太網(wǎng)幀中將源地址和目的地址都設(shè)置為 6e:77:0f:b8:8b:6b 并向交換機(jī)發(fā)送數(shù)據(jù);
  • 交換機(jī)接收到了設(shè)備 A 發(fā)送的數(shù)據(jù)幀后,會(huì)從數(shù)據(jù)幀的源地址學(xué)習(xí)到設(shè)備 A 的 MAC 地址并將 6e:77:0f:b8:8b:6b -> A 這條記錄插入本地緩存中;
  • 交換機(jī)發(fā)現(xiàn)收到數(shù)據(jù)幀的目的地址會(huì)指向了網(wǎng)絡(luò)設(shè)備 A,所以它會(huì)將該數(shù)據(jù)轉(zhuǎn)發(fā)回 A;

因?yàn)榻粨Q機(jī)的 MAC 地址學(xué)習(xí)策略,所以我們不能在同一個(gè)局域網(wǎng)中使用相同的 MAC 地址,但是因?yàn)?MAC 地址是鏈路層網(wǎng)絡(luò)中的概念,跨局域網(wǎng)的網(wǎng)絡(luò)傳輸需要通過(guò)網(wǎng)絡(luò)層的 IP 協(xié)議,所以在不同的局域網(wǎng)中使用相同的 MAC 地址就不存在類似的問(wèn)題了。

總結(jié)

MAC 地址是鏈路層網(wǎng)絡(luò)中的重要概念,在局域網(wǎng)中會(huì)通過(guò) MAC 地址轉(zhuǎn)發(fā)以太網(wǎng)數(shù)據(jù)幀,全球唯一的 MAC 地址是非常理想的情況,然而在實(shí)際的網(wǎng)絡(luò)場(chǎng)景中,我們不需要保證如此強(qiáng)的限制:

  • MAC 地址可以通過(guò)軟件進(jìn)行修改,而第三方的山寨廠商不會(huì)在 IEEE 中申請(qǐng)獨(dú)立的 MAC 地址段,它們也可能會(huì)盜用其他廠商申請(qǐng)的 MAC 地址;
  • 保證 MAC 地址在局域網(wǎng)中唯一就不會(huì)造成網(wǎng)絡(luò)問(wèn)題,不同局域網(wǎng)中的 MAC 地址可以相同;

上述的結(jié)論不是說(shuō)全球唯一的 MAC 地址沒(méi)有意義,與此相反,我們應(yīng)該盡可能保證 MAC 地址的唯一,這樣在組建局域網(wǎng)時(shí)才不需要手動(dòng)確認(rèn)所有設(shè)備的 MAC 地址,減少網(wǎng)絡(luò)工程師的工作量。到最后,我們還是來(lái)看一些比較開(kāi)放的相關(guān)問(wèn)題,有興趣的讀者可以仔細(xì)思考一下下面的問(wèn)題:

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

 

責(zé)任編輯:趙寧寧 來(lái)源: 真沒(méi)什么邏輯
相關(guān)推薦

2014-01-17 13:09:48

Linux碎片整理

2021-07-06 11:10:22

LinuxmacOSWindows

2021-05-07 15:18:26

比特幣禁令監(jiān)管

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

自動(dòng)駕駛特斯拉技術(shù)

2022-06-02 16:04:02

DeFi金融比特幣

2015-07-29 09:42:09

工程師全棧工程師

2024-09-19 13:00:26

悲觀鎖SQL樂(lè)觀鎖

2017-03-13 13:54:40

戴爾

2022-03-22 13:39:10

框架react面試

2012-08-23 09:50:07

測(cè)試測(cè)試人員軟件測(cè)試

2009-11-23 12:45:22

2019-02-25 08:57:22

5G6G網(wǎng)絡(luò)

2015-08-20 10:56:19

算法界面開(kāi)發(fā)

2013-12-02 09:43:29

字符串編程

2024-02-22 09:00:00

LogitMat數(shù)據(jù)集算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)