首先必須明白兩點:
- 網絡的MAC層提供單點傳播,廣播,多點傳播服務,網絡是否具備單點傳播,廣播,多點傳播能力,由MAC層是否提供單點傳播,廣播,多點傳播服務決定
- 網絡的IP層設定單點傳播,廣播,多點傳播方式,根據IP位址,包括IP單點傳播位址,IP廣播位址,IP多點傳播位址,IP層的單點傳播,廣播,多點傳播在送往MAC層時,要在MAC層進行映射
10M以太網
10M的以太網就是隻能提供廣播MAC服務的網絡,是以即使它根據IP位址填寫了單點傳播MAC位址,但是它的收發實際上都是廣播的
100M以太網
100M的以太網不同,100M以上的以太網必須以交換機作為組網和轉發的方式
IP層
如果IP層給出的是單點傳播IP位址
那麼MAC層會根據鄰居清單裡的IP-MAC對應關系把目标MAC位址填到MAC層,然後交換機根據目标MAC位址在交換機的MAC-PORT轉發表裡查找到對應的端口号,把資料包轉發到對應的端口,實作單點傳播
如果IP層給出的是廣播IP位址
那麼MAC層會根據廣播IP位址把MAC層設定為廣播,把MAC位址設定為廣播MAC位址,交換機根據廣播MAC位址,會在每個端口(發端口除外)複制一份資料包,以使得這個包可以到達整個廣播域裡的每個主機,實作廣播,其本質是交換機的泛洪轉發
如果IP層給出的是多點傳播IP位址
那麼MAC層會根據多點傳播IP位址把MAC層設定為多點傳播,把MAC位址設定為多點傳播MAC位址,交換機根據多點傳播MAC位址,查找多點傳播組内的所有主機,再根據MAC-PORT轉發表查找它們的端口号,把資料包轉發到它們的端口,實作多點傳播
通過IGMP協定實作加入或離開多點傳播組
為什麼既需要mac位址又需要ip位址
幾種說法
- 在開始學習以太網協定時,接觸的書籍,諸如<<圖解TCP IP>>,裡面的解釋是這樣的
- 不過我并不喜歡這個解釋,或者說這個說法并不能完全解答為什麼mac位址和ip位址在網絡通信中缺一不可,是以我又在知乎上看到了大神的見解,我更傾向于這個
- 還有的說法是ip位址屬于網絡層,網絡層屬于作業系統,是軟體,而mac位址是資料鍊路層,資料鍊路層屬于裝置驅動程式,是硬體。ip位址和mac位址實作了從軟體到硬體驅動
我的了解
在計算機和網絡剛成型時,隻有幾台裝置互聯,隻需要微型晶片和網卡,就可以實作網絡通信
後來随着接入裝置較多,出現了交換機,實作了區域網路二層轉發,這時候還是隻需要mac位址就足夠
随着裝置越來越多,如果所有裝置同用一個廣播域,就會造成網絡負擔,而mac并不能劃分網段
這時候需要把網絡分割成不同的區域網路,就有了ip位址,它由網絡位址和主機位址組成,它可以在網絡層劃分網段
是以,我是從網絡發展的角度分析mac位址和ip位址的必要性,也許網絡的發展并不是完全如此,有興趣的可以自己查閱網絡發展史