TCP 连接

TCP 连接需要三次握手(客户端和服务端加起来共发送三个包),TCP 断开需要四次挥手(客户端和服务端加起来共发送四个包)

HTTP 连接

HTTP 协议是建立在 TCP 协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次 HTTP 请求。HTTP 会通过 TCP 建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,HTTP 会立即将 TCP 连接断开,这个过程是很短的。所以 HTTP 连接是一种短连接,是一种无状态的连接。

无状态

所谓的无状态,是指浏览器每次向服务器发起请求的时候,不是通过一个连接,而是每次都建立一个新的连接。

三次握手:

  1. 客户端 – 发送带有 SYN 标志的数据包 - 一次握手
  2. 服务端 – 发送带有 SYN/ACK 标志的数据包 – 二次握手
  3. 客户端 – 发送带有带有 ACK 标志的数据包 – 三次握手

四次挥手:

  1. 客户端 - 发送一个 FIN,用来关闭客户端到服务器的数据传送
  2. 服务器 - 收到这个 FIN,它发回一个 ACK,确认序号为收到的序号加 1 。和 SYN 一样,一个 FIN 将占用一个序号
  3. 服务器 - 关闭与客户端的连接,发送一个 FIN 给客户端
  4. 客户端 - 发回 ACK 报文确认,并将确认序号设置为收到序号加 1

参考:

小哥哥,小姐姐,我有一份 tcp、http 面试指南你要吗?
TCP 三次握手四次挥手
TCP 协议中的三次握手和四次挥手(图解)

文中图片可能来自网络,侵删

Leave a comment