近年來,在消費者寬帶、企業(yè)流量和基于 IP 的新型服務(wù)(如移動連接、遠(yuǎn)程云服務(wù)、IP 視頻和 IPTV)的推動下,企業(yè)和運營商網(wǎng)絡(luò)的流量呈爆炸式增長。
此外,虛擬化的出現(xiàn)和對更高性能(高達 100G)安全通信的需求給包括 I/O 子系統(tǒng)在內(nèi)的通信系統(tǒng)設(shè)計帶來了巨大壓力。這些需求,再加上多核 x86 CPU 在嵌入式應(yīng)用程序和數(shù)據(jù)中心中取得的成功,催生了對協(xié)處理器的需求,該協(xié)處理器可以處理數(shù)千萬有狀態(tài)流的數(shù)據(jù)包處理,并具有無縫、高性能、虛擬化接口x86 CPU 子系統(tǒng)。
數(shù)據(jù)包處理壓力
如今,提供基于云的服務(wù)和企業(yè)數(shù)據(jù)中心的服務(wù)提供商能夠隨時隨地通過有線和無線網(wǎng)絡(luò)訪問寶貴的資源。由此產(chǎn)生的流量增加使匯聚交換機/路由器和中間網(wǎng)絡(luò)節(jié)點處于不斷的壓力之下,以滿足越來越高的帶寬需求。這些處理元素不只是簡單地切換或路由流量;他們還必須執(zhí)行一些功能,例如構(gòu)建具有深度數(shù)據(jù)包檢測 (DPI) 功能的防火墻,并為多租戶云環(huán)境提供虛擬化支持。
底層傳輸控制協(xié)議 (TCP)、用戶數(shù)據(jù)報協(xié)議 (UDP) 和實時傳輸協(xié)議 (RTP) 流量包括屬于網(wǎng)絡(luò)連接的許多數(shù)據(jù)包。網(wǎng)絡(luò)邊緣的交換機、路由器或網(wǎng)關(guān)等中間節(jié)點必須同時處理數(shù)百萬個網(wǎng)絡(luò)連接。
嘗試單獨處理連接中的每個數(shù)據(jù)包會阻止網(wǎng)絡(luò)元素跟上不斷增加的線路速率。由于需要對至少一部分流量執(zhí)行 DPI,這進一步復(fù)雜化了。此外,位于網(wǎng)絡(luò)深處的中間節(jié)點必須處理數(shù)億個數(shù)據(jù)包。
每個數(shù)據(jù)包與任何其他數(shù)據(jù)包沒有關(guān)聯(lián);也就是說,它們在空間或時間上不相關(guān)。通過將數(shù)據(jù)包分組為流,可以更好地服務(wù)于這種異步流量。流是屬于同一網(wǎng)絡(luò)會話的數(shù)據(jù)包的集合,通常在源-目標(biāo)對之間。傳入的數(shù)據(jù)包必須分類為流。然后處理器根據(jù)流狀態(tài)表中的規(guī)則以相同的方式處理屬于同一流的所有數(shù)據(jù)包。
有狀態(tài)的流處理
所有網(wǎng)絡(luò)元素都需要數(shù)百萬個流的狀態(tài),尤其是在實施防火墻、入侵預(yù)防或檢測系統(tǒng)以及應(yīng)用程序級負(fù)載平衡器等安全處理時。由此產(chǎn)生的平臺架構(gòu)必須通過監(jiān)視流中的數(shù)據(jù)包、更新 TCP 連接、創(chuàng)建和超時 UDP 連接以及跟蹤虛擬專用網(wǎng)絡(luò) (VPN) 連接來支持流狀態(tài)管理。還需要狀態(tài)處理來支持 TCP 代理和 TCP 拼接。
因此,系統(tǒng)軟件應(yīng)維護支持?jǐn)?shù)百萬流的流狀態(tài)表。硬件必須通過在流哈希表中執(zhí)行復(fù)雜的哈希和查找來支持軟件。軟件負(fù)責(zé)分析流哈希結(jié)果并管理新流,更新哈希表并維護流狀態(tài)。
100G 時的系統(tǒng)性能要求
為了滿足 100G 的嚴(yán)格系統(tǒng)要求,處理和內(nèi)存架構(gòu)都必須滿足在 64 字節(jié)數(shù)據(jù)包的最壞情況下一個數(shù)據(jù)包時間提供的時間預(yù)算,即低至 5 ns。
處理指令和內(nèi)存預(yù)算
鑒于大多數(shù)網(wǎng)絡(luò)繼續(xù)使用以太網(wǎng)幀或數(shù)據(jù)包作為底層傳輸,了解這些幀的組成以及它們?nèi)绾斡绊懢W(wǎng)絡(luò)性能非常重要。
以太網(wǎng)幀
典型的以太網(wǎng)幀以 8 字節(jié)的前導(dǎo)碼開始,隨后是 12 字節(jié)的目標(biāo)地址和源地址的尋址信息,2 字節(jié)的類型/長度字段指示使用的日期類型以及有效負(fù)載的長度。有效載荷數(shù)據(jù)可以低至 46 字節(jié),高至 1,500 字節(jié)。計算 32 位(4 字節(jié))循環(huán)冗余校驗并將其附加在幀的末尾(圖 1)。
圖 1:在以太網(wǎng)幀格式中,64 字節(jié)的最小數(shù)據(jù)包大小在加上所示開銷后實際上是 84 字節(jié)。
100 GbE 的性能計算
系統(tǒng)吞吐量計算通常以每秒數(shù)據(jù)包 (pps) 的形式表示。當(dāng)所有以太網(wǎng)幀的長度為 64 字節(jié)或最小大小的幀時,計算最大數(shù)量。對于 10 GbE,這個數(shù)字是 148.81 億 pps,或通常稱為 15 Mpps。對于 100 GbE,這個數(shù)字大約為 150 Mpps。
較小的數(shù)據(jù)包在滿足短時間預(yù)算方面存在挑戰(zhàn),而大數(shù)據(jù)包在滿足最高線路速率方面存在挑戰(zhàn)。處理 64 字節(jié)數(shù)據(jù)包所需的每個數(shù)據(jù)包時間預(yù)算僅為 6 ns。對于運行在 1 GHz 的處理器,指令周期時間為 1 ns。因此,一個 64 字節(jié)的數(shù)據(jù)包轉(zhuǎn)換為 150 Mpps 的 6 周期預(yù)算。解決此限制的一種方法是使用具有多個內(nèi)核和線程的并行處理。例如,一個 100 個內(nèi)核/線程的處理器將把這個時間預(yù)算增加到 600 個周期——一個更易于管理的窗口。
100G 時的內(nèi)存注意事項
不建議在網(wǎng)絡(luò)設(shè)備中使用專用存儲器。目前,DDR3 存儲器是首選的外部存儲器。DDR 存儲器在較長的突發(fā)中運行良好;但是,高于 1,666 MHz 的時鐘的事務(wù)速率達到了 64 位寬接口的最大速率。將一個 64 位通道換成兩個 32 位內(nèi)存通道可以在 2,133 MHz 或更高的時鐘頻率下提供更高的事務(wù)處理速率。
當(dāng)前滿足 100G 要求的方法
多核處理器
在 2000 年代初期,許多新老芯片供應(yīng)商開始提供基于標(biāo)準(zhǔn)通用處理器的多核 CPU 產(chǎn)品,創(chuàng)建對稱多處理 (SMP) Linux 結(jié)構(gòu)。通過利用 SMP 操作系統(tǒng) (OS) 相對簡單的編程模型,網(wǎng)絡(luò)供應(yīng)商能夠在更短的時間內(nèi)將產(chǎn)品推向市場。但是,這種方法僅限于低于 10G 的性能水平。
這些處理器的性能受到限制,主要是因為傳統(tǒng)的通用 CPU 依賴緩存來解決內(nèi)存延遲問題。高速緩存未命中迫使 CPU 內(nèi)核餓死內(nèi)存訪問,與高速緩存相比,主內(nèi)存延遲太慢了。這種所謂的“內(nèi)存墻效應(yīng)”意味著處理器的 SMP 多核模型無法擴展到靈活處理 100 Gbps 解決方案所需的數(shù)百個處理器內(nèi)核。通過分支預(yù)測和推測執(zhí)行技術(shù)來最小化緩存未命中的嘗試未能解決相對較低的緩存命中率問題。
為了繞過性能瓶頸,供應(yīng)商開始將硬件加速器嵌入到多核處理器中,以處理常見的性能密集型功能,例如安全性和 DPI(參見圖 2)。由此產(chǎn)生的單芯片異構(gòu)多核處理器已經(jīng)讓位于對操作系統(tǒng)不友好的專有架構(gòu),并打破了擁有簡單、易于編程的多核處理器的初衷。
圖 2:多核通用處理器需要借助硬件加速功能來處理 100G 的數(shù)百萬流。
網(wǎng)絡(luò)處理器
網(wǎng)絡(luò)處理器是一類專注于優(yōu)化 L2-L4 數(shù)據(jù)包性能的處理器。通常,它們包含較小的內(nèi)核,可以很好地擴展并且可以提供 100 Gbps 的性能。內(nèi)存性能通過流水線架構(gòu)來解決,在某些情況下,超長指令字 (VLIW) 架構(gòu)。
由于復(fù)雜的編程和專注于數(shù)據(jù)包轉(zhuǎn)發(fā)的固定內(nèi)部結(jié)構(gòu),網(wǎng)絡(luò)處理器的靈活性和智能處理受到阻礙。此外,當(dāng)流量包含多個隧道和/或需要更深的隧道時,流水線網(wǎng)絡(luò)處理器的性能會受到影響。
以太網(wǎng)交換機
這類芯片通常包括帶有內(nèi)部查找引擎的小型流水線,并且不支持外部存儲器。在企業(yè)以太網(wǎng)配線間交換機中很常見。隨著架頂式交換機的使用模型變得越來越復(fù)雜,靈活性要求也變得更加明顯。以太網(wǎng)交換機現(xiàn)在需要更大的查找表和更高的性能水平,以及支持?jǐn)?shù)據(jù)中心多層虛擬化所需的幾個深層隧道。
盡管一些以太網(wǎng)交換芯片可以訪問外部三元內(nèi)容尋址存儲器以進行快速表查找,但典型的以太網(wǎng)交換機無法訪問外部 DDR 存儲器,因此難以滿足需要支持?jǐn)?shù)百萬流的網(wǎng)絡(luò)應(yīng)用。
以太網(wǎng)控制器
此類產(chǎn)品用于服務(wù)器和客戶端環(huán)境,通過 PCI Express 接口將多個以太網(wǎng)接口連接到主機 x86 CPU。這些設(shè)備無法通過編程來執(zhí)行復(fù)雜的網(wǎng)絡(luò)任務(wù),例如交換或在線安全。它們無法訪問外部存儲器,因此無法支持?jǐn)?shù)百萬個流。
既然已經(jīng)確定了處理 100G 網(wǎng)絡(luò)流量的挑戰(zhàn),那么討論應(yīng)對這些挑戰(zhàn)所需的內(nèi)容就很重要。本系列的第 2 部分將在 2 月份的《嵌入式計算設(shè)計》雜志上發(fā)表,將重點介紹能夠應(yīng)對 100G 網(wǎng)絡(luò)流量帶來的挑戰(zhàn)的協(xié)處理器的需求。此外,第二篇文章將討論新的協(xié)處理器如何管理諸如智能 L2/L3 交換、流分類、在線安全處理、虛擬化以及 x86 CPU 內(nèi)核和虛擬機的負(fù)載平衡等功能。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19390瀏覽量
230605 -
控制器
+關(guān)注
關(guān)注
112文章
16423瀏覽量
178880 -
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5455瀏覽量
172276
發(fā)布評論請先 登錄
相關(guān)推薦
評論