IP多播
1、概念
随着互联网用户数目的急剧增加,以及多媒体通信的开展,有更多的业务需要多播来支持。
与单播相比,在一对多通信中,多播可以大大节约网络资源。
如果用单播方式向N台目的主机传送同样的视频节目,需要发送N个单播副本。
如果使用多播方式,只需要发送一次,由路由器来复制和转发副本,当分组到达目的局域网时,由于局域网具有硬件多播功能,因此不需要复制分组。
在互联网上进行多播称为IP多播。IP多播所传送的分组需要使用多播IP地址。
在多播数据报的目的地址写入的是多播组的标识符,然后设法让加入到这个多播组的主机的IP地址与多播组标识符关联起来。
其实多播组的标识符就是IP地址中的D类地址。D类地址的前四位是1110
,因此D类地址范围是224.0.0.0
到239.255.255.255
,我们就用一个D类地址代表一个多播组。
多播数据报首部中的协议字段为2,代表使用网际组管理协议IGMP。
多播地址只能用于目的地址,不能用于源地址。此外,对多播数据报不产生ICMP差错报文。(因此如果PING命令加多播地址不会收到任何响应)
IP多播可以分为在本局域网上进行硬件多播和在互联网的范围进行多播两种。
2、局域网上的硬件多播
IANA所拥有的以太网多播地址的范围从01-00-5E-00-00-00
到01-00-5E-7F-FF-FF
。不难看出,在每一个地址中只有23位可用作多播,而D类IP地址可供分配的有28位。
由于多播IP地址与以太网硬件地址的映射关系不唯一(不同的多播IP地址可能转换为相同的以太网硬件多播地址),因此收到多播数据报的主机,还要在IP层利用软件进行过滤,把不是本机要接收的数据报丢弃。
3、互联网上的IP多播(网际组管理协议IGMP和多播路由选择协议)
IP多播需要两种协议,即网际组管理协议IGMP和多播路由选择协议。网际组管理协议IGMP是让链接在本地局域网上的多播路由器知道本局域网上是否有主机进程参加或退出了某个多播组。连接在局域网上的多播路由器还必须和互联网上其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员,这就需要多播路由选择协议。
网际组管理协议IGMP
和ICMP协议相似,使用IP数据报传递其报文。
- IGMP工作分为两个阶段:
- 当某台主机加入新的多播组时,该主机向多播组的多播地址发送一个IGMP报文,声明自己要成为该组成员。本地的多播路由器收到IGMP报文后,还要利用多播路由选择协议把这种组成员关系转发给互联网其他的多播路由器。
- 组成员关系是动态的。本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。只要有一台主机对某个组响应,那么多播路由器就认为这个组是活跃的。但一个组在经过几次的探询后仍然没有一个主机响应,多播路由器则认为本网络上的主机已经都离开了这个组,因此不在把这个组的成员关系转发给其他多播路由器。
多播路由选择协议
虽然在TCP/IP中IP多播协议已经成为建议标准,但是多播路由选择协议(用来在多播路由器之间传播路由信息)则尚未标准化。
在多播过程中一个多播组中的成员是动态变化的,例如在收听网上某个广播节目时,随时会有主机加入或离开多播组。多播路由选择协议实际上就是要找出以源主机为根节点的多播转发树。
在多播转发树上,每一个多播路由器向树的叶节点方向转发收到的多播数据报,但在多播转发树上的路由器不会收到重复的多播数据报(不应兜圈子)。
同一个多播组,对不同的源点也会有不同的多播转发树。
- 已有多种实用的多播路由选择协议,它们在转发多播数据报时使用了以下三种方法:
- 洪泛与剪切。(这种方法适合较小的多播组,而所有的组成员接入的局域网也是邻接的)
- 隧道技术(tunneling)。(隧道技术适用于多播组的位置在地理上很分散的情况)
- 基于核心的发现技术。(这种方法对于多播组的大小在较大范围内变化时都适合)
- 一些建议使用的多播路由选择协议:
- 距离向量多播路由选择协议DVMRP。
- 基于核心的转发树CBT。
- 开放最短通路优先的多播扩展MOSPF。
- 协议无关多播-稀疏方式PIM-SM。
- 协议无关多播-密集方式PIM-DM。
(END)