基于Wireshark的网络数据包内容解析

基于Wireshark的网络数据包内容解析
基于Wireshark的网络数据包内容解析

基于Wireshark的网络数据包内容解析

摘要本课程设计是利用抓包软件Wireshark,对网络服务器与客户端进行网络数据收发过程中产生的包进行抓取,然后对所抓取的包进行分析,并结合的协议进行分析,达到了解各种数据包结构的目的。设计过程中对各种包进行抓取分析,各种包之间比较,了解每种包的传输过程与结构,通过本次课程设计,能很好的运用Wireshark对数据包分析和Wireshark各种运用,达到课程设计的目的。

关键词IP协议;TCP协议;UDP协议;ARP协议;Wireshark;计算机网络;

1 引言

本课程设计主要是设计一个基于Wireshark的网络数据包内容解析,抓取数据包,然后对所抓取的包进行分析,并结合的协议进行分析,达到了解各种数据包结构的目的

1.1 课程设计目的

Wireshark是一个网络封包分析软件。可以对网络中各种网络数据包进行抓取,并尽可能显示出最为详细的网络封包资料,计算机网络课程设计是在学习了计算机网络相关理论后,进行综合训练课程,其目的是:

1.了解并会初步使用Wireshark,能在所用电脑上进行抓包;

2.了解IP数据包格式,能应用该软件分析数据包格式。

1.2 课程设计要求

(1)按要求编写课程设计报告书,能正确阐述设计结果。

(2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。

(3)学会文献检索的基本方法和综合运用文献的能力。

(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。

1.3 课程设计背景

一、Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。

网络封包分析软件的功能可想像成 "电工技师使用电表来量测电流、电压、电阻" 的工作 - 只是将场景移植到网络上,并将电线替换成网络线。在过去,网络封包分析软件是非常昂贵,或是专门属于营利用的软件。Wireshark的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Wireshark是目前全世界最广泛的网络封包分析软件之一。

二、网络嗅探需要用到网络嗅探器,其最早是为网络管理人员配备的工具,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。网络嗅探是网络监控系统的实现基础。

网络嗅探需要用到网络嗅探器,其最早是为网络管理人员配备的工具,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。嗅探器也是很多程序人员在编写网络程序时抓包测试的工具,因为我们知道网络程序都是以数据包的形式在网络中进行传输的,因此难免有协议头定义不对的。

网络嗅探的基础是数据捕获,网络嗅探系统是并接在网络中来实现对于数据的捕获的,这种方式和入侵检测系统相同,因此被称为网络嗅探。网络嗅探是网络监控系统的实现基础,首先就来详细地介绍一下网络嗅探技术,接下来就其在网络监控系统的运用进行阐述。

2 网络协议基础知识

2.1 IP协议

(1) IP协议介绍

IP 是英文Internet Protocol (网络互连的协议)的缩写,中文简称为“网协”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守 IP 协议就可以与因特网互连互通。

(2)IP 协议的网络互连实现

各个厂家生产的网络系统和设备,如以太网、分组交换网等,它们相互之间不能互通,不能互通的主要原因是因为它们所传送数据的基本单元(技术上称之为“帧”)的格式不同。IP 协议实际上是一套由软件程序组成的协议软件,它把各种不同“帧”统一转换成“IP 数据包”格式,这种转换是因特网的一个最重要的特点,使所有各种计算机都能在因特网上实现互通,即具有“开放性”的特点。

(3)IP 数据报

TCP/IP 协议定义了一个在因特网上传输的包,称为IP 数据报(IP Datagram)。这是一个与硬件无关的虚拟包, 由首部和数据两部分组成,其格式如图2.1所示:

图2-1 IP 数据报一般格式

IP 数据报的详细格式如图2.2所示: 0 3 7 15 31

版本 首部长度 服务类型

总长度 标识

标志 片偏移 生存时间 协议

头校验和 源IP 地址

目的IP 地址

选项

填充域

数据部分

图2-2 IP 数据报的详细格式 IP 数据报固定部分各字段含义:

(1)版本 占4位,指IP 协议的版本。通信双方使用的IP 协议版本必须一致。目前广泛使用的IP 协议版本号为4(即IPv4)。关于IPv6,目前还处于草案阶段。

(2)首部长度 占4位,可表示的最大十进制数值是15。请注意,这个字段所数据报的数据区

数据报首部

表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。

(3)区分服务占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务

DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。

(4)总长度总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。

在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit)。当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值。

(5)标识(identification) 占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

(6)标志(flag) 占3位,但目前只有2位有意义。

标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。

标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。

(7)片偏移占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍。

(8)生存时间占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。由发出数据报的源点设置这个字段。其目

的是防止无法交付的数据报无限制地在因特网中兜圈子,因而白白消耗网络资源。最初的设计是以秒作为TTL的单位。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL

值减1。当TTL值为0时,就丢弃这个数据报。

(9)协议占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。

(10)首部检验和占16位。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。

(11)源地址占32位。

(12)目的地址占32位。

IP数据报可选部分字段含义:

IP首部的可变部分就是一个可选字段。选项字段用来支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。某些选项项目只需要1个字节,它只包括1个字节的选项代码。但还有些选项需要多个字节,这些选项一个个拼接起来,中间不需要有分隔符,最后用全0的填充字段补齐成为4字节的整数倍。

2.2 ARP协议

(一)ARP协议简介:

ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。ARP是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC 地址,以保证通信的顺利进行。

硬件类型,ar_hrd(ARPHRD_ETHER)

协议类型,ar_pro(ETHERTYPE_IP)

硬件地址长度,ar_hln(6)

协议地址长度,ar_pln(4)

ether_dhost ether_ahost ether_type ar_op arp_sha arp_spa arp_tha arp_tpa

以太网目的地址以太网

源地址

帧类

型OP

发送者硬

件地址

发送者

IP地址

目标

硬件

目标IP

地址

6 bytes 6 2 2 2 1 1 2 6 4 6 4

以太网首部ARP首部

ether_header() arphdr()以太网ARP字段

ther_arp()

图2-3 ARP请求回答格式

(二)ARP协议的利用和相关原理介绍:

一、交换网络的嗅探

ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,在上面的假设网络中,B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是

DD-DD-DD-DD-DD-DD(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存,将本地的IP-MAC对应表更换为接收到的数据格式,由于这一切都是A的系统内核自动完成的,A可不知道被伪造了。

ARP欺骗的主要用途就是进行在交换网络中的嗅探。有关交换网络的嗅探不是本文的讨论内容。

二、IP地址冲突

在网络连接的时候,如果网络中存在相同IP地址的主机的时候,就会报告出IP地址冲突的警告。

假设某主机B规定IP地址为192.168.0.1,如果它处于开机状态,那么其他机器A 更

改IP地址为192.168.0.1就会造成IP地址冲突。其原理就是:主机A在连接网络(或更改IP地址)的时候就会向网络发送ARP包广播自己的IP地址,也就是freearp。如果网络中存在相同IP地址的主机B,那么B就会通过ARP来reply该地址,当A接收到这个reply后,A就会跳出IP地址冲突的警告,当然B也会有警告。

因此用ARP欺骗可以来伪造这个ARPreply,从而使目标一直遭受IP地址冲突警告的困扰。

三、阻止目标的数据包通过网关

在一个局域网内通过网关上网,那么连接外部的计算机上的ARP缓存中就存在网关IP-MAC对应记录。如果,该记录被更改,那么该计算机向外发送的数据包总是发送到了错误的网关硬件地址上,这样,该计算机就不能够上网了。

这里也主要是通过ARP欺骗进行的。以下两种办法达到这样的目的:

1、向目标发送伪造的ARP应答数据包,其中发送方的IP地址为网关的地址,而MAC 地址则为一个伪造的地址。当目标接收到该ARP包,那么就更新自身的ARP缓存。如果该欺骗一直持续下去,那么目标的网关缓存一直是一个被伪造的错误记录。当然,如果有些了解的人查看ARP-a,就知道问题所在了。

2、欺骗网关。向网关发送伪造的ARP应答数据包,其中发送方的IP地址为目标的IP地址,而MAC地址则为一个伪造的地址。这样,网关上的目标ARP记录就是一个错误的,网关发送给目标的数据报都是使用了错误的MAC地址。这种情况下,目标能够发送数据到网关,却不能接收到网关的任何数据。同时,目标自己查看ARP-a却看不出任何问题来。

四、通过ARP检测混杂模式节点

在混杂模式中,网卡进行包过滤不同于普通模式。本来在普通模式下,只有本地地址的数据包或者广播(多播等)才会被网卡提交给系统核心,否则的话,这些数据包就直接被网卡抛弃。现在,混合模式让所有经过的数据包都传递给系统核心,然后被sniffer等程序利用。

通过特殊设计的ARP请求可以用来在一定程度上检测处于混杂模式的节点,比如对网络中的每个节点都发送MAC地址为FF-FF-FF-FF-FF-FE的ARP请求。对于网卡来说这不是一个广播地址(FF-FF-FF-FF-FF-FF),所以处于普通模式的节点就会直接抛弃该数据包,但是多数操作系统核心都认为这是一个广播地址,如果有一般的sniffer程序存在,并设置网卡为混杂模式,那么系统核心就会作出应答,这样就可以判断这些节点是否存在嗅探器了。

可以查看,很多基于ARP的攻击都是通过ARP欺骗实现的。至于ARP欺骗的防范,还是尽可能使用静态的ARP。对于WIN,使用arp-s来进行静态ARP的设置。当然,如果能够完全使用静态的IP+MAC对应,就更好了,因为静态的ARP缓存只是相对的。

可以有一些方法来实现ARP欺骗的检测。设置一个ARP的嗅探器,其中维护着一个本地网络的IP-MAC地址的静态对应表,查看所有经过的ARP数据,并检查其中的IP-MAC 对应关系,如果捕获的IP-MAC对应关系和维护的静态对应关系对应不上,那么就表明是一个欺骗的ARP数据包了。

3 网络嗅探的工作原理与分析

3.1 基于winpcap捕获数据的机理

运用以太网数据捕获的原理使得信息捕获系统能够拦截到我们所要的信息,这是捕获数据包的物理基础。

在网络数据包的捕获过程中,首先,数据包捕获系统必须绕过操作系统的协议栈来访问在网络上传输的原始数据包,这就要求一部分程序要运行在操作系统核心内部,直接与网络接口驱动交互。这个部分是系统依赖的,在WinPcap 的解决方案里它是由内核级的数据包监听设备驱动程序NPF 实现的。WinPcap 开发小组针对不同版本的Windows 操作系统提供了不同的驱动。这些驱动不仅提供了基本的特性,例如抓包和injection;还有更高级的特性,例如可编程的过滤器系统和监视引擎等。

其次,数据包捕获系统必须有用户级的程序接口,通过这些接口,用户程序可以利用内核驱动提供的高级特性。在WinPcap 的解决方案中是由两个不同的库:Packet.dll 和Wpcap.dll 库来实现的。WinPcap 的优势在于提供了一套标准的抓包接口与libpcap 兼容,可使得原来许多UNIX 平台下的网络分析工具快速移植过来便于开发各种网络分析工具,充分考虑了各种性能和效率的优化,包括对于NPF 内核层次上的过滤器支持,支持内核态的统计模式,提供了发送数据包的能力。前者提供了一个底层API,伴随着一个独立于Windows 操作系统的编程接口,这些API 可以直接用来访问驱动的函数;后者导出了一组更强大的与libpcap 一致的高层抓包函数库(capture primitives)。这些函数使得WinPcap 在数据包的捕获过程中可以以一种与网络硬件和操作系统无关

的方式进行。

3.2 基于winpcap数据包捕获的过程

在利用WinPcap 捕获分析网络数据时,主要是调用Packet.dll 和Wpcap.dll 中提供的API 函数进行操作。以下是基于WinPcap 的网络数据包捕获流程及相应的WinPcap 库函数。

(1)获取网络适配器信息

利用WinPcap 捕获数据包的第一步是要获得本地的网络适配器(网卡)列表。WinPcap 提供Pcap_findalldevs()和Pcap_findalldev_ex()这两个函数来实现些功能,这两个API 函数都返回一个pcap_if 结构列表,列表的每项内容都含有全面的网卡信息,尤其是字段名字和含有名字的描述以及有关驱动器的易读信息。

(2)设置并编译过滤器

WinPcap 使用的过滤规则兼容Tcpdump 的过滤规则,它提供一种高效的方法来捕获网络数据包的某些数据,且常和系统的捕获机制相集成。函数Pcap_compile()和Pcap_setfilter()用来实现过滤数据的功能。Pcap_compile()来编译一个过滤设备,它通过一个高层的boolean 型变量和字串产生一系列的能够被底层驱动所解释的二进制

编码。boolean 表示语法能够在这个文件的过滤表示语法中找到。pcap_setfilter()用来联系一个在内核驱动上过滤的过滤器,这时所有网络数据包都将流经过滤器,并拷贝到应用程序中。

(3)打开网络设备

使用函数Pcap_open()或者Pcap_open_line()。函数有三个参数snaplen、promisc、to_ms。snaplen 用于指定要捕获数据包的长度,最大为65535,如果设定一个值,则捕获到大于这个设定值的数据时,后面的数据会被截断掉。Promisc 表示是否把网卡设置为混杂模式,如果是1 表示设为混杂模式,在通常情况下网卡只接受发往它的数据包而忽略发往其他主机的数据包。但网卡处于混杂模式时它将接收所有的流经它的数据包,这就意味着在共享介质的情况下我们可以捕获到其它主机的数据包;大部分的数据包捕获程序都将混杂模式设为默认。to_ms 参数指定读数据的超时控制,超时以毫秒计算,当在超时时间内网卡上没有数据到来时对网卡的读操作将返回。

(4)捕获数据包

一旦网卡被打开,就可以调用Pcap_next(),Pacp_next_ex()或Pcap_loop()进行数据包的捕获。Pcap_next()和Pacp_next_ex()表示捕获一个可用数据包就返回;而

Pcap_loop()表示捕获多个数据包,可以循环捕获数据包,直到出现错误为止。这三个函数都有返回一个指向Pcap_pkthdr 结构的指针,Pcap_next()与Pcap_next_ex()的功能相似,不过后者只在win32 环境下运行。

(5)读取离线数据包

pcap_dump_open()被用来打开一个savefile以供写入数据包。pcap_open_offlin ()被用来打开savefile,并用pcap_next()来逐条读取数据包。

4 基于Wireshark的网络数据包内容解析

4.1 捕获数据包

运行Wireshark软件,点击,点击开始如图:

图4-1 对数据包进行捕获

一段时间后,捕获到网络数据包,如图:

图4-2 捕获到的数据包

4.2 数据包解析

运用Wireshark捕获的数据包,如图

计算机网络课程设计---基于Wireshark的网络数据包内容解析

基于Wireshark的网络数据包内容解析 摘要本课程设计是利用抓包软件Wireshark,对网络服务器与客户端进行网络数据收发过程中产生的包进行抓取,然后对所抓取的包进行分析,并结合的协议进行分析,达到了解各种数据包结构的目的。设计过程中对各种包进行抓取分析,各种包之间比较,了解每种包的传输过程与结构,通过本次课程设计,能很好的运用Wireshark对数据包分析和Wireshark各种运用,达到课程设计的目的。 关键词IP协议;TCP协议;UDP协议;ARP协议;Wireshark;计算机网络; 1 引言 本课程设计主要是设计一个基于Wireshark的网络数据包内容解析,抓取数据包,然后对所抓取的包进行分析,并结合的协议进行分析,达到了解各种数据包结构的目的 1.1 课程设计目的 Wireshark是一个网络封包分析软件。可以对网络中各种网络数据包进行抓取,并尽可能显示出最为详细的网络封包资料,计算机网络课程设计是在学习了计算机网络相关理论后,进行综合训练课程,其目的是: 1.了解并会初步使用Wireshark,能在所用电脑上进行抓包; 2.了解IP数据包格式,能应用该软件分析数据包格式。 1.2 课程设计要求 (1)按要求编写课程设计报告书,能正确阐述设计结果。 (2)通过课程设计培养学生严谨的科学态度,认真的工作作风和团队协作精神。 (3)学会文献检索的基本方法和综合运用文献的能力。

(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。 1.3 课程设计背景 一、Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。 网络封包分析软件的功能可想像成 "电工技师使用电表来量测电流、电压、电阻" 的工作 - 只是将场景移植到网络上,并将电线替换成网络线。在过去,网络封包分析软件是非常昂贵,或是专门属于营利用的软件。Wireshark的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Wireshark是目前全世界最广泛的网络封包分析软件之一。 二、网络嗅探需要用到网络嗅探器,其最早是为网络管理人员配备的工具,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。网络嗅探是网络监控系统的实现基础。 网络嗅探需要用到网络嗅探器,其最早是为网络管理人员配备的工具,有了嗅探器网络管理员可以随时掌握网络的实际情况,查找网络漏洞和检测网络性能,当网络性能急剧下降的时候,可以通过嗅探器分析网络流量,找出网络阻塞的来源。嗅探器也是很多程序人员在编写网络程序时抓包测试的工具,因为我们知道网络程序都是以数据包的形式在网络中进行传输的,因此难免有协议头定义不对的。 网络嗅探的基础是数据捕获,网络嗅探系统是并接在网络中来实现对于数据的捕获的,这种方式和入侵检测系统相同,因此被称为网络嗅探。网络嗅探是网络监控系统的实现基础,首先就来详细地介绍一下网络嗅探技术,接下来就其在网络监控系统的运用进行阐述。 2 网络协议基础知识 2.1 IP协议 (1) IP协议介绍

【小技巧】wireshark定位抓包与定位查看

【实用技巧】wireshark过滤抓包与过滤查看在分析网络数据和判断网络故障问题中,都离不开网络协议分析软件(或叫网络嗅探器、抓包软件等等)这个“利器”,通过网络协议分析软件我们可以捕获网络中正常传输哪些数据包,通过分析这些数据包,我们就可以准确地判断网络故障环节出在哪。网络协议分析软件众多,比如ethereal(wireshark的前身),wireshark,omnipeek,sniffer,科来网络分析仪(被誉为国产版sniffer,符合我们的使用习惯)等等,本人水平有限,都是初步玩玩而已,先谈谈个人对这几款软件使用感受,wireshark(ethereal)在对数据包的解码上,可以说是相当的专业,能够深入到协议的细节上,用它们来对数据包深入分析相当不错,更重要的是它们还是免费得,但是用wireshark(ethereal)来分析大量数据包并在大量数据包中快速判断问题所在,比较费时间,不能直观的反应出来,而且操作较为复杂。像omnipeek,sniffer,科来网络分析仪这些软件是专业级网络分析软件,不仅仅能解码(不过有些解码还是没有wireshark专业),还能直观形象的反应出数据情况,这些软件会对数据包进行统计,并生成各种各样的报表日志,便于我们查看和分析,能直观的看到问题所在,但这类软件是收费,如果想感受这类专业级的软件,我推荐玩科来网络分析仪技术交流版,免费注册激活,但是只能对50个点进行分析。废话不多说,下面介绍几个wireshark使用小技巧,说的不好,还请各位多指点批评。 目前wireshark最新版本是1.7的,先简单对比下wireshark的1.6和1.7版本。 下面是wireshark的1.6版本的界面图:

实验使用Wireshark分析

实验六使用W i r e s h a r k分析U D P 一、实验目的 比较TCP和UDP协议的不同 二、实验环境 与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。 三、实验步骤 1、打开两次TCP流的有关跟踪记录,保存在中,并打开两次UDP流中的有关跟踪文件。如图所示: 图1:TCP 流跟踪记录 图2:UDP流跟踪记录 2、分析此数据包: (1)TCP传输的正常数据: 文件的分组1到13中显示了TCP连接。这个流中的大部分信息与前面的实验相同。我们在分组1到分组3中看到了打开连接的三次握手。分组10到分组13显示的则是连接的终止。我们看到分组10既是一个带有FIN标志的请求终止连接的分组,又是一个最后1080个字节的(序号是3921—5000)的重传。 TCP将应用程序写入合并到一个字节流中。它并不会尝试维持原有应用程序写人的边界值。我们注意到TCP并不会在单个分组中传送1000字节的应用程序写入。前1000个字节会在分组4种被发送,而分组5则包含了1460个字节的数据-----一些来自第二个缓冲区,而另一些来自第三个缓冲区。分组7中含有1460个字节而分组8中则包含剩余的1080个字节。(5000-0=1080) 我们注意到实际报告上的秒是从初始化连接的分组1开始到关闭连接的分组10结束。分组11—13未必要计入接收端应用程序的时间内,因为一旦接收到第一个FIN,TCP层便马上发送一个关闭连接的信号。分组11—13只可能由每台计算机操作系统得TCP层后台传输。 如果我们注意到第一个包含数据的分组4和最后一个分组8之间的时间,我们就大约计算出和由UDP接收端所报告的秒相同的时间。这样的话,增加TCP传输时间的主要原因就是分组10中的重传。公平的说,UDP是幸运的,因为它所有的分组都在第一时间被接受了。

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

网络数据包的捕获与分析 【摘要】网络数据包的捕获对于网络安全有着巨大的作用,为我们更好的分析网络中的数据流提供了帮助。本论文是基于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.360docs.net/doc/3f11073065.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

计算机网络实验利用wireshark进行协议分析

实验4:利用W i r e s h a r k进行协议分析 1、实验目的 熟悉并掌握Wireshark的基本操作,了解网络协议实体间进行交互以及报文交换的情况。 2、实验环境 ?Windows 9x/NT/2000/XP/2003 ?与因特网连接的计算机网络系统 ?分组分析器Wireshark: 要深入理解网络协议,需要仔细观察协议实体之间交换的报文序列。为探究协议操作细节,可使协议实体执行某些动作,观察这些动作及其影响。这些任务可以在仿真环境下或在如因特网这样的真实网络环境中完成。观察在正在运行协议实体间交换报文的基本工具被称为分组嗅探器(packet sniffer)。顾名思义,一个分组嗅探器俘获(嗅探)计算机发送和接收的报文。一般情况下,分组嗅探器将存储和显示出被俘获报文的各协议头部字段的内容。图4-1 为一个分组嗅探器的结构。 图4-1 右边是计算机上正常运行的协议(在这里是因特网协议)和应用程序(如:w eb 浏览器和ftp 客户端)。分组嗅探器(虚线框中的部分)是附加计算机普通软件上的,主要有两部分组成。分组俘获库(packetcapture library)接收计算机发送和接收 图4-1 分组嗅探器的结构 的每一个链路层帧的拷贝。高层协议(如:HTTP、FTP、TCP、UDP、DNS、IP 等)交换的报文都被封装在链路层帧中,并沿着物理媒体(如以太网的电缆)传输。图1 假设所使用的物理媒体是以太网,上层协议的报文最终封装在以太网帧中。 分组嗅探器的第二个组成部分是分析器。分析器用来显示协议报文所有字段的内容。 为此,分析器必须能够理解协议所交换的所有报文的结构。例如:我们要显示图4-1 中HTTP 协议所交换的报文的各个字段。分组分析器理解以太网帧格式,能够识别包含在帧中的IP 数据报。分组分析器也要理解IP 数据报的格式,并能从IP 数据报中提取出TCP 报文段。然后,它需要理解TCP 报文段,并能够从中提取出HTTP 消息。 最后,它需要理解HTTP 消息。

利用wireshark分析HTTP协议实验报告

利用wireshark分析HTTP协议实验报告 姓名:杨宝芹 学号:2012117270 班级:电子信息科学与技术 时间:2014.12.26

利用wireshark分析HTTP协议实验报告 一、实验目的 分析HTTP协议。 二、实验环境 连接Internet的计算机,操作系统为windows8.1; Wireshark,版本为1.10.7; Google Chrome,版本为39.0.2171.65.m; 三、实验步骤 1.清空缓存 在进行跟踪之前,我们首先清空Web 浏览器的高速缓存来确保Web网页是从网络中获取的,而不是从高速缓冲中取得的。之后,还要在客户端清空DNS 高速缓存,来确保Web服务器域名到IP地址的映射是从网络中请求。 2.启动wireshare 3.开始俘获 1)在菜单中选择capture-options,选择网络,打开start。如下图:

2)在浏览器地址栏中输入https://www.360docs.net/doc/3f11073065.html,,然后结束俘获,得到如下结果: 3)在过滤器中选择HTTP,点击apply,得到如下结果:

在菜单中选择file-save,保存结果,以便分析。(结果另附) 四、分析数据 在协议框中选择“GET/HTTP/1.1”所在的分组会看到这个基本请求行后跟随 着一系列额外的请求首部。在首部后的“\r\n”表示一个回车和换行,以此将该 首部与下一个首部隔开。“Host”首部在HTTP1.1版本中是必须的,它描述了URL 中机器的域名,本实验中式https://www.360docs.net/doc/3f11073065.html,。这就允许了一个Web服务器在同一 时间支持许多不同的域名。有了这个数不,Web服务器就可以区别客户试图连接 哪一个Web服务器,并对每个客户响应不同的内容,这就是HTTP1.0到1.1版本 的主要变化。User-Agent首部描述了提出请求的Web浏览器及客户机器。接下 来是一系列的Accpet首部,包括Accept(接受)、Accept-Language(接受语言)、 Accept-Encoding(接受编码)、Accept-Charset(接受字符集)。它们告诉Web

Wireshark抓包实例分析

Wireshark抓包实例分析 通信工程学院010611班赖宇超01061093 一.实验目的 1.初步掌握Wireshark的使用方法,熟悉其基本设置,尤其是Capture Filter和Display Filter 的使用。 2.通过对Wireshark抓包实例进行分析,进一步加深对各类常用网络协议的理解,如:TCP、UDP、IP、SMTP、POP、FTP、TLS等。 3.进一步培养理论联系实际,知行合一的学术精神。 二.实验原理 1.用Wireshark软件抓取本地PC的数据包,并观察其主要使用了哪些网络协议。 2.查找资料,了解相关网络协议的提出背景,帧格式,主要功能等。 3.根据所获数据包的内容分析相关协议,从而加深对常用网络协议理解。 三.实验环境 1.系统环境:Windows 7 Build 7100 2.浏览器:IE8 3.Wireshark:V 1.1.2 4.Winpcap:V 4.0.2 四.实验步骤 1.Wireshark简介 Wireshark(原Ethereal)是一个网络封包分析软件。其主要功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。其使用目的包括:网络管理员检测网络问题,网络安全工程师检查资讯安全相关问题,开发者为新的通讯协定除错,普通使用者学习网络协议的

相关知识……当然,有的人也会用它来寻找一些敏感信息。 值得注意的是,Wireshark并不是入侵检测软件(Intrusion Detection Software,IDS)。对于网络上的异常流量行为,Wireshark不会产生警示或是任何提示。然而,仔细分析Wireshark 撷取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark不会对网络封包产生内容的修改,它只会反映出目前流通的封包资讯。Wireshark本身也不会送出封包至网络上。 2.实例 实例1:计算机是如何连接到网络的? 一台计算机是如何连接到网络的?其间采用了哪些协议?Wireshark将用事实告诉我们真相。如图所示: 图一:网络连接时的部分数据包 如图,首先我们看到的是DHCP协议和ARP协议。 DHCP协议是动态主机分配协议(Dynamic Host Configuration Protocol)。它的前身是BOOTP。BOOTP可以自动地为主机设定TCP/IP环境,但必须事先获得客户端的硬件地址,而且,与其对应的IP地址是静态的。DHCP是BOOTP 的增强版本,包括服务器端和客户端。所有的IP网络设定数据都由DHCP服务器集中管理,并负责处理客户端的DHCP 要求;而客户端则会使用从服务器分配下来的IP环境数据。 ARP协议是地址解析协议(Address Resolution Protocol)。该协议将IP地址变换成物理地址。以以太网环境为例,为了正确地向目的主机传送报文,必须把目的主机的32位IP地址转换成为48位以太网的地址。这就需要在互连层有一组服务将IP地址转换为相应物理地址,这组协议就是ARP协议。 让我们来看一下数据包的传送过程:

使用wireshark进行协议分析实验报告

1 深圳大学实验报告 实验课程名称:计算机网络 实验项目名称:使用wireshark进行协议分析 学院:计算机与软件学院专业:计算机科学与技术 报告人:邓清津学号:2011150146 班级:2班同组人:无 指导教师:杜文峰 实验时间:2013/6/10 实验报告提交时间:2013/6/10 教务处制

一、实验目的与要求 学习使用网络数据抓包软件.学习使用网络数据抓包软件wireshark,并对一些协议进行分析。 二、实验仪器与材料 Wireshark抓包软件 三、实验内容 使用wireshark分析各层网络协议 1.HTTP协议 2.ARP协议,ICMP协议 3.IP协议 4.EthernetII层数据帧 为了分析这些协议,可以使用一些常见的网络命令。例如,ping等。 四、实验步骤 1、安装Wireshark,简单描述安装步骤: 2、打开wireshark,选择接口选项列表。或单击“Capture”,配置“option” 选项。

3.点击start后,进行分组捕获,所有由选定网卡发送和接收的分组都将被捕获。 4. 开始分组捕获后,会出现如图所示的分组捕获统计窗口。该窗口统计显示各类已捕获分组的数量。在该窗口中有一个“stop”按钮,可以停止分组的捕获。

一、分析HTTP协议 1.在浏览器地址栏中输入某网页的URL,如:https://www.360docs.net/doc/3f11073065.html,。为显示该网页,浏览器需要连接https://www.360docs.net/doc/3f11073065.html,的服务器,并与之交换HTTP消息,以下载该网页。包含这些HTTP消息的以太网帧(Frame)将被WireShark捕获。 2. 在显示筛选编辑框中输入“http”,单击“apply”,分组列表窗口将只显示HTTP消息。 3.点击其中一个http协议包

网络数据包分析实验

实验一:网络数据包分析实验 班级:班学号:姓名:一、实验目的 通过对实际的网络数据包进行捕捉,分析数据包的结构,加深对网络协议分层概念的理解,并实际的了解数据链路层,网络层,传输层以及应用层的相关协议和服务。 、实验内容 1. IGMP包解析 1.1数据链路层 El代XEL洱丁;亡日:亡5 MB)」osr: IP- 4m 4 t-is :hi-At I _n * tP f Ld L^iJ 1 Sei 00:00:1^^ saur-ctt El1imro_&ai?SiU Type;IP CgMOsw) 源数据: 数据链路层头部:01 00 5e 00 00 16 00 21 97 0a e5 16 08 00 数据链路层尾部:00 00 00 00 00 00 分析如下:

数据头部的前6个字节是接收者的mac地址:01 00 5e 00 00 16 数据头部的中间6个字节是发送者的mac地址:00 21 97 0a e5 16 数据头部的最后2个字节代表网络协议,即:08 00协议类型。 1.2网络层 Header* 1 cngth: 24 byres n axed services "乜Id:0x00 (.DSCP 0X00: D&fau11: 0x003 Tqtil rength:斗D Tdsrrtificar I cn: QklclJ 也^7460) H Flmqs: Q>00 Fra^Tienr offset;:Q Time VQ live; 1 Fr DTCCDl : IGMP go?) ¥ HPAder fhecksijn:CxJ85c [correct] 5DU RUM;172,10.103.?0

实验四、使用Wireshark网络分析器分析数据包

实验四、使用Wireshark网络分析器分析数据包 一、实验目的 1、掌握Wireshark工具的安装和使用方法 2、理解TCP/IP协议栈中IP、TCP、UDP等协议的数据结构 3、掌握ICMP协议的类型和代码 二、实验内容 1、安装Wireshark 2、捕捉数据包 3、分析捕捉的数据包 三、实验工具 1、计算机n台(建议学生自带笔记本) 2、无线路由器n台 四、相关预备知识 1、熟悉win7操作系统 2、Sniff Pro软件的安装与使用(见Sniff Pro使用文档)

五、实验步骤 1、安装Wireshark Wireshark 是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包,并尝试显示包的尽可能详细的情况。网络包分析工具是一种用来测量有什么东西从网线上进出的测量工具,Wireshark 是最好的开源网络分析软件。 Wireshark的主要应用如下: (1)网络管理员用来解决网络问题 (2)网络安全工程师用来检测安全隐患 (3)开发人员用来测试协议执行情况 (4)用来学习网络协议 (5)除了上面提到的,Wireshark还可以用在其它许多场合。 Wireshark的主要特性 (1)支持UNIX和Windows平台 (2)在接口实时捕捉包 (3)能详细显示包的详细协议信息 (4)可以打开/保存捕捉的包 (5)可以导入导出其他捕捉程序支持的包数据格式

(6)可以通过多种方式过滤包 (7)多种方式查找包 (8)通过过滤以多种色彩显示包 (9)创建多种统计分析 五、实验内容 1.了解数据包分析软件Wireshark的基本情况; 2.安装数据包分析软件Wireshark; 3.配置分析软件Wireshark; 4.对本机网卡抓数据包; 5.分析各种数据包。 六、实验方法及步骤 1.Wireshark的安装及界面 (1)Wireshark的安装 (2)Wireshark的界面 启动Wireshark之后,主界面如图:

计算机网络实验-使用Wireshark分析IP协议

实验三使用Wireshark分析IP协议 一、实验目的 1、分析IP协议 2、分析IP数据报分片 二、实验环境 与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。 三、实验步骤 IP协议是因特网上的中枢。它定义了独立的网络之间以什么样的方式协同工作从而形成一个全球户联网。因特网内的每台主机都有IP地址。数据被称作数据报的分组形式从一台主机发送到另一台。每个数据报标有源IP地址和目的IP地址,然后被发送到网络中。如果源主机和目的主机不在同一个网络中,那么一个被称为路由器的中间机器将接收被传送的数据报,并且将其发送到距离目的端最近的下一个路由器。这个过程就是分组交换。 IP允许数据报从源端途经不同的网络到达目的端。每个网络有它自己的规则和协定。IP能够使数据报适应于其途径的每个网络。例如,每个网络规定的最大传输单元各有不同。IP允许将数据报分片并在目的端重组来满足不同网络的规定。 表 DHCP报文

者续借租用 DHCP-ACK DHCP服务器通知客户端可以使用分配的IP地址和配置参 数 DHCP-NAK DHCP服务器通知客户端地址请求不正确或者租期已过期, 续租失败 DHCP-RELEASE DHCP客户端主动向DHCP服务器发送,告知服务器该客户 端不再需要分配的IP地址 DHCP-DECLINE DHCP客户端发现地址冲突或者由于其它原因导致地址不 能使用,则发送DHCP-DECLINE报文,通知服务器所分配的 IP地址不可用 DHCP-INFORM DHCP客户端已有IP地址,用它来向服务器请求其它配置 参数 图 DHCP报文 1、使用DHCP获取IP地址

网络数据包协议分析

网络数据包协议分析 一、实验目的 1.学习网络协议分析工具Ethereal的使用方法; 2.截获数据并对它们观察,分析其中2中协议(arp&tcp)数据包包头各数据位的含义, 了解协议的运行机制。 二、实验步骤 1.安装并打开Ethereal软件; 2.利用”运行cmd”打开命令提示符,输入“ping”确认网络连接是否完成; 3.点击capture->options选择网卡(默认有线); 4.点击capture开始抓包; 5.打开浏览器,访问一个网站,这样才可以抓到tcp的数据包; 6.点击stop停止抓包。 三、实验结果分析 1.Arp---address resolution protocol,地址解析协议的缩写,就是主机在发送帧前将目 标IP地址(32位)转换成目标MAC地址(48位)的过程。它属于链路层的协议。

ARP协议数据包包头数据位分析: 1.第一栏显示帧信息。 Frame 280 (60 bytes on wire,60 bytes capture)是指该数据包含有60个字节,ethereal软件截获了60个字节。点击打开,里面包括了到达时间、相对前一个包的时间延迟、传输时间、帧号280、包长度(60字节)和捕获到的长度(60字节)。 2.第二栏显示以太网信息。 源MAC地址是f4:6d:04:3a:62:33,目的MAC地址是ff:ff:ff:ff:ff:ff。 3.第三栏显示因特网协议信息。 它包括了硬件类型:以太网;协议类型是IP协议和发送方的IP地址与MAC地址,也包括了目的IP地址和MAC地址。 2.tcp—transition control protocol,传输控制协议的缩写。是一种面向连接(连接导向) 的、可靠的、基于字节流的传输层通信协议。

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

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

实验报告:网络协议分析工具Wireshark的使用

网络协议分析工具Wireshark的使用 课程名称:计算机通信网实验 学院(系):计信学院 专业:电子信息工程 班级:电信一班 学号:0962610114 学生姓名:花青

一、实验目的 学习使用网络协议分析工具Wireshark的方法,并用它来分析一些协议。 二、实验原理和内容 1、tcp/ip协议族中网络层传输层应用层相关重要协议原理 2、网络协议分析工具Wireshark的工作原理和基本使用规则 三、实验环境以及设备 Pc机、双绞线 四、实验步骤(操作方法) 1.用Wireshark观察ARP协议以及ping命令的工作过程: (1)用“ipconfig”命令获得本机的MAC地址和缺省路由器的IP地址;(2)用“arp”命令清空本机的缓存; (3)运行Wireshark,开始捕获所有属于ARP协议或TCP协议的,并且源或目的MAC地址是本机的包(提示:在设置过滤规则时需要使用(1)中获得的本机的MAC地址); (4)执行命令:“ping 缺省路由器的IP地址”; 2.用Wireshark观察tracert命令的工作过程: (1)运行Wireshark, 开始捕获tracert命令中用到的消息; (2)执行“tracert -d https://www.360docs.net/doc/3f11073065.html,” 根据Wireshark所观察到的现象思考并解释tracert的工作原理。 3.用Wireshark观察TCP连接的建立过程和终止过程: (1)启动Wireshark, 配置过滤规则为捕获所有源或目的是本机的Telnet协议中的包(提示:Telnet使用的传输层协议是TCP,它使用TCP端口号23);(2)在Windows命令行窗口中执行命令“telnet https://www.360docs.net/doc/3f11073065.html,”,登录后再退出。

如何理解wireshark抓取的数据包含义之“Understanding TCP Sequence and Acknowledgment Numbers”

Understanding TCP Sequence and Acknowledgment Numbers By stretch | Monday, June 7, 2010 at 2:15 a.m. UTC If you're reading this, odds are that you're already familiar with TCP's infamous "three-way handshake," or "SYN, SYN/ACK, ACK." Unfortunately, that's where TCP education ends for many networkers. Despite its age, TCP is a relatively complex protocol and well worth knowing intimately. This article aims to help you become more comfortable examining TCP sequence and acknowledgment numbers in the Wireshark packet analyzer. Before we start, be sure to open the example capture in Wireshark and play along. The example capture contains a single HTTP request to a web server, in which the client web browser requests a single image file, and the server returns an HTTP/1.1 200 (OK) response which includes the file requested. You can right-click on any of the TCP packets within this capture and select Follow TCP Stream to open the raw contents of the TCP stream in a separate window for inspection. Traffic from the client is shown in red, and traffic from the server in blue. The Three-Way Handshake TCP utilizes a number of flags, or 1-bit boolean fields, in its header to control the state of a connection. T he three we're most interested in here are: ?SYN - (Synchronize) Initiates a connection ?FIN - (Final) Cleanly terminates a connection ?ACK - Acknowledges received data As we'll see, a packet can have multiple flags set.

网络数据包的协议分析程序的设计开发—毕业设计论文

毕业设计(论文)网络数据包的协议分析程序的设计开发 论文作者姓名: 申请学位专业: 申请学位类别: 指导教师姓名(职称): 论文提交日期:

网络数据包的协议分析程序的设计开发 摘要 本文设计与实现了一个基于Linux下Libpcap库函数的网络数据包协议分析程序。程序的主要功能包括网络数据包捕获和常用网络协议分析。程序由输入/输出模块、规则匹配模块、数据捕获模块、协议分析模块组成。其中数据捕获模块和协议分析模块是本程序最关键、最主要的模块。 本文的主要内容如下:首先介绍了网络数据包协议分析程序的背景和概念。其次进行了程序的总体设计:确定了程序的功能,给出了程序的结构图和层次图,描述了程序的工作流程,对实现程序的关键技术做出了分析。接着,介绍完数据包捕获的相关背景和Libpcap函数库后,阐述了如何利用Libpcap函数库实现网络数据包捕获模块。然后对协议分析流程进行了详细的讲解,分析了常用网络协议。最后进行了程序的测试与运行:测试了程序能否按照预期的效果正确执行,印证了预期结果。 关键词:Libpcap;Linux;数据包捕获;应用层;协议识别

The Design and Development of Network Packet Protocol Analyzing Program Abstract The thesis is an attempt to introduce an implementation of network protocol analyzing program which is based on Libpcap, a famous network packet capture library on Linux. It has a rich feature set which includes capturing network packets and analyzing popular network protocols on Internet. The program is made up of an input/output module, a rules matching module, a packet capturing module and a protocol analyzing module. And the last two modules are key modules. The research work was described as followed. firstly, we introduce the background and concepts about network protocol analyzing programs; and we make an integrated design on the program, define functions of it, figure out its structure and hierarchical graphs, describe the workflow of it, and analyze the key techniques used in it; Secondly, after elaborating on the background of packet capture and the Libpcap library, we state a approach to implement a packet capture module with Libpcap; Thirdly, we explain the workflow about protocol analysis, and analyze common network protocols; Finally, we test our program to see whether it works as expected, fortunately, it does. Key words: Libpcap; Linux; Network packet capturing; Application layer; Protocol identification

wireshark抓包分析

用wireshark分析Http 和Dns 报文 一、http请求报文和响应报文 wireshark所抓的一个含有http请求报文的帧: 1、帧的解释 链路层的信息上是以帧的形式进行传输的,帧封装了应用层、传输层、网络层的数据。而wireshark抓到的就是链 路层的一帧。 图中解释: Frame 18:所抓帧的序号是11,大小是409字节 Ethernet :以太网,有线局域网技术,属链路层 Inernet Protocol:即IP协议,也称网际协议,属网络层 Transmisson Control Protocol:即TCP协议,也称传输控 制协议。属传输层 Hypertext transfer protocol:即http协议,也称超文本传 输协议。属应用层 图形下面的数据是对上面数据的16进制表示。

2、分析上图中的http请求报文 报文分析: 请求行: GET /img/2009people_index/images/hot_key.gif HTTP/1.1 方法字段/ URL字段/http协议的版本 我们发现,报文里有对请求行字段的相关解释。该报文请求的是一个对象,该对象是图像。 首部行: Accept: */* Referer: https://www.360docs.net/doc/3f11073065.html,/这是网站网址 Accept-Language: zh-cn 语言中文 Accept-Encoding: gzip, deflate 可接受编码,文件格式User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Window s NT 5.1; SV1; CIBA; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; 360SE) 用户代理,浏览器的类型是Netscape浏览器;括号内 是相关解释 Host: https://www.360docs.net/doc/3f11073065.html,目标所在的主机 Connection: Keep-Alive 激活连接 在抓包分析的过程中还发现了另外一些http请求报文中所特有的首部字段名,比如下面http请求报文中橙黄色首部字段名:

相关文档
最新文档