程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 網卡的MAC地址有什麼用

網卡的MAC地址有什麼用

編輯:.NET實例教程

Mac地址就是在媒體接入層上使用的地址,通俗點說就是網卡的物理地址,現在的Mac地址一般都采用6字節48bit(在早期還有2字節16bit的Mac地址)。

    對於Mac地址,由於我們不直接和它接觸,所以大家不一定很熟悉。在OSI(Open System Interconnection,開放系統互連)7層網絡協議(物理層,數據鏈路層,網絡層,傳輸層,會話層,表示層,應用層)參考模型中,第二層為數據鏈路層(Data Link)。它包含兩個子層,上一層是邏輯鏈路控制(LLC:Logical Link Control),下一層即是我們前面所提到的Mac(Media Access Control)層,即介質訪問控制層。所謂介質(Media),是指傳輸信號所通過的多種物理環境。常用網絡介質包括電纜(如:雙絞線,同軸電纜,光纖),還有微波、激光、紅外線等,有時也稱介質為物理介質。MAC地址也叫物理地址、硬件地址或鏈路地址,由網絡設備制造商生產時寫在硬件內部。這個地址與網絡無關,也即無論將帶有這個地址的硬件(如網卡、集線器、路由器等)接入到網絡的何處,它都有相同的MAC地址,Mac地址一般不可改變,不能由用戶自己設定。
    Mac地址前24位是由生產廠家向IEEE申請的廠商地址。後24位就由生產廠家自行定擬了。(早期的2字節的卻不用申請)
   
 一:IP地址和Mac地址有什麼聯系和區別
    對於IP地址,相信大家都很熟悉,即指使用TCP/IP協議指定給主機的32位地址。IP地址由用點分隔開的4個8八位組構成,如192.168.0.1就是一個IP地址,這種寫法叫點分十進制格式。IP地址由網絡地址和主機地址兩部分組成,分配給這兩部分的位數隨地址類(A類、B類、C類等)的不同而不同。網絡地址用於路由選擇,而主機地址用於在網絡或子網內部尋找一個單獨的主機。一個IP地址使得將來自源地址的數據通過路由而傳送到目的地址變為可能。
    現在有很多計算機都是通過先組建局域網,然後通過交換機和Internet連接的。然後給每個用戶分配固定的IP地址,由管理中心統一管理,這樣為了管理方便就需要使用Mac地址來標志用戶,防止發生混亂,明確責任(比如網絡犯罪)。另外IP地址和Mac地址是有區別的,雖然他們在局域網中是一一對應的關系。IP地址是跟據現在的IPv4標准指定的,不受硬件限制比較容易記憶的地址,而Mac地址卻是用網卡的物理地址,多少與硬件有關系,比較難於記憶。
    MAC地址的長度為48位(6個字節),通常表示為12個16進制數,每2個16進制數之間用冒號隔開,如:08:00:20:0A:8C:6D就是一個Mac地址,其中前6位16進制數08:00:20代表網絡硬件制造商的編號,它由IEEE(Istitute of Electrical and Electronics Engineers,電氣與電子工程師協會)分配,而後3位16進制數0A:8C:6D代表該制造商所制造的某個網絡產品(如網卡)的系列號。每個網絡制造商必須確保它所制造的每個以太網設備都具有相同的前三個字節以及不同的後三個字節。這樣就可保證世界上每個以太網設備都具有唯一的Mac地址。
    既然每個以太網設備在出廠時都有一個唯一的MAC地址了,那為什麼還需要為每台主機再分配一個IP地址呢?或者說為什麼每台主機都分配唯一的IP地址了,為什麼還要在網絡設備(如網卡,集線器,路由器等)生產時內嵌一個唯一的Mac地址呢?主要原因有以下幾點:(1)IP地址的分配是根據網絡的拓樸結構,而不是根據誰制造了網絡設置。若將高效的路由選擇方案建立在設備制造商的基礎上而不是網絡所處的拓樸位置基礎上,這種方案是不可行的。(2)當存在一個附加層的地址尋址時,設備更易於移動和維修。例如,如果一個以太網卡壞了,可以被更換,而無須取得一個新的IP地址。如果一個IP主機從一個網絡移到另一個網絡,可以給它一個新的IP地址,而無須換一個新的網卡。(3)無論是局域網,還是廣域網中的計算機之間的通信,最終都表現為將數據包從某種形式的鏈路上的初始節點出發,從一個節點傳遞到另一個節點,最終傳送到目的節點。數據包在這些節點之間的移動都是由ARP(Address Resolution Protocol:地址解析協議)負責將IP地址映射到MAC地址上來完成的。下面我們來通過一個例子看看IP地址和Mac地址是怎樣結合來傳送數據包的。
    假設網絡上要將一個數據包(名為PAC)由臨沭的一台主機(名稱為A,IP地址為IP_A,MAC地址為MAC_A)發送到北京的一台主機(名稱為B,IP地址為IP_B,MAC地址為Mac_B)。這兩台主機之間不可能是直接連接起來的,因而數據包在傳遞時必然要經過許多中間節點(如路由器,服務器等等),我們假定在傳輸過程中要經過C1、C2、C3(其MAC地址分別為M1,M2,M3)三個節點。A在將PAC發出之前,先發送一個ARP請求,找到其要到達IP_B所必須經歷的第一個中間節點C1的MAC地址M1,然後在其數據包中封裝(Encapsulation)這些地址:IP_A、IP_B,Mac_A和M1。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved