论文部分内容阅读
IT业界的发展日新月异。在计算机软硬件方面,CPU架构多核化和编程模式并行化的趋势越来越明显。随着带宽的日益增加,网络数据量爆炸式增长。物联网热的兴起更是加剧了对网络数据快速处理的需求。多核已经成为桌面处理器的主流,软件系统如何有效利用其架构优势成为研究热点。本文紧跟发展潮流,提出了一种在多核多线程平台下,对网络数据捕获和数据处理两部分进行并行化的方法。本课题可应用于多核平台下网络监控的相关系统。课题属于网络内容安全领域。本文对该领域发展前沿做简单介绍之后,针对数据捕获和并行处理两部分,简要分析了技术背景和现有解决方案的优缺点。接下来,文章详细阐述了作者对这两部分的改进。首先分析了网络数据报文捕获技术的特点和要求,以及现有的实现方式;通过对网卡硬件收发数据包过程的研究,得出影响接收数据包性能的主要因素之后,设计出了改进型零拷贝网络数据包捕获平台。该平台通过DMA方式,网卡接收到的数据包被直接发送到用户空间的接收缓冲区中,有效地减少数据拷贝、系统调用的次数和CPU的处理时间,提高捕获性能。接着,本文全新设计了网络数据并行处理方式。该设计遵循并行开发模式,充分利用了多核多线程硬件架构的优势。在分析了TCP/IP协议栈的工作原理的基础上,本文总结了串行协议栈数据处理方式的瓶颈;针对串行协议栈不能充分发挥逐渐普及的多核优势问题,对协议栈进行并行处理,在新平台上提高系统的硬件利用率和整体性能。最后,本文对整体设计方案进行了说明,并对数据分发器和上下层接口的设计进行了阐述。在分析现有相似设计方案缺点的基础上,全新设计了适用于并行协议栈数据处理的分发器。对系统进行的实验测试表明,改进型零拷贝、数据分发器和协议栈并行处理的耦合有效地提高了系统的整体性能,尤其在多核处理器平台下具有良好的效果。