<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA的TCP粘合設計實(shí)現

基于FPGA的TCP粘合設計實(shí)現

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

本文引用地址:http://dyxdggzs.com/article/150354.htm

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

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

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

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

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

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

  

  3 性能分析

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

  

  從上表可以看出在最大連接數方面,在本系統中采用一個(gè)18Mbit的CAM,它能夠提供的最大地址空間為288K×144bit,只能支持288K的連接數。對于服務(wù)器的最大連接數來(lái)說(shuō),SYN和GET數據包需要經(jīng)過(guò)軟件協(xié)議解析。因此當最大連接數達到582K時(shí)CPU的利用率將達到90%以上[3],無(wú)法再處理新的連接。從上述分析中可以看出,由于受硬件資源的限制,硬件系統可以支持的最大連接數小于代理服務(wù)器。但是在實(shí)際的網(wǎng)絡(luò )傳輸過(guò)程中,一個(gè)HTTP連接持續的時(shí)間一般為幾百個(gè)毫秒,在硬件系統達到每秒21K的連接數時(shí),能夠承受的一個(gè)HTTP最大持續時(shí)間為13秒,遠遠大于實(shí)際HTTP連接的持續時(shí)間,因此硬件系統支持的最大連接數是夠用的。當代理服務(wù)器采用千兆網(wǎng)卡來(lái)接收數據時(shí),由于數據需要經(jīng)過(guò)上層協(xié)議解析,因此實(shí)際能夠接收的數據量只能夠達到300Mbps。假設每次平均請求512B,則代理服務(wù)器能夠支持的最大每秒連接數大約為7K;而當硬件系統工作在133MHz,內部采用32bit總線(xiàn)傳輸時(shí),整個(gè)系統的帶寬達到4Gbit,同時(shí)系統內部采用流水線(xiàn)方式,能夠線(xiàn)速處理1Gbps數據的接收,假設平均每次請求512B,則硬件系統能夠處理的每秒最大連接數達到21K,因此在單位時(shí)間內能夠處理的連接數量會(huì )高于代理服務(wù)器。

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


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 設計 實(shí)現 粘合 TCP FPGA 基于

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>