一、 概述
TCP/IP協議已經成爲(wéi / wèi)互聯網應用最基本的(de)協議。傳統方式下,TCP/IP協議由中央處理器、微處理器以(yǐ)軟件的(de)形式處理。然而(ér),随着以(yǐ)太網速率從1000Mbits/s提高到(dào)10Gbits/s再到(dào)40Gbits/s、100Gbits/s,CPU已經很難滿足TCP/IP協議處理的(de)需要(yào / yāo)了(le/liǎo)。因此,爲(wéi / wèi)了(le/liǎo)減輕CPU的(de)協議處理負擔,TCP/IP協議處理技術顯得越來(lái)越重要(yào / yāo)。其中,TCP/IP卸載引擎(TCP/IP Offload Engine,ToE)技術成爲(wéi / wèi)研究的(de)熱點。
二、 傳統TCP的(de)處理
在(zài)傳統的(de)以(yǐ)太網環境中,TCP/IP協議的(de)處理都是(shì)通過軟件方式在(zài)中央處理器上(shàng)實現。如圖1所示,網絡數據由網卡進入計算機系統,傳統網卡主要(yào / yāo)實現網絡協議物理層和(hé / huò)數據鏈路層功能,然後将口數據包交付CPU操作系統 ,CPU操作系統首先對數據進行TCP/IP協議處理,最後将數據交付應用程序。由于(yú)CPU是(shì)一個(gè)通用的(de)部件,它不(bù)是(shì)專門針對TCP/IP協議處理而(ér)設計,因而(ér)它處理協議的(de)能力不(bù)強。在(zài)吉比特網絡中,如果TCP/IP協議處理仍在(zài)CPU中執行,不(bù)但協議處理的(de)效率不(bù)高,而(ér)且占用大(dà)量的(de)CPU資源,浪費存儲空間和(hé / huò)大(dà)量的(de)功耗。同時(shí),還使其它的(de)應用程序得不(bù)到(dào)充分的(de)CPU資源,從而(ér)影響整個(gè)系統性能,導緻高速的(de)帶寬資源得不(bù)到(dào)充分的(de)利用。由于(yú)網絡帶寬增加的(de)速度遠超過處理器速度的(de)增長,在(zài)今後網絡應用的(de)瓶頸不(bù)再是(shì)帶寬資源,而(ér)是(shì)處理器的(de)速度面對網絡帶寬和(hé / huò)速度的(de)飛速增長,傳統的(de)通過軟件進行TCP/IP協議處理的(de)方式已經越來(lái)越成爲(wéi / wèi)高性能網絡計算的(de)瓶頸。

圖
1 網絡處理的(de)傳統處理流程
三、 ToE的(de)處理流程
ToE(TCP/IP Offload Engine)是(shì)一門使用硬件代替軟件來(lái)處理TCP/IP協議的(de)技術,從而(ér)将系統微處理器從TCP/IP協議處理負擔中解放出(chū)來(lái),提高了(le/liǎo)網絡性能;同時(shí)也(yě)爲(wéi / wèi)沒有TCP/IP協議處理能力的(de)系統提供了(le/liǎo)一種解決方案。傳統方式下,TCP/IP協議由操作系統處理,ToE技術将TCP/lP協議的(de)處理分離到(dào)網卡,如圖2所示。

圖2ToE處理方式與傳統處理方式對比
四、 ToE的(de)實現
本設計主要(yào / yāo)通過硬件實現TCP/IP協議傳輸機制,支持TCP/IP的(de)建立、釋放握手機制;同時(shí)支持TCP的(de)超時(shí)重傳、慢開始、快重傳的(de)機制。實現将TCP/IP協議完全卸載到(dào)硬件實現,軟件負責一些狀态的(de)管理及配置任務,大(dà)大(dà)減軟的(de)軟件的(de)任務量同時(shí)提升TCP/IP數據的(de)處理效率。
在(zài)ToE的(de)功能實現時(shí),本設計基于(yú)FPGA實現的(de)網絡接口卡功能,除此之(zhī)外基于(yú)FPGA還可以(yǐ)後期添加交換、QoS、安全等功能,從而(ér)支持更加靈活的(de)功能實現。具體的(de)ToE功能實現結構如圖3所示。

圖3 ToE實現結構圖
主要(yào / yāo)由接收側處理模塊RX,發送側處理模塊TX和(hé / huò)連接控制模塊CC組成,三部分的(de)邏輯關系如3圖所示。
CC模塊主要(yào / yāo)完成是(shì)TCP/IP流的(de)狀态管理,主要(yào / yāo)負責連接及釋放的(de)握手機制,并維護建立連接的(de)TCP/IP流狀态表。
RX模塊負責數據的(de)接收處理,包括TCP/IP的(de)頭部校驗和(hé / huò)校驗、去MAC頭以(yǐ)及接收緩存管理以(yǐ)及接收數據的(de)窗口管理等操作。
TX模塊負責數據的(de)發送數據,包括添加TCP/IP的(de)頭部校驗和(hé / huò)、添加MAC頭、發送窗口控制、超時(shí)重傳控制、慢開始、快重傳控制以(yǐ)及數據輸出(chū)緩存管理及數據分段的(de)管理等。
通過測試本設計的(de)在(zài)1G接口的(de)處理速率可以(yǐ)達960Mbps,10G接口的(de)速率可達9Gbps。