运输层与网络层的职责如何划分?
- 网络层: 在不同主机之间提供逻辑通信;
- 运输层: 在同一台主机的不同进程之间提供逻辑通信;
- 分组名称: 运输层的分组称为报文段, 网络层的分组称为数据报;
运输层协议需要满足哪些要求?
- 可靠数据传输;
- 吞吐量;
- 定时保证 (时延);
- 安全性;
TCP 提供哪些服务?
- 面向连接: 数据传输前双方交换运输层控制信息完成握手, 握手后在两个套接字之间建立连接;
- 全双工: 连接建立后双方可同时收发;
- 可靠数据服务: 具备差错恢复与拥塞控制机制;
- 面向字节流: 不保留应用层消息边界, 因此会出现粘包, 见 TCP 粘包与队首阻塞;
- 单播: 只能一对一;
UDP 提供哪些服务?
- 轻量级: 无握手过程, 无连接状态;
- 不可靠数据服务: 不保证交付、不保证顺序;
- 面向报文: 保留应用层消息边界;
- 传输方式: 支持单播、广播与多播;
SSL 补充了什么?
- SSL: 安全套接字层, 可视为加强版的 TCP;
- 提供的能力: 进程到进程的安全性服务, 包括加密、完整性与端点鉴别;
- 层次归属: 在应用层与运输层之间补充的安全能力;
TCP 与 UDP 如何取舍?
| 维度 | TCP | UDP |
|---|
| 连接 | 面向连接 | 无连接 |
| 可靠性 | 可靠交付 | 尽力交付 |
| 消息边界 | 面向字节流 | 面向报文 |
| 传输方式 | 单播 | 单播/广播/多播 |