0731-84728105
15116127200
ToE解决方案

一、 概述

    TCP/IP协议已经成为互联网应用最基本的协议。传统方式下,TCP/IP协议由中央处理器、微处理器以软件的形式处理。然而,随着以太网速率从1000Mbits/s提高到10Gbits/s再到40Gbits/s、100Gbits/s,CPU已经很难满足TCP/IP协议处理的需要了。因此,为了减轻CPU的协议处理负担,TCP/IP协议处理技术显得越来越重要。其中,TCP/IP卸载引擎(TCP/IP Offload Engine,ToE)技术成为研究的热点。

二、 传统TCP的处理

    在传统的以太网环境中,TCP/IP协议的处理都是通过软件方式在中央处理器上实现。如图1所示,网络数据由网卡进入计算机系统,传统网卡主要实现网络协议物理层和数据链路层功能,然后将口数据包交付CPU操作系统 ,CPU操作系统首先对数据进行TCP/IP协议处理,最后将数据交付应用程序。由于CPU是一个通用的部件,它不是专门针对TCP/IP协议处理而设计,因而它处理协议的能力不强。在吉比特网络中,如果TCP/IP协议处理仍在CPU中执行,不但协议处理的效率不高,而且占用大量的CPU资源,浪费存储空间和大量的功耗。同时,还使其它的应用程序得不到充分的CPU资源,从而影响整个系统性能,导致高速的带宽资源得不到充分的利用。由于网络带宽增加的速度远超过处理器速度的增长,在今后网络应用的瓶颈不再是带宽资源,而是处理器的速度面对网络带宽和速度的飞速增长,传统的通过软件进行TCP/IP协议处理的方式已经越来越成为高性能网络计算的瓶颈。
图 1 TSN 整体实现结构图
图 1 网络处理的传统处理流程

三、 ToE的处理流程

    ToE(TCP/IP Offload Engine)是一门使用硬件代替软件来处理TCP/IP协议的技术,从而将系统微处理器从TCP/IP协议处理负担中解放出来,提高了网络性能;同时也为没有TCP/IP协议处理能力的系统提供了一种解决方案。传统方式下,TCP/IP协议由操作系统处理,ToE技术将TCP/lP协议的处理分离到网卡,如图2所示。
图 1 TSN 整体实现结构图
图2ToE处理方式与传统处理方式对比

四、 ToE的实现

    本设计主要通过硬件实现TCP/IP协议传输机制,支持TCP/IP的建立、释放握手机制;同时支持TCP的超时重传、慢开始、快重传的机制。实现将TCP/IP协议完全卸载到硬件实现,软件负责一些状态的管理及配置任务,大大减软的软件的任务量同时提升TCP/IP数据的处理效率。
    在ToE的功能实现时,本设计基于FPGA实现的网络接口卡功能,除此之外基于FPGA还可以后期添加交换、QoS、安全等功能,从而支持更加灵活的功能实现。具体的ToE功能实现结构如图3所示。
图 2 端口调度实现结构图
图3 ToE实现结构图
    主要由接收侧处理模块RX,发送侧处理模块TX和连接控制模块CC组成,三部分的逻辑关系如3图所示。
    CC模块主要完成是TCP/IP流的状态管理,主要负责连接及释放的握手机制,并维护建立连接的TCP/IP流状态表。
    RX模块负责数据的接收处理,包括TCP/IP的头部校验和校验、去MAC头以及接收缓存管理以及接收数据的窗口管理等操作。
    TX模块负责数据的发送数据,包括添加TCP/IP的头部校验和、添加MAC头、发送窗口控制、超时重传控制、慢开始、快重传控制以及数据输出缓存管理及数据分段的管理等。
    通过测试本设计的在1G接口的处理速率可以达960Mbps,10G接口的速率可达9Gbps。
下载该文档