們都知道上網需要IP地址和MAC地址(不知道也沒關系,請看下文),也稱為邏輯地址和物理地址。
IP地址和MAC地址有什么聯系和區別?
我們打個比方,以日常剁手網購寄快遞為例:
IP地址是你的收貨地址,也就是你目前住在哪里,比方說XXX省XX市XX小區5-2-1,這樣快遞公司就可以依據這個地址進行分揀(路由)并派快遞車輛向目的地進發(發送網絡信息),但光知道地址不行,還得知道收貨人的姓名或電話,這就是MAC地址,也就是你身份證,證明你身份的唯一標識(因為電話現在也是實名的所以等同),這樣快遞小哥就可以在貨到之后打電話投遞了。
IP地址-》收貨地址或者家庭住址,可以更換,甚至每天都在更換。你的手機在家上網和在單位、外面上網用的是不同的IP地址。
IP地址
MAC地址-》身份證號,固化地址,一般無法更改。
MAC地址
從上面的例子可以看出:網絡上的信息發送或者接收,離不開IP(邏輯)地址+MAC(物理)地址的配合,當信息進入局域網網關之前,由IP地址(網絡層)路由器主導路由(尋找信息傳遞路徑);進入局域網(數據鏈路層)之后由交換機主導(MAC地址表)傳送信息。中間由ARP(地址解析協議)/RARP(反向地址解析協議)負責轉換兩種地址。
MAC地址:固化在你網卡ROM芯片上的48位全球唯一標識(地址)。前24位由IEEE組織分配,后24位由網卡生產廠商自行指派。
IP地址:互聯網上每一臺主機或路由器的唯一32位標識符。
關注作者,持續通俗化講解網絡知識。
是“網絡極客”,全新視角、全新思路,帶你遨游神奇的網絡世界。
網絡百問,每天解決一個網絡小問題,積少成多,網絡問題無師自通。今天,我們來看一看MAC地址與IP地址之間的區別。
首先看看到底什么是IP地址?什么是MAC地址?在來談談他們之間的區別。
一、MAC地址
MAC(Media Access Control或者Medium Access Control)地址,意譯為媒體訪問控制,或稱為物理地址、硬件地址,用來定義網絡設備的位置。
二、IP地址
IP地址是指互聯網協議地址(英語:Internet Protocol Address,又譯為網際協議地址),是IP Address的縮寫。IP地址是IP協議提供的一種統一的地址格式,它為互聯網上的每一個網絡和每一臺主機分配一個邏輯地址,以此來屏蔽物理地址的差異。
一、MAC地址是物理地址,IP地址是邏輯地址。什么意思?MAC地址是不可改變的,IP地址是動態的、可以更改的;
二、MAC地址具有唯一性,每個硬件出廠時候的MAC地址是固定的;IP地址不具備唯一性,因此,很多應用軟件是圍繞MAC地址開發的。
三、工作層次不同
二層基于MAC地址轉發數據幀,三層基于IP地址轉發報文。二層交換機基于MAC地址表轉發數據,路由器基于路由表(IP地址)轉發數據。
四、長度定義
MAC地址是Ethernet網卡上帶的地址,長度為48位;IP地址目前主流是32位長。
IP地址和MAC地址通過ARP協議聯系到一起。
歡迎大家留言討論,喜歡的話點點關注哦。
教計算機網絡課程中,經常會碰到這樣的問題,為什么需要兩個地址:一個是MAC(物理地址),另一個是IP地址。各種解釋都有,基本上一個觀點就是一個是物理地址,一個是邏輯地址。然而,這樣的解釋太抽象,什么是物理,什么是邏輯。這些抽象的表述會讓人無法理解到其本質。下面我就談談這個問題。
要想說明這個問題,首先得說說計算機網絡的目標是什么。計算機網絡的根本目標就是將數據從一點傳送到另外一點。聽起來很簡單,但是里面包含的意思很多。例如,兩個點之間是在同一個網絡還是跨網絡連接的,如何才能將數據正確的傳送到對方,如果出現錯誤怎么辦等等。
為了說明問題的本質,我們首先將問題簡化:假設兩點在一個網絡內。在這種情況下,只需要MAC地址就可以了。例如通過交換機將多臺電腦組成一個網絡,為了找到對方,必須通過一個地址來標識。就像寄快遞一樣,如果沒有地址,快遞員是無法將快遞送到對方的所在地的。這就是我們所說的MAC地址。當A點要將數據傳遞給B點時,會在數據的首部添加B的MAC地址,即目標地址。當然在首部中也有源地址,即發送方的MAC地址,還有其它一些信息,例如用于校驗的等等。組裝好的這個數據稱為幀。然后A點就將幀通過網卡發送出去。
此時交換機收到這個幀后,查找自己的轉發表。轉發表主要有兩列,一列是MAC地址,另外一列是該MAC地址對應的端口。查找的結果只有兩種情況:找到或沒找到。如果找到就將數據從該MAC對應的端口轉發出去。如果沒找到,很簡單,交換機會把幀向所有端口廣播(除了該幀進入的端口),因此肯定會有一個合適的端口收到的。這個廣播的方法很粗暴,也很奏效。
這就是MAC地址的作用。MAC地址是刻錄在網卡這個物理設備上的,一般是無法改變的。
然而,如果兩點不在一個網絡內。這時就需要IP地址了。因為IP地址含有兩個部分,一個是網絡地址,一個是主機地址。因此,通過對方的IP地址,是可以判斷出對方是否和本機在一個網絡內。如果在一個網絡內,如上所述,只需要知道對方的MAC地址即可通信。
如果不在一個網絡內,本機的網絡層就認為數據應該發送給網關。道理是顯然的,如果不在一個網絡內,首先得把數據發送出網絡才可以。如何發出網絡,當然是發給網關,因為網關就相當于網絡的門衛。要想把數據發給網關,同樣需要知道網關的MAC地址,如何知道網關的MAC地址呢?這就涉及到ARP協議。
電腦緩存里有一張ARP表,該表主要有兩列:一列是IP地址,另外一列是MAC地址。這張表不是天生就有的,是隨著網卡收到網絡中的各種通信數據,不斷學習增加的。
話說回來,如果ARP表中有網關IP地址對應的MAC地址,則問題就轉化為網內數據發送,上面已經講的很清楚了。如果ARP表中沒有網關IP地址對應的MAC地址,則啟動ARP協議,即向網內廣播,詢問該IP地址的MAC地址。廣播詢問的結果是網關收到廣播后,發現是問自己的MAC地址,所以就回復詢問方自己的MAC地址。然后數據發給網關的問題,也轉化為網內數據發送,上面已經講的很清楚了。
大家發現沒有,在跨網通信時是需要IP地址的。因為需要通過IP地址來判斷是網內通信還是網外通信。有人可能會說,讓MAC地址也具有能夠區分網絡的特征不就可以不需要IP了么。事實上這樣做是不實際的。每個網卡出廠時就有一個獨一無二的MAC地址,出場時是不可能知道你用它時是在哪一個網絡里,也就是天生它就不具有能夠區分網絡的特性。而且也不需要它具有這種特性。因為MAC只負責設備到設備的通信就夠了。這層通信是真正的通信,所以稱為物理通信。
而跨網絡傳輸數據時,需要考慮傳輸的路徑,即為了到達目的地,下一跳應該去哪兒,從而一跳一跳的傳輸到目的地。而網內傳輸,不需要考慮傳輸路徑,只要發出去一定可以到達。最壞情況下就是通過廣播傳輸也能到達。而跨網絡傳輸時,這一招不靈了。因此,跨網傳輸時需要考慮網絡之間的傳輸,需要使用能夠表示網絡特征的地址,即IP地址。所以IP地址是負責網絡到網絡傳輸的。
至于發給網關后,下一步發給誰,本機就管不著了。本機只能保證在網絡內傳輸,即下一跳的概念。下下一跳,只能由網關來負責了。其實網關就是路由器的一個接口。網關通過IP地址來確定路由,通過find路由表來 確定下一跳應該去往哪個網絡,然后就將數據從連接那個網絡的路由器的接口發送出去。發送出去同樣要判斷目標IP是和當前路由接口的網絡是否同一網絡。問題又回到上面講的過程了。所以周而復始。
可見IP地址和MAC地址的概念并不矛盾。他們之間是不同層次的,就像有了領導還必須有群眾才可以,誰也離不開誰。數據從一點傳到另外一點,要經過幾個網絡,網絡路線是怎樣的,需要使用IP地址來解決。而網內傳輸需要使用MAC地址來傳輸。可見沒有網內真正的通信傳輸,何以實現網絡之間的通信。而如果沒有網絡路由的路徑的話,數據是不可能到達目的地的,因為方向都沒有。
如果再往深里挖掘,地址的概念還可以包括網址。就像百度的網址,我們為什么有了IP還需要網址呢?這超過了我們的題目范圍,下次再說。
你可以試試IP數據云,可以精準查詢IP歸屬地(最高到街道)、IP應用場景;而且,還能查出哪些是代理IP。
想要查詢IP歸屬地,精確到街道級別的,可以輸入網址免費查IP地址→免費IP地址查詢 - 全球IP地址定位 - IP數據云,免費測試!
精準識別IP是不是代理IP,是不是真人IP~~