一种基于众核处理器的高速网络数据包并行化接收方法

文档序号:8322171阅读:288来源:国知局
一种基于众核处理器的高速网络数据包并行化接收方法
【技术领域】
[0001]本发明涉及多核及众核嵌入式处理器和网络通信处理领域,尤其涉及基于众核处理器的高速网络数据包并行化接收方法。
【背景技术】
[0002]随着通信技术的快速发展以及多核或众核嵌入式处理器的出现,传统的单核处理模式已经无法满足高速网络测量的需求。多核或众核处理器采用并行处理模式,多任务并行处理,可以在低主频的情况下提高处理速度,并且降低功耗。而随着宽带的日益增加,网络数据量爆炸式增长,同时对于网络数据的高速处理提出了更高的要求。因为网络中的众多数据都要求很强的实时性,为了保证数据的平稳传输并满足各种应用对数据接收的实时性要求,软件系统如何有效利用其架构优势进行数据包的快速接收已然成为研宄的热点。
[0003]申请号为201310365607.5的发明专利公开了一种基于多核或众核嵌入式处理器的网络数据包接收处理方法,该发明对网络数据包在多核或众核嵌入式处理器的接受进行了说明,并提出了一种对数据接收的机制与数据分发相结合的数据包处理方法。
[0004]上述发明专利虽然是一种基于多核或众核嵌入式处理器的数据包接收处理方法,但实际上只是用一个核对数据包进行接收处理,并没有涉及到多核或众核嵌入式处理器的数据包的多核接收处理,更未提及对网络数据包的接收进行并行化处理,且对于多核或众核嵌入式处理器,针对网络数据包的接收并行化设计对大数据的应用更具有实际意义。

【发明内容】

[0005]针对以上现有技术中的不足,本发明的目的在于提供一种对高速网络数据进行快速准确的接收,满足1GE网络测量的需求的数据包并行化接收方法,本发明的技术方案如下:
[0006]一种基于众核处理器的高速网络数据包并行化接收方法,其包括以下步骤:
[0007]101、将众核处理器的N个核分成两类核,即用于接收网络数据包头的网络数据接收核和对网络数据内容进行处理的网络数据处理核,所述网络数据接收核又分为读取核、散列核、分配核及通知核,其中读取核是用来处理网卡接收到的网络数据包的包头信息,包括对包头信息进行第二层Hash以及提取TCP或者UDP包的源端口和目的端口 ;散列核是根据读取的包头信息进行散列即计算数据包头的第三层、四层的Hash值来选择散列槽;分配核是根据选择好的散列槽来选择网络数据处理核,发送核用于完成将网络数据包发送给网络数据处理核,其中网络数据接收核与网络数据处理核之间采用片上网络进行通信,所述网络数据接收核的读取核、散列核、分配核及通知核之间也采用片上网络;
[0008]102、当网络数据到来时,网卡适配层接口会将整个数据包存储到一个16KB的先入先出FIFO循环队列称为iPkt数据内容中,而将数据包头存储到一个4KB的循环队列称SiHdr数据包头中,然后通过头部信息将数据包通过直接内存存取的方式传送到相应的网络数据处理核队列中,网络数据处理核提取数据并进行处理。
[0009]进一步的,步骤101中的网络数据接收核对网络数据包进行接收的步骤具体为:初始化配置相关网络数据处理核的接收信息,网络数据处理核到网络数据接收核注册;分配内存空间以及为网络数据选择缓存空间大小;等待相关输入,如果没有相关输入,则继续等待;如果有相关输入,则看输入得是相关消息还是相关数据,如果是相关消息的话就接收,其中相关消息包括注册消息、缓冲区返回的消息、注销消息及退出消息;如果是退出消息,网络数据接收核就停止工作;如果是其它消息就处理并更新返回的相关消息;如果输入是相关数据的话,根据输入的网络数据的包头相关信息解析此数据包头并接收此数据包头,再根据解析此数据包头出来的信息与初始化时配置的相关信息进行匹配,如果在初始化时已经有了此信息时就直接查询相应的槽散列,根据槽散列再结合相应的分发算法及映射表选择相应的网络数据处理核,根据此数据包头里面数据的大小来选择数据缓存空间;如果没有此信息,再根据此数据包头的第三层、四层信息进行hash运算并计算其槽散列,然后再重复上一步来选择合适的数据缓存空间和网络数据处理核;最后网络数据接收核通知网络数据处理核接收网络数据并进行相应的处理。
[0010]进一步的,所述的多众核嵌入式处理器为同构或异构处理器,所述核的数量至少为8个,所述收发端口配置包括至少2个GE千兆网络端口,其中一个为RX接收端口,另一个为TX传输端口。
[0011]本发明的优点及有益效果如下:
[0012](I)本发明提出的对高速网络数据包接收模型并行化设计方案可扩展性增强,适用于目前大多数的多核或众核嵌入式处理器,满足了大部分应用对高速网络数据处理的需求。
[0013](2)本发明中利用多核并行接收高速网络数据包模式,能够对高速网络数据进行快速准确的接收,满足1GE网络测量的需求,适用于通用的网络测量系统,实现了较低成本测量高速网络数据的网络测量系统。
【附图说明】
[0014]图1是按照本发明优选实施例基于多核或众核嵌入式处理器的高速网络数据包接收模型的整体框架图;
[0015]图2所示为本发明优选实施例的数据包接收模型图;
[0016]图3所示为本发明优选实施例的并行化数据包接收流程图;
[0017]图4所示为本发明优选实施例的并行化数据包接收结构框图。
【具体实施方式】
[0018]下面结合附图给出一个非限定的实施例对本发明作进一步的阐述。但是应该理解,这些描述只是示例的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。图1所示为本发明的整体框架图,种基于多核或众核嵌入式处理器的高速网络数据包接收模型的并行化设计方法,包括网卡,还包括了数据包头和数据内容、内存、网络数据接收核及网络数据处理核,所述的网卡、网络数据接受核及网络数据处理核采用多核或众核嵌入式处理器;所述的网络数据接收核之间、网络数据处理核之间以及网络数据接收核与网络数据处理核之间通过片上网络通信;其中,
[0019]所述网络数据接收核包括读取核、散列核、分配核、通信核,所述读取核用来处理网卡接收到的数据包的包头信息;所述散列核是根据读取的包头信息进行散列即计算数据包头的第三层、四层的Hash值来达到选择散列槽的目的;所述分配核根据选择好的散列槽来达到选择数据处理核的目的;所述通知核将数据包发送给数据处理核。
[0020]所述网络数据处理核包括多核或众核嵌入式处理器多个核,而这多个核又可以根据处理不同任务的数据分为不同的处理核(比如将测量时延数据的处理核分为一组、测量吞吐量数据的处理核分为一组);
[0021]所述片上网络是多核或众核嵌入式处理器内部自带的一种体系结构,片上网络为内存、缓存、以及核间通信提供了高速全双工通信方法,从而消除了多核通信的瓶颈。
[0022]进一步的,所述多核或众核嵌入式处理器为同构或异构处理器,所述核的数量至少为8个,所述收发端口配置包括至少2个GE网络端口,其中一个为RX端口,另一个为TX端口。
[0023]图2所示为本发明数据包接受模型图,高速网络数据从网卡输入到达输入接口,输入接口将数据包头发送给网络数据
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1