网站大量收购闲置独家精品文档,联系QQ:2885784924

完成端口实现高服务端通信层的关键问题.doc

完成端口实现高服务端通信层的关键问题.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
完成端口实现高服务端通信层的关键问题

完成端口实现高性能服务端通信层的关键问题 摘 要:为实现高性能稳定的网络通信服务,对完成端口(iocp)应用中信息识别与提取、资源管理、消息乱序处理3个关键问题进行了分析,提出了iocp参数扩展、内存池、对象池、环形缓冲等改进的解决方法。使用这些方法对iocp底层进行了封装,并设计和实现了面向企业应用的可扩展网络程序通信模块。压力和性能测试结果表明,该模块能在合理资源消耗基础上支持海量并发连接,具有较高的数据吞吐量,在实际项目应用中也表现出了良好的性能。 关键词:完成端口;i/o模型;套接字;内存池;环形缓存  key issues of highperformance server communication layer by using i/o completion port  liao hongjian*, yang yubao, tang lianzhang ( network and modern education technology center, guangzhou university, guangzhou guangdong 510006, china ) abstract: in order to achieve highperformance and stable network communication service, the key issues of client information identifying and extracting, resource management and message sequence dealing in i/o complete port (iocp) development were analyzed. and the improved methods of iocp parameter extension, memory pool, object pool and ringbuffer were proposed respectively. on the basis of underlying encapsulation for iocp using these methods, a scalable network communication module for enterprise applications was designed and implemented. the experimental results show that the module can support massive concurrent connections, and has higher data throughput by reasonable resource consumption. the proposed solution has also showed good performance in the actual project application. key words: i/o complete port (iocp); i/o model; socket; memory pool; ring buffer  0 引言 网络服务程序通信层的“高性能”主要表现为对客户端更大的响应规模、更高的并发处理能力、更高的数据吐吞量、更低的系统资源消耗等方面[1],这对服务端通信层采用的技术及设计提出了更高的要求。为此,微软研究数年提出了完成端口(i/o complete port, iocp)机制,它把重叠i/o操作完成的事件通知放入系统维护的一个队列,并唤醒某个工作线程来处理相应的消息。重叠操作是在与iocp相关联的一个或多个文件句柄上进行的,大大减少了线程上下文切换,最大限度地提高了系统并发量[2],能满足“高性能”要求。 iocp是一个高效但复杂精巧的内核对象, 微软的sdk只提供了简单的说明文档和示例代码[3],现有的相关文献或以描述iocp机制的使用方法和步骤为主[4-5],或局限于iocp原理探讨[6],或出于应用项目商业版权的考虑,局限于系统的模块设计[7],对构建大响应规模服务程序时遇到的棘手问题给出全面具体解决方法的较少。在iocp开发中,存在的典型问题有:客户端信息识取、资源管理与访问紊乱、消息乱序,这3个问题的有效解决是构建稳健、高效iocp服务程序的关键。在研究现有资料并结合开发实践基础上,下面讨论这些问题起因并给出解决办法。 1 iocp关键问题分析 1.1 客户端信息的识别与提取 在iocp应用中必定要处理大量客户端的i/o请求,当大量客户

您可能关注的文档

文档评论(0)

icz049 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档