首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于FPGA的TCP粘合设计实现
来源:本站整理  作者:佚名  2011-08-18 14:49:39



2.2.3 数据包映射单元

  为完成数据包的映射,该部分需要实现两个功能:ACK序列号转换和双方转换信息的存储。

  在TCP粘合过程中,由于TCP粘合系统送给客户端的ACK序列号和后端服务器送给客户端的ACK序列号不相同,因此要进行ACK序列号的转换,同时要重新计算数据包的TCP/IP校验和。

  现假设客户端发送了请求连接的SYN数据包,而客户端返回给客户端的SYN序列号为地址管理单元分配给该连接的地址A0,而当系统和服务器建立链接时服务器端返回的SYN序列号为A1,则根据这两个序列号可计算差值A为:A=A0-A1。

  以后通信的过程中,只要将服务器发送给系统的序列号加上A就能够转换成为系统送给客户端的序列号,这样就完成了服务器端向客户端发送数据的转换,反之就可以完成客户端向服务器发送数据的转换。

  对于数据包的校验和转换而言,由于校验和本质上是加法运算,所以只需要在原来的校验和基础上加上序列号之差(或减去一个差值)即可完成校验和的转换。

  在同一个通信过程中,ACK序列号转换、校验和的转换、发起连接的SYN、GET数据包和定时器标志位等信息都需要存储,由于每个数据流需要存储的内容较多,单一的地址已经无法满足存储要求。此处存储管理采用页面式的管理方式。将整个存储空间分为若干页面,每个数据流信息存入一个页面中。SSRAM的存储格式如图5所示。

  

  3 性能分析

  该架构已在试验系统上实现,接收端为两个GE口。相对于采用TCP粘合的应用代理服务器来说(其中代理服务器CPU Pentium IV 2GHz),具体的性能对比如表1所示。

  

  从上表可以看出在最大连接数方面,在本系统中采用一个18Mbit的CAM,它能够提供的最大地址空间为288K×144bit,只能支持288K的连接数。对于服务器的最大连接数来说,SYN和GET数据包需要经过软件协议解析。因此当最大连接数达到582K时CPU的利用率将达到90%以上[3],无法再处理新的连接。从上述分析中可以看出,由于受硬件资源的限制,硬件系统可以支持的最大连接数小于代理服务器。但是在实际的网络传输过程中,一个HTTP连接持续的时间一般为几百个毫秒,在硬件系统达到每秒21K的连接数时,能够承受的一个HTTP最大持续时间为13秒,远远大于实际HTTP连接的持续时间,因此硬件系统支持的最大连接数是够用的。当代理服务器采用千兆网卡来接收数据时,由于数据需要经过上层协议解析,因此实际能够接收的数据量只能够达到300Mbps。假设每次平均请求512B,则代理服务器能够支持的最大每秒连接数大约为7K;而当硬件系统工作在133MHz,内部采用32bit总线传输时,整个系统的带宽达到4Gbit,同时系统内部采用流水线方式,能够线速处理1Gbps数据的接收,假设平均每次请求512B,则硬件系统能够处理的每秒最大连接数达到21K,因此在单位时间内能够处理的连接数量会高于代理服务器。

  随着HTTP访问量的不断增大,对于访问数据包的分流粒度要求越来越细。本文提出的基于硬件实现的TCP粘合系统,在TCP粘合技术的基础上,利用硬件的高速处理特性,可以达到2个GE口收发(2Gbps)的线速处理性能。同时能够较好地基于内容来区分数据流,从而避免了后端服务器数据的重新分发。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:128,062.50000 毫秒