IP组播与组播协议


在Internet上,多媒体业务诸如:流媒体,视频会议和视频点播等,正在成为信息传送的重要组成部分 。点对点传输的单播方式不能适应这一类业务传输特性--单点发送多点接收,因为服务器必须为每一个接收者提供一个相同内容的IP报文拷贝,同时网络上也重复地传输相同内容的报文,占用了大量资源 。如图1.1所示 。虽然IP广播答应一个主机把一个IP报文发送给同一个网络的所有主机,但是由于不是所有的主机都需要这些报文,因而浪费了网络资源 。在这种情况下组播(multicast)应运而生,它的出现解决了一个主机向特定的多个接收者发送消息的方法 。1989年,IETF通过RFC1112,定义了Internet上的组播方式 。
图1.1
1. IP组播
IP组播是指一个IP报文向一个“主机组”的传送,这个包含零个或多个主机的主机组由一个单独的IP地址标识 。主机组地址也称为“组播地址”,或者D类地址 。除了目的地址部分,组播报文与普通报文没有区别,网络尽力传送组播报文但是并不保证一定送达 。
主机组的成员可以动态变化,主机有权选择加入或者退出某个主机组 。主机可以加入多个主机组,也可以向自己没有加入的主机组发送数据 。主机组有两种:永久组和临时组 。永久组的IP地址是周知的,由Internet治理机构分配,是保留地址 。临时组的地址则使用除永久组地址外的非保留D类地址 。
IP组播分组在互联网上的转发由支持组播的路由器来处理 。主机发出的IP组播分组在本子网内被所有主机组成员接收,同时与该子网直接相连的组播路由器会把组播报文转发到所有包含该主机组成员的网络上 。组播报文传递的范围由报文的生存期值(TTL, Time-to-Live)决定,假如TTL值等于或者小于设置的路由器端口TTL门限值(TTL Threshold),路由器将不再转发该报文 。
2. 组播地址
IP组播地址,或称为主机组地址,由D类IP地址标记 。D类IP地址的最高四位为“1110”,起范围从224.0.0.0到239.255.255.255 。如前所述,部分D类地址被保留,用作永久组的地址,这段地址从224.0.0.0-224.0.0.255 。比较重要的地址有:
224.0.0.1 - 网段中所有支持组播的主机
224.0.0.2 - 网段中所有支持组播的路由器
224.0.0.4 - 网段中所有的DVMRP路由器
224.0.0.5 - 所有的OSPF路由器
224.0.0.6 - 所有的OSPF指派路由器
224.0.0.9 - 所有RIPv2路由器
224.0.0.13 -所有PIM路由器
临时主机组的组播地址由网络治理员选择,他需要保证这个地址在一定的范围内没有其他的主机组在使用这个组播地址 。
第2层的组播地址(组播MAC地址)可以从IP组播地址中衍生 。计算方法是把IP地址的最后23位拷贝到MAC地址的最后23位,然后把这23位前面的那一位置为0 。MAC地址的前24位必须为0x01-00-5E 。例如:组播IP地址224.0.1.128,16进制表示为0xE0-00-01-10,最低的23位为0x00-01-10,计算得出的MAC地址为:0x01-00-5E-00-01-10 。
3.Internet组治理协议(IGMP)
IGMP协议由主机成员关系协议发展而来,目前有两个版本:IGMPv1(RFC1112),IGMPv2 (RFC2326) 。主机使用IGMP消息通告本地的组播路由器它想接收组播流量的主机组地址 。假如主机支持IGMPv2,它还可以通告组播路由器它退出某主机组 。组播路由器通过IGMP协议为其每个端口都维护一张主机组成员表,并定期的探询表中的主机组的成员,以确定该主机组是否存活 。
IGMP消息被置于IP报文中传送 。IGMPv1的报文如图1.2所示 。IGMPv1中定义了两种消息类型:主机成员询问和主机成员报告 。当某主机想要介绍某个组播流量时,它向本地的组播路由器发送"主机成员报告"消息,告知欲接收的组播地址 。组播路由器收到"主机成员报告"消息后把该主机加入指定的主机组,并在设定的周期内向组播地址224.0.0.1(代表所有支持组播的主机) 发送"主机成员询问"消息 。主机假如还想继续接收组播流量,必须发送"主机成员报告"消息 。

推荐阅读