wireShark抓包

一、实验内容

1.实验任务

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

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

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

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

2.实验环境

Windows 10

wireShark 4.0.6

二、实验步骤和协议分析

1. 捕获和分析 DHCP 报文

(1)捕获方法

① 在wireShark里设置捕获过滤器 udp.port==68

② 在cmd中运行ipconfig /release,释放主机的ip地址

③ 在cmd中运行ipconfig /renew,重新分配 IP 地址

④ 共获取5条DHCP链接信息

(2)分析DHCP报文

①DHCP报文功能解释

本次抓包共捕获以下5条DHCP信息:

1.DHCP Release
当 DHCP 客户端不再需要使用分配 IP 地址时,就会主动向 DHCP 服务器发送 RELEASE 请求报文,告知服务器用户不 再需要分配 IP 地址,请求 DHCP 服务器释放对应的 IP 地址。

2.DHCP Discover
DHCP 客户端在请求 IP 地址时并不知道 DHCP 服务器的位置,因此 DHCP 客户端会在本地网络内以 广播方式发送 Discover 请求报文,以发现网络中的 DHCP 服务器。所有收到 Discover 报文的 DHCP 服务 器都会发送应答报文, DHCP 客户端据此可以知道网络 中存在的 DHCP 服务器的位置。

3.DHCP Offer
DHCP 服务器收到 Discover 报文后,就会在所配置的 地址池中查找一个合适的 IP 地址,加上相应的租约期限和其他配置信息(如网关、 DNS 服务器等),构造一个Offer 报文,发送给 DHCP 客户端,告知用户本服务器可以为其提供 IP 地址。但这个报文只是告诉 DHCP 客户端可以提供 IP 地址,最终还需要客户端通过 ARP 来 检测该 IP 地址是否重复。由下图可知,服务器分配给本机的IP地址为:10.28.158.29

4.DHCP Request
DHCP 客户端可能会收到很多 Offer 请求报文,所以必须在这些应答中选择一个。通常是选择第一个 Offer 应答报文的服务器作为自己的目标服务器,并向该服务器发送一个广播的 Request 请求报文,通告选择的服务器,希望获得所分配的 IP 地址。

5.DHCP ACK
DHCP 服务器收到 Request 请求报文后,根据 Request 报文 中携带的用户 MAC 来查找有没有相应的租约记录,如果有 则发送 ACK 应答报文,通知用户可以使用分配的 IP 地址。

2. 捕获和分析 ICMP 报文

(1)捕获方法

① 主窗口设置显示过滤器为:icmp,从而只显示 icmp 报文

② 在命令行窗口使用 ping www.baidu.com,捕获ICMP报文

③ 共获得8条ICMP信息

(2)分析 ICMP 报文

报头

ICMP报文包含在IP数据报中,IP报头在ICMP报文的最前面。一个ICMP报文包括IP报头(至少20字节)、ICMP报头(至少八字节)和ICMP报文(属于ICMP报文的数据部分)。当IP报头中的协议字段值为1时,就说明这是一个ICMP报文。ICMP报头如下图所示。

各字段说明
1.类型:占一字节,标识ICMP报文的类型,目前已定义了14种,从类型值来看ICMP报文可以分为两大类。第一类是取值为1~127的差错报文,第2类是取值128以上的信息报文。
2.代码:占一字节,标识对应ICMP报文的代码。它与类型字段一起共同标识了ICMP报文的详细类型。
3.校验和:这是对包括ICMP报文数据部分在内的整个ICMP数据报的校验和,以检验报文在传输过程中是否出现了差错。其计算方法与在我们介绍IP报头中的校验和计算方法是一样的。
4.标识:占两字节,用于标识本ICMP进程,但仅适用于回显请求和应答ICMP报文,对于目标不可达ICMP报文和超时ICMP报文等,该字段的值为0。

3. IP 包的分段功能的分析

(1)捕获方法

① 主窗口设置显示过滤器为:ipv6,从而只显示 IP 报文

② 在命令行窗口使用 ping -l 8000 www.bupt.edu.cn,捕获IP报文

③ 共获得6条IP信息

(2)分析 IP 报文

由图可知,前5个分片的包长度为1510字节,最后一个分片长度为830字节,偏移量已经列出。

每个分片DF均为0,前5个分片MF=1,最后一个分片MF=0

段标识为:0x85f7846e 如图所示:

4.捕获建立连接和释放连接过程的 TCP 报文段并分析

(1)捕获方法

① 开启 wireshark 监控,打开一个网页,停止监控。

(2)分析 TCP 报文段

TCP建立连接的三次握手:
a. 第一步:客户端发送一个带有SYN(同步)标志的连接请求报文段给服务器,指定客户端的初始序列号(Seq)。
b. 第二步:服务器收到连接请求后,如果同意连接,则发送一个带有SYN/ACK(同步/确认)标志的报文段作为响应,确认收到客户端的请求,并指定服务器的初始序列号(Seq)。
c. 第三步:客户端收到服务器的响应后,再发送一个带有ACK(确认)标志的报文段给服务器,确认收到服务器的确认。

在这个过程中,客户端和服务器之间建立起双向的连接,并完成了初始化的序列号设置。现在数据通信可以开始。

数据通信:完成三次握手后,客户端和服务器之间可以进行数据的传输。数据被划分为小的数据包(也称为报文段),每个数据包都带有序列号,以确保数据按正确的顺序到达目的地。数据包的传输由TCP协议进行控制,包括丢失重传、拥塞控制等机制,以保证可靠的传输。

优雅方式拆除连接的流程:
a. 第一步:当客户端希望关闭连接时,它发送一个带有FIN(结束)标志的报文段给服务器,表示它已经完成了所有数据的发送。

b. 第二步:服务器收到客户端的结束请求后,发送一个带有ACK标志的报文段作为确认。

c. 第三步(:服务器在关闭连接之前,需要确保所有的数据都被接收和处理。服务器继续发送数据,直到所有数据都被客户端确认接收。

d. 第四步:客户端收到服务器发送的所有数据后,发送一个带有ACK标志的报文段作为确认。

e. 第五步:客户端等待一段时间,确保服务器已经收到了它的确认。之后,客户端发送一个带有FIN标志的报文段给服务器,表示它同意关闭连接。

f. 第六步:服务器收到客户端的关闭请求后,发送一个带有ACK标志的报文段作为确认。

g. 第七步:服务器等待一段时间,确保客户端已经收到了它的确认。之后,服务器关闭连接,客户端也关闭连接。