TCP三次握手和四次挥手

259 阅读2分钟

三次握手

1.三次握手具体的过程

第一次握手:客户端-->服务端:发送带有SYN标识的数据包;
第二次握手:服务端-->客户端:传回带有SYN、ACK标识的数据包;
第三次握手:客户端-->服务端:发送ACK标识的数据包;

2.为什么要三次握手

主要是为了保证双方发送和接收数据的正确性
第一次握手时,客户端什么都不能确认,而服务端确认了对方发送正常
第二次握手时,客户端确认了:自己发送、接收正常,对方发送、接收正常,而服务端确认了自己接收正常
第三次握手时,服务端确认了自己发送正常

3.为什么要传回SYN

服务端为了告诉客户端,我接收到的信息确实就是你发送的数据。

4.为什么还要传ACK

传了SYN确认了发送端到接收端的信道是正常的,而接收端到发送端的通信信道还需要ACK信号来确认。

四次挥手

1.四次挥手的流程

1.客户端-->服务端:发送一个FIN
2.服务端-->客户端:收到FIN后,返回一个ACK(注意此时还没去关闭)
3.服务端-->客户端:服务端关闭连接后,再发送一个FIN
4.客户端-->服务端:发送ACK确认。

2.为什么要四次挥手(不确定*)

在接收端收到要关闭的信号后,先传回个信号表示知道了,但可能这时候还没来得及关闭,所以要在确认自己关闭之后再传回个FIN表示自己确实关闭了,发送端这时候才知道对方确实关闭了,表示收到回个ACK。