CN109379303A - 基于提升万兆以太网性能的并行化处理框架***和方法 - Google Patents
基于提升万兆以太网性能的并行化处理框架***和方法 Download PDFInfo
- Publication number
- CN109379303A CN109379303A CN201810961968.9A CN201810961968A CN109379303A CN 109379303 A CN109379303 A CN 109379303A CN 201810961968 A CN201810961968 A CN 201810961968A CN 109379303 A CN109379303 A CN 109379303A
- Authority
- CN
- China
- Prior art keywords
- message
- network protocol
- network
- layer
- protocol stack
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 100
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000008569 process Effects 0.000 claims abstract description 56
- 230000003993 interaction Effects 0.000 claims abstract description 9
- 230000001737 promoting effect Effects 0.000 claims description 19
- 238000006073 displacement reaction Methods 0.000 claims description 17
- 239000003795 chemical substances by application Substances 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 13
- 101100517648 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) NUM1 gene Proteins 0.000 claims description 10
- 101100129590 Schizosaccharomyces pombe (strain 972 / ATCC 24843) mcp5 gene Proteins 0.000 claims description 10
- 230000007246 mechanism Effects 0.000 claims description 8
- 238000003672 processing method Methods 0.000 claims description 3
- 230000009466 transformation Effects 0.000 abstract description 3
- 238000007635 classification algorithm Methods 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- BBEAQIROQSPTKN-UHFFFAOYSA-N pyrene Chemical compound C1=CC=C2C=CC3=CC=CC4=CC=C1C2=C43 BBEAQIROQSPTKN-UHFFFAOYSA-N 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- GVEPBJHOBDJJJI-UHFFFAOYSA-N fluoranthrene Natural products C1=CC(C2=CC=CC=C22)=C3C2=CC=CC3=C1 GVEPBJHOBDJJJI-UHFFFAOYSA-N 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种提升万兆以太网性能的并行化处理框架,包括报文分发层、报文策略分类器、网络协议处理层、应用接口层;报文分发层用于处理报文收发,实现网卡中断级别的并行处理;报文策略分类器用于制定分发策略,将报文通过分发策略的分类算法获得的分类结果与网络协议处理层的网络协议栈实例进行匹配;网络协议处理层基于锐化嵌入式操作***的用户空间网络协议栈并行化改造,为网络协议栈实例建立独立资源池,所述资源池同网络协议栈实例所运行的处理器核进行关联,采用多核操作处理接口处理报文;应用接口层用于网络应用和网络协议处理层的网络协议栈之间的交互,实现将网络应用发送的报文被分流到网络协议处理层的网络协议栈实例进行处理。
Description
技术领域
本发明涉及并行化处理技术领域,具体地,涉及用于提升万兆以太网性能的并行化处理框架,尤其是涉及一种基于多核硬件平台的,在锐华嵌入式国产操作***上利用多核处理器SMP(Symmetrical Multi-Processing)框架和并行计算能力模型,采用用户态、可配置、多实例并行协议栈架构,融合支持用户自定义报文分类、调度策略机制来提升万兆以太网性能的并行化处理技术。
背景技术
IT技术的发展推动了科技的进步。当前CPU架构已经由单核心CPU体系结构向多核化和编程模式并行化的趋势演进,并得到了广泛的应用和支持。多核体系打破了原有的单芯片单处理核心设计,在单一芯片中融入多个处理器核心。通过多个核心的协同工作可以在控制功耗的同时,大大增强处理器的整体处理能力,可以真正实现在CPU上并行处理。尤其在任务可开发的并行度较高且任务划分和调度合理的条件下,多核CPU芯片上的多个物理处理核可以并行完成计算任务,显式提高***整体作业效率。从基于Windows平台的通用计算,到嵌入式设备和手持移动产品计算平台,到高性能计算领域,堆叠多个处理器核心、使用多核框架进行核间通信管理,兼顾功耗和处理能力,实现设备的整体性能的提升。多核并行计算俨然是个低成本、高效能的解决方案。
计算机技术也促进了通信和网络技术的发展,当网络传输带宽不再成为瓶颈,网络数据流量***式增长,万兆以太网传输已经开始成为主流网络配置。国家推行的物联网和“工业4.0”的热潮,更是加剧了对网络数据处理量级和处理速度的需求。作为物联网重要组成节点的嵌入式设备也开始直面要处理高达10G级别的以太网通信数据。于是,多核处理器架构也逐渐在嵌入式设备上成为低功耗、小成本、高性能的首选解决方案。
目前的主流嵌入式设备,基本都已经支持嵌入式操作***进行资源管理、任务调度等能力。由于网络协议的复杂性和多样性,网络协议的处理仍然停留在单一化的阶段。目前国内外主要的用户态网络协议栈都是单协议栈模式,在操作***调度中以单一任务的模型实现同网卡硬件驱动层和用户应用层的交互,对网络报文的处理性能取决于协议栈本身的代码优化程度和***作***调度所在核的主频的处理能力,当协议栈任务所在CPU核满负荷后,性能则达到顶峰,无法进一步提升,在这种模式下,对于多网卡或万兆网卡的应用场景,网络数据性能处理存在瓶颈,无法满足数据吞吐要求。
因此,网络协议栈性能优化也就成为当前网络传输和数据通信领域的研究热点之一,吸引了国内外众产业界和学术界的关注。网络数据报文的处理和流向通常涵盖网卡硬件层、网卡驱动层、网络协议处理层、网络应用接口层和网络应用层。目前主要的性能优化手段是在数据进入报文处理流程后,通过编译器优化、减少拷贝次数(俗称零拷贝)、减少锁粒度和锁的调用、采用硬件进行TCP、UDP校验等。这些手段能在一定程度上改善单任务协议栈的协议处理性能,但是仅限于改善,无法对性能实现较大量级的显著提升。
目前部分在桌面***实验的用户态网络协议栈并发模型,通过操作***对线程的调度来实现,使用捕包方式挂接在操作***协议栈的低层,以旁路方式获取网络报文,将协议报文通过DMA或共享内存的方式送至并行协议栈进行处理,最后送到网络应用层。这种旁路捕包模式只能在实验室环境下提升网络协议报文的接收性能,但是无法解决报文发送方向的并行。因此这种模型对性能提升有限,也无法在嵌入式这种资源受限的专业***环境中应用。且该并行方式采用随机调度模型,无法根据用户的实际网络压力、流量、复杂度的应用场景进行动态介入、负载均衡和自定义策略调度。
国产锐华嵌入式操作***具有多核支持全面、实时性好、功能完整、算法先进、性能优异等特点,在嵌入式设备领域有着广泛应用。本发明基于国产锐华嵌入式操作***提出的用户态网络协议栈并行化技术能充分利用CPU多核计算资源、有效解决当前嵌入式***中万兆网络报文处理性能不高的问题。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种。
根据本发明提供的一种用于提升万兆以太网性能的并行化处理框架***,包括报文分发层、报文策略分类器、网络协议处理层、应用接口层;
报文分发层处理报文收发,实现网卡中断级别的并行处理,被网卡驱动中断处理函数调用,将报文传输到所述报文策略分类器的缓冲区队列中,通过所述报文策略分类器的分发策略进行报文分发;
报文策略分类器制定分发策略,将报文通过分发策略的分类算法获得的分类结果与网络协议处理层的网络协议栈实例进行匹配;
网络协议处理层为网络协议栈实例建立独立的资源池,所述资源池同网络协议栈实例所运行的处理器进行关联,采用多核操作处理接口处理报文;
应用接口层实现网络应用和网络协议处理层的网络协议栈之间的交互,实现将网络应用发送的报文被分流到网络协议处理层的网络协议栈实例进行处理。
优选地,提升万兆以太网性能的并行化处理框架***还包括网络接口代理层;所述网络接口代理层处于应用接口层和网络协议处理层之间,通过管道和消息机制与网络协议处理层的网络协议栈实例进行通信。
优选地,所述网络接口代理层内嵌报文策略分类器,实现Socket通信的托管。
优选地,所述报文策略分类器的分发策略是通过分类算法进行,将所述报文利用唯一标识信息进行分发策略定制。
优选地,所述分类算法是对唯一标识信息进行哈希运算,获得分类结果,将所述分类结果和网络协议栈实例进行匹配。
优选地,所述唯一标识信息包括源IP地址、目的IP地址、源端口、目的端口、协议类型,记为五元组唯一标识,所述五元组唯一标识能够唯一标识到特定的报文。
优选地,所述哈希运算包括如下步骤:对源IP地址以8位分组,特定移位进行异或运算得到数字NUM1;对目的IP地址以8位分组,特定移位进行异或运算得到数字NUM2;对源端口以8位分组,特定移位进行异或运算得到数字NUM3;对目的端口以8位分组,特定移位进行异或运算得到数字NUM4;将NUM1、NUM2、NUM3、NUM4和协议类型进行异或运算得到数字NUM5;将NUM5与网络协议处理层的并行协议栈数目减1进行取余运算得到数字NUM6;若NUM6为0,则将NUM6加1,得到数字NUM7;若NUM6不为0,则将NUM6作为数字NUM7;NUM7即为网络协议处理层的网络协议栈实例编号。
优选地,所述报文分发层能够利用CPU亲和性,在指定CPU的核上运行用户态网络协议栈,并对协议栈任务做亲和性绑定。
优选地,所述报文分发层支持多队列的网卡硬件、多网卡硬件以及单队列网卡的多核SMP***;在多队列的网卡硬件、多网卡硬件环境中,通过锐化嵌入式实时操作***的中断管控接口实现网卡中断的并行处理;在单队列网卡的多核SMP***环境中,将响应网卡中断完成报文分发的CPU核定义为调度核,运行网络协议栈实例的CPU核定义为业务核;所述调度核实现报文分发,所述业务核实现网络协议处理层的具体网络层和传输层协议的并行处理。
根据本发明提供的一种用于提升万兆以太网性能的并行化处理方法,其特征在于,包括以下步骤:报文分发步骤:处理报文收发,实现网卡中断级别的并行处理,被网卡驱动中断处理函数调用,将报文传输到所述报文策略分类器的缓冲区队列中,通过所述报文策略分类器的分发策略进行报文分发;报文策略分类步骤:制定分发策略,将报文通过分发策略的分类算法获得的分类结果与网络协议处理层的网络协议栈实例进行匹配;网络协议处理步骤:为网络协议栈实例建立独立的资源池,所述资源池同网络协议栈实例所运行的处理器进行关联,采用多核操作处理接口处理报文;应用接口步骤:实现网络应用和网络协议处理的网络协议栈之间的交互,实现将网络应用发送的报文被分流到网络协议处理层的网络协议栈实例进行处理。
与现有技术相比,本发明具有如下的有益效果:
1、本发明涉及的并行化处理技术能在嵌入式***领域,能充分利用多核并行计算资源和能力,大幅提升万兆以太网网络协议TCP和UDP的处理能力和吞吐性能。将嵌入式网络设备的数据处理能力提升了一个级别;
2、本发明涉及的用户空间协议栈并行化技术框架从***层面进行了封装,屏蔽了并行计算处理的实现细节、使得用户在不需要了解并行计算知识的情况下,就能编写出高性能的高性能网络应用,切实降低用户的知识能力要求;
3、本发明提供的并行化技术方案中提供的报文策略分类器,设计了灵活、高效的扩展接口,方便用户自定义QoS策略、数据流识别模型的导入,便于实现与应用场景匹配的应用流量通信与调度。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的技术架构图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
锐华国产嵌入式操作***上引入的用户态网络协议栈并行化计算框架,在综合了主流的网络协议优化手段的基础上,根据嵌入式***的特点,设计了专业的网络协议并行处理架构。利用中断和任务的CPU亲和性,将CPU的多个核心进行工作定义和配置,使CPU工作核在处理协议报文时各司其职,避免因单个CPU负载过大成为***整体性能处理的瓶颈;驱动层级网络数据获取和分发机制,减少数据内存拷贝次数和消除旁路的延时,实时性高;用户态并行化计算框架,充分利用操作***管理能力和处理器并行计算资源,对网络协议实现多路并行处理,大幅提升报文处理性能。在万兆网中,通过提高业务核的并行数量,性能加速比线性提升;引入应用代理接口层,在实现接收级别的性能提升的同时,更能实现发送级别的并行处理,发送性能加速明显;加入用户自定义报文分类策略接口,用户根据使用场景灵活调整流量调度策略。在锐华国产嵌入式操作***上,本发明涉及的用户空间网络协议栈并行化处理框架,能有效解决传统嵌入式网络协议栈只能工作在一个处理器核上,对协议的处理能力受限于CPU单核主频,无法充分利用多核处理器资源和计算能力的问题;涉及的网络协议栈并行处理技术能有效解决万兆网络复杂场景下,协议栈报文处理性能瓶颈,通过提升协议栈的并发实例数,能在接收和发送双向提升万兆网络的数据吞吐能力;提供的报文分类器框架,提供了个性化的扩展接口,便于用户根据实际应用场景在并行协议栈间进行灵活的流量调度、负载均衡和报文管理;提供的并行处理技术采用预分配、冗余、复制、预处理等定制技术,通过对网络协议处理流程中的资源进行改造,能降低用户空间协议栈的耦合性,提升协议栈的整体并发能力;设计的用户空间协议栈并行框架中的应用接口代理层,能有效屏蔽并行协议栈框架和报文处理流程的可视性,降低用户的并行化编程难度,使得用户将更多的精力关注在业务逻辑上,提高了用户开发的效率。
下面参照技术架构图对本发明做进一步的阐述。
根据本发明公开的一种用于提升万兆以太网性能的并行化处理框架***,涉及并行化处理技术,是在锐华嵌入式操作***上,涉及一种模块化、可定义和可扩展的多层软件体系框架。该框架基于用户空间的网络协议栈模型,依托于锐华嵌入式操作***多任务调度均衡和实时算法,保证协议处理的性能和效率。该并行化体系框架的网络协议栈包含报文分发层、协议处理层、应用接口代理层、报文策略分类器的模块化。
用于提升万兆以太网性能的并行化处理框架***包括报文分发层、报文策略分类器、网络协议处理层、应用接口层。报文分发层处理报文收发,实现网卡中断级别的并行处理,被网卡驱动中断处理函数调用,将报文传输到所述报文策略分类器的缓冲区队列中,通过所述报文策略分类器的分发策略进行报文分发;报文策略分类器制定分发策略,将报文通过分发策略的分类算法获得的分类结果与网络协议处理层的网络协议栈实例进行匹配;网络协议处理层基于锐化嵌入式操作***的用户空间网络协议栈并行化改造,为网络协议栈实例建立独立的资源池,所述资源池同网络协议栈实例所运行的处理器进行关联,采用多核操作处理接口处理报文;应用接口层实现网络应用和网络协议处理层的网络协议栈之间的交互,实现将网络应用发送的报文被分流到网络协议处理层的网络协议栈实例进行处理。
具体地,还包括网络接口代理层;所述网络接口代理层处于应用接口层和网络协议处理层之间,通过管道和消息机制与网络协议处理层的网络协议栈实例进行通信。
具体地,所述网络接口代理层内嵌报文策略分类器,实现Socket通信的托管。
具体地,所述报文策略分类器的分发策略是通过分类算法进行,将所述报文利用唯一标识信息进行分发策略定制。
具体地,所述分类算法是对唯一标识信息进行哈希运算,获得分类结果,将所述分类结果和网络协议栈实例进行匹配。
具体地,所述唯一标识信息包括源IP地址、目的IP地址、源端口、目的端口、协议类型,记为五元组唯一标识,所述五元组唯一标识能够唯一标识到特定的报文。
具体地,所述哈希运算包括如下步骤:对源IP地址以8位分组,特定移位进行异或运算得到数字NUM1;对目的IP地址以8位分组,特定移位进行异或运算得到数字NUM2;对源端口以8位分组,特定移位进行异或运算得到数字NUM3;对目的端口以8位分组,特定移位进行异或运算得到数字NUM4;将NUM1、NUM2、NUM3、NUM4和协议类型进行异或运算得到数字NUM5;将NUM5与网络协议处理层的并行协议栈数目减1进行取余运算得到数字NUM6;若NUM6为0,则将NUM6加1,得到数字NUM7;若NUM6不为0,则将NUM6作为NUM7;NUM7即为网络协议处理层的网络协议栈实例编号。
具体地,所述报文分发层能够利用CPU亲和性,在指定CPU的核上运行用户态网络协议栈,并对协议栈任务做亲和性绑定。所述报文分发层支持多队列的网卡硬件、多网卡硬件以及单队列网卡的多核SMP***;在多队列的网卡硬件、多网卡硬件环境中,通过锐化嵌入式实时操作***的中断管控接口实现网卡中断的并行处理;在单队列网卡的多核SMP***环境中,将响应网卡中断完成报文分发的CPU核定义为调度核,运行网络协议栈实例的CPU核定义为业务核;所述调度核实现报文分发,所述业务核实现网络协议处理层的具体网络层和传输层协议的并行处理。
本发明还公开了一种提升万兆以太网性能的并行化处理方法,其特征在于,包括以下步骤:报文分发步骤:处理报文收发,实现网卡中断级别的并行处理,被网卡驱动中断处理函数调用,将报文传输到所述报文策略分类器的缓冲区队列中,通过所述报文策略分类器的分发策略进行报文分发;报文策略分类步骤:制定分发策略,将报文通过分发策略的分类算法获得的分类结果与网络协议处理层的网络协议栈实例进行匹配;网络协议处理步骤:为网络协议栈实例建立独立的资源池,所述资源池同网络协议栈实例所运行的处理器进行关联,采用多核操作处理接口处理报文;应用接口步骤:实现网络应用和网络协议处理的网络协议栈之间的交互,实现将网络应用发送的报文被分流到网络协议处理层的网络协议栈实例进行处理。
具体地,上述方法还包括网络接口代理步骤;所述网络接口代理步骤实现应用接口步骤和网络协议处理步骤之间的交互,通过管道和消息机制与网络协议处理层的网络协议栈实例进行通信。具体地,所述网络接口代理步骤内嵌报文策略分类,实现Socket通信的托管。所述报文策略分类步骤的分发策略是通过分类算法进行,将所述报文利用唯一标识信息进行分发策略定制。所述分类算法是对唯一标识信息进行哈希运算,获得分类结果,将所述分类结果和网络协议栈实例进行匹配。所述唯一标识信息包括源IP地址、目的IP地址、源端口、目的端口、协议类型,记为五元组唯一标识,所述五元组唯一标识能够唯一标识到特定的报文。
具体地,所述哈希运算包括如下步骤:对源IP地址以8位分组,特定移位进行异或运算得到数字NUM1;对目的IP地址以8位分组,特定移位进行异或运算得到数字NUM2;对源端口以8位分组,特定移位进行异或运算得到数字NUM3;对目的端口以8位分组,特定移位进行异或运算得到数字NUM4;将NUM1、NUM2、NUM3、NUM4和协议类型进行异或运算得到数字NUM5;将NUM5与网络协议处理层的并行协议栈数目减1进行取余运算得到数字NUM6;若NUM6为0,则将NUM6加1,得到数字NUM7;若NUM6不为0,则将NUM6作为数字NUM7;NUM7即为网络协议处理层的网络协议栈实例编号。
具体地,所述报文分发步骤能够利用CPU亲和性,在指定CPU的核上运行用户态网络协议栈,并对协议栈任务做亲和性绑定。所述报文分发步骤支持多队列的网卡硬件、多网卡硬件以及单队列网卡的多核SMP***;在多队列的网卡硬件、多网卡硬件环境中,通过锐化嵌入式实时操作***的中断管控接口实现网卡中断的并行处理;在单队列网卡的多核SMP***环境中,将响应网卡中断完成报文分发的CPU核定义为调度核,运行网络协议栈实例的CPU核定义为业务核;所述调度核实现报文分发,所述业务核实现网络协议处理层的具体网络层和传输层协议的并行处理。
如图1所示,在报文分发层,对于在协议栈软件层面,利用CPU亲和性,在指定CPU的核上运行用户态网络协议栈,并对协议栈任务做亲和性绑定。对于在软硬件接口层面,对于支持多队列的网卡硬件、多网卡硬件,在驱动的报文分发层初始化时,可通过锐华嵌入式实时操作***的中断管控接口将不同队列或网卡中断绑定在对应的CPU核上,实现网卡中断级别的并行处理。对于单队列网卡,在多核SMP***中,将运行操作***的CPU核定义为0核。中断控制器在不做中断亲和性特殊配置的情况下,网卡收发中断都默认在0核触发,因此在并行化设计时将响应中断完成报文分发的0核定义为调度核,运行其他并行协议栈任务实例的CPU核定义为业务核。调度核实现报文分发和辅助协议(ARP、ICMP、路由等)查询处理;业务核实现具体网络层(IP)和传输层协议(TCP、UDP)的并行处理。
报文分发层工作在网卡驱动中断处理函数中的NAPI(New API)模型内部,由NAPI报文接收函数调用,并将报文加入报文策略分类器缓冲区队列中,通过分类器的策略分发,将接收到的以太网报文分发到不同业务核的工作队列中,由业务核协议栈实例对分发来的报文进行出队、解析、处理和上报。
在报文策略分类器中,报文分发层在处理收发的报文时,需要根据不同类型、来源、特征的报文进行分类识别和处理。在TCP和UDP协议中,每个连接的网络数据包都可以由<源IP地址、目的IP地址、源端口、目的端口、协议类型>五元组唯一标识。因此分类算法可以利用五元组信息特征唯一的特点,进行分发策略定制。报文策略分类器提供默认分发策略。默认分发策略将IP报文的五元组信息进行特定的哈希运算,并把哈希的结果和对应的协议栈实例进行匹配。由于对每个网络数据包都要进行分类哈希计算,需要兼顾性能和灵活性,因此***提供的默认计算复杂度不能太高,否则将耗费处理器过多的计算资源,引发调度核过高的***负载,影响整体的并行性能。
具体的分类算法如下:数据包的源IP地址以8位分组,特定移位进行异或运算得到数字NUM1;数据包的目的IP地址以8位分组,特定移位进行异或运算得到数字NUM2;数据包的源端口以8位分组,特定移位进行异或运算得到数字NUM3;数据包的目的端口以8位分组,特定移位进行异或运算得到数字NUM4;将NUM1、NUM2、NUM3、NUM4和协议类型进行异或运算得到NUM5;将NUM5与并行协议栈数目减1进行取余运算得到数字NUM6,NUM6如果为0则指定NUM6加1(0核协议栈只调度,不处理业务);NUM6即对应的业务核协议栈实例编号;通过以上五元组哈希快速算法,可以保证同一连接的数据报文能被唯一的定位到同一个业务核协议栈实例上,为实现协议并行处理提供了算法保证。
报文策略分类器还设计提供了用户自主定义、自主配对、自主决策、自主Qos排队接口。用户可根据实际网络应用、流量等情况,通过框架定义的注册接口,加入有针对性的报文分发分类策略接口,满足网络协议处理和分发的需求。
在网络协议处理层中,对于在单协议栈场景下,由于网络协议栈内部的串行报文处理机制独占协议报文处理过程中所需的资源,因此并发竞争较少。但是在并行模式下,各用户空间网络协议业务核实例都能独立处理数据报文,报文处理效率得到极大的提升,对资源的需求量、访问频率、共享资源的争夺导致的冲突也急剧放大。传统模式下采用加锁、信号量、临界区等的方式来防止并发竞争导致的数据一致性措施在单协议栈处理的情况下适用,但是在存在高频冲突又对性能有极高要求的多核并行的场景下,并不适用。共享资源的排队访问方式,增大了并行协议栈实例之间的耦合性和盲等性,锁及锁粒度的粗细带来锁操作和竞争延时的额外开销,极大的影响协议处理的整体吞吐性能。
基于锐华嵌入式操作***的用户空间网络协议栈并行化改造设计采取了共享资源细粒度化、独立资源池和去锁化的设计准则,将各业务核报文处理过程中涉及共享访问的资源比如内存、信号量、收发缓存、定时器、传输队列、链表、通信管道等尽可能的进行剥离改造,将剥离出的竞争性***资源通过采用预分配、冗余、复制、预处理和分核绑定等特殊技术手段来为各协议栈实例建立独立的资源池,资源池同协议栈所运行的处理器核进行关联,并将对应的单核访问接口修改为多核操作处理接口,降低核间耦合度,使各业务核在并行工作过程中能像单协议栈场景下一样尽可能独享报文处理过程中所需的***资源,从而实现资源无锁化改造,降低任务锁竞争,提升多核框架下的业务核协议栈的处理性能。
在应用接口层中,网络应用和网络协议栈之间主要是通过网络应用接口层(socket套接字)进行交互,接口层衔接用户应用和网络协议处理层,实现将待发送的数据和地址信息送入网络协议栈进行处理。
报文分发层实现了驱动层报文的动态分发,应用接口层为保证用户应用发送的UDP、TCP报文能正确唯一的被分流到合适的网络协议栈实例进行处理,在协议栈的网络接口层和传输层之间,设计了一个网络接口代理层(Socket Proxy),代理层内嵌应用层报文策略分类器,实现了Socket通信的托管作用。代理层和网络协议栈实例之间是通过管道和消息机制进行通信。在这种模型下,当网络应用调用Socket接口进行报文发送的时候,首先通过***调用send或sendto进入到代理层,代理层将被调用的Socket托管并通过内嵌的应用层报文分类器中定义的算法,将调用的SOCKET接口的API方法和待发送的数据,通过管道分发到对应的业务核协议栈实例上。API消息的分发,需要指定所需执行的方法和函数和参数。协议栈业务核实例在处理初始SOCKET消息时,采用预分配本地端口技术,修改SOCKET处理流程,使得在报文建立连接和发送数据之前就能确定报文处理的归属业务核。被代理托管的Socket在生存周期内发送的报文都将通过该业务核实例完成通信报文的处理和发送流程,实现发送方向的并行。应用层报文分类器同驱动层的报文策略分类器一样,报文分类策略可实现用户的自定义,但是自定义策略必须报文正向报文和反射报文归属核处理的一致性。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的***、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的***、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的***、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种用于提升万兆以太网性能的并行化处理框架***,其特征在于,包括报文分发层、报文策略分类器、网络协议处理层、应用接口层;
报文分发层处理报文收发,实现网卡中断级别的并行处理,被网卡驱动中断处理函数调用,将报文传输到所述报文策略分类器的缓冲区队列中,通过所述报文策略分类器的分发策略进行报文分发;
报文策略分类器制定分发策略,将报文通过分发策略的分类算法获得的分类结果与网络协议处理层的网络协议栈实例进行匹配;
网络协议处理层为网络协议栈实例建立独立的资源池,所述资源池同网络协议栈实例所运行的处理器进行关联,采用多核操作处理接口处理报文;
应用接口层实现网络应用和网络协议处理层的网络协议栈之间的交互,实现将网络应用发送的报文被分流到网络协议处理层的网络协议栈实例进行处理。
2.根据权利要求1所述的用于提升万兆以太网性能的并行化处理框架***,其特征在于,还包括网络接口代理层;
所述网络接口代理层处于应用接口层和网络协议处理层之间,通过管道和消息机制与网络协议处理层的网络协议栈实例进行通信。
3.根据权利要求2所述的用于提升万兆以太网性能的并行化处理框架***,其特征在于,所述网络接口代理层内嵌报文策略分类器,实现Socket通信的托管。
4.根据权利要求1所述的用于提升万兆以太网性能的并行化处理框架***,其特征在于,所述报文策略分类器的分发策略是通过分类算法进行,将所述报文利用唯一标识信息进行分发策略定制。
5.根据权利要求4所述的用于提升万兆以太网性能的并行化处理框架***,其特征在于,所述分类算法是对唯一标识信息进行哈希运算,获得分类结果,将所述分类结果和网络协议栈实例进行匹配。
6.根据权利要求4所述的用于提升万兆以太网性能的并行化处理框架***,其特征在于,所述唯一标识信息包括源IP地址、目的IP地址、源端口、目的端口、协议类型,记为五元组唯一标识,所述五元组唯一标识能够唯一标识到特定的报文。
7.根据权利要求5所述的用于提升万兆以太网性能的并行化处理框架***,其特征在于,所述哈希运算包括如下步骤:
对源IP地址以8位分组,特定移位进行异或运算得到数字NUM1;
对目的IP地址以8位分组,特定移位进行异或运算得到数字NUM2;
对源端口以8位分组,特定移位进行异或运算得到数字NUM3;
对目的端口以8位分组,特定移位进行异或运算得到数字NUM4;
将NUM1、NUM2、NUM3、NUM4和协议类型进行异或运算得到数字NUM5;
将NUM5与网络协议处理层的并行协议栈数目减1进行取余运算得到数字NUM6;
若NUM6为0,则将NUM6加1,得到数字NUM7;
若NUM6不为0,则将NUM6作为数字NUM7;
NUM7即为网络协议处理层的网络协议栈实例编号。
8.根据权利要求1所述的用于提升万兆以太网性能的并行化处理框架,其特征在于,所述报文分发层能够利用CPU亲和性,在指定CPU的核上运行用户态网络协议栈,并对协议栈任务做亲和性绑定。
9.根据权利要求1所述的用于提升万兆以太网性能的并行化处理框架***,其特征在于,所述报文分发层支持多队列的网卡硬件、多网卡硬件以及单队列网卡的多核SMP***;
在多队列的网卡硬件、多网卡硬件环境中,通过锐化嵌入式实时操作***的中断管控接口实现网卡中断的并行处理;
在单队列网卡的多核SMP***环境中,将响应网卡中断完成报文分发的CPU核定义为调度核,运行网络协议栈实例的CPU核定义为业务核;
所述调度核实现报文分发,所述业务核实现网络协议处理层的具体网络层和传输层协议的并行处理。
10.一种用于提升万兆以太网性能的并行化处理方法,其特征在于,包括以下步骤:
报文分发步骤:处理报文收发,实现网卡中断级别的并行处理,被网卡驱动中断处理函数调用,将报文传输到所述报文策略分类器的缓冲区队列中,通过所述报文策略分类器的分发策略进行报文分发;
报文策略分类步骤:制定分发策略,将报文通过分发策略的分类算法获得的分类结果与网络协议处理层的网络协议栈实例进行匹配;
网络协议处理步骤:为网络协议栈实例建立独立的资源池,所述资源池同网络协议栈实例所运行的处理器进行关联,采用多核操作处理接口处理报文;
应用接口步骤:实现网络应用和网络协议处理的网络协议栈之间的交互,实现将网络应用发送的报文被分流到网络协议处理层的网络协议栈实例进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810961968.9A CN109379303A (zh) | 2018-08-22 | 2018-08-22 | 基于提升万兆以太网性能的并行化处理框架***和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810961968.9A CN109379303A (zh) | 2018-08-22 | 2018-08-22 | 基于提升万兆以太网性能的并行化处理框架***和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109379303A true CN109379303A (zh) | 2019-02-22 |
Family
ID=65403819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810961968.9A Pending CN109379303A (zh) | 2018-08-22 | 2018-08-22 | 基于提升万兆以太网性能的并行化处理框架***和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109379303A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729101A (zh) * | 2019-03-12 | 2019-05-07 | 深圳狗尾草智能科技有限公司 | 多层次低耦合的通信*** |
CN111371779A (zh) * | 2020-02-29 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种基于dpdk虚拟化管理***的防火墙及其实现方法 |
CN111600833A (zh) * | 2019-07-30 | 2020-08-28 | 新华三技术有限公司 | 网络操作***及报文转发方法 |
WO2020224300A1 (zh) * | 2019-05-06 | 2020-11-12 | 创新先进技术有限公司 | 基于用户态协议栈的报文分流方法、装置及*** |
US10904719B2 (en) | 2019-05-06 | 2021-01-26 | Advanced New Technologies Co., Ltd. | Message shunting method, device and system based on user mode protocol stack |
CN113098858A (zh) * | 2021-03-29 | 2021-07-09 | 上海辰锐信息科技公司 | 一种建链报文的无锁处理***及方法 |
CN113726611A (zh) * | 2021-09-01 | 2021-11-30 | 深圳市大洲智创科技有限公司 | 一种基于协议进行流量控制的方法 |
CN115001874A (zh) * | 2022-08-04 | 2022-09-02 | 成都卫士通信息产业股份有限公司 | 一种数据传输方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136570A1 (en) * | 2003-06-10 | 2006-06-22 | Pandya Ashish A | Runtime adaptable search processor |
CN103532955A (zh) * | 2013-10-18 | 2014-01-22 | 苏州斯凯迪网络科技有限公司 | 嵌入式多协议移动网络数据采集探针设备 |
CN108270813A (zh) * | 2016-12-30 | 2018-07-10 | 华为技术有限公司 | 一种异构多协议栈方法、装置及*** |
CN108268328A (zh) * | 2013-05-09 | 2018-07-10 | 华为技术有限公司 | 数据处理装置及数据处理方法 |
-
2018
- 2018-08-22 CN CN201810961968.9A patent/CN109379303A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136570A1 (en) * | 2003-06-10 | 2006-06-22 | Pandya Ashish A | Runtime adaptable search processor |
CN108268328A (zh) * | 2013-05-09 | 2018-07-10 | 华为技术有限公司 | 数据处理装置及数据处理方法 |
CN103532955A (zh) * | 2013-10-18 | 2014-01-22 | 苏州斯凯迪网络科技有限公司 | 嵌入式多协议移动网络数据采集探针设备 |
CN108270813A (zh) * | 2016-12-30 | 2018-07-10 | 华为技术有限公司 | 一种异构多协议栈方法、装置及*** |
Non-Patent Citations (1)
Title |
---|
别体伟等: "用户空间协议栈的并行化与性能优化", 《电子技术》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109729101A (zh) * | 2019-03-12 | 2019-05-07 | 深圳狗尾草智能科技有限公司 | 多层次低耦合的通信*** |
CN109729101B (zh) * | 2019-03-12 | 2021-08-06 | 苏州狗尾草智能科技有限公司 | 多层次低耦合的通信*** |
WO2020224300A1 (zh) * | 2019-05-06 | 2020-11-12 | 创新先进技术有限公司 | 基于用户态协议栈的报文分流方法、装置及*** |
US10904719B2 (en) | 2019-05-06 | 2021-01-26 | Advanced New Technologies Co., Ltd. | Message shunting method, device and system based on user mode protocol stack |
CN111600833A (zh) * | 2019-07-30 | 2020-08-28 | 新华三技术有限公司 | 网络操作***及报文转发方法 |
CN111600833B (zh) * | 2019-07-30 | 2022-08-26 | 新华三技术有限公司 | 网络操作***及报文转发方法 |
CN111371779A (zh) * | 2020-02-29 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种基于dpdk虚拟化管理***的防火墙及其实现方法 |
CN111371779B (zh) * | 2020-02-29 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种基于dpdk虚拟化管理***的防火墙及其实现方法 |
CN113098858A (zh) * | 2021-03-29 | 2021-07-09 | 上海辰锐信息科技公司 | 一种建链报文的无锁处理***及方法 |
CN113726611A (zh) * | 2021-09-01 | 2021-11-30 | 深圳市大洲智创科技有限公司 | 一种基于协议进行流量控制的方法 |
CN115001874A (zh) * | 2022-08-04 | 2022-09-02 | 成都卫士通信息产业股份有限公司 | 一种数据传输方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109379303A (zh) | 基于提升万兆以太网性能的并行化处理框架***和方法 | |
Meng et al. | Online deadline-aware task dispatching and scheduling in edge computing | |
Phothilimthana et al. | Floem: A programming system for {NIC-Accelerated} network applications | |
Cheng et al. | Using high-bandwidth networks efficiently for fast graph computation | |
US9509619B2 (en) | Distributed parallel computation with acceleration devices | |
CN104536937B (zh) | 基于cpu‑gpu异构集群的大数据一体机实现方法 | |
US8839267B2 (en) | Method and middleware for efficient messaging on clusters of multi-core processors | |
US9703595B2 (en) | Multi-core system with central transaction control | |
US11281506B2 (en) | Virtualised gateways | |
US11550639B2 (en) | Sync groupings | |
US20230127722A1 (en) | Programmable transport protocol architecture | |
US11327813B2 (en) | Sync group selection | |
CN110399221A (zh) | 数据处理方法、***及终端设备 | |
CN108696578A (zh) | 基于ZeroMQ的多机分布式计算的通信框架设计方法 | |
JP2009123201A (ja) | データを処理するためのサーバ‐プロセッサ・ハイブリッド・システムおよび方法 | |
US20220224605A1 (en) | Simulating network flow control | |
Qi et al. | LIFL: A Lightweight, Event-driven Serverless Platform for Federated Learning | |
Dhanraj | Enhancement of LiMIC-Based Collectives for Multi-core Clusters | |
Paul et al. | A hybrid adaptive strategy for task allocation and scheduling for multi-applications on NoC-based multicore systems with resource sharing | |
Büchner | Applying the stream-processing paradigm to ultra high-speed communication systems | |
US20230359582A1 (en) | In-network collective operations | |
US20230129511A1 (en) | Methods, systems, articles of manufacture and apparatus to improve distributed machine learning efficiency | |
Pickartz et al. | Swift: A transparent and flexible communication layer for pcie-coupled accelerators and (co-) processors | |
Ren et al. | Managing flow transfers in enterprise datacenter networks with flow chasing | |
US20220229677A1 (en) | Performance modeling of graph processing computing architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190222 |
|
RJ01 | Rejection of invention patent application after publication |