Transport Service Guarantees(传输层服务承诺与局限)
Problem(解决什么问题)
应用层在发起网络通信时,需要确定下层网络协议栈能够为其提供哪些服务保障(可靠性、吞吐量、定时/时延、安全性),以便选择合适的传输层协议(TCP 或 UDP)。
Basic Idea(核心思想)
传输层协议本身的服务能力是有限的:TCP 能通过端系统机制提供可靠数据传输(确认、重传),UDP 不提供可靠性;安全性通常由运行在传输层之上的 TLS / DTLS 等机制提供,而不是 TCP/UDP 原生提供。无论 TCP 还是 UDP,都无法提供“吞吐量”与“定时(时延)”的硬性承诺。
Trade-off(物理局限与设计权衡)
为什么定时(时延)与吞吐量无法由传输层保障?
- 底层 IP 的尽力而为(Best-Effort)本质:网络层 IP 协议采用分组交换与统计复用,中间路由器没有预留固定带宽。
- 排队延时与拥塞的动态性:报文在经过中间路由器时,排队延时和丢包具有随机性。端系统协议(TCP/UDP)无法控制中间自治系统路由器的繁忙程度。
服务保障对比
| 服务维度 | TCP 协议 | UDP 协议 | 无法保障的根源 |
|---|---|---|---|
| 可靠性 | 保障(确认、重传、校验) | 不保障 | - |
| 安全性 | TCP 之上可使用 TLS | UDP 之上可使用 DTLS | 安全性由上层安全协议提供,不是 TCP/UDP 原生能力 |
| 吞吐量 | 无法保障 | 无法保障 | 底层 IP 统计复用,无带宽预留 |
| 定时 (时延) | 无法保障 | 无法保障 | 分组交换路由器排队延时不可控 |