说明:系统是windos10的,调用http接口来看TCP三次握手的连接及四次挥手的过程。

wireshark安装很好安装,官网下载自己系统的版本然后下载一键默认安装即可,安装完毕双击启动。就是如下图片:

wireshark抓取语音通话 wireshark端口抓取_wireshark抓取语音通话

 也可以点击菜单选项捕获,用来选择要捕获的网络,也可以全选,点开始

wireshark抓取语音通话 wireshark端口抓取_客户端_02

这个时候进监控页面,因为其他开发的工具也在开着,可能会一直监控到对你来说没有用的信息,此时需要过滤捕捉你需要的信息,如,代表,过滤目标ip和源ip都是此ip,TCP的端口为8089才会抓取到控制台上。

ip.addr == 192.168.1.118 and tcp.port==8089

那么我们现在在postman访问下一个http接口,看如下图:

在三次TCP以后出现了http的请求,这三次就是TCP的三次握手过程,咱们来详细的看一下

wireshark抓取语音通话 wireshark端口抓取_tcp/ip_03

 点击第一次连接的列表展示详情,第一次连接是客户端主动要连接服务端的,可以看到传输控制协议里Seq=0(Seq是序列号),代表初次连接,Ack=0(确认码),初次连接为0

wireshark抓取语音通话 wireshark端口抓取_tcp/ip_04

 除了要给上面所说的信息以外,还要给标志位,就是flags=初次连接需要给SYN=1的标志位表示请求建立连接。

wireshark抓取语音通话 wireshark端口抓取_wireshark抓取语音通话_05

 点击第二次连接,详情如下:

第二次握手是服务端的回馈 8089端口给61474的端口数据,初次连接所以Seq=0,Ack=上一次客户端的序列号+1;

wireshark抓取语音通话 wireshark端口抓取_wireshark抓取语音通话_06

 标志位是SYN=1和ACK=1,代表这是一个确认的回馈连接

wireshark抓取语音通话 wireshark端口抓取_网络_07

 第三次握手详情点击,是客户端61474给8089服务端的反馈,Seq=1,因为这是客户端的第二次交互了,Ack=上一次服务端连接的序列号+1

wireshark抓取语音通话 wireshark端口抓取_wireshark抓取语音通话_08

 标志位为:ACK,表示确认收到了连接回复,三次握手就建立连接完毕

wireshark抓取语音通话 wireshark端口抓取_网络_09

 第4个包是建立http请求,开始传输数据。第5个包Seq=1,为服务器的第二次处理,Ack=上一个http的请求长度+1(254)

wireshark抓取语音通话 wireshark端口抓取_tcp/ip_10

包6,Seq=1,因为一直没有有效的数据,Ack则为上一次包的长度

wireshark抓取语音通话 wireshark端口抓取_网络_11

 包7,客户端给服务端,Seq=http传输的长度+1,Ack=上一个包的长度(8192)+1,之后都是往复循环发送数据。

wireshark抓取语音通话 wireshark端口抓取_wireshark抓取语音通话_12

 发送完毕开始4次挥手操作,服务端想要跟客户端断开连接,数据传输完了,所以发送了标志位FIN,ACK代表要断开连接了我这边不传输数据了Seq是之前的传输数据的长度演变过来的,Ack也是上一些数据传输得到的确认码

wireshark抓取语音通话 wireshark端口抓取_wireshark_13

客户端收到服务端的确认,Seq是上一次客户端的序列号,因为不传输数据所以不加1,Ack则是服务端的Seq数据+1;

wireshark抓取语音通话 wireshark端口抓取_wireshark抓取语音通话_14

 随后客户端又发送标志位FIN,ACK,Seq=上一次的客户端不加1因为没有传输有效的数据,Ack=上一次客户端的确认码不加1,原因是也没有有效数据,代表客户端也可以关闭此连接了,不传输数据了。

wireshark抓取语音通话 wireshark端口抓取_wireshark抓取语音通话_15

收到客户端的回复,发送ACK标志位表示回复,Seq=上一次服务端给客户端序号码+1,Ack=客户端的序列号+1;代表我收到了你的结束请求,完整的关闭,客户端关闭并也告知服务端,服务端关闭也告知了客户端。

wireshark抓取语音通话 wireshark端口抓取_网络_16

 到此三次连接和四次挥手的过程就都展示出来了,最好自己安装此抓包工具,就能更方便的,也更清晰的知道包传输的过程,也会更加好记忆,我也是此次抓包才会对TCP连接记忆更加深刻。