论文部分内容阅读
随着网络规模的扩大和信息流量的增加,网络带宽要求越来越高,只有高带宽网络才能满足日益增长的信息流量和人们的需求。一直以来,TCP/IP协议都由主机操作系统实现,但随着千兆位以太网等高带宽网络的普及,主机上TCP/IP协议处理开销己经成为系统整体性能的瓶颈。为了释放主机的CPU处理负担,近年来各种TCP加速技术成为研究热点,适用于千兆网络的TOE (TCP Offload Engine)产品己投放市场,像Intel PRO/1000等。为解决服务器通信处理瓶颈而研究的TCP/IP协议卸载技术的基本思想,是分担服务器CPU对TCP/IP协议栈的处理,将协议处理过程放到FPGA,ASIC等硬件处理单元上完成,从而将服务器的CPU解放出来,既可提高网络输性能,又可提高CPU的工作效率。通常将实现了TCP/IP协议功能的硬件处理单元称为卸载引擎。本文首先介绍了TOE技术的基本原理,然后分析并比较了协议卸载的两种实现策略:全卸载和部分卸载。介绍了TOE硬件实现的三种方式:嵌入式TOE、ASIC TOE、FPGA TOE以及TOE软件的实现方式:高性能Socket接口、TCP/IP协议栈置换。在分析了TOE技术的基本思想和原理后,最后对开源的Linux操作系统中的TCP/IP协议栈的卸载方法展开了研究。针对Linux操作系统,定义了卸载引擎的体系结构,讨论了卸载引擎与服务器操作系统连接接口的解决办法,研究了使用卸载支持模块来完成两者之间连接的实现策略。在Linux系统原来的TCP/IP协议栈被屏蔽之后,真正处理网络数据的是卸载引擎中的TCP/IP协议栈。论文还研究了LKM (可加载内核模块),为TOE系统的设计与实现提供了指导。LKM使得Linux操作系统内核在运行状态就能对功能进行扩充。测试的实验结果表明,所定义的卸载引擎体系结构是合理的,卸载引擎与服务器操作系统之间连接接口的解决办法是可行的。最后,以设计一个基于TOE税控机服务器系统为例介绍TOE网络接口卡的应用。