基于FPGA的TCP_IP协议卸载引擎设计_杨阳.pdf
《基于FPGA的TCP_IP协议卸载引擎设计_杨阳.pdf》由会员分享,可在线阅读,更多相关《基于FPGA的TCP_IP协议卸载引擎设计_杨阳.pdf(6页珍藏版)》请在咨信网上搜索。
1、48|电子制作 2023 年 1 月信息工程0 引言随着云计算、大数据、物联网等技术的广泛应用,数据规模呈现爆炸式增长,导致对于网络带宽、延时等性能的依赖性日益增强。网络带宽每年以 23 倍的速度增长,目前 10G 网络已普及到各个领域,40G/100G 甚至 400G 网络也在数据中心等流量集中的关键领域开始大规模运用。而TCP/IP 协议族作为一种网络协议标准,占据着网络协议主流标准地位,其应用最为广泛。传统的 TCP/IP 网络协议处理由操作系统内核完成分组转发、校验、传输控制、数据分片等流程,并且对于大数据量的网络传输,会产生频繁的 I/O 中断以及数据拷贝,大幅增加处理器上下文切换开
2、销和系统总线负载1,2。根据 Thumb 定律,处理 1bit 网络数据需要消耗 1Hz 的 CPU 处理周期,网络带宽的快速增长必将消耗大量的处理器资源,最终导致网络 IO 成为系统性能瓶颈。为解决高速网络通信中,对于 TCP/IP 网络协议的处理导致的处理器资源过载问题,通信技术领域提出了多种网络协议优化技术,其中 TOE(TCP/IP Offload Engine,TCP/IP 卸载引擎)技术3,通过将传统 TCP/IP 网络协议的处理流程由操作系统内核卸载至网卡,由网卡硬件执行协议栈处理,从根本上减轻了处理器工作负载,释放出更多的处理器资源。TOE 技术的应用不仅能够降低主机处理器资源
3、消耗,同时能够提升网络吞吐量及缩短网络延时4,具有 TOE 功能的网络设备将成为未来数据中心构建高性能、低功耗网络基础设施的首选。而基于 FPGA 设计实现 TOE 网卡兼具灵活性及成本优势,适应于数据中心网络环境。基于 FPGA 硬件化实现 TCP/IP 协议栈,需要综合考虑FPGA 资源占用率、网络性能以及可支持的连接数。目前,商用 TOE 网卡支持的连接数在千条量级,基于 FPGA 的 TOE网卡使用多 TCP/IP 协议栈实例实现多连接,支持的连接数相对更少,且资源占用率较高。此外,对于大数据块的通信传输,主机仍然需要与 TOE 网卡进行频繁的交互,跟踪、控制数据发送的过程,占用了大量
4、的处理器资源、降低了数据吞吐量,对于多连接情景、大数据量传输,情况将更加严重。云计算、大数据等业务场景下,多连接,大数据量传输频繁发生,在进行 TCP/IP 协议卸载的同时,还需要减少主机对于数据传输的管控频次,进一步降低网络 IO 对于处理器资源的占用,充分释放 PCIe 带宽优势,从而提升网络性能。本文提出了一种基于 FPGA 构建 TCP/IP 卸载引擎的设计方法,采用数据发送通道与接收通道分离的架构,由协议共享模块统一管理连接状态及网络通信事件,控制数据收发过程,能够处理万条量级的网络连接。同时,设计了一种大数据块自动分片传输机制,有效降低大数据块发送的延时及对处理器资源的占用。1 设
5、计与实现 1.1 系统架构TCP/IP 卸载引擎面向多连接 TCP/IP 网络传输,以可扩展的架构形式实现 TCP/IP 协议处理的硬件化,从而大幅提高传输协议处理性能,降低对于主机处理器资源的消耗。TOE 引擎设计采用发送路径与接收路径相互独立的基础架构。发送路径包括处理组包等工作的发送协议引擎以及发送数据缓冲区;接收路径包括处理拆包等工作的接收协议引擎以及接收数据缓冲区。协议引擎采用流水线模式,用于处理TCP/IP 协议,数据缓冲区 Buffer 用于缓存网络发送或接口的数据。发送路径与接收路径共享连接状态等公共信息,为保证公共信息的一致性,采用一种基于模块的锁方法,有效降低 FPGA 资
6、源消耗。发送、接收引擎相互独立且使用流水线模式,具备良好的多链接并行处理能力;同时基于 FPGA 片外存储实现发送/接收缓冲区,能够容纳数以万计的链接并存。基于 FPGA 的 TCP/IP 卸载引擎设计框架5如图 1 所示,TCP/IP 卸载引擎由发送接口、发送缓冲 Tx Buffer、发送引擎组成发送路径;由接收接口、接收缓冲 Rx Buffer、接收引擎组成接收路径。发送路径与接收路径相互独立,共享TCP 状态管理器、事件引擎等公共组件能力。1.2 缓存控制每个 TCP 连接在建立时都会被分配一个发送缓存 Tx 基于 FPGA 的 TCP/IP 协议卸载引擎设计杨阳,周思远,王舒鹏(扬州万
7、方科技股份有限公司,江苏扬州,225006)摘要:为解决高速、高并发、大数据量以太网通信中,TCP/IP网络协议处理导致的处理器资源过载、网络延时等问题,本文提出了一种基于FPGA构建TCP/IP卸载引擎的设计方法,采用数据发送通道与接收通道分离的架构,由协议共享模块统一管理连接状态及网络通信事件,控制数据收发过程。同时,设计了一种大数据块自动分片传输机制,有效降低大数据块发送的延时及对处理器资源的占用。实验结果表明,基于FPGA的TCP/IP协议卸载引擎在高并发网络通信场景下,能够高效处理网络通信协议,网络通信带宽保持较为稳定状态,512字节数据量的网络延时小于1s。关键词:FPGA;TCP
8、/IP协议;TOE;高并发;网络通信DOI:10.16589/11-3571/tn.2023.01.017wwwele169com|49信息工程Buffer 以及一个接收缓存 Rx Buffer。Tx Buffer 为环形缓冲区,根据应用场景预先配置环形缓冲区容量及数量。尤其对于数据中心分布式存储场景,如 Glusterfs 存储集群采用128KB 数据条带、Ceph 存储集群采用 4MB 数据分片,在此类场景下,缓冲区容量设置为 128KB 及以上,可以有效降低主机与卸载引擎的交互消耗。Tx Buffer 缓存负载数据用于超时确认重发及流量控制。发送缓存控制器用于维护发送缓存状态表,包括读取
9、、写入、删除、更新操作。发送缓存状态表用于记录对应发送缓存的状态,属性包括:(1)SessionID:TCP 链接对应的会话 ID;(2)Add:发送缓存地址;(3)Producer:生产者指针,标识应用写入发送缓存的尾部地址;(4)Consumer:消费者指针,标识已经被发送并确认的数据尾部地址;(5)Send Window:发送窗口大小;(6)ACK:ACK 号;(7)Transmitted:已发送指针,标识已经被发送尚未被确认的数据尾部地址;(8)Active:标识对应的发送缓存是否处于激活使用状态。图 2 所示为发送缓存示意图,从外部网络接收的数据将由接收引擎进行校验拆包等协议处理操作
10、后,放入接收缓存 Rx Buf-fer,通知接收缓存控制器移动 Producer 指针。在应用程序通过 DMA 操作取走接收数据后,Consumer 指针将会被移动。对于乱序发送的数据段,接收引擎根据计算其段序号计算 Offset,放入乱序段数据后,移动对应的 Length指针,乱序段数量、及 Offset 相对 Producer 的偏移量是预先设定的,当数量或偏移量超出设定范围时,相关数据段将被丢弃,发送端由于发送确认超时,将重新发送。Rx Buffer 同样采用环形缓冲区,根据应用场景预先配置环形缓冲区容量及数量。Rx Buffer 缓存接收负载数据。接收缓存控制器用于维护接收缓存状态表,
11、包括读取、写入、删除、更新操作。接收缓存状态表用于记录对应接收缓存的状态,属性包括:(1)SessionID:TCP 链接对应的会话 ID;(2)Add:接收缓存地址;(3)Producer:生产者指针,标识接收数据的尾部地址;(4)Consumer:消费者指针,标识被应用取走的数据尾部地址;(5)Offset:乱序段偏移地址;(6)Length:乱序段长度;(7)Active:标识对应的接收缓存是否处于激活使用状态。图 3 所示为接收缓存示意图,从外部网络接收的数据将由接收引擎进行校验拆包等协议处理操作后,放入接收缓存 Rx Buffer,通知接收缓存控制器移动 Producer 指针。在应
12、用程图 1 TCP/IP 协议卸载引擎设计框架图图 2 发送缓存示意图50|电子制作 2023 年 1 月信息工程序通过 DMA 操作取走接收数据后,Consumer 指针将会被移动。对于乱序发送的数据段,接收引擎根据计算其段序号计算 Offset,放入乱序段数据后,移动对应的 Length 指针,乱序段数量、及 Offset 相对 Producer 的偏移量是预先设定的,当数量或偏移量超出设定范围时,相关数据段将被丢弃,发送端由于发送确认超时,将重新发送。1.3 连接状态管理TCP/IP 协议的网络连接状态包括 Port 状态、Conne ction 状态,Port 状态包括 Listeni
13、ng、Active、Closed,Connection 状 态 包 括 CLOSED,SYN-SENT,SYN-RE-CEIVED 等,连接状态管理由 TCP 状态管理器完成。TCP状态管理器基于表数据结构管理 Port 及 Connection 状态,同时维护 SessionID 与由源 IP 地址、目的 IP 地址、源Port、目的 Port 组成的四元组之间的映射。如图 4 所示为TCP 状态管理器对于 Connection 状态表的管理,Port 状态表采用同样的管理方式。由于 TOE 中的接收引擎、发送引擎、发送接口的工作流程中都涉及了状态表的查询、更新等操作。状态表作为多模块共享数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA TCP_IP 协议 卸载 引擎 设计 杨阳
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。