目录
基本概念
IP多播(曾译为组播)的目的是更好地支持一对多通信,即一个源点发送到多个终点,例如实时信息的交付(新闻,股市行情),软件更新,交互式会议及其他多媒体通信
下图中的多播组有90个成员,采用多播可以大大节约网络资源
互联网范围的多播需要靠支持多播协议的多播路由器实现
IP多播所传送的分组需要使用多播IP地址
在多播数据报的目的地址写入多播组的标识符,即IP地址中的D类地址,并且首部中的协议字段值为2,表明使用网际组管理协议IGMP
硬件多播
每个TCP/IP协议的以太网地址中,只有23位可用作多播,而D类IP地址可供分配的有28位,因此前5位不能构成以太网硬件地址
多播IP地址和以太网硬件地址的映射关系不是唯一的,如图所示
IGMP和多播路由选择协议
多播需要网际组管理协议各多播路由选择协议两种协议
其中网际组管理协议是为了使路由器知道多播组成员的信息
多播路由选择协议则是为了把多播数据报用最小代价传送给所有的组成员
IGMP
IGMP不知道IP多播组包含的成员数,也不知道这些成员分布在哪些网络上,而是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组
IGMP工作分两个阶段:
第一阶段:加入多播组
1.当某个主机加入一个新的多播组时,需要向多播组的多播地址发送IGMP报文,声明自己要成为该组的成员
2.本地的多播路由器收到IGMP报文后,将组成员关系转发给互联网上的其他多播路由器
第二阶段:探询组成员变化情况
1.因为组成员关系是动态的,所有本地多播路由器要周期性探询本地局域网上的主机,以便知道这些主机是否还有继续是组的成员
2.只要对某个组有一个主机响应,多播路由器就认为这个组是活跃的
3.一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器
多播路由选择
多播路由选择实际上就是要找出以源主机为根节点的多播转发树;在多播转发树上的路由器不会收到重复的多播数据报;不同的多播组对应不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树
多播路由选择协议在转发多播数据报时使用三种方法:
洪泛与剪除、隧道技术(tunneling)、基于核心的发现技术
洪泛与剪除
适合较小的多播组
RPB感觉有点像迪杰斯特拉
剪枝
隧道技术
适合多播组的位置在地理上很分散
基于核心的发现技术
每一个多播组指定一个核心路由器,核心路由器创建出多播转发树