当前位置:文档之家› (完整word版)网络协议抓包分析

(完整word版)网络协议抓包分析

中国矿业大学《网络协议》

姓名:李程

班级:网络工程2009-2

学号:08093672

实验一:抓数据链路层的帧

一、实验目的

分析MAC层帧结构

二、准备工作

本实验需要2组试验主机,在第一组上安装锐捷协议分析教学系统,使用其中的协议数据发生器对数据帧进行编辑发送,在第二组上安装锐捷协议分析教学系统,使用其中的网络协议分析仪对数据帧进行捕获分析。

三、实验内容及步骤

步骤一:运行ipconfig命令

步骤二:编辑LLC信息帧并发送

步骤三:编辑LLC监控帧和无编号帧,并发送和捕获:步骤四:保存捕获的数据帧

步骤五:捕获数据帧并分析

使用iptool进行数据报的捕获:

报文如下图:

根据所抓的数据帧进行分析:

(1)MAC header

目的物理地址:00:D0:F8:BC:E7:06

源物理地址:00:16:EC:B2:BC:68

Type是0x800:意思是封装了ip数据报

(2)ip数据报

由以上信息可以得出:

①版本:占4位,所以此ip是ipv4

②首部长度:占4 位,可表示的最大十进制数值是15。此ip数据报没有选项,故它的最大十进制为5。

③服务:占8 位,用来获得更好的服务。这里是0x00

④总长度:总长度指首都及数据之和的长度,单位为字节。因为总长度字段为16位,所以数据报的最大长度为216-1=65 535字节。

此数据报的总长度为40字节,数据上表示为0x0028。

⑤标识(Identification):占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,

因为IP是无连接的服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

在这个数据报中标识为18358,对应报文16位为47b6

⑥标志(Flag):占3 位,但目前只有2位有意义。标志字段中的最低位记为MF (More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。标志字段中间的一位记为DF(Don't Fragment),意思是“不能分片”。只有当DF=0时才允许分片。这个报文的标志是010,故表示为不分片!对应报文16位为0x40。

⑦片偏移:因为不分片,故此数据报为0。对应报文16位为0x00。

⑧生存时间:占8位,生存时间字段常用的英文缩写是TTL (Time To Live),其表明数据报在网络中的寿命。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1 秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。经分析,这个数据报的的TTL为64跳!对应报文16位为0x40。

⑨协议:占8 位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。这个ip数据报显示使用得是TCP协议对

应报文16位为0x06。

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

⑾源地址:占32位。此报文为219.219.61.32 对应数据为DB:DB:3D:20

⑿目的地址:占32位。此报文为199.75.218.77对应数据为77:4B:DA:4D

(13)选项:这里是无!

(2)TCP 报头

TCP报文首部格式

●源端口(Source Port):16位的源端口字段包含初始化通信的端口号。源端口和IP地址

的作用是标识报文的返回地址。这个报文是3204对应的数据报中的16位为0x0c84。●目的端口(Destination Port):16位的目的端口字段定义传输的目的。这个端口指明接收方

计算机上的应用程序接口。

这个报文的目的端口是80(代表了http协议)对应的数据报中的16位为0x0050

●序列号(Sequence Number):该字段用来标识TCP源端设备向目的端设备发送的字节流,

它表示在这个报文段中的第几个数据字节。序列号是一个32位的数。

这个报文的sequence number是2416921514对应的数据报中的16位为0x900f4baa

●确认号(Acknowledge Number):TCP使用32位的确认号字段标识期望收到的下一个段

的第一个字节,并声明此前的所有数据已经正确无误地收到,因此,确认号应该是上次已成功收到的数据字节序列号加1。收到确认号的源计算机会知道特定的段已经被收到。

确认号的字段只在ACK标志被设置时才有效。

这个报文的ACK是2803024519对应的数据报中的16位为0xa712c287

●首部长度(header length)这里是5 代表了20字节也表示tcp选项是无,对应的数

据报中的16位为0x50

●控制位(Control Bits):共6位,每一位标志可以打开一个控制功能。

URG(Urgent Pointer Field Significant,紧急指针字段标志):表示TCP包的紧急指针字段有效,用来保证TCP连接不被中断,并且督促中间齐备尽快处理这些数据。

这里URG为0 表示not set

ACK(Acknowledgement field significant,确认字段标志): 取1时表示应答字段有效,也即TCP应答号将包含在TCP段中,为0则反之。

这里ACK为1 表示是确认帧

PSH(Push Function,推功能):这个标志表示Push操作。所谓Push操作就是指在数据包到达接收端以后,立即送给应用程序,而不是在缓冲区中排队。

这里PSH位置0表示不直接送给应用程序

RST(Reset the connection,重置连接):这个标志表示感谢连接复位请求,用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包。

这里是0 表示不产生重置连接

SYN(Synchronize sequence numbers,同步序列号):表示同步序号,用来建立连接。

这里SYN为0,表示没有设置同步

FIN(No more data from sender):表示发送端已经发送到数据末尾,数据传送完成,发送FIN标志位的TCP段,连接将被断开。

这里FIN是0,表示没有设置

这里对应的数据报中的16位为0x10

●窗口(Window):目的主机使用16位的窗口字段告诉源主机它期望每次收到的数据通

的字节数。

此报文窗口大小为65535对应的数据报中的16位为0xffff

●校验和(Checksum):TCP头包括16位的校验和字段用于错误检查。源主机基于部分

IP头信息,TCP头和数据内容计算一个校验和,目的主机也要进行相同的计算,如果收到的内容没有错误过,两个计算应该完全一样,从而证明数据的有效性。

这里检验和为:0xf317

●紧急指针(Urgent Pointer):紧急指针字段是一个可选的16位指针,指向段内的最后一

个字节位置,这个字段只在URG标志被设置时才有效。

这里Urgent Pointer为零,表示没有使用紧急指针

选项(Option):至少1字节的可变长字段,标识哪个选项(如果有的话)有效。如果没有选项,这个字节等于0,说明选项的结束。这个字节等于1表示无需再有操作;等于2表示下四个字节包括源机器的最大长度(Maximum Segment Size,MSS).这里选项没有设置

●填充(Padding):这个字段中加入额外的零,以保证TCP头是32的整数倍。

实验二 IP报文分析

一、实验目的

掌握IP数据包的组成和网络层的基本功能;

二、准备工作

本实验需要2组试验主机,在第一组上安装锐捷协议分析教学系统,使用其中的协议数据发生器对数据帧进行编辑发送,在第二组上安装锐捷协议分析教学系统,使用其中的网络协议分析仪对数据帧进行捕获分析。

三、实验内容及步骤

步骤一:设定实验环境

步骤二:利用网络协议分析软件捕获并分析IP数据包

1、在某台主机中打开网络协议分析软件,在工具栏中点击“开始”,待一段时间后,点击“结束”,

2、在捕获到数据包中,选择IP数据包进行分析

分析捕获到的IP数据包,因此在本实验中,只分析数据的的IP 包头部分。

步骤三:利用网络协议编辑软件编辑并发送IP数据包

1、在主机PC1打开网络协议编辑软件,在工具栏选择“添加”,建立一个IP数据包。

2、填写“源物理地址”:可以在地址本中找到本机的MAC地址,

然后左键选择,点击“确定”加入地址。

3、填写“目的物理地址”:可以在地址本中选择PC2的MAC地址,然后左键选择并单击“确定”加入地址。

4、填写“类型或长度”:该字段值为0800。

点击工具栏或菜单栏中的“发送”,在弹出的对话框中配置发送次数,然后选择“开始”按钮,发送帧序列

在PC2中用协议分析器截获数据包并分析。

步骤四:运行ipconfig命令

步骤五:运行ping命令

IP数据报分析

由以上信息可以得出:

①版本:占4位,所以此ip是ipv4

②首部长度:占4 位,可表示的最大十进制数值是15。此ip数据报没有选项,故它的最大十进制为5。

③服务:占8 位,用来获得更好的服务。这里是0x00

④总长度:总长度指首都及数据之和的长度,单位为字节。因为总长度字段为16位,所以数据报的最大长度为216-1=65 535字节。

此数据报的总长度为40字节,数据上表示为0x0028。

⑤标识(Identification):占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号,

因为IP是无连接的服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标

识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。

在这个数据报中标识为18358,对应报文16位为47b6

⑥标志(Flag):占3 位,但目前只有2位有意义。标志字段中的最低位记为MF (More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。标志字段中间的一位记为DF(Don't Fragment),意思是“不能分片”。只有当DF=0时才允许分片。这个报文的标志是010,故表示为不分片!对应报文16位为0x40。

⑦片偏移:因为不分片,故此数据报为0。对应报文16位为0x00。

⑧生存时间:占8位,生存时间字段常用的英文缩写是TTL (Time To Live),其表明数据报在网络中的寿命。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1 秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。经分析,这个数据报的的TTL为64跳!对应报文16位为0x40。

⑨协议:占8 位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。这个ip数据报显示使用得是TCP协议对应报文16位为0x06。

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

⑾源地址:占32位。此报文为219.219.61.32 对应数据为DB:DB:3D:20

⑿目的地址:占32位。此报文为199.75.218.77对应数据为77:4B:DA:4D

(13)选项:这里是无!

(2)TCP 报头

TCP报文首部格式

●源端口(Source Port):16位的源端口字段包含初始化通信的端口号。源端口和IP地址

的作用是标识报文的返回地址。这个报文是3204对应的数据报中的16位为0x0c84。●目的端口(Destination Port):16位的目的端口字段定义传输的目的。这个端口指明接收方

计算机上的应用程序接口。

这个报文的目的端口是80(代表了http协议)对应的数据报中的16位为0x0050

●序列号(Sequence Number):该字段用来标识TCP源端设备向目的端设备发送的字节流,

它表示在这个报文段中的第几个数据字节。序列号是一个32位的数。

这个报文的sequence number是2416921514对应的数据报中的16位为0x900f4baa

●确认号(Acknowledge Number):TCP使用32位的确认号字段标识期望收到的下一个段

的第一个字节,并声明此前的所有数据已经正确无误地收到,因此,确认号应该是上次已成功收到的数据字节序列号加1。收到确认号的源计算机会知道特定的段已经被收到。

确认号的字段只在ACK标志被设置时才有效。

这个报文的ACK是2803024519对应的数据报中的16位为0xa712c287

●首部长度(header length)这里是5 代表了20字节也表示tcp选项是无,对应的数

据报中的16位为0x50

●控制位(Control Bits):共6位,每一位标志可以打开一个控制功能。

URG(Urgent Pointer Field Significant,紧急指针字段标志):表示TCP包的紧急指针字段有效,用来保证TCP连接不被中断,并且督促中间齐备尽快处理这些数据。

这里URG为0 表示not set

ACK(Acknowledgement field significant,确认字段标志): 取1时表示应答字段有效,也即TCP应答号将包含在TCP段中,为0则反之。

这里ACK为1 表示是确认帧

PSH(Push Function,推功能):这个标志表示Push操作。所谓Push操作就是指在数

据包到达接收端以后,立即送给应用程序,而不是在缓冲区中排队。

这里PSH位置0表示不直接送给应用程序

RST(Reset the connection,重置连接):这个标志表示感谢连接复位请求,用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包。

这里是0 表示不产生重置连接

SYN(Synchronize sequence numbers,同步序列号):表示同步序号,用来建立连接。

这里SYN为0,表示没有设置同步

FIN(No more data from sender):表示发送端已经发送到数据末尾,数据传送完成,发送FIN标志位的TCP段,连接将被断开。

这里FIN是0,表示没有设置

这里对应的数据报中的16位为0x10

●窗口(Window):目的主机使用16位的窗口字段告诉源主机它期望每次收到的数据通

的字节数。

此报文窗口大小为65535对应的数据报中的16位为0xffff

●校验和(Checksum):TCP头包括16位的校验和字段用于错误检查。源主机基于部分

IP头信息,TCP头和数据内容计算一个校验和,目的主机也要进行相同的计算,如果收到的内容没有错误过,两个计算应该完全一样,从而证明数据的有效性。

这里检验和为:0xf317

●紧急指针(Urgent Pointer):紧急指针字段是一个可选的16位指针,指向段内的最后一

个字节位置,这个字段只在URG标志被设置时才有效。

这里Urgent Pointer为零,表示没有使用紧急指针

选项(Option):至少1字节的可变长字段,标识哪个选项(如果有的话)有效。如果没有选项,这个字节等于0,说明选项的结束。这个字节等于1表示无需再有操作;等于2表示下四个字节包括源机器的最大长度(Maximum Segment Size,MSS).这里选项没有设置

●填充(Padding):这个字段中加入额外的零,以保证TCP头是32的整数倍。

实验三 ARP地址解析协议分析实验

一、实验目的

掌握ARP协议的作用和格式;

二、准备工作

本实验需要2组试验主机,在第一组上安装锐捷协议分析教学系统,使用其中的协议数据发生器对数据帧进行编辑发送,在第二组上安装锐捷协议分析教学系统,使用其中的网络协议分析仪对数据帧进行捕获分析。

三、实验内容及步骤

步骤一:设定实验环境

步骤二:捕获ARP报文并进行分析

1、在主机PC1中用命令arp –a可以查看ARP缓存表中的ARP 记录,用arp –d命令删除ARP缓存中的记录

2、在PC1中开启协议分析仪进行数据包捕获。

3、在PC1中用命令ping 219.219.61.114。

4、捕获ARP报文进行分析。

捕获的ARP请求报文; 捕获的ARP应答报文

在PC1中用命令arp –d删去ARP缓存中的ARP记录。

在PC1上开启协议分析仪捕获ARP包进行分析。

在PC1上ping PC3地址172.16.2.2。

对捕获的数据包进行分析。

步骤三:编辑发送ARP报文请求报文(同网段)

1、在命令提示符下运行:arp –d,清空ARP高速缓存。

2、编辑并发送ARP报文

3、在PC1上开启协议分析软件,进行数据包捕获分析

4、在PC1中用命令arp –a可以查看到ARP缓存中的PC2的ARP记录

步骤四:编辑发送ARP报文请求报文(不同网段)

1、在命令提示符下运行:arp –d,清空ARP高速缓存。

2、在PC1上编辑并发送ARP请求,目标地址为PC3主机的地址

3、在PC1上开启协议分析软件,进行数据包捕获分析

第一步:获得物理地址

抓arp数据报:

如下是ARP是请求报文:

帧头部分上两次实验已经分析,这里不再赘述了

ARP请求报文的格式如下:

分析报文如下:

此报文的源硬件地址为:00:16:EC:B2:BC:68

在请求时是广播所以是:FF:FF:FF:FF:FF:FF

硬件类型指明发送方想知道的硬件接口类型。对以太网,值为1;

这里是00 01,所以是以太网。

协议类型指明发送方提供的高层协议地址类型。对TCP/IP互联网,采用IP地址,值为十六机制的0800;

硬件地址长度:这里是6这里对应的数据报中的16位为0x06

协议地址长度:这里是4这里对应的数据报中的16位为0x04

操作指明ARP的操作类型,ARP请求为1

这里是0001 代表是请求

发送方硬件地址: 00:16:EC:B2:BC:68

发送方协议地址:219.219.61.32这里对应的数据报中的16位为DB DB 3D 20

目标硬件地址:00:00:00 :00 :00 :00

目标协议地址: 219.219.61.114这里对应的数据报中的16位为DB DB 3D 72

填充:这里没有添加

如下是arp应答报文:

报文分析:

请求和应答报文有些部分是相同的,就不再赘述了,只是目的地址和源地址互换了一下,且将请求的ip的作为源逻辑地址

此报文中:操作指明ARP的操作类型,ARP应答为2

这里是代表是请求

这里用了填充占用了18字节如上图阴影部分。

实验四tcp协议

一、三次握手过(利用HTTP协议)

,

Tcp握手第一次

Tcp握手的第二次

Tcp握手的三次

分析三次握手,入手点应该从seq和ack入手

如上图三个数据报:

首先看上图的三个tcp报文的共同部分

1、这个tcp连接应该是http服务,因为使用的端口为80

2、然后这三个tcp报文的地址:

本机物理地址:192.168.66.129

本机逻辑地址:0c:29:AD:44:3D:08

远地物理地址:119.75.217.56

远地逻辑地址:0d:50:56:e9:e3:27

然后是不同部分:

那就是seq和ack的不同,根据上图

第一次seq的值为:3452172089

ack 为0

第二次对第一次进行确认并且设置自己的seq:Ack为:3452172090 第一次seq+1

seq:948198055

第三次对第二次进行确认:

Seq为3452172090

Ack为948198056这里为第二次seq+1

二、FTP协议分析

分析ftp首先要了解ftp:

FTP(File Transfer Protocol, FTP)是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。

FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。当数据通过数据流传输时,控制流处于空闲状态。

分析:FTP使用的是tcp连接

所以如上图:

使用的端口21 用于控制,其他部分和tcp报文是相同的。

网络协议分析题库

第一章练习 1 OSI和ISO分别代表什么含义?它们是什么关系? 2 OSI/RM模型没有被最终采用的原因是什么? 3下面哪些协议属于应用层协议?( B ) A. TCP和UDP B. DNS和FTP C. IP D. ARP 4 Internet最早是在( C ) 网络的基础上发展起来的? A. ANSNET B. NSFNET C. ARPANET D. MILNET 5 当网络A上的主机向网络B上的主机发送报文时, 路由器要检查( B ) 地址 A.端口 B. IP C.物理 D.上述都不是 6.下面哪一个是应用层提供的服务? ( D ) A.远程登录服务 B.文件传送 C.邮件服务 D.上述都是 7要将报文交付到主机上的正确的应用程序, 必须使用( A )地址 A.端口 B. IP C.物理 D.上述都不是 8. 网络应用访问操作系统的常用接口是,实现IP地址到物理地址映射的协议是。 9. 在TCP/IP协议族中,能够屏蔽底层物理网络的差异,向上提供一致性服务的协议是;实现异构网络互联的核心设备是。 10. 在TCP/IP网络中,UDP协议工作在层,DNS协议工作在层。 11判断对错:TCP/IP是一个被广泛采用的网际互联协议标准,仅包含TCP和IP两个协议。() 第二章练习 1 PPP协议是什么英文的缩写?用于什么场合? 2 ISP验证拨号上网用户身份时,可以使用哪些认证协议? 3.PPP协议的通信过程包括哪几个阶段? 4.LCP的用途是什么? 5.PPP是Internet中使用的(1),其功能对应于OSI参考模型的(2),它 使用(3)技术来解决标志字段值出现在信息字段的问题。 (1)A. 报文控制协议 B. 分组控制协议 C. 点到点协议 D. 高级数据链路控制协议 (2)A. 数据链路层 B. 网络层 C. 传输层 D. 应用层

网络协议分析——抓包分析

计算机网络技术及应用实验报告开课实验室:南徐学院网络实验室

第一部分是菜单和工具栏,Ethereal提供的所有功能都可以在这一部分中找到。第二部分是被捕获包的列表,其中包含被捕获包的一般信息,如被捕获的时间、源和目的IP地址、所属的协议类型,以及包的类型等信息。 第三部分显示第二部分已选中的包的每个域的具体信息,从以太网帧的首部到该包中负载内容,都显示得清清楚楚。 第四部分显示已选中包的16进制和ASCII表示,帮助用户了解一个包的本来样子。 3、具体分析各个数据包 TCP分析:

源端口 目的端口序号 确认号 首部长度窗口大小值

运输层: 源端口:占2个字节。00 50(0000 0000 1001 0000) 目的端口:占2个字节。C0 d6(1100 0000 1101) 序号:占四个字节。b0 fe 5f 31(1011 0000 0101 1110 0011 0001) 确认号:占四个字节。cd 3e 71 46(1100 1101 0011 1110 0110 0001 0100 0110) 首部长度:共20个字节:50(0101 0001) 窗口大小值:00 10(0000 0000 0001 00000) 网络层: 不同的服务字段:20 (0010 0000)

总的长度:00 28(0000 0000 0010 10000) 识别:81 28(1000 0001 0010 10000) 片段抵消:40 00(0100 0000 0000 0000) 生存时间:34 (0011 0100) 协议: 06(0000 0110)

IGMP及抓包分析

IGMP IGMP 是Internet Group Management Protocol(互联网组管理协议)的简称。它是TCP/IP 协议族中负责IP 组播成员管理的协议,用来在IP 主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。 到目前为止,IGMP 有三个版本: 1、IGMPv1(由RFC 1112 定义) 2、IGMPv2(由RFC 2236 定义) 3、IGMPv3(由RFC 3376定义) 一、IGMPv1 1.1报文格式 1、版本: 版本字段包含IGMP版本标识,因此设置为1。 2、类型: 成员关系查询(0x11) 成员关系报告(0x12) 3、校验和 4、组地址: 当一个成员关系报告正被发送时,组地址字段包含组播地址。 当用于成员关系查询时,本字段为0,并被主机忽略。 1.2组成员加入过程 当一个主机希望接收一个组播组的数据,则发送成员加入报告给组播组。

IGMPv1 join包如下: 1.3查询与响应过程 路由器RTA(IGMP查询器)周期性地(默认60秒)向子网内所有主机(224.0.0.1代表子网内所有主机)发送成员关系查询信息。

所有主机收到IGMPv1成员关系查询信息,一主机首先向组播组发送IGMPv1成员关系报告。 组的其他成员监听到报告后抑制自己的成员关系报告发送。 1.4 抑制机制 当主机收到IGMP成员关系查询时,对它已经加入的每个组播组启动一个倒计数报告计时器。各个报告计时器初始值为从0到最大响应之间一个随机数,默认值是10秒。 计时器到时的主机则主动发送成员关系报告,目的地为该主机所属的组地址。 其它主机收到该成员关系报告,则抑制成员关系报告的发送,并删除计时器。 1.5 组成员离开过程 主机“默不作声”地离开组(不发送报告了)。 路由器发送成员关系查询信息。 路由器没有收到该组的IGMP报告,则再发送成员关系信息(3次查询周期过后)。 组播组超时,剪枝。 二、IGMPv2 2.1报文格式 1、类型 成员关系查询(0x11) 常规查询:用于确定哪些组播组是有活跃的,即该组是否还有成员在使用,常规查询地址由全零表示; 特定组查询:用于查询某具体组播组是否还有组成员。 版本2成员关系报告(0x16) 版本1成员关系报告(0x12) 离开组消息(0x17)

网络协议分析习题解答参考思路

《网络协议分析与实现》习题解答参考思路 第1章习题解答参考思路 习题1: 该题考查对异构网络互联概念、异构网络涉及的问题以及解决方法的理解程度。其中涉及的问题包括地址问题、包格式转换问题、路由问题等,其中1.1.3节还列举了很多其他的问题。 习题2: 该题可参考教材中所讲述的用户A和用户B的数据转换和传输过程进行解答。 习题3: 该题主要考查网上查找资料的能力。在http://biz.doczj.com/doc/5114227164.html,/上可以查到所有的RFC信息。 习题4: TCP/IP模型和OSI参考模型之间的层次对应关系及各层协议参见教材中的图1-5。 习题5: 该题主要考查动手能力,可以使用Wireshark(曾称为Ethereal)、Sniffer Portable 等软件进行抓包,然后针对一些具体报文进行分析。注意分析通信中的多路复用和多路分解过程,说出通信双方的物理地址、IP地址和端口地址。 习题6: 该题主要考查阅读代码的能力,这部分代码是对数据结构课程中队列操作的一个实现。该队列是一个基于优先级排序的队列,主要的数据结构是qinfo: struct qinfo { Bool q_valid; int q_type; /* mutex type */ int q_max; int q_count; int q_seen; int q_mutex; int *q_key;

char **q_elt; }; 具体操作如下: int enq(int q, void *elt, int key); /*入队列操作,根据key的大小插到队列中的合适位置*/ void * deq(int q);/*出队列操作*/ void * headq(int q);/*获取队列头部元素*/ void * seeq(int q);/*按顺序取队列元素*/ int newq(unsigned size, unsigned mtype); /*分配一个新的队列,并返回队列的索引位置*/ int freeq(int q);/*释放队列*/ int lenq(int q);/*获取队列长度*/ static int initq();/*初始化队列*/

网络协议分析——抓包分析

计算机网络技术及应用实验报告

第一部分是菜单和工具栏,Ethereal提供的所有功能都可以在这一部分中找到。 第二部分是被捕获包的列表,其中包含被捕获包的一般信息,如被捕获的时间、源和目的IP地址、所属的协议类型,以及包的类型等信息。 第三部分显示第二部分已选中的包的每个域的具体信息,从以太网帧的首部到该包中负载内容,都显示得清清楚楚。 第四部分显示已选中包的16进制和ASCII表示,帮助用户了解一个包的本来样子。 3、具体分析各个数据包 TCP分析:

源端口 目的端口序号 确认号 首部长度窗口大小值

运输层: 源端口:占2个字节。00 50(0000 0000 1001 0000) 目的端口:占2个字节。C0 d6(1100 0000 1101) 序号:占四个字节。b0 fe 5f 31(1011 0000 0101 1110 0011 0001) 确认号:占四个字节。cd 3e 71 46(1100 1101 0011 1110 0110 0001 0100 0110)首部长度:共20个字节:50(0101 0001) 窗口大小值:00 10(0000 0000 0001 00000) 网络层: 不同的服务字段:20 (0010 0000)

总的长度:00 28(0000 0000 0010 10000) 识别:81 28(1000 0001 0010 10000) 片段抵消:40 00(0100 0000 0000 0000) 生存时间:34 (0011 0100) 协议: 06(0000 0110)

69 5b(0110 1001 0101 1011) 首部来源:dd b4 15 f1(1101 1101 1011 0100 0001 0101 1110 0001) 目的地:70 04 f8 82 (0110 0000 0000 0100 1111 1000 1000 0010) 点对点协议:00 21 (0000 0000 0010 0001)

wireshark抓包分析了解相关协议工作原理

安徽农业大学 计算机网络原理课程设计 报告题目wireshark抓包分析了解相关协议工作原理 姓名学号 院系信息与计算机学院专业计算机科学与技术 中国·合肥 二零一一年12月

Wireshark抓包分析了解相关协议工作原理 学生:康谦班级:09计算机2班学号:09168168 指导教师:饶元 (安徽农业大学信息与计算机学院合肥) 摘要:本文首先ping同一网段和ping不同网段间的IP地址,通过分析用wireshark抓到的包,了解ARP地址应用于解析同一局域网内IP地址到硬件地址的映射。然后考虑访问http://biz.doczj.com/doc/5114227164.html,抓到的包与访问http://biz.doczj.com/doc/5114227164.html,抓到的包之间的区别,分析了访问二者网络之间的不同。 关键字:ping 同一网段不同网段 wireshark 协议域名服务器 正文: 一、ping隔壁计算机与ping http://biz.doczj.com/doc/5114227164.html,抓到的包有何不同,为什么?(1)、ping隔壁计算机 ARP包:

ping包: (2)ing http://biz.doczj.com/doc/5114227164.html, ARP包:

Ping包: (3)考虑如何过滤两种ping过程所交互的arp包、ping包;分析抓到的包有

何不同。 答:ARP地址是解决同一局域网上的主机或路由器的IP地址和硬件地址的映射问题,如果要找的主机和源主机不在同一个局域网上,就会解析出网 关的硬件地址。 二、访问http://biz.doczj.com/doc/5114227164.html,,抓取收发到的数据包,分析整个访问过程。(1)、访问http://biz.doczj.com/doc/5114227164.html, ARP(网络层): ARP用于解析IP地址与硬件地址的映射,本例中请求的是默认网关的硬件地址。源主机进程在本局域网上广播发送一个ARP请求分组,询问IP地址为192.168.0.10的硬件地址,IP地址为192.168.0.100所在的主机见到自己的IP 地址,于是发送写有自己硬件地址的ARP响应分组。并将源主机的IP地址与硬件地址的映射写入自己ARP高速缓存中。 DNS(应用层): DNS用于将域名解析为IP地址,首先源主机发送请求报文询问http://biz.doczj.com/doc/5114227164.html, 的IP地址,DNS服务器210.45.176.18给出http://biz.doczj.com/doc/5114227164.html,的IP地址为210.45.176.3

网络协议分析与仿真

****** 网络协议分析与仿真 课程设计报告书 院系名称:计算机学院实验内容:网络流量分析学生姓名:*** 专业名称:网络工程班级:**** 学号:********* 时间:20**年**月**日

网络协议分析与仿真课程设计报告 网络流量分析 一、课程设计目的 加深对IP、DSN 、TCP、UDP、HTTP等协议的理解; 掌握流量分析工具的使用,学习基本的流量分析方法。 二、课程设计内容 流量分析 工具:Wireshark(Windows或Linux),tcpdump(Linux) 要求:使用过滤器捕获特定分组;用脚本分析大量流量数据(建议用perl)。 内容:Web流量分析 清除本机DNS缓存,访问某一网站主页,捕获访问过程中的所有分组,分析并回答下列问题(以下除1、3、8、11外,要求配合截图回答): (1)简述访问web页面的过程。 (2)找出DNS解析请求、应答相关分组,传输层使用了何种协议,端口号是多少? 所请求域名的IP地址是什么? (3)统计访问该页面共有多少请求IP分组,多少响应IP分组?(提示:用脚本编程实现) (4)找到TCP连接建立的三次握手过程,并结合数据,绘出TCP连接建立的完整过程,注明每个TCP报文段的序号、确认号、以及SYN\ACK的设置。 (5)针对(4)中的TCP连接,该TCP连接的四元组是什么?双方协商的起始序号是什么?TCP连接建立的过程中,第三次握手是否带有数据?是否消耗了一个 序号? (6)找到TCP连接的释放过程,绘出TCP连接释放的完整过程,注明每个TCP报文段的序号、确认号、以及FIN\ACK的设置。 (7)针对(6)中的TCP连接释放,请问释放请求由服务器还是客户发起?FIN报文段是否携带数据,是否消耗一个序号?FIN报文段的序号是什么?为什么是 这个值? (8)在该TCP连接的数据传输过程中,找出每一个ACK报文段与相应数据报文段的对应关系,计算这些数据报文段的往返时延RTT(即RTT样本值)。根据课本 200页5.6.2节内容,给每一个数据报文段估算超时时间RTO。(提示:用脚本 编程实现) (9)分别找出一个HTTP请求和响应分组,分析其报文格式。参照课本243页图6-12,在截图中标明各个字段。

网络抓包实验

《网络信息与安全》 实验名称: 网络流量分析和监测程序的实现。 指导老师: 张兰萍 设计学生:许欣学号:07202123 班级:07行知网络 日期:2010.11.30 实验要求: 学会利用编程工具进行网络数据包的捕获并析出报文信息。结出所实现程序的功能结构图: 给出程序设计的思想: 网络层上有各种各样的数据包,它们以不同的帧格式在网络层上进行传输,但是在传输时它们都遵循相同的格式,即有相同的长度,如果一种协议的帧格式达不到这种长度,就让其补齐,以达到我们的要求。我的这个网络抓包程序是图形化操作界面,在菜单栏点击抓包按钮后选择网卡和过滤字还有最长字长,点击开始,然后就可以开始抓包了,在主界面中就会显示出一行又一行的数据,这些数据就是抓获到的数据包。 捕获Java程序中的网络包,是需要一些辅助工具,因为核心Java API不能访问底层的网络数据。Jpcap是一种提供在Windows或UNIX系统上进行这种访问的Java API。在程序设计之初就下载

了该包。Jpcap使用一个事件模型来处理包,首先创建一个执行接口jpcap.JpcapHandler的类。 为了捕获包,需要告诉Jpcap你想用哪个网络设备来监听。API 提供了jpcap.Jpcap.getDeviceList()方法以满足这一目的。这个方法返回一列字符串。 选择一个设备之后,通过Jpcap.openDevice()方法打开它。openDevice()方法需要四个参数:即将打开的设备名,从设备上一次读取的最大字节数,说明是否将设备设为混杂模式的Boolean值,和以后调用processPacket()方法要使用到的超时值。如果调用processPacket(),那么Jpcap将一直捕获包,直到超过openDevice中规定的时限或达到了规定的最大包数。loopPacket()则将一直捕获包,直到达到最大包数,如果没有最大数限制,它将永远运行下去。 关键程序说明: 抓包程序package netcap; import java.io.File; import java.util.Vector; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import jpcap.JpcapCaptor; import jpcap.PacketReceiver; import jpcap.JpcapWriter;

IGMP与MLD(BTV IPTV)性能测试指导

1 提供BTV业务功能 本文介绍kylinPET性能测试工具进行IPTV的直播测试 1)图形化直观表示BTV业务交互流程 2)支持视频媒体MDI、RTP丢包等指标监控 3)每个BTV用户一个虚拟IP 4)支持IPv4的IGMP组播;支持IPv6的MLD组播 2 IGMP组播加入频道并监控频道质量 通过该例子,介绍如何使用工具完成BTV业务测试,及介绍工具的界面使用方法。操作步骤: 2.1 Scripter创建流程脚本 2.1.1 新建业务脚本 点击“文件” -> “新建”或者“工具栏”的“新建”按钮。HeBIn

2.1.2 编辑脚本流程 1)配置参数列表 A.新建group-source2参数作为组播报文源IP 按顺序递增,即用户1的组播源IP为152.168.1.1,用户2的组播源IP为 152.1681.2 B.新建group-ip2参数作为组播报文的组播IP

C.新建port参数作为监听媒体流的目的端口 D.组播协议为v3

注意: 1、V3版本需要配置组播源IP,组播IP;而v2版本不需要配置组播源IP,只需要组播IP。 2、V3版本IGMP报文目的IP为224.0.0.22;而v2版本IGMP报文目的IP为配置的组播IP 2)编辑流程图 A.编辑BTV业务流程图,监控媒体流,发送加入组播组报文,休眠20秒,关 闭媒体流,发送离开组播组报文。 B.“monitor A”媒体节点

通知媒体代理器监控媒体流指标,这里选择媒体流目的IP与端口(需在参数预先配置) C.“join A”发送节点 发送IGMP组播报文,组播组IP为group-ip2,组播源为group-source2 D.“close”媒体节点

抓包实验

:利用Wireshark软件进行数据包抓取 1.3.2 抓取一次完整的网络通信过程的数据包实验 一,实验目的: 通过本次实验,学生能掌握使用Wireshark抓取ping命令的完整通信过程的数据包的技能,熟悉Wireshark软件的包过滤设置和数据显示功能的使用。 二,实验环境: 操作系统为Windows 7,抓包工具为Wireshark. 三,实验原理: ping是用来测试网络连通性的命令,一旦发出ping命令,主机会发出连续的测试数据包到网络中,在通常的情况下,主机会收到回应数据包,ping采用的是ICMP协议。 四,验步骤: 1.确定目标地址:选择http://biz.doczj.com/doc/5114227164.html,作为目标地址。 2.配置过滤器:针对协议进行过滤设置,ping使用的是ICMP协议,抓包前使用捕捉过滤器,过滤设置为icmp,如图 1- 1

图 1-1 3.启动抓包:点击【start】开始抓包,在命令提示符下键入ping http://biz.doczj.com/doc/5114227164.html,, 如图 1-2

图 1-2 停止抓包后,截取的数据如图 1-3 图 1-3 4,分析数据包:选取一个数据包进行分析,如图1- 4

图1-4 每一个包都是通过数据链路层DLC协议,IP协议和ICMP协议共三层协议的封装。DLC协议的目的和源地址是MAC地址,IP协议的目的和源地址是IP地址,这层主要负责将上层收到的信息发送出去,而ICMP协议主要是Type和Code来识别,“Type:8,Code:0”表示报文类型为诊断报文的请求测试包,“Type:0,Code:0”表示报文类型为诊断报文类型请正常的包。ICMP提供多种类型的消息为源端节点提供网络额故障信息反馈,报文类型可归纳如下: (1)诊断报文(类型:8,代码0;类型:0代码:0); (2)目的不可达报文(类型:3,代码0-15); (3)重定向报文(类型:5,代码:0--4); (4)超时报文(类型:11,代码:0--1); (5)信息报文(类型:12--18)。

IPV6抓包协议分析

IPV6协议抓包分析 一、实践名称: 在校园网配置使用IPv6,抓包分析IPv6协议 二、实践内容和目的 内容:网络抓包分析IPv6协议。 目的:对IPv6协议的更深层次的认识,熟悉IPv6数据报文的格式。 三、实践器材: PC机一台,网络抓包软件Wireshark 。 四、实验数据及分析结果: 1.IPv6数据报格式: 2. 网络抓包截获的数据:

3. 所截获的IPv6 的主要数据报为:? Internet Protocol Version 6?0110 .... = Version: 6?. (0000) 0000 .... .... .... .... .... = Traffic class: 0x00000000?.... .... .... 0000 0000 0000 0000 0000 = Flowlabel: 0x00000000 Payload length: 93 Next header: UDP (0x11)?Hop limit: 1?Source: fe80::c070:df5a:407a:902e (fe80::c070:df5a:407a:902e) Destination: ff02::1:2 (ff02::1:2) 4. 分析报文: 根据蓝色将报文分成三个部分:

第一部分: 33 33 00 01 00 02,目的组播地址转化的mac地址, 以33 33 00表示组播等效mac;00 26 c7 e7 80 28, 源地址的mac地址;86 dd,代表报文类型为IPv6 (0x86dd); 第二部分: 60,代表包过滤器"ip.version == 6"; 00 00 00,Traffic class(通信类别): 0x00000000; 00 5d,Payload length(载荷长度,即报文的最后一部分,或者说是报文携带的信息): 32; 11,Next header(下一个封装头): ICMPv6 (17); 01,Hop limit(最多可经历的节点跳数): 1; fe 80 00 00 00 00 00 00 c0 70 df 5a 40 7a 90 2e,源ipv6地址; ff 02 00 00 00 00 00 00 00 00 00 00 00 01 00 02,目的ipv6地址; 第三部分(报文携带的信息): 02,表示类型为Neighbor Solicitation (2); 22,表示Code: 38; 02 23是Checksum(校验和): 0x6faa [correct]; 00 5d 36 3a,Reserved(保留位): 00000000; fe 80 00 00 00 00 00 00 76 d4 35 ff fe 03 56 b0,是组播地址中要通信的那个目的地址; 01 01 00 23 5a d5 7e e3,表示

HTTPS请求工具类汇总

HTTPS请求 package com.sunzk.dreamsunlight.weixin.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import http://biz.doczj.com/doc/5114227164.html,.ConnectException; import http://biz.doczj.com/doc/5114227164.html,.URL; import http://biz.doczj.com/doc/5114227164.html,.ssl.HttpsURLConnection; import http://biz.doczj.com/doc/5114227164.html,.ssl.SSLContext; import http://biz.doczj.com/doc/5114227164.html,.ssl.SSLSocketFactory; import http://biz.doczj.com/doc/5114227164.html,.ssl.TrustManager; import net.sf.json.JSONException; import net.sf.json.JSONObject; import org.apache.log4j.Logger;

import com.sunzk.dreamsunlight.weixin.certificate.MyX509 TrustManager; import com.sunzk.dreamsunlight.weixin.model.Menu; import com.sunzk.dreamsunlight.weixin.token.AccessToken; /** * * @ClassName: WeiXinHttpsUtil * * @Description: TODO(微信HTTPS请求工具类) * * @author sunzk-dreamsunlight-QQ(1131341075) * * @date 2016-11-14 上午10:05:56 * */ public class WeiXinHttpsUtil {

网络协议分析最终版

中南林业科技大学 实验报告 课程名称:网络协议与分析 姓名:项学静学号:20104422 专业班级:2010级计算机科学与技术 系(院):计算机与信息工程学院 实验时间:2013年下学期 实验地点:电子信息楼602机房

实验一点到点协议PPP 一、实验目的 1.理解PPP协议的工作原理及作用。 2.练习PPP,CHAP的配置。 3.验证PPP,CHAP的工作原理。 二、实验环境 1.安装windows操作系统的PC计算机。 2.Boson NetSim模拟仿真软件。 三、实验步骤 1、绘制实验拓扑图 利用Boson Network Designer绘制实验网络拓扑图如图1-1。 本实验选择两台4500型号的路由器。同时,采用Serial串行方式连接两台路由器,并选择点到点类型。其中DCE端可以任意选择,对于DCE端路由器的接口(Serial 0/0)需要配置时钟信号(这里用R1的Serial 0/0作为DCE端)。 2、配置路由器基本参数

绘制完实验拓扑图后,可将其保存并装入Boson NetSim中开始试验配置。配置时点击Boson NetSim程序工具栏按钮eRouters,选择R1 并按下面的过程进行路由器1的基本参数配置: Router>enable Router#conf t Router(config)#host R1 R1(config)#enable secret c1 R1(config)#line vty 0 4 R1(config-line)#password c2 R1(config-line)#interface serial 0/0 R1(config-if)#ip address 192.168.0.1 255.255.255.0 R1(config-if)#clock rate 64000 R1(config-if)#no shutdown R1(config-if)#end R1#copy running-config startup-config 点击工具栏按钮eRouters,选择R2并按下面过程进行路由器的基本参数配置:Router>enable Router#conf t Router(config)#host R2

使用wireshark分析HTTPS流程的建立

使用wireshark分析HTTPS流程的建立

使用wireshark分析HTTPS流程的建立 摘要: https流程 一、概要 为了网站以及用户的安全性,现在很多的网站都是https,大家都知道tcp通过三次握手建立连接,并且还有很多的同学对https连接建立的流程不太明白,包括我自己,通过借助于wireshark这种抓包工具,我们可以尝试着了解一下大概的流程。 (图1) 本图是客户端(10.0.45.103)访问服务端(114.215.88.85)通过wireshark 抓包显示出来的双方交互数据,访问是通过https访问服务器上的一台nginx 服务器服务。请关注第一列的No。下文中很多时候会用no表示一次交互。 图中可以很明显的看出tcp的三次握手以及之后的TLS加密流程的建立。二、tcp的三次握手 通过流程图可以看出(也可以看图1 的19368到19370这三个编号),首先客户端向服务端发起一个SYN的请求,序号(Seq)为0,确认号(ACK)也为0,这代表是本次是由客户端发起的首次请求。本次请求的数据长度为0 然后服务端给客户端响应,此时服务端的Seq也是0,值得是服务端的第一回应,并且给客户端说,你的请求我已经收到了(ACK=1),

最后返还给客户端以后,客户端的序号+1,并且对服务端的响应做出确认,最后回给服务端,此时ACK=1,Seq=1 tcp的握手过程建立成功。 三、ssl连接的建立 通过以上可以看出,SSL也是建立在TCP的基础上的,经过tcp的三次握手,接下来才是加密信道的建立。 客户端和服务端建立安全连接大致经过以下几个步骤 1.客户端:ClientHello 2.服务端:Server Hello,Server certificate,Server Exchange,Server Hello Done 3.客户端:client Exchange 4.客户端:Application Data 5.服务端:New Session 6.服务端:Application Data 接下来看这几个步骤中具体的每一个步骤传输的内容 ClientHello client首先给服务端打招呼,对服务端说hello 应用层没什么特别的

计算机网络抓包实验报告

实验报告二

学号1040407105 实验项目 名称 利用Wireshark 进行抓包分析 上面的截图是抓取到的包,下面分别针对其中的一个TCP,UDP和ICMP进行分析 1.TCP TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,由IETF的RFC 793 说明(specified)。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。 在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。 应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分割成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个字节一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据(假设丢失了)将会被重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

学号1040407105 实验项目 名称 利用Wireshark 进行抓包分析 首先,TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,他是全双工的;在保证可靠性上,采用超时重传和捎带确认机制。 在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传。 在拥塞控制上,采用慢启动算法。 对于上面的抓包,选取其中的一个TCP进行分析 Source:119.147.91.131 Destination:180.118.215.175 Length:56 Info:http>500001[FIN,ACK] Seq=41,Ack=2877,win=66528 Len=0 1.1抓到的数据链路层中的帧 Frame 211:56bytes 即所抓到的帧的序号为211,大小是56字节 1.2 IP层中的IP数据报 Header Length:20bytes 即首部长度为20个字节;

(完整word版)网络协议抓包分析

中国矿业大学《网络协议》 姓名:李程 班级:网络工程2009-2 学号:08093672

实验一:抓数据链路层的帧 一、实验目的 分析MAC层帧结构 二、准备工作 本实验需要2组试验主机,在第一组上安装锐捷协议分析教学系统,使用其中的协议数据发生器对数据帧进行编辑发送,在第二组上安装锐捷协议分析教学系统,使用其中的网络协议分析仪对数据帧进行捕获分析。 三、实验内容及步骤 步骤一:运行ipconfig命令

步骤二:编辑LLC信息帧并发送 步骤三:编辑LLC监控帧和无编号帧,并发送和捕获:步骤四:保存捕获的数据帧 步骤五:捕获数据帧并分析 使用iptool进行数据报的捕获: 报文如下图: 根据所抓的数据帧进行分析: (1)MAC header 目的物理地址:00:D0:F8:BC:E7:06 源物理地址:00:16:EC:B2:BC:68 Type是0x800:意思是封装了ip数据报 (2)ip数据报

由以上信息可以得出: ①版本:占4位,所以此ip是ipv4 ②首部长度:占4 位,可表示的最大十进制数值是15。此ip数据报没有选项,故它的最大十进制为5。 ③服务:占8 位,用来获得更好的服务。这里是0x00 ④总长度:总长度指首都及数据之和的长度,单位为字节。因为总长度字段为16位,所以数据报的最大长度为216-1=65 535字节。 此数据报的总长度为40字节,数据上表示为0x0028。 ⑤标识(Identification):占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但这个“标识”并不是序号, 因为IP是无连接的服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。 在这个数据报中标识为18358,对应报文16位为47b6 ⑥标志(Flag):占3 位,但目前只有2位有意义。标志字段中的最低位记为MF (More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。标志字段中间的一位记为DF(Don't Fragment),意思是“不能分片”。只有当DF=0时才允许分片。这个报文的标志是010,故表示为不分片!对应报文16位为0x40。 ⑦片偏移:因为不分片,故此数据报为0。对应报文16位为0x00。 ⑧生存时间:占8位,生存时间字段常用的英文缩写是TTL (Time To Live),其表明数据报在网络中的寿命。每经过一个路由器时,就把TTL减去数据报在路由器消耗掉的一段时间。若数据报在路由器消耗的时间小于1 秒,就把TTL值减1。当TTL值为0时,就丢弃这个数据报。经分析,这个数据报的的TTL为64跳!对应报文16位为0x40。 ⑨协议:占8 位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。这个ip数据报显示使用得是TCP协议对

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

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

网络数据包的协议分析程序的设计开发 摘要 本文设计与实现了一个基于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

实验四Ethereal抓包软件高级

浙江大学城市学院实验报告 课程名称计算机网络应用 实验项目名称实验四Ethereal抓包软件高级 实验成绩指导老师(签名)日期2014-05-13 一. 实验目的和要求 1. 进一步学习掌握Ethereal过滤规则的设置 2. 使用Ethereal捕获Ethernet帧,并对高层协议数据包进行分析 二. 实验内容、原理及实验结果与分析 1. 在Ethereal中创建并设置以下过滤规则 1.1捕获局域网上的所有UDP数据包 【过滤规则】 udp 1.2捕获本地主机收到和发出的所有FTP数据包 【过滤规则】 host 10.66.19.27 and tcp port 21 1.3捕获本地主机和某一主机之间的远程桌面控制数据包(TCP端口3389) 【过滤规则】 host 10.66.19.27 and tcp port 3389 1.4捕获本地主机和之间的通信

【过滤规则】 host 10.66.19.27 and 2. 捕获并解析TCP/IP协议的高层协议数据包 2.1捕获解析本机发出或接收的UDP数据包,并对照UDP报头格式进行解 释(如发送QQ信息构造UDP数据包) 【实验结果与分析】 host 10.66.19.27and udp UDP数据包 长度6字节6字节2字节 字段Source port Destination port Length 值1042 35208 36 2.2捕获解析本地主机发出及收到的FTP数据包,并对照TCP报头格式进 行解释,同时分析FTP发出的命令和响应(如构造FTP数据包)【实验结果与分析】 host 10.66.19.27 and

TCP-IP协议抓包分析实验报告

TCP协议分析实验 学号: 姓名: 院系: 专业:

一.实验目的 学会使用Sniffer抓取ftp的数据报,截获ftp账号及密码,并分析TCP 头的结构、分析TCP的三次“握手”和四次“挥手”的过程,熟悉TCP 协议工作方式。 二.实验(软硬件以及网络)环境 利用VMware虚拟机建立网络环境,并用Serv-U FTP Server在计算机上建立FTP服务器,用虚拟机进行登录。 三.实验工具 sniffer嗅探器,VMware虚拟机,Serv-U FTP Server。 四.实验基本配置 Micrsoft Windows XP操作系统 五.实验步骤 1.建立网络环境。 用Serv-U FTP Server在计算机上建立一台FTP服务器,设置IP地址 为:,并在其上安装sniffer嗅探器。再并将虚拟机作为一台FTP客户 端,设置IP地址为:。设置完成后使用ping命令看是否连通。 2.登录FTP 运行sniffer嗅探器,并在虚拟机的“运行”中输入,点确定后出现 如下图的登录窗口: 在登录窗口中输入:用户名(hello),密码(123456)【在Serv-U FTP Server中已设定】,就登录FTP服务器了。再输入“bye”退出FTP 3.使用sniffer嗅探器抓包 再sniffer软件界面点击“stop and display”,选择“Decode”选 项,完成FTP命令操作过程数据包的捕获。 六.实验结果及分析 1.在sniffer嗅探器软件上点击Objects可看到下图:

再点击“DECODE(反解码)”按钮进行数据包再分析,我们一个一个的分析数据包,会得到登录用户名(hello)和密码(123456)。如下图: 2. TCP协议分析 三次握手: 发报文头——接受报文头回复——再发报文(握手)开始正式通信。

相关主题