【接口协议与抓包】04.使用TcpDump + WireShark抓包分析三次握手与四次挥手

你好啊!我是山茶,一个探索 AI + 测试的程序员,欢迎与我沟通!

对于三次握手与四次挥手的理解与基本讲解可见上一篇

那么具体的请求是什么样的呢?使用 TCPDump + WireShark 对 TCP 三次握手与四次挥手展示

协议分析工具

  • 网络监听:TcpDump + WieSha

  • 代理Proxy

    • 在测试开发工作中较为推荐使用:Charles[适用于全平台,使用广泛]、安全测试:burpsuite[java全平台]
    • 自动化测试中也可以使用:mitmproxy
    • 其他代理有:fiddler[在windos中使用]、AnyProxy[全平台]
  • 协议客户端工具:curl、postman、apipost等使用较为广泛

tcpdump简介

用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。

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

常用参数

  • -x 十六进制展示

  • -w file 保存数据包文件

  • 表达式

    • ip tcp协议

    • host 主机名

    • port 80

    • src 来源 dst 目的

    • and or () 逻辑表达式

更多内容参见 tcpdump --help

使用TcpDump抓取数据分析

操作步骤

  • 服务器上使用tcpdump指令,发起监控

  • 服务器访问百度,获取数据消息

  • 停止tcpdump

  • 将tcpdump数据在wirshark中打开

  • 分析wireshark中打开的数据

arduino 复制代码
服务器开启对百度的监控,监控结果存入到 /home 下的 tcpdump.log的文件中
tcpdump host www.baidu.com -w /home/tcpdump.log
arduino 复制代码
新开服务器标签,使用 curl 指令访问百度网址,获取数据
curl https://www.baidu.com/

将对应的tcpdump数据文件日志导入到wireshark中

首行标题中包含几个字段,分别为"时间"、"源ip"、"目标ip"、"协议类型"、"数据大小"、"数据内容"

WireShark解析三次握手与四次挥手

三位握手与四次挥手🙋过程主要在以下框框中。

三次握手请求

  • 发送请求标志SYN = 1
  • 服务端响应并发送请求标志ACK = 1,SYN = 1
  • 客户端响应,双向数据连接通道建立成功ACK = 1

四次挥手过程

  • 客户端接收数据响应ACK = 1,发送结束请求标志FIN = 1
  • 服务端响应客户端请求ACK = 1,结束客户端到服务端的数据通道
  • 服务端发起断开请求FI N = 1
  • 客户端响应 ACK = 1,服务端端开连接,客户端等待2msl后端开,四次挥手过程端开c/s端双想数据通道

💡注意⚠️:在分析wireshark协议日志数据时需要区分清,发起请求来源ip与目标ip,以及对应的端口是否正确

相关推荐
沛沛老爹2 分钟前
从Web到AI:多模态Agent Skills生态系统实战(Java+Vue构建跨模态智能体)
java·前端·vue.js·人工智能·rag·企业转型
a努力。15 分钟前
饿了么Java面试被问:一致性哈希的虚拟节点和数据迁移
java·chrome·后端·websocket·面试·职场和发展
把csdn当日记本的菜鸡23 分钟前
Java设计模式简单入门
java·开发语言·设计模式
0和1的舞者30 分钟前
非力扣hot100-二叉树专题-刷题笔记(一)
笔记·后端·算法·leetcode·职场和发展·知识
源代码•宸35 分钟前
Golang原理剖析(GMP调度原理)
开发语言·经验分享·后端·面试·golang·gmp·runnext
m0_7482523839 分钟前
Java 变量类型
java·数据结构·windows
caleb_5201 小时前
基于springmvc系统,如何跟踪会话过期,浏览器会话标识是否收到正常响应,存储,并在后续请求保持携带
java
luyun0202021 小时前
精简版本,绿色便携
java·windows·figma
JMchen1231 小时前
Android Activity管理工具类
android·java·学习·移动开发·android-studio
AugustRed1 小时前
net.bytebuddy字节码引擎,动态生成Java类
java·开发语言