DBA 抓包神器tshark使用
常用抓包工具
tshark、tcpdump 和 Wireshark 都是网络抓包工具,它们可以在网络上捕获和分析数据包。
tcpdump
一个开源的,基于命令行的网络抓包工具。它可以捕获和分析网络数据包,运行在几乎所有的 Unix 和 Linux 系统上;可以抓取实时网络通信中的数据包,然后通过过滤器及其他参数,对数据包进行解析和处理。
tshark
Wireshark 的命令行版本,也是一个开源的网络分析工具。它可以在命令行下捕获和分析网络流量数据,并使用 Wireshark 的过滤器来提取所需的数据,还支持与各种脚本语言(如 Python 和 Perl)结合使用,以自动化分析过程。
Wireshark
是一个流行的网络协议分析器,支持从在线网络或本地文件中捕获数据包,并提供了图形化用户界面来展示数据包内容;可以解析并显示各种网络协议,并提供了强大的分析工具以及过滤器;与 tshark 和 tcpdump 相比,Wireshark 的优势在于它提供了友好的 GUI 界面,使用户更轻松地进行网络协议的分析和调试。
小结
以上这些工具都可以直接捕获和分析网络数据包,但它们在使用方式和功能上略有不同;通常,我们会先用 tcpdump 或 tshark 在目标服务器上抓包生成 pcap 文件,再将其拿到装有 Wireshark 的主机上进行分析,本文将会分享 tshark 和 Wireshark 的一些使用技巧。
三次握手和四次挥手
TCP 协议中的三次握手和四次挥手是 TCP 连接建立和关闭的过程。
三次握手
- 客户端向服务器发送 SYN 报文(请求建立连接)
- 服务器收到 SYN 报文后,回复 SYN+ACK 报文(同意建立连接)
- 客户端收到 SYN+ACK 报文后,再回复 ACK 报文(确认连接建立)
四次挥手
- 客户端向服务器发送 FIN 报文(请求断开连接)
- 服务器收到 FIN 报文后,回复 ACK 报文(确认收到请求)
- 当服务器确认数据已经全部发送完毕后,它会向客户端发送 FIN 报文(关闭连接)
- 客户端收到 FIN 报文后,回复 ACK 报文(表示确认收到关闭请求),至此,整个 TCP 连接就被彻底关闭了
三次握手用于建立连接,是双方协商建立 TCP 连接的过程;四次挥手用于断开连接,是双方结束 TCP 连接的过程;不过,有时候四次挥手也会变成三次(如果没有数据发送,2 个包会合并传输)。