網(wǎng)卡的組成工作原理
作者:不詳 1.認(rèn)識網(wǎng)卡,我們上網(wǎng)必備組件之一。 網(wǎng)卡工作在osi的最后兩層,物理層和數(shù)據(jù)鏈路層,物理層定義了數(shù)據(jù)傳送與接收所需要的電與光信號、線路狀態(tài)、時鐘基準(zhǔn)、數(shù)據(jù)編碼和電路等,并向數(shù)據(jù)鏈路 層設(shè)備提供標(biāo)準(zhǔn)接口。物理層的芯片稱之為PHY。數(shù)據(jù)鏈路層則提供尋址機構(gòu)、數(shù)據(jù)幀的構(gòu)建、數(shù)據(jù)差錯檢查、傳送控制、向網(wǎng)絡(luò)層提供標(biāo)準(zhǔn)的數(shù)據(jù)接口等功能。 以太網(wǎng)卡中數(shù)據(jù)鏈路層的芯片稱之為MAC控制器。很多網(wǎng)卡的這兩個部分是做到一起的。他們之間的關(guān)系是pci總線接mac總線,mac接phy,phy接 網(wǎng)線(當(dāng)然也不是直接接上的,還有一個變壓裝置)。 下面繼續(xù)讓我們來關(guān)心一下PHY和MAC之間是如何傳送數(shù)據(jù)和相互溝通的。通過IEEE定義的標(biāo)準(zhǔn)的MII/GigaMII(Media Independed Interfade,介質(zhì)獨立界面)界面連接MAC和PHY。這個界面是IEEE定義的。MII界面?zhèn)鬟f了網(wǎng)絡(luò)的所有數(shù)據(jù)和數(shù)據(jù)的控制。 而MAC對PHY的工作狀態(tài)的確定和對PHY的控制則是使用SMI(Serial Management Interface)界面通過讀寫PHY的寄存器來完成的。PHY里面的部分寄存器也是IEEE定義的,這樣PHY把自己的目前的狀態(tài)反映到寄存器里 面,MAC通過SMI總線不斷的讀取PHY的狀態(tài)寄存器以得知目前PHY的狀態(tài),例如連接速度,雙工的能力等。當(dāng)然也可以通過SMI設(shè)置PHY的寄存器達 到控制的目的,例如流控的打開關(guān)閉,自協(xié)商模式還是強制模式等。 我們看到了,不論是物理連接的MII界面和SMI總線還是PHY的狀態(tài)寄存器和控制寄存器都是有IEEE的規(guī)范的,因此不同公司的MAC和PHY一樣可以協(xié)調(diào)工作。當(dāng)然為了配合不同公司的PHY的自己特有的一些功能,驅(qū)動需要做相應(yīng)的修改。 一片網(wǎng)卡主要功能的實現(xiàn)就基本上是上面這些器件了。其他的,還有一顆EEPROM芯片,通常是一顆93C46。里面記錄了網(wǎng)卡芯片的供應(yīng)商ID、子系統(tǒng)供 應(yīng)商ID、網(wǎng)卡的MAC地址、網(wǎng)卡的一些配置,如SMI總線上PHY的地址,BOOTROM的容量,是否啟用BOOTROM引導(dǎo)系統(tǒng)等東西。 很多網(wǎng)卡上還有BOOTROM這個東西。它是用于無盤工作站引導(dǎo)操作系統(tǒng)的。既然無盤,一些引導(dǎo)用必需用到的程序和協(xié)議棧就放到里面了,例如RPL、 PXE等。實際上它就是一個標(biāo)準(zhǔn)的PCI ROM。所以才會有一些硬盤寫保護卡可以通過燒寫網(wǎng)卡的BootRom來實現(xiàn)。其實PCI設(shè)備的ROM是可以放到主板BIOS里面的。啟動電腦的時候一樣 可以檢測到這個ROM并且正確識別它是什么設(shè)備的。AGP在配置上和PCI很多地方一樣,所以很多顯卡的BIOS也可以放到主板BIOS里面。這就是為什 么板載的網(wǎng)卡我們從來沒有看到過BOOTROM的原因。 2.工作過程 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ù)送出去。收數(shù)據(jù)時的流程反之?,F(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點的0V電平不一樣,這樣會導(dǎo)致很大的電流從電勢高的設(shè)備流向電勢低的設(shè)備。我們?nèi)绾谓鉀Q這個問題呢? 這時就出現(xiàn)了Transformer(隔離變壓器)這個器件。它把PHY送出來的差分信號用差模耦合的線圈耦合濾波以增強信號,并且通過電磁場的轉(zhuǎn)換耦合 到連接網(wǎng)線的另外一端。這樣不但使網(wǎng)線和PHY之間沒有物理上的連接而換傳遞了信號,隔斷了信號中的直流分量,還可以在不同0V電平的設(shè)備中傳送數(shù)據(jù)。 隔離變壓器本身就是設(shè)計為耐2KV~3KV的電壓的。也起到了防雷感應(yīng)(我個人認(rèn)為這里用防雷擊不合適)保護的作用。有些朋友的網(wǎng)絡(luò)設(shè)備在雷雨天氣時容易 被燒壞,大都是PCB設(shè)計不合理造成的,而且大都燒毀了設(shè)備的接口,很少有芯片被燒毀的,就是隔離變壓器起到了保護作用。 發(fā)送數(shù)據(jù)時,網(wǎng)卡首先偵聽介質(zhì)上是否有載波(載波由電壓指示),如果有,則認(rèn)為其他站點正在傳送信息,繼續(xù)偵聽介質(zhì)。一旦通信介質(zhì)在一定時間段內(nèi)(稱為幀 間縫隙IFG=9.6微秒)是安靜的,即沒有被其他站點占用,則開始進行幀數(shù)據(jù)發(fā)送,同時繼續(xù)偵聽通信介質(zhì),以檢測沖突。在發(fā)送數(shù)據(jù)期間,如果檢測到?jīng)_ 突,則立即停止該次發(fā)送,并向介質(zhì)發(fā)送一個“阻塞”信號,告知其他站點已經(jīng)發(fā)生沖突,從而丟棄那些可能一直在接收的受到損壞的幀數(shù)據(jù),并等待一段隨機時間 (CSMA/CD確定等待時間的算法是二進制指數(shù)退避算法)。在等待一段隨機時間后,再進行新的發(fā)送。如果重傳多次后(大于16次)仍發(fā)生沖突,就放棄發(fā) 送。 接收時,網(wǎng)卡瀏覽介質(zhì)上傳輸?shù)拿總€幀,如果其長度小于64字節(jié),則認(rèn)為是沖突碎片。如果接收到的幀不是沖突碎片且目的地址是本地地址,則對幀進行完整性校 驗,如果幀長度大于1518字節(jié)(稱為超長幀,可能由錯誤的LAN驅(qū)動程序或干擾造成)或未能通過CRC校驗,則認(rèn)為該幀發(fā)生了畸變。通過校驗的幀被認(rèn)為 是有效的,網(wǎng)卡將它接收下來進行本地處理 網(wǎng)卡的原理及測試技術(shù) 網(wǎng)卡充當(dāng)計算機和網(wǎng)絡(luò)纜線之間的物理接口或連線將計算機中的數(shù)字信號轉(zhuǎn)換成電或光信號,稱為nic( network interface card )。數(shù)據(jù)在計算機總線中傳輸是并行方式即數(shù)據(jù)是肩并肩傳輸?shù)?,而在網(wǎng)絡(luò)的物理纜線中說數(shù)據(jù)以串行的比特流方式傳輸?shù)模W(wǎng)卡承擔(dān)串行數(shù)據(jù)和并行數(shù)據(jù)間的轉(zhuǎn) 換。網(wǎng)卡在發(fā)送數(shù)據(jù)前要同接收網(wǎng)卡進行對話以確定最大可發(fā)送數(shù)據(jù)的大小、發(fā)送的數(shù)據(jù)量的大小、兩次發(fā)送數(shù)據(jù)間的間隔、等待確認(rèn)的時間、每個網(wǎng)卡在溢出前所 能承受的最大數(shù)據(jù)量、數(shù)據(jù)傳輸?shù)乃俣取?br>一、網(wǎng)卡的基本構(gòu)造 網(wǎng)卡包括硬件和固件程序(只讀存儲器中的軟件例程),該固件程序?qū)崿F(xiàn)邏輯鏈路控制和媒體訪問控制的功能網(wǎng)卡包括硬件和固件程序(只讀存儲器中的軟件例 程),該固件程序?qū)崿F(xiàn)邏輯鏈路控制和媒體訪問控制的功能,還記錄唯一的硬件地址即mac地址,網(wǎng)卡上一般有緩存。網(wǎng)卡須分配中斷irq及基本i/o端口地 址,同時還須設(shè)置基本內(nèi)存地址(base memory address)和收發(fā)器(transceiver) 網(wǎng)卡的控制芯片 是網(wǎng)卡中最重要元件,是網(wǎng)卡的控制中心,有如電腦的cpu,控制著整個網(wǎng)卡的工作,負(fù)責(zé)數(shù)據(jù)的的傳送和連接時的信號偵測。早期的10/100m的雙速網(wǎng)卡會采用兩個控制芯片(單元)分別用來控制兩個不同速率環(huán)境下的運算,而目前較先進的產(chǎn)品通常只有一個芯片控制兩種速度。 晶體震蕩器 負(fù)責(zé)產(chǎn)生網(wǎng)卡所有芯片的運算時鐘,其原理就象主板上的晶體震蕩器一樣,通常網(wǎng)卡是使用20或25hz的晶體震蕩器。 boot rom插槽 如無特殊要求網(wǎng)卡中的這個插槽處在空置狀態(tài)。一般是和boot rom芯片搭配使用,其主要作用是引導(dǎo)電腦通過服務(wù)器引導(dǎo)進入win9x。 boot rom 就是啟動芯片,讓電腦可以在不具備硬盤、軟驅(qū)和光驅(qū)的情況下,直接通過服務(wù)器開機,成為一個無硬盤無軟驅(qū)的工作站。沒有軟驅(qū)就無法將資料輸出,這樣也可以 達到資料保密的功能。同時,還可以節(jié)省下購買這些電腦部件的費用。在使用boot rom時要注意自己使用何種網(wǎng)絡(luò)操作系統(tǒng),通常有boot rom for nt,boot rom for unix,boot rom for netware等,boot rom啟動芯片要自行購買。 eprom 從前的老式網(wǎng)卡都要靠設(shè)置跳線或是dip開關(guān)來設(shè)定irq、dma和i/o port等值,而現(xiàn)在的網(wǎng)卡則都使用軟件設(shè)定,幾乎看不見跳線的存在。各種網(wǎng)卡的狀態(tài)和網(wǎng)卡的信息等數(shù)據(jù)都存在這顆小小的eeprom里,通過它來自動設(shè)置。 內(nèi)接式轉(zhuǎn)換器 只要有bnc接頭的網(wǎng)卡都會有這個芯片,并緊鄰在bnc接頭旁,它的功能是在網(wǎng)卡和bnc接頭之間進行數(shù)據(jù)轉(zhuǎn)換,讓網(wǎng)卡能通過它從bnc接頭送出或接收資料。 rj-45和bnc接頭 rj-45是采用雙絞線作為傳輸媒介的一種網(wǎng)卡接口,在100mbps網(wǎng)中最常應(yīng)用。bnc是采用細同軸電纜作為傳輸媒介 信號指示燈 在網(wǎng)卡后方會有二到三個不等的信號燈,其作用是顯示目前網(wǎng)絡(luò)的連線狀態(tài),通常具有tx和rx兩個信息。tx代表正在送出資料,rx代表正在接收資料,若看 到兩個燈同時亮則代表目前是處于全雙工的運作狀態(tài),也可由此來辨別全雙工的網(wǎng)卡是否處于全雙工的網(wǎng)絡(luò)環(huán)境中(見上圖兩個接口的中間部分)。也有部分低速網(wǎng) 卡只用一個燈來表示信號,通過不同的燈光變換來表示網(wǎng)絡(luò)是否導(dǎo)通。 二、網(wǎng)卡的分類 以頻寬區(qū)分網(wǎng)卡種類 目前的以太網(wǎng)卡分為10mbps、100mbps和1000 mbps三種頻寬,目前常見的三種架構(gòu)有10baset、100basetx與base2,前兩者是以rj-45雙絞線為傳輸媒介,頻寬分別有 10mbps和100mbps。而雙絞線又分為category 1至category 5五種規(guī)格,分別有不同的用途以及頻寬,category通常簡稱cat,只要使用cat5規(guī)格的雙絞線皆可用于10/100mbps頻寬的網(wǎng)卡上。而 10base2架構(gòu)則是使用細同軸電纜作為傳輸媒介,頻寬只有10mbps。這里提到的頻寬10或100mbps是指網(wǎng)卡上的最大傳送頻寬,而頻寬并不等 于網(wǎng)絡(luò)上實際的傳送速度,實際速度要考慮到傳送的距離,線路的品質(zhì),和網(wǎng)絡(luò)上是否擁擠等因素,這里所談的bps指的是每秒傳送的bit(1個byte=8 個bit)。而100mbps則稱為高速以太網(wǎng)卡(fast ethernet),多為pci接口。因為其速度快,目前新建的局域網(wǎng)絡(luò)絕已大多數(shù)已采用100mbps的傳輸頻寬,已有漸漸取代10mbps網(wǎng)卡的趨 勢。當(dāng)前市面上的pci網(wǎng)卡多具有10/100mbps自動切換的功能,會根據(jù)所在的網(wǎng)絡(luò)連線環(huán)境來自動調(diào)節(jié)網(wǎng)絡(luò)速度。1000 mbps以太網(wǎng)卡多用于交換機或交換機與服務(wù)器之間的高速鏈路或backbone。 以接口類型區(qū)分網(wǎng)卡種類 以接口類型來分,網(wǎng)卡目前使用較普遍的是isa接口、pci接口、usb接口和筆記本電腦專用的pcmcia接口?,F(xiàn)在的isa接口的網(wǎng)卡均采用 16bit的總線寬度,其特性是采用programmed i/o的模式傳送資料,傳送數(shù)據(jù)時必須通過cpu在i/o上開出一個小窗口,作為網(wǎng)卡與pc之間的溝通管道,需要占用較高的cpu使用率,在傳送大量數(shù)據(jù) 時效率較差。pci接口的網(wǎng)卡則采用32bit的總線頻寬,采用bus master的數(shù)據(jù)傳送方式,傳送數(shù)據(jù)是由網(wǎng)卡上的控制芯片來控制,不必通過i/o端口和cpu,可大幅降低cpu的占用率,目前產(chǎn)品多為10 /100mbps雙速自動偵測切換網(wǎng)卡。 以全雙工/半雙工來區(qū)分網(wǎng)卡種類 網(wǎng)絡(luò)有半雙工(half duplex)與全雙工(full duplex)之分,半雙工網(wǎng)卡無法同一時間內(nèi)完成接收與傳送數(shù)據(jù)的動作,如10base2使用細同軸電纜的網(wǎng)絡(luò)架構(gòu)就是半雙工網(wǎng)絡(luò),同一時間內(nèi)只能進行 傳送或接收數(shù)據(jù)的工作,效率較低。要使用全雙工的網(wǎng)絡(luò)就必須要使用雙絞線作為傳輸線才能達到,并且也要搭配使用全雙工的集線器,要使用10base或 100basetx的網(wǎng)絡(luò)架構(gòu),網(wǎng)卡當(dāng)然也要是全雙工的產(chǎn)品 以網(wǎng)絡(luò)物理纜線接頭區(qū)分網(wǎng)卡 目前網(wǎng)卡常用的網(wǎng)線接頭有rj-45與bnc兩種,有的網(wǎng)卡同時具有兩種接頭,可適用于兩種網(wǎng)絡(luò)線,但無法兩個接頭同時使用。另外還有光纖接口的網(wǎng)卡,通常帶寬在1000 mbps。 其他功能wol 有些網(wǎng)卡會有wol的功能,wol網(wǎng)絡(luò)開機的功能(wake on lan)。它可由另外一臺電腦,使用軟件制作特殊格式的信息包發(fā)送至一臺裝有具wol功能網(wǎng)卡的電腦,而該網(wǎng)卡接收到這些特殊格式的信息包后,就會命令電 腦打開電源,目前已有越來越多的網(wǎng)卡支持網(wǎng)絡(luò)開機的功能。 其它網(wǎng)卡 從網(wǎng)絡(luò)傳輸?shù)奈锢砻浇樯线€有無線網(wǎng)卡,利用2.4ghz的無線電波來傳輸數(shù)據(jù)。目前ieee有兩種規(guī)范802.11和802.11b,最高傳輸速率分別為2m和11m,接口有pci、usb和pcmcia幾種。 三、網(wǎng)卡測試技術(shù) 基于操作系統(tǒng)的測試 網(wǎng)卡一個重要的性能是看其是否支持多種網(wǎng)絡(luò)操作系統(tǒng),比較流行的網(wǎng)絡(luò)操作系統(tǒng)有windowsnt、unix(linux、freebsd、sco、 solaris、hp厎)、novell、dec等。同時網(wǎng)卡應(yīng)能夠支持多種的網(wǎng)絡(luò)協(xié)議,如tcp/ip、ipx/spx、apple、netbeui 等。 基于主機的兼容性測試 硬件上的兼容性也是非常重要的一個方面,尤其在筆記本電腦上兼容性問題比較突出,根據(jù)本人的實際經(jīng)驗,甚至某些名牌的網(wǎng)卡在一些筆記本電腦上也存在較為嚴(yán)重的兼容性問題。在服務(wù)器或臺式電腦方面這些問題不常出現(xiàn)。 網(wǎng)卡傳輸速率測試(數(shù)據(jù)吞吐量) 測試網(wǎng)卡的傳輸速率一般有硬件和軟件兩種方法,硬件是利用一些專用的儀器如網(wǎng)絡(luò)分析儀、smartbits smartcards等其他一些設(shè)備,利用icmp echo請求和udp數(shù)據(jù)包來檢測數(shù)據(jù)流量。通常測試的項目有以下幾方面: autonegotiation test 測試網(wǎng)卡速率、全雙工/半雙工和流控協(xié)商。協(xié)商決定著是否通過“暫停楨pause frame”來允許流量控制。 arp test 測試網(wǎng)卡是否能對arp請求做出正確回應(yīng)及是否在規(guī)定時間內(nèi)應(yīng)答。這個時間由測試者進行設(shè)置。 error test 測試網(wǎng)卡處理錯誤frame的能力,通常在較低的傳輸速率下進行此項測試(0.5%傳輸速率),有以下幾個方面的測試: 網(wǎng)卡接收正確的frame,作出處理。 網(wǎng)卡接收到存在crc校驗錯的frame,網(wǎng)卡將其丟棄。 網(wǎng)卡接收到傳輸順序錯誤的frame,網(wǎng)卡將其丟棄。 網(wǎng)卡接收到含有少量錯誤bits的frame,網(wǎng)卡應(yīng)全部接收并處理。 網(wǎng)卡接收到超小frame,網(wǎng)卡應(yīng)將其丟棄。 網(wǎng)卡接收到超長frame,網(wǎng)卡應(yīng)將其丟棄。 packets loss test rfc規(guī)定測試網(wǎng)卡在各種傳輸帶寬利用率下的處理frame的能力,從初始化數(shù)據(jù)傳輸?shù)絺鬏斔俾实牟粩嘧兓恢钡絺鬏斀Y(jié)束,檢查frame的丟失情況。 throughput test 數(shù)據(jù)吞吐量的測試也是rfc規(guī)定的一項測試內(nèi)容,測試的結(jié)果反映出傳輸?shù)淖畲髱挼睦寐?,每秒處理的frame和每秒處理的bits數(shù)量。 back-to-back test 同樣此項測試也為rfc-2544的規(guī)定,測試在一個設(shè)定的最大傳輸速率下網(wǎng)卡可處理的并發(fā)frame的數(shù)量。最終反映出在不丟失數(shù)據(jù)包的情況下可并發(fā)傳輸?shù)淖畲骹rame數(shù)量。 利用軟件測試通常是利用zd的netbench來測試,一般只利用其測試網(wǎng)卡的最大傳輸速率。測試時要組成一個網(wǎng)絡(luò)結(jié)構(gòu),一臺windowsnt server服務(wù)器,若干個windows9x或windowsnt station客戶端,傳輸大容量的文件如100mbps,測試的結(jié)果將反映出網(wǎng)卡的最大傳輸速率。另一個測試項目是測試網(wǎng)卡對較小的數(shù)據(jù)包請求的回應(yīng)能 力,這里有必要討論一下tcp/ip的ping命令的機制。ping是利用發(fā)送和接收icmp echo報文,來檢測鏈路狀態(tài)和協(xié)議設(shè)置。數(shù)據(jù)鏈路層封裝的是frame,大小在64k~1518k之間,當(dāng)發(fā)送frame時,網(wǎng)卡接受到frame時首 先要讀取楨頭和楨尾的mac地址,當(dāng)mac地址相匹配時再接封裝讀取ip地址。當(dāng)網(wǎng)卡連續(xù)接收到frame時,要對每一個frame做出處理,當(dāng)網(wǎng)卡或是 系統(tǒng)無法處理這些數(shù)據(jù)包時,這些數(shù)據(jù)包將被丟棄。這種情況多發(fā)生在連續(xù)發(fā)送非常小的frame時。ping的機制是發(fā)送一個icmp報文,接收到一個 icmp echo后再發(fā)送下一個icmp報文。所以較小的連續(xù)的frame會對網(wǎng)卡和系統(tǒng)造成較大的壓力。在netbench中,有一項測試就是測試網(wǎng)卡或系統(tǒng)對 連續(xù)的小數(shù)據(jù)包的處理能力。 穩(wěn)定性測試 一塊好的網(wǎng)卡應(yīng)該具有良好的穩(wěn)定性,具體講就是在不同的工作環(huán)境下和不同的工況下應(yīng)具有穩(wěn)定的表現(xiàn)。通常測試主要是高溫和傳輸大文件測試。 高溫測試一般是在30~35攝氏度下連續(xù)運行網(wǎng)卡的測試程序達一定的時間比如2小時以上,檢測網(wǎng)卡高溫下的穩(wěn)定性。pcmcia接口的網(wǎng)卡一般有兩種32 位的和16位的,前者又稱為cardbus網(wǎng)卡,數(shù)據(jù)帶寬由16位增加到32位,使得pcmcia的網(wǎng)卡發(fā)熱量成為一個顯著的問題。 另一個測試是傳輸大的文件,某些品質(zhì)較差的網(wǎng)卡在傳輸大容量的文件比如2gbps以上的文件時容易出錯。 綜上所述,在測試一塊網(wǎng)卡時要進行全面的軟、硬件及兼容性測試,可根據(jù)具體的應(yīng)用和不同的要求,有機的選擇測試項目,正確反映網(wǎng)卡的性能指標(biāo)。 |
|