一、TCP连接是以报文的形式传输建立连接的,我们需要清楚以下的几种重要报文信息
序号Seq、确认号Ack、标志位:SYN(发起连接)、Fin(释放连接)
二、接下来我们就可以学习TCP三次握手、四次挥手了
三次握手:(使用wireshark工具抓取)
首先客户端发个服务端一个建立连接的请求,也就是标志位[SYN],Seq=0
然后服务端接收到客户端的请求后,发送建立连接+确认请求,也就是标志位[SYN,ACK],Seq=0,Ack=1
最后客户端确认服务器端的发送是ok的,报文就是标志位[ACK],Seq=1,Ack=1
至此,tcp长连接已建立,使用三次握手是为了,1、保证双方均已知晓自己可以传输数据 2、防止请求超时导致的脏连接
四次挥手:
第一次挥手:主动方主动向被动方发送我想释放连接的请求,报文如下:FIN=1,Seq=x
第二次挥手:被动方收到报文,向主动方发送确认信息,并准备相关事宜,报文如下:Ack=x+1,Seq=y
第三次挥手:被动方事情准备完毕,向主动方发送我想释放连接的请求,报文如下:FIN=1,Ack=x+1,Seq=w
第四次挥手:主动方收到被动方的报文,通知被动方,我已知晓你要释放连接了,报文如下:Ack=w+1,Seq=x+1
四次挥手的目的:第二次挥手的目的是为了让主动方知晓自己有释放连接能力,且让被动方将未做完的事情做完,第四次是为了让被动方知晓自己有释放连接的能力