TOE 是TCP Offload Engine,即TCP卸載引擎,也叫TCP減負引擎,它旨在使用網卡上集成專用處理器來轉移并處理TCP數據包對主CPU請求的任務。TOE技術的實現方式是通過采用TOE芯片的專用網卡,將包括TCP協議在內的四層處理請示從主機處理器轉移到網卡,相當于TOE網卡承擔了主CPU處理TCP數據的絕大部分任務,減輕了CPU的負荷,其最終的結果是在加速網絡響應的同時提高服務器的性能。
1、TOE技術的實現過程
圖1 TOE網卡工作原理
TOE網卡主要工作過程如圖1所示:
(1)服務器A向服務器B傳輸數據;
(2)A主機中的TCP棧向TOE網卡傳輸數據指針;
(3)TOE網卡進行所有TCP協議處理工作并通過網絡傳遞數據包;
(4)B主機中的TOE網卡接收數據包,重排數據流并將之存放在內存中。
普通網卡則是先把數據包緩存到主機內存中,然后主機中的TCP協議棧重新組裝數據流,最后把數據拷貝到應用程序[1]。
2、TOE網卡的優勢
普通網卡用軟件方式進行一系列TCP/IP相關操作,因此,會在三個方面增加服務器的負擔,這三個方面是:中斷處理、協議處理、數據復制。
2.1 協議處理
圖2 TCP/IP卸載前后主CPU占用比例
當網絡速度達到G(干兆)比特數量級時,主CPU就越來越繁忙,其中很大一部分處理負荷都是來自對TCP/IP協議的處理,例如對IP數據包的校驗處理、對TCP數據流的可靠性和一致性處理,如圖2所示。由于目前對TCP/IP協議進行處理都是采用通用CPU及其配套的系統結構,而這種體系下CPU的主要功能是進行通用計算,并非進行輸入輸出操作。因此在網絡帶寬和速度飛速發展的情況下,網絡鏈路速度高于CPU對TCP/IP協議棧的處理速度將導致系統的輸入輸出系統成為網絡瓶頸。
2.2 中斷處理
傳統的處理過程是:網絡上每個應用程序在收發大量數據包時,要引發大量的網絡I/O中斷,對這些I/O中斷信號進行響應,成了服務器的沉重負擔。比如,一個典型的64Kbps的應用程序在向網絡發送數據時,為了將這些數據裝配成以太網的數據包,并對網絡接收確認信號進行響應,要在服務器和網卡間觸發60多個中斷事件,這么高的中斷率和協議分析工作量已經是相當可觀的了。雖然某些網絡操作系統具有中斷捆綁功能,能夠有效減少中斷信號的產生,但卻無法減少服務器和網卡間響應事件的處理總量。
TCP卸載引擎網卡的工作原理則不同。普通網卡處理每個數據包都要觸發一次中斷,TCP卸載引擎網卡則讓每個應用程序完成一次完整的數據處理進程后才觸發一次中斷,顯著減輕服務器對中斷的響應負擔。還是以64Kbps的應用程序為例,應用程序向網絡發送數據全部完成后,才向服務器發送一個數據通道減負事件中斷,數據包的處理工作由TCP卸載引擎網卡來做,而不是由服務器來做,從而消除了過于頻繁的中斷事件對服務器的過度干擾。網絡應用程序在收發數據時,經常是同一數據要復制多份,在這種情形下,TCP卸載引擎網卡發揮的效益最明顯。
2.3 數據復制
普通網卡通過采用支持校驗功能的硬件和某些軟件,能夠在一定程度上減少發送數據的復制量,但卻無法減少接收數據的復制量。對大量接收數據進行復制通常要占用大量的機器工作周期。普通網卡先將接收到的數據在服務器的緩沖區中復制一份,經系統處理后分配給其中一個TCP連接,然后,系統再將這些數據與使用它的應用程序相關聯,并將這些數據由系統緩沖區復制到應用程序的緩沖區。TCP卸載引擎網卡在接收數據時,在網卡內進行協議處理,因此,它不必將數據復制到服務器緩沖區,而是直接復制到應用程序的緩沖區,這種“零拷貝”方式避免了網卡和服務器間的不必要的數據往復拷貝。
表1中列出了TOE技術的測試比較數據,可以明顯看出TOE技術在吞吐率和收據收發對CPU占用方面的技術優勢。
表1 TOE技術的測試數據
網絡環境 |
吞吐率(Mb/s) |
發送數據CPU消耗量 |
接收數據CPU消耗量 |
1GBE,TCP |
769 |
0.5CPUs |
1.2CPUs |
WSD SAN |
891 |
0.2CPUs |
0.2CPUs |
10GBE,TCP |
7700 |
0.5CPUs |
12CPUs |
10GBE,TOE |
9000 |
0.5CPUs |
0.5CPUs |
3、TOE技術的限制因素
實際上TOE解決方案一直僅限于在8 KB或以上的環境中發送大型數據塊的情況。通常,存儲備份和檢索系統及企業數據庫均使用大型數據有效負載。此外TOE應用限制也有諸多限制:修改操作系統、依賴于特定TOE網卡等。
4、TOE技術的推廣應用
Adaptec推出一種全新的網絡加速卡。該產品將使高強度計算應用中的服務器性能得到提高。Adaptec網絡加速器將TCP/IP處理進程從主機中卸載下來,使CPU的處理能力能夠被更多地投入到網絡化應用中。
WIZnet推出一系列以太網芯片,此系列芯片是一種TOE技術的新思路。以太網芯片,使用邏輯門電路實現全硬件TCP/IP協議棧,獨立于MCU運作,負載所有TCP/IP協議棧的處理過程,可以極大減輕主CPU的TCP/IP處理負荷,減少I/O中斷次數,傳輸速度的提高不再是難題,深受市場的青睞[2]。