[发明专利]用户态到内核态的数据报文处理方法有效

专利信息
申请号: 201310213794.5 申请日: 2013-05-31
公开(公告)号: CN103312601B 公开(公告)日: 2017-04-19
发明(设计)人: 高福亮 申请(专利权)人: 汉柏科技有限公司
主分类号: H04L12/70 分类号: H04L12/70
代理公司: 北京路浩知识产权代理有限公司11002 代理人: 王莹
地址: 300384 天津市华*** 国省代码: 天津;12
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 用户 内核 数据 报文 处理 方法
【说明书】:

技术领域

发明涉及报文处理技术领域,特别涉及一种用户态到内核态的数据报文处理方法。

背景技术

主机在收发和处理网络报文时,通常采用两种方式:

一种是由内核加载网卡驱动,进行报文收发,通过数据拷贝送到用户态进程进行业务处理;

另一种是由用户态加载网卡驱动,进行报文收发,对于需要转发到内核处理的主机报文,通过socket创建特殊套接字或通过proc文件系统创建文件实现与内核的数据交互。

第一种方式的缺点在于:内核加载网卡驱动进行报文收发,在万兆网卡大流量的冲击下会引发大量中断,消耗一定的CPU性能(特别是X86体系架构),同时Linux操作系统的内核态到用户态的数据拷贝也会造成系统性能的损耗;

第二种方式的缺点在于:用户态加载网卡驱动进行报文收发,虽然降低了性能损耗,但是针对一些主机报文业务处理(例如Linux内核的PPPoE、DHCP等)需要感知实际物理网络及网络接口状态,而内核没有网络接口可感知操作,此时就会出现问题,同时还涉及用户态报文PKB与内核SKB格式转换问题。

发明内容

(一)所要解决的技术问题

本发明的目的在于提供一种用户态到内核态的数据报文处理方法,以降低网卡驱动加载造成的性能损耗,同时使内核态能够感知实际物理网络及网络接口状态。

(二)技术方案

为了解决上述技术问题,本发明提出了一种用户态到内核态的数据报文处理方法,所述方法包括以下步骤:

S1、通过TUN/TAP驱动的方式在内核态创建虚拟网卡;

S2、在用户态进行网卡驱动加载,并将用户态的网络接口信息发送给所述虚拟网卡;

S3、所述虚拟网卡根据用户态的网络接口信息创建虚拟接口,所述虚拟接口的数量及状态与用户态的网络接口保持一致;

S4、当接收到需要内核态处理的报文时,用户态的网络接口将所述需要内核态处理的报文发送给所述虚拟网卡,所述虚拟网卡将所述需要内核态处理的报文发送给内核态进行处理。

可选的,步骤S4之后还包括步骤:

S5、内核态将处理后得到的待发送报文发送给所述虚拟网卡,所述虚拟网卡将所述待发送报文发送给用户态的网络接口进行发送。

可选的,步骤S3进一步包括:在所述虚拟接口中挂载所述虚拟网卡的报文处理函数。

可选的,步骤S4具体包括:

当接收到需要内核态处理的报文时,用户态的网络接口将所述需要内核态处理的报文发送给所述虚拟网卡,所述虚拟网卡查找出所述需要内核态处理的报文对应的虚拟接口,并调用该虚拟接口中挂载的所述虚拟网卡的报文处理函数,所述虚拟网卡的报文处理函数将所述需要内核态处理的报文发送给内核态进行处理。

可选的,步骤S4之前还包括步骤:

S0、在用户态创建报文链表A和报文链表B,其中,报文链表A用于对所述需要内核态处理的报文进行缓存,报文链表B用于对所述待发送报文进行缓存。

可选的,步骤S4具体包括:

S401、当接收到需要内核态处理的报文时,用户态的网络接口将所述需要内核态处理的报文放入报文链表A;

S402、所述虚拟网卡从报文链表A中提取所述需要内核态处理的报文并将其发送给内核态进行处理。

可选的,步骤S5具体包括:

S501、内核态将处理后得到的待发送报文发送给所述虚拟网卡,所述虚拟网卡将所述待发送报文放入报文链表B;

S502、用户态的网络接口从报文链表B中提取所述待发送报文并将其进行发送。

可选的,步骤S402中,所述虚拟网卡通过write函数从报文链表A中提取所述需要内核态处理的报文。

可选的,步骤S501中,所述虚拟网卡通过read函数将所述待发送报文放入报文链表B。

可选的,步骤S1具体包括:

调用open函数以设备文件的形式在内核态创建虚拟网卡,并为所述虚拟网卡配置默认IP和路由。

(三)有益效果

与现有技术相比,本发明的技术方案具有如下优点:

本发明的技术方案实现了网卡驱动加载及收发报文在用户态进行,消除了内核态网卡驱动中断及数据拷贝造成的性能损耗;同时,注册维护的一套网络接口和一套虚拟接口,可分别满足用户态、内核态对物理网络及网络接口状态的感知需求,且无需考虑用户态报文PKB与内核态SKB格式转换的问题。

附图说明

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于汉柏科技有限公司,未经汉柏科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310213794.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top