新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的TCP粘合設(shè)計(jì)實(shí)現(xiàn)

        基于FPGA的TCP粘合設(shè)計(jì)實(shí)現(xiàn)

        作者: 時(shí)間:2011-08-15 來源:網(wǎng)絡(luò) 收藏
        2.2.3 數(shù)據(jù)包映射單元

        本文引用地址:http://www.104case.com/article/150354.htm

          為完成數(shù)據(jù)包的映射,該部分需要兩個(gè)功能:ACK序列號轉(zhuǎn)換和雙方轉(zhuǎn)換信息的存儲。

          在過程中,由于系統(tǒng)送給客戶端的ACK序列號和后端服務(wù)器送給客戶端的ACK序列號不相同,因此要進(jìn)行ACK序列號的轉(zhuǎn)換,同時(shí)要重新計(jì)算數(shù)據(jù)包的/IP校驗(yàn)和。

          現(xiàn)假設(shè)客戶端發(fā)送了請求連接的SYN數(shù)據(jù)包,而客戶端返回給客戶端的SYN序列號為地址管理單元分配給該連接的地址A0,而當(dāng)系統(tǒng)和服務(wù)器建立鏈接時(shí)服務(wù)器端返回的SYN序列號為A1,則根據(jù)這兩個(gè)序列號可計(jì)算差值A(chǔ)為:A=A0-A1。

          以后通信的過程中,只要將服務(wù)器發(fā)送給系統(tǒng)的序列號加上A就能夠轉(zhuǎn)換成為系統(tǒng)送給客戶端的序列號,這樣就完成了服務(wù)器端向客戶端發(fā)送數(shù)據(jù)的轉(zhuǎn)換,反之就可以完成客戶端向服務(wù)器發(fā)送數(shù)據(jù)的轉(zhuǎn)換。

          對于數(shù)據(jù)包的校驗(yàn)和轉(zhuǎn)換而言,由于校驗(yàn)和本質(zhì)上是加法運(yùn)算,所以只需要在原來的校驗(yàn)和基礎(chǔ)上加上序列號之差(或減去一個(gè)差值)即可完成校驗(yàn)和的轉(zhuǎn)換。

          在同一個(gè)通信過程中,ACK序列號轉(zhuǎn)換、校驗(yàn)和的轉(zhuǎn)換、發(fā)起連接的SYN、GET數(shù)據(jù)包和定時(shí)器標(biāo)志位等信息都需要存儲,由于每個(gè)數(shù)據(jù)流需要存儲的內(nèi)容較多,單一的地址已經(jīng)無法滿足存儲要求。此處存儲管理采用頁面式的管理方式。將整個(gè)存儲空間分為若干頁面,每個(gè)數(shù)據(jù)流信息存入一個(gè)頁面中。SSRAM的存儲格式如圖5所示。

          

          3 性能分析

          該架構(gòu)已在試驗(yàn)系統(tǒng)上,接收端為兩個(gè)GE口。相對于采用TCP的應(yīng)用代理服務(wù)器來說(其中代理服務(wù)器CPU Pentium IV 2GHz),具體的性能對比如表1所示。

          

          從上表可以看出在最大連接數(shù)方面,在本系統(tǒng)中采用一個(gè)18Mbit的CAM,它能夠提供的最大地址空間為288K×144bit,只能支持288K的連接數(shù)。對于服務(wù)器的最大連接數(shù)來說,SYN和GET數(shù)據(jù)包需要經(jīng)過軟件協(xié)議解析。因此當(dāng)最大連接數(shù)達(dá)到582K時(shí)CPU的利用率將達(dá)到90%以上[3],無法再處理新的連接。從上述分析中可以看出,由于受硬件資源的限制,硬件系統(tǒng)可以支持的最大連接數(shù)小于代理服務(wù)器。但是在實(shí)際的網(wǎng)絡(luò)傳輸過程中,一個(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)卡來接收數(shù)據(jù)時(shí),由于數(shù)據(jù)需要經(jīng)過上層協(xié)議解析,因此實(shí)際能夠接收的數(shù)據(jù)量只能夠達(dá)到300Mbps。假設(shè)每次平均請求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è)平均每次請求512B,則硬件系統(tǒng)能夠處理的每秒最大連接數(shù)達(dá)到21K,因此在單位時(shí)間內(nèi)能夠處理的連接數(shù)量會高于代理服務(wù)器。

          隨著HTTP訪問量的不斷增大,對于訪問數(shù)據(jù)包的分流粒度要求越來越細(xì)。本文提出的硬件的TCP粘合系統(tǒng),在TCP粘合技術(shù)的基礎(chǔ)上,利用硬件的高速處理特性,可以達(dá)到2個(gè)GE口收發(fā)(2Gbps)的線速處理性能。同時(shí)能夠較好地內(nèi)容來區(qū)分?jǐn)?shù)據(jù)流,從而避免了后端服務(wù)器數(shù)據(jù)的重新分發(fā)。


        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 博罗县| 虎林市| 河津市| 两当县| 黑龙江省| 宜宾市| 平江县| 怀化市| 汝阳县| 公安县| 灌云县| 湘西| 华坪县| 鄂州市| 延长县| 钦州市| 长春市| 堆龙德庆县| 富平县| 黔江区| 延长县| 太湖县| 津市市| 太白县| 石河子市| 孝昌县| 信阳市| 福贡县| 弥渡县| 家居| 进贤县| 靖江市| 宜昌市| 赣榆县| 长春市| 措美县| 平江县| 固安县| 扎囊县| 株洲县| 怀远县|