图5 一个扩展ICMP错误分组信息的Wireshark 窗口
在实验报告中回答下面问题:
(1) 查看ICMP echo 分组 ,是否这个分组和前面使用 ping命令的ICMP echo 一样?
(2) 查看ICMP错误分组,它比ICMP echo 分组包括的信息多。ICMP错误分组比ICMP echo 分组多包含的信息有哪些?
3、分析DHCP
为了观察到DHCP的运行机制,我们会执行与DHCP相关的命令,同时俘获DHCP信息。
(1)启动Windows 命令提示符窗口,输入“ipconfig /release”。这条命令会释放主机目前的IP地址,此时,主机IP地址会变为0.0.0.0
(2)启动Wireshark分组俘获,开始分组俘获。
(3)现在回到Windows命令提示符窗口,输入“ipconfig /renew”命令。这条命令让主机获得一个网络配置,包括新的IP地址。
(4)等待,直到“ipconfig /renew”终止。然后再次输入“ipconfig /renew” 命令。 (5)当第二个命令“ipconfig /renew” 终止时,输入命令“ipconfig /release” 释放原
21
来的已经分配的IP地址。
(6)最后,输入“ipconfig /renew”再一次给你的I主机分配IP地址。 (7)停止分组俘获。如图6所示:
图6 输入上述ipconfig命令后的命令提示窗口
为了只看到DHCP 分组,在filter field 中输入“bootp”。(DHCP是从BOOTP协议产生的)。BOOTP 和DHCP使用同样的端口号,67和68。从图二中可以看出,第一个ipconfig renew 命令产生四个DHCP分组:a DHCP Discover packet, a DHCP Offer packet, a DHCP Request packet, and a DHCP ACK packet.
22
图7 Wireshark窗口中第一个DHCP分组—DHCP Discover packet的扩展
回答下列问题:
1、DHCP是基于UDP还是TCP发送的? 2、连接层的IP地址是多少? 3、DHCP服务器的IP地址是多少?
23
四、实验报告 实验五 使用Wireshark分析TCP协议
一、实验目的
分析TCP协议 二、实验环境
与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。 三、实验步骤
1、TCP介绍 (1)连接建立:
TCP连接通过称为三次握手的三条报文来建立的。在Wireshark中选择open->file,选择文件tcp_pcattcp_n1.cap,其中分组3到5显示的就是三次握手。
第一条报文没有数据的TCP报文段,并将首部SYN位设置为1。因此,第一条报文常被称为SYN分组。这个报文段里的序号可以设置成任何值,表示后续报文设定的起始编号。连接不能自动从1开始计数,选择一个随机数开始计数可避免将以前连接的分组错误地解释为当前连接的分组。观察分组3,Wireshark显示的序号是0。选择分组首部的序号字段,原始框中显示“94 f2 2e be”。Wireshark显示的是逻辑序号,真正的初始序号不是0。如图1所示:
24
图1:逻辑序号与实际初始序号
SYN分组通常是从客户端发送到服务器。这个报文段请求建立连接。一旦成功建立了连接,服务器进程必须已经在监听SYN分组所指示的IP地址和端口号。如果没有建立连接,SYN分组将不会应答。如果第一个分组丢失,客户端通常会发送若干SYN分组,否则客户端将会停止并报告一个错误给应用程序。
如果服务器进程正在监听并接收到来的连接请求,它将以一个报文段进行相应,这个报文段的SYN位和ACK位都置为1。通常称这个报文段为SYNACK分组。SYNACK分组在确认收到SYN分组的同时发出一个初始的数据流序号给客户端。
分组4的确认号字段在Wireshark的协议框中显示1,并且在原始框中的值是“94 f2 2e bf”(比“94 f2 2e be”多1)。这解释了TCP的确认模式。TCP接收端确认第X个字节已经收到,并通过设置确认号为X+1来表明期望收到下一个字节号。分组4的序号字段在Wireshark的协议显示为0,但在原始框中的实际值却是“84 ca be b3”。这表明TCP连接的双方会选择数据流中字节的起始编号。所有初始序号逻辑上都视同为序号0。
最后,客户端发送带有标志ACK的TCP报文段,而不是带SYN的报文段来完成三次握手的过程。这个报文段将确认服务器发送的SYNACK分组,并检查TCP连接的两端是否正确打开合运行。
25