主机扩展用于IP多点传送( 三 )


IP主机组地址 。大多数IP实现包括以下逻辑:
ifIP目的地在同样的本地网络上
在本地发送数据报给IP目的地
else
在本地发送数据报给网关(IP目的地)
为了达到多播传送,路由选择逻辑必须改为:
ifIP目的地在同样的本地网络上
orIP目的地是一个主机组
在本地发送数据报给IP目的地
else
在本地发数据报给网关(IP目的地)
假如发送主机本身是外出接口上目的主机组的成员,则外出数据报一个拷贝必须回送来
达到本地传送,除非由发送者禁止 。(仅用于2级实现)
外出数据报的源地址必须是与外出接口相对应的单个地址中的一个 。
主机组地址一定不会出现在外出IP数据报的源地址字段,和源路由或记录路由选项中
的任何地方 。
6.3本地网络服务接口的扩展
为了支持多播IP数据报的发送,对本地网络服务接口没有任何改变 。当IP模块调用现
存的“sendlocal"操作时,只不过指定一个IP主机组目的地址,而不是单个IP目的地址 。
6.4以太网本地网络模块的扩展
通过答应多播地址出现在以太网分组中的目的地址字段,以太网就能支持本地多播分组
的发送 。为了支持多播IP数据报的发送,所需的是一个将IP主机组地址映射到以太网多播
地址的过程 。
IP主机组地址映射到以太网多播地址,是通过将IP地址的低23位放在以太网多播地址
01-00-5E-00-00-00(十六进制)的低23位上 。因为在IP主机组地址上有28个有意义的位,所
以多个主机组地址可以映射到相同的以太网多播地址上 。
6.5非以太网的本地网络模块的扩展
其它的那些本身就支持多播的网络,例如符合IEEE802.2标准的环和总线网络 。它们
可以像以太网那样达到发送多播IP数据报的目的 。对于那些支持广播而不支持多播的网络,
例如实验性以太网,所有的IP主机组地址可以被映射为单个本地广播地址(以增加所有本
地主机费用为代价) 。对于连接两个主机(或者一个主机,一个多播路由器)的一个的点对
点连接,多播应该完全像单播那样传递 。对于像ARPANET这样的存储转发网络,或公共的
X.25网络,所有IP主机组地址必须映射为IP多播路由器的众所周知的本地地址;在这些网
络上路由器负责完成在一个网络内或所有网络中的多播传递 。
7.接收多播IP数据报
7.1对IP服务接口的扩展
高层协议使用与接收标准的单播数据报一样的“ReceiveIP”操作,接收到来的多播IP
数据报 。目的高层协议的选择由IP首部的协议字段决定,而与目的IP地址无关 。然而,在
属于一个特定组的任意数据报被接收之前,高层协议必须请求IP模块加入该组 。因此,必
须扩展IP服务接口,提供以下两个操作:
JoinHostGroup(group-address,interface)
LeaveHostGroup(group-address,interface)
JoinHostGroup操作要求本主机在给定的本地网络接口上成为以“group-address”标记的
主机组中的成员 。LeaveGroup操作要求本主机在给定的本地网络接口上离开以
“group-address”标记的主机组 。假如主机只有一个接口,则interface参数可以省略 。对于
属于多个网络的主机,高层协议可以不指明interface,这要求使用缺省的interface发送多播
数据报(参看6.1节) 。
答应在多个interface上加入一个相同的组,这种情况下可能会有重复的多播数据报被接
收;也答应多个高层协议要求加入同一个组 。
这两种操作都立即返回(即它们是非阻塞操作),表示成功或是失败 。每种操作都可能因

推荐阅读