TCP 连接
TCP 连接需要三次握手(客户端和服务端加起来共发送三个包),TCP 断开需要四次挥手(客户端和服务端加起来共发送四个包)
HTTP 连接
HTTP 协议是建立在 TCP 协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次 HTTP 请求。HTTP 会通过 TCP 建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,HTTP 会立即将 TCP 连接断开,这个过程是很短的。所以 HTTP 连接是一种短连接,是一种无状态的连接。
无状态
所谓的无状态,是指浏览器每次向服务器发起请求的时候,不是通过一个连接,而是每次都建立一个新的连接。
三次握手:
- 客户端 – 发送带有 SYN 标志的数据包 - 一次握手
- 服务端 – 发送带有 SYN/ACK 标志的数据包 – 二次握手
- 客户端 – 发送带有带有 ACK 标志的数据包 – 三次握手
四次挥手:
- 客户端 - 发送一个 FIN,用来关闭客户端到服务器的数据传送
- 服务器 - 收到这个 FIN,它发回一个 ACK,确认序号为收到的序号加 1 。和 SYN 一样,一个 FIN 将占用一个序号
- 服务器 - 关闭与客户端的连接,发送一个 FIN 给客户端
- 客户端 - 发回 ACK 报文确认,并将确认序号设置为收到序号加 1
参考:
小哥哥,小姐姐,我有一份 tcp、http 面试指南你要吗?
TCP 三次握手四次挥手
TCP 协议中的三次握手和四次挥手(图解)
文中图片可能来自网络,侵删
Leave a comment