We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TCP三次握手是在建立TCP连接时需要进行的过程,用于确认双方的接收能力和发送能力是否正常,以及指定序列号等参数。
通过三次握手,双方确认了彼此的接收和发送能力正常,可以进行正常的数据传输。
如果只有两次握手,发送端可以确认自己发送的信息对方能收到,也可以确认对方发送的信息自己能收到,但接收端无法确认自己发送的信息对方是否能收到。因此,需要三次握手来确认双方的接收和发送能力都正常。
另外,三次握手可以防止已失效的连接请求报文段再次传到服务端,导致服务器资源浪费。
TCP四次挥手是在断开TCP连接时需要进行的过程,用于正常关闭连接。
服务端在收到客户端断开连接FIN包后,并不会立即关闭连接,而是先发送一个ACK包先告诉客户端收到关闭连接的请求,只有当服务器的所有报文发送完毕之后,才发送FIN包断开连接,因此需要四次挥手。
TCP三次握手和四次挥手是TCP连接建立和断开过程中必要的步骤,通过这些步骤,可以保证连接的可靠性和正常关闭,确保数据的准确传输和释放服务器资源。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
面试官:说说TCP为什么需要三次握手和四次挥手?
一、TCP三次握手
TCP三次握手是在建立TCP连接时需要进行的过程,用于确认双方的接收能力和发送能力是否正常,以及指定序列号等参数。
握手过程:
通过三次握手,双方确认了彼此的接收和发送能力正常,可以进行正常的数据传输。
为什么需要三次握手?
如果只有两次握手,发送端可以确认自己发送的信息对方能收到,也可以确认对方发送的信息自己能收到,但接收端无法确认自己发送的信息对方是否能收到。因此,需要三次握手来确认双方的接收和发送能力都正常。
另外,三次握手可以防止已失效的连接请求报文段再次传到服务端,导致服务器资源浪费。
二、TCP四次挥手
TCP四次挥手是在断开TCP连接时需要进行的过程,用于正常关闭连接。
挥手过程:
四次挥手原因
服务端在收到客户端断开连接FIN包后,并不会立即关闭连接,而是先发送一个ACK包先告诉客户端收到关闭连接的请求,只有当服务器的所有报文发送完毕之后,才发送FIN包断开连接,因此需要四次挥手。
三、总结
TCP三次握手和四次挥手是TCP连接建立和断开过程中必要的步骤,通过这些步骤,可以保证连接的可靠性和正常关闭,确保数据的准确传输和释放服务器资源。
参考文献
The text was updated successfully, but these errors were encountered: