写点什么

软件测试 | 抓包分析 TCP

  • 2023-02-21
    北京
  • 本文字数:1169 字

    阅读完需:约 4 分钟

1.TCP 简介

TCP 是在传输层中,一种面向连接的、可靠的、基于字节流的通信协议。

2.抓包分析的工具

抓包分析的工具分类如下。


(1)网络嗅探工具:Tcpdump、Wireshark。


(2)代理工具:Fiddler、Charles、Anyproxyburpsuite、Mitmproxy。


(3)分析工具:Curl、Postman、Chrome Devtool。

3.抓包分析的部分工具介绍

(1)Tcpdump


Tcpdump 是一款将网络中传送的数据包的 “头” 完全截获下来供用户分析的工具。它支持针对协议、主机、网络或端口的过滤,并不通过 and、or、not 等逻辑语句去掉无用的信息。


用 Tcpdump 时刻监听 443 端口,如果发现异常信息,就把这类信息输入到 log 文件中,命令代码如下。


sudo tcpdump port 443 -v -w /tmp/tcp.log
复制代码


这条命令里使用的参数解析如表 6-2 所示。


(2)Wireshark


Wireshark 是一款网络嗅探工具,它除了拥有 Tcpdump 功能,还有更多扩展功能,如分析功能。但是在接口测试中,抓包汪汪都是在服务器上进行的,服务器一般不提供 UI 界面,所以 Wireshark 无法在服务器上运行,只能利用 Tcpdump,把它监听到的信息输入到 log 文件,然后将 log 文件导入 Wireshark 使用,以便于我们可在有 UI 界面的客户端上分析数据包。


(3)抓包分析实现


获取一个 HTTP 的 GET 请求的实现步骤如下。


1)在百度上搜 MP3(http://www.baidu.com/s?wd=mp3).


2)用 Tcpdump 截获这个 GET 请求,并将获取的信息输入到 log 文件。


3)用 Wireshark 打开 log 文件,如图 6-4 所示。


log 文件的前几段信息时表示三次握手,三次握手就像是下面这些操作(见图 6-5)。


注:SYN、ACK 表示 “标志位” ,Ack 表示 “ 确认序号 ”


(1)第一次握手:建立连接时,客户端将标志位 SYN 置为 1,随机产生一个值 Seq=x,并发送 SYN 包到服务端,客户端进入 SYN_SENT 状态,等待服务端确认。


(2)第二次握手:服务端收到 SYN 包后,有标志位 SYN=1 知道客户端请求建立连接,服务端将标志位 SYN 和 ACK 都置为 1,Ack=x+1,随机产生一个值 Seq=y,并将该 SYN 包发送给客户端以确认连接请求,此时服务端进入后 SYN_RCVD 状态。


(3)第三次握手:客户端收到服务端的 SYN 包后,检查 Ack 是否为 y+1,ACK 是否为 1,如果正确,则将标志位 ACK 置为 1,Ack=y+1,并将 SYN 包发送给服务端,服务端检查 Ack 是否为 y+1,ACK 是否为 1,如果正确则连接建立成功,此包发送完毕,客户端和服务端进入 ESTABLISHED 状态,完成三次握手。


经过三次握手,客户端和服务端就可以进一步 “交流” 了,如图 6-6 所示。


结束 “ 交流 ” 时,也需要进行四次挥手,如图 6-7 所示。


(1)第一次挥手:客户端向服务端发送一个 FIN,请求关闭数据传输。


(2)第二次挥手:服务端接收到客户端的 FIN,向客户端发送一个 ACK,其中 ACK 的值等于 FIN+SEQ。


(3)第三次挥手:服务端向客户端发送一个 FIN,告诉客户端应用程序关闭。


(4)第四次挥手:客户端收到服务端的 FIN,回复一个 ACK 给服务端。其中 ACK 的值等于 FIN+SEQ。


搜索微信公众号:TestingStudio 霍格沃兹的干货都很硬核

用户头像

社区:ceshiren.com 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试 | 抓包分析TCP_测试_测吧(北京)科技有限公司_InfoQ写作社区