7.1 Extensions to the IP Service Interface (IP 服务接口的扩展)
7.1. IP 服务接口的扩展
传入的组播 IP 数据报由上层协议模块使用与普通单播数据报相同的"Receive IP"操作接收. 目的上层协议的选择基于 IP 头中的协议字段, 与目的 IP 地址无关. 但是, 在接收发往特定组的任何数据报之前, 上层协议必须请求 IP 模块加入该组. 因此, IP 服务接口必须扩展以提供两个新操作:
JoinHostGroup ( group-address, interface )
LeaveHostGroup ( group-address, interface )
JoinHostGroup 操作请求本主机在给定网络接口上成为由 group-address 标识的主机组的成员. LeaveHostGroup 操作请求本主机放弃在给定网络接口上对由 group-address 标识的主机组的成员关系. 对于仅支持一个接口的主机, interface 参数可以省略. 对于可能连接到多个网络的主机, 上层协议可以选择不指定接口, 在这种情况下, 请求将应用于发送组播数据报的默认接口 (参见第 6.1 节).
允许在多个接口上加入同一个组, 在这种情况下可能会收到重复的组播数据报. 也允许多个上层协议请求加入同一个组.
两个操作都应立即返回 (即它们是非阻塞操作), 指示成功或失败. 任一操作都可能因无效的组地址或接口标识符而失败. JoinHostGroup 可能因本地资源不足而失败. LeaveHostGroup 可能因主机在给定接口上不属于给定组而失败. LeaveHostGroup 可能成功, 但成员关系仍然保持, 如果有多个上层协议请求了同一组的成员关系.