用户态并行协议栈关键技术的研究与实现

来源 :哈尔滨工程大学 | 被引量 : 0次 | 上传用户:pgzwoaini1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
网络通信技术的快速发展促使网络带宽和流量不断增大,网络协议栈的处理能力容易成为系统总体性能的瓶颈。对于传统的内核网络协议栈,系统调用、内存拷贝和冗余的协议处理流程的开销可能成为制约协议栈处理能力的因素。把协议栈构建在用户空间是协议栈实现的另一种思路,可以很大程度上减少操作系统的额外开销和内存拷贝开销,且定制灵活。本文从以下两个方面研究了用户态协议栈构建的关键技术。首先,本文研究了用户态协议栈的消息通信机制。用户态协议栈受两种消息流驱动运行:网络数据包消息流和socket请求消息流,这形成了一个多生产者单消费者的模型,本文设计了特定的环形消息队列来支撑消息通信机制。但是在大流量数据环境下,多个生产者对于环形消息队列的加锁同步开销将会十分可观。针对这个问题,本文提出了改进的环形消息队列互斥算法,利用原子操作代替开销昂贵的互斥锁,在需要频繁对环形消息队列进行判空或判满操作的场合能取得较好的效果。在改进互斥算法的基础上,本文提出了一个消息通信机制的无锁化架构,通过轮询调度的思想来取代互斥锁的频繁使用,并通过实验验证了方案的可行性。接着,本文研究了用户态协议栈的并行处理技术。随着多核多处理器架构的普及,如果协议栈采用单线程串行处理流程,势必不能发挥处理器强大的计算能力。本文设计了用户态协议栈的并行处理架构,通过对数据包四元组哈希的方式把数据包分发到特定的协议栈线程中处理,从而实现了连接级别的协议栈并行。利用Linux内核提供的处理器“硬亲缘力”特性,设计了用户态协议栈的处理器负载均衡策略。最后通过实验证明了协议栈并行化处理后取得了较大的性能提升。
其他文献
本文在回顾前人研究的基础上,采用实证的方法对消费者的时间导向和主观幸福感与享乐主义/功利主义的关系进行了研究。研究主要探讨了时间导向对享乐主义/功利主义的影响,并通过
随着经济的发展和人民生活水平的提高,空调能耗迅猛增加,传统空调采用温湿度耦合处理技术,消耗了大量高品位的能量,低碳经济催生低碳空调,辐射空调系统应运而生。辐射空调以其舒适