[发明专利]基于零拷贝和Linux内核的软件流控方法及其系统有效
申请号: | 201410603601.1 | 申请日: | 2014-10-27 |
公开(公告)号: | CN104320351B | 公开(公告)日: | 2019-04-05 |
发明(设计)人: | 刘永强;吕恩泳;沈智杰;景晓军;唐新民 | 申请(专利权)人: | 任子行网络技术股份有限公司 |
主分类号: | H04L12/801 | 分类号: | H04L12/801;H04L12/863 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及软件流控技术领域,尤其涉及一种基于零拷贝和Linux内核的软件流控方法及其系统。方法包括:用零拷贝方式获取网卡上的数据包;判断数据包是否需要流控;如果数据包需要流控,则将数据包打上流控队列号标记;将打上流控队列号标记的数据包发送到Linux内核的虚拟网卡上;将接收到的打上流控队列号标记的数据包转换为内核打上标记后的数据包;对该数据包进行流量控制,以产生流控后的数据包。本发明提供的基于零拷贝和Linux内核的软件流控方法及其系统,结合了零拷贝和Linux内核TC流控各自的优点,采用虚拟网卡的方式连接内核和零拷贝机制,解决了转发性能和流控之间的矛盾,实现了大流量下高效的流量控制。 | ||
搜索关键词: | 基于 拷贝 linux 内核 软件 方法 及其 系统 | ||
【主权项】:
1.一种基于零拷贝和Linux内核的软件流控方法,其特征在于,包括以下步骤:用零拷贝方式获取网卡上的数据包的步骤;判断所述数据包是否需要流控的步骤;如果所述数据包需要流控,则将所述数据包打上流控队列号标记的步骤;通过虚拟网卡驱动提供的接口,将打上流控队列号标记的数据包发送到Linux内核的虚拟网卡上的步骤;将接收到的所述打上流控队列号标记的数据包转换为内核打上标记后的数据包的步骤;以及利用linux内核TC模块对所述内核打上标记后的数据包进行流量控制,以产生流控后的数据包的步骤,其中,所述将接收到的所述打上流控队列号标记的数据包转换为内核打上标记后的数据包的步骤进一步包括:将所述打上流控队列号标记的数据包中的网络数据包转换为linux内核存储的sk_buff格式数据包的步骤;以及根据所述打上流控队列号标记的数据包的标记值,将所述sk_buff格式数据包打上标记的步骤。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于任子行网络技术股份有限公司,未经任子行网络技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410603601.1/,转载请声明来源钻瓜专利网。