使用wireshark、Fiddler抓包分析TCP协议



任务概要

以“金庸梦“游戏的客户端连接服务器、断开服务器为例,用wireshark抓包分析TCP协议的三次握手连接、四次握手断开,与计算机网络原理进行验证;用Fiddler抓包,分析验证一个HTTPS网站的TCP连接过程。


一、走近TCP

1.基本简介

TCP/IP(Transmission Control Protocol/Internet Protocol)传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WAN)设计的。它是由ARPANET网的研究机构发展起来的。
在这里插入图片描述

TCP/IP是一个协议集。为应用提供一些"低级"功能,这些包括IP、TCP、UDP。其它是执行特定任务的应用协议,如计算机间传送文件、发送电子邮件、或找出谁注册到另外一台计算机。

服务类型

  1. FTP 文件传送(File Transfer)
  2. RLogin 远程登录(Remote login)
  3. SMTP POP3 电子邮件(Mail)
  4. NFS 网络文件系统(Network File System)
  5. 远程打印(Remote Printing)
  6. 远程执行(Remote Execution)
  7. 名字服务器(Name Servers)
  8. 终端服务器(Terminal Servers)

2.数据格式

下图展示了TCP首部的数据格式。
在这里插入图片描述

如果不计任选(Options)字段,那么,它的大小是20个字节。

3.TCP的连接

1.建立连接

TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手(three-way handshake),过程如下图所示。
在这里插入图片描述

TCP建立连接之后,通信双方都同时可以进行数据的传输,其次,它是全双工的;在保证可靠性上,采用超时重传和捎带确认机制。

2.终止连接

建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。具体过程如下图所示。
在这里插入图片描述

3.握手协议

关于握手连接,我们可以通过TCP包头格式的确认ACK、同步SYN、终止FIN的数值判断属于第几次握手。

1.三次握手(建立连接)

下图为第三次握手示意图:
在这里插入图片描述
(1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程中的报文1.
(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN标志。因此它表示对刚才客户端SYN报文的回应;同时又标志SYN给客户端,询问客户端是否准备好进行数据通讯。
(3) 客户必须再次回应服务段一个ACK报文,这是报文段3.
分析
第一次握手:客户端->服务器
(ACK=0;SYN=1)
第二次握手:服务器->客户端
(ACK=1;SYN=1)
第三次握手:客户端->服务器
(ACK=1;SYN=0)

2.四次挥手(断开连接)

下图为第四次挥手示意图:
在这里插入图片描述

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

(1) TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送(报文段4)。
(2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。
(3) 服务器关闭客户端的连接,发送一个FIN给客户端(报文段6)。
(4) 客户段发回ACK报文确认,并将确认序号设置为收到序号加1(报文段7)。
分析
第一次:客户端->服务器
(ACK=1;FIN=1)
第二次:服务器->客户端
(ACK=1;FIN=0)
第三次:服务器->客户端
(ACK=1;FIN=1)
第四次:客户端->服务器
(ACK=1;FIN=0)

二、wireshark抓包分析TCP

游戏客户端可参考博客:
TCP-端口扫描与网游客户端.
这里我们主要进行TCP协议分析

1.连接服务器

  • 运行游戏客户端
  • 打开wireshark,开始抓包
    对协议进行筛选,选择TCP;
    在这里插入图片描述
    建立连接
    在这里插入图片描述
    第一次握手;
    在这里插入图片描述
    第二次握手;
    在这里插入图片描述
    第三次握手;
    在这里插入图片描述

2.断开服务器

  • 关闭游戏客户端
  • 继续抓包
    第一次握手;
    在这里插入图片描述
    第二次握手;
    在这里插入图片描述
    第三次握手;
    在这里插入图片描述
    第四次握手;
    在这里插入图片描述

三、Fiddler网站(HTTPS)抓包分析

1.认识https

HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),即超文本传输安全协议,是一种通过计算机网络进行安全通信的传输协议。该协议由网景公司(Netscape)于1994年首次提出。
其开发的主要目的是提供对网站服务器的身份认证,以保护交换数据的隐私与完整性。也由于其安全性较高的原因,它被广泛应用于万维网上安全敏感的通讯,如交易支付等方面。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,默认使用443端口.

下面就是https的整个架构,现在的https基本都使用TLS了,因为更加安全,所以下图中的SSL应该换为SSL/TLS
在这里插入图片描述
有关更多的HTTPS的详情了解。可以见参考资料。

2.安装Fiddler

Fiddler下载地址:
https://www.telerik.com/download/fiddler.

填入信息,点击download for Windows
在这里插入图片描述
点击下载
在这里插入图片描述
开始安装,点击I agree;
在这里插入图片描述
确认安装路径,点击install
在这里插入图片描述
安装成功
在这里插入图片描述
打开该软件
在这里插入图片描述
弹出窗口,点击NO;在这里插入图片描述
下面开始配置 fiddler 。
点击 Tools → Options…
在这里插入图片描述
HTTPS 下,勾选 Decrypt HTTPS traffic,配置成功(弹窗点击确定)
在这里插入图片描述
至此,安装配置过程就完成了。

3.抓包分析

下面我们开始抓包分析
抓包之前,我们需要清空其他包,方便观察
在这里插入图片描述

此符号是清空标志符

或点击 Edit -> remove -> all sessions即可清除所有记录;
在这里插入图片描述
打开抓包软件,打开Google浏览器
在这里插入图片描述
再换到fiddler;左侧数据就是所抓到的包;
在这里插入图片描述
开始分析
Google访问百度
在这里插入图片描述
headers是标签
在这里插入图片描述
有关更详细的fiddler认识,大家可以参考这个博客。
Fiddler抓包1_介绍及界面概述.


四、总结与参考资料

1.总结

TCP是网络传输层协议;HTTPS是网络应用层协议。

2.参考资料

1.TCP协议连接过程详解.
2. TCP协议.
3.Https协议详解.
4. HTTPS.
5. 如何用fiddler抓包.
6. Fiddler的安装与使用.

猜你喜欢

转载自blog.csdn.net/QWERTYzxw/article/details/110286349