什么是 TCP?

TCP(Transmission Control Protocol,传输控制协议) 是互联网的核心协议之一,属于 传输层(Transport Layer)

它的主要作用是:

在两台计算机之间 可靠、有序、无差错地传输数据

TCP 就像一个负责、聪明的快递员,确保每一份数据包都完整、安全地送到目的地。


TCP 的核心特性

特性 说明
✅ 面向连接 通信前必须建立连接(三次握手),通信结束要关闭(四次挥手)
🔁 可靠传输 确保数据不丢失、不重复、顺序正确
📦 流量控制 根据接收方处理能力动态调整发送速度(滑动窗口)
🚦 拥塞控制 避免网络拥堵,自动调整发送速率
🔄 全双工通信 双方可同时发送和接收数据
🧮 面向字节流 数据以连续的字节流形式传输,而非独立数据包

TCP 的“可靠传输”机制

TCP 能在不稳定的网络环境下保证数据可靠性,主要依赖以下机制 👇

机制 功能 举例说明
序列号(Sequence Number) 给每个数据包编号,保证顺序传输 包 ① 序号 1001 → 包 ② 序号 1002
确认应答(ACK) 接收方回复“我收到了” ACK=1002 表示已收到前一包
超时重传 超时未收到确认则重发 没收到 ACK → 重新发包
流量控制(Sliding Window) 防止对方来不及接收 根据接收方窗口大小调整发送速率
拥塞控制 防止网络过载 网络忙时减速,空闲时加速

TCP 的连接过程

1️⃣ 三次握手(建立连接)

1
2
3
4
① 客户端 → 服务器:SYN(请求建立连接)
② 服务器 → 客户端:SYN + ACK(同意并确认)
③ 客户端 → 服务器:ACK(确认)
✅ 连接建立,准备传数据

2️⃣ 四次挥手(断开连接)

1
2
3
4
5
① 客户端:FIN(我发完了)
② 服务器:ACK(我知道了)
③ 服务器:FIN(我也发完了)
④ 客户端:ACK(确认)
🚪 连接关闭

TCP 与 HTTP 的关系与区别

对比项 TCP HTTP
协议层级 传输层 应用层
功能 负责“怎么传”数据 负责“传什么”数据
关系 HTTP 基于 TCP 实现 TCP 为 HTTP 提供可靠传输通道
举例 电话线路 对话内容
默认端口 不固定 80(HTTP) / 443(HTTPS)

HTTP 依赖 TCP 来确保网页数据能够可靠地从服务器传到浏览器。


TCP 文字示意图回顾

1
2
3
4
5
6
7
Sender → Receiver : [Seq=1001] 数据块①
Receiver → Sender : [ACK=1002] 收到①
Sender → Receiver : [Seq=1002] 数据块②
Receiver → Sender : [ACK=1003] 收到②
Sender → Receiver : [Seq=1003] 数据块③ (丢失)
Sender(超时)→ 重发 数据块③
Receiver → Sender : [ACK=1004] 收到③ ✅

👉 最终数据恢复为:

1
数据① → 数据② → 数据③

总结一句话

TCP 是互联网的可靠传输基础。 它通过“编号、确认、重传、流控、拥塞控制”等机制, 确保数据在复杂的网络环境中依然能安全、有序、完整地抵达目标。

📦 形象比喻:

TCP 是快递系统(负责安全运输) HTTP 是包裹内容(网页、图片、视频等)