0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用传输控制协议卸载技术提高低端设备的处理器性能

电子设计 来源:电子产品世界 作者:杰尔系统 2021-05-25 09:35 次阅读

传输控制协议(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减轻拥塞及链路损失,从而显著改善用户体验。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18248

    浏览量

    222041
  • 监视器
    +关注

    关注

    0

    文章

    763

    浏览量

    32833
  • 服务器
    +关注

    关注

    12

    文章

    8104

    浏览量

    82485
收藏 人收藏

    评论

    相关推荐

    如何提高处理器性能

    提高处理器主频可以提高处理器性能,但是到一定程度就不能再提高了,我们需要通过双核,或者多核来提高处理器
    的头像 发表于 01-24 09:59 680次阅读
    如何<b class='flag-5'>提高处理器</b>的<b class='flag-5'>性能</b>

    协议卸载引擎统一服务线缆

    协议卸载引擎统一服务线缆SLQ1010 和 SLQ1004 是 Siliquent 公司的 EPU(以太网处理单元)系列中的首批上市的两个器件,它们能减少主机
    发表于 09-17 09:03

    基于NIOS II 软核处理器的SOPC 技术

    基于NIOS II 软核处理器的SOPC 技术摘要:介绍了基于NIOS II 软核处理器的SOPC 技术,分析了传统方法和基于SOPC 技术
    发表于 10-06 15:05

    浅析TOE — TCP卸载引擎技术及应用

    TOE 是TCP Offload Engine,即TCP卸载引擎,也叫TCP减负引擎,它旨在使用网卡上集成专用处理器来转移并处理TCP数据包对主CPU请求的任务。TOE技术的实现方式是
    发表于 09-22 11:27

    利用NI LabVIEW的并行化技术提高测试的吞吐量

    在内的协处理应用的性能得到提高并行化测量并行化测量要求测试系统中所有的子部件都支持并行化的模型,而不只是处理器。其中包含了数据的采集和传输
    发表于 12-12 16:02

    工业应用理想选择多核处理器

    于中央的高性能ARM® Cortex®-A15,该处理器系列为工业市场提供了一个拥有高性能和高灵活性的解决方案。多核处理器是很多工业应用的理想选择,其中就包括可编程逻辑
    发表于 09-04 10:07

    怎么利用FPGA协处理器提高无线子系统的性能

    您可以显著提高无线系统中信号处理功能的性能。怎样提高呢?有效方法是利用FPGA结构的灵活性和目前受益于并行
    发表于 08-15 07:51

    Linux系统下超线程技术怎么提高处理器性能

    增加了微处理器的复杂性,带来了诸如材料、功耗、光刻、电磁兼容性等一系列问题。因此处理器设计人员开始寻找新的途径来提高处理器性能。Intel公司于2002年底推出了超线程
    发表于 09-19 06:59

    高级处理器性能提高编码效率?

    高级处理器性能提高编码效率?
    发表于 04-26 06:41

    基于Cortex-M处理器的***技术简介

    安全划分内存区域的的安全属性定义IDAUSAUTrustzone 技术介绍万物互联,安全尤为重要,而设备终端是万物互联的源头,也是安全保护的源头。安全可信计算环境(TEE)从处理器MPU向微
    发表于 01-25 06:09

    Wi-Fi协议中的MIMO技术是什么

    设备的不同天线发送数据流来提高传输速率和网络性能。但它只适用于单个接收和发送之间的通信。  
    发表于 05-05 11:26

    ARM 720T处理器技术参考手册

    系列兼容的软件。 片上混合的数据和指令高速缓存以及写入缓冲大大提高了平均执行速度,并减少了处理器所需的平均内存带宽。这允许外部内存支持额外的处理器或直接内存访问(DMA)通道,同时将
    发表于 08-02 11:36

    基于EFI和双核处理器的协处理器模型

    为了提高双核处理器系统的性能,提出一种基于可扩展固件接口(EFI)、利用双核技术和IPI协议实现
    发表于 04-10 09:07 12次下载

    利用Floorplanner工具提高嵌入式处理器系统的性能

    通过在可编程逻辑器件中嵌入低成本、高性能处理器,芯片开发商不但能提高系统的整体性能,而且能够从可编程逻辑器件原本就具备的开发时间短、上市快的特点受益。
    的头像 发表于 05-13 08:06 2061次阅读

    高通骁龙439处理器怎么样

    骁龙439处理器定位低端处理器,设计目的是提高性能和节省大量电池。
    的头像 发表于 10-08 15:49 2.8w次阅读