TCP 协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。
对接口测试工具进行分类,可以如下几类:
tcpdump 是一款将网络中传送的数据包的“头”完全截获下来提供分析的工具。它支持针对网络层、协议、主机、网络或端口的过滤,并提供 and、or、not 等逻辑语句去掉无用的信息。
让 tcpdump 时刻监听 443 端口,如果有异样就输入到 log 文件中
sudo tcpdump port 443 -v -w /tmp/tcp.log
利用这条命令,会把得到的报告放到目录 /tmp/tcp.log 中。
常用参数 |
含义 |
port 443 |
监听 443 端口 |
-v |
输出更加详细的信息 |
-w |
把数据写到 log 中 |
wireshark 也是一款网络嗅探工具,它除了拥有 tcpdump 功能,还有更多扩展功能,比如分析工具,但是在接口测试中,抓包过程往往都是在服务器进行,服务器一般不提供 UI 界面,所以 wireshark 无法在服务器工作,只能利用 tcpdump 抓包生成 log,然后将 log 导入 wireshark 使用,在有 UI 界面的客户端上进行分析。
抓取一个 http 的 get 请求:
使用 wireshark 查看 log:
log 的前几段信息是三次握手。因为信道是不可靠的,在发送数据前,就必须确保信道稳定,而三次握手就像是下面这些操作:
经过三次握手,就可以进一步交流,就像下面这样:
结束交流时,也需要进行四次挥手:
注意:一个请求可能分为多个包,一个数据也是这样,于是在 wireshark 会看到很多包。