一、先把这几个概念串起来
学 TCP 的时候,最容易乱掉的不是某一个知识点本身,而是这些概念老是缠在一起:
- 滑动窗口
- 发送窗口
- 接收窗口
- 重传
- 流量控制
- 拥塞控制
- 慢启动
- 快速重传
- 快速恢复
如果不先把主线抓住,很容易背一堆术语,最后还是讲不顺。
我自己的理解是:TCP 想做可靠传输,就必须回答四个问题。
- 数据丢了怎么办?
- 不想傻等 ACK,怎么提高发送效率?
- 接收方处理不过来怎么办?
- 网络本身快堵了怎么办?
2026/3/16...大约 21 分钟
学 TCP 的时候,最容易乱掉的不是某一个知识点本身,而是这些概念老是缠在一起:
如果不先把主线抓住,很容易背一堆术语,最后还是讲不顺。
我自己的理解是:TCP 想做可靠传输,就必须回答四个问题。
TCP 是面向连接的协议,通信之前需要先建立连接,通信结束后需要释放连接。建立连接使用三次握手(Three-Way Handshake),释放连接使用四次挥手(Four-Way Handshake)。
TCP 提供可靠传输,双方需要在传输数据之前先「商量好」一些参数,比如各自的初始序列号。握手过程就是双方互相确认对方的收发能力正常,并同步这些参数。
挥手则是为了优雅地关闭连接。因为 TCP 是全双工的(双方可以同时发送和接收),所以每个方向的关闭需要单独进行。
TCP/IP 四层模型是互联网的基础架构模型,自下而上分为四层:网络接口层、网络层、传输层、应用层。每一层负责不同的功能,通过逐层封装的方式实现端到端的网络通信。
┌─────────────────────────────────────────────────────┐
│ 应用层 │
│ HTTP, HTTPS, DNS, FTP, SSH │
├─────────────────────────────────────────────────────┤
│ 传输层 │
│ TCP, UDP │
├─────────────────────────────────────────────────────┤
│ 网络层 │
│ IP, ICMP, ARP │
├─────────────────────────────────────────────────────┤
│ 网络接口层 │
│ 以太网, WiFi │
└─────────────────────────────────────────────────────┘