写点什么

技术分享 | 抓包分析 TCP 协议

  • 2023-08-14
    北京
  • 本文字数:1307 字

    阅读完需:约 4 分钟

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

环境准备

对接口测试工具进行分类,可以如下几类:


  • 网络嗅探工具:tcpdump,wireshark

  • 代理工具:fiddler,charles,anyproxyburpsuite,mitmproxy

  • 分析工具:curl,postman,chrome Devtool

抓包分析 TCP 协议

tcpdump

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


让 tcpdump 时刻监听 443 端口,如果有异样就输入到 log 文件中


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


利用这条命令,会把得到的报告放到目录 /tmp/tcp.log 中。


wireshark

wireshark 也是一款网络嗅探工具,它除了拥有 tcpdump 功能,还有更多扩展功能,比如分析工具,但是在接口测试中,抓包过程往往都是在服务器进行,服务器一般不提供 UI 界面,所以 wireshark 无法在服务器工作,只能利用 tcpdump 抓包生成 log,然后将 log 导入 wireshark 使用,在有 UI 界面的客户端上进行分析。

抓包分析 TCP 协议

抓取一个 http 的 get 请求:


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

  2. 用 tcpdump 截获这个 get 请求,并生成 log

  3. 用 wireshark 打开 tcpdump 生成的 log


使用 wireshark 查看 log:


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-55mnd77G-1659974818702)(upload://sY52KegYclFO4i0xvBhxU1xtYgi.png)]


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 连接成功)状态,完成三次握手。


经过三次握手,就可以进一步交流,就像下面这样:


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-laQHZQER-1659974818704)(upload://uYw9SkkbNh4NB8gOZ4RrUeOi9RB.jpeg)]


结束交流时,也需要进行四次挥手:


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3lKw0wpr-1659974818705)(upload://vJhSBgWm9l1keMpud0Xv2lM1v8S.jpeg)]


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

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

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

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


注意: 一个请求可能分为多个包,一个数据也是这样,于是在 wireshark 会看到很多包。


哈喽,喜欢这篇文章的话烦请点个赞哦!万分感谢~(^▽^)PS:有问题可以联系我们哦~v ceshiren001


复制“下方链接”,提升测试核心竞争力!更多技术文章分享和免费资料领取

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

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

评论

发布
暂无评论
技术分享 | 抓包分析 TCP 协议_霍格沃兹测试开发学社_InfoQ写作社区