MAC與PHY的區別。

1.網卡的基本結構

    一塊以太網網卡包括OSI模型的兩個層,物理層和數據鏈路層。物理層定義了數據傳送與接收所需要的電與光信號、線路狀態、時鐘基準、數據編碼和電路等,並向數據鏈路層設備提供標準接口。數據鏈路層則提供尋址機構、數據幀的構建、數據差錯檢查、傳送控制、向網絡層提供標準的數據接口等功能。以太網卡中數據鏈路層的芯片一般簡稱之爲MAC控制器,物理層的芯片我們簡稱之爲PHY。

 

2.MAC

 

 

     首先我們來說說以太網卡的MAC的功能。以太網數據鏈路層其實包含MAC(介質訪問控制)子層和LLC(邏輯鏈路控制)子層。一塊以太網卡MAC芯片的作用不但要實現MAC子層和LLC子層的功能,還要提供符合規範的PCI界面以實現和主機的數據交換。

    MAC從PCI總線收到IP數據包(或者其他網絡層協議的數據包)後,將之拆分並重新打包成最大1518Byte,最小64Byte的幀。這個幀裏面包括了目標MAC地址、自己的源MAC地址和數據包裏面的協議類型(比如IP數據包的類型用80表示)。最後還有一個DWORD(4Byte)的CRC碼。

    可是目標的MAC地址是哪裏來的呢?這牽扯到一個ARP協議(介乎於網絡層和數據鏈路層的一個協議)。第一次傳送某個目的IP地址的數據的時候,先會發出一個ARP包,其MAC的目標地址是廣播地址,裏面說到:”誰是xxx.xxx.xxx.xxx這個IP地址的主人?”因爲是廣播包,所有這個局域網的主機都收到了這個ARP請求。收到請求的主機將這個IP地址和自己的相比較,如果不相同就不予理會,如果相同就發出ARP響應包。這個IP地址的主機收到這個ARP請求包後回覆的ARP響應裏說到:”我是這個IP地址的主人”。這個包裏面就包括了他的MAC地址。以後的給這個IP地址的幀的目標MAC地址就被確定了。

    IP地址和MAC地址之間的關聯關係保存在主機系統裏面,叫做ARP表,由驅動程序和操作系統完成。在Microsoft的系統裏面可以用 arp -a 的命令查看ARP表。收到數據幀的時候也是一樣,做完CRC以後,如果沒有CRC效驗錯誤,就把幀頭去掉,把數據包拿出來通過標準的接口傳遞給驅動和上層的協議棧,最終正確的達到我們的應用程序。

3.PHY

    以太網MAC芯片的一端接計算機PCI總線,另外一端就接到PHY芯片上。以太網的物理層又包括MII/GMII(介質獨立接口)子層、PCS(物理編碼子層)、PMA(物理介質附加)子層、PMD(物理介質相關)子層、MDI子層。而PHY芯片是實現物理層的重要功能器件之一,實現了前面物理層的所有的子層的功能。PHY在發送數據的時候,收到MAC過來的數據(對PHY來說,沒有幀的概念,對它來說,都是數據而不管什麼地址,數據還是CRC),每4bit就增加1bit的檢錯碼,然後把並行數據轉化爲串行流數據,再按照物理層的編碼規則(10Based-T的NRZ編碼或100based-T的曼徹斯特編碼)把數據編碼,再變爲模擬信號把數據送出去。收數據時的流程則相反。

   

轉自:https://www.cnblogs.com/findumars/p/5803650.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章