发明名称 一种基于Linux操作系统实现零拷贝的装置和方法
摘要 本发明提出了一种基于Linux操作系统实现零拷贝的装置,其中,包括:一零拷贝初始化模块,用于在内核中分配一段内核空间,将内核空间分配成多个数据块并进行标识;一网卡驱动模块,用于将接收到数据包发至内核空间的数据块中存放,在数据包的skb中记录数据块的标识,并将skb发送至协议栈;一协议栈,用于从网卡驱动模块接收并分析数据包的skb,获取数据块的标识;一标识缓存区,与协议栈连接并直接映射到用户进程模块,用于存储协议栈获取的数据块的标识;一用户进程模块,用于从直接映射的标识缓存区获取标识,根据标识从内核空间中对应的数据块中获取数据包,对数据包进行分析处理。此外,还提出了一种使用上述装置实现零拷贝的方法。
申请公布号 CN101135980A 申请公布日期 2008.03.05
申请号 CN200610112683.5 申请日期 2006.08.29
申请人 飞塔信息科技(北京)有限公司 发明人 徐鄗
分类号 G06F9/46(2006.01);H04L29/06(2006.01) 主分类号 G06F9/46(2006.01)
代理机构 北京律诚同业知识产权代理有限公司 代理人 梁挥;徐金国
主权项 1.一种基于Linux操作系统实现零拷贝的装置,其特征在于,包括:一零拷贝初始化模块,用于当零拷贝初始化时,在内核中分配一段内核空间,将所述内核空间分配成多个数据块,并对每个数据块进行标识;一网卡驱动模块,用于将接收到数据包发至所述内核空间的数据块中存放,在所述数据包的skb中记录所述数据块的标识,并将所述skb发辀至协议栈;一协议栈,与所述网卡驱动模块连接,用于从网卡驱动模块接收并分析所述数据包的skb,获取所述数据块的标识;一标识缓存区,与所述协议栈连接并直接映射到用户进程模块,用于存储所述协议栈获取的数据块的标识;一用户进程模块,用于从直接映射的标识缓存区获取标识,根据所述标识从所述内核空间中对应的数据块中获取数据包,对所述数据包进行分析处理。
地址 100085北京市海淀区上地信息路7号数字传媒大厦507室