TCP连接与释放:四次挥手、三次握手解析

需积分: 0 0 下载量 144 浏览量 更新于2024-08-04 收藏 2.44MB DOCX 举报
"计算机网络面试常见知识点,包括TCP与UDP的区别、OSI模型、HTTP与HTTPS的差异、TCP连接的三次握手与四次挥手机制,以及TCP连接中的保活计时器和TIME_WAIT与CLOSE_WAIT状态的问题。" 计算机网络是信息技术的基础,其面试中常常涉及的关键概念和技术包括: 1. **OSI模型**:开放系统互连参考模型分为七层,自下而上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每一层都有特定的功能,如物理层负责比特流传输,传输层则处理端到端的数据传输,常见的传输层协议有TCP和UDP。 2. **TCP与UDP的区别**: - TCP(传输控制协议)提供面向连接、可靠的字节流服务,通过三次握手建立连接,四次挥手释放连接,保证数据的有序、无损传输。 - UDP(用户数据报协议)是无连接的,不保证数据传输的可靠性,但具有更低的延迟和更高的传输效率,适合实时性要求高的应用,如视频会议、在线游戏。 3. **三次握手**: - 第一次握手:客户端发送SYN报文,请求建立连接。 - 第二次握手:服务器响应SYN+ACK报文,同意建立连接。 - 第三次握手:客户端回应ACK报文,确认连接建立。 - 这个过程确保双方都有能力并愿意进行通信,防止已失效的请求报文导致误连接。 4. **四次挥手**: - 第一次挥手:客户端发送FIN报文,表示不再发送数据。 - 第二次挥手:服务器回应ACK报文,确认收到了客户端的结束请求。 - 第三次挥手:服务器发送FIN报文,告知客户端自己也准备结束。 - 第四次挥手:客户端回应ACK报文,确认收到服务器的结束请求。 - 四次挥手的原因是TCP的全双工特性,双方都需要独立关闭连接。 5. **保活计时器**: - 当服务器收到客户端请求后,会启动保活计时器,若在一定时间内未收到客户端数据,会发送探测报文,连续多次无响应则认为客户端故障,关闭连接。 6. **TIME_WAIT与CLOSE_WAIT状态**: - TIME_WAIT状态:客户端在发送完最后一个ACK后,等待2MSL(最大分片生存时间)以确保服务器接收到确认,并允许网络中可能丢失的报文段消亡,避免旧连接影响新连接。 - CLOSE_WAIT状态:服务器收到FIN后进入此状态,等待发送完剩余数据并发送自己的FIN。 这些知识点不仅在面试中常见,也是理解和优化网络性能的关键。掌握它们有助于深入理解计算机网络的工作原理和问题排查。