導航:首頁 > 源碼編譯 > wake演算法

wake演算法

發布時間:2024-03-24 22:24:44

① 網卡的原理與構造

1.認識網卡,我們上網必備組件之一。

網卡工作在osi的最後兩層,物理層和數據鏈路層,物理層定義了數據傳送與接收所需要的電與光信號、線路狀態、時鍾基準、數據編碼和電路等,並向數據鏈路層設備提供標准介面。物理層的晶元稱之為PHY。數據鏈路層則提供定址機構、數據幀的構建、數據差錯檢查、傳送控制、向網路層提供標準的數據介面等功能。乙太網卡中數據鏈路層的晶元稱之為MAC控制器。很多網卡的這兩個部分是做到一起的。他們之間的關系是pci匯流排接mac匯流排,mac接phy,phy接網線(當然也不是直接接上的,還有一個變壓裝置)。

下面繼續讓我們來關心一下PHY和MAC之間是如何傳送數據和相互溝通的。通過IEEE定義的標準的MII/GigaMII(Media Independed Interfade,介質獨立界面)界面連接MAC和PHY。這個界面是IEEE定義的。MII界面傳遞了網路的所有數據和數據的控制。
而MAC對PHY的工作狀態的確定和對PHY的控制則是使用SMI(Serial Management Interface)界面通過讀寫PHY的寄存器來完成的。PHY裡面的部分寄存器也是IEEE定義的,這樣PHY把自己的目前的狀態反映到寄存器裡面,MAC通過SMI匯流排不斷的讀取PHY的狀態寄存器以得知目前PHY的狀態,例如連接速度,雙工的能力等。當然也可以通過SMI設置PHY的寄存器達到控制的目的,例如流控的打開關閉,自協商模式還是強制模式等。

我們看到了,不論是物理連接的MII界面和SMI匯流排還是PHY的狀態寄存器和控制寄存器都是有IEEE的規范的,因此不同公司的MAC和PHY一樣可以協調工作。當然為了配合不同公司的PHY的自己特有的一些功能,驅動需要做相應的修改。

一片網卡主要功能的實現就基本上是上面這些器件了。其他的,還有一顆EEPROM晶元,通常是一顆93C46。裡面記錄了網卡晶元的供應商ID、子系統供應商ID、網卡的MAC地址、網卡的一些配置,如SMI匯流排上PHY的地址,BOOTROM的容量,是否啟用BOOTROM引導系統等東西。

很多網卡上還有BOOTROM這個東西。它是用於無盤工作站引導操作系統的。既然無盤,一些引導用必需用到的程序和協議棧就放到裡面了,例如RPL、PXE等。實際上它就是一個標準的PCI ROM。所以才會有一些硬碟防寫卡可以通過燒寫網卡的BootRom來實現。其實PCI設備的ROM是可以放到主板BIOS裡面的。啟動電腦的時候一樣可以檢測到這個ROM並且正確識別它是什麼設備的。AGP在配置上和PCI很多地方一樣,所以很多顯卡的BIOS也可以放到主板BIOS裡面。這就是為什麼板載的網卡我們從來沒有看到過BOOTROM的原因。

2.工作過程

PHY在發送數據的時候,收到MAC過來的數據(對PHY來說,沒有幀的概念,對它來說,都是數據而不管什麼地址,數據還是CRC),每4bit就增加1bit的檢錯碼,然後把並行數據轉化為串列流數據,再按照物理層的編碼規則(10Based-T的NRZ編碼或100based-T的曼徹斯特編碼)把數據編碼,再變為模擬信號把數據送出去。收數據時的流程反之。現在來了解PHY的輸出後面部分。一顆CMOS製程的晶元工作的時候產生的信號電平總是大於0V的(這取決於晶元的製程和設計需求),但是這樣的信號送到100米甚至更長的地方會有很大的直流分量的損失。而且如果外部網現直接和晶元相連的話,電磁感應(打雷)和靜電,很容易造成晶元的損壞。

再就是設備接地方法不同,電網環境不同會導致雙方的0V電平不一致,這樣信號從A傳到B,由於A設備的0V電平和B點的0V電平不一樣,這樣會導致很大的電流從電勢高的設備流向電勢低的設備。我們如何解決這個問題呢?
這時就出現了Transformer(隔離變壓器)這個器件。它把PHY送出來的差分信號用差模耦合的線圈耦合濾波以增強信號,並且通過電磁場的轉換耦合到連接網線的另外一端。這樣不但使網線和PHY之間沒有物理上的連接而換傳遞了信號,隔斷了信號中的直流分量,還可以在不同0V電平的設備中傳送數據。

隔離變壓器本身就是設計為耐2KV~3KV的電壓的。也起到了防雷感應(我個人認為這里用防雷擊不合適)保護的作用。有些朋友的網路設備在雷雨天氣時容易被燒壞,大都是PCB設計不合理造成的,而且大都燒毀了設備的介面,很少有晶元被燒毀的,就是隔離變壓器起到了保護作用。
發送數據時,網卡首先偵聽介質上是否有載波(載波由電壓指示),如果有,則認為其他站點正在傳送信息,繼續偵聽介質。一旦通信介質在一定時間段內(稱為幀間縫隙IFG=9.6微秒)是安靜的,即沒有被其他站點佔用,則開始進行幀數據發送,同時繼續偵聽通信介質,以檢測沖突。在發送數據期間,如果檢測到沖突,則立即停止該次發送,並向介質發送一個「阻塞」信號,告知其他站點已經發生沖突,從而丟棄那些可能一直在接收的受到損壞的幀數據,並等待一段隨機時間(CSMA/CD確定等待時間的演算法是二進制指數退避演算法)。在等待一段隨機時間後,再進行新的發送。如果重傳多次後(大於16次)仍發生沖突,就放棄發送。
接收時,網卡瀏覽介質上傳輸的每個幀,如果其長度小於64位元組,則認為是沖突碎片。如果接收到的幀不是沖突碎片且目的地址是本地地址,則對幀進行完整性校驗,如果幀長度大於1518位元組(稱為超長幀,可能由錯誤的LAN驅動程序或干擾造成)或未能通過CRC校驗,則認為該幀發生了畸變。通過校驗的幀網卡的原理及測試技術
網卡充當計算機和網路纜線之間的物理介面或連線將計算機中的數字信號轉換成電或光信號,稱為nic( network interface card )。數據在計算機匯流排中傳輸是並行方式即數據是肩並肩傳輸的,而在網路的物理纜線中說數據以串列的比特流方式傳輸的,網卡承擔串列數據和並行數據間的轉換。網卡在發送數據前要同接收網卡進行對話以確定最大可發送數據的大小、發送的數據量的大小、兩次發送數據間的間隔、等待確認的時間、每個網卡在溢出前所能承受的最大數據量、數據傳輸的速度。
一、網卡的基本構造
網卡包括硬體和固件程序(只讀存儲器中的軟體常式),該固件程序實現邏輯鏈路控制和媒體訪問控制的功能網卡包括硬體和固件程序(只讀存儲器中的軟體常式),該固件程序實現邏輯鏈路控制和媒體訪問控制的功能,還記錄唯一的硬體地址即mac地址,網卡上一般有緩存。網卡須分配中斷irq及基本i/o埠地址,同時還須設置基本內存地址(base memory address)和收發器(transceiver)
網卡的控制晶元
是網卡中最重要元件,是網卡的控制中心,有如電腦的cpu,控制著整個網卡的工作,負責數據的的傳送和連接時的信號偵測。早期的10/100m的雙速網卡會採用兩個控制晶元(單元)分別用來控制兩個不同速率環境下的運算,而目前較先進的產品通常只有一個晶元控制兩種速度。
晶體震盪器
負責產生網卡所有晶元的運算時鍾,其原理就象主板上的晶體震盪器一樣,通常網卡是使用20或25hz的晶體震盪器。
boot rom插槽
如無特殊要求網卡中的這個插槽處在空置狀態。一般是和boot rom晶元搭配使用,其主要作用是引導電腦通過伺服器引導進入win9x。
boot rom
就是啟動晶元,讓電腦可以在不具備硬碟、軟碟機和光碟機的情況下,直接通過伺服器開機,成為一個無硬碟無軟碟機的工作站。沒有軟碟機就無法將資料輸出,這樣也可以達到資料保密的功能。同時,還可以節省下購買這些電腦部件的費用。在使用boot rom時要注意自己使用何種網路操作系統,通常有boot rom for nt,boot rom for unix,boot rom for netware等,boot rom啟動晶元要自行購買。
eprom
從前的老式網卡都要靠設置跳線或是dip開關來設定irq、dma和i/o port等值,而現在的網卡則都使用軟體設定,幾乎看不見跳線的存在。各種網卡的狀態和網卡的信息等數據都存在這顆小小的eeprom里,通過它來自動設置。
內接式轉換器
只要有bnc接頭的網卡都會有這個晶元,並緊鄰在bnc接頭旁,它的功能是在網卡和bnc接頭之間進行數據轉換,讓網卡能通過它從bnc接頭送出或接收資料。
rj-45和bnc接頭
rj-45是採用雙絞線作為傳輸媒介的一種網卡介面,在100mbps網中最常應用。bnc是採用細同軸電纜作為傳輸媒介
信號指示燈
在網卡後方會有二到三個不等的信號燈,其作用是顯示目前網路的連線狀態,通常具有tx和rx兩個信息。tx代表正在送出資料,rx代表正在接收資料,若看到兩個燈同時亮則代表目前是處於全雙工的運作狀態,也可由此來辨別全雙工的網卡是否處於全雙工的網路環境中(見上圖兩個介面的中間部分)。也有部分低速網卡只用一個燈來表示信號,通過不同的燈光變換來表示網路是否導通。
二、網卡的分類
以頻寬區分網卡種類
目前的乙太網卡分為10mbps、100mbps和1000 mbps三種頻寬,目前常見的三種架構有10baset、100basetx與base2,前兩者是以rj-45雙絞線為傳輸媒介,頻寬分別有10mbps和100mbps。而雙絞線又分為category 1至category 5五種規格,分別有不同的用途以及頻寬,category通常簡稱cat,只要使用cat5規格的雙絞線皆可用於10/100mbps頻寬的網卡上。而10base2架構則是使用細同軸電纜作為傳輸媒介,頻寬只有10mbps。這里提到的頻寬10或100mbps是指網卡上的最大傳送頻寬,而頻寬並不等於網路上實際的傳送速度,實際速度要考慮到傳送的距離,線路的品質,和網路上是否擁擠等因素,這里所談的bps指的是每秒傳送的bit(1個byte=8個bit)。而100mbps則稱為高速乙太網卡(fast ethernet),多為pci介面。因為其速度快,目前新建的區域網絡絕已大多數已採用100mbps的傳輸頻寬,已有漸漸取代10mbps網卡的趨勢。當前市面上的pci網卡多具有10/100mbps自動切換的功能,會根據所在的網路連線環境來自動調節網路速度。1000 mbps乙太網卡多用於交換機或交換機與伺服器之間的高速鏈路或backbone。
以介面類型區分網卡種類
以介面類型來分,網卡目前使用較普遍的是isa介面、pci介面、usb介面和筆記本電腦專用的pcmcia介面。現在的isa介面的網卡均採用16bit的匯流排寬度,其特性是採用programmed i/o的模式傳送資料,傳送數據時必須通過cpu在i/o上開出一個小窗口,作為網卡與pc之間的溝通管道,需要佔用較高的cpu使用率,在傳送大量數據時效率較差。pci介面的網卡則採用32bit的匯流排頻寬,採用bus master的數據傳送方式,傳送數據是由網卡上的控制晶元來控制,不必通過i/o埠和cpu,可大幅降低cpu的佔用率,目前產品多為10/100mbps雙速自動偵測切換網卡。
以全雙工/半雙工來區分網卡種類
網路有半雙工(half plex)與全雙工(full plex)之分,半雙工網卡無法同一時間內完成接收與傳送數據的動作,如10base2使用細同軸電纜的網路架構就是半雙工網路,同一時間內只能進行傳送或接收數據的工作,效率較低。要使用全雙工的網路就必須要使用雙絞線作為傳輸線才能達到,並且也要搭配使用全雙工的集線器,要使用10base或100basetx的網路架構,網卡當然也要是全雙工的產品
以網路物理纜線接頭區分網卡
目前網卡常用的網線接頭有rj-45與bnc兩種,有的網卡同時具有兩種接頭,可適用於兩種網路線,但無法兩個接頭同時使用。另外還有光纖介面的網卡,通常帶寬在1000 mbps。
其他功能wol
有些網卡會有wol的功能,wol網路開機的功能(wake on lan)。它可由另外一台電腦,使用軟體製作特殊格式的信息包發送至一台裝有具wol功能網卡的電腦,而該網卡接收到這些特殊格式的信息包後,就會命令電腦打開電源,目前已有越來越多的網卡支持網路開機的功能。
其它網卡
從網路傳輸的物理媒介上還有無線網卡,利用2.4ghz的無線電波來傳輸數據。目前ieee有兩種規范802.11和802.11b,最高傳輸速率分別為2m和11m,介面有pci、usb和pcmcia幾種。
三、網卡測試技術
基於操作系統的測試
網卡一個重要的性能是看其是否支持多種網路操作系統,比較流行的網路操作系統有windowsnt、unix(linux、freebsd、sco、solaris、hp?})、novell、dec等。同時網卡應能夠支持多種的網路協議,如tcp/ip、ipx/spx、apple、netbeui等。
基於主機的兼容性測試
硬體上的兼容性也是非常重要的一個方面,尤其在筆記本電腦上兼容性問題比較突出,根據本人的實際經驗,甚至某些名牌的網卡在一些筆記本電腦上也存在較為嚴重的兼容性問題。在伺服器或台式電腦方面這些問題不常出現。
網卡傳輸速率測試(數據吞吐量)
測試網卡的傳輸速率一般有硬體和軟體兩種方法,硬體是利用一些專用的儀器如網路分析儀、smartbits smartcards等其他一些設備,利用icmp echo請求和udp數據包來檢測數據流量。通常測試的項目有以下幾方面:
autonegotiation test
測試網卡速率、全雙工/半雙工和流控協商。協商決定著是否通過「暫停楨pause frame」來允許流量控制。
arp test
測試網卡是否能對arp請求做出正確回應及是否在規定時間內應答。這個時間由測試者進行設置。
error test
測試網卡處理錯誤frame的能力,通常在較低的傳輸速率下進行此項測試(0.5%傳輸速率),有以下幾個方面的測試:
網卡接收正確的frame,作出處理。
網卡接收到存在crc校驗錯的frame,網卡將其丟棄。
網卡接收到傳輸順序錯誤的frame,網卡將其丟棄。
網卡接收到含有少量錯誤bits的frame,網卡應全部接收並處理。
網卡接收到超小frame,網卡應將其丟棄。
網卡接收到超長frame,網卡應將其丟棄。
packets loss test
rfc規定測試網卡在各種傳輸帶寬利用率下的處理frame的能力,從初始化數據傳輸到傳輸速率的不斷變化一直到傳輸結束,檢查frame的丟失情況。
throughput test
數據吞吐量的測試也是rfc規定的一項測試內容,測試的結果反映出傳輸的最大帶寬的利用率,每秒處理的frame和每秒處理的bits數量。
back-to-back test
同樣此項測試也為rfc-2544的規定,測試在一個設定的最大傳輸速率下網卡可處理的並發frame的數量。最終反映出在不丟失數據包的情況下可並發傳輸的最大frame數量。
利用軟體測試通常是利用zd的netbench來測試,一般只利用其測試網卡的最大傳輸速率。測試時要組成一個網路結構,一台windowsnt server伺服器,若干個windows9x或windowsnt station客戶端,傳輸大容量的文件如100mbps,測試的結果將反映出網卡的最大傳輸速率。另一個測試項目是測試網卡對較小的數據包請求的回應能力,這里有必要討論一下tcp/ip的ping命令的機制。ping是利用發送和接收icmp echo報文,來檢測鏈路狀態和協議設置。數據鏈路層封裝的是frame,大小在64k~1518k之間,當發送frame時,網卡接受到frame時首先要讀取楨頭和楨尾的mac地址,當mac地址相匹配時再接封裝讀取ip地址。當網卡連續接收到frame時,要對每一個frame做出處理,當網卡或是系統無法處理這些數據包時,這些數據包將被丟棄。這種情況多發生在連續發送非常小的frame時。ping的機制是發送一個icmp報文,接收到一個icmp echo後再發送下一個icmp報文。所以較小的連續的frame會對網卡和系統造成較大的壓力。在netbench中,有一項測試就是測試網卡或系統對連續的小數據包的處理能力。
穩定性測試
一塊好的網卡應該具有良好的穩定性,具體講就是在不同的工作環境下和不同的工況下應具有穩定的表現。通常測試主要是高溫和傳輸大文件測試。
高溫測試一般是在30~35攝氏度下連續運行網卡的測試程序達一定的時間比如2小時以上,檢測網卡高溫下的穩定性。pcmcia介面的網卡一般有兩種32位的和16位的,前者又稱為cardbus網卡,數據帶寬由16位增加到32位,使得pcmcia的網卡發熱量成為一個顯著的問題。
另一個測試是傳輸大的文件,某些品質較差的網卡在傳輸大容量的文件比如2gbps以上的文件時容易出錯。
綜上所述,在測試一塊網卡時要進行全面的軟、硬體及兼容性測試,可根據具體的應用和不同的要求,有機的選擇測試項目,正確反映網卡的性能指標。
被認為是有效的,網卡將它接收下來進行本地處理。

閱讀全文

與wake演算法相關的資料

熱點內容
哪裡app可以上高中生物課 瀏覽:472
cad粗糙度快捷鍵命令大全 瀏覽:521
騰訊雲伺服器無法運行軟體 瀏覽:342
奔跑吧哪個app 瀏覽:97
哪個app聽音樂最好 瀏覽:281
考研英語2真題pdf 瀏覽:699
煙台編程積木教育環境好不好 瀏覽:214
python優秀代碼 瀏覽:620
androidtop命令 瀏覽:455
你平時怎麼排解壓力 瀏覽:68
表格中的文件夾怎樣設置 瀏覽:476
em78單片機 瀏覽:960
splitjava空格 瀏覽:248
電腦怎麼谷歌伺服器地址 瀏覽:515
nx自定義工具啟動宏命令 瀏覽:101
程序員怎麼解決無法訪問互聯網 瀏覽:303
java訪問本地文件 瀏覽:747
瓦斯琪伺服器怎麼用 瀏覽:22
安卓主題用什麼app 瀏覽:747
修改伺服器pci地址空間 瀏覽:321