基于代理的用户态TCP/IP协议设计与实现

来源 :北京邮电大学 | 被引量 : 0次 | 上传用户:fuzaifeng
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
本文作者介绍了基于代理的用户态TCP/IP协议栈的设计与实现,并使该协议栈针对代理功能进行剪裁和优化,以及在多核处理器上实现性能的线性扩展。代理服务器通常作为数据中心的负载平衡设备,起到对外屏蔽内部网络拓扑结构、负载平衡分发的作用。所以代理服务器的性能对整个数据中心的性能起关键作用。然而在多核处理器上,传统的SocketAPI解决方案中,存在接收端并行度不高、系统内存消耗大等限制。本文中作者绕过SocketAPI设计出一种在用户态上实现的并行化TCP/IP协议栈的方案,并使其针对代理服务器这一应用场景进行优化,解决多核平台上的性能扩展问题。   本文首先介绍相关领域的前人工作以及技术背景,分析在用户态上实现TCP/IP协议栈的优劣、协议栈的并行模型、以及如何实现并发程序在多核处理器上的性能扩展问题。接着,作者介绍了在用户态上实现针对代理功能优化的TCP/IP协议栈的设计框架。共包括两个部分:第一部分,用户态并行化的TCP/IP协议栈。利用TCPSplicing机制以及无锁竞争的TRIE查找树实现针对代理功能定制的TCP/IP协议栈,并完成多核处理器上的性能线性扩展。第二部分,内核态数据包负载平衡分发模块。在Linux内核通过文件系统作为与用户态协议栈交互的接口,并实现接收端的负载分发,保证多核CPU之间的负载平衡。最后,作者给出了在吞吐量、最大并发连接数、单侧连接建立和拆除速率这三个性能指标的测量和分析优化,以及与HAProxy的性能对比数据。HAProxy是一种在用户态上利用SocketAPI实现代理的通用解决方案,来验证作者的设计优化带来的性能提升。   最后性能测量结果证明作者设计的并发程序无锁竞争的解决方案,以及针对代理功能进行剪裁和优化的方案,使该用户态TCP/IP协议栈性能上超过SocketAPI实现的HAProxy。另外,作者还提出了在多核处理器上软件向前兼容性开发的思考。
其他文献
随着互联网技术的蓬勃发展、网络互动社区等新兴应用的日益丰富以及企业信息化建设的高速发展,互联网社区用户数量急剧膨胀,各种新的需求和应用形式不断涌现,企业每天产生的各种
互联网的飞速发展使得其中的信息呈爆炸性增长,但互联网中的信息由于其本身的无结构性使人们很难找到自己有用的资源。如谷歌、百度等通用搜索引擎为我们提供大量的信息,但其中
统计机器翻译的首要工作是获取双语词对齐信息,而词对齐需要从词边界清晰的双语语料中训练才能得到。因此,在涉及中文的统计机器翻译系统中,首先需要对中文语料进行分词处理。可
一致化理论在自动推理、自然语言理解、逻辑证明、重写理论等研究领域中有着广泛的应用。目前语法一致化因子的产生算法和工具已经相对成熟,但还没有产生等价一致化因子的实
当今时代,嵌入式系统已经无处不在。从早期的通信设备、工业控制等领域已经很快的发展到与人们日常生活密切相关的电子产品领域中。同时,嵌入式系统也变的日益复杂,嵌入式操
在单元测试领域,测试充分度准则一直是研究的热点。到目前为止,学术界提出了各种不同的测试充分度准则。Richardson和Thompson在他们的研究成果即RELAY模型中提出了一种错误传
科学技术的发展和新兴商业模式的出现带来了多种类型数据的产生和积累,例如天文数据、社交数据、电商数据等。利用机器学习技术进行数据分析并挖掘数据中蕴含的知识和规律具有
随着当代计算机技术和信息技术的不断发展和应用,各种领域都通过越来越多的手段产生大量的数据。但由于数据收集方式造成的误差,和数据本身的不确定性等原因,使得采集到的数据往
在当今的互联网中,搜索引擎以其快速和直接的资源访问方式,得到了越来越多用户的青睐,并发挥着越来越重要的作用。而在搜索引擎中,搜索结果是其和用户交流的直接媒介,搜索结