首页 / 专利库 / 电脑零配件 / 微码 / 一种海量数据高效传输方法

一种海量数据高效传输方法

阅读:670发布:2020-05-08

专利汇可以提供一种海量数据高效传输方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种海量数据高效传输方法,将 内核 网卡收包环形队列映射到用户态,用户态直接操作环形队列收包,规避收包时用户态到内核态的切换,减少调度开销;内核支持基于网卡的多套口收包,LPP驻留收包线程,在APP内驻留LPP收包线程,直接接收报文,避免报文经过LPP、Socket传递,减少报文传输环节以及消息拷贝;报文直接投递到APP,减少LPP环节,省去较多的LPP冗余表查询。本方法显著提高了路由器平台协议栈报文收发能 力 ,提高了路由器平台的海量数据传输能力与性能。,下面是一种海量数据高效传输方法专利的具体信息内容。

1.一种海量数据高效传输方法,其特征在于,建立高速报文传输通道,数据经过NP直接通过内部以太网交互通道投送到APP的PM收发包线程;
1)高速报文通道的建立方式是数据通过NP后,使用TCP/IP协议,通过socket通道,进入内部以太网交互通道,然后直接进入到APP的PM收发包线程,这样数据通过最短路径直接到达应用层,供应用层软件使用;
2)在报文转发过程中,微码根据报文分发表决定协议报文路径,也就是微码根据报文分发表选择报文是走Socket通道还是高速报文通道,通过这种方式实现报文分发兼容原报文分发逻辑,具体选择路径方式为:报文在传送前,在微码中添加报文路径标志字节,在报文分发表中添加对应的报文路径标志字节对应的报文路径,微码使用这个标志字节,结合报文分发表,决定报文数据路径;
3)微码上报报文到网口,应用进程(APP)使用套口在网口上收包;
对不同进程或不同协议,微码对上送报文封装不同的estype类型,不同进程根据不同的estype类型创建不同的套口实现分布式收包;同时也使用不同estype类型的报文相互隔离来实现不同进程间的分布式网口收包;
4)修改内核网口收包驱动,将收包的环形buffer映射到用户态,在用户态启动收包线程直接读取收包缓存进行收包。
2.如权利要求1所述的海量数据高效传输方法,其特征在于,微码上报报文到网口,应用进程(APP)使用套口在网口上收包;
对不同进程或不同协议,微码对上送报文封装不同的estype类型,不同进程根据不同的estype类型创建不同的套口实现分布式收包;同时也使用不同estype类型的报文相互隔离来实现不同进程间的分布式网口收包,具体实现方式为:微码在上送报文头中添加一个字节,这个字节的值代表不同的estype类型,APP通过套口收到报文后解析获得这个estype,然后根据estype值创建接收线程,把包含相同estype值的报文数据包送到同一个收包线程中供该线程处理来实现报文相互隔离的处理。
3.如权利要求1所述的海量数据高效传输方法,其特征在于,修改内核网口收包驱动,将收包的环形buffer映射到用户态,在用户态启动收包线程直接读取收包缓存进行收包,具体实现方式为:在系统内存中创建一张收包环形buffer地址指针与用户态标志的映射表,用户态启动收包线程时,根据用户态标志从该映射表中读取环形buffer的地址,然后直接从该地址获取数据来实现数据包的读取。

说明书全文

一种海量数据高效传输方法

技术领域

[0001] 本发明涉及一种路由器平台的海量数据高效传输方法,属于计算机与通信技术领域。

背景技术

[0002] 在路由器平台中,一般协议栈的标准socket收发包能在7000pps左右,而在海量数据传输过程中,需要协议栈收发包能力远远大于7000pps。
[0003] 现有技术中协议栈的标准socket收发包架构如图1所示,收发包路径是图1中的虚线,收发包性能消耗在LPP、Socket内以及消息进程传递上。通过分析,当前协议栈的标准socket收发包架构各个阶段性能损失如表一。
[0004] 表一性能损失
[0005]

发明内容

[0006] 发明目的:针对现有技术中存在的问题,本发明提供一种海量数据高效传输方法,从如下3个方面改进来提高报文传输能力:
[0007] 1)减少调度开销。采用将内核网卡收包环形队列映射到用户态,用户态直接操作环形队列收包,规避收包时用户态到内核态的切换,减少调度开销。
[0008] 2)减少报文在较多线程间传递与报文拷贝。内核支持基于网卡的多套口收包,LPP驻留收包线程,在APP内驻留LPP收包线程,直接接收报文,避免报文经过LPP、Socket传递,减少报文传输环节以及消息拷贝。
[0009] 3)减少LPP冗余查表。报文直接投递到APP,减少LPP环节,省去较多的LPP冗余表查询。
[0010] 技术方案:一种海量数据高效传输方法,建立高速报文传输通道,数据经过NP直接通过内部以太网交互通道投送到APP的PM收发包线程。
[0011] 1)高速报文通道的建立方式是数据通过NP后,使用TCP/IP协议,通过socket通道,进入内部以太网交互通道,然后直接进入到APP的PM收发包线程,这样数据通过最短路径直接到达应用层,供应用层软件使用。
[0012] 2)在报文转发过程中,微码根据报文分发表决定协议报文路径,也就是微码根据报文分发表选择报文是走Socket通道还是高速报文通道,通过这种方式实现报文分发兼容原报文分发逻辑。
[0013] 3)微码上报报文到网口,应用进程(APP)使用套口在网口上收包。对不同进程或不同协议,微码对上送报文封装不同的estype类型,不同进程根据不同的estype类型创建不同的套口实现分布式收包;同时也使用不同estype类型的报文相互隔离来实现不同进程间的分布式网口收包。
[0014] 4)修改内核网口收包驱动,将收包的环形buffer映射到用户态,在用户态启动收包线程直接读取收包缓存进行收包。
[0015] 微码根据报文分发表选择报文是走Socket通道还是高速报文通道,其选择路径方式为:报文在传送前,在微码中添加报文路径标志字节,在报文分发表中添加对应的报文路径标志字节对应的报文路径,微码使用这个标志字节,结合报文分发表,决定报文数据路径,通过这种方式实现报文分发兼容原报文分发逻辑。
[0016] 微码上报报文到网口,应用进程(APP)使用套口在网口上收包。对不同进程或不同协议,微码对上送报文封装不同的estype类型,不同进程根据不同的estype类型创建不同的套口实现分布式收包。同时也使用不同estype类型的报文相互隔离来实现不同进程间的分布式网口收包,具体实现方式为:微码在上送报文头中添加一个字节,这个字节的值代表不同的estype类型,APP通过套口收到报文后解析获得这个estype,然后根据estype值创建接收线程,把包含相同estype值的报文数据包送到同一个收包线程中供该线程处理来实现报文相互隔离的处理。
[0017] 修改内核网口收包驱动,将收包的环形buffer映射到用户态,在用户态启动收包线程直接读取收包缓存进行收包,具体实现方式为:在系统内存中创建一张收包环形buffer地址(指针)与用户态标志的映射表,用户态启动收包线程时,根据用户态标志从该映射表中读取环形buffer的地址,然后直接从该地址获取数据来实现数据包的读取。附图说明
[0018] 图1是标准socket收发包架构;
[0019] 图2是高速报文通道收发包架构。

具体实施方式

[0020] 下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0021] 一种海量数据高效传输方法,建立如图2中点线标注的高速报文传输通道,数据经过NP直接通过内部以太网交互通道投送到APP的PM收发包线程。
[0022] 1)高速报文通道的建立方式是数据通过NP后,使用TCP/IP协议,通过socket通道,进入内部以太网交互通道,然后直接进入到APP的PM收发包线程,这样数据通过最短路径直接到达应用层,供应用层软件使用。
[0023] 2)在报文转发过程中,微码根据报文分发表决定协议报文路径,也就是微码根据报文分发表选择报文是走Socket通道还是高速报文通道,其选择路径方式为:报文在传送前,在微码中添加报文路径标志字节,在报文分发表中添加对应的报文路径标志字节对应的报文路径,微码使用这个标志字节,结合报文分发表,决定报文数据路径,通过这种方式实现报文分发兼容原报文分发逻辑。
[0024] 3)微码上报报文到网口,应用进程(APP)使用套口在网口上收包。对不同进程或不同协议,微码对上送报文封装不同的estype类型,不同进程根据不同的estype类型创建不同的套口实现分布式收包。同时也使用不同estype类型的报文相互隔离来实现不同进程间的分布式网口收包,具体实现方式为:微码在上送报文头中添加一个字节,这个字节的值代表不同的estype类型,APP通过套口收到报文后解析获得这个estype,然后根据estype值创建接收线程,把包含相同estype值的报文数据包送到同一个收包线程中供该线程处理来实现报文相互隔离的处理。
[0025] 4)修改内核网口收包驱动,将收包的环形buffer映射到用户态,在用户态启动收包线程直接读取收包缓存进行收包,具体实现方式为:在系统内存中创建一张收包环形buffer地址(指针)与用户态标志的映射表,用户态启动收包线程时,根据用户态标志从该映射表中读取环形buffer的地址,然后直接从该地址获取数据来实现数据包的读取。
[0026] 采用上述技术方案,使用本发明的具体实现步骤中的方法后,通过实际测试与验证结果表明,本发明能够使路由器平台的协议栈收发能力达到100000pps,远远大于当前协议栈的标准Socket收发包能力的7000pps,因此本发明显著提高了路由器平台协议栈报文收发能力,提高了路由器平台的海量数据传输能力与传输性能。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈