ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

钉钉Java面经及参考答案

钉钉Java面经及参考答案 简述 TCP 的三次握手过程,并说明 TCP 与 UDP 的主要区别。UDP、TCP 和 HTTP 分别工作在 OSI 七层模型的哪一层?TCP 三次握手建立连接的核心目标是双向确认双方发送、接收能力,同步通信序列号,协商初始窗口大小,防止历史过期连接报文干扰新连接。第一次握手,客户端主动向服务端发送 SYN 报文,携带客户端随机生成的初始序列号 ISN,客户端状态变更为 SYN_SENT,目的是告知服务端客户端具备发送数据的能力。第二次握手,服务端收到 SYN 报文后,回复 SYN+ACK 报文,其中 ACK 确认号为客户端 ISN+1,同时携带服务端自身随机初始序列号,服务端进入 SYN_RCVD 状态,代表服务端确认收到客户端报文,且自身收发功能正常。第三次握手,客户端收到 SYN+ACK 报文后,发送 ACK 确认报文,确认号为服务端 ISN+1,客户端切换至 ESTABLISHED;服务端收到该 ACK 后,同样进入 ESTABLISHED 状态,双向连接正式就绪,可传输业务数据。第三次握手不可省略,如果仅两次握手,服务端无法确认客户端能否接收报文,容易产生无效半连接占用服务端资源。TCP 与 UDP 核心差异可以通过维度区分。TCP 是面向连接协议,通信前建立连接、通信结束正常断开连接;UDP 属于无连接协议,无需预先建立通道,直接发送数据包。TCP 提供可靠传输,依靠序列号、确认应答、超时重传、滑动窗口、拥塞控制保证数据不丢失、不错乱、不重复;UDP 是不可靠传输,没有任何校验重传机制,数据可能丢失、乱序。TCP 支持流量控制、拥塞控制,避免接收缓冲区溢出和网络过载;UDP 不存在相关控制机制。TCP 报文头部最小 20 字节,开销较大;UDP 头部固定 8 字节,协议开销极低。T
返回列表