完整word版IP和TCP数据分组捕获和解析.docx

上传人:b****5 文档编号:7248088 上传时间:2023-01-22 格式:DOCX 页数:17 大小:908.91KB
下载 相关 举报
完整word版IP和TCP数据分组捕获和解析.docx_第1页
第1页 / 共17页
完整word版IP和TCP数据分组捕获和解析.docx_第2页
第2页 / 共17页
完整word版IP和TCP数据分组捕获和解析.docx_第3页
第3页 / 共17页
完整word版IP和TCP数据分组捕获和解析.docx_第4页
第4页 / 共17页
完整word版IP和TCP数据分组捕获和解析.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

完整word版IP和TCP数据分组捕获和解析.docx

《完整word版IP和TCP数据分组捕获和解析.docx》由会员分享,可在线阅读,更多相关《完整word版IP和TCP数据分组捕获和解析.docx(17页珍藏版)》请在冰豆网上搜索。

完整word版IP和TCP数据分组捕获和解析.docx

完整word版IP和TCP数据分组捕获和解析

1实验二:

IP和TCP数据分组的捕获和解析

1.实验类别

协议分析型

2.实验内容和实验目的

本次实验内容:

1)捕获在连接Internet过程中产生的网络层分组:

DHCP分组,ARP分组,IP数据分组,ICMP分组。

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

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

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

4)分析TCP建立连接,拆除连接和数据通信的流程。

3.实验学时

4学时。

4.实验分组

单独完成。

5.实验设备环境

1台装有WindowsXP操作系统的pc机,要求能够连接到Internet,并安装WireShark软件。

6.实验步骤

6.1准备工作

启动计算机,连接网络确保能够上网,安装WireShark软件。

6.2捕获DHCP报文并分析

DHCP报文格式

先介绍一下DHCP的报文格式,如图1

OP

(1)

Htype

(1)

Hlen

(1)

Hops

(1)

TransactionID(4)

Seconds

(2)

Flags

(2)

Ciaddr(4)

Yiaddr(4)

Siaddr(4)

Giaddr(4)

Chaddr(16)

Sname(64)

File(128)

Options(variable)

(图1DHCP报文格式)

OP:

若是client送给server的封包,设为1,反向为2;

Htype:

硬件类别,ethernet为1;

Hlen:

硬件长度,ethernet为6;

Hops:

若数据包需经过router传送,每站加1,若在同一网内,为0;

TransactionID:

事务ID,是个随机数,用于客户和服务器之间匹配请求和相应消息;

Seconds:

由用户指定的时间,指开始地址获取和更新进行后的时间;

Flags:

从0-15bits,最左一bit为1时表示server将以广播方式传送封包给client,其余尚未使用;

Ciaddr:

用户IP地址;

Yiaddr:

客户IP地址;

Siaddr:

用于bootstrap过程中的IP地址;

Giaddr:

转发代理(网关)IP地址;

Chaddr:

client的硬件地址;

Sname:

可选server的名称,以0x00结尾;

File:

启动文件名;

Options:

,厂商标识,可选的参数字段

 

如下图所示,在DOS窗口执行命令ipconfig/release后,已经申请的IP地址被释放。

 

再执行ipconfig/renew,在WireShark上就看到了DHCP的四次握手获得IP地址,缺省路由DNS等参数的过程。

现在来详细分析下这四次握手的过程。

(1)第一次握手:

客户端首先向网络以广播形式发送DHCPdiscover报文,目的是发现网络中存在的DHCPserver,并请求给出回应。

从图中可以看出DHCPdiscover数据包二层源mac地址为源端口mac,目的mac为广播地址ff:

ff:

ff:

ff:

ff:

ff.三层源地址为0.0.0.0。

目的地址为广播地址255.255.255.255。

端口:

源端68,目的端67。

(2)第二次握手:

向client端提供IP地址。

当DHCP服务器监听到客户端发出的Dhcpdiscover广播后,它会从那些还没有租出的地址池内,选择最前面的的空置IP,连同其它TCP/IP设定,回应给客户端一个DHCPOFFER封包。

由于客户端在开始的时候还没有IP位址,所以在其Dhcpdiscover封包内会带有其MAC位址信息,并且有一个XID编号来辨别该封包,DHCP服务器回应的Dhcpoffer封包则会根据这些资料传递给要求租约的客户。

根据服务器端的设定,Dhcpoffer封包会包含一个租约期限的信息,当客户端到了这个期限,会释放出IP,进行相同步骤的再次申请.

在DHCPoffer包中我们可以获得以下的信息:

信息类型为应答广播信息,客户端IP地址为0.0.0.0.通过DHCPdiscover请求申请后,服务器端分配的IP地址为118.229.161.236DHCP服务器的IP地址为211.68.71.5.租约时间为4个小时.

ClientIPaddress=0.0.0.0(0.0.0.0)表示客户机还没有使用该地址

Your(Client)IPaddress=118.229.162.236(118.229.162.236)表示DHCPServer分配给该客户机的IP地址

nextServerIPaddress它标示了客户机下一次发出DHCPRequest报文时,哪个DHCPServer会发出回应

DHCPMessageType=DHCPOffer表示这是一个对DHCPDiscover的回应报文

SubnetMask=255.255.255.128表示分配的IP地址子网掩码为16位

Ipaddressleasetime=4hour表示租期是4小时

Serveridentifier=211.68.71.5表示服务器的IP地址为211.68.71.5

Router=118.229.161.129表示它的路由网关是118.229.161.129

DomainName=""表示域名

所有发送DHCPOffer信息包的服务器将保留它们提供的一个IP地址。

在该地址不再保留之前,该地址不能分配给其他的客户。

(3)第三次握手:

用户发送DHCPrequest报文,客户以广播的方式发送DHCPRequest信息包作为响应。

注意其中的DHCPMessageType一项中type=Request表示这是一个请求报文。

 

(4)第四次握手:

第四阶段DHCPserver回应DHCPACK报文,该信息包是以单播的方式发送的。

当服务器接收到DHCPRequest信息包时,它以一个DHCPAcknowledge信息作为响应,其内容同DHCPOFFER类似。

在该报文中可以获得以下信息:

DHCP服务器端给出了domainname=”e”表示服务器的域名为””。

现在观察ARP和PING命令的执行过程。

我们向118.229.161.140发送ping请求,发送的数据大小为32字节。

默认情况下,只发送四个数据包此时得到对方的4次回应。

在给118.229.161.140发送4个数据包的过程当中,返回了4个,这48个数据包当中返回速度最快为1ms,最慢为7ms,平均速度为2ms。

下面看看ARP的执行过程:

上图表示的是apr的格式。

先发送一个请求包:

整个报文长度为42字节,"whohas118.229.161.140?

tell118.229.161.236",即将本机的信息以及想要连接的ip进行广播。

头6个字节是以太网目的地址ffffffffffff这是一个广播地址,全网下的所有终端都能接受到。

Sendermacadd发送者的mac地址ip地址以及想要获得的ip地址都广播出去。

接下来分析是应答的数据包。

应答包长度为60个字节头6个字节是本地的mac地址接着的6个字节就是对方的mac地址,这样我们就知道了对方地址。

加进缓存表。

6.3分析数据分组的分片传输过程

制作大于8000字节的IP数据分组并发送,捕获后分析其分片传输的分组结构。

使用Windows中ping命令的-l选项,ping-l8000192.168.0.1

执行之后我们捕获了4个数据包:

(默认情况下,只发送四个数据包)

从4个分组中随便选取一个进行详细的分析:

Version:

版本的信息是IPv4。

所有的设备必要运行相同版本的IP协议,否则设备将会拒绝接收数据包。

长度为4个字节。

HeaderlengthIP:

报头长度为20字节 

Totallength:

总长度,表示整个数据包的长度。

包括数据和报头。

从该值中减去Headerlength值的长度,得到的就是数据有效负荷的长度。

在我们分析的这个数据包中,总长度为56.

Identification:

表示当前的数据包。

在我们分析的这个数据包中,为0xb3e6(46054)

Fragmentoffset:

重组分片为0。

Timetolive:

存活时间。

计数器会按一定增量逐渐减少为0.当到0时,该数据包将被丢弃。

Protocol:

ICMP协议接收。

Headerchecksum(报头的校验和):

报头正确(correct)

Source:

发送设备的IP地址为118.229.161.236。

Destination:

接收设备的IP地址为192.168.0.1。

6.4分析TCP通信过程

WireShark的Filter项填为tcp.port==21(仅观察FTP的TCP通信,FTP端口号为21)。

捕获所有下面通信过程的TCP报文进行分析。

(1)观察TCP建立连接的三次握手和粗暴方式拆除连接的流程。

执行命令ftp

连接建立后直接按下Ctrl-C中止程序运行。

可以看出,我的ip地址为118.220.161.236,目的ip地址为202.38.97.197.现在来详细分析一下这3次握手过程。

①第一次握手:

Sourceport:

源端口号为1666

Destinationport:

目的端口号为FTP的21端口

Sequencenumber:

相对确认号为0

Headerlength:

首部长度为32字节

Flag:

标志位(0x02).只设置了SYN,也就是位同步标志,表示请求建立连接。

Windowssizevalue:

窗口大小为65535.

Checksum;校验和是正确的。

Options:

选项是12字节

 

可以看到是我(客户)向目标地址(服务器)发出的第一次握手,seq=0,SYN=1。

服务器可以知道我的联机请求。

②第二次握手:

服务器在收到请求后,发回确认(SYN+ACK)。

Sourceport:

源端口号(服务器)为FTP的21

Destinationport:

目的端口为(客户端)1666

Sequencenumber:

相对确认号为0

Acknum=1:

对所接受的段的确认

Headerlength:

首部长度为32字节

Flag:

标志位(0x02).

Flag中,SYN:

认可连接。

ACK表示对所接受的段的确认。

Windowssizevalue:

窗口大小为65535.

Checksum;校验和是正确的。

Options:

选项是12字节

 

③第三次握手:

 

客户向服务器发出的确认段。

再向服务器发出第三次握手,可以看到ACK=1,seq=1,ack=1。

Sourceport:

源端口号为1666

Destinationport:

目的端口号为FTP的21端口

Sequencenumber:

相对确认号为1

Headerlength:

首部长度为32字节

Flag:

标志位(0x02).只设置了ACK,表示已建立连接。

Windowssizevalue:

窗口大小为65535.

Checksum;校验和是正确的。

Options:

选项是12字节

粗暴方式拆除连接:

用户直接与服务器断开连接。

(2)观察TCP建立连接的三次握手,数据通信和优雅方式拆除连接的流程。

执行命令ftp

用户名输入anonymous

口令输入a@b

执行成功后输入命令bye

TCP三次握手见

(1)的描述,在这里就不再重复讨论了。

在三次握手建立好建立起连接后,以优雅方式拆除连接。

TCP采用四次握手的方式拆除连接。

首先我们向服务器发送一个QUIT请求,然后开始4次握手。

①第一次握手:

释放请求

服务器发送一个FIN=1的分组作为对quit请求的回应。

②第二次握手:

得到回复,并且半关闭TCP连接。

本机对服务器发来的FIN进行确认,并回复ACK。

③第三次握手:

发拆除请求

我们向服务器发出拆除的请求。

FIN=1.

④第四次握手:

确认,到此拆除完成

服务器反馈一个ACK,表示连接已经被拆除。

 

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

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1