文档库 最新最全的文档下载
当前位置:文档库 › 网络层数据分组的捕获和解析

网络层数据分组的捕获和解析

网络层数据分组的捕获和解析
网络层数据分组的捕获和解析

实验二:网络层数据分组的捕获和解析

1. 实验类别

协议分析型

2. 实验内容和实验目的

本次实验内容:

1)捕获在连接Internet过程中产生的网络层分组:DHCP分组,ARP分组,IP数据分组,ICMP分组。

2)分析各种分组的格式,说明各种分组在建立网络连接过程中的作用。

3)分析IP数据分组分片的结构。

通过本次实验了解计算机上网的工作过程,学习各种网络层分组的格式及其作用,理解长度大于1500字节IP数据组分片传输的结构。

3. 实验设备环境

Windows XP 操作系统的pc机,连接到Internet,使用WireShark软件。

4. 实验步骤

准备工作

启动计算机,连接网络确保能够上网。。

捕获和分析网络层分组

开启监控,连接网络。一段时间后查看捕获的分组。分析各种分组的格式以及在上网过程中所起的作用。

发送ICMP分组,捕获并分析格式

ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是的一个子协议,用于在IP主机、器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

0100为协议类型:4.

0101为首部长度:5*4=20字节

00000000为服务类型。

00000000 00111100 为总长度:60(20个头部,40个数据)

为标识:0*08ad(2221)

000为标志位MF=0 DF=0

00000 00000000为片偏移:offest=0

为生存时间:128

00000001为协议:ICMP(1)

00000000 00000000 为首部校验和:0

为源地址:

为目标地址:

00001000为ICMP报文的类型:8

00000000为code:0

为校验和:0x4ccd

其后面的32为与ICMP的类型有关

在后面的为数据部分。

此ICMP为回送请求与回送回答报文

发送ARP分组,捕获并分析格式

ARP,即,实现通过得知其物理地址。在网络环境下,每个都分配了一个32位的IP地址,这种地址是在网际范围标识主机的一种逻辑地址。为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP地址变换成物理地址的地址转换问题。以环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网的地址。这就需要在互连层有一组服务将IP地址转换为相应物理地址,这组协议就是。

ARP包:

本机希望知道ip为主机的物理地址,如果本机的ARP缓存表中没有目标IP地址,那么本机将会发送一个广播本机MAC地址是“00:26:18:fd:f8:12”,这表示向同一网段内的所有主机发出这样的询问:“我是,我的硬件地址是"00:26:18:fd:f8:12".请问IP地址为的MAC地址是什么?”网络上其他主机并不响应ARP询问,只有目标主机接收到这个帧时,才向本机做出这样的回应:的MAC地址是xx-xx-xx-xx-xx-xx”。这样,本机就知道了目标主机的MAC地址,它就可以向目标主机发送信息了。还同时都更新了自己(本机与目标的)的ARP缓存表(因为本机在询问的时候把自己的IP和MAC地址一起告诉了目标主机),下次本机再向目标主机或者目标主机向本机发送信息时,直接从各自的ARP缓存表里查找就可以了。

发送DHCP分组,捕获并分析格式

DHCP动态主机设置协议(Dynamic Host Configuration Protocol)是一个的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或供应商自动分配给用户给内部网络管理员作为对所有作中央管理的手段。

首先释放当前的IP地址,然后再重新获取IP地址。然后向网络发出一个DHCP DISCOVER 封包。封包的来源地址会为0.0.0.0 ,而目的地址则为,然后再附上DHCP discover 的信息,向网络进行广播。

当DHCP 服务器监听到客户端发出的DHCP discover 广播后,它会从那些还没有租出的地址范围内,选择最前面的空置IP ,连同其它TCP/IP 设定,响应给客户端一个DHCP OFFER 封包。由于客户端在开始的时候还没有IP 地址,所以在其DHCP discover 封包内会带有其MAC 地址信息,并且有一个XID 编号来辨别该封包,DHCP 服务器响应的DHCP offer 封包则会根据这些资料传递给要求租约的客户。根据服务器端的设定,DHCP offer 封包会包含一个租约期限的信息。

如果客户端收到网络上多台DHCP 服务器的响应,只会挑选其中一个DHCP offer 而已(通常是最先抵达的那个),并且会向网络发送一个DHCP request广播封包,告诉所有DHCP 服务器它将指定接受哪一台服务器提供的IP 地址。同时,客户端还会向网络发送一个ARP 封包,查询网络上面有没有其它机器使用该IP 地址;如果发

现该IP 已经被占用,客户端则会送出一个DHCPDECLIENT 封包给DHCP 服务器,拒绝接受其DHCP offer ,并重新发送DHCP discover 信息。

当DHCP 服务器接收到客户端的DHCP request 之后,会向客户端发出一个DHCPACK 响应,以确认IP 租约的正式生效,也就结束了一个完整的DHCP 工作过程。

若一直得不到响应的情况下,客户端一共会有四次DHCP discover 广播(包括第一次在内),除了第一次会等待 1 秒之外,其余三次的等待时间分别是9、13、16 秒。如果都没有得到DHCP 服务器的响应,客户端则会显示错误信息,宣告DHCP discover 的失败。之后,基于使用者的选择,系统会继续在 5 分钟之后再重复一次DHCP discover 的过程。

发送IP数据分组,捕获并分析格式

IP数据分组:

发送一个8000字节的包通过6片就行分组传输。

供1500个字节 id为0x3a51(14929)

标志位为001:最低位为MF=1:后面还有分片

中间位为DF=0:允许分片

在后面包含源地址与目标地址。(前面已有分析,此处不再复述)

IP协议头部后面是传输层的数据包含头部和数据部分,在此不再分析。

数据的长度为1472.

然后分析第二片可以得出,offset==1480,是因为前一片从传输层得到了1480的数据加上20个字节的头部信息最后在网络层形成了1500字节的包,然后此处的1480是传输层数据的断点。

可以得出offset=1480*(N-1) N为第几片。因为后面还有片所以MF=1 DF=0。

同理分析 2 3 4 5 片都具有相同数据。

来分析下最后一片:

可以

看出MF=0 DF=0。说明这是最后一个分片。而且只有628个字节的长度,表示所剩的数据的全部。加上前面五个片的数据共有8000字节。

然后分析下一数据包可以得出其中的标识发生了变化,来与前一个数据包加以区别。其他的头部部分与前面ICMP协议的时候相同。

5. 实验心得

通过此次实验,对于各个协议有了很深的了解,尤其是对于网络层上的几个协议,如DHCP分组,ARP分组,IP数据分组,ICMP分组。对于每种分组的详细分析,已经对几个分组的内部结构与原理有了一定程度的认知,把课堂上讲到的知识应用于实践之中。在此次实验中同样遇到了很多的问题,先是wireshark软件的使用,由于是初次使用,很多指令与方法都不能很多的了解,但是通过实验指导书与软件自带的指导手册,对于软件的使用方法及软件的作用有了一定的了解。还有就是对于抓包,刚开始比较乱,不能对抓包这个概念有很好的理解,但是渐渐的分析了一些包之后,发现了其中的结构组成及内在的作用,还是发现学习了很多。而且能将课堂上讲的协议在实践中很好的体现出来,还是收益匪浅的。接着就是对于抓包的分析过程,发现在ip协议头部的前面还有很多的数据,刚开始的时候误认为ip协议的头部。发现不合理,然后通过软件的自带的分析,发现不是ip协议的头部,个人认为可能是在数据链路层上头部包括本机的mac地址与对方的mac地址。而且在此次实验的抓包中发现了一些现象,例如你在进行语音或许视频的通信,在抓包的过程中UDP包就显的尤其的多,可以得出视频与语音通信采用的是不可靠连接的服务。在去掉了ip协议的头部之后后面跟着的是传输层上的数据,在分析中可以查出,传输层上的头部,然后再这些头部之后才是真正的数据部分。

虽然实验要求是分析在网络层上各个分组及协议的结构与原理及作用,但是对与整个包的分析过程发现,不仅仅能得出网络层上的结构,在整个计算机网络的分层上都有体现,也对传输层上的UDP TCP协议有了一定的分析与了解。对于此次实验最大的心

得还是能够将课堂上学到的知识很好的体现在实践之中,通过实践加深了对于课堂知识的理解。

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

龙源期刊网 https://www.wendangku.net/doc/1514576965.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.wendangku.net/doc/1514576965.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

实验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.wendangku.net/doc/1514576965.html,,观察执行后的结果并记录。

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

【CN110011927A】一种基于SDN网络的流量捕获方法与系统【专利】

(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910206622.2 (22)申请日 2019.03.19 (71)申请人 西安交通大学 地址 710049 陕西省西安市碑林区咸宁西 路28号 (72)发明人 陶敬 潜禹桥 刘凯 韩婷  (74)专利代理机构 西安智大知识产权代理事务 所 61215 代理人 段俊涛 (51)Int.Cl. H04L 12/801(2013.01) H04L 12/911(2013.01) (54)发明名称 一种基于SDN网络的流量捕获方法与系统 (57)摘要 本发明提供一种基于SDN网络的流量捕获方 法和系统,通过修改虚拟机和物理机网卡所接入 的SDN交换机的流表规则,利用SDN网络建立流量 隧道,同时使用消息队列发送与接收任务消息, 实现对SDN网络中虚拟机和物理机流量的捕获。 该系统包括对任务进行控制管理的任务控制子 系统和实际执行流量捕获任务的任务执行子系 统:以虚拟机和物理机的网卡ID或MAC作为输入, 对虚拟机和物理机网卡的流入和流出流量进行 捕获,最终将被捕获的流量迁移到远程流量接收 设备。本发明可用于对SDN环境下的虚拟机和物 理机进行流量的捕获和监控。权利要求书2页 说明书5页 附图2页CN 110011927 A 2019.07.12 C N 110011927 A

权 利 要 求 书1/2页CN 110011927 A 1.一种基于SDN网络的流量捕获方法,其特征在于,包括如下步骤: 配置SDN交换机的隧道端口,建立被捕获设备-接收设备之间的流量隧道,其中被捕获设备指需要被捕获流量的网卡设备,接收设备指负责接收该捕获流量的网卡设备; 对被捕获设备所接入的SDN交换机上的隧道端口与接收设备所接入的SDN交换机上的隧道端口进行监控; 将被捕获设备上的流量进行捕获并通过流量隧道迁移到接收设备。 2.根据权利要求1所述基于SDN网络的流量捕获方法,其特征在于,所述配置SDN交换机的隧道端口的方法为: 为每一个接收设备分配一个SDN-Overlay网络隧道编号; 配置被捕获设备所接入的SDN交换机的流表规则,设置为将被捕获设备的流量进行复制并在包头添加所迁移到的接收设备的SDN-Overlay网络隧道编号后,洪泛到所在SDN网络内部其他接收设备所接入的SDN交换机的隧道端口上。 3.根据权利要求1所述基于SDN网络的流量捕获方法,其特征在于,所述建立被捕获设备-接收设备之间的流量隧道的方法为: 配置接收设备所接入的SDN交换机的流表规则,使该SDN交换机接收到具有接收设备对应SDN-Overlay网络隧道编号的流量之后,发出洪泛响应报文。 配置被捕获设备所接入的SDN交换机的流表规则,设置为所接入的SDN交换机的某个隧道端口接收到洪泛响应报文之后,将被捕获设备和该隧道端口进行绑定。 4.根据权利要求1所述基于SDN网络的流量捕获方法,其特征在于,所述对被捕获设备所接入的SDN交换机上的隧道端口与接收设备所接入的SDN交换机上的隧道端口进行监控的方法为: 将隧道端口监控分为被捕获设备监控和接收设备监控两个部分:对于被捕获设备所接入的SDN交换机上的隧道端口的监控,在被捕获设备所在主机上启动Tcpdump流量捕获进程,监控接入SDN交换机的网卡的流量,实现对被捕获设备所接入的SDN交换机上的隧道端口流量的监控;对于接收设备所接入的SDN交换机上的隧道端口的的监控,在接收设备所在主机上启动Tcpdump流量捕获进程,监控接入SDN交换机网卡的流量,实现对被捕获设备所接入的SDN交换机上的隧道端口流量的监控。 5.根据权利要求1所述基于SDN网络的流量捕获方法,其特征在于,所述将被捕获设备上的流量进行捕获并通过流量隧道迁移到接收设备的方法为: 配置被捕获设备所接入的SDN交换机的流表规则,设置为进出该被捕获设备的所有流量经过复制后通过绑定的接收设备对应的隧道端口向外发送; 配置接收设备所接入的SDN交换机的流表规则,使得该SDN交换机接收到具有接收设备对应隧道编号的流量后,直接转发到接收设备。 6.根据权利要求1所述基于SDN网络的流量捕获方法,其特征在于,利用流量监控进程将捕获到的流量存储为对应格式的流量文件,并且采用多进程模型处理批量捕获任务以提高效率。 7.根据权利要求1所述基于SDN网络的流量捕获方法,其特征在于,利用消息队列将任务控制过程与执行过程分离,独立出任务控制子系统和任务执行子系统,任务控制子系统下发的任务将通过消息队列分发到对应的任务执行子系统上,一个任务控制子系统能够将 2

数据包捕获与解析

数据包捕获与解析课程设计报告 学生姓名:董耀杰 学号: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 对指定的网络行为所产生的数据包进行抓取,并分析所抓取的数据包。 二、实验内容 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 专家分析系统进行分析,还有解码选项及图形和表格的统计信息。 专家分析专家分析捕获报文的捕获报文的其他 系统 系统图形分析 统计信息 专家分析 专家分分析系统提供了一个只能的分析平台,对网络上的流量进行了一些分析对于分析出的

sniffer数据包捕获

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

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

话节点对等;

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

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

网络流量在线分析系统的设计与实现

综合实训报告 题目:网络流量在线分析系统的设计与实现 华中农业大学 正方教务系统 王枫 指导老师:王建勇

信息学院计算机科学系 目录 一、实训目的 (3) 二、实训内容 (3) 三、主要设备及环境 (4) 四、设计与步骤 (5) 五、整理与小结 (17) 六、参考文献 (18)

一、实训目的 设计并实现一个网络流量的分析系统。该系统具有以下功能:(1)实时抓取网络数据。(2)网络协议分析与显示。(3)将网络数据包聚合成数据流,以源IP、目的IP、源端口、目的端口及协议等五元组的形式存储。(4)计算并显示固定时间间隔内网络连接(双向流)的统计量(如上行与下行的数据包数目,上行与下行的数据量大小等)。在这些统计数据的基础上分析不同网络应用的流量特征。 二、实训内容 (1)能够实时抓取网络中的数据包。并实时显示在程序界面上。用户可自定义过滤条件以抓取所需要的数据包。 (2)分析各个网络协议格式,能够显示各协议字段的实际意义。例如,能够通过该程序反映TCP三次握手的实现过程。 (3)采用Hash链表的形式将网络数据以连接(双向流)的形式存储。 (4)计算并显示固定时间间隔内网络连接(双向流)的统计量(如上行与下行的数据包数目,上行与下行的数据量大小等)。例如,抓取一段时间(如30分钟)的网络流量,将该段时间以固定时长(如1分钟)为单位分成若干个时间片,计算网络连接在每一个时间片内的相关统计量。并在上述统计数据的基础上分析不同应用如WEB、DNS、在线视频等服务的流量特征。注意,可根据实际的流量分析需要自己定义相关的统计量。

三、主要设备及环境 硬件设备: (1)台式计算机或笔记本计算机(含网络适配器) 软件设备: (2)Windows操作系统 (3)网络数据包捕获函数包,Windows平台为winpcap (4)编程语言选用C/C++。 (5)编程环境为codeblocks

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;

网络数据包抓取以及流量分析

#include #include typedef struct macaddress{ u_char mac1; u_char mac2; u_char mac3; u_char mac4; u_char mac5; u_char mac6; }; typedef struct macheader{ macaddress dest; macaddress src; u_short type; }; //IP地址32位,这里用4个字节来表示。typedef struct ipaddress{ u_char by1; u_char by2; u_char by3; u_char by4; }; //IP报文格式 typedef struct ipbaowen{ u_char ver_ihl;//首部长度和版本号 u_char tos;//服务类型 u_short tlen;// 报文总长度 u_short ident;// 标识 u_short flags_fo;// 标志和片偏移 u_char ttl;// 生存时间 u_char proto;//协议类型 #define IP_ICMP 1 #define IP_IGMP 2 #define IP_TCP 6 #define IP_UDP 17 #define IP_IGRP 88 #define IP_OSPF 89 u_short crc; ipaddress saddr; ipaddress daddr; };

typedef struct tcpheader{ u_short sport;// 源端口 u_short dport;// 目的端口 u_int th_seq;// 序列号 u_int th_ack;// 确认号 u_char th_lenand;// 报文长度 u_char th_flags;//标志 #define TH_FIN 0x01 #define TH_SYN 0x02 #define TH_RST 0x04 #define TH_PSH 0x08 #define TH_ACK 0x10 #define TH_URG 0x20 u_short th_win;//窗口 u_short th_sum;//校验和 u_short th_urp;//紧急 }; // UDP格式 typedef struct udpheader{ u_short sport;// Source port 源端口 u_short dport;// Destination port 目的端口 u_short uh_len;// Datagram length 用户数据包长度u_short uh_sum;// Checksum 校验和 }; typedef struct udpnode{ ipaddress saddr; ipaddress daddr; u_short sport; u_short dport; u_short length; u_int upnum; u_int downnum; struct udpnode * next; struct udpnode * pre; }; typedef struct tcpnode{ ipaddress saddr; ipaddress daddr; u_short sport; u_short dport; u_short length;

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

相关文档
相关文档 最新文档