一、实验目的
1、熟悉网络数据包分析工具Wireshark(Ethereal)的主要功能,掌握常用协议的数据包捕获及分析方法。
二、实验环境
Windows操作系统、Wireshark
三、实验内容
3、使用Wireshark,实现TCP数据包的捕获及分析,任务如下:
(1)使用捕获过滤器完成TCP数据包的捕获;
(2)结合TCP报文格式完成ICMP请求包的分析;
第1次握手:
源端口号 | 目的端口号 | 确认号 | 标志位设置 | 最大段大小 |
第2次握手:
源MAC 地址 | 目的MAC 地址 | 源IP 地址 | 目的IP 地址 | 标志位 设置 | 源端 口号 | 目的 端口号 |
第3次握手:
源MAC 地址 | 目的MAC 地址 | 源IP 地址 | 目的IP 地址 | 标志位 设置 | 源端 口号 | 目的 端口号 |
第1次挥手:
源MAC 地址 | 目的MAC 地址 | 源IP 地址 | 目的IP 地址 | 标志位 设置 | 源端 口号 | 目的 端口号 |
第2次挥手:
源MAC 地址 | 目的MAC 地址 | 源IP 地址 | 目的IP 地址 | 标志位 设置 | 源端 口号 | 目的 端口号 |
第3次挥手:
源MAC 地址 | 目的MAC 地址 | 源IP 地址 | 目的IP 地址 | 标志位 设置 | 源端 口号 | 目的 端口号 |
第4次挥手:
源MAC 地址 | 目的MAC 地址 | 源IP 地址 | 目的IP 地址 | 标志位 设置 | 源端 口号 | 目的 端口号 |
四、实验步骤
3、使用Wireshark,实现TCP数据包的捕获及分析,任务如下:
(1)使用捕获过滤器完成TCP数据包的捕获;
(2)结合TCP报文格式完成TCP请求包的分析;
如何模拟一个TCP协议呢?
我们可以使用 Xshell 工具远程连接与断开连接 Ubuntu Linux虚拟机就可以捕获到完整的 TCP 协议(主要查看三次握手和四次挥手阶段)。
Xshell:客户端 Ubuntu:服务端
实验步骤:
第一步:我们先打开WireShark,选择工具栏中的捕获->点击选项,然后接口选择虚拟适配器 VMnet8,取消其他的接口,然后再捕获过滤器中输入 tcp 表示我们只捕获 tcp 协议,配置完成之后,点击开始即开始抓包:
第二步:打开Ubuntu虚拟机,启动之后打开 Xshell 工具,新建一个会话输入名称和虚拟机的IP地址和用户密码等信息去连接这个虚拟机:
Xshell终端显示这样表示连接成功:
第三步:连接完成后,我们就可以在WireShark 查看捕获的TCP数据包了,TCP三次握手如下:
第四步:分别查看TCP三次握手具体的数据包信息
第一次握手数据包信息
第二次握手数据包信息
以太网层和网络层信息
传输层信息

第五步:捕捉完三次握手之后,我们来捕捉四次挥手过程的数据包,首先我们先在WireShark上关闭捕获,然后重新开始捕获,弹出是否保存上一次捕捉信息选项时点击不保存即可,然后在Xshell终端输入 exit 命令,表示断开与Ubuntu虚拟机的连接。
WireShark上捕捉到的四次挥手数据包如下图所示
第六步:分别查看TCP四次挥手具体的数据包信息
第一次挥手数据包信息

第三次挥手数据包信息

第七步:我们可以查看一下四次挥手过程的流量图,最下面四行:
第1次握手:
源端口号 | 目的端口号 | 确认号 | 标志位设置 | 最大段大小 |
63571 | 22 | 0 | 0x002 SYN=1 | 1460bytes |
第2次握手:
源MAC 地址 | 目的MAC 地址 | 源IP 地址 | 目的IP 地址 | 标志位 设置 | 源端 口号 | 目的 端口号 |
00:0c:29:bf:b5:16 | 00:50:56:c0:00:08 | 192.168.163.134 | 192.168.163.1 | 0x012 ACK=1 SYN=1 | 22 | 63571 |
第3次握手:
源MAC 地址 | 目的MAC 地址 | 源IP 地址 | 目的IP 地址 | 标志位 设置 | 源端 口号 | 目的 端口号 |
00:50:56:c0:00:08 | 00:0c:29:bf:b5:16 | 192.168.163.1 | 192.168.163.134 | 0x010 ACK=1 | 63571 | 22 |
第1次挥手:
源MAC 地址 | 目的MAC 地址 | 源IP 地址 | 目的IP 地址 | 标志位 设置 | 源端 口号 | 目的 端口号 |
00:0c:29:bf:b5:16 | 00:50:56:c0:00:08 | 192.168.163.134 | 192.168.163.1 | 0x011 ACK=1 FIN=1 | 22 | 63571 |
第2次挥手:
源MAC 地址 | 目的MAC 地址 | 源IP 地址 | 目的IP 地址 | 标志位 设置 | 源端 口号 | 目的 端口号 |
00:50:56:c0:00:08 | 00:0c:29:bf:b5:16 | 192.168.163.1 | 192.168.163.134 | 0x010 ACK=1 | 63571 | 22 |
第3次挥手:
源MAC 地址 | 目的MAC 地址 | 源IP 地址 | 目的IP 地址 | 标志位 设置 | 源端 口号 | 目的 端口号 |
00:50:56:c0:00:08 | 00:0c:29:bf:b5:16 | 192.168.163.1 | 192.168.163.134 | 0x011 ACK=1 FIN=1 | 63571 | 22 |
第4次挥手:
源MAC 地址 | 目的MAC 地址 | 源IP 地址 | 目的IP 地址 | 标志位 设置 | 源端 口号 | 目的 端口号 |
00:0c:29:bf:b5:16 | 00:50:56:c0:00:08 | 192.168.163.134 | 192.168.163.1 | 0x010 ACK=1 | 22 | 63571 |
五、实验总结
在本次实验中,通过Wireshark工具成功完成了TCP数据包的捕获。使用捕获过滤器只捕获了TCP数据包,并对捕获到的TCP请求包进行了详细分析。通过分析TCP数据包的字段信息,对TCP协议的工作机制有了更清晰的认识。这次实验帮助我加深了对TCP协议的理解,为今后网络故障排查和网络性能优化打下了坚实基础。