• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > 技术文章 > 利用TCP卸载技术提升网络处理器的应用性能

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

录入:edatop.com    点击:

传输控制协议(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是一种基于模块的处理器。它采用两阶段分类处理,第一阶段处理单个模块。第二阶段处理重组后的协议数据单元。如果数据段到达时是乱序的,则将其保留在分类器中first pass重排序缓冲器中,直到有序段到达。

对于有序段,则检查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生成的伙伴控制队列保留该段的传输时间。当一个确认到达时,按确认到达时间与传输时间差计算往返时间,然后按照IETF RFC 2988推荐标准估算重发超时(RTO)。

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

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

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

我们可以看到,在远程NP采用TCP卸载机制可以充分提高低端设备的TCP性能,而且服务器可以免受与各种客户端环境相关的资源需求变化的影响。另外,具有很长无线组件的高性能客户端网络可通过NP TOE减轻拥塞及链路损失,从而显著改善用户体验。

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:一种实用的集成芯片测试仪的设计
下一篇:单片机串行通信在排水管道清淤机器人中的应用

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图