以太网数据包捕获与转发技术.pdf

上传人:yyf 文档编号:5035059 上传时间:2020-01-29 格式:PDF 页数:5 大小:398.76KB
返回 下载 相关 举报
以太网数据包捕获与转发技术.pdf_第1页
第1页 / 共5页
以太网数据包捕获与转发技术.pdf_第2页
第2页 / 共5页
以太网数据包捕获与转发技术.pdf_第3页
第3页 / 共5页
以太网数据包捕获与转发技术.pdf_第4页
第4页 / 共5页
以太网数据包捕获与转发技术.pdf_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《以太网数据包捕获与转发技术.pdf》由会员分享,可在线阅读,更多相关《以太网数据包捕获与转发技术.pdf(5页珍藏版)》请在三一文库上搜索。

1、软件天地 文章编号:1 0 0 8 0 5 7 0 ( 2 0 0 6 ) 1 2 1 0 2 7 9 以太网数据包捕获与转发技术 T e c h n o l o g i e sf o rc a p t u r ep a c k e t sa n df o r w a r d i n gi nE t h e r n e t ( 1 成都信息工程学院;2 江西工业工程职业技术学院) 盛志伟1刘仕筠1 李群2 S H E N GZ H I W E lL I US H I J U NL IQ U N 摘要:数据包捕获技术在网络安全领域中应用十分广泛,网络入侵检测系统、协议分析软件、防火墙等都需要捕获

2、数据包。 本文研究了l i n u x 和w i n d o w s 环境下的数据包捕获技术,给出了几种数据包捕获方法,并提出了使用S O C I ( - P A C K E T 和原始套 接字转发数据包。其中。还给出一个在w i n d o w s 下使用w i n p c a p 和J p e a p 捕获数据包的编程方法。 关健词:包捕获;l i b p c a p ;w i n p c a p ;J p c a p ;S O C K _ P A C K E T 中图分类号:T P 3 9 3 0 8文献标识码:A A b s t r a c t :T h et e c h n o l

3、o g i e sf o rc a p t u r i n gd a t ap a c k e ti nE t h e r n e ta r ee x t e n s i v e l yu s e di nn e t w o r k ss e c u r i t ya r e a ,s u c ha so ni n t r u s i o n d e t e c t i o ns y s t e m ( I D S ) ,p r o t o c o la n a l y s i ss o f t w a r e ,f i r e w a l la n dS Oo n T h i sp a p

4、e rm a i n l yr e s e a r c h e do nt h et e c h n o l o g i e si nL i n u xa n d W i n d o w s ,p r o v i d i n gs o m em e t h o d s o nc a p t u r i n gp a c k e t s ,g i v i n gt h ew a y st of o r w a r d p a c k e tb yu s i n gr a ws o c k e ta n dS O C K _ P A C K E T M e a n w h i l e ,w ep

5、r o v i d e dam e t h o do fp r o g r a m m i n gw i t hW i n p c a pa n dJ p c a p K e yw o r d s :C a p t u r ep a c k e t , ! i b p c a p ,w i n p c a p , J p c a p ,S O C K _ P A C K E T 1 引言 数据包捕获是指捕获数据链路层所收到的数据 包,它对我们起到了监视网络的重要作用,甚至可以 使我们像使用T C P d u m p 一样来监视自已的网络,同 时,它也为黑客窃听网络通讯内容提供了一种方法。 目前

6、许多网络安全产品,如网络入侵检测系统,都需 要使用数据包捕获技术来收集信息源,对于网关程 序,更需要将数据包发送出去,其中还涉及到地址和 端口的转换。所以,本文研究了在l i n u x 和w i n d o w s 下 的数据包捕获技术及l i n u x 下的数据包转发技术。 2 以太网工作方式 以太网帧是一组数字脉冲,它们在传输介质上进 行传输。从而实现信息的传递。以太网帧格式符合 I E E E 8 0 2 3 标准帧中包含目的地址和源地址,目的地 址最高位为0 是普通地址,为1 时是组地址。当一个 帧送到组地址时,组内的所有站点都会收到该帧。如 果将它送到一个普通地址,一般情况下,只

7、有一个站 点收到这个帧,但是,以太网是以广播方式发送帧的, 也即这个帧会传播到其所在网段内的所有站点,只不 过该站点不会接收目的地址不为本机地址的帧。为了 捕获网段内的所有帧( 以后称数据包) ,可以设置以太 网卡的工作方式,以太网卡通常有正常模式n o r m a l m o d e ) 和混杂模式p r o m i s c u o u sm o d e ) 两种工作模式。在 正常模式下,网卡每接收到一个到达的数据包,就会 检查该数据包的目的地址,如果是本机地址和广播地 盛志伟:讲师硕士 址,则将接收数据包放人缓冲区,其他目的地址的数据 包则直接丢掉。因此,正常模式下主机仅处理以本机 为目的

8、的数据包,网卡如果工作在混杂模式,则可以 接收本网段内传输的所有数据包。如果要进行数据包 捕获,必须利用网卡的混杂模式,获得经过本网段的 所有数据信息。 3 几种捕获技术介绍 3 1B S D 分组过滤器( B P F ) 要捕获数据包,必须使用数据链路访问技术,许 多源自B e r k e l e y 的实现使用B P F 作为数据链路层访 问手段,在支持B P F 的系统上,每个数据链路驱动程 序就在收到一个分组之后或发送一个分组之前调用 B P F 。它的工作方式如图1 所示。 进程 内核 图1B F P 截获分组的过程 从数据链路层收到的一个数据包后,它将向上层 协议传递,根据I P

9、协议的版本分发给不同的协议栈, 每向上传递一层就剥离一层头部。直到传递给应用程 序。将网卡设为混杂模式后,数据链路层接收本网络 段内的所有帧。它将收到的分组和发出的分组拷贝一 份送至B P F ,经过滤器送至缓冲区,最后传给应用程 序。B P F 的优点在于:过滤由内核完成,减少了从B P F 瞅嗣邮局订眠8 2 铷3 6 0 元,年_ 2 7 9 万方数据 软件天地中文核J 心期刊微计算机信息( 测控自动化) 2 0 0 6 年第2 2 卷第1 2 1 期 拷贝到应用程序的数据量;每个分组只有部分数据由w i n d o w s 版是通过它来捕获数据。 B F P 传递给应用进程,可以只捕获

10、用户感兴趣的部分: 使用了缓冲技术只有在缓冲区满或读超时发生时才 拷贝给应用进程减少系统调用的次数。 3 2l i b p c a p 分组捕获函数库 由于l i b p c a p 与操作系统平台无关,所以它是使用 最多的一种捕获方法。l i b p c a p 是一个独立于操作系统 的访问数据链路层的方法,主要用于读取数据链路层 的数据,它支持B P F ,D L P I 以及S O C K P A C K E T 。 L i b p c a p 的工作过程如图2 所示,它是通过调用相应的 库函数来实现的步骤如下: ( 1 ) 查找网络设备( p c a p _ l o o k u p d

11、 e v ) 。 ( 2 ) 获取网络地址及网络掩码( p c a p l o o k u p n e t ) 。 ( 3 ) 打开网络设备( p c a p _ o p e n _ l i v e ) 。 ( 4 ) 将过滤字符串编译到过滤程序中( p c a p _ c o m p i l e ) 。 ( 5 ) 设置过滤器( p c a p _ s e t f i h e r ) 。 ( 6 ) 开始捕获包( p c a p _ d i s p a t c h ) 。 查找有效的网络设备 获得网络地址及网络掩码 打开网络设备 将用户输入的字符串编译到过滤程序中 设置过滤器 捕获包 鼍焐

12、望些J 图2l i b p c a p 的工作过程 查找网络设备时如果有多个接口将自动选择 序号最小的接口,如果要指定接口,可以把接口名直 接传给应用程序:打开网络设备时,通过传递函数参 数可将网卡设置为混杂模式:过滤字符串表达了过滤 规则,它的格式与T c p d u m p 使用的相同。以上列出的 只是几个重函数函数原型可查看相关文献。 3 3w i n p c a p w i n p c a p 是l i b p c a p 在w i n d o w s 下的版本,它们具 有相同的接口。程序员只需要调用相应的函数。W i n p c a p 的结构如图3 所示,数据包监听设备驱动程序直

13、接从数据链路层取得网络数据包,且不加修改地传递 给运行在用户层的应用程序,低级的动态链接库运行 在用户层,它把应用程序和数据包监听设备驱动隔离 开来,使得应用程序可以不加修改地在不同的w i n d o w s 系统上运行。著名的网络入侵检测系统s n o r t 的 用户层 内核层 图3w i n p c a p 的结构 3 4J p c a p J p c a p 是一个j a v a 类库,它使j a v a 应用程序能捕 获和发送网络数据包。J p c a p 是基于l i b p c a p 、w i n p c a p 和原始套接字的,所以它能够工作于安装有l i b p c a

14、p 和 w i n p c a p 的任何操作系统上。基于移动代理的入侵检测 系统可用J p c a p 获取检测数据源,以下是用J p c a p 捕获 数据包的一段代码,图4 是将其写入文件后的结果。 i m p o r tl p c a p 卑; 帔黑j p c a p i m p o r tj p c a p p a c k e t P a c k e t ; c l a s sc a p w r i t ei m p l e m e n t sP a c k e t R e c e i v e r 创建 一个执行接口P a c k e t R e c e i v e r 的类 p u

15、 b l i cv o i dr e c e i V e P a c k e t ( P a c k e tp a c k e t ) S y s t e m o u t p r i n t l n ( p a c k e t ) ;一这里是对包的处 理程序只捕获了包头 p u b l i cs t a t i cv o i dm a i n ( S t r i n g a r g s ) N e t w o r k I n t e r f a c e d e v i c e s = J p c a p C a p t o r g e t D e - v i c e L i s t 0 ;获取

16、网络设备列表 t r y J p c a p C a p t o rj p c a p = J p c a p C a p t o r o p e n D e v i c e ( d e v i c e s 1 ,2 0 0 0 ,f a l s e ,2 0 ) ;打开一个设备 j p c a p 1 0 0 p P a c k e t ( - 1 ,n e wc a p w r i t e 0 ) ;捕获包 c a t c h ( I O E x c e p t i o ne ) l 图4 使用J p c a p 捕获的数据包 4 使用S O C K - P A C K E T 捕获数据包

17、 套接字是一种网络A P I ( 应用程序编程接口) ,程序 员可以用它开发网络应用程序,它由一个五元组组 成,分别为:源地址、源端口、目的地址、目的端口,协 议。套接字的类型很多,S O C K _ P A C K E T 套接字只有 一2 8 0 3 6 0 元,年邮局订阅号:8 2 9 4 6 万方数据 软件天地 l i n u x 支持,主要用来访问数据链路层。创建这个套接 c h a r * p t r ; 字的方法是:f d = s o c k e t ( A F _ I N E T ,S O C K _ P A C K E T ,h t o n s s t r u c t i p

18、 木i p ; ( E T H P A I 舢) ;这将读取数据链路接收到的所有协议 s t r u c t e t h e r _ h e a d e r * e p t r ; 的帧。最后一个参数还可以是E T H P - I P 、 s t r u c tt c p h d r * t c p h ; E T H _ P _ A R P 、E T H - P _ I P 6 ,使用S O C K _ P A C K E T 套接 字捕获帧的方法如下: ( 1 ) 将网卡设为混杂模式和停止运行A R P 。 i f c o n f i ge t h l A R PP R O M I S C

19、U P2 2 2 1 8 11 3 1 7 0 ( 2 ) 告诉l i n u x 协议栈不在此接口上接收和发出 数据包。 I p f w a d m - O - ad e n y - pa l l - S0 0 - D0 0 - We t h l i p f w a d m - I ad e n y - pa l l - S0 0 - D0 0 - We t h l ( 3 ) 接下来是程序中所要做的事,建立 S O C K P A C K E T 套接字。 s o c k e l ( A F _ I N E T , S O C K P A C K E T , h t o n s ( E T

20、 H p 。- A L I 坊 ( 4 ) 绑定以太网接口。 s t r c p y ( m y a d d r s a _ d a t a ,”e t h l ”) ;pm y a d d r 是一个 s o c k a d d r 的地址结构e t h l 是设备名木 b i n d ( s , 施振川;周利民;孙宏晖 UNIX网络编程 1999 4.刘建伟 网络安全-技术与实践 2005 5.Java package for packet capture 6.Using the SOCK_PACKET mechanism in Linux to Gain Complete Control

21、 of an Ethernet Interface 本文读者也读过(10条)本文读者也读过(10条) 1. 洪剑青.陆虎.HONG Jian-qing.LU Hu 基于J2SE的网络数据包截获与分析实现期刊论文-计算机安全2009(3) 2. 陈鹏 基于Jpcap的TCP/IP数据包捕获与发送期刊论文-昌吉学院学报2008(2) 3. 涂祥.TU Xiang 基于JAVA的数据链路层控制的研究与应用期刊论文-电脑知识与技术(学术交流)2007,3(13) 4. 多浩学.陈云芳 基于Jpcap的网络嗅探程序设计期刊论文-电脑编程技巧与维护2006(6) 5. 陈涛.CHEN Tao 基于Joes

22、nmp与Jpcap的网络流量监控系统研究期刊论文-陕西理工学院学报(自然科学版) 2010,26(1) 6. 姜浩.伦淑娴.刘力.Jiang Hao.Lun Shuxian.Liu Li 网络入侵检测系统中数据包捕获的分析与设计期刊论文- 计算机与数字工程2008,36(8) 7. 岳成刚.侯整风.YUE Cheng-gang.HOU Zheng-feng 用Jpcap和Java实现图形化的Ping程序期刊论文-淮北煤炭 师范学院学报(自然科学版)2008,29(2) 8. 王海燕 基于移动Agent的入侵检测系统的研究与设计学位论文2009 9. 赵新辉.李祥 捕获网络数据包的方法期刊论文-

23、计算机应用研究2004,21(8) 10. 翟光群.胡贵江.ZHAI Guang-qun.HU Gui-jiang 基于Jpcap的数据包捕获器的设计与实现期刊论文-微计算机 信息2009,25(21) 引证文献(9条)引证文献(9条) 1.黄俊杰.王建新.张静 网络协议分析器设计与实现期刊论文-企业技术开发(学术版) 2010(1) 2.张昊 计算机网络数据包捕获技术浅析期刊论文-合肥学院学报(自然科学版) 2009(2) 3.许爱军.谢娟.张华 基于WinPcap的网络数据解析及其实现期刊论文-科学技术与工程 2009(10) 4.王胜杰.王建 基于千兆以太网的PC机与FPGA的高速数据传输期刊论文-信息技术 2011(8) 5.金定.邹友金 基于WinPcap的以太网协议捕获和分析技术的研究期刊论文-电脑知识与技术 2011(19) 6.张毅.马丹.唐红 软交换实验系统SIP信令监听软件的设计与实现期刊论文-电视技术 2010(10) 7.冯伟 利用数据包捕获技术制作网络游戏外挂期刊论文-福建电脑 2010(7) 8.朱俚治 一种攻击木马服务程序的方案期刊论文-网络安全技术与应用 2013(12)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1