本发明属于网络包处理及数据包分流,尤其涉及应用于智能网卡的网络包混合处理框架和数据包分流系统。
背景技术:
1、随着互联网骨干传输速度的提升以及用户端更可靠的访问机制的需求,相关的桌面系统或是数据中心在网络通信的同时常常需要面临大量的计算需求,而当网络速度超过1gb的时候,网络协议的性能消耗大幅提升,导致其它计算需求无法得到满足。网络虚拟化中的offload特性就是针对上述问题提出的,主要是指将原本在操作系统协议栈中进行的ip分片、tcp分段、重组、checksum校验等操作,转移到硬件中进行,降低系统cpu的消耗,提高处理性能。在发送模式下主要包含tso(tcp segmentation offload)、ufo(udpfragmentation offload)和gso(generic segmentation offload)。其中tso和ufo分别针对tcp和udp协议将数据包分片、每段生成协议包头和帧头的过程转移到硬件中进行,大大减轻cpu负荷;gso为是延缓分片技术,将分片延迟到数据发送到网卡的最后一刻,若是硬件支持tso或是ufo技术就采用硬件分片技术,若是硬件不支持则采取软件分片。在接收模式下主要包含lro(large receive offload)和gro(generic receive offload)。两种技术都是在接收数据包的时候重新排序并且重新组成长数据包,减少cpu在处理常规数据包造成的性能损耗和延时。另外,也可以在硬件上实现校验和计算或是将网络数据流分散处理进一步减少cpu处理网络数据包的负担。
技术实现思路
1、为解决上述技术问题,本发明提出了应用于智能网卡的网络包混合处理框架和数据包分流系统,将offload机制和定制化网卡的结构优点得以结合,提高带宽、降低cpu消耗、增强了其灵活性。
2、为实现上述目的,本发明提供了应用于智能网卡的网络包混合处理框架和数据包分流系统,包括:第一通信子系统,数据处理子系统和第二通信子系统;
3、所述第一通信子系统,用于网络通信并发送控制指令;
4、所述数据处理子系统,用于接收并处理所述控制指令,获取处理后的指令并发送给所述第二通信子系统;
5、所述第二通信子系统,用于接收所述处理后的指令。
6、可选的,所述第一通信子系统包括:gtx/gtp高速收发器和网络mac层ip核,所述gtx/gtp高速收发器和所述网络mac层ip核进行网络通信。
7、可选的,所述数据处理子系统包括:网络包处理模块、网络数据处理模块和数据缓冲区模块;
8、所述网络包处理模块,用于网络数据分流,获取分流数据并发送给所述网络数据处理模块;
9、所述网络数据处理模块,用于接收所述分流数据并进行数据处理,获取处理后的数据
10、所述数据缓冲区模块,用于接收和存储所述处理后的数据。
11、可选的,所述第二通信子系统包括:pcie硬核,网卡与上位机通过所述pcie硬核进行通信。
12、可选的,所述网络包处理模块中网络数据的发送过程包括:
13、上位机将需要发送数据以及ip帧头信息传输到发送缓冲区;
14、通过分流单元,将数据包分为tcp包、udp包和其它包分流处理,其它包包括arp包、icmp和其它未识别的以太网包;
15、tcp包经过tcp分段单元、tcp帧头处理单元、校验和生成单元和ip帧头处理单元后将完整的网络包储存到待发送缓冲;udp包经过ip分段、udp帧头处理单元、校验和生成单元和ip帧头处理单元后将完整的网络数据包存储到待发送缓冲;其它包由上位机直接构成直接存储到待发送缓冲;
16、将待发送缓冲中的数据包传输到网络mac并且完成网络数据发送。
17、可选的,所述网络包处理模块中网络数据的接收过程包括:
18、将收到网络数据包存储到已接收缓冲区;
19、通过分流单元将接收到的数据包,tcp包、udp包、其它包和硬件处理数据包分流处理,其它包包括arp包、icmp和其它未识别的以太网包;
20、tcp包经过ip帧头校验和校验、tcp帧头处理、tcp重组后将完整的接收数据储存到接收缓冲区;udp包经过ip帧头校验和校验、udp帧头处理单元、ip重组后将完整的接收数据存储到接收缓冲区;其它包直接存储到接收缓冲区;
21、硬件处理数据包通过帧校验和帧头处理后,提取传输有效数据,经过可重构的数据处理单元完成处理后,实现组帧并且直接出送到待发送缓冲区。
22、可选的,所述分流单元包括:控制子单元和数据路径子单元;
23、所述控制子单元,用于获取所述控制指令,执行所述控制指令,输出所述控制指令发送给所述数据路径子单元;
24、所述数据路径子单元,用于将输入的数据缓冲包同通过不同的标签分流,输出所述数据缓冲包。
25、可选的,所述数据缓冲模块包括:自主交换结构和三个数据缓冲区,具体工作过程包括:
26、在网络数据发送流程中,所有三个缓冲区都在等待上位机写入数据包和帧头信息,发送缓冲首先连接到缓冲区1,当发送数据包和帧头信息写入缓冲区1时,自定义交换结构将数据缓冲1与分流单元相连接;此时上位机连接到缓冲区2,此时分流单元缓冲区1中处理数据包,数据仍然可以写入到发送缓冲2中,依此类推;
27、在网络数据接收流程中,所有三个缓冲区都在等待接收数据包和帧头信息,接收缓冲首先连接到缓冲区1,当接收数据包和帧头信息都写入缓冲区1时,自定义交换结构将数据缓冲1与分流单元相连接;此时接收单元连接到缓冲区2,此时分流单元缓冲区1中处理数据包,接收数据仍然可以写入到发送缓冲2中,依此类推。
28、本发明技术效果:本发明公开了应用于智能网卡的网络包混合处理框架和数据包分流系统,本发明的技术优点体现在高速有效的offload和网络数据包分流实现框架,在实现offload机制的基础上,添加网络数据包解析和分发机制,在传统架构的基础上增强了系统的并行工作效率,将offload固定网络加速和定制化网络数据处理两种结构的优点相结合,有效提高了网络传输带宽,并保持了成本。
1.应用于智能网卡的网络包混合处理框架和数据包分流系统,其特征在于,包括:第一通信子系统,数据处理子系统和第二通信子系统;
2.如权利要求1所述的应用于智能网卡的网络包混合处理框架和数据包分流系统,其特征在于,所述第一通信子系统包括:gtx/gtp高速收发器和网络mac层ip核,所述gtx/gtp高速收发器和所述网络mac层ip核进行网络通信。
3.如权利要求1所述的应用于智能网卡的网络包混合处理框架和数据包分流系统,其特征在于,所述数据处理子系统包括:网络包处理模块、网络数据处理模块和数据缓冲区模块;
4.如权利要求1所述的应用于智能网卡的网络包混合处理框架和数据包分流系统,其特征在于,所述第二通信子系统包括:pcie硬核,网卡与上位机通过所述pcie硬核进行通信。
5.如权利要求3所述的应用于智能网卡的网络包混合处理框架和数据包分流系统,其特征在于,所述网络包处理模块中网络数据的发送过程包括:
6.如权利要求5所述的应用于智能网卡的网络包混合处理框架和数据包分流系统,其特征在于,所述网络包处理模块中网络数据的接收过程包括:
7.如权利要求5所述的应用于智能网卡的网络包混合处理框架和数据包分流系统,其特征在于,所述分流单元包括:控制子单元和数据路径子单元;
8.如权利要求3所述的应用于智能网卡的网络包混合处理框架和数据包分流系统,其特征在于,所述数据缓冲模块包括:自主交换结构和三个数据缓冲区,具体工作过程包括: