Skip to content

TCP/IP 基础

1. TCP 三次握手 (建立连接)

  1. SYN: 客户端发送 connect 请求 (SYN=1, seq=x)。
  2. SYN+ACK: 服务端收到请求,回复确认 (SYN=1, ACK=1, seq=y, ack=x+1)。
  3. ACK: 客户端确认收到 (ACK=1, seq=x+1, ack=y+1)。

为什么需要三次? 为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。并且确认双方的收发能力都正常。

2. TCP 四次挥手 (断开连接)

  1. FIN: 客户端发送关闭请求。
  2. ACK: 服务端收到,回复确认 (此时服务端可能还有数据要发送,进入 CLOSE_WAIT)。
  3. FIN: 服务端数据发送完毕,发送关闭请求。
  4. ACK: 客户端回复确认 (进入 TIME_WAIT,等待 2MSL 后彻底关闭)。

3. TCP vs UDP

  • TCP: 面向连接、可靠 (重传、排序、流控)、慢。适用: 文件传输、邮件、网页。
  • UDP: 无连接、不可靠 (丢包不重传)、快。适用: 视频直播、语音、DNS。

前端面试知识库