利用TCP卸载技术提升网络处理器的应用性能

发布时间:2010-7-23 16:21    发布者:lavida
关键词: TCP , 网络处理器
传输控制协议(tcp)是一种最初针对低速地面链路而设计的传输层协议。然而,随着高速传输介质和复杂的访问机制的发展,用纯软件方式实现tcp需要强大的计算和存储能力。

近年来,网络速度、cpu和内存的速度呈爆炸式增长。由于以太网速度的增长速度远远大于cpu或内存,所以目前的网络性能仍然主要受制于内存与cpu速度。

tcp卸载是一种用于加速tcp/ip连接的技术,它克服了上述局限性,将复杂的tcp处理从主机cpu转移到专用的tcp加速器上。通常,用于加速的tcp卸载引擎(toe)是一个主机cpu共址的专用子系统。可达到同样目标的一种可选机制,是将复杂的tcp/ip处理转移至用高速链路与tcp服务器连接的网络处理器(np)上(一种专用的可编程硬件设备)。

这种可选机制采用的网络处理器不但具备通用处理器(gpp)的低成本与高灵活性,而且还具有定制硅芯片解决方案的速度与可扩展性。此外,np还可减轻tcp服务器上需要大量内存和cpu资源的处理负担。它还提供可扩展性极高的解决方案,尤其是存在原有设备或对成本敏感的设备的情况下。

防御网络通常与长延迟卫星链路、易出错的无线信道一起,构成高性能服务器与网络。卫星链路是降低整体性能的链路中最薄弱的环节。采用这种可选机制可使带有toe的np连接至薄弱部分,从而让np-toe能消除长延迟和信道错误的不利影响,并提高网络整体性能。

对于成本与尺寸受限的低端企业级产品而言,通过在中央网络单元中引入toe来解决内存/cpu瓶颈是一种具有可扩展性和成本效益的解决方案。与提高主机自身的性能(如使用键盘、显示器和鼠标——kvm交换机)相比,该方法尤其具有优势。

图1列举了一种部署方案,其中远程键盘、监视器和鼠标控制多台与基于ip的kvm(kvm-over-ip)交换机相连的远程托管服务器。远程控制计算机的鼠标与键盘事件通过因特网从kvm交换机传输到服务器。服务器通过kvm交换机将压缩的监视器数据发送至远程计算机。带有toe的np使kvm交换机能够将tcp的处理负担转移到np,从而简化了kvm交换机硬件。



图1:带有toe的np提升网络性能的部署实例。

采用tcp接合技术的toe

tcp卸载可在企业tcp主机和远程np两种网络实体上进行,它是通过利用分离的tcp连接(也称为tcp接合)而得以实现的。tcp接合是一种著名的tcp性能增强技术。在tcp接合中,两个独立的tcp连接可以跨接一次会话:一个从客户端到np,另一个从np到服务器。图2说明了采用tcp接合技术的toe的基本操作步骤。

服务器发送的数据由np在本地确认,从而减少服务器的缓冲需求并且加快拥塞窗口的扩大。np在远端(客户端)的确认(ack)到达之前缓冲数据。在未收到确认通知的情况,np执行定时器管理以向远端重发tcp段。利用本地确认还可以避免tcp服务器受np和客户端之间网络拥塞和延迟过长的影响。这可以减轻服务器的内存负担。

np还可以为服务器向客户端发送的数据(包括校验和计算)执行可选的网络地址转换(nat)。尽管上述功能需要大量计算并且给gpp带来繁重负担,但np非常适合处理此类操作。

与路由等传统np应用相比,tcp卸载应用需要具备包间依赖性和基于连接的状态机。此外,这种应用还要处理传输层功能,而这超越了由np执行的传统链路层和网络层的处理能力。

tcp处理过程中主要有两个复杂之处。缓冲器管理包括对拥塞网络中未确认段、乱序段和延迟段进行存储。定时器管理包括估算重发超时(rto)估算以及触发未确认段的重发。

在高性能服务器或网络与长延迟无线和/或窄带网络一起运行的情况下(防御和移动网络大多如此),这种机制非常有用。在这种情况下,由于立即确认使可察觉的延迟更短,所以np上的tcp卸载功能可缩短慢启动阶段。请注意,当处理任务很轻时,慢启动阶段决定了应用性能。

另外,tcp拥塞控制针对有线部分的拥塞以及易错无线信道的性能下降而调整。由于错误恢复功能受限于np和客户端,所以np上的tcp卸载可以防止服务器中的窗口崩溃。这可以提高整体吞吐量。





图2:从服务器到客户端的数据处理框图。

利用网络处理器实现带toe的tcp接合技术

在开发执行被提议的替代机制的概念原型中,我们采用杰尔app340处理器(图3)。app3xx系列np具有2gbps的吞吐能力。该器件包含分类器、由调度程序、缓冲器管理器与流编辑器(sed)组成的流量管理器、状态引擎以及片上控制处理器(即嵌入式主机)。嵌入式主机处理低速通道(控制与管理),器件的其余部分则处理快速通道或数据管道。

分类器用于识别连接及其状态;状态引擎让tcp状态变量能被np上的各种功能模块访问;流量管理器运行tcp拥塞控制协议,并执行调度决策;sed则被用于执行序号处理及网络地址转换(nat)的穿透(traversal)。

app340允许流量整形功能模块控制每个队列的数据包调度。np为每个数据流维护多个目的队列,包括到客户端的主要传输、到客户端的数据包重发以及到服务器的传输。

app340支持分级调度,这样就可以利用辅助队列在每个目的队列的同一级别传送控制信息。这些控制数据包由数据包生成引擎(pge)根据状态机在内部生成。它们被用于触发调度机制,例如在调度队列中保持数据包,并只在tcp状态机需要时释放数据包。

这种利用分级调度架构控制tcp段调度的能力,以及保持包间状态依赖性的能力使app340架构非常适合tcp处理。






图3:从客户端到服务器的数据处理框图。

tcp连接的建立

在数据包到达np端口时,分类器模块根据tcp端口号和ip地址确定数据包流。如果数据包流不存在,则将数据包发送到嵌入式主机以建立连接。

一旦收到与tcp协议的三方握手(syn、syn-ack和ack)相对应的初始数据包时,主机解析tcp选项并获取相应参数,如序列号(sn)和最大段长,并将它们转发到状态引擎和sed。另外,它还更新分类器中的查找树,从而关联数据流标识符与tcp连接。

然后,将数据包传回分类器,以便重新插入数据包流。外发的tcp握手数据包接受nat穿透处理,并且忽略其它toe功能。类似地,主机处理连接终止。分类器解析fin字段并将数据包发至主机。

来自服务器的tcp数据流

当用于已建立的数据流的tcp数据段进入分类器时,利用查找树可获取流标识符。

app340是一种基于模块的处理器。它采用两阶段分类处理,第一阶段处理单个模块。第二阶段处理重组后的协议数据单元。如果数据段到达时是乱序的,则将其保留在分类器中firstpass重排序缓冲器中,直到有序段到达。

对于有序段,则检查tcp状态,以了解当前滑动窗口大小(cwnd)、接收器通知窗口(rwnd)、np的内存限制以及正在传输的数据包大小是否允许传输该数据包。如果数据包可以传输,则转发到sed进行nat转换并发送到远端客户端。流量整形器(ts)的转发缓冲器中保存一个副本,另一个副本被发送到sed,用于生成一个立即本地确认。sed利用传来的tcp/ip报头、最末ack的sn和最后收到的字节数生成本地ack。

如果tcp滑动窗口被占满,则ts停止调度数据包。数据包在停止状态结束之前一直有效保存在ts中(图4)。

来自客户端的tcp数据流

当ack到达分类器时,分类器提取确认号并将其转发至状态引擎。状态引擎更新cwnd,以反映tcp流的慢速启动或拥塞避免阶段。该引擎还更新rwnd、未确认数据的大小以及tcp滑动窗口的占满状态。

生成一个触发信号发送到ts,以从重发队列中删除已确认的数据包。ts调度所有来自伙伴(partner)控制队列确认数据包和相关数据包,然后在sed将其清除。若tcp滑动窗口先前已被占满,则生成触发信号发送到ts,以恢复对tcp数据段的处理(图5)。然后,该确认在np上结束。

如果客户端数据包带有背负(piggybacked)数据,则按照上述方式更新状态机。然后修改报头中的确认号,以反映最近生成的本地确认号,并将它转发给服务器。另外,在状态引擎中更新下一个来自客户端的预期sn,以便将该sn用作随后本地确认的sn。

重发与重发超时(rto)估算

对于重发缓冲器中的每个数据包,内部pge生成的伙伴控制队列保留该段的传输时间。当一个确认到达时,按确认到达时间与传输时间差计算往返时间,然后按照ietfrfc2988推荐标准估算重发超时(rto)。

如果数据包处于重发序列之中,则pge生成由当前时间、重发时间或者当前时间外加rto组成的控制数据包。

对pge进行编程,以生成周期性的触发信号。每次进行此操作时,ts都会检查重发时间。每个带有过期定时器的数据包被调度发送到sed,同时相应的控制数据包也被清除。重复此操作,直到处理完所有带有过期定时器的数据包。回传并存储每个重发段的副本,以用于下一次重发。ietfrfc2001规定的快速重发算法由pge实现,一旦收到来自客户端的三个重复确认,它便生成一个重发触发信号。

基于np的toe使服务器性能可以不依赖于np和客户端之间的网络特征。其性能反而可以反映np和服务器之间的链路特征。此外,服务器的内存需求仍独立于网络拥塞和客户端网络的往返时延。

我们可以看到,在远程np采用tcp卸载机制可以充分提高低端设备的tcp性能,而且服务器可以免受与各种客户端环境相关的资源需求变化的影响。另外,具有很长无线组件的高性能客户端网络可通过nptoe减轻拥塞及链路损失,从而显著改善用户体验。
本文地址:https://www.eechina.com/thread-16369-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表