Open linwu-hi opened 1 year ago
TCP三次握手是在建立TCP连接时需要进行的过程,用于确认双方的接收能力和发送能力是否正常,以及指定序列号等参数。
通过三次握手,双方确认了彼此的接收和发送能力正常,可以进行正常的数据传输。
如果只有两次握手,发送端可以确认自己发送的信息对方能收到,也可以确认对方发送的信息自己能收到,但接收端无法确认自己发送的信息对方是否能收到。因此,需要三次握手来确认双方的接收和发送能力都正常。
另外,三次握手可以防止已失效的连接请求报文段再次传到服务端,导致服务器资源浪费。
TCP四次挥手是在断开TCP连接时需要进行的过程,用于正常关闭连接。
服务端在收到客户端断开连接FIN包后,并不会立即关闭连接,而是先发送一个ACK包先告诉客户端收到关闭连接的请求,只有当服务器的所有报文发送完毕之后,才发送FIN包断开连接,因此需要四次挥手。
TCP三次握手和四次挥手是TCP连接建立和断开过程中必要的步骤,通过这些步骤,可以保证连接的可靠性和正常关闭,确保数据的准确传输和释放服务器资源。
面试官:说说TCP为什么需要三次握手和四次挥手?
一、TCP三次握手
TCP三次握手是在建立TCP连接时需要进行的过程,用于确认双方的接收能力和发送能力是否正常,以及指定序列号等参数。
握手过程:
通过三次握手,双方确认了彼此的接收和发送能力正常,可以进行正常的数据传输。
为什么需要三次握手?
如果只有两次握手,发送端可以确认自己发送的信息对方能收到,也可以确认对方发送的信息自己能收到,但接收端无法确认自己发送的信息对方是否能收到。因此,需要三次握手来确认双方的接收和发送能力都正常。
另外,三次握手可以防止已失效的连接请求报文段再次传到服务端,导致服务器资源浪费。
二、TCP四次挥手
TCP四次挥手是在断开TCP连接时需要进行的过程,用于正常关闭连接。
挥手过程:
四次挥手原因
服务端在收到客户端断开连接FIN包后,并不会立即关闭连接,而是先发送一个ACK包先告诉客户端收到关闭连接的请求,只有当服务器的所有报文发送完毕之后,才发送FIN包断开连接,因此需要四次挥手。
三、总结
TCP三次握手和四次挥手是TCP连接建立和断开过程中必要的步骤,通过这些步骤,可以保证连接的可靠性和正常关闭,确保数据的准确传输和释放服务器资源。
参考文献