流控制传输协议
流传输控制协议 (SCTP) 是面向连接的协议,但它提供了面向消息的数据传输,这与 UDP 相似。 该 AIX® 操作系统符合RFC 4960标准。
下表突出显示了 SCTP 和现有传输协议(TCP 和 UDP)工作情况的大致区别。
| 属性 | TCP | UDP | SCTP |
|---|---|---|---|
| 可靠性 | 可靠的 | 不可靠 | 可靠的 |
| 连接管理 | 面向连接的 | 无连接 | 面向连接的 |
| 传输 | 面向字节的 | 面向消息的 | 面向消息的 |
| 流量控制 | 是 | False | 是 |
| 拥塞控制 | 是 | False | 是 |
| 容错 | False | False | 是 |
| 数据传递 | 严格排序 | 无序的 | 部分排序 |
| 安全性 | 是 | 是 | 改良的 |
通常,SCTP 可以为某些应用程序提供更多灵活性,比如 Voice over IP (VoIP),这就需要可靠但面向消息的数据传输。 对于这种类型的应用程序,SCTP 很可能比 TCP 或 UDP 更加合适。
- TCP 提供了可靠且传输严格排序的数据传递。 对于需要可靠性,但可以容许无序或部分排序的数据传递的应用程序,TCP 可能由于行头分块导致某些不必要的延迟。 利用单个连接中多个流的概念,SCTP 可以从逻辑上隔离来自不同流的数据时在一个流中提供严格排序的传递。
- SCTP 是面向消息的,不像 TCP 是面向字节的。 由于 TCP 面向字节的性质,应用程序必须添加其自己的记录标记以维护消息边界。
- SCTP 通过使用“多宿主”功能提供了某种程度的容错。 当一个主机有多个网络接口已连接(不论在同一或不同网络上),它会被认为是多宿主的。 在两个多宿主主机之间可以建立 SCTP 关联。 在这种情况下,两个端点的所有 IP 地址都 会在关联启动时进行交换;这使得如果其中一个接口因任何原因关闭,每个端点可以在连接的生命周期内使用这些接口中 的任一个,直到可以通过备用接口到达对等端点。
- SCTP 提供了 TCP 和 UDP 所无法提供的其他安全功能。 在 SCTP 中,会在关联设置的过程中延迟资源分配,直到可以使用 cookie 交换机制验证客户机的标识,从而减少了拒绝服务攻击的可能性。