基于FPGA的TCP粘合設(shè)計(jì)實(shí)現(xiàn)
TCP粘合技術(shù)采用軟件處理方式時(shí),由于大量數(shù)據(jù)包不需要上層解析,因此提高了系統(tǒng)性能,但是受軟件處理速度的限制,該技術(shù)仍很難應(yīng)用于大規(guī)模的集群系統(tǒng)。本文提出了一種基于FPGA的TCP粘合技術(shù)的高速實(shí)現(xiàn)機(jī)制,利用硬件的高速處理特性和流水線技術(shù)來(lái)適應(yīng)高速網(wǎng)絡(luò)傳輸?shù)男枰?nbsp;
1 現(xiàn)存的TCP粘合技術(shù)
TCP粘合原理如下:(1)監(jiān)聽客戶端的連接請(qǐng)求,并在客戶端發(fā)出連接請(qǐng)求后(從SYN開始),建立客戶端到均衡器之間的連接(通過(guò)TCP的三次握手協(xié)議完成)。(2)在隨后的請(qǐng)求報(bào)文中分析數(shù)據(jù)并決定真正被訪問(wèn)的服務(wù)節(jié)點(diǎn)。(3)與服務(wù)節(jié)點(diǎn)建立另一個(gè)連接,將兩個(gè)連接粘合在一起(Splicing)。其TCP粘合原理示意圖如圖1所示[2]。
2 TCP粘合技術(shù)的硬件實(shí)現(xiàn)
TCP粘合技術(shù)的關(guān)鍵在于,當(dāng)客戶端發(fā)起連接請(qǐng)求時(shí),系統(tǒng)并不是立即將該請(qǐng)求發(fā)給后端服務(wù)器,而是偽裝成服務(wù)器與客戶端建立連接,取得用戶的GET數(shù)據(jù)包。通過(guò)對(duì)URL的匹配來(lái)找到信息在后端服務(wù)器的位置,然后再在客戶端與服務(wù)器之間建立連接通信。
2.1 系統(tǒng)架構(gòu)
TCP粘合系統(tǒng)結(jié)構(gòu)如圖2所示。
該系統(tǒng)中首先由客戶數(shù)據(jù)接收端對(duì)接收到的HTTP報(bào)文進(jìn)行解析,發(fā)現(xiàn)數(shù)據(jù)包為一個(gè)發(fā)起連接的SYN數(shù)據(jù)包時(shí),傳給地址管理單元,地址管理就為該連接分配一個(gè)地址空間,同時(shí)通過(guò)映射單元告訴客戶數(shù)據(jù)發(fā)送端與客戶端完成三次握手,建立連接。
當(dāng)客戶數(shù)據(jù)接收端接收到GET數(shù)據(jù)包時(shí),將該數(shù)據(jù)包發(fā)送給字符串匹配表,該表會(huì)將信息在后端服務(wù)器的位置返回給地址管理單元,地址管理單元將該信息送給數(shù)據(jù)包映射單元,映射單元將該信息寫入相應(yīng)的SSRAM空間中,同時(shí)通知服務(wù)器發(fā)送端與后端服務(wù)器建立連接。這樣就完成了一個(gè)TCP的粘合過(guò)程。
在客戶端與服務(wù)器的通信過(guò)程中,數(shù)據(jù)包映射單元通過(guò)雙方SIP、DIP信息從SSRAM中查找出對(duì)應(yīng)的替換信息,完成雙方數(shù)據(jù)包的映射。
在雙方通信結(jié)束時(shí),由地址管理單元對(duì)雙方使用的地址空間進(jìn)行回收;同時(shí)為防止通信過(guò)程中的異常中斷,地址管理單元內(nèi)部還采用了定時(shí)器機(jī)制對(duì)地址空間進(jìn)行監(jiān)測(cè),根據(jù)定時(shí)器返回結(jié)果回收過(guò)時(shí)地址,防止過(guò)時(shí)信息被查用。
2.2 設(shè)計(jì)實(shí)現(xiàn)
在該系統(tǒng)中,為完成TCP粘合并且保證TCP通信的可靠性,必須能夠正確識(shí)別接收到的數(shù)據(jù)包類型;同時(shí)由于實(shí)際網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)难訒r(shí),在一個(gè)客戶端通信過(guò)程中可能會(huì)插入很多其他客戶端發(fā)起的新的連接請(qǐng)求,系統(tǒng)內(nèi)部根據(jù)對(duì)CAM查找返回的地址來(lái)區(qū)分不同的數(shù)據(jù)流,因此要對(duì)內(nèi)部地址空間進(jìn)行有效的釋放回收,為處理網(wǎng)絡(luò)通信異常中斷而導(dǎo)致內(nèi)部地址無(wú)法回收而引入定時(shí)器機(jī)制;在數(shù)據(jù)發(fā)送部分,客戶端數(shù)據(jù)發(fā)送模塊偽裝成服務(wù)器與客戶端完成TCP三次握手協(xié)議;服務(wù)器數(shù)據(jù)發(fā)送模塊則偽裝成客戶端與服務(wù)器完成TCP三次握手協(xié)議。雙方在通信過(guò)程中轉(zhuǎn)發(fā)對(duì)方的數(shù)據(jù)包。
2.2.1 數(shù)據(jù)收發(fā)
對(duì)于系統(tǒng)的發(fā)送接口來(lái)說(shuō),所有發(fā)送數(shù)據(jù)包的轉(zhuǎn)發(fā)由數(shù)據(jù)包映射單元完成,因此發(fā)送接口僅完成簡(jiǎn)單的數(shù)據(jù)包轉(zhuǎn)發(fā)功能。而當(dāng)系統(tǒng)接收到數(shù)據(jù)包時(shí),要對(duì)數(shù)據(jù)包進(jìn)行協(xié)議解析,從而決定數(shù)據(jù)包后端處理的方式。在接收部分主要對(duì)三種數(shù)據(jù)包進(jìn)行區(qū)分:(1)雙方發(fā)起連接的SYN數(shù)據(jù)包。這表示一個(gè)新連接的發(fā)起,因此交給地址管理單元,為它分配一個(gè)新的地址空間,同時(shí)要求發(fā)送端返回一個(gè)ACK數(shù)據(jù)包;(2)客戶端發(fā)來(lái)的GET數(shù)據(jù)包中含有客戶端所需信息的URL地址,將該數(shù)據(jù)包送給字符串匹配表以獲得該信息所在后端服務(wù)器的位置;(3)雙方通信的普通數(shù)據(jù)包。該數(shù)據(jù)包交給數(shù)據(jù)包映射單元實(shí)現(xiàn)雙發(fā)的通信。具體接收的狀態(tài)轉(zhuǎn)換圖如圖3所示。
2.2.2 地址管理單元
在地址管理的方式上,在此處利用一個(gè)地址鏈表進(jìn)行管理,如圖4所示。
每次地址管理單元接收到新的請(qǐng)求連接就從鏈表的頭部取出該可用地址空間,將新請(qǐng)求的SIP、DIP信息寫入該地址的CAM中,同時(shí)在該地址對(duì)應(yīng)的SSRAM的頁(yè)面中寫入相關(guān)的信息,假設(shè)鏈表中取出地址為n,頁(yè)面大小為m,則SSRAM中對(duì)應(yīng)的頁(yè)面起始地址l為:
l=n×m
當(dāng)?shù)刂饭芾韱卧邮盏阶址ヅ浔矸祷氐暮蠖朔⻊?wù)器位置信息時(shí),首先通過(guò)該數(shù)據(jù)包的SIP、DIP從CAM中查找該數(shù)據(jù)流對(duì)應(yīng)的地址,通過(guò)上述計(jì)算公式找出SSRAM中對(duì)應(yīng)的頁(yè)面,寫入返回信息。
對(duì)于地址空間的回收,為防止通信異常中斷而無(wú)法回收地址,在系統(tǒng)中采用定時(shí)器機(jī)制,即在一段時(shí)間后對(duì)SSRAM中的定時(shí)器標(biāo)志位進(jìn)行檢測(cè),一旦發(fā)現(xiàn)該標(biāo)志位過(guò)時(shí)則通知地址管理單元回收地址。地址管理單元收到某一地址過(guò)時(shí)的信息后,將該地址掛在地址管理鏈表尾部,同時(shí)清除該地址CAM中的SIP、DIP信息。這樣當(dāng)同一IP發(fā)起新的連接時(shí)就不會(huì)查找到過(guò)時(shí)信息。
2.2.3 數(shù)據(jù)包映射單元
為完成數(shù)據(jù)包的映射,該部分需要實(shí)現(xiàn)兩個(gè)功能:ACK序列號(hào)轉(zhuǎn)換和雙方轉(zhuǎn)換信息的存儲(chǔ)。
在TCP粘合過(guò)程中,由于TCP粘合系統(tǒng)送給客戶端的ACK序列號(hào)和后端服務(wù)器送給客戶端的ACK序列號(hào)不相同,因此要進(jìn)行ACK序列號(hào)的轉(zhuǎn)換,同時(shí)要重新計(jì)算數(shù)據(jù)包的TCP/IP校驗(yàn)和。
現(xiàn)假設(shè)客戶端發(fā)送了請(qǐng)求連接的SYN數(shù)據(jù)包,而客戶端返回給客戶端的SYN序列號(hào)為地址管理單元分配給該連接的地址A0,而當(dāng)系統(tǒng)和服務(wù)器建立鏈接時(shí)服務(wù)器端返回的SYN序列號(hào)為A1,則根據(jù)這兩個(gè)序列號(hào)可計(jì)算差值A(chǔ)為:A=A0-A1。
以后通信的過(guò)程中,只要將服務(wù)器發(fā)送給系統(tǒng)的序列號(hào)加上A就能夠轉(zhuǎn)換成為系統(tǒng)送給客戶端的序列號(hào),這樣就完成了服務(wù)器端向客戶端發(fā)送數(shù)據(jù)的轉(zhuǎn)換,反之就可以完成客戶端向服務(wù)器發(fā)送數(shù)據(jù)的轉(zhuǎn)換。
對(duì)于數(shù)據(jù)包的校驗(yàn)和轉(zhuǎn)換而言,由于校驗(yàn)和本質(zhì)上是加法運(yùn)算,所以只需要在原來(lái)的校驗(yàn)和基礎(chǔ)上加上序列號(hào)之差(或減去一個(gè)差值)即可完成校驗(yàn)和的轉(zhuǎn)換。
在同一個(gè)通信過(guò)程中,ACK序列號(hào)轉(zhuǎn)換、校驗(yàn)和的轉(zhuǎn)換、發(fā)起連接的SYN、GET數(shù)據(jù)包和定時(shí)器標(biāo)志位等信息都需要存儲(chǔ),由于每個(gè)數(shù)據(jù)流需要存儲(chǔ)的內(nèi)容較多,單一的地址已經(jīng)無(wú)法滿足存儲(chǔ)要求。此處存儲(chǔ)管理采用頁(yè)面式的管理方式。將整個(gè)存儲(chǔ)空間分為若干頁(yè)面,每個(gè)數(shù)據(jù)流信息存入一個(gè)頁(yè)面中。SSRAM的存儲(chǔ)格式如圖5所示。
3 性能分析
該架構(gòu)已在試驗(yàn)系統(tǒng)上實(shí)現(xiàn),接收端為兩個(gè)GE口。相對(duì)于采用TCP粘合的應(yīng)用代理服務(wù)器來(lái)說(shuō)(其中代理服務(wù)器CPU Pentium IV 2GHz),具體的性能對(duì)比如表1所示。
從上表可以看出在較大連接數(shù)方面,在本系統(tǒng)中采用一個(gè)18Mbit的CAM,它能夠提供的較大地址空間為288K×144bit,只能支持288K的連接數(shù)。對(duì)于服務(wù)器的較大連接數(shù)來(lái)說(shuō),SYN和GET數(shù)據(jù)包需要經(jīng)過(guò)軟件協(xié)議解析。因此當(dāng)較大連接數(shù)達(dá)到582K時(shí)CPU的利用率將達(dá)到90%以上[3],無(wú)法再處理新的連接。從上述分析中可以看出,由于受硬件資源的限制,硬件系統(tǒng)可以支持的較大連接數(shù)小于代理服務(wù)器。但是在實(shí)際的網(wǎng)絡(luò)傳輸過(guò)程中,一個(gè)HTTP連接持續(xù)的時(shí)間一般為幾百個(gè)毫秒,在硬件系統(tǒng)達(dá)到每秒21K的連接數(shù)時(shí),能夠承受的一個(gè)HTTP較大持續(xù)時(shí)間為13秒,遠(yuǎn)遠(yuǎn)大于實(shí)際HTTP連接的持續(xù)時(shí)間,因此硬件系統(tǒng)支持的較大連接數(shù)是夠用的。當(dāng)代理服務(wù)器采用千兆網(wǎng)卡來(lái)接收數(shù)據(jù)時(shí),由于數(shù)據(jù)需要經(jīng)過(guò)上層協(xié)議解析,因此實(shí)際能夠接收的數(shù)據(jù)量只能夠達(dá)到300Mbps。假設(shè)每次平均請(qǐng)求512B,則代理服務(wù)器能夠支持的較大每秒連接數(shù)大約為7K;而當(dāng)硬件系統(tǒng)工作在133MHz,內(nèi)部采用32bit總線傳輸時(shí),整個(gè)系統(tǒng)的帶寬達(dá)到4Gbit,同時(shí)系統(tǒng)內(nèi)部采用流水線方式,能夠線速處理1Gbps數(shù)據(jù)的接收,假設(shè)平均每次請(qǐng)求512B,則硬件系統(tǒng)能夠處理的每秒較大連接數(shù)達(dá)到21K,因此在單位時(shí)間內(nèi)能夠處理的連接數(shù)量會(huì)高于代理服務(wù)器。
隨著HTTP訪問(wèn)量的不斷增大,對(duì)于訪問(wèn)數(shù)據(jù)包的分流粒度要求越來(lái)越細(xì)。本文提出的基于硬件實(shí)現(xiàn)的TCP粘合系統(tǒng),在TCP粘合技術(shù)的基礎(chǔ)上,利用硬件的高速處理特性,可以達(dá)到2個(gè)GE口收發(fā)(2Gbps)的線速處理性能。同時(shí)能夠較好地基于內(nèi)容來(lái)區(qū)分?jǐn)?shù)據(jù)流,從而避免了后端服務(wù)器數(shù)據(jù)的重新分發(fā)。
相關(guān)閱讀:
- ...2012/03/31 10:53·基于FPGA的射頻讀卡器設(shè)計(jì)
- ...2011/12/02 16:57·基于FPGA直接序列擴(kuò)頻系統(tǒng)的設(shè)計(jì)
- ...2011/11/07 15:11·基于FPGA的高速串行傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- ...2011/11/07 15:10·基于FPGA的通用異步收發(fā)器設(shè)計(jì)
- ...2011/11/07 15:10·基于FPGA的遠(yuǎn)距離測(cè)溫器數(shù)控系統(tǒng)設(shè)計(jì)
- ...2011/10/31 16:02·基于FPGA的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
- ...·圖文詳解汽車儀表板背后的車規(guī)級(jí)安全設(shè)計(jì)要求
- ...·使用有安全保障的閃存存儲(chǔ)構(gòu)建安全的汽車系統(tǒng)
- ...·反向偏置差分線性傳感器的較新進(jìn)展和應(yīng)用
- ...·艾德克斯測(cè)評(píng)某品牌智能插座——待機(jī)功耗篇
- ...·三線電阻式溫度檢測(cè)器測(cè)量系統(tǒng)中勵(lì)磁電流失配的影響(續(xù))
- ...·三線電阻式溫度檢測(cè)器測(cè)量系統(tǒng)中勵(lì)磁電流失配的影響
- ...·RTD測(cè)量系統(tǒng)中勵(lì)磁電流失配的影響
- ...·藍(lán)牙BR/EDR 和 Bluetooth Smart的十大重要區(qū)別
- ...·IoT網(wǎng)關(guān)平臺(tái)與應(yīng)用
- ...·增強(qiáng)版ARM DesignStart:通向定制化SoC的較快、較低風(fēng)險(xiǎn)之路
- ...·實(shí)體零售轉(zhuǎn)型O2O,倉(cāng)儲(chǔ)物流的智能化水平從何提升?
- ...·幾種車用LED驅(qū)動(dòng)方案的比較
- ...·藍(lán)牙配對(duì)第二篇:密鑰生成方法
- ...·中電瑞華推出領(lǐng)先的無(wú)線數(shù)據(jù)采集解決方案
- ...·安森美半導(dǎo)體配合市場(chǎng)趨勢(shì)的無(wú)線充電方案
- ...·安森美半導(dǎo)體配合汽車照明設(shè)計(jì)趨勢(shì)的解決方案
- ...· “芯創(chuàng)杯”首屆高校未來(lái)汽車人機(jī)交互設(shè)計(jì)大賽報(bào)名正式啟動(dòng)
- ...· 探秘第二屆衛(wèi)藍(lán)山鷹“創(chuàng)新·共享”試驗(yàn)技術(shù)論壇!
- ...· “2018中國(guó)半導(dǎo)體生態(tài)鏈大會(huì)”在江蘇省盱眙舉行
- ...· 新主題新規(guī)劃,CITE 2019瞭望智慧未來(lái)
- ...· 從汽車到工廠,TI毫米波傳感器致力于創(chuàng)造更智能的世界
- ...· 意法半導(dǎo)體(ST)、Cinemo和Valens在CES 2018展上聯(lián)合演示汽車信息娛樂解決方案
- ...· 北京集成電路產(chǎn)業(yè)創(chuàng)新發(fā)展高峰論壇即將在京召開
- ...· 三菱電機(jī)強(qiáng)勢(shì)出擊PCIM亞洲2017展
- ...· GPGPU國(guó)產(chǎn)替代:中國(guó)芯片產(chǎn)業(yè)的空白地帶
- ...· 物聯(lián)網(wǎng)產(chǎn)品設(shè)計(jì)中Wi-Fi連接的四個(gè)關(guān)鍵因素
- ...· 第三屆中國(guó)MEMS智能傳感器產(chǎn)業(yè)發(fā)展大會(huì)即將于蚌埠拉開帷幕
- ...· IAIC專項(xiàng)賽演繹“中國(guó)芯“應(yīng)用創(chuàng)新,信息安全高峰論壇亮劍海寧
- ...· 智能控制有源鉗位反激
- ...· 解讀5G毫米波OTA 測(cè)試技術(shù)
- ...· 多個(gè)市場(chǎng)高速增長(zhǎng)推動(dòng)Molex加強(qiáng)汽車領(lǐng)域的發(fā)展
- ...· 中國(guó)綠色制造聯(lián)盟成立大會(huì)召開在即 政產(chǎn)學(xué)研用共探綠色發(fā)展新模式
- ...· Efinix® 全力驅(qū)動(dòng)AI邊緣計(jì)算,成功推出Trion™ T20 FPGA樣品, 同時(shí)將產(chǎn)品擴(kuò)展到二十萬(wàn)邏輯單元的T200 FPGA
- ...· 英飛凌亮相進(jìn)博會(huì),引領(lǐng)智慧新生活
- ...· 三電產(chǎn)品開發(fā)及測(cè)試研討會(huì)北汽新能源專場(chǎng)成功舉行
- ...· Manz亞智科技跨入半導(dǎo)體領(lǐng)域 為面板級(jí)扇出型封裝提供化學(xué)濕制程、涂布及激光應(yīng)用等生產(chǎn)設(shè)備解決方案
- ...· 中電瑞華BITRODE動(dòng)力電池測(cè)試系統(tǒng)順利交付北汽新能源
- ...· 中電瑞華FTF系列電池測(cè)試系統(tǒng)中標(biāo)北京新能源汽車股份有限公司
- ...· 中電瑞華大功率高壓能源反饋式負(fù)載系統(tǒng)成功交付中電熊貓
- ...· 中電瑞華國(guó)際在電動(dòng)汽車及關(guān)鍵部件測(cè)評(píng)研討會(huì)上演繹先進(jìn)測(cè)評(píng)技術(shù)
- ...· 數(shù)據(jù)采集終端系統(tǒng)設(shè)備
- ...· 簡(jiǎn)儀科技踏上新征程
- ...· 易靈思® 宣布 AEC-Q100 資質(zhì)認(rèn)證和汽車系列產(chǎn)品計(jì)劃
- ...· 易靈思® 宣布擴(kuò)充高性能 鈦金系列™ FPGA 產(chǎn)品 鈦金系列產(chǎn)品擴(kuò)充至包含 1M 邏輯單元的 FPGA
- ...· 易靈思® 宣布Trion® Titanium 在臺(tái)積電 (TSMC) 16納米工藝節(jié)點(diǎn)流片
- ...· TI杯2019年全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽頒獎(jiǎng)典禮在京舉行
- ...· BlackBerry QNX虛擬機(jī)獲得全球首個(gè)汽車安全完整性等級(jí)(ASIL) ‘D’認(rèn)證
- ...· 威馬汽車選擇BlackBerry助力下一代汽車