當(dāng)前位置:首頁>職場>請描述網(wǎng)卡工作原理及網(wǎng)卡的分類(網(wǎng)卡工作原理詳解)
發(fā)布時間:2024-01-24閱讀(11)
此篇文章對網(wǎng)上現(xiàn)有資料進(jìn)行了整理和補(bǔ)充,提取出有用的部分,進(jìn)行存檔學(xué)習(xí)。
一,認(rèn)識網(wǎng)卡
網(wǎng)卡(Network Interface Card,簡稱NIC),也稱網(wǎng)絡(luò)適配器,是電腦與局域網(wǎng)相互連接的設(shè)備。無論是普通電腦還是高端服務(wù)器,只要連接到局域網(wǎng),就都需要安裝一塊網(wǎng)卡。如果有必要,一臺電腦也可以同時安裝兩塊或多塊網(wǎng)卡。
一塊網(wǎng)卡包括OSI 模型的兩個層,物理層和數(shù)據(jù)鏈路層:
1》物理層定義了數(shù)據(jù)傳送與接收所需要的電與光信號、線路狀態(tài)、時鐘基準(zhǔn)、數(shù)據(jù)編碼和電路等,并向數(shù)據(jù)鏈路層設(shè)備提供標(biāo)準(zhǔn)接口。
2》數(shù)據(jù)鏈路層則提供尋址機(jī)構(gòu)、數(shù)據(jù)幀的構(gòu)建、數(shù)據(jù)差錯檢查、傳送控制、向網(wǎng)絡(luò)層提供標(biāo)準(zhǔn)的數(shù)據(jù)接口等功能。
二:網(wǎng)卡的組要作用
網(wǎng)卡的功能主要有兩個:
一是將電腦的數(shù)據(jù)封裝為幀,并通過網(wǎng)線(對無線網(wǎng)絡(luò)來說就是電磁波)將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)上去;
二是接收網(wǎng)絡(luò)上其它設(shè)備傳過來的幀,并將幀重新組合成數(shù)據(jù),發(fā)送到所在的電腦中。
網(wǎng)卡能接收所有在網(wǎng)絡(luò)上傳輸?shù)男盘枺G闆r下只接受發(fā)送到該電腦的幀和廣播幀,將其余的幀丟棄。然后,傳送到系統(tǒng)CPU 做進(jìn)一步處理。當(dāng)電腦發(fā)送數(shù)據(jù)時,網(wǎng)卡等待合適的時間將分組插入到數(shù)據(jù)流中。接收系統(tǒng)通知電腦消息是否完整地到達(dá),如果出現(xiàn)問題,將要求對方重新發(fā)送。
三:網(wǎng)卡的組成和工作原理

圖1 網(wǎng)卡
以最常見的PCI接口的網(wǎng)卡為例:
網(wǎng)卡的組成:
(1)主芯片:網(wǎng)卡的主控制芯片是網(wǎng)卡的核心元件,一塊網(wǎng)卡性能的好壞和功能的強(qiáng)弱多寡,主要就是看這塊芯片的質(zhì)量。如下圖所示:

主芯片
(2)BOOTROM槽:BOOTROM 插座也就是常說的無盤啟動ROM 接口,其是用來通過遠(yuǎn)程啟動服務(wù)構(gòu)造無盤工作站的。如下圖所示:

BOOTROM槽
(3)數(shù)據(jù)泵:作用一是傳輸數(shù)據(jù);二是隔離網(wǎng)線連接的不同網(wǎng)絡(luò)設(shè)備間的不同電平,還能對設(shè)備起到一定的防雷保護(hù)作用。如下圖所示:

數(shù)據(jù)泵
(4)晶振即石英振蕩器,提供基準(zhǔn)頻率,如下圖所示:

晶振即石英振蕩器
(5)LED指示燈:用來標(biāo)識網(wǎng)卡的不同工作狀態(tài),例如,Link/Act表示連接活動狀態(tài),F(xiàn)ull表示是否全雙工,而Power是電源指示。
(6)網(wǎng)線接口:有BNC接口和RJ-45接口,目前主要使用8芯線的RJ-45接口。

網(wǎng)線接口
(7)總線接口:用于網(wǎng)卡與電腦相連接,內(nèi)置式網(wǎng)卡需要通過俗稱“金手指”的總線接口插在計算機(jī)主板的擴(kuò)展槽中。主要有ISA,PCI,PCMCIA和USB等常見的是PCI總線接口的網(wǎng)卡。
四:網(wǎng)卡的工作原理
網(wǎng)卡充當(dāng)計算機(jī)和網(wǎng)絡(luò)纜線之間的物理接口或連線,負(fù)責(zé)將計算機(jī)中的數(shù)字信號轉(zhuǎn)換成電或光信號。
網(wǎng)卡要承擔(dān)串行數(shù)據(jù)或并行數(shù)據(jù)間的轉(zhuǎn)換,數(shù)據(jù)在計算機(jī)總線中并行傳輸,而在網(wǎng)絡(luò)的物理纜線中以串行的比特流傳輸。
以太網(wǎng)卡中數(shù)據(jù)鏈路層的芯片一般簡稱之為 MAC 控制器,物理層的芯片我們簡稱之為PHY。許多網(wǎng)卡的芯片把MAC 和PHY 的功能做到了一顆芯片中,比如Intel 82559 網(wǎng)卡的和3COM 3C905 網(wǎng)卡。但是MAC 和PHY 的機(jī)制還是單獨(dú)存在的,只是外觀的表現(xiàn)形式是一顆單芯片。當(dāng)然也有很多網(wǎng)卡的MAC 和PHY 是分開做的,比如D-LINK 的DFE-530TX等。
1 數(shù)據(jù)鏈路層MAC 控制器
首先我們來說說以太網(wǎng)卡的 MAC 芯片的功能。以太網(wǎng)數(shù)據(jù)鏈路層其實包含MAC(介質(zhì)訪問控制)子層和LLC(邏輯鏈路控制)子層。一塊以太網(wǎng)卡MAC 芯片的作用不但要實現(xiàn)MAC 子層和LLC 子層的功能,還要提供符合規(guī)范的PCI 界面以實現(xiàn)和主機(jī)的數(shù)據(jù)交換。MAC 從PCI 總線收到IP 數(shù)據(jù)包(或者其他網(wǎng)絡(luò)層協(xié)議的數(shù)據(jù)包)后,將之拆分并重新打包成最大1518Byte,最小64Byte 的幀。這個幀里面包括了目標(biāo)MAC 地址、自己的源MAC 地址和數(shù)據(jù)包里面的協(xié)議類型(比如IP 數(shù)據(jù)包的類型用80 表示)。最后還有一個DWORD(4Byte)的CRC 碼。可是目標(biāo)的 MAC 地址是哪里來的呢?這牽扯到一個ARP 協(xié)議(介乎于網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層的一個協(xié)議)。第一次傳送某個目的IP 地址的數(shù)據(jù)的時候,先會發(fā)出一個ARP 包,其MAC 的目標(biāo)地址是廣播地址,里面說到:"誰是xxx.xxx.xxx.xxx 這個IP 地址的主人?"因為是廣播包,所有這個局域網(wǎng)的主機(jī)都收到了這個ARP 請求。收到請求的主機(jī)將這個IP地址和自己的相比較,如果不相同就不予理會,如果相同就發(fā)出ARP 響應(yīng)包。這個IP 地址的主機(jī)收到這個ARP 請求包后回復(fù)的ARP 響應(yīng)里說到:"我是這個IP 地址的主人"。這個包里面就包括了他的MAC 地址。以后的給這個IP 地址的幀的目標(biāo)MAC 地址就被確定了。(其它的協(xié)議如IPX/SPX 也有相應(yīng)的協(xié)議完成這些操作。)IP 地址和MAC 地址之間的關(guān)聯(lián)關(guān)系保存在主機(jī)系統(tǒng)里面,叫做ARP 表,由驅(qū)動程序和操作系統(tǒng)完成。在Microsoft 的系統(tǒng)里面可以用 arp -a 的命令查看ARP 表。收到數(shù)據(jù)幀的時候也是一樣,做完CRC 以后,如果沒有CRC 效驗錯誤,就把幀頭去掉,把數(shù)據(jù)包拿出來通過標(biāo)準(zhǔn)的借口傳遞給驅(qū)動和上層的協(xié)議客棧,最終正確的達(dá)到我們的應(yīng)用程序。還有一些控制幀,例如流控幀也需要MAC 直接識別并執(zhí)行相應(yīng)的行為。以太網(wǎng)MAC芯片的一端接計算機(jī)PCI 總線,另外一端就接到PHY 芯片上。以太網(wǎng)的物理層又包括MII/GMII(介質(zhì)獨(dú)立接口)子層、PCS(物理編碼子層)、PMA(物理介質(zhì)附加)子層、PMD(物理介質(zhì)相關(guān))子層、MDI 子層。而PHY 芯片是實現(xiàn)物理層的重要功能器件之一,實現(xiàn)了前面物理層的所有的子層的功能。
2 物理層PHY
PHY 在發(fā)送數(shù)據(jù)的時候,收到MAC 過來的數(shù)據(jù)(對PHY 來說,沒有幀的概念,對它來說,都是數(shù)據(jù)而不管什么地址,數(shù)據(jù)還是CRC),每4bit 就增加1bit 的檢錯碼,然后把并行數(shù)據(jù)轉(zhuǎn)化為串行流數(shù)據(jù),再按照物理層的編碼規(guī)則(10Based-T 的NRZ 編碼或100based-T的曼徹斯特編碼)把數(shù)據(jù)編碼,再變?yōu)槟M信號把數(shù)據(jù)送出去。(注:關(guān)于網(wǎng)線上數(shù)據(jù)是數(shù)字的還是模擬的比較不容易理解清楚。最后我再說)收數(shù)據(jù)時的流程反之。發(fā)送數(shù)據(jù)時,PHY 還有個重要的功能就是實現(xiàn)CSMA/CD 的部分功能,它可以檢測到網(wǎng)絡(luò)上是否有數(shù)據(jù)在傳送。網(wǎng)卡首先偵聽介質(zhì)上是否有載波(載波由電壓指示),如果有,則認(rèn)為其他站點(diǎn)正在傳送信息,繼續(xù)偵聽介質(zhì)。一旦通信介質(zhì)在一定時間段內(nèi)(稱為幀間縫隙IFG= 9.6 微秒)是安靜的,即沒有被其他站點(diǎn)占用,則開始進(jìn)行幀數(shù)據(jù)發(fā)送,同時繼續(xù)偵聽通信介質(zhì),以檢測沖突。在發(fā)送數(shù)據(jù)期間,如果檢測到?jīng)_突,則立即停止該次發(fā)送,并向介質(zhì)發(fā)送一個“阻塞”信號,告知其他站點(diǎn)已經(jīng)發(fā)生沖突,從而丟棄那些可能一直在接收的受到損壞的幀數(shù)據(jù),并等待一段隨機(jī)時間(CSMA/CD 確定等待時間的算法是二進(jìn)制指數(shù)退避算法)。在等待一段隨機(jī)時間后,再進(jìn)行新的發(fā)送。如果重傳多次后(大于16 次)仍發(fā)生沖突,就放棄發(fā)送。接收時,網(wǎng)卡瀏覽介質(zhì)上傳輸?shù)拿總€幀,如果其長度小于64 字節(jié),則認(rèn)為是沖突碎片。如果接收到的幀不是沖突碎片且目的地址是本地地址,則對幀進(jìn)行完整性校驗,如果幀長度大于1518 字節(jié)(稱為超長幀,可能由錯誤的LAN 驅(qū)動程序或干擾造成)或未能通過CRC校驗,則認(rèn)為該幀發(fā)生了畸變。通過校驗的幀被認(rèn)為是有效的,網(wǎng)卡將它接收下來進(jìn)行本地處理許多網(wǎng)友在接入 Internt 寬帶時,喜歡使用"搶線"強(qiáng)的網(wǎng)卡,就是因為不同的PHY 碰撞后計算隨機(jī)時間的方法設(shè)計上不同,使得有些網(wǎng)卡比較"占便宜"。不過,搶線只對廣播域的網(wǎng)絡(luò)而言的,對于交換網(wǎng)絡(luò)和ADSL 這樣點(diǎn)到點(diǎn)連接到局端設(shè)備的接入方式?jīng)]什么意義。而且"搶線"也只是相對而言的,不會有質(zhì)的變化。
3 關(guān)于網(wǎng)絡(luò)間的沖突
現(xiàn)在交換機(jī)的普及使得交換網(wǎng)絡(luò)的普及,使得沖突域網(wǎng)絡(luò)少了很多,極大地提高了網(wǎng)絡(luò)的帶寬。但是如果用HUB,或者共享帶寬接入Internet 的時候還是屬于沖突域網(wǎng)絡(luò),有沖突碰撞的。交換機(jī)和HUB 最大的區(qū)別就是:一個是構(gòu)建點(diǎn)到點(diǎn)網(wǎng)絡(luò)的局域網(wǎng)交換設(shè)備,一個是構(gòu)建沖突域網(wǎng)絡(luò)的局域網(wǎng)互連設(shè)備。我們的 PHY 還提供了和對端設(shè)備連接的重要功能并通過LED 燈顯示出自己目前的連接的狀態(tài)和工作狀態(tài)讓我們知道。當(dāng)我們給網(wǎng)卡接入網(wǎng)線的時候,PHY 不斷發(fā)出的脈沖信號檢測到對端有設(shè)備,它們通過標(biāo)準(zhǔn)的"語言"交流,互相協(xié)商并卻定連接速度、雙工模式、是否采用流控等。通常情況下,協(xié)商的結(jié)果是兩個設(shè)備中能同時支持的最大速度和最好的雙工模式。這個技術(shù)被稱為Auto Negotiation 或者NWAY,它們是一個意思--自動協(xié)商。
4 PHY 的輸出部分
現(xiàn)在來了解 PHY 的輸出后面部分。一顆CMOS 制程的芯片工作的時候產(chǎn)生的信號電平總是大于0V 的(這取決于芯片的制程和設(shè)計需求),但是這樣的信號送到100 米甚至更長的地方會有很大的直流分量的損失。而且如果外部網(wǎng)現(xiàn)直接和芯片相連的話,電磁感應(yīng)(打雷)和靜電,很容易造成芯片的損壞。再就是設(shè)備接地方法不同,電網(wǎng)環(huán)境不同會導(dǎo)致雙方的0V 電平不一致,這樣信號從A傳到B,由于A 設(shè)備的0V 電平和B 點(diǎn)的0V 電平不一樣,這樣會導(dǎo)致很大的電流從電勢高的設(shè)備流向電勢低的設(shè)備。我們?nèi)绾谓鉀Q這個問題呢?這時就出現(xiàn)了 Transformer(隔離變壓器)這個器件。它把PHY 送出來的差分信號用差模耦合的線圈耦合濾波以增強(qiáng)信號,并且通過電磁場的轉(zhuǎn)換耦合到連接網(wǎng)線的另外一端。這樣不但使網(wǎng)線和PHY 之間沒有物理上的連接而換傳遞了信號,隔斷了信號中的直流分量,還可以在不同0V 電平的設(shè)備中傳送數(shù)據(jù)。隔離變壓器本身就是設(shè)計為耐 2KV~3KV 的電壓的。也起到了防雷感應(yīng)(我個人認(rèn)為這里用防雷擊不合適)保護(hù)的作用。有些朋友的網(wǎng)絡(luò)設(shè)備在雷雨天氣時容易被燒壞,大都是PCB 設(shè)計不合理造成的,而且大都燒毀了設(shè)備的接口,很少有芯片被燒毀的,就是隔離變壓器起到了保護(hù)作用。
5 關(guān)于傳輸介質(zhì)
隔離變壓器本身是個被動元件,只是把PHY 的信號耦合了到網(wǎng)線上,并沒有起到功率放大的作用。那么一張網(wǎng)卡信號的傳輸?shù)淖铋L距離是誰決定的呢?一張網(wǎng)卡的傳輸最大距離和與對端設(shè)備連接的兼容性主要是 PHY 決定的。但是可以將信號送的超過100 米的PHY 其輸出的功率也比較大,更容易產(chǎn)生EMI 的問題。這時候就需要合適的Transformer 與之配合。作PHY 的老大公司Marvell 的PHY,常常可以傳送180~200米的距離,遠(yuǎn)遠(yuǎn)超過IEEE 的100 米的標(biāo)準(zhǔn)。RJ-45 的接頭實現(xiàn)了網(wǎng)卡和網(wǎng)線的連接。它里面有8 個銅片可以和網(wǎng)線中的4 對雙絞(8根)線對應(yīng)連接。其中100M 的網(wǎng)絡(luò)中1、2 是傳送數(shù)據(jù)的,3、6 是接收數(shù)據(jù)的。1、2 之間
是一對差分信號,也就是說它們的波形一樣,但是相位相差180 度,同一時刻的電壓幅度互為正負(fù)。這樣的信號可以傳遞的更遠(yuǎn),抗干擾能力強(qiáng)。同樣的,3、6 也一樣是差分信號。網(wǎng)線中的 8 根線,每兩根扭在一起成為一對。我們制作網(wǎng)線的時候,一定要注意要讓1、2 在其中的一對,3、6 在一對。否則長距離情況下使用這根網(wǎng)線的時候會導(dǎo)致無法連接或連接很不穩(wěn)定。現(xiàn)在新的 PHY 支持AUTO MDI-X 功能(也需要Transformer 支持)。它可以實現(xiàn)RJ-45接口的1、2 上的傳送信號線和3、6 上的接收信號線的功能自動互相交換。有的PHY 甚至支持一對線中的正信號和負(fù)信號的功能自動交換。這樣我們就不必為了到底連接某個設(shè)備需要使用直通網(wǎng)線還是交叉網(wǎng)線而費(fèi)心了。這項技術(shù)已經(jīng)被廣泛的應(yīng)用在交換機(jī)和SOHO 路由器上。在 1000Basd-T 網(wǎng)絡(luò)中,其中最普遍的一種傳輸方式是使用網(wǎng)線中所有的4 對雙絞線,其中增加了4、5 和7、8 來共同傳送接收數(shù)據(jù)。由于1000Based-T 網(wǎng)絡(luò)的規(guī)范包含了AUTOMDI-X 功能,因此不能嚴(yán)格確定它們的傳出或接收的關(guān)系,要看雙方的具體的協(xié)商結(jié)果。
6 PHY 和MAC 之間如何進(jìn)行溝通
下面繼續(xù)讓我們來關(guān)心一下 PHY 和MAC 之間是如何傳送數(shù)據(jù)和相互溝通的。通過IEEE 定義的標(biāo)準(zhǔn)的MII/GigaMII(Media Independed Interfade,介質(zhì)獨(dú)立界面)界面連接MAC和PHY。這個界面是IEEE 定義的。MII 界面?zhèn)鬟f了網(wǎng)絡(luò)的所有數(shù)據(jù)和數(shù)據(jù)的控制。而 MAC 對PHY 的工作狀態(tài)的確定和對PHY 的控制則是使用SMI(Serial ManagementInterface)界面通過讀寫PHY 的寄存器來完成的。PHY 里面的部分寄存器也是IEEE 定義的,這樣PHY 把自己的目前的狀態(tài)反映到寄存器里面,MAC 通過SMI 總線不斷的讀取PHY 的狀態(tài)寄存器以得知目前PHY 的狀態(tài),例如連接速度,雙工的能力等。當(dāng)然也可以通過SMI設(shè)置PHY 的寄存器達(dá)到控制的目的,例如流控的打開關(guān)閉,自協(xié)商模式還是強(qiáng)制模式等。我們看到了,不論是物理連接的 MII 界面和SMI 總線還是PHY 的狀態(tài)寄存器和控制寄存器都是有IEEE 的規(guī)范的,因此不同公司的MAC 和PHY 一樣可以協(xié)調(diào)工作。當(dāng)然為了配合不同公司的PHY 的自己特有的一些功能,驅(qū)動需要做相應(yīng)的修改。
7 網(wǎng)卡的供電
最后就是電源部分了。大多數(shù)網(wǎng)卡現(xiàn)在都使用 3.3V 或更低的電壓。有的是雙電壓的。因此需要電源轉(zhuǎn)換電路。而且網(wǎng)卡為了實現(xiàn) Wake on line 功能,必須保證全部的PHY 和MAC 的極少一部分始終處于有電的狀態(tài),這需要把主板上的5V Standby 電壓轉(zhuǎn)換為PHY 工作電壓的電路。在主機(jī)開機(jī)后,PHY 的工作電壓應(yīng)該被從5V 轉(zhuǎn)出來的電壓替代以節(jié)省5V Standby 的消耗。(許多劣質(zhì)網(wǎng)卡沒有這么做)。有 Wake on line 功能的網(wǎng)卡一般還有一個WOL 的接口。那是因為PCI2.1 以前沒有PCI設(shè)備喚醒主機(jī)的功能,所以需要著一根線通過主板上的WOL 的接口連到南橋里面以實現(xiàn)WOL 的功能。新的主板合網(wǎng)卡一般支持 PCI2.2/2.3,擴(kuò)展了PME#信號功能,不需要那個接口而通過PCI 總線就可以實現(xiàn)喚醒功能。
---------------------
歡迎分享轉(zhuǎn)載→http://www.avcorse.com/read-223995.html
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖