Mac 地址會不會有重複的?
IP 地址和 Mac 地址產生的目的是方便別人找到自己
Mac 地址有點像身份證號碼,而 IP 地址就像門牌號碼。在茫茫大海中僅憑一個身份證號碼找到一顆別樣的沙粒很難,但如果先找到具體的沙灘,沙灘劃分很小的網格片區,就很容易通過身份證找到這顆別樣的沙粒了。
MAC 地址(物理地址、硬件地址)是實實在在的網絡設備出身地址,它是由廠商寫入網絡設備的 bios 中。
網絡設備廠商也並不能隨意的使用 Mac 地址,需要向 IEEE 申請,當然廠商申請需要付費。
Mac 地址通常表示爲 12 個 16 進制數,每 2 個 16 進制數之間用冒號隔開,前 6 位 16 進制數代表了網絡硬件製造商的編號,由 IEEE 分配,而後 3 位 16 進制數是由網絡產品製造產商自行分配。這樣就可以保證世界上每個網絡設備具有唯一的 MAC 地址,比如一臺電腦的網卡壞掉了之後,更換一塊網卡之後 MAC 地址就會變。
IP 地址是出於拓撲設計出來的,它爲互聯網上每一個網絡和每一臺主機分配一個邏輯地址,以此來屏蔽物理地址的差異。對於路由器、電腦等網絡設備,只要 IP 地址不重複情況下,IP 地址是可以隨意的修改。
網絡的變遷
早期的以太網只有集線器(Hub)、沒有交換機(Switch),所以發出去的包能被以太網內所有的機器監聽到,所以數據包就需要帶上源 mac 地址和目的 mac 地址,每個機器只需要接受和自己的 MAC 地址相匹配的數據包。
局域網數據傳輸並不是通過網絡層的 IP 地址進行路由和轉發,想要在局域網中發送數據,還需要知道設備的 mac 地址。比如我們的電腦向其他局域網中的其他電腦發送數據時,它會先通過 ARP(地址解析協議)在局域網中獲取目的 IP 地址所對應的 MAC 地址。
step1:源主機首先會向局域網中發送 ARP 的廣播請求,只要目標 mac 地址是 FF:FF:FF:FF:FF:FF,局域網內的所有設備都會受到這個請求。
step2:接收到 ARP 請求的設備會檢查目的 IP 地址和自己的 IP 地址是否一致,不一致就會忽略當前的 ARP 請求,一致就會向源主機發送 ARP 響應。
step3:源主機接收到 ARP 響應後就會更新本地緩存表並繼續向目的主機發送數據。
在局域網中如果採用集線器來連接不同的網絡設備,相同的 MAC 地址一般不會出現太多的問題,因爲在集線器連接的局域網中所有的數據幀都會被廣播給局域網內的全部主機,而如果通過交換機連接不同的網絡設備就會受到影響,因爲交換機需要學習局域網中不同設備的 Mac 地址並將數據幀轉發給特定的主機。
所以 Mac 地址其實是可以重複使用的,只是不能在同一個局域網中使用相同的 MAC 地址,而跨局域網的網絡傳輸則需要通過網絡層的 IP 協議,所以在不同的局域網使用相同的 Mac 地址就不存在類似的問題。
Mac 地址會有重複
按照 IEEE 的協定每個網絡設備出廠都會有全球唯一的 Mac 地址,並且使用過的也不會再重複使用。但不意味着 Mac 地址就不會出現重複了,很多小夥伴們都改過 Mac 地址,有的直接可以通過系統進行修改。
有的網絡設備允許你在管理後臺手動的修改 mac 地址。
以上這些都是通過虛擬的方式覆蓋原有的 Mac 地址,並沒有更改掉設備出身時烙印的 Mac 地址。出身時烙印的 Mac 地址也並不是不能修改,通過硬件寫入的方式同樣的可以修改 Mac 地址,本質上 Mac 地址就是一串二進制數,存放在了 bios 的某個存儲區域內。
作者:匯聚魔杖
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/0VWS8Dx0VvzbuOftTERHmg