天天看點

有了 IP 位址,為什麼還要用 MAC 位址?

作者:ip資料雲

MAC位址

MAC位址等價于快遞包裹上的收件人姓名。

MAC位址更多是用于确認對方資訊而存在的。就如同快遞跨越幾個城市來到你面前,快遞員需要和你确認一下收件人是否正确,才會把包裹交給你一樣。

有了 IP 位址,為什麼還要用 MAC 位址?

IP66線上查IP位址位置:https://www.ip66.net/?utm-source=LJ&utm-keyword=?1146

有了 IP 位址,為什麼還要用 MAC 位址?

這裡我們模拟一個場景,比如在學校裡同一個班級的學生大家互相都認識,互相交流就不需要借助學号(這裡抽象成ip位址),直接喊名字即可。“喂,那個誰,把你作業讓我抄一下”。

有了 IP 位址,為什麼還要用 MAC 位址?

這個過程可對應網絡中同一個交換機或集線器連接配接的區域網路通信。在區域網路中通信需要通過MAC位址進行通信。将資料封裝成幀時會插入源mac位址和目的mac位址(如果不知到對方mac位址會發送arp廣播封包擷取對方mac位址)。以太網幀結構:

有了 IP 位址,為什麼還要用 MAC 位址?

而後,幀結構再次添加IP頭部資訊。

有了 IP 位址,為什麼還要用 MAC 位址?

雖然這裡有ip位址,但是它在區域網路中不起作用,因為arp是用于網絡中尋址的,而在區域網路中所有主機互相可見。(除此之外,區域網路中ip位址最多是在arp廣播時,作為收到包的主機解包時判定的依據,判定自己是否為目的主機,進而選擇是否回應arp應答)。

有了 IP 位址,為什麼還要用 MAC 位址?

而IP位址的使用條件,是在跨網絡之後。兩個網絡之間想要進行通信需要通過一個媒介,因為在網絡内部的主機定位不到網絡外的某個主機,即使他們隻隔了一個網段也是一樣。(歡迎關注公衆号:網絡工程師阿龍)而跨網段的媒介就是路由器,隻要把ip位址告訴它,他就能找到對方所在的網絡。

這就像是我是2020屆計算機科學專業1班學生xx(學号202015162,15代指專業計算機科學專業,62代指“我”在本班的學号),我現在想找2022屆學弟yy(學号2022…)。我們之間不認識,但是我可以找一個中間人,幫我送信。

有了 IP 位址,為什麼還要用 MAC 位址?

這個中間人是區域網路網關,是路由器。他們的功能是,轉述我的消息,并且按照目的ip位址将它發給下一個“中間人”,最後送到“yy”手中。

以下是關于mac位址與ip位址的愛恨糾纏… 以下内容有借鑒到文章:《閃客sun(低并發程式設計):如果讓你來設計網絡》

首先我們需要明确的是,MAC位址的誕生早于IP位址。在計算機設計之初,裝置之間使用MAC位址互相确認身份,因為當時的網絡拓撲并不大,我們完全可以讓兩台計算機之間兩兩互相發送資料。如果有5個主機需要互通的話,那麼它的拓撲結構可能是這樣:

有了 IP 位址,為什麼還要用 MAC 位址?

如果是這樣的話,我們其實無需MAC位址,因為每個網卡明确對應一台主機。而實際是,一台計算機要配置這麼多網卡的需要耗費更多的money,你也不想買一台計算機後還需要額外再買十幾個網卡把。

是以我們可以采用集線器的方式将所有計算機通過網線聚集在一起會更加友善。

有了 IP 位址,為什麼還要用 MAC 位址?

每台主機發送資料前需要攜帶自己和對方的目的MAC位址,因為hub集線器隻是将所有資料從其他接口發送出去,它将資料的是否接收留給了主機自己判斷。

有了 IP 位址,為什麼還要用 MAC 位址?

集線器隻是無腦的做資料發送,是以我們認為它是資料鍊路層的裝置。

集線器太笨了,它将每一通信都發給所有主機,在各主機之間交流頻繁時會造成網絡的擁堵乃至癱瘓,是以我們進行了更新,使用交換機裝置。

交換機内部維護一張 MAC 位址表,記錄MAC位址與交換機各端口之間的關系,這樣就無需将所有資料發送的區域網路中。通過思科的Cisco packet tracer仿真軟體可以看到交換機的MAC位址表。

有了 IP 位址,為什麼還要用 MAC 位址?

這樣,當pc0(192.168.1)ping pc3(192.168.4)時,交換機查自己的mac表,發現自己的以太網fa0/4接口的出口對應的就是目的主機mac位址,則交換機将自己該資料封包轉發從fa0/4接口轉發出去。同時pc3收到了來自pc0的資料封包。

交換機相對集線器,擁有決定資料從交換機的哪個端口轉發出去的功能,是以我們認為交換機在資料鍊路層(決定資料轉發至哪一條鍊路上)。

以上集線器和交換機都是區域網路的通行,無需IP位址參與。而随着網絡的擴大,區域網路規則已經不再适合了。

許多個類似上述的區域網路組成一個大的網際網路。它們彼此相連互相通信。

有了 IP 位址,為什麼還要用 MAC 位址?

如果在學校網絡内部向通路某個研究機構共享的資料,這就是跨網絡通路了。此時IP位址才派上用場。ip位址給出一段段具備層級關系的數字位址,它就像思維導圖一樣可以通過給定位址高效的找出我們想要的那一項。

當有網絡連接配接上網際網路時,給它配置設定一個ip位址,這樣就能通過這些ip位址确定對方網絡(或裝置)在網際網路絡中的位置,進而進行通路。

有了 IP 位址,為什麼還要用 MAC 位址?

連接配接在網際網路上的具有ip的可以是一個單個的裝置,比如某個伺服器、某個網絡攝像頭等,也可以是某個區域網路,如學校的校園網,公司内部網絡等(區域網路與公網通信使用NAT、PAT等方式,或内網穿透等技術)。

為了實作在網絡中,跨網段的通路,是以誕生出新的裝置叫路由器。它可以根據内置的路由條目決定将資料包轉發到哪個網絡中,最終可以到達目的網絡。

有了 IP 位址,為什麼還要用 MAC 位址?

需要注意的是,路由器是多個網絡的中間人,它有很多端口分别處于不同的網絡中(路由器的每一個端口,都有獨立的 MAC 位址和IP位址),這樣它就可以把“來自A網絡的資訊轉發至B網絡,因為路由器的接口同時連接配接這這幾個網絡”。

有了 IP 位址,為什麼還要用 MAC 位址?

路由器可以讓資料在網絡中跨網絡的通信,是以我們認為路由器是網絡層的裝置。

終于,我們理清楚了整個IP與MAC的關系。總結一下:

  • 各個裝置之間傳遞資料時,需要使用到MAC位址以确定對方的身份(場景:兩個路由器之間跳轉,區域網路内主機通信)。
  • 各個網路之間通行需要使用到IP位址,主要是為了定位目的位址所在的位置 https://www.ip66.net/?utm-source=LJ&utm-keyword=?1146 ,通過IP的分段機制推演出從源IP到目的IP的一條路徑,而後資料包通過這條路徑将資料送達。