网络调试工具——Wireshark
如何进行 TCP 抓包和调试
Whireshark 可以帮你看到整个网络交通情况,也可以帮你深入了解每个封包。
选择一个网络接口(Network Interface)
Linux 下可以使用ifconfig
指令看到所有的网络接口,Windows 下则使用 ipconfig。
选择好网络接口之后,点击start
因为整个网络的数据非常多,大量的应用都在使用网络,你会看到非常多数据条目,每个条目是一次数据的发送或者接收。
下面图片可以清晰的看到一次tcp连接即三次握手,到HTTPS协议传输握手的完整过程:
1、本地客户端192.168.123.62
向目标地址183.232.231.172
(百度ip地址)发起的请求发出[SYN
]
2、百度返回的[SYN-ACK
]
3、然后客户端发送给百度[ACK
]
4、可以看到 HTTPS 协议通过 TLSv1.2
发送了 Client Hello
到服务端。
5、接下来是 Server 返回给客户端 ACK,然后再发送给客户端一个 Server Hello
6、之后百度回传了证书certificate
7、最后开始交换密钥Client Key Exchange...
,直到 HTTPS 握手结束
选择一个 TCP 协议的捕获,查看报文详细信息:
可以从不同的层面来看这次捕获。从传输层看是 TCP 段;从网络层来看是 IP 封包;从链路层来看是 Frame。
选中一条消息后,下面会出现一个消息视图。还有一个二进制视图。二进制视图里面是数据的二进制形式,消息视图是对二进制形式的解读。
Wireshark 追溯的是最底层网卡传输的 Frame(帧),可以追溯到数据链路层。
鼠标右键一次捕获,可以看到很多选项,都是可以深挖的.
在抓包过程中,黑色报文代表各类报文错误;红色代表出现异常;其他颜色代表正常传输。
文章参考《计算机网络通关 29 讲》—— 林䭽