聲明:資料來源於網絡整理。
一、TCP/IP四層模型
數據鏈路層:實現網卡接口的網絡驅動程序,處理數據在物理媒介(比如以太網、令牌環等)上的傳輸。數據鏈路層兩個常用的協議是ARP協議(Address Resolve Protocol,地址解析協議)和RARP協議(ReverseAddress Resolve Protocol,逆地址解析協議)。
- ARP:將物理地址轉化爲IP地址;
- RARP:將IP地址轉換爲物理地址;
- 網絡層使用IP地址尋址設備,數據鏈路層使用物理地址(MAC地址)尋址設備;
- ARP協議很不安全,它會全網廣播你的IP和MAC。
二、網絡收包
1、硬件結構
intel82546:PHY與MAC集成在一起的PCI網卡芯片;
bcm5461:PHY芯片,與之對應的MAC是TSEC;
TSEC:Three Speed Ethernet Controller,三速以太網控制器,TSEC內部有DMA子模塊;
DMA:(Direct Memory Access,直接存儲器訪問) ,它將數據從一個地址空間複製到另外一個地址空間,而無需CPU的參與。
2、收包原理
no NAPI:mac每收到一個以太網包,都會產生一個接收中斷給cpu,即完全靠中斷方式來收包。缺點是當網絡流量很大時,cpu 大部分時間耗在處理mac中斷;
netpoll: 輪詢收包,缺點是實時性差;
NAPI: 採用 中斷 + 輪詢 的方式。mac收到一個包來後會產生接收中斷,但是馬上關閉。
直到收夠了n個包,或者收完mac上所有包後,纔再打開接收中斷。
3、收包流程
網線 -> Rj45網口 -> MDI 差分線->bcm5461(PHY芯片進行數模轉換) -> MII總線->
TSEC(MAC) -> DMA把網絡數據包搬到CPU收包緩存->收夠n個包,CPU開始處理
三、網絡發包
預先把發送的數據拷貝到一個物理連續的緩衝區裏,然後把緩衝區的物理地址傳遞給網卡,啓動網卡傳輸,網卡就用DMA方式把數據發送出去。發送成功後給出一箇中斷,表示發送完成。
四、關鍵硬件
1、PHY
物理接口收發器,它實現物理層。IEEE-802.3標準定義了以太網PHY,包括MII/GMII(介質獨立接口)子層,PCS(物理編碼子層),PMA(物理介質附加)子層,PMD(物理介質相關)子層,MDI子層。它符合IEEE-802.3k中用於10BaseT(第14條)100BaseTX(第24條和第25條)的規範。
2、MAC
MAC即Media Access Control,即媒體訪問控制子層協議。該協議位於OSI七層協議中數據鏈路層的下半部分,主要負責控制與連接物理層的物理介質。在發送數據的時候,MAC協議可以事先判斷是否可以發送數據,如果可以發送將給數據加上一些控制信息,最終將數據以及控制信息以規定的格式發送到物理層;在接收數據的時候,MAC協議首先判斷輸入的信息並是否發生傳輸錯誤,如果沒有錯誤,則去掉控制信息發送至LLC層。
3、MII總線
在IEEE802.3中規定的,MII總線是一種用於將不同類型的PHY與相同網絡控制器(MAC)相連接的通用總線,使網絡控制器可以用同樣的硬件接口與任何PHY 通信。ETHERNET的接口實質是MAC通過MII總線控制PHY的過程。
五、問答
問:10BaseT和100BaseTX PHY實現方式不同的原因何在?
答:兩種實現的分組描述本質上是一樣的,但兩者的信令機制完全不同。其目的是一種讓硬件,容易實現處理兩種速度。10BaseT採用曼徹斯特編碼,100BaseTX採用4B/5B編碼。
問:網卡的MAC和PHY間的關係?
答:網卡工作在osi的最後兩層,物理層和數據鏈路層。
物理層定義了數據傳送與接收所需要的電與光信號、線路狀態、時鐘基準、數據編碼和電路等,並向數據鏈路層設備提供標準接口,物理層的芯片稱之爲PHY。
數據鏈路層則提供尋址機構、數據幀的構建、數據差錯檢查、傳送控制、向網絡層提供標準的數據接口等功能。以太網卡中數據鏈路層的芯片稱之爲MAC控制器。很多網卡的這兩個部分是做到一起的,他們之間的關係是PCI總線接MAC總線,MAC接PHY,PHY接網線(PHY與網線間,還有一個變壓裝置)。