常用抓包工具

协议对应抓包工具

HTTP/HTTPS:
MacOs: Charles、Fiddler

TCP/UDP:
MacOs: WireShark
Linux: tcpdump、ngrep

WireShark使用

数据流

通常,数据包的概念也是有点模糊,TCP层的包可以叫做数据包,应用层的包也可以叫做数据包,这要看你需要解析的是那个层面的包。

数据流的概念在百度百科上的解释是这样的:数据流(data stream)最初是通信领域使用的概念,代表传输中所使用的信息的数字编码信号序列。然而,我们所提到的数据流概念与此不同。这个概念最初在1998年由Henzinger在文献87中提出,他将数据流定义为“只能以事先规定好的顺序被读取一次的数据的一个序列”。

我对数据流的定义是(狭义的wireshack抓的pcap包中了解到的概念):`数据流是完整的一次TCP\IP链接,包含多个数据包,从开始的SYN包到最后断开连接的第四次握手的ACK包,这些数据包的负载也就是除去所有的协议头所剩下的数据,是描述完整的一次动作(server 和client 交互的数据),从方向上来说,同方向的数据包的IP和端口都是一致的。

使用wireshark追中tcp数据流
20180705153079166178700.png

最后经过筛选之后,剩下能看到的就是一个包所属的一个TCP流
20180705153079174860884.png

接着在点击菜单栏 统计->流量图,来查看流程图

20190313155246236991078.png

通过wireshark判断curl问题
Wireshark的提示

如果看了这个你还是不会用Wireshark,那就来找我吧