TCP连接 三次握手 四次挥手

Posted lsrd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP连接 三次握手 四次挥手相关的知识,希望对你有一定的参考价值。

前言:

TCP协议是面向连接、安全可靠、基于字节流的传输层协议,在进行http协议访问时就用到了tcp连接。在建立TCP连接时需要经历三次握手,断开连接时需要经历四次挥手。在此进行记录。

内容:

 

  • TCP三次握手

   第一次握手:由客户端发起,客户端生成一个SYN,以及一个随机数标记数X,然后将随机标记数X和SYN发送为服务端,此时客户端进入SYN_SENT状态,等待服务端响应。

   第二次握手:服务端接收到SYN后得知客户端请求连接,然后服务端将SYN和ACK都置为1,并将ack=X+1,再生成一个随机数Y,将数据包发送给客户端,进入SYN_RCVD状态。

   第三次握手:客户端接收到数据包之后,先检测服务端发送回来的ack值是否等于X+1;如果正确就将ACK置1,并将ack=Y+1,发送给服务端。服务端再次检测ack的值是否等于Y+1,如果正确则建立连接,完成。

  • TCP四次分手

   第一次分手:客户端设置seq=x,向服务端发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示客户端没有数据要发送给服务端了; 
   第二次分手:服务端收到了客户端发送的FIN=1,向客户端回复ACK=1,ack=收到的seq+1=x+1,然后客户端进入FIN_WAIT_2状态;服务端告诉客户端,在等待自己去关闭连接 
   第三次分手:服务端向客户端发送FIN=1,设置seq=y,请求关闭连接,同时服务端进入LAST_ACK状态; 
   第四次分手:客户端收到服务端发送的FIN,向服务端发送ACK=1,ack=收到的seq+1=y+1,然后主机1进入TIME_WAIT状态;服务端收到客户端的ACK报文段以后,就关闭连接;此时,客户端等待2MSL后依然没有收到回复,则证明Server端已正常关闭,客户端也关闭连接。 

 

后期整理补充:为什么要进行三次握手及四次握手

参考博文:https://blog.csdn.net/u011109589/article/details/80306479

结语:新的一年,坚持下去,有所改变。

 




以上是关于TCP连接 三次握手 四次挥手的主要内容,如果未能解决你的问题,请参考以下文章

一文搞懂TCP的三次握手和四次挥手

TCP 连接三次握手、四次挥手

TCP连接时的三次握手,四次挥手

TCP三次握手,四次挥手原因

三次握手,四次挥手(详解)

tcp 三次握手 四次挥手