基于FPGA的TCP粘合设计与实现
发布时间:2008/5/27 0:00:00 访问次数:467
    
    
    来源:电子技术应用 作者:程文青 曾鸣 黄建
    
    传统的数据分流一般基于三层、四层交换,不能在应用层解析数据,导致数据在后端服务器解析后还要相互重新分发,增加了服务数据传输的开销,为解决该问题,可以在客户端与服务器之间采用应用级代理服务器,利用该服务器专门对数据包进行解析分发,但是该方式下,数据要进入tcp/ip协议栈,处理速度慢,同时代理服务器还需要与客户端、服务器双方通信,需要处理的数据量非常大,因此在集群应用中,特别是大规模负载平衡集群系统中很少使用应用级代理。
    
    在应用级代理的基础上,为进一步提高数据处理的速度,提出了tcp粘合技术[1]。该技术在通信双方建立通信之处对双方的握手信号以及通信原语进行分析,获取必要的信息,决定数据的流向,一旦双方开始通信,该代理就不再对数据进行分析,而仅起到了一个透明网关的作用,从而提高了代理的系统性能。
    
    tcp粘合技术采用软件处理方式时,由于大量数据包不需要上层解析,因此提高了系统性能,但是受软件处理速度的限制,该技术能很难应用于大规模的集群系统,本文提出了一种基于fpga的tcp粘合技术的高速实现机制,利用硬件的高速处理特性和流水线的技术来适应高速网络传输的需要。
    
    1 现存的tcp粘合技术
    
    tcp粘合原理如下:(1)监听客户端的连接请求,并在客户端发出连接请求后(从syn开始),建立客户端到均衡器之间的连接(通过tcp的三次握手协议完成),(2)在随后的请求报文中分析数据并决定真正被访问的服务节点。(3)与服务节点建立性一个连接,将两个连接粘合在一起(splicing)。其tcp粘合原理示意图如图1所示[2]。
    
    
    
    2 tcp粘合技术的硬件实现
    
    tcp粘合技术的关键在于,当客户端发起连接请求时,系统并不是立即将该请求发给后端服务器,而是伪装成服务器与客户端建立连接,取得用户的get数据包,通过对url的匹配来找到信息在后端服务器的位置,然后再在客户端与服务器之间建立连接通信。
    
    2.1 系统架构
    
    tcp粘合系统结构如图2所示。
    
    
    
    该系统中首先由客户数据接收端对接收到的http报文进行解析,发现数据包为一个发起连接的syn数据包时,传给地址管理单元,地址管理就为该连接分配一个地址空间,同时通过映射单元告诉客户数据发送端与客户端完成三次握手,建立连接。
    
    当客户数据接收端收到get数据包时,将该数据包发送给字符串匹配表,该表会将信息在后端服务器的位置返回给地址管理单元,地址管理单元将该信息送给数据包映射单元,映射单元将该信息写入相应的ssram空间中,同时通知服务器发送端与后端服务器建立连接,这样就完成了一个tcp的粘合过程。
    
    在客户端与服务器的通信过程中,数据包映射单元通过双方sip、dip信息从ssarm中查找出对应的替换信息,完成双方数据包的映射。
    
    在客户端通信结束时,由地址管理单元对双方使用的地址空间进行回收;同时为防止通过过程中的异常中断,地址管理单元内部采用了定时器机制对地址空间进行监测,根据定时器返回结果回收过时地址,防止过时信息被查用。
    
    2.2 设计实现
    
    在该系统中,为完成tcp粘合并且保证tcp通信的可靠性,必须能够正确识别接收到的数据包类型,同时由于实际网络数据传输的延时,在一个客户端通信过程中可能会插入很多其他客户端发起的新的连接请求,系统内部根据对cam查找返回的地址来区分不同的数据流,因此要对内部地址空间进行有效的释放回收,为处理网络通信异常中断而导致内部地址无法回收而引入定时器机制,在数据发送部分,客户端数据发
    
    
    来源:电子技术应用 作者:程文青 曾鸣 黄建
    
    传统的数据分流一般基于三层、四层交换,不能在应用层解析数据,导致数据在后端服务器解析后还要相互重新分发,增加了服务数据传输的开销,为解决该问题,可以在客户端与服务器之间采用应用级代理服务器,利用该服务器专门对数据包进行解析分发,但是该方式下,数据要进入tcp/ip协议栈,处理速度慢,同时代理服务器还需要与客户端、服务器双方通信,需要处理的数据量非常大,因此在集群应用中,特别是大规模负载平衡集群系统中很少使用应用级代理。
    
    在应用级代理的基础上,为进一步提高数据处理的速度,提出了tcp粘合技术[1]。该技术在通信双方建立通信之处对双方的握手信号以及通信原语进行分析,获取必要的信息,决定数据的流向,一旦双方开始通信,该代理就不再对数据进行分析,而仅起到了一个透明网关的作用,从而提高了代理的系统性能。
    
    tcp粘合技术采用软件处理方式时,由于大量数据包不需要上层解析,因此提高了系统性能,但是受软件处理速度的限制,该技术能很难应用于大规模的集群系统,本文提出了一种基于fpga的tcp粘合技术的高速实现机制,利用硬件的高速处理特性和流水线的技术来适应高速网络传输的需要。
    
    1 现存的tcp粘合技术
    
    tcp粘合原理如下:(1)监听客户端的连接请求,并在客户端发出连接请求后(从syn开始),建立客户端到均衡器之间的连接(通过tcp的三次握手协议完成),(2)在随后的请求报文中分析数据并决定真正被访问的服务节点。(3)与服务节点建立性一个连接,将两个连接粘合在一起(splicing)。其tcp粘合原理示意图如图1所示[2]。
    
    
    
    2 tcp粘合技术的硬件实现
    
    tcp粘合技术的关键在于,当客户端发起连接请求时,系统并不是立即将该请求发给后端服务器,而是伪装成服务器与客户端建立连接,取得用户的get数据包,通过对url的匹配来找到信息在后端服务器的位置,然后再在客户端与服务器之间建立连接通信。
    
    2.1 系统架构
    
    tcp粘合系统结构如图2所示。
    
    
    
    该系统中首先由客户数据接收端对接收到的http报文进行解析,发现数据包为一个发起连接的syn数据包时,传给地址管理单元,地址管理就为该连接分配一个地址空间,同时通过映射单元告诉客户数据发送端与客户端完成三次握手,建立连接。
    
    当客户数据接收端收到get数据包时,将该数据包发送给字符串匹配表,该表会将信息在后端服务器的位置返回给地址管理单元,地址管理单元将该信息送给数据包映射单元,映射单元将该信息写入相应的ssram空间中,同时通知服务器发送端与后端服务器建立连接,这样就完成了一个tcp的粘合过程。
    
    在客户端与服务器的通信过程中,数据包映射单元通过双方sip、dip信息从ssarm中查找出对应的替换信息,完成双方数据包的映射。
    
    在客户端通信结束时,由地址管理单元对双方使用的地址空间进行回收;同时为防止通过过程中的异常中断,地址管理单元内部采用了定时器机制对地址空间进行监测,根据定时器返回结果回收过时地址,防止过时信息被查用。
    
    2.2 设计实现
    
    在该系统中,为完成tcp粘合并且保证tcp通信的可靠性,必须能够正确识别接收到的数据包类型,同时由于实际网络数据传输的延时,在一个客户端通信过程中可能会插入很多其他客户端发起的新的连接请求,系统内部根据对cam查找返回的地址来区分不同的数据流,因此要对内部地址空间进行有效的释放回收,为处理网络通信异常中断而导致内部地址无法回收而引入定时器机制,在数据发送部分,客户端数据发
上一篇:存储管理的虚拟化设计
热门点击
- OrCAD/PSpice9直流扫描分析的应用
- OrCAD/PSpice9直流扫描分析的应用
- protel99se和DXP的使用感想
- CCS噪声模型:用于串扰噪声分析的高精确度建
- ORCAD/PSPICE
- 硬件描述语言HDL的现状与发展
- 利用Liberty CCS建模技术实现更高精
- OPC工具挺进DFM
- SystemWeaver 实现复杂SOC的片
- 基于FPGA的多路模拟量、数字量采集与处理系
推荐技术资料
- 泰克新发布的DSA830
- 泰克新发布的DSA8300在一台仪器中同时实现时域和频域分析,DS... [详细]