发明名称 |
一种基于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室 |