滴滴网络编程专项面经:TCP三次握手、HTTPS加密流程、DNS解析优化、网络状态监听

📅 2026/8/13 11:23:10
滴滴网络编程专项面经:TCP三次握手、HTTPS加密流程、DNS解析优化、网络状态监听
上篇聊完Java基础,这篇进入滴滴网络编程专项。滴滴出行高度依赖网络——叫车请求、实时定位上报、行程同步。网络编程面试考TCP原理、HTTPS加密、DNS优化、网络状态监听。今天8道题覆盖滴滴网络编程面试核心考点。Q1:TCP三次握手的过程和原因?过程:客户端发送SYN(seq=x)→ 服务端收到SYN,回复SYN+ACK(seq=y, ack=x+1)→ 客户端收到SYN+ACK,回复ACK(ack=y+1)。三次握手完成后连接建立。为什么三次不是两次:两次握手无法防止历史连接。如果客户端之前发送的一个SYN在网络中延迟到达服务端,服务端认为是新连接发送SYN+ACK,客户端没有第三次确认——服务端白白分配资源。三次握手中客户端可以发送RST拒绝这个历史连接。为什么不是四次:三次已经足够确认双方的收发能力(第一次确认客户端能发,第二次确认服务端能收能发,第三次确认客户端能收)。追问:TCP四次挥手?主动关闭方发送FIN → 被动方回复ACK(此时被动方可能还有数据要发送)→ 被动方发送FIN → 主动方回复ACK → 等待2MSL(Maximum Segment Lifetime)后关闭。为什么等2MSL?确保末个ACK到达对方,以及让网络中残留的报文过期。Q2:HTTPS的加密流程是什么?TLS握手(TLS 1.2):客户端发ClientHello(加密套件+Client Random)→ 服务端回ServerHello(选定套件+Server R