OverLord
網卡即網絡接口控制器(NIC),又被稱為網絡適配器或局域網接收器,是構成電腦網絡系統中最基本的、最重要的、最不可缺少的連接設備。雖然現在大家可能都不太在意網卡,但它確實是電腦的必備品,目前的主板、臺式機機,乃至大部分筆記本電腦都集成有網卡,因為即使在無線技術已經非常發達的今天,要想實現各種網絡設備和計算機之間的互聯互通,還是少不了它。
每一個網卡都尤其獨特性,這就是一個被稱為MAC地址的獨一無二的48位串行號,它被寫在卡上的一塊ROM中。在網絡上的每一個網卡,一般也就是相應的電腦都擁有一個獨一無二的MAC地址。沒有任何兩塊被生產出來的網卡擁有同樣的地址。這是因為電氣電子工程師協會(IEEE)負責為網絡接口控制器(網卡)銷售商分配唯一的MAC地址。
網卡上面裝有處理器和存儲器(包括RAM和ROM),網卡和局域網之間的通信是通過電纜或雙絞線以串行傳輸方式進行的,而網卡和計算機之間的通信則是通過計算機主板上的I/O總線以并行傳輸方式進行。因此,網卡的一個重要功能就是要進行串行/并行轉換。由于網絡上的數據率和計算機總線上的數據率并不相同,因此在網卡中必須裝有對數據進行緩存的存儲芯片。
現在我們最常見到的是以太網(Ethernet)網卡,對應目前主流的以太網網絡技術。按網卡所支持帶寬的不同可分為10Mb p s網卡、100Mbps網卡、100/1000Mbps自適應以太網卡、2.5Gbps網卡乃至萬兆網卡幾種。10Mbps網卡已逐漸退出歷史舞臺,而100/1000bps自適應網卡是目前普通電腦上常用的以太網網卡。對于大數據流量網絡來說,服務器應該采用萬兆以太網網卡,這樣才能提供高速的網絡連接能力。
那么網卡究竟是如何工作的呢?簡單說分為兩個部分,第一就是物理層定義數據傳送與接收所需要的電與光信號、線路狀態、時鐘基準、數據編碼和電路等,并向數據鏈路層設備提供標準接口;第二,網卡的數據鏈路層則提供尋址機構、數據幀的構建、數據差錯檢查、傳送控制、向網絡層 提供標準的數據接口等功能。如此一來,網卡才能實現數據內容的傳輸。
這里我們還得了解一下互聯網協議套件(Internet Protocol Suite,縮寫IPS)。它代表的是網絡通信模型以及整個網絡傳輸協議家族,為網際網絡的基礎通信架構,通稱為TCP/IP協議族(TCP/IP Protocol Suite或TCP/IP Protocols),簡稱TCP/IP,這是因為該協議家族的兩個核心協議:TCP(傳輸控制協議)和IP(網際協議)是家族中最早通過的標準。由于在網絡通訊協議普遍采用分層的結構,當多個層次的協議共同工作時,類似計算機科學中的堆棧,因此又稱為TCP/IP協議棧 。TCP/IP提供了點對點鏈接的機制,將資料應該如何封裝、尋址、傳輸、路由以及在目的地如何接收,都加以標準化。在當前電腦的各種操作系統下,網卡就無一例外都是工作在TCP/IP協議下的。
1、數據的封裝、解封:有如郵寄一個包裹,包裹里面的東西是數據,包裹的外包裝就是幀頭和幀尾,用于封裝數據和解封數據(對應傳輸和接收);
2、固定地址:數據發送出去后,究竟需要發給誰?這就需要固定地址來幫助電腦判斷,也就是俗稱的IP地址,可以是IPv4也可以是IPv6;
3、數據的編碼和譯碼:在數據得傳輸需要搭載在實物介質上,在實際過程中,傳送的是電信號或光信號,那么就需要將數據轉換成電信號或光信號(光口網卡或者電口網卡,前者只出現在萬兆網卡上);
4、鏈路管理:以太網是共享式鏈接,所以當你在發送數據的時候,如果別人也在使用,那么就會產生沖突,所以當你要求發送的時候,就需要檢查鏈路的狀態是否處于空閑狀態;
5、發送和接收數據。
只有經過這幾步的工作流程,數據才可能被“傳遞”,從而實現網絡的連接、傳輸。
注意,這里的IPV4/IPV6地址需要配合MAC地址的綁定才能正確讓數據“認識自己的傳輸對象”。前文我們也提到過這個MAC地址,這里具體說一下,MAC地址(英語:Media AccessControl Address)直譯為媒體訪問控制地址,也稱為局域網地址(LAN Address)、以太網地址(Ethernet Address)或物理地址(Physical Address),它是一個用來確認網絡設備位置的地址。在OSI模型中,第三層網絡層負責IP地址,第二層數據鏈接層則負責MAC地址。MAC地址用于在網絡中唯一標示一個網卡,一臺設備若有一或多個網卡,則每個網卡都需要并會有一個唯一的MAC地址。MAC地址共48位(6個字節),以十六進制表示。第1Bit為廣播地址(0)/群播地址(1),第2Bit為廣域地址(0)/區域地址(1)。前3~24位由IEEE決定如何分配給每一家制造商,且不重復,后24位由實際生產該網絡設備的廠商自行指定且不重復。例如一臺路由器,含有一個WAN端口及四個LAN端口。它的WAN端口會有一個如192.168.0.1的IPv4地址,也會有一個如00:0A:02:0B:03:0C的MAC地址。而它的四個LAN端口會各分配到一個例如192.168.1.0/24的IP地址,四個端口各會有一個不同的MAC地址。
網卡經過時間漫長的發展,形態也變化頗多,而且技術規格也不可同日而語,具體來說分為這么幾個特征:
1、總線類型,網卡的總線大致分為ISA、PCI、PCI-E、USB,其中ISA、PCI是較為早期的總線,早已淘汰。而USB接口的網卡主要應用在消費級電子中,日常使用還是PCI-E總線產品為主。這其中,早期的ISA總線為模擬總線,所以還需要設置中斷值才可以讓網卡正常工作。也就是說,電腦在安裝好網卡后,還需要手動設置才可以讓它正常工作,非常麻煩。現如今的網卡則基本上可以實現“即插即用”的狀態;
2、形態類型,從形態上劃分,網卡現在主要分為板載集成網卡、PCI-E接口的獨立網卡、USB外接網卡三類。現如今大多數板載網卡實際是PHY網絡芯片,它和獨立網卡的最大區別是將網絡控制芯片的運算部分交由處理器或南橋芯片處理,以簡化線路設計,從而降低成本。獨立網卡則是具備完整的網絡控制芯片,這是二者之間最大的區別。
3、速度區別,目前主流的網卡為100/1000Mbps,2.5Gbps網卡也日漸成熟,而萬兆網卡則主要集中在服務器領域使用,而且分為光口和電口兩種形態。至于10/100Mbps網卡,早已被淘汰了;
4、從接口上區分,網卡主要分為電口(RJ45)和光纖口(SC、LC等等)兩類,前者就是我們日常使用的使用雙絞線的網卡,線纜類型多為CAT-5/E、CAT-6(俗稱五類線、超五類線和六類線);而光纖口則使用光纖線纜為傳輸載體,用于服務器。此外在10Mbps的網卡上,還曾經出現過使用BNC同軸細纜的接口——一如我們使用的電視信號線纜。
因為硬盤速度的提升加之寬帶速度的提升,1000Mbps網卡已經不能滿足使用需求了,而萬兆網卡因為功耗設計、成本等因素,很難普及,因此才出現了2.5Gbps網卡。2.5Gbps的網卡是個“意外”產物,它的正式名稱是IEEE802.3bz,由“2.5G/5GBASE-T項目小組”在2015年3月開始著手于2.5GBASE-T和5GBASE-T標準。對,你沒看錯,除了2.5Gbps之外,這一標準實際上還有5Gbps的速率產品,只不過現階段沒有出現。802.3bz的標準具體是可以在最長100米的CAT-5E線纜上達到2.5Gbit/s(特定情況下實現5Gbit/s的速度),而在最長100米的CAT-6線纜上達到5 Gbit/s速度。
在2014年左右,人們意識到現有的1000Mb p s網絡并不能滿足未來使用需求,而在CAT-5E線纜上也不可能實現10Gbps(即萬兆網)的連接,尤其是IEEE802.11ac、Wi-Fi 6無線網絡的高速發展,這就決定了需要在1000Mbps和10Gbps之間提供一個可以兼容使用現有雙絞線纜(CAT-5E、CAT-6)提供一個更為廉價但又高速的選擇,畢竟10Gbps的相關設備成本高昂,更不用提無法利用現有的雙絞線網絡了。
然而,時至今日,盡管Intel已經在自家主板上提供了2.5Gbps的網絡芯片(從Intel400系列芯片組主板產品開始,AMD平臺也有很多主板采用)I225-V,但是配套的設備價格并不便宜,例如2.5Gbps最廉價的交換機目前也需要四百余元(1000Mbps交換機不足百元)。
而且,這個Intel I225-V的2.5Gbps網卡本身也存在缺陷——丟包掉速,這對于有線網絡來說幾乎是不可原諒的錯誤,這個問題通過軟件層面也無法修復。之后Intel推出了B2版本的I255-V網絡芯片(之前購買的產品無法替換),丟包掉速問題得到了改善,但是依舊存在些許問題,直到I225-V推出了B3版本才算徹底解決這些問題。
而另一個網絡芯片的“大戶”RTL瑞昱也推出了2.5Gbps的網卡產品,包括USB接口的RTL8156和獨立網卡芯片RTL8125B。但是,目前除了USB網卡銷量還算不錯之外,用于老電腦升級的獨立網卡普及度并不高——畢竟價格依舊不算便宜。
簡言之,2.5Gbps的網卡距離普及還有一段時間,筆者預計從2022年開始才有望正式開啟普及的大幕——屆時新一代主板芯片組將全面覆蓋2.5Gbps網絡芯片,同時升級用的獨立網卡、交換機等產品有望將價格進一步拉低。現階段除非對局域網傳輸速度有較高要求的用戶,普通消費者還沒有升級2.5Gbps網絡的迫切性。