使用wireshark、Fiddler抓包分析TCP协议
- 任务概要
- 一、走近TCP
- 1.基本简介
- 2.数据格式
- 3.TCP的连接
- 1.建立连接
- 2.终止连接
- 3.握手协议
- 1.三次握手(建立连接)
- 2.四次挥手(断开连接)
- 二、wireshark抓包分析TCP
- 1.连接服务器
- 2.断开服务器
- 三、Fiddler网站(HTTPS)抓包分析
- 1.认识https
- 2.安装Fiddler
- 3.抓包分析
- 四、总结与参考资料
- 1.总结
- 2.参考资料
任务概要
以“金庸梦“游戏的客户端连接服务器、断开服务器为例,用wireshark抓包分析TCP协议的三次握手连接、四次握手断开,与计算机网络原理进行验证;用Fiddler抓包,分析验证一个HTTPS网站的TCP连接过程。
一、走近TCP
1.基本简介
TCP/IP(Transmission Control Protocol/Internet Protocol)
即传输控制协议/网间协议
,是一个工业标准的协议集
,它是为广域网(WAN)
设计的。它是由ARPANET网
的研究机构发展起来的。
TCP/IP是一个协议集。为应用提供一些"低级"功能,这些包括IP、TCP、UDP。其它是执行特定任务的应用协议,如计算机间传送文件、发送电子邮件、或找出谁注册到另外一台计算机。
服务类型
- FTP 文件传送(File Transfer)
- RLogin 远程登录(Remote login)
- SMTP POP3 电子邮件(Mail)
- NFS 网络文件系统(Network File System)
- 远程打印(Remote Printing)
- 远程执行(Remote Execution)
- 名字服务器(Name Servers)
- 终端服务器(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的安装与使用.