第3章 传输层¶
网络层把数据尽力送到目标主机,传输层进一步回答“交给哪个进程”和“进程希望得到怎样的交付服务”。UDP 提供轻量数据报,TCP 提供面向连接的可靠有序字节流;QUIC 则在 UDP 之上由用户态实现可靠传输、多路复用与安全握手。
本章地图¶
两个端到端原则¶
第一,只有端系统最清楚应用需要什么。IP 核心网络无需为每条 TCP 连接保存完整可靠状态,端点通过确认和重传恢复丢失。
第二,可靠并不等于无限等待。协议必须在吞吐、时延、资源与失败判定间做权衡。实时通话可能宁愿丢掉迟到语音,也不愿等待重传;文件传输则通常要求每个字节最终一致。
学习目标¶
学完本章应能解释:
- 端口如何把 IP 数据报交给正确进程。
- TCP 为什么是字节流,应用为何仍需定义消息边界。
- 发送方如何判断“该重传了”,以及重复分组为何不能重复交付。
- 接收窗口与拥塞窗口分别保护谁。
- 高带宽长时延网络为何需要更大的在途数据量。
开始前的自测
TCP 确认丢失后,发送方重传了已被接收的数据。接收方如何避免把同一字节交给应用两次?关键是序号:接收方识别重复序号,只重新确认而不重复交付。