Wireshark工作笔记-对TCP连接与断开以及数据传输的实战分析
首先要使用一个TCP/UDP Socket调试工具。
本次使用虚拟机NAT模式,主机IP地址为192.168.164.1,此时主机的/UDP Socket调试工具配置如下:
虚拟机采用Win7 IP地址为192.168.164.101,其TCP/UDP Soceked调试工具配置如下:
在Wireshark过滤器里面输入过滤命令,就能对获取的数据包进行过滤命令如下:
ip.addr==192.168.164.101&ip.addr==192.168.164.1
最终Wireshark获取的数据包如下:
更具上一篇,也就是这篇的笔记https://blog.****.net/qq78442761/article/details/80345948
知道TCP连接时有3次握手。
客户机(192.168.164.101)请求连接将发送SYN标志,此时要求建立连接,并产生一个随机的Seq,这里为0
第二次握手,服务器(192.168.164.1)得知客户机(192.168.164.101)要建立连接后,回包给客户机(192.168.164.101)其封包中多了一个ACK的标志,这个ACK的值是客户机(192.168.164.101)发来的Seq的值加1(也就是0+1=1)。并且产生一个随机的Seq发给客户机(192.168.164.101)本次Seq=0。
1
第三次握手,客户机(192.168.164.101)检测服务器(192.168.164.1)发来的数据包是否正确,(第一次握手的,也就是Seq=0的时候)如果是Seq了,也就是0,ack也是1了,就对了,客户机再发送一条数据包,此时Seq+1,为1,Ack为1,此时连接建立。
关于数据传输,带PSH的就为数据传输:如下图
下面来分析,断开连接的四次握手:
首先客户机(192.168.164.101)发送FIN和ACK标志给服务器,其中FIN代表客户机与服务器要分手了。此时的Seq=101,ACK=1。随后服务器(192.168.164.1)两次发送数据包,一个是把Seq置为1,一个是客户机(192.168.164.101)的ACK,
,第二个包是FIN标志的,最后一次是客户机(192.168.164.101)把以前的seq与ACK置换,并ACK+1。
就完成了。
这里可以这么形象的理解:
客户机:我们分手把!
服务器:啥?
服务器:分手就分手,再来找我你就是猪!
客户机:回来找你我就不是人!