当前位置:文档之家› 高速网络数据包捕获技术方法研究_周照峰

高速网络数据包捕获技术方法研究_周照峰

高速网络数据包捕获技术方法研究_周照峰
高速网络数据包捕获技术方法研究_周照峰

科技经济市场

1引言

随着信息技术的迅猛发展,互联网上的数据流量不断增大,目前计算机网络的物理层传输速率已突破Gb 级带宽的水平。但与此同时,单机节点最大处理数据量仅为110M bps 左右,网络节点对于高速网络流量的捕获处理能力的不足,已经成为制约网络发展的瓶颈。

如今基于千兆网络的入侵检测系统的出现,更迫切的需要高性能的数据包捕获技术。本文正是分析探讨了在高速网络环境下数据包捕获的技术及其应用。

2数据包捕获原理2.1libpcap 的应用流程

目前有很多基于Linux 网络分析工具和IDS 软件采用libpcap 直接与内核交互,实现网络数据包的捕获。该库提供的C 函数接口可用于需要捕获经过网络接口数据包的系统开发上。由Berkeley 大学Lawrence Berkeley National Laboratory 研究院的Van Jacobson 、Craig Leres 和Steven M cCanne 编写。Libpcap 的应用流程可大致归纳为如图2.1所示,

图2.1Libpcap 应用流程图

此流程图中主要函数的函数功能如下:(1)pcap_findalldevs():此函数功能是查找机器的所有可用的网络接口,用一个网络接口链表返回。

(2)pcap_lookupdev():用于获得本机的网络接口。返回可被pcap_open_live()函数调用的网络设备名指针。

(3)pcap_open_live():用于打开网络接口进行数据包捕获。设参数promsic 为1时,表示以混杂模式打开此网络接口。

(4)pcap_lookupnet():用于获得指定网络设备的网络地址和网络掩码。

(5)pcap_setfilter():用于设置过滤器。例如参数fp 用于设置BPF 过滤规则。

(6)pcap_compile():用于将用户制订的过滤策略编译到过滤程序中,比如编译BPF 过滤规则。

(7)pcap_dispatch():用于捕获并处理数据包。其最终调用系统函数recvfrom(),把从网卡捕获到的一个链路层的数据包,传送到用户指定的主机内存空间中。然后,调用回调函数对接收到的数据包进行进一步的处理。

(8)pcap_close():用于关闭libpcap 操作,并销毁相应资源。2.2数据包捕获流程

以下简要介绍怎样调用libpcap 实现对网络数据包的捕获即网卡向Linux 内核提交数据包的过程。

首先,调用open_pcap 函数对网卡进行初始化,使网卡工作在混杂模式,以监听网络上所有的数据包。当有数据包到达的时候,网卡上的DM A 引擎将包放入到内核rx_ring 空间,同时向CPU 发起中断服务请求,进入中断服务程序,然后调用网卡驱动程序中的函数将数据包封装成sk_buff 结构,并脱离驱动程序,转到通用的处理函数netif_rx 中。netif_rx 函数将数据包传入等待队列中,并置软中断标志位,其目的是使上层的处理采用软中断(do_softirq )来提高CPU 的处理效率。在软中断中调用net_rx_action()函数轮询backlog 队列中,调用ip_rcv()函数对每个

数据包做进一步处理,完成将数据传送到上层协议。

捕包软件就是通过用Libpcap 实现从内核中数据包的获取。

3提高数据包捕获的方法

对于高速网络环境下的数据包捕获,传统意义上的包捕获

技术不能满足需求,会有大量的数据包丢失。

以下介绍几种提高数据包捕获效率的方法。

3.1改善内存管理

应用程序提供一块缓冲区用来缓存网络报文,以此连接网络层界面和用户层应用。传统的缓冲区动态管理算法出于对通用性的考虑,在每次报文传输时都进行malloc/free 操作。可以想象,在高速网络环境下,对于捕获到的大量包,系统要频繁的针对每一个数据包进行内存的分配、释放,这无疑会影响系统性能,大大降低主机对数据包的处理能力。一个好的做法是预先分配出一大块内存,然后由应用程序从这块大内存中取出一块小unit 用于接收来自网卡的一个数据包,而不是在每次接受到一个包的之后由系统临时分配一块用户态内存。这样可以降低系

统对malloc/free 两个函数的调用频率,

提高系统对包的捕获率。但既便如此,对于包捕获效率的提高依然是有限的。Linux 将主机内存分为核心态内存和用户态内存。核心态内存由操作系统来管理,用户应用程序无法直接访问到核心态内存。在传统的做法上,捕获、接收数据包的过程是这样的,当网卡接收到一个数据包后,网卡驱动程序通过DM A 方式调用系统函数netif_rx(),将数据包从网卡拷贝到核心态内存;应用程序要想访问位于核心态内存中的数据包就必须再次利用系统调用,将数据包从核

作者简介:周照峰(1982-)男,浙江宁波人,贵州大学电子科学与信息技术学院网络通信与信息安全技术专业硕士研究生。

高速网络数据包捕获技术方法研究

周照峰

(贵州大学电子科学与信息技术学院,贵州贵阳550025)

摘要:

本文首先讨论了网络数据包捕获的基本原理与技术,之后分别介绍与分析了在高速网络流量环境下从几种数据包捕获技术到网络设备上如何提高数据包捕获能力的方法。

关键词:

数据捕获;N A PI;libpcap;网络处理器;负载均衡技术平台

心态内存拷贝到用户态内存中。这种对数据包在内存中的重复的拷贝无疑会占用很多的系统资源,降低主机对捕获到包的处理能力。一个好的办法是采用M M AP技术。Linux2.2Kernel 以上版本都支持M M AP技术。应用程序通过调用系统函数mmap(),可以建立核心态内存与用户态内存的映射。具体来说,mmap()函数负责把系统分配给网卡设备文件的核心态内存映射到一块用户态内存,返回值是用户态内存的首地址pA。这样,应用程序就可以通过调用系统函数recvfrom()把数据包从网卡上直接传送到以pA为首地址的用户态内存中,减少了一次数据拷贝,从而很大程度上降低了系统资源的消耗,提高数据包的捕获效率。

3.2基于半轮询机制的NAPI技术

NAPI的基本工作流程是:

首先中断唤醒数据接收程序,然后使用轮询的方法来获取数据。当一批数据包中的第一个数据包到达时,采用中断的方式通知系统,系统就将该设备注册到一个设备轮询队列中,并关闭对该设备的中断响应。同时,激活一个软中断,对轮询队列中注册的网络设备进行轮询,从中读取数据包。采用配额的方法保证对各个网络设备的公平调度。配额是指网络设备每次发送的数据包的最大个数。如果网络设备发送数据包达到这个数时,设备的数据包接收缓冲区中仍然有数据,就将该设备重新注册到轮询队列的末尾,等待下一次轮询到该设备时再向内核提交数据包;接收缓冲区中没有数据则将该设备从轮询队列中注销,同时打开该设备的中断响应。

NAPI流程如图3.1所示,图中p表示配额数。

图3.1NAPI流程图

所以说,当网络负载较低时,每次到达网卡的数据包的个数比较少,极端情况下只有一个数据包到达。那么,当网卡将该数据包提交到上次之后,就从轮询队列中注销,同时开中断,等待下一个网络数据包的到达。这与Linux2.4采用的中断方式是一致的。当网络负载较高时,每次会有一批数据到达网卡,在极端情况下,数据包源源不断的到达。由于接收缓冲区是一个环形的缓冲区,网卡每向内核提交一个数据包,就会马上有一个数据包填充进来,接收缓冲区一致处于满的状态。在这种情况下,网卡就一直处于在轮询队列中,并行的进行读取网络上的数据包和向上层提交数据包的工作。这与轮询的方式是一致的。也就是说,采用NAPI技术,使系统在轻负载的情况下趋近于中断方式,响应速度很快;而在重负载的情况下,趋近于轮询方式,高效的处理数据包并且避免了重负载情况下的中断活锁问题。

3.3负载均衡技术

负载均衡技术通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去,用多个设备共同完成任务,从而以较低成本消除网络瓶颈,提高网络的灵活性和可靠性。

将负载均衡技术应用在网络处理系统中,能够解决高速网的网络速度与处理速度不匹配的问题,将从网络中均衡地捕获的数据包再分配给各处理节点进行处理。所以负载均衡技术满足以下条件将更有利于实现网络分析处理:

(1)属于同一IP的所有数据包应由同一个捕获节点完成。

(2)同一类型的数据包,即使用同一协议的数据包集中在一起以便共同处理。

(3)可扩展性和容错性。随网络中的流量发生变化,捕获节点负载分配不均或崩溃时,负载均衡技术都能针对具体情况进行响应,调整数据捕获节点之间的负载,使之重新达到均衡,并且使对其余数据分析处理器的影响降低到最小。如何在多个数据捕获器之间分配流量是关键问题,其分配方法,在分流节点按照控制节点根据当前情况定义的策略向各捕获节点分配任务,通过调整对应于捕获节点的这些策略来保证每个数据捕获节点的负载均衡。

4网络设备的改进

传统的网络设备已不能满足网络带宽迅速增长的要求,面对高速网络的发展趋势,当前主要有两种解决方案,即ASIC技术与网络处理器技术。

4.1ASIC技术

采用ASIC(专用集成电路)芯片技术通过把指令或计算逻辑固化在硬件中来获得很高的处理能力,可以为网络产品应用设计专门的数据包处理流水线,优化存储器等资源的利用,可以非常有效的提高数据捕获速率,达到千兆线速较为简单。但ASIC技术存在缺乏灵活性的问题,一旦指令或计算逻辑固化到硬件中就很难进行修改、升级、增加新功能或提高性能。

4.2网络处理器技术

网络处理器是一类新出现的可编程%将计算%存储和媒体资源控制高度集成的高性能芯片,它被优化来实现网络数据包的线速处理,能够对报文进行深度匹配并以线速进行转发的技术。网络处理器一般具有如通用CPU一样的可编程性,这种编程性指的是对进行网络处理的可能应用具有灵活的和充分的可编程性能。程序员可以通过对网络处理器芯片进行编程让网络处理器执行所需操作。此外,网络处理器的设计使其可对OSI网络模型第二层到第四层数据进行处理,特别是第四层以上数据的处理。它的应用目标是OC-1(55M b/s)到C-192(10Gb/s)的速率的网络环境。在网络设备上,灵活性和可编程性使网络处理器成为替代昂贵而又不够灵活的ASIC芯片进行快速网络数据处理的新手段。

为了提高网络处理器的对某些常用操作的处理速度,网络处理器通常还集成了多个可编程硬件加速器来提高对数据包的处理速度,如CRC器件Hash器件等等。网络处理器还集成了高效的存储器子系统控制器来支持对网络数据包存储的优化,如出/入队列、环操作和原子操作等存储器操作的硬件支持。网络处理器还支持多线程的零开销切换设计来实现存储器时延屏蔽。

5小结

目前NAPI技术已经在网卡驱动层和网络层得到了广泛的应用,驱动层次上已经有E1000系列网卡,RTL8139系列网卡,3c50X系列等主流的网络适配器都采用了这个技术,而在网络层次上,NAPI技术已经完全被应用到了著名的netif_rx函数中间,并且提供了专门的POLL方法——

—process_backlog来处理轮询的方法。

负载均衡技术还面临负载状况的定义、如何(下接第10页)

(上接第12页)获取网络数据以及获取后如何处理的问题。而如何处理实际上就是选择合适的负载均衡算法,它能保证设备协同完成任务,消除或避免现有的网络负载不均、数据流量拥挤和响应时间长的瓶颈。

参考文献:

[1]DER I L.Improving passive packet capture beyond device polling [EB/OL].http://https://www.doczj.com/doc/e86455539.html,/.

[2]贾彩霞,吴秋峰,朱卫国等.采用轮询机制提高Linux系统的网络性能[J].计算机工程与应用,2004(11):134-138.

[3]刘玮,郭莉.半轮询方式提高Linux以太网桥性能[J].计算机应用,2005(25):50-51.

[4]毕学尧.高速网络的数据获取与分析研究[D].北京:中国科学院高能物理,2003.

[5]汪世义,秦品乐.基于Linux的高速网络包捕获技术研究[J].微型电脑应用,2006,22(3):51-53.

[6]尹家生,周健,辜丽川.基于Linux的高速网络流量采集与分析模型研究[J].计算机工程与应用,2006(10):151-153.

[7]田志宏,方滨兴,云晓春.R TLinux下基于半轮询驱动的用户级报文传输机制[J].软件学报,2004,15(06):834-841.

[8]夏添,陈国龙.高速网路的数据捕获的研究[J].福建电脑,2005,(10): 16-25.

[9]负载均衡技术:https://www.doczj.com/doc/e86455539.html,/cword/2876.shtml.

击的时间要求,常需加做辅助等电位联结或局部等电位联结,来降低接触电压至限值以下,而构成一个相对封闭安全的环境。(2)剩余电流理论,即在任何电气网络所构成的任意节点中依据克希霍夫定律,在任意时间内流进和流出节点的电流矢量和均为零这一原理,如果不为零这个电流就被认为是剩余电流。

为减少人体同时接触不同电位引起的电击危险,同时也为了防范雷击危害及满足信息设备抗干扰等要求,IEC标准十分强调总等电位联结系统的设置。总等电位联结是指在一建筑物的电源进线处将进线处的PE(PEN)干线、接地级引入线、水道干管、燃气干管、通风空调干管、建筑物的金属结构等可导电部分互相连通,从而在建筑内形成一电位相等或接近的区域。这样当任一管线(包括电气线路)因导入危险高电位时整个建筑物将

同时升高至同一电位,在其内将不出现电位差,借以避免许多电气危险。总等电位联结对不同接地系统的作用是不尽相同的。对TN系统,其作用为:(1)建筑物内发生接地故障时,它可降低由此引起的接触电压;(2)当建筑物外的电源发生接地故障时,它可消除沿PEN(PE)线导入的对地电压。对TT系统和IT系统,总等电位联结的作用不似TN系统那么重要,因为TT系统的电气装置各有自己的接地极,正常时装置内的外露导电部分为地电位,电源侧和各装置出现的故障电压不互窜,发生接地故障时回路阻抗较大,故障电流较小,主要靠RCD来迅速切断电源。而IT系统在发生接地故障时由于不具备故障电流返回电源的通路,其故障电流仅为非故障相的对地电容电流,其值甚小,因此对地故障电压很低,不致引发事故。

电气装置内电气回路任点在同一时间内所有带电导体电流的向量和称为剩余电流,由于对地正常泄漏电流的存在,回路多多少少总有剩余电流。当回路对地绝缘损坏发生接地故障,或回路绝缘老化,回路剩余电流大增超过规定值可能引起电击、电气火灾等事故时,检测出此异常剩余电流并自动切断电源避免灾难发生的开关电器称作剩余电流动作保护电器(residual current operated protective device),英文简称RCD。在短路起火中电弧性接地故障导致火灾的危险最大,而且难以用一般过电流防护电器切断电源,但是最易引起火灾的接地故障无论是金属性的还是电弧性的,都能用剩余电流保护电器(RCD)及时有效地切断电源或发出信号,原因很简单,500mA以上的电弧能量才能引燃起火,而RCD防止接地故障引起的短路起火是非常简单有效的装设RCD并不需要很大的经费,只需为断路器或报警器配套装设一个零序电流互感器来检测接地故障电流,即可起到防火的作用,为有效地防电击和防接地电弧火灾,建筑物内应设丙级或三级RCD。图5所示为IEC标准建筑物内多级RCD的方案举例。

图5(a)图5(b)为两级RCD的方案,第一级为通常的示端回路上安装的30mA或100mA的普通瞬动RCD,其5倍ION的最大动作时间为0.04s;第二级为建筑物电源进线处安装的延时动作的500mA 的选择型RCD,其最大切断时间为0.15s,最小不动作时间为0.05s。这样两级RCD在动作时间和电流上都满足了选择性要求。第二级RCD的作用是作为第一级RCD防问接接触电击和防接他电弧火灾的后备防护,更重要的是建筑物电气装置内任一处发生电弧性接地故障时,它都能有效地切断电源以防止最常见多发的电弧火灾的发生。

在大型建筑物内可装设如图5(b)所示的三级RCD。第三级RCD为固定延时型,例如取1s的延时,Ion取为1A,这级RCD 可采用分离式单独的零序电流互感器,经一断电器动作于火警号以避免切断电源引起大面积的停电,当然也可作用于断路器的跳闸。从发生接地电弧到烤燃起火以至火势蔓延成灾需一相当长的时间,在发出报警信号后完全有足够的时间查出故障回路切断回路电源。

在建筑物电源进线处安装具有RCD功能的断路器是一项十分有效的防接触电击和防接地电弧火灾措施。我国电气设计规范对此也有相关规定,例如民用建筑中供移动式电气设备的插座回路装设RCD可防人身电击等,应当严格执行这此规定。

通过以上分析可知,在低压配电设计中接地故障保护应引起广大电气设计人员的高度重视,应根据不同的建筑、不同的接地型式做好等电位联结,正确选择RCD,提高系统的安全性,减少因接地故障引起电击、火灾事故所带来的人身和财产损失。参考文献:

[1]王厚余.低压电气装置的设计安装和检验.

[2]萧运勤.低压配电系统中接地故障的保护.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

网络数据包的拦截技术

武汉工程大学邮电与信息工程学院 毕业设计(论文) 网络数据包的检测及过滤 Network Packet Inspection And Filtering Research 学生姓名林煦东 学号0845050513 专业班级通信工程0805 指导教师金振坤 2012年5月

作者声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术道德、学术规范的行为,也没有侵犯任何其他人或组织的科研成果及专利。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。如本毕业设计(论文)引起的法律结果完全由本人承担。 毕业设计(论文)成果归武汉工程大学邮电与信息工程学院所有。 特此声明。 作者专业: 作者学号: 作者签名: ____年___月___日

摘要 随着信息化发展,要求通信系统处理能力提高的同时,系统的连接能力也在不断的提高。但在信息连接能力、数据流通能力提高的同时,由于网络数据的脆弱性等网络安全问题日渐突出,网络接口信息安全就变得尤为重要。此外,网络不仅给我们带来了巨大的社会和经济效益,但网络安全问题也变得日益严重,计算机网络的设计、维护难度日益增加,安全问题正威胁着每一个网络用户,对网络安全的研究也越来越重要。面对这一严峻形势,如何正确分析并及时处理网络数据包已成为大多IT人员研究的一项重要课题。对于网络数据包的过滤和检测现在也有很多的实现方法,存在着很多开源的软件供我们参考,但是其中的某些细节还是有一些问题的存在,在效果和效率上都有一些问题,分析上也不是很方便。所以尝试选择了这个课题。 本课题是使用Visual C++6.0研发平台利用多线程技术实现。主线程负责寻找和选择网络接口、设置分析过滤器、分析检测数据包。子线程负责打开选择的接口并将其设为混杂模式、检测数据包并将其保存在文件中。本设计实现的这个系统可以监听局域网内流经所有主机的数据包,并分析了每个包的协议、源/目的MAC地址、源/目的IP地址、数据包长度和包内的数据。既可以管理和维护网络健康运行,还可以检测网络入侵,甚至可以学习网络协议知识。 关键词:网络接口信息;数据包过滤;数据包检测

高速网络环境下数据包捕获技术的分析

龙源期刊网 https://www.doczj.com/doc/e86455539.html, 高速网络环境下数据包捕获技术的分析 作者:王亚 来源:《数字技术与应用》2011年第12期 摘要:互联网的迅猛发展,网络带宽飞速增长,在高速网络环境下,传统的网络数据包捕获已经成为制约整个系统的性能提升的瓶颈,为了满足高速网络的数据包捕获的需求,对传统的网络数据包捕获存在的问题进行分析,在此基础上提出了改进措施,为后期研究高速网络下高性能的数据包捕获技术奠定基础。 关键词:高速网数据包捕获 Libpcap 中图分类号:TP393 文献标识码:A 文章编号:1007-9416(2011)12-0194-02 The Analysis of Packet Capture Technology in High Speed Network wangya (Fuyang Teachers College of computer and Information engineering Fuyang 236041) Abstract:The rapid development of the Internet and the rapid growth of network bandwidth,in high-speed network environment,the traditional network data packet capture has become the constraints of the system performance bottleneck. In order to satisfy the high speed network packet capture demand,to analysis the existing problems of the traditional network packet capture,and put forward on this foundation improvement measures.,It lays the foundation for later research of high-speed network and high performance packet capture technology. Keywords:high speed network;packet capture;Libpcap 1、引言 目前,对网络信息监控与检测的软件都是基于数据包捕获技术,如:入侵检测程序Snort、嗅探器Tcpdump等。数据包捕获技术是一种对网络上的数据包进行监听并截取的技术,可以将数据包原封不动的拷贝到捕包端的系统中。数据包捕获是入侵检测系统、网络协议

网络数据包的捕获与分析毕业设计

网络数据包的捕获与分析 【摘要】网络数据包的捕获对于网络安全有着巨大的作用,为我们更好的分析网络中的数据流提供了帮助。本论文是基于Windows下开发一个网络监听工具,侧重点在于实现网络数据包的捕获,然后分析并显示捕获到的数据包信息这部分功能的实现,如分析:IP首部协议类型、源IP、目的IP和端口号等。采用的是Winpcap(Windows Packet Capture)来实现的抓包功能。通过VC++6.0中MFC编程实现通过一个完整界面来控制调用Winpcap中的函数来实现对网卡信息的捕获和循环捕获数据包,然后通过预先对于IP、TCP、UDP等数据包的定义和TCP/IP等协议来解析其中包含的内容并返回显示捕获到数据包的信息,当然也可以保存捕获到的数据包到指定地点以便进一步分析。 【关键词】Winpcap;数据包;捕获;分析

The Capture and Analysis of Network Data Packets Wang Hang (Grade 11,Class 1, Major Network Engineering, Scho ol of Mathematics and Computer Science Dept, Shaanxi University of Technology, Hanzhong 723003, Shaanxi) Tutor: Jia Wei Abstract: The capture of network data packets plays an important part in network security, which is helpful for our better analysis of network data flow.This paper is about a network monitoring tool based on Windows system, which emphasizes particularly on realizing the capture and analysis of network data packets and then displays them. Take analysis as an example, it will check the type of the IP protocol, the source address of IP, the destination address of IP and the port https://www.doczj.com/doc/e86455539.html,e the Winpcap(Windows Packet Capture)to capture of data packets. In MFC programming of VC++6.0, the capture of network data packets can be realized via the invoking and control of the functions through a full control panel, and then the analysis of IP ,TCP,UDP and TCP/IP will be done before they are displayed. Certainly the information captured can be saved to the appointed destination in order to go through an advanced analysis. Key words:Winpcap;Data Packets;Capture;Analysis

实验四--SnifferPro数据包捕获与协议分析上课讲义

实验四-- S n i f f e r P r o数据包捕获与协议分析

精品文档 实验四 SnifferPro数据包捕获与协议分析 一. 实验目的 1.了解Sniffer的工作原理。 2.掌握SnifferPro工具软件的基本使用方法。 3.掌握在交换以太网环境下侦测、记录、分析数据包的方法。 二、实验原理 数据在网络上是以很小的被称为“帧”或“包”的协议数据单元(PDU)方式传输的。以数据链路层的“帧”为例,“帧”由多个部分组成,不同的部分对应不同的信息以实现相应的功能,例如,以太网帧的前12个字节存放的是源MAC地址和目的MAC地址,这些数据告诉网络该帧的来源和去处,其余部分存放实际用户数据、高层协议的报头如TCP/IP的报头或IPX报头等等。帧的类型与格式根据通信双方的数据链路层所使用的协议来确定,由网络驱动程序按照一定规则生成,然后通过网络接口卡发送到网络中,通过网络传送到它们的目的主机。目的主机按照同样的通信协议执行相应的接收过程。接收端机器的网络接口卡一旦捕获到这些帧,会告诉操作系统有新的帧到达,然后对其进行校验及存储等处理。 在正常情况下,网络接口卡读入一帧并进行检查,如果帧中携带的目的MAC地址和自己的物理地址一致或者是广播地址,网络接口卡通过产生一个硬件中断引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理,否则就将这个帧丢弃。 如果网络中某个网络接口卡被设置成“混杂”状态,网络中的数据帧无论是广播数据帧还是发向某一指定地址的数据帧,该网络接口卡将接收所有在网络中传输的帧,这就形成了监听。如果某一台主机被设置成这种监听(Snfffing)模式,它就成了一个Sniffer。一般来说,以太网和无线网被监听的可能性比较高,因为它们是一个广播型的网络,当然无线网弥散在空中的无线电信号能更轻易地截获。 三、实验内容及要求 要求:本实验在虚拟机中安装SnifferPro4.7版本,要求虚拟机开启FTP、Web、Telnet等服务,即虚拟机充当服务器,物理机充当工作站。物理机通过Ping命令、FTP访问及网页访问等操作实验网络数据帧的传递。 内容: 1.监测网络中计算机的连接状况 2.监测网络中数据的协议分布 3.监测分析网络中传输的ICMP数据 4.监测分析网络中传输的HTTP数据 5.监测分析网络中传输的FTP数据 四、实验步骤 介绍最基本的网络数据帧的捕获和解码,详细功能。 1.Sniffer Pro 4.7的安装与启动 收集于网络,如有侵权请联系管理员删除

实验1:网络数据包的捕获与协议分析

实验报告 ( 2014 / 2015 学年第二学期) 题目:网络数据包的捕获与协议分析 专业 学生姓名 班级学号 指导教师胡素君 指导单位计算机系统与网络教学中心 日期2015.5.10

实验一:网络数据包的捕获与协议分析 一、实验目的 1、掌握网络协议分析工具Wireshark的使用方法,并用它来分析一些协议; 2、截获数据包并对它们观察和分析,了解协议的运行机制。 二、实验原理和内容 1、tcp/ip协议族中网络层传输层应用层相关重要协议原理 2、网络协议分析工具Wireshark的工作原理和基本使用规则 三、实验环境以及设备 Pc机、双绞线、局域网 四、实验步骤 1.用Wireshark观察ARP协议以及ping命令的工作过程: (1)打开windows命令行,键入“ipconfig -all”命令获得本机的MAC地址和缺省路由器的IP地址;结果如下: (2)用“arp -d”命令清空本机的缓存;结果如下 (3)开始捕获所有属于ARP协议或ICMP协议的,并且源或目的MAC地址是本机的包。(4)执行命令:ping https://www.doczj.com/doc/e86455539.html,,观察执行后的结果并记录。

此时,Wireshark所观察到的现象是:(截图表示) 2.设计一个用Wireshark捕获HTTP实现的完整过程,并对捕获的结果进行分析和统计。(截 图加分析) 3.设计一个用Wireshark捕获ICMP实现的完整过程,并对捕获的结果进行分析和统计。要求:给出捕获某一数据包后的屏幕截图。以16进制形式显示其包的内容,并分析该ICMP 报文。(截图加分析) 4. 设计一个用Wireshark捕获IP数据包的过程,并对捕获的结果进行分析和统计(截图加分析) 要求:给出捕获某一数据包后的屏幕截图。以16进制形式显示其包的内容,并分析在该数据包中的内容:版本首部长度、服务类型、总长度、标识、片偏移、寿命、协议、源Ip地址、目的地址 五、实验总结

入侵实验二网络数据包的捕获及协议的简单分析

实验二 网络数据包的捕获及协议的简单分析 一、实验目的 网络数据包的捕获及协议的简单分析。网络数据包是基于网络的入侵检测系统的重要数据源,网络数据包的捕获是基于网络的入侵检测系统实现的第一步。通过该实验,熟悉并掌握Linux环境下基于Lipbcap的网络数据包的捕获方法,理解和掌握基于网络入侵检测系统的源数据的捕获、协议分析的基本原理和实现方法。能够熟练应用Libcap开发包中的函数完成网络环境下功能较为简单的网络捕获包和分析程序。 二、实验内容 1、学习libpcap开发包的功能,并在linux下配置好libpcap环境。 2、在linux系统下基于Libpcap编写C程序,实现对数据包的捕获、过滤和简单分析。 三、了解libpcap编程 Libpcap的抓包流程 1.查找网络设备:目的是发现可用的网卡,实现的函数为pcap_lookupdev(),如果当前有多个网卡,函数就会返回一个网络设备名的指针列表。 2.打开网络设备:利用上一步中的返回值,可以决定使用哪个网卡,通过函数pcap_open_live()打开网卡,返回用于捕捉网络数据包的秒数字。 3.获得网络参数:这里是利用函数pcap_lookupnet(),可以获得指定网络设备的IP地址和子网掩码。 4.编译过滤策略:Lipcap的主要功能就是提供数据包的过滤,函数pcap_compile()来实现。 5.设置过滤器:在上一步的基础上利用pcap_setfilter()函数来设置。 6.利用回调函数,捕获数据包:函数pcap_loop()和pcap_dispatch()来抓去数据包,也可以利用函数pcap_next()和pcap_next_ex()来完成同样的工作。 7.关闭网络设备:pcap_close()函数关系设备,释放资源。 libpcap利用BPF来过滤数据包

数据包捕获与解析

数据包捕获与解析课程设计报告 学生姓名:董耀杰 学号:1030430330 指导教师:江珊珊

数据包捕获与分析 摘要本课程设计通过Ethereal捕捉实时网络数据包,并根据网络协议分析流程对数据包在TCP/IP各层协议中进行实际解包分析,让网络研究人员对数据包的认识上升到一个感性的层面,为网络协议分析提供技术手段。最后根据Ethereal的工作原理,用Visual C++编写一个简单的数据包捕获与分析软件。 关键词协议分析;Ethereal;数据包;Visual C++ 1引言 本课程设计通过技术手段捕获数据包并加以分析,追踪数据包在TCP/IP各层的封装过程,对于网络协议的研究具有重要的意义。Ethereal是当前较为流行的图形用户接口的抓包软件,是一个可以用来监视所有在网络上被传送的包,并分析其内容的程序。它通常被用来检查网络工作情况,或是用来发现网络程序的bugs。通过ethereal对TCP、UDP、SMTP、telnet和FTP等常用协议进行分析,非常有助于网络故障修复、分析以及软件和协议开发。,它以开源、免费、操作界面友好等优点广为世界各地网络研究人员使用为网络协议分析搭建了一个良好的研究平台。 1.1课程设计的内容 (1)掌握数据包捕获和数据包分析的相关知识; (2)掌握Ethreal软件的安装、启动,并熟悉用它进行局域网数据捕获和分析的功能; (3)设计一个简单的数据包捕获与分析软件。 1.2课程设计的要求 (1)按要求编写课程设计报告书,能正确阐述设计结果。 (2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。 (3)学会文献检索的基本方法和综合运用文献的能力。 (4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。

sniffer数据包捕获

实训报告 一、sniffer的功能认知; 1. 实时网络流量监控分析 Sniffer Portable LAN能够对局域网网络流量进行实时监控和统计分析,对每个链路上的网络流量根据用户习惯,可以提供以表格或图形(条形图、饼状图和矩阵图等)方式显示的统计分析结果,内容包括: ·网络总体流量实时监控统计:如当前和平均网络利用率、总的和当前的帧数、字节数、总网络节点数和激活的网络节点数、当前和总的平均帧长等。 ·协议使用和分布统计:如协议类型、协议数量、协议的网络利用率、协议的字节数以及每种协议中各种不同类型的帧的数量等。Sniffer包含通用的TCP和UDP网络应用协议如HTTP, Telnet, SNMP, FTP等。同时,Sniffer 也具有特有的灵活性允许增加自定义的应用。一旦应用协议加入Sniffer,针对应用的所有的监控、报警和报告便自动生效;

·包尺寸分布统计:如某一帧长的帧所占百分比,某一帧长的帧数等。 ·错误信息统计:如错误的CRC校验数、发生的碰撞数、错误帧数等; ·主机流量实时监控统计:如进出每个网络节点的总字节数和数据包数、前x个最忙的网络 节点等;

话节点对等;

·Sniffer还提供历史统计分析功能,可以使用户看到网络中一段时间内的流量运行状况,帮助用户更好的进行流量分析和监控。

2.应用响应时间监控和分析 Sniffer 在监控网络流量和性能的同时,更加关注在网络应用的运行状况和性能管理,应用响应时间(ART)功能是Sniffer中重要的组成部分,不仅提供了对应用响应时间的实时监控,也提供对于应用响应时间的长期监控和分析能力。 首先ART监控功能提供了整体的应用性能响应时间,让用户以多种方式把握当前网络通讯中的各类应用响应时间的对比情况,如客户机/服务器响应时间、服务器响应时间,最 快响应时间、最慢响应时间、平均响应时间和90%的请求的响应时间等。

实验三 网络数据包的捕获与分析

实验三 网络数据包的捕获与分析 一、实验目的和要求 通过本次实验,了解sniffer 的基本作用,并能通过sniffer 对指定的网络行为所产生的数据包进行抓取,并分析所抓取的数据包。 二、实验内容 A :1、首先打开sniffer 软件,对所要监听的网卡进行选择 2、选择网卡按确定后,进入sniffer 工作主界面,对主界面上的操作按钮加以熟悉。 B :设置捕获条件进行抓包 基本的捕获条件有两种: 1、链路层捕获,按源MAC 和目的MAC 地址进行捕获,输入方式为十六进制连续输入,如:00E0FC123456。 2、IP 层捕获,按源IP 和目的IP 进行捕获。输入方式为点间隔方式,如:10.107.1.1。如果选择IP 层捕获条件则ARP 等报文将被过滤掉。 任意捕协议捕缓冲区基本捕获条件数据流链路层捕获获条件编辑 获编辑 编辑 链路层捕获IP 层捕获 方向 地址条件 高级捕获条件

在“Advance ”页面下,你可以编辑你的协议捕获条件,如图: 选择要捕捕获帧长错误帧是保存过滤获的协议 度条件 否捕获 规则条件 高级捕获条件编辑图 在协议选择树中你可以选择你需要捕获的协议条件,如果什么都不选,则表示忽略该条件,捕获所有协议。 在捕获帧长度条件下,你可以捕获,等于、小于、大于某个值的报文。 在错误帧是否捕获栏,你可以选择当网络上有如下错误时是否捕获。 在保存过滤规则条件按钮“Profiles ”,你可以将你当前设置的过滤规则,进行保存,在捕获主面板中,你可以选择你保存的捕获条件。 C :捕获报文的察看: Sniffer 软件提供了强大的分析能力和解码功能。如下图所示,对于捕获的报文提供了一个Expert 专家分析系统进行分析,还有解码选项及图形和表格的统计信息。 专家分析专家分析捕获报文的捕获报文的其他 系统 系统图形分析 统计信息 专家分析 专家分分析系统提供了一个只能的分析平台,对网络上的流量进行了一些分析对于分析出的

IP及IPSEC协议数据包的捕获与分析分析

IP及IPSEC协议数据包的捕获与分析 为了掌握掌握IP和IPSEC协议的工作原理及数据传输格式,熟悉网络层的协议。我进行了以下实验:首先用两台PC互ping并查看其IP报文,之后在两台PC上设置IPSEC互ping并查看其报文。最终分析两者的报文了解协议及工作原理。 一、用两台PC组建对等网: 将PC1与PC2连接并分别配置10.176.5.119和10.176.5.120的地址。如图1-1所示。 图1-1 二、两PC互ping: IP数据报结构如图1-2所示。 图1-2 我所抓获的报文如图1-3,图1-4所示:

图1-3 请求包 图1-4 回应包 分析抓获的IP报文: (1)版本:IPV4 (2)首部长度:20字节 (3)服务:当前无不同服务代码,传输忽略CE位,当前网络不拥塞

(4)报文总长度:60字节 (5)标识该字段标记当前分片为第1367分片 (6)三段标志分别指明该报文无保留、可以分段,当前报文为最后一段 (7)片偏移:指当前分片在原数据报(分片前的数据报)中相对于用户数据字段 的偏移量,即在原数据报中的相对位置。 (8)生存时间:表明当前报文还能生存64 (9)上层协议:1代表ICMP (10)首部校验和:用于检验IP报文头部在传播的过程中是否出错 (11)报文发送方IP:10.176.5.120 (12)报文接收方IP:10.176.5.119 (13)之后为所携带的ICMP协议的信息:类型0指本报文为回复应答,数据部分 则指出该报文携带了32字节的数据信息,通过抓获可看到内容为:abcdefghijklmnopqrstuvwabcdefghi 三、IPSec协议配置: 1、新建一个本地安全策略。如图1-5。 图1-5 2、添加IP安全规则。如图1-6.

网络数据捕获及分析实验报告

广西民族大学 网络数据捕获及分析实验报告 学院:信息科学与工程学院 班级 10网络姓名郭璇学号 110263100129 实验日期 2012年10月19日指导老师周卫 实验名称网络数据捕获及分析实验报告 一、实验目的 1、通过捕获网络通信数据,使学生能够真实地观察到传输层(TCP)和应用层(HTTP) 协议的数据,对计算机网络数据传输有感性的认识。 2、通过对捕获的数据的分析,巩固学生对这些协议制定的规则以及工作的机制理解, 从而对计算机网络数据传输有初步的认识,以便为之后通信协议设计以及通信软件设计打下 良好的基础。 二、协议理论 TCP: 1、Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、 可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,UDP 是同一层内另一个重要的传输协议。 2、TCP所提供服务的主要特点:(1)面向连接的传输;(2)端到端的通信;(3)高可 靠性,确保传输数据的正确性,不出现丢失或乱序;(4)全双工方式传输;(5)采用字节流 方式,即以字节为单位传输字节序列;(6)紧急数据传送功能。 3、TCP连接的建立与终止 TCP连接的建立:TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手(three-way handshake),过程如下图所示。

TCP连接的终止:建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。具体过程如下图所示。 4、服务流程 TCP协议提供的是可靠的、面向连接的传输控制协议,即在传输数据前要先建立逻辑 连接,然后再传输数据,最后释放连接3个过程。TCP提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同 的服务。 TCP提供一种面向连接的、可靠的字节流服务。 面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数 据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机 说“喂”,然后才说明是谁。 在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。 TCP通过下列方式来提供可靠性:

网络数据捕获方法

一、使用的函数库:libpcap(Packet Capture library)即数据包捕获函数库。支持Linux 系统,采用分组捕获机制的分组捕获函数库,用于访问数据链路层,在不同的平台上采用统一的编程接口,使用Libpcap编写的程序可自由的跨平台使用 Libcap 捕获数据包的方法流程 二、Winpcap:是基于win32的捕获数据包和网络分析的体系结构,包括一个内核级的包过滤器,一个底层的动态链接库(Packet.dll)一个高层并且与系统无关的库(Wpcap.dll)它可以从网卡捕获或者放送原始数据,同时能够过滤并且存储数据包主要功能有以下四项:

(1)捕获原始数据报,包括共享网络上各主机发送/接收的以及相互之间交换的数据报(2)在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉 (3)在网络上发送原始的数据报 (4)手机网络通信过程中的统计信息 主要的优势:提供了一套标准的抓包接口,并且与libpcap兼容 Wincap抓包流程: 1.得到网络驱动列表,第一步就是要得到本地网卡列表 2.打开网卡捕获数据报,将网卡设置为混杂模式(处于混杂模式下的网卡将接收所有 流经它的数据报) 3.数据流的过滤 4.解析数据报 5.处理脱机的堆文件(可以做到从指定接口上捕获数据包并将它们存储到一个指定的 文件) 6.收集并统计网络流量 三、Raw Socket 方法 套接字:源IP地址和目的ip地址以及源端口号和目的端口号的组合称为套接字,用于标示客户端请求的服务器和服务。 Raw Socket 允许对较低层的协议直接访问,如IP,ICMP等。Raw Socket可以自如地控制Windows下的多种协议,能够对网络底层的传输机制进行控制,所以可以通过原始套接字来操纵网络层和传输层的应用。(如通过RS来接收发向本机的ICMP,IGMP协议包。也可以用来发送一些自定包头或自定协议的IP包)

网络数据包捕获工具的实现

本文来自中国协议分析网技术论坛,转载请注明 sniffer tcp http ospf rtp dhcp Sniffer EtherealWinpcap 其它技术返回首页当前位置: 网站首页>>协议分析>>Winpcap>> 利用WinPcap技术捕获数据包时间:2006-11-14 来源: 作者: 点击:849次收藏到: 前言随着网络入侵的不断发展,网络安全变得越来越重要,于是网络入侵取证系统的研究也变得日益重要。在网络入侵取证系统中,对网络上传送的数据包进行有效的监听即捕获包是目前取证的关键技术,只有进行高效的数据包捕获,网络管理员才能对所捕获的数据进行一系列 前言 随着网络入侵的不断发展,网络安全变得越来越重要,于是网络入侵取证系统的研究也变得日益重要。在网络入侵取证系统中,对网络上传送的数据包进行有效的监听即捕获包是目前取证的关键技术,只有进行高效的数据包捕获,网络管理员才能对所捕获的数据进行一系列的分析,从而进行可靠的网络安全管理。 1winpcap简介 WinPcap 是由伯克利分组捕获库派生而来的分组捕获库,它是在Windows 操作平台上来实现对底层包的截取过滤。WinPcap 为用户级的数据包提供了Windows 下的一个平台。WinPcap 是BPF 模型和Libpcap 函数库在Windows 平台下网络数据包捕获和网络状态分析的一种体系结构,这个体系结构是由一个核心的包过滤驱动程序,一个底层的动态连接库Packet.dll 和一个高层的独立于系统的函数库Libpcap 组成。底层的包捕获驱动程序实际为一个协议网络驱动程序,通过对NDIS 中函数的调用为Win95、Win98、WinNT、和Win2000 提供一类似于UNIX 系统下Berkeley Packet Filter 的捕获和发送原始数据包的能力。Packet.dll 是对这个BPF 驱动程序进行访问的API 接口,同时它有一套符合Libpcap 接口(UNIX 下的捕获函数库)的函数库。WinPcap的结构图如图1。 WinPcap 包括三个部分:第一个模块NPF(Netgroup Packet Filter),是一个虚拟设备驱动程序文件。它的功能是过滤数据包,并把这些数据包原封不动地传给用户态模块,这个过程中包括了一些操作系统特有的代码。第二个模块packet.dll为win32平台提供了一个公共的接口。不同版本的Windows系统都有自己的内核模块和用户层模块。Packet.dll用于解决这些不同。调用Packet.dll的程序可以运行在不同版本的Windows平台上,而无需重新编译。第三个模块Wpcap.dll是不依赖于操作系统的。它提供了更加高层、抽象的函数。 packet.dll和Wpcap.dll:packet.dll直接映射了内核的调用。Wpcap.dll提供了更加友好、功能更加强大的函数调用。WinPcap的优势提供了一套标准的抓包接口,与libpcap兼容,可使得原来许多UNIX平台下的网络分析工具快速移植过来便于开发各种网络分析工具,充分考虑了各种性能和效率的优化,包括对于NPF内核层次上的过滤器支持,支持内核态的统计模式,提供了发送数据包的能力。 2网络数据包捕获的原理 以太网(Ethernet)具有共享介质的特征,信息是以明文的形式在网络上传输,当网络适配器设置为监听模式(混杂模式,Promiscuous)时,由于采用以太网广播信道争用的方式,使得监听系统与正常通信的网络能够并联连接,并可以捕获任何一个在同一冲突域上传输的数据包。IEEE802.3 标准的以太网采用的是持续CSMA 的方式,正是由于以太网采用

计算机网络实验八 Sniffer Pro数据包捕获与协议分析汇编

惠州学院《计算机网络》实验报告 实验08 Sniffer Pro数据包捕获与协议分析 1. 实验目的 (1)了解Sniffer的工作原理。 (2)掌握SnifferPro工具软件的基本使用方法。 (3)掌握在非交换以太网环境下侦测、记录、分析数据包的方法。 2. 实验原理 数据在网络上是以很小的被称为“帧”或“包”的协议数据单元(PDU)方式传输的。以数据链路层的“帧”为例,“帧”由多个部分组成,不同的部分对应不同的信息以实现相应的功能,例如,以太网帧的前12个字节存放的是源MAC地址和目的MAC地址,这些数据告诉网络该帧的来源和去处,其余部分存放实际用户数据、高层协议的报头如TCP/IP 的报头或IPX报头等等。帧的类型与格式根据通信双方的数据链路层所使用的协议来确定,由网络驱动程序按照一定规则生成,然后通过网络接口卡发送到网络中,通过网络传送到它们的目的主机。目的主机按照同样的通信协议执行相应的接收过程。接收端机器的网络接口卡一旦捕获到这些帧,会告诉操作系统有新的帧到达,然后对其进行校验及存储等处理。 在正常情况下,网络接口卡读入一帧并进行检查,如果帧中携带的目的MAC地址和自己的物理地址一致或者是广播地址,网络接口卡通过产生一个硬件中断引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理,否则就将这个帧丢弃。 如果网络中某个网络接口卡被设置成“混杂”状态,网络中的数据帧无论是广播数据帧还是发向某一指定地址的数据帧,该网络接口卡将接收所有在网络中传输的帧,这就形成了监听。如果某一台主机被设置成这种监听(Snfffing)模式,它就成了一个Sniffer。 一般来说,以太网和无线网被监听的可能性比较高,因为它们是一个广播型的网络,当然无线网弥散在空中的无线电信号能更轻易地截获。 3. 实验环境与器材 本实验在虚拟机中安装SnifferPro4.7版本,要求虚拟机开启FTP、HTTP等服务,即虚拟机充当服务器,物理机充当工作站。 物理机通过Ping命令、FTP访问及网页访问等操作实验网络数据帧的传递。 4. 实验内容 介绍最基本的网络数据帧的捕获和解码,详细功能请参阅本教材辅助材料。 (1)Sniffer Pro 4.7的安装与启动 1)启动Sniffer Pro 4.7。在获取Sniffer Pro 4.7软件的安装包后,运行安装程序,按要求输入相关信息并输入注册码,若有汉化包请在重启计算机前进行汉化。完成后重启计算机,点击“开始”→“程序”→“Sniffer Pro”→“Sniffer”,启动“Sniffer Pro 4.7”程序。 2)选择用于Sniffer的网络接口。如果计算机有多个网络接口设备,则可通过菜单“File”→“Select Settings”,选择其中的一个来进行监测。若只有一块网卡,则不必进行此步骤。

任务三计算机网络实验IP数据报捕获与分析

任务三计算机网络实验I P数据报捕获与 分析

任务三网络编程 一、实验目的 捕获本机网卡的IP包,对捕获的IP包进行解析。要求必须输出以下字段:版本号、总长度、标志位、片偏移、协议、源地址和目的地址。 二、实验环境 平台:Windows 编程环境:VC 6.0 语言:C++ 三、实验原理 3.1 数据报格式 以太帧由一个包含三个字段的帧头开始,前两个字段包含了物理地址,各六个字节,头部的第三个字段包含了 16 位的以太帧类型,帧头后面是数据区。根据帧类型可以判断是哪种数据包,一般常用的有 0X0080(IP 数据包)、0X0806(ARP 请求/应答)和 0X8035(RARP 请求/应答)三种类型。TCP/IP 协议簇中位于网络层的协议,也是最为核心的协议。所有的 TCP, UDP, ICMP 及 IGMP 数据都以 IP 数据报格式传输。IP 协议提供了无连接的、不可靠的数据传输服务。同时IP 协议的一个重要功能是为网络上的包传递提供路由支持。TCP/IP 协议使用 IP 数据报这个名字来指代一个互联网数据包。IP 数据报由两部分组成,前面的头部和后面的数据区,头部含有描述该数据报的信息,包括源 IP 地址和目的 IP 地址等。在 IP 数据报的报头中的众多信息可根据协议类型字段区分出该数据包的类型,常用的有TCP 包、 UDP 包、 ICMP 包等,各格式分别如下所示:

IP数据报格式 TCP数据报格式 ICMP数据报格式

UDP数据报格式 3.2 捕获数据包方法 目前常用的捕获数据包的方法有原始套接字、LibPcap、WinPcap和JPcap 等方法。本次实验选用套接字方法。套接字是网络应用编程接口。应用程序可以使用它进行网络通信而不需要知道底层发生的细节。有时需要自己生成一些定制的数据包或者功能并希望绕开Socket提供的功能,原始套接字(RawSocket)满足了这样的要求。原始套接字能够生成自己的数据报文,包括报头和数据报本身的内容。通过原始套接字,可以更加自如地控制Windows下的多种协议,而且能够对网络底层的传输机制进行控制。 网络数据包截获机制一般指通过截获整个网络的所有信息流,根据信息源主机,目标主机,服务协议端口等信息,简单过滤掉不关心的数据,再将用户感兴趣的数据发送给更高层的应用程序进行分析。一般数据包的传输路径依次为网卡、设备驱动层、数据链路层、 IP 层、传输层、最后到达应用程序。IP 数据包的捕获就是将经过数据链路层的以太网帧拷贝出一个备份,传送给 IP 数据包捕获程序进行相关的处理。 IP 数据包的捕获程序一般由数据包捕获函数库和数据包分析器组成。数据包捕获函数库是一个独立于操作系统的标准捕获函数库。主要提供一组可用于查找网络接口名称、打开选定的网络接口、初始化、设置包过滤条件、编译过滤代码、捕获数据包等功能函数。对捕获程序而言,只需要调用数据包捕获函数库的这些函数就能获得所期望的 IP 数据包。这种捕获程序与数据包捕获函数库分离的机制,使得编写的程序具有很好的可移植性。IP 数据包捕获程序的核心部分就是数据包分析器。数据包分析器应具有识别和理解各种协议格式

ip数据包的捕获与解析代码

// PackCaptureDlg.h:header file #define IPV4_WERSION 4 #define IPV6_WERSION 6 #define ICMP_PACKET 1 #define IGMP_PACKET 2 #define TCP_PACKET 6 #define EGP_PACKET 8 #define UDP_packet 17 #define OSPF_PACKET 89 class CPackCaptureDlg:public CDialog { public: //{{AFX_DATA(CFindHostDlg) enum {IDO=IDO_PACKCAPTURE_DIALOG}; int m_Count; CString m_Packet; //}}AFX_DATA protected: //{{AFX_MSG(CFindHostDlg) afx_msg void OnCapture(); //}}AFX_MSG private: typedef struct IP_HEAD //IP头部结构 { union { unsigned char Version; //版本(字节前四位) unsigned char HeadLen; //头部长度(字节后四位) }; unsigned char ServiceType; //服务类型 unsigned short TotalLen; //总长度 unsigned short Identifier; //标识符 union { unsigned short Flags; //标志位(字前三位) unsigned short FragOffset;

http网络数据包截获与还原

摘要:在因特网日益发展壮大的今天,万维网在其上的通信量已经超过90%,万维网信息的安全问题已经越来越被人们所重视,而作为万维网应用层核心协议的http协议是基础。当网络发生异常时,对网络上传输的数据进行监视和分析,是网管人员解决网络故障的一种常用方法。 本文介绍应用层HTTP数据包的截获与还原技术的实现,并简要介绍其中所涉及的数据包截获、数据包分析、应用数据重组以及数据包解码等关键技术。该系统可以监听网管人员感兴趣的数据包,通过对其进行分析和研究,分析出其遵守的协议以及其应用层数据,恢复到被监视用户所看到数据的格式。该系统的实现,为网管人员有效地管理网络提供了一种直观的工具。 关键词:http数据包;截获;还原

Abstract: With the increasing development and expansion of Internet, the traffic of World-Wide-Web has occupied more than 90 percent on Internet at present. Therefore, people have attached more and more importance to the security of the WWW information. While HTTP (Hypertext Transfer Protocol) as the central protocol of WWW’s application layer forms the foundation of it.Monitoring and analysing the data transferred on network is the daily works for network manager The writer of this paper introduced the design and implementation for capturing a part of http data packets, recovering the captured http data packets,and analyzed some key technologies about capturing data packet brief,packet analyzing, reconstructing application data and packet decoding and so on.This system can monitor the packages which network manager is interested in,analyze the protocols which the packet uses,recover the format which the end user see.The implementation of the system provides a visual tool for network managers. Key W ords:http packets;capture;recover

任务三计算机网络试验IP数据报捕获与分析

任务三网络编程 一、实验目的 捕获本机网卡的IP包,对捕获的IP包进行解析。要求必须输出以下字段:版本号、总长度、标志位、片偏移、协议、源地址和目的地址。 二、实验环境 平台:Windows 编程环境:VC 6.0 语言:C++ 三、实验原理 3.1 数据报格式 以太帧由一个包含三个字段的帧头开始,前两个字段包含了物理地址,各六个字节,头部的第三个字段包含了 16 位的以太帧类型,帧头后面是数据区。根据帧类型可以判断是哪种数据包,一般常用的有 0X0080(IP 数据包)、 0X0806(ARP 请求/应答)和 0X8035(RARP 请求/应答)三种类型。TCP/IP 协议簇中位于网络层的协议,也是最为核心的协议。所有的 TCP, UDP, ICMP及 IGMP 数据都以 IP 数据报格式传输。IP 协议提供了无连接的、不可靠的数据传输服务。同时IP 协议的一个重要功能是为网络上的包传递提供路由支持。TCP/IP 协议使用 IP 数据报这个名字来指代一个互联网数据包。IP 数据报由两部分组成,前面的头部和后面的数据区,头部含有描述该数据报的信息,包括源 IP 地址和目的 IP 地址等。在 IP 数据报的报头中的众多信息可根据协议类型字段区分出该数据包的类型,常用的有TCP 包、 UDP 包、 ICMP 包等,各格式分别如下所示: IP数据报格式 TCP数据报格式 ICMP数据报格式 数据报格式UDP. 3.2 捕获数据包方法 目前常用的捕获数据包的方法有原始套接字、LibPcap、WinPcap和JPcap等方法。本次实验选用套接字方法。套接字是网络应用编程接口。应用程序可以使用

相关主题
文本预览
相关文档 最新文档