一(yī)、 概述
TCP/IP協議已經成爲互聯網應用最基本的協議。傳統方式下(xià),TCP/IP協議由中(zhōng)央處理器、微處理器以軟件的形式處理。然而,随着以太網速率從1000Mbits/s提高到10Gbits/s再到40Gbits/s、100Gbits/s,CPU已經很難滿足TCP/IP協議處理的需要了。因此,爲了減輕CPU的協議處理負擔,TCP/IP協議處理技術顯得越來越重要。其中(zhōng),TCP/IP卸載引擎(TCP/IP Offload Engine,ToE)技術成爲研究的熱點。
二、 傳統TCP的處理
在傳統的以太網環境中(zhōng),TCP/IP協議的處理都是通過軟件方式在中(zhōng)央處理器上實現。如圖1所示,網絡數據由網卡進入計算機系統,傳統網卡主要實現網絡協議物(wù)理層和數據鏈路層功能,然後将口數據包交付CPU操作系統 ,CPU操作系統首先對數據進行TCP/IP協議處理,最後将數據交付應用程序。由于CPU是一(yī)個通用的部件,它不是專門針對TCP/IP協議處理而設計,因而它處理協議的能力不強。在吉比特網絡中(zhōng),如果TCP/IP協議處理仍在CPU中(zhōng)執行,不但協議處理的效率不高,而且占用大(dà)量的CPU資(zī)源,浪費(fèi)存儲空間和大(dà)量的功耗。同時,還使其它的應用程序得不到充分(fēn)的CPU資(zī)源,從而影響整個系統性能,導緻高速的帶寬資(zī)源得不到充分(fēn)的利用。由于網絡帶寬增加的速度遠超過處理器速度的增長,在今後網絡應用的瓶頸不再是帶寬資(zī)源,而是處理器的速度面對網絡帶寬和速度的飛速增長,傳統的通過軟件進行TCP/IP協議處理的方式已經越來越成爲高性能網絡計算的瓶頸。
圖
1 網絡處理的傳統處理流程
三、 ToE的處理流程
ToE(TCP/IP Offload Engine)是一(yī)門使用硬件代替軟件來處理TCP/IP協議的技術,從而将系統微處理器從TCP/IP協議處理負擔中(zhōng)解放(fàng)出來,提高了網絡性能;同時也爲沒有TCP/IP協議處理能力的系統提供了一(yī)種解決方案。傳統方式下(xià),TCP/IP協議由操作系統處理,ToE技術将TCP/lP協議的處理分(fēn)離(lí)到網卡,如圖2所示。
圖2ToE處理方式與傳統處理方式對比
四、 ToE的實現
本設計主要通過硬件實現TCP/IP協議傳輸機制,支持TCP/IP的建立、釋放(fàng)握手機制;同時支持TCP的超時重傳、慢(màn)開(kāi)始、快重傳的機制。實現将TCP/IP協議完全卸載到硬件實現,軟件負責一(yī)些狀态的管理及配置任務,大(dà)大(dà)減軟的軟件的任務量同時提升TCP/IP數據的處理效率。
在ToE的功能實現時,本設計基于FPGA實現的網絡接口卡功能,除此之外(wài)基于FPGA還可以後期添加交換、QoS、安全等功能,從而支持更加靈活的功能實現。具體(tǐ)的ToE功能實現結構如圖3所示。
圖3 ToE實現結構圖
主要由接收側處理模塊RX,發送側處理模塊TX和連接控制模塊CC組成,三部分(fēn)的邏輯關系如3圖所示。
CC模塊主要完成是TCP/IP流的狀态管理,主要負責連接及釋放(fàng)的握手機制,并維護建立連接的TCP/IP流狀态表。
RX模塊負責數據的接收處理,包括TCP/IP的頭部校驗和校驗、去(qù)MAC頭以及接收緩存管理以及接收數據的窗口管理等操作。
TX模塊負責數據的發送數據,包括添加TCP/IP的頭部校驗和、添加MAC頭、發送窗口控制、超時重傳控制、慢(màn)開(kāi)始、快重傳控制以及數據輸出緩存管理及數據分(fēn)段的管理等。
通過測試本設計的在1G接口的處理速率可以達960Mbps,10G接口的速率可達9Gbps。