网络通信 频道

节省CPU周期的智能网卡


     千兆以太网的普及和一些如IETF的IP存储这类协议的广泛使用正在推动人们对新型网络接口架构的需要。与网络速率每三年增加十倍的速度相比,处理器性能每18个月翻一番显得微不足道。在目前占统治地位的TCP/IP协议环境中,这种新型网络接口架构应当是怎样的呢?减轻CPU处理TCP的负载无疑是新型网络接口架构的关键。
  
     过去减轻负载的尝试将整个TCP栈放到一个基于网卡的处理器中。在网卡上的通用处理器处理TCP栈的情况下,这种方式存在协调问题,这种问题随着在同一系统中安装第二个适配器而变得令人沮丧。
  
     解决TCP处理问题的新途径是将数据传送交给专用适配器硬件去完成,而将异常处理留给主机软件处理,这种方法与现代的存储控制器架构相似。这类方法在支持硬件让系统减轻CPU负担、将需要大量内存的数据传送任务交给硬件去做的目标的同时,也符合让软件控制连接建立和拆除以及完成错误处理的要求。使用这种技术的适配器提高了主机处理器的效率,增加了数据吞吐量并降低了时延。
  
     为了避免CPU处理包头,适配器必须执行处理任务。一般TCP/IP栈的20000行程序代码显然不是价格具有竞争优势的网卡所能有效处理的。此外,在以千兆位的速度处理数据的情况下,TCP/IP栈非常复杂,足以耗尽目前速度最快的奔腾CPU的资源。为了在廉价的网卡上执行包头处理,需要处理TCP/IP包头的特殊网络硬件来代替通用CPU。
  
     若想简化TCP/IP的处理路径,主机协议栈需要进行异常处理,这包括TCP连接建立与拆除、重新传输和乱序包的重新组装。
  
     在这种方式中,只有非碎片TCP连接的处理交给适配器去完成,通过TCP栈的路径被认为是快速的路径。在支持从硬件栈中去除如此多TCP代码路径的条件下,人们可能会对其好处提出疑问。
  
     专家表示,在局域网中TCP处理有97%到100%的时间不出现异常。随着网络、路由器和交换机可靠性的提高,这一数字可能还会提高。性能测试表明,99.9%的TCP/IP数据可以交给这类适配器去处理。进一步的测试显示这类服务器适配器比传统网卡效率高几百倍。
  
     有效地将TCP处理任务在适配器与主机栈之间分配的主要障碍是协调每个活动连接的TCP状态的管理。这里,一种传递前后关系信息的简单方式对于使处理可以在主机栈与接口卡上硬件栈之间传递是必不可少的。
  
     在适配器完成快速路径处理的情况下,主机接口管理会话层的数据。数据传送是在会话层上以独立于TCP窗口大小和基础媒介大小的更大的块管理的,而不是主机组成TCP数据段并将TCP数据打包形成以太网帧。在接收时,会话数据(不是包)被直接从适配器传送到最终的内存目的地,因此仅需要系统/内存总线单程传送。
  
     由于不进行包头处理,因此系统CPU几乎不要求数据复制并且不需要计算校验和。数据包不传送到CPU缓存中,从而使系统能够在缓存中保存重要的指令和数据。在采用会话数据传送模型和适配器完成确认处理时,需要的PCI操作更少,并且中断被减少到每64K比特会话读两次中断,每64K比特会话写一次中断。
  
     新一代TCP卸载引擎将TCP/IP处理分为基于主机的异常处理和基于适配器的硬件完成的数据处理。这种技术的关键是管理在主机与适配器之间的TCP连接前后关系的迁移。由于主机只需管理会话级数据而非管理会话和包数据,因此这项技术效率比传统网络接口高得多。像文件和备份服务器这类网络数据流非常大的系统的总体系统性能将得到显著的提高。
  
0
相关文章