基于fpga實(shí)現(xiàn)的萬兆網(wǎng)tcp協(xié)議卸載引擎toe的系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明涉及萬兆網(wǎng)高性能TCP/IP協(xié)議棧領(lǐng)域,具體涉及一種基于FPGA實(shí)現(xiàn)的萬兆網(wǎng)TCP協(xié)議卸載引擎TOE的系統(tǒng)。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)技術(shù),尤其是光纖技術(shù)的快速發(fā)展,光纖通信網(wǎng)絡(luò)等高速通信網(wǎng)絡(luò)正迅速成為主要的網(wǎng)絡(luò)傳輸手段,網(wǎng)絡(luò)帶寬也不斷提升。網(wǎng)絡(luò)應(yīng)用的性能需求表現(xiàn)為高吞吐率、低延遲、高帶寬、低主機(jī)開銷和低存儲開銷等特點(diǎn)。根據(jù)Thumb定律,傳輸Ibit數(shù)據(jù)大約需要IHertz的CPU性能,因此隨著千兆以太網(wǎng)和萬兆以太網(wǎng)的出現(xiàn),CPU資源的消耗越來越大。此夕卜,由于大多數(shù)操作系統(tǒng)均為非實(shí)時(shí)操作系統(tǒng),采用CPU作為協(xié)議棧的主要處理平臺,其調(diào)度及緩存的時(shí)延也隨著網(wǎng)絡(luò)帶寬的提升而逐漸成為低延遲要求的專用網(wǎng)絡(luò)中越來越不可忍受的問題。為此,研究人員提出了 TCP協(xié)議卸載引擎TOE技術(shù),即將TCP協(xié)議棧的處理轉(zhuǎn)移到硬件實(shí)現(xiàn),從而有效加速網(wǎng)絡(luò)協(xié)議處理速度,釋放CPU資源,降低處理時(shí)延。
[0003]TOE技術(shù)的基本思想是分擔(dān)CPU對網(wǎng)絡(luò)協(xié)議的處理,將協(xié)議處理過程放到高速網(wǎng)卡或者專用網(wǎng)絡(luò)處理卡等硬件上完成,其中包括TCP、IP、UDP、ARP、ICMP等子協(xié)議的處理。將原來通過CPU軟件方式處理的TCP/IP協(xié)議放在硬件上處理,能夠?qū)?yīng)用和網(wǎng)絡(luò)協(xié)議分離處理,從而使以太網(wǎng)環(huán)境中應(yīng)用服務(wù)器的(PU資源利用率大大提高,顯著地改善服務(wù)器性能。
[0004]目前國內(nèi)外實(shí)現(xiàn)TOE技術(shù)主要還是采用嵌入式方式。嵌入式TOE采用專用電路實(shí)現(xiàn),結(jié)構(gòu)上接近于計(jì)算機(jī),具備處理器、固件、存儲器、數(shù)據(jù)傳輸總線、實(shí)時(shí)操作系統(tǒng)以及PHY/MAC接口。主機(jī)CPU上的TCP/IP協(xié)議棧處理改由嵌入式TOE實(shí)時(shí)操作系統(tǒng)的內(nèi)部協(xié)議棧執(zhí)行。這種方案不僅能支持TCP/IP協(xié)議棧的卸載,對實(shí)時(shí)操作系統(tǒng)支持的其他類型協(xié)議棧的卸載同樣有效。嵌入式TOE方案具有很大靈活性,固件可以方便地運(yùn)用ROM芯片進(jìn)行升級,從而通過固件的簡單更新就可以增加新功能來適應(yīng)特殊的處理環(huán)境。但因?yàn)橥瑯邮峭ㄟ^處理器機(jī)制實(shí)現(xiàn),CPU方案的缺陷在這種方案中仍然存在,其所帶來的性能提升相對有限。當(dāng)面臨大規(guī)模高速數(shù)據(jù)應(yīng)用的多個(gè)套接字連接要求時(shí),突然攀升的大量數(shù)據(jù)傳輸要求會急劇加大對處理器資源的消耗,同時(shí)這個(gè)方式在多個(gè)應(yīng)用端口并發(fā)處理時(shí),其處理器的調(diào)度時(shí)延使得延遲的不可控性極大地加劇,并迅速降低網(wǎng)絡(luò)性能,增加網(wǎng)絡(luò)丟數(shù)的可能性。因此這類技術(shù)大多用于對網(wǎng)絡(luò)性能提升有要求但要求不高的場合。
[0005]采用FPGA為主實(shí)現(xiàn)TOE技術(shù)在國內(nèi)外也有相關(guān)報(bào)道,主要集中在兩個(gè)方面:一種是百兆網(wǎng)或千兆網(wǎng)的TCP/UDP協(xié)議實(shí)現(xiàn),但該實(shí)現(xiàn)不僅在速度上無法滿足萬兆傳輸需求,而且僅能實(shí)現(xiàn)I個(gè)或2個(gè)網(wǎng)絡(luò)連接,因而在高速應(yīng)用上大大受限;另一種是實(shí)現(xiàn)MAC層上的單萬兆連接,但這種連接需要依賴接收方網(wǎng)卡的混雜模式支持,不僅最高速度受限,而且通用性差。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的是為了改善上述問題,提供一種基于FPGA實(shí)現(xiàn)的萬兆網(wǎng)TCP協(xié)議卸載引擎TOE的系統(tǒng)。
[0007]為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
基于FPGA實(shí)現(xiàn)的萬兆網(wǎng)TCP協(xié)議卸載引擎TOE的系統(tǒng),包括用于實(shí)現(xiàn)TCP/IP協(xié)議棧及萬兆網(wǎng)MAC層的FPGA,與FPGA相連的萬兆網(wǎng)PHY芯片,與FPGA相連并用于充當(dāng)萬兆網(wǎng)傳輸介質(zhì)的1G光收發(fā)模塊,以及與FPGA相連用于數(shù)據(jù)緩存的DDR外部存儲器。
[0008]進(jìn)一步地,還包括與FPGA相連用于與計(jì)算機(jī)互聯(lián)的PCIE高速總線接口,以及與FPGA相連用于與設(shè)備互聯(lián)的FMC接口或/和CPCI接口。
[0009]再進(jìn)一步地,所述FPGA包括TCP協(xié)議發(fā)送模塊、UDP協(xié)議發(fā)送模塊、IP協(xié)議發(fā)送模塊、TCP協(xié)議接收模塊、UDP協(xié)議接收模塊、IP協(xié)議接收模塊、ICMP協(xié)議模塊、ARP協(xié)議模塊、PCIE接口發(fā)送模塊、PCIE接口接收模塊、FMC接口發(fā)送模塊、FMC接口接收模塊、套接字?jǐn)?shù)據(jù)收發(fā)應(yīng)用模塊。
[0010]更進(jìn)一步地,所述光收發(fā)模塊上還連接有用于接入萬兆網(wǎng)的1G光收發(fā)接口。
[0011]本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn)及有益效果:
本發(fā)明采用FPGA并行處理機(jī)制,可以最大限度的解決網(wǎng)絡(luò)延遲的動態(tài)平衡,最高效地并行處理多個(gè)套件字業(yè)務(wù)和相應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)收發(fā)服務(wù)器。
[0012]本發(fā)明用于常規(guī)計(jì)算機(jī)中,可以徹底將CPU從網(wǎng)絡(luò)數(shù)據(jù)業(yè)務(wù)中脫離出來,極大改善了CPU在大數(shù)據(jù)量網(wǎng)絡(luò)業(yè)務(wù)應(yīng)用中的高負(fù)荷現(xiàn)狀;同時(shí),本發(fā)明提供沒有處理器資源但卻存在高速數(shù)據(jù)網(wǎng)絡(luò)收發(fā)需求的相關(guān)產(chǎn)品直接接入網(wǎng)絡(luò)應(yīng)用的可能,從而節(jié)省相關(guān)產(chǎn)品通過其它手段中轉(zhuǎn)到萬兆網(wǎng)絡(luò)的開支費(fèi)用。
【附圖說明】
[0013]圖1為本發(fā)明的結(jié)構(gòu)框圖。
[0014]圖2為本發(fā)明的邏輯組成框圖。
【具體實(shí)施方式】
[0015]下面結(jié)合實(shí)施例對本發(fā)明作進(jìn)一步說明,本發(fā)明的實(shí)施方式包括但不限于下列實(shí)施例。
實(shí)施例
[0016]如圖1所示,基于FPGA實(shí)現(xiàn)的萬兆網(wǎng)TCP協(xié)議卸載引擎TOE的系統(tǒng),包括用于實(shí)現(xiàn)TCP/IP協(xié)議棧及萬兆網(wǎng)MAC層的FPGA,與FPGA相連的萬兆網(wǎng)PHY芯片,與FPGA相連并用于充當(dāng)萬兆網(wǎng)傳輸介質(zhì)的1G光收發(fā)模塊,以及與FPGA相連用于數(shù)據(jù)緩存的DDR外部存儲器。還包括與FPGA相連并用于與計(jì)算機(jī)互聯(lián)的PCIE高速總線接口,以及與FPGA相連并用于與設(shè)備互聯(lián)的FMC接口、CPCI接口等等;所述光收發(fā)模塊上還連接有用于接入萬兆網(wǎng)的1G光收發(fā)接口,作為一種優(yōu)選,可選用XAUI接口。
[0017]本發(fā)明的FPGA可實(shí)現(xiàn)傳輸層UDP協(xié)議、傳輸層TCP協(xié)議、網(wǎng)絡(luò)層IPv4協(xié)議、網(wǎng)絡(luò)層ARP協(xié)議、網(wǎng)絡(luò)層ICMP協(xié)議、萬兆網(wǎng)數(shù)據(jù)鏈路層功能。TCP協(xié)議實(shí)現(xiàn)功能主要包括連接管理功能、確認(rèn)應(yīng)答功能、超時(shí)重發(fā)功能、發(fā)送窗口滑動功能、流量控制功能。
[0018]如圖2所示,本實(shí)施例的FPGA包括TCP協(xié)議發(fā)送模塊、UDP協(xié)議發(fā)送模塊、IP協(xié)議發(fā)送模塊、TCP協(xié)議接收模塊、UDP協(xié)議接收模塊、IP協(xié)議接收模塊、ICMP協(xié)議模塊、ARP協(xié)議模塊、PCIE接口發(fā)送模塊、PCIE接口接收模塊、FMC接口發(fā)送模塊、FMC接口接收模塊、套接字?jǐn)?shù)據(jù)收發(fā)應(yīng)用模塊、CPCI接口發(fā)送模塊、CPCI接口接收模塊。具體的連接方式可見圖2所示。
[0019]值得說明的是,本發(fā)明創(chuàng)新性地采用FPGA實(shí)現(xiàn)TCP/IP協(xié)議棧,通過硬件的方式來替代了傳統(tǒng)處理器加操作系統(tǒng)實(shí)現(xiàn)的軟TCP/IP協(xié)議棧。本發(fā)明既有效提高了 TCP/IP協(xié)議棧的處理速度,又實(shí)現(xiàn)了萬兆網(wǎng)絡(luò)傳輸?shù)钠椒€(wěn)均衡性,最主要實(shí)現(xiàn)了計(jì)算機(jī)應(yīng)用與網(wǎng)絡(luò)協(xié)議的分離。本發(fā)明可作為計(jì)算機(jī)的協(xié)處理模塊,替代傳統(tǒng)計(jì)算機(jī)處理器需要完成的網(wǎng)絡(luò)協(xié)議功能,極大地釋放處理器在網(wǎng)絡(luò)協(xié)議處理上的高消耗;該模塊還可作為網(wǎng)絡(luò)接入模塊獨(dú)立配備在相關(guān)產(chǎn)品上,使得沒有處理器資源的硬件產(chǎn)品也能以標(biāo)準(zhǔn)萬兆網(wǎng)絡(luò)終端的身份進(jìn)入到以太網(wǎng)環(huán)境中,正常的進(jìn)行萬兆網(wǎng)絡(luò)業(yè)務(wù)的交互。
[0020]本發(fā)明的實(shí)現(xiàn)方式如下:
當(dāng)網(wǎng)絡(luò)連接建立時(shí),上層系統(tǒng)通過向套接字?jǐn)?shù)據(jù)收發(fā)應(yīng)用模塊下發(fā)建立網(wǎng)絡(luò)連接請求,而自動激活A(yù)RP地址解析、TCP建聯(lián)等一系列與遠(yuǎn)端網(wǎng)絡(luò)設(shè)備建立連接的操作。
[0021]網(wǎng)絡(luò)連接釋放時(shí),上層系統(tǒng)通過向套接字?jǐn)?shù)據(jù)收發(fā)應(yīng)用模塊下發(fā)斷開網(wǎng)絡(luò)連接請求,而自動激活TCP斷聯(lián)等一系列與遠(yuǎn)端網(wǎng)絡(luò)設(shè)備斷開連接的操作。
[0022]網(wǎng)絡(luò)數(shù)據(jù)發(fā)送時(shí),套接字?jǐn)?shù)據(jù)收發(fā)應(yīng)用模塊通過PCIE接口接收來自于計(jì)算機(jī)的源發(fā)送數(shù)據(jù),或者通過FMC、CPCI接口接收來自于設(shè)備的源發(fā)送數(shù)據(jù);經(jīng)TCP協(xié)議發(fā)送模塊或UDP協(xié)議發(fā)送模塊進(jìn)行協(xié)議封裝,構(gòu)建成TCP幀或UDP幀;然后經(jīng)IP協(xié)議發(fā)送模塊進(jìn)行協(xié)議封裝,構(gòu)建成IP幀;再由萬兆網(wǎng)MAC發(fā)送模塊進(jìn)行協(xié)議封裝,構(gòu)建成以太網(wǎng)幀;最后通過XAUI接口將以太網(wǎng)幀上傳到外部萬兆網(wǎng)絡(luò)環(huán)境當(dāng)中。
[0023]網(wǎng)絡(luò)數(shù)據(jù)接收時(shí),首先通過XAUI接口接收外部萬兆網(wǎng)絡(luò)環(huán)境送達(dá)到本地的以太網(wǎng)幀;經(jīng)萬兆網(wǎng)MAC接收模塊進(jìn)行協(xié)議解析和重組,還原出IP幀;然后經(jīng)IP協(xié)議接收模塊進(jìn)行協(xié)議解析、去重和重組,還原出TCP幀或UDP幀;再由TCP協(xié)議接收模塊或UDP協(xié)議接收模塊進(jìn)行協(xié)議解析,還原出原始數(shù)據(jù);最后將接收的原始數(shù)據(jù)通過PCIE接口傳遞給計(jì)算機(jī),或者通過FMC、CPCI接口傳遞給設(shè)備。
[0024]按照上述實(shí)施例,便可很好地實(shí)現(xiàn)本發(fā)明。值得說明的是,基于上述結(jié)構(gòu)設(shè)計(jì)的前提下,為解決同樣的技術(shù)問題,即使在本發(fā)明上做出的一些無實(shí)質(zhì)性的改動或潤色,所采用的技術(shù)方案的實(shí)質(zhì)仍然與本發(fā)明一樣,故其也應(yīng)當(dāng)在本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于FPGA實(shí)現(xiàn)的萬兆網(wǎng)TCP協(xié)議卸載引擎TOE的系統(tǒng),其特征在于,包括用于實(shí)現(xiàn)TCP/IP協(xié)議棧及萬兆網(wǎng)MAC層的FPGA,與FPGA相連的萬兆網(wǎng)PHY芯片,與FPGA相連并用于充當(dāng)萬兆網(wǎng)傳輸介質(zhì)的1G光收發(fā)模塊,以及與FPGA相連用于數(shù)據(jù)緩存的DDR外部存儲器。2.根據(jù)權(quán)利要求1所述的基于FPGA實(shí)現(xiàn)的萬兆網(wǎng)TCP協(xié)議卸載引擎TOE的系統(tǒng),其特征在于,還包括與FPGA相連用于與計(jì)算機(jī)互聯(lián)的PCIE高速總線接口,以及與FPGA相連用于與設(shè)備互聯(lián)的FMC接口或/和CPCI接口。3.根據(jù)權(quán)利要求1或2所述的基于FPGA實(shí)現(xiàn)的萬兆網(wǎng)TCP協(xié)議卸載引擎TOE的系統(tǒng),其特征在于,所述FPGA包括TCP協(xié)議發(fā)送模塊、UDP協(xié)議發(fā)送模塊、IP協(xié)議發(fā)送模塊、TCP協(xié)議接收模塊、UDP協(xié)議接收模塊、IP協(xié)議接收模塊、ICMP協(xié)議模塊、ARP協(xié)議模塊、PCIE接口發(fā)送模塊、PCIE接口接收模塊、FMC接口發(fā)送模塊、FMC接口接收模塊、套接字?jǐn)?shù)據(jù)收發(fā)應(yīng)用模塊。4.根據(jù)權(quán)利要求1或2所述的基于FPGA實(shí)現(xiàn)的萬兆網(wǎng)TCP協(xié)議卸載引擎TOE的系統(tǒng),其特征在于,所述光收發(fā)模塊上還連接有用于接入萬兆網(wǎng)的1G光收發(fā)接口。
【專利摘要】本發(fā)明公開了一種基于FPGA實(shí)現(xiàn)的萬兆網(wǎng)TCP協(xié)議卸載引擎TOE的系統(tǒng)。本發(fā)明包括用于實(shí)現(xiàn)TCP/IP協(xié)議棧及萬兆網(wǎng)MAC層的FPGA,與FPGA相連的萬兆網(wǎng)PHY芯片,與FPGA相連并用于充當(dāng)萬兆網(wǎng)傳輸介質(zhì)的10G光收發(fā)模塊,以及與FPGA相連用于數(shù)據(jù)緩存的DDR外部存儲器。本發(fā)明創(chuàng)新性地采用FPGA實(shí)現(xiàn)TCP/IP協(xié)議棧,通過硬件的方式來替代了傳統(tǒng)處理器加操作系統(tǒng)實(shí)現(xiàn)的軟TCP/IP協(xié)議棧。本發(fā)明既有效提高了TCP/IP協(xié)議棧的處理速度,又實(shí)現(xiàn)了萬兆網(wǎng)絡(luò)傳輸?shù)钠椒€(wěn)均衡性,最主要實(shí)現(xiàn)了計(jì)算機(jī)應(yīng)用與網(wǎng)絡(luò)協(xié)議的分離。
【IPC分類】H04L29/06
【公開號】CN105516191
【申請?zhí)枴緾N201610022115
【發(fā)明人】劉峰, 李峰
【申請人】成都市智訊聯(lián)創(chuàng)科技有限責(zé)任公司
【公開日】2016年4月20日
【申請日】2016年1月13日