网站首页 > 博客文章 正文
TCP 协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。
环境准备
对接口测试工具进行分类,可以如下几类:
- 网络嗅探工具:tcpdump,wireshark
- 代理工具:fiddler,charles,anyproxyburpsuite,mitmproxy
- 分析工具:curl,postman,chrome Devtool
抓包分析TCP协议
tcpdump是一款将网络中传送的数据包的“头”完全截获下来提供分析的工具。它支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not 等逻辑语句去掉无用的信息。
让 tcpdump 时刻监听 443 端口,如果有异样就输入到 log 文件中
sudo tcpdump port 443 -v -w /tmp/tcp.log
利用这条命令,会把得到的报告放到目录 /tmp/tcp.log 中。
wireshark 也是一款网络嗅探工具,它除了拥有 tcpdump 功能,还有更多扩展功能,比如分析工具,但是在接口测试中,抓包过程往往都是在服务器进行,服务器一般不提供 UI 界面,所以 wireshark 无法在服务器工作,只能利用 tcpdump 抓包生成 log,然后将 log 给 wireshark 导入使用,在有 UI 界面的客户端上进行分析。
抓取一个 http 的 get 请求:
1.在百度上搜 mp3"mp3_百度搜索"
2.用 tcpdump 截获这个 get 请求,并生成 log
3.用 wireshark 打开 tcpdump 生成的 log
使用 wireshark 查看 log:
1080×86 95.5 KB
log 的前几段信息是三次握手,原因是信道是不可靠的,在发送数据前,就必须确保信道稳定,而三次握手就像是下面这些操作:
- 第一次握手:建立连接时,客户端发送 syn 包(syn=j)到服务器,并进入 SYN_SENT 状态,等待服务器确认。
- 第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=j+1),同时自己也发送一个 SYN 包(seq=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态;
- 第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包 ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED(TCP 连接成功)状态,完成三次握手。
经过三次握手,就可以进一步交流,就像下面这样:
1080×301 360 KB
结束交流时,也需要进行挥手:四次挥手:
1080×103 120 KB
- 第一次挥手:客户端向服务器端发送一个 FIN,请求关闭数据传输。
- 第二次挥手:服务器接收到客户端的 FIN,向客户端发送一个 ACK,其中 ack 的值等于 FIN+SEQ
- 第三次挥手:服务器向客户端发送一个 FIN,告诉客户端应用程序关闭。
- 第四次挥手:客户端收到服务器端的 FIN,回复一个 ACK 给服务器端。其中 ack 的值等于 FIN+SEQ
- 上一篇: 看完就会,从抓包到接口测试的全过程解析
- 下一篇: wireshark抓包分析——TCP/IP协议
猜你喜欢
- 2024-10-19 IP和TCP抓包分析实验(ipv4抓包实验)
- 2024-10-19 抓包分析之蠕虫网络行为特征(蠕虫抓取软件)
- 2024-10-19 wireshark抓包工具的使用详解(wireshark抓包工具的工作原理)
- 2024-10-19 西门子S7协议抓包分析并用代码实现(二)
- 2024-10-19 玩玩抓包(七)巧用“科来”,让分析更轻松
- 2024-10-19 WireShark抓包报文结构分析(wiresharkicmp抓包分析)
- 2024-10-19 wireshark及抓包分析助力网络工程师甩锅、TCP滑动窗口机制
- 2024-10-19 SSL/TLS握手详解抓包分析(ssl握手失败是什么意思)
- 2024-10-19 记一次抓包的最基本原理(抓包程序原理)
- 2024-10-19 如何使用Wireshark捕获和分析网络数据包?
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 358℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)