下载此文档

多核CPU下基于PFRING和设备轮询机制的高性能包捕获技术研究.pptx


文档分类:通信/电子 | 页数:约52页 举报非法文档有奖
1/52
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/52 下载此文档
文档列表 文档介绍
多核CPU下基于PF_RING和设备轮询机制的高性能包捕获技术研究中心:北京分公司部门:研发部姓名:齐战胜1内容提要自我介绍技术背景理论知识解决方案参考资料21自我介绍齐战胜,研发部,北京分公司,软件研发工程师主要做协议分析、还原。参与的项目有抽查工具、NF-7800、NF-9300、NF-9600等。为了解决NF-7800的千兆抓包问题,开始研究Linux下高性能抓包的解决方法。32技术背景被动数据捕获技术在网络安全领域有着极其丰富的应用。如IDS(入侵检测系统)、防火墙以及一些部署在网络出口的互联网内容分析系统等。随着网络带宽的增加,网络传输速率的提高,传统的数据包捕获技术越来越不能满足要求。本文从Linux/Unix平台下的Libpcap网络数据包捕获函数库入手,研究Linux/Unix平台下高性能的数据包捕获解决方案。43理论知识Libpcap简介 1)Libpcap简介 2)Libpcap工作机制 3)Libpcap抓包性能分析NAPI技术简介 1)NAPI技术简介 2)NAPI工作机制 3) Libpcap是Unix/Linux平台下的网络数据包捕获的函数库。它是一个独立于系统的用户层包捕获API接口,为底层网络监听提供了一个可移植的框架。 应用:Sniffer、Wireshark、Snort、Tcpdump等。 1)可从以太网、虚拟接口等一个或多个网络接口捕获数据包; 2)平台无关性; 3)具有基于BPF的数据包过滤特性。完善了系统的数据包过滤体系。 Libpcap主要由两部分组成:workTap)和数据过滤器(PacketFilter)。 网络分接头从网络设备驱动程序中收集数据拷贝,数据过滤器决定是否接受该数据包。 libpcap的包捕获机制就是在数据链路层加一个旁路处理。当一个数据包到达网络接口时,libpcap首先利用已经创建的Socket从链路层驱动程序中获得该数据包的拷贝,再通过Tap函数将数据包发给BPF过滤器。BPF过滤器根据用户已经定义好的过滤规则对数据包进行逐一匹配,匹配成功则放入内核缓冲区(一次拷贝),并传递给用户缓冲区(又一次拷贝),匹配失败则直接丢弃。如果没有设置过滤规则,所有数据包都将放入内核缓冲区,并传递给用户层缓冲区。 /*第一步:查找可以捕获数据包的设备*/ device=pcap_lookupdev(errbuf);  /*第二步:创建捕获句柄,准备进行捕获*/ p=pcap_open_live(device,8000,1,500,errbuf);  /*第三步:如果用户设置了过滤条件,则编译和安装过滤代码*/ pile(p,&fcode,filter_string,mask); pcap_setfilter(p,&fcode); /*第四步:进入(死)循环,反复捕获数据包*/ for(;;) { while((ptr=(char*)(pcap_next(p,&hdr)))==NULL);/*第五步:对捕获的数据进行类型转换,转化成以太数据包类型*/ eth=(_hdr*)ptr;  /*第六步:对以太头部进行分析,判断所包含的数据包类型,做进一步的处理*/ if(eth->ether_type==ntohs(ETHERTYPE_IP))………… if(eth->ether_type==ntohs(ETHERTYPE_ARP)) ………… } /*最后一步:关闭捕获句柄,一个简单技巧是在程序初始化时增加信号处理函数, 以便在程序退出前执行本条代码*/ pcap_close(p);10

多核CPU下基于PFRING和设备轮询机制的高性能包捕获技术研究 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数52
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198613
  • 文件大小1011 KB
  • 时间2019-12-06