SCTP 套接字 API
SCTP 套接字 API 功能包含一致性、辅助功能选项和兼容性。
“SCTP 套接字 API”用于提供以下功能:
- 维护现有套接字 API 中的一致性
- 为访问新的 SCTP 功能提供基础
- 提供兼容性,以便大多数现有 TCP 和 UDP 应用程序可以迁移至 SCTP,而几乎不用更改
为了便于迁移现有的 TCP 和 UDP 应用程序,设计了两种不同风格的 SCTP API:
- UDP 风格 API - 语义类似于为无连接协议(如 UDP)所定义的语义
- TCP 风格 API - 语义类似于为面向连接的协议(如 TCP)所定义的语义
尽管 SCTP 允许同时定义和使用 TCP 和 UDP 样式的套接字 API ,但在 AIX® 5.3中,仅支持 UDP样式的套接字语法,因为 UDP样式的 API 在访问 SCTP的新功能方面提供了更大的灵活性。 使用 UDP 风格的 API 时,典型的服务器在关联生存期内使用以下调用顺序。
- socket()
- bind()
- listen()
- recvmsg()
- sendmsg()
- close()
典型的客户机使用以下顺序的套接字 API 调用:
- socket()
- sendmsg()
- recvmsg()
- close()
使用上述调用序列创建的关联称作显示创建的关联。 创建套接字后,只需调用 sendmsg() 即可隐式创建关联。 recvmsg() 或 sendto() 和 recvto()。 对于隐式关联,不需要 bind() 和 listen() 调用。 所有这些系统调用的语法都类似于 UDP 套接字中所使用的语法。 对于套接字子例程, Type 字段应该设置为 SOCK_SEQPACKET , Protocol 字段应该为 IPPROTO_SCTP。 除了这些标准套接字 API 外, SCTP 还提供了两个新 API: sctp_peeloff() 和 sctp_opt_info()。 可在 "SCTP 套接字 API 草稿" 中找到有关将套接字 API 用于 SCTP 的更多信息。 SCTP 已作为内核扩展在 AIX 5.3中实现。 用户可以使用 sctpctrl 命令来装入和卸载 SCTP 内核扩展。
此外,此命令还可用于使用不同的选项 (例如 get 和 set) 来查看和更改 SCTP 内核扩展的各种其他统计信息和可调参数。