TOE网络接口卡软件系统设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TOE网络接口卡软件系统设计

TOE网络接口卡软件系统设计   摘要:TCP/IP卸载引擎(TOE)技术能够减少处理器的协议处理行为,有效提高网络性能。比较TOE的两种实现方式,并基于部分卸载方式提出Linux下TOE网络接口卡软件系统设计方案。针对提出的软件系统结构,介绍各个部分的功能和接口,阐明了软件系统如何支持TOE功能。   关键词:TCP/IP卸载引擎;软件系统;Linux   中图法分类号:TP311文献标识码:A   文章编号:1001-3695(2006)09-0152-03      主机端系统的网络系统通常由网络接口卡和网络协议栈两部分组成,主机处理器运行网络协议栈,网络接口卡负责接收或发送报文。该工作模式适合于100Mbps以太网等较低速网络环境,因为网络流量不大,CPU能够有效处理各种网络负载。但是,CPU的处理性能无法适应网络带宽的增长,随着千兆位以太网的普及以及10Gbps以太网的使用,频繁的协议处理和内存操作使得处理器力不从心[1]。为此,人们提出TCP/IP卸载引擎(TCP/IPOffloadEngine,TOE)技术[2],将部分甚至全部TCP/IP协议处理任务交给网络接口卡执行,加速网络协议的处理,提高网络吞吐量;同时极大地减轻CPU的负担,避免网络处理消耗过多计算资源,提高了系统的总体性能。??   目前,多家厂商推出支持TOE的网络接口卡,并得到广泛应用。例如Adaptec公司的NAC7711系列产品支持1024条硬件卸载的TCP连接,吞吐量为1Gbps[3];Alacritech公司的TOE加速卡TNIC支持千兆端口速率[4];另外,Microsoft将在其LonghornWindows中推出代号为Chimney的TOE架构,这对TOE的发展将是一次极大的推动。??   当前TOE网络接口设备大多提供千兆以太网接口,随着高速网络的日益普及,网络存储、文件服务、IP存储和可视化计算等应用领域对TOE网卡性能提出了更高要求。针对该问题设计了支持10Gbps接口速率的TOE网卡。TOE网络接口卡设计的关键问题包括TCP/IP协议的硬件高效实现技术,以及支持TOE功能的网络软件系统的设计与实现。本文针对第二个问题探讨了TOE网络接口卡软件系统的设计方法。??      1协议卸载方式??      协议卸载方式决定TOE网络接口卡软硬件功能的界面划分,是TOE网卡设计的关键问题。不同卸载方式对TOE网卡的体系结构和性能会产生很大影响,报文的处理过程也存在极大差别,这将影响系统的实现难度,因此必须选择合适的协议卸载方式。??   TCP协议处理可分为连接管理、数据传输、定时器管理、错误与拥塞控制四个部分[5]。其中,数据传输、定时器管理和错误与拥塞控制是TCP协议处理的主要部分,也是性能瓶颈所在,通常需要采用卸载技术,由硬件完成相应功能,以提高其性能。TCP连接管理部分只占TCP协议处理的极少部分,但它涉及大量复杂的连接状态变化,因此需要根据实现难度和性能需求综合考虑是否采用硬件实现连接管理部分。根据TOE网卡对连接管理部分的支持方式,将TCP协议卸载方式分为全卸载和部分卸载两种[2]。??      1.1全卸载方式??   全卸载方式下,TOE网卡完成TCP协议的全部功能,而不需要CPU的参与[6]。??   为了实现全卸载,应用程序发出的Socket系统调用直接交给TOE网卡处理,同时为了实现对应用程序的兼容,必须屏蔽掉Socket系统调用的实现细节,因此在应用层和网卡之间要有一个接口层,它将应用程序发出的Socket调用转换为TOE网卡可以识别的消息格式。接收数据时,TOE网卡将经过网卡上协议栈处理过的数据交给接口层,由接口层确定数据所属的连接进程,提交给相应进程处理。??   当TOE网卡与用户进程进行数据传送时,涉及到内核对用户进程地址空间的管理机制,我们需要解决TOE网卡对用户进程地址空间的访问和CPU对用户进程地址空间的访问冲突、虚拟地址和物理地址的转换等问题[6]。??      1.2部分卸载方式??   部分卸载情况下,TOE网卡处理TCP协议的数据传输、定时器管理和错误与拥塞控制等过程,主机处理连接管理部分。??   连接的建立、关闭与传统的TCP/IP协议栈处理过程相同。连接建立完成以后,将连接卸载到网卡上,如果网卡接收到属于该连接的数据报文,将在TOE网卡上进行TCP/IP协议处理,然后将处理后的数据提交给主机,主机经过适当处理后交给用户进程。当该连接上有数据要发送时,主机将数据交给网卡,由网卡进行TCP/IP协议处理后,再发送到网络。??   这种方式没有涉及Linux内核核心管理机制。??      1.3比较??   部分卸载方式下,TO

文档评论(0)

130****9768 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档