TOE(TCP/IP Offload)技术及产品
技术原理
TOE 全称 TCP Offload Engine,是目前主要的网络加速技术,它可以显著的提高网络的数据处理能
力,降低 CPU 负载,提高网络带宽,降低网络处理延时等;
TCP/IP 协议是目前互联网最基础的协议,任何接入互联网的设备终端都需要遵循 TCP/IP 协议,包括
广域网以及所有的局域网终端。
所有网络数据处理均是按层级以此处理,如图 2.1 所示的 TCP/IP 5 层模型为例:
图2.1 TCP/IP 协议分层模型
物理层和链路层:是和网络介质强相关的,比如普通有线以太网络,光纤接入网络,无线 WiFi 以及移动通信网络等;
网络层:主要包括 IP 协议处理,如我们常见的路由器和交换机就是实现 IP 层的功能;
传输层:主要包括 TCP/UDP 协议,主要用于保证传输的可靠性;
应用层:和具体应用相关,比如视频会议,网络下载等;
目前的基于 linux 或者 windows 的系统网络处理任务基本都是在软件上实现,有一套标准的系统内核程序专门处理网络任务,由于需要 CPU 的大量介入,在网络任务量大的系统中产生大量的数据拷贝,报文中断等,CPU 资源被大量消耗,系统应用体验会变的非常糟糕,而在这个过程中消耗的 CPU 资源主要是用于 TCP 层协议处理,测试结果显示基本是需要 1MHz 的 CPU 计算资源来处理对应 1Mbit 的网络数据。
TOE 的主要原理就是将由软件实现的传输层和网络层相关事务由硬件来实现,从而减轻软件网络协议栈的负载,提高性能。
图 2.2 网络内核功能卸载对比图
如图 2.2 所示,传统的网络协议栈均是在操作系统的内核软件或者专用的应用态网络协议栈中实现,所消耗的 CPU 资源非常多,尤其是在网络传输数据量很大的情况下,导致应用程序的 CPU 计算资源严重不足,使用 TOE 技术,将所有网络相关的协议处理均在硬件设备中完成,包括传输层的 TCP 和 UDP 协议等,从而将网络消耗的 CPU 资源完全释放,提升用户应用程序的效率与使用体验。
技术演进
网络卸载技术可以根据具体的使用场景选择性的使用相应的技术方案,用户应该实际评估使用需求以及使用难度,选择自己产品合适的方案,在满足性能需求的基础上,合理评估开发难度与使用便捷度。
当前主流的几类卸载技术如下文所描述。
Checksum Offload
关闭协议栈的 checksum 选项,由 FPGA 完成 Checksum 计算,以部分减少 CPU 资源,约为 3%左右,这种方法开发简单,只需要关闭内核相应功能,同时在网卡完成报文的校
验功能,校验主要包括 IPHeader Checksum,UDP Checksum,TCP Checksum,CRC 等。
TSO&GRO
该卸载方案的主要思路是利用软件内核协议栈 SKB_Buff 的深度,使软件在一次网络处理进程中科院最多处理 64KByte 数据,从而减少协议栈被频繁调度,即内核软中断以及硬件中断的数量。
比如在数据包发送时,应用层通过 Socket 一次发送 64KB 数据,软件协议栈在窗口允许的条件下可以一次封装成一个报文后发送到 FPGA,由 FPGA 将该报文切片为满足网络传输的报文长度,即 MTU 要
求的长度,这样,通过一次协议栈处理即可完成多大数十个报文的一次性发送,同样在接收方向,FPGA可以将报文拼接成长报文一次交由软件协议栈,从而大大减少收报中断的数量。
使用这种方式可降低 CPU 的资源约 30%左右,对于提升网络性能是一种难度不高,收益
也比较明显的方式。
Chimney TOE
这是一种半卸载技术,也就是只处理最耗费 CPU 资源的部分功能,即数据的传输过程,而对于连接建立和删除以及连接维护等功能继续由软件内核处理;
Chimney TOE 存在一定的应用局限性,对于需要频繁建立和删除连接的应用,由于需要进行大量的软硬件同步操作,会引入非常多的设计复杂度;另外,需要修改网络协议栈源码,对系统的稳定性和可继承性有一定风险。
图2.3 chimney TOE实现结构
Full offload TOE
全卸载 TOE 是将整个网络协议栈需要使用的功能完全硬化到 FPGA 中,从而完全卸载了软件协议栈的所有功能,用户应用程序开发是只需要调用自定义的 API 接口,完成网络的相应功能,比如 TCP 连接的建立与删除,连接的状态查询,以及 payload 的收发处理等。
技术难度
当前,网络卸载技术任然是作为一个专用技术方案以集成在常规用户的使用场景中,以满足客户的特殊化需求为主,从技术的角度分析,主要存在如下难点:
1、资源限制:由于硬件资源有限,TOE 只能实现有限的 TCP 连接数,目前常见的技术方案中有使用片内和片外存储资源两种方案,前者可实现的 TCP 连接数在百以内,而后者可实现 TCP 连接数达数十万条以上,但实现和难度非常大;
2、功能复杂:由于 TCP/IP 非常庞大,常规情况下只能根据具体应用选择性的实现,因为 TCP 的功能存在耦合性,在保证正常所需功能的情况下需同时保证其他功能的正常工作以及和对端设备的兼容性;
3、兼容性:由于 TCP/IP 协议栈经过数十年的演进,网内存在众多不同版本设备,需要进行大量的兼容性测试。
tcpip路由协议XOE产品介绍
XOE 全称为 X Protocol offload Engine,X Protocol 包括TCP/UPD/ICMP/IGMP/ARP/ MAC 等多种协议,也就是说,XOE 是一款完整的全卸载的硬件网络协议栈,下图是当前 X1902-TUAII 型号 XOE 的集
成架构图,简要描述了 XOE 集成环境与内部结构。
行业应用
1.网络隔离网关
2.高频交易系统
3.极速证券行情系统
4.网络视频传输
产品咨询
邮箱:****************

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。