当前位置: 首页 > 专利查询>河海大学专利>正文

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

技术编号:16042624 阅读:23 留言:0更新日期:2017-08-20 01:01
本发明专利技术公开了一种海量数据高效传输方法,将内核网卡收包环形队列映射到用户态,用户态直接操作环形队列收包,规避收包时用户态到内核态的切换,减少调度开销;内核支持基于网卡的多套口收包,LPP驻留收包线程,在APP内驻留LPP收包线程,直接接收报文,避免报文经过LPP、Socket传递,减少报文传输环节以及消息拷贝;报文直接投递到APP,减少LPP环节,省去较多的LPP冗余表查询。本方法显著提高了路由器平台协议栈报文收发能力,提高了路由器平台的海量数据传输能力与性能。

【技术实现步骤摘要】
一种海量数据高效传输方法
本专利技术涉及一种路由器平台的海量数据高效传输方法,属于计算机与通信

技术介绍
在路由器平台中,一般协议栈的标准socket收发包能力在7000pps左右,而在海量数据传输过程中,需要协议栈收发包能力远远大于7000pps。现有技术中协议栈的标准socket收发包架构如图1所示,收发包路径是图1中的虚线,收发包性能消耗在LPP、Socket内以及消息进程传递上。通过分析,当前协议栈的标准socket收发包架构各个阶段性能损失如表一。表一性能损失
技术实现思路
专利技术目的:针对现有技术中存在的问题,本专利技术提供一种海量数据高效传输方法,从如下3个方面改进来提高报文传输能力:1)减少调度开销。采用将内核网卡收包环形队列映射到用户态,用户态直接操作环形队列收包,规避收包时用户态到内核态的切换,减少调度开销。2)减少报文在较多线程间传递与报文拷贝。内核支持基于网卡的多套口收包,LPP驻留收包线程,在APP内驻留LPP收包线程,直接接收报文,避免报文经过LPP、Socket传递,减少报文传输环节以及消息拷贝。3)减少LPP冗余查表。报文直接投递到APP,减少LPP环节,省去较多的LPP冗余表查询。技术方案:一种海量数据高效传输方法,建立高速报文传输通道,数据经过NP直接通过内部以太网交互通道投送到APP的PM收发包线程。1)高速报文通道的建立方式是数据通过NP后,使用TCP/IP协议,通过socket通道,进入内部以太网交互通道,然后直接进入到APP的PM收发包线程,这样数据通过最短路径直接到达应用层,供应用层软件使用。2)在报文转发过程中,微码根据报文分发表决定协议报文路径,也就是微码根据报文分发表选择报文是走Socket通道还是高速报文通道,通过这种方式实现报文分发兼容原报文分发逻辑。3)微码上报报文到网口,应用进程(APP)使用套口在网口上收包。对不同进程或不同协议,微码对上送报文封装不同的estype类型,不同进程根据不同的estype类型创建不同的套口实现分布式收包;同时也使用不同estype类型的报文相互隔离来实现不同进程间的分布式网口收包。4)修改内核网口收包驱动,将收包的环形buffer映射到用户态,在用户态启动收包线程直接读取收包缓存进行收包。微码根据报文分发表选择报文是走Socket通道还是高速报文通道,其选择路径方式为:报文在传送前,在微码中添加报文路径标志字节,在报文分发表中添加对应的报文路径标志字节对应的报文路径,微码使用这个标志字节,结合报文分发表,决定报文数据路径,通过这种方式实现报文分发兼容原报文分发逻辑。微码上报报文到网口,应用进程(APP)使用套口在网口上收包。对不同进程或不同协议,微码对上送报文封装不同的estype类型,不同进程根据不同的estype类型创建不同的套口实现分布式收包。同时也使用不同estype类型的报文相互隔离来实现不同进程间的分布式网口收包,具体实现方式为:微码在上送报文头中添加一个字节,这个字节的值代表不同的estype类型,APP通过套口收到报文后解析获得这个estype,然后根据estype值创建接收线程,把包含相同estype值的报文数据包送到同一个收包线程中供该线程处理来实现报文相互隔离的处理。修改内核网口收包驱动,将收包的环形buffer映射到用户态,在用户态启动收包线程直接读取收包缓存进行收包,具体实现方式为:在系统内存中创建一张收包环形buffer地址(指针)与用户态标志的映射表,用户态启动收包线程时,根据用户态标志从该映射表中读取环形buffer的地址,然后直接从该地址获取数据来实现数据包的读取。附图说明图1是标准socket收发包架构;图2是高速报文通道收发包架构。具体实施方式下面结合具体实施例,进一步阐明本专利技术,应理解这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的各种等价形式的修改均落于本申请所附权利要求所限定的范围。一种海量数据高效传输方法,建立如图2中点线标注的高速报文传输通道,数据经过NP直接通过内部以太网交互通道投送到APP的PM收发包线程。1)高速报文通道的建立方式是数据通过NP后,使用TCP/IP协议,通过socket通道,进入内部以太网交互通道,然后直接进入到APP的PM收发包线程,这样数据通过最短路径直接到达应用层,供应用层软件使用。2)在报文转发过程中,微码根据报文分发表决定协议报文路径,也就是微码根据报文分发表选择报文是走Socket通道还是高速报文通道,其选择路径方式为:报文在传送前,在微码中添加报文路径标志字节,在报文分发表中添加对应的报文路径标志字节对应的报文路径,微码使用这个标志字节,结合报文分发表,决定报文数据路径,通过这种方式实现报文分发兼容原报文分发逻辑。3)微码上报报文到网口,应用进程(APP)使用套口在网口上收包。对不同进程或不同协议,微码对上送报文封装不同的estype类型,不同进程根据不同的estype类型创建不同的套口实现分布式收包。同时也使用不同estype类型的报文相互隔离来实现不同进程间的分布式网口收包,具体实现方式为:微码在上送报文头中添加一个字节,这个字节的值代表不同的estype类型,APP通过套口收到报文后解析获得这个estype,然后根据estype值创建接收线程,把包含相同estype值的报文数据包送到同一个收包线程中供该线程处理来实现报文相互隔离的处理。4)修改内核网口收包驱动,将收包的环形buffer映射到用户态,在用户态启动收包线程直接读取收包缓存进行收包,具体实现方式为:在系统内存中创建一张收包环形buffer地址(指针)与用户态标志的映射表,用户态启动收包线程时,根据用户态标志从该映射表中读取环形buffer的地址,然后直接从该地址获取数据来实现数据包的读取。采用上述技术方案,使用本专利技术的具体实现步骤中的方法后,通过实际测试与验证结果表明,本专利技术能够使路由器平台的协议栈收发能力达到100000pps,远远大于当前协议栈的标准Socket收发包能力的7000pps,因此本专利技术显著提高了路由器平台协议栈报文收发能力,提高了路由器平台的海量数据传输能力与传输性能。本文档来自技高网...
一种海量数据高效传输方法

【技术保护点】
一种海量数据高效传输方法,其特征在于,建立高速报文传输通道,数据经过NP直接通过内部以太网交互通道投送到APP的PM收发包线程;1)高速报文通道的建立方式是数据通过NP后,使用TCP/IP协议,通过socket通道,进入内部以太网交互通道,然后直接进入到APP的PM收发包线程,这样数据通过最短路径直接到达应用层,供应用层软件使用;2)在报文转发过程中,微码根据报文分发表决定协议报文路径,也就是微码根据报文分发表选择报文是走Socket通道还是高速报文通道,通过这种方式实现报文分发兼容原报文分发逻辑;3)微码上报报文到网口,应用进程(APP)使用套口在网口上收包;对不同进程或不同协议,微码对上送报文封装不同的estype类型,不同进程根据不同的estype类型创建不同的套口实现分布式收包;同时也使用不同estype类型的报文相互隔离来实现不同进程间的分布式网口收包;4)修改内核网口收包驱动,将收包的环形buffer映射到用户态,在用户态启动收包线程直接读取收包缓存进行收包。

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

【专利技术属性】
技术研发人员:陈哲王吉星王慧斌石爱业李臣明彭建华徐立中
申请(专利权)人:河海大学水利部南京水利水文自动化研究所
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1