wireshark_checkin
这么多数据包,先快速找到主要部分。
标绿色的是 HTTP 协议相关的,鼠标左键点击 GET /reverse.c
这个条目,看 Wireshark 界面左下角,写着一个 Port: 7070
,这个是 HTTP 服务器的开放端口。
接下来点击最上面的搜索框,输入 tcp.port == 7070
,这样就可以快速过滤出所有有关这个端口的 TCP 报文
TIP
HTTP 协议是建立在 TCP 协议之上的,这里的 tcp.port == 7070
是过滤出所有有关这个端口的 TCP 报文,而 HTTP 在这个端口之上,因此也相当于过滤出了所有有关这个端口的 HTTP 报文。
这样变得好看多了,但是还不够清晰,因为这里包含了所有有关这个端口的 TCP/HTTP 请求和响应,假如只想看其中一个 HTTP 请求的流程:看 GET /flag.txt
这个条目
有一个 Src port: 33751
,所以过滤器写 tcp.port == 33751
,因为同一个 HTTP 请求和响应的客户端用的是同一个端口。这样就能只看有关 flag.txt
的这次请求和响应的所有过程。
这就是 3 次握手和四次挥手。
关于 TCP 的 3 次握手和 4 次挥手
3 次握手
4 次挥手
但是下面这个,只有一个 FIN,怎么回事?
因为还有一个 FIN 在 HTTP/1.1
这里面,发送完响应后,就立刻第一次挥手了。
flag 在右下角。