乙太網路卡雜記之MAC和PHY

來源:互聯網
上載者:User

網卡工作在osi的最後兩層,物理層和資料連結層。

 

物理層的晶片稱之為PHY。物理層定義了資料傳送與接收所需要的電與光訊號、線路狀態、時鐘基準、資料編碼和電路等,並向資料連結層裝置提供標準介面。

 

乙太網路卡中資料連結層的晶片稱之為MAC控制器, 資料連結層則提供定址機構、資料幀的構建、資料差錯檢查、傳送控制、向網路層提供標準的資料介面等功能。

 

MAC和PHY之間的關係是PCI匯流排接MAC匯流排,MAC接PHY,PHY接網線(當然也不是直接接上的,還有一個變壓裝置),很多網卡的這兩個部分是做到一起的。

PHY和MAC之間互連的介面是IEEE定義的標準:MII/GigaMII(Media Independed Interfade,介質獨立介面)。MII介面傳遞了網路的所有資料和資料的控制。


寫文章的這天有人在網上問, 如果作業系統沒有載入網卡驅動,網卡雖然在系統裝置樹上,但網卡介面建立不了,那網卡實際能不能接收到資料?
下面是我在網上討論的整理:

這裡面有很多細節, 我根據Intel網卡的Spec大概寫了寫, 想盡量寫的通俗一些,所以沒有刻意用Spec裡的術語,另外本文雖然講的是MAC/PHY,但光口卡的(SERDES)也是類似的。


1. PCI裝置做reset以後進入D0uninitialized(非初始化的D0狀態, 參考PCI電源管理規範),此時網卡的MAC和DMA都不工作,PHY是工作在一個特殊的低電源狀態的。


2. 作業系統建立裝置樹時,初始化這個裝置,PCI命令寄存器的 Memory Access Enable or the I/O Access Enable bit會被enable, 這就是D0active。此時PHY/MAC就使能了。


3. PHY被使能應該就可以接收物理鏈路上的資料了,否則不能收到FLP/NLP, PHY就不能建立物理串連。但這類包一般是流量間歇發送的.


4. 驅動程式一般要通過寄存器來控制PHY, 比如自動協商speed/duplex, 查詢物理鏈路的狀態Link up/down。


5. MAC被使能後, 如果沒有驅動設定控制寄存器的一個位(CTRL.SLU
)的話, MAC和PHY是不能通訊的, 就是說MAC不知道PHY的link已經ready, 所以收不到任何資料的。這位設定以後, PHY完成自協商, 網卡才會有個Link change的中斷,知道物理串連已經Link UP了。


6. 即使Link已經UP, MAC還需要enable接收器的一個位(RCTL.RXEN
),包才可以被接收進來,如果網卡被reset,這位是0,意味著所有的包都會被直接drop掉,不會存入網卡的 FIFO。老網卡在驅動退出前利用這位關掉接收。Intel的最新千兆網卡發送接收隊列的動態配置就是依靠這個位的,重新設定的過程一定要關掉流量。



7. 無論驅動載入與否, 發生reset後,網卡EEPOM裡的mac地址會寫入網卡的MAC地址過濾寄存器,
驅動可以去修改這個寄存器,現代網卡通常支援很多MAC地址,也就是說,MAC地址是可以被軟體佈建的。例如,Intel的千兆網卡就支援16個單播
MAC地址,但只有1個是存在EEPROM裡的,其它是軟體聲稱和設定的。


8. 但如果驅動沒有載入,網卡已經在裝置樹上,作業系統完成了步驟1-2的初始化,此時網卡的PHY應該是工作的,但因為沒有人設定控制位(CTRL.SLU)來讓MAC和PHY建立聯絡,所以MAC是不收包的。這個控制位在reset時會再設定成0。


9. PHY可以被軟體佈建加電和斷電, 斷電狀態除了接收管理命令以外,不會接收資料。另外,PHY還能工作在Smart Power Down模式下,link down就進入省電狀態。


10. 有些多口網卡,多個網口共用一個PHY, 所以BIOS裡設定disbale了某個網口, 也未必會把PHY的電源關掉,反過來,也要小心地關掉PHY的電源。


11. 要詳細瞭解PHY,最終還是要熟悉IEEE乙太網路的相關協議。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.