首页 理论教育IGMP与多播路由选择协议在计算机网络技术中的应用

IGMP与多播路由选择协议在计算机网络技术中的应用

【摘要】:在互联网上传送多播数据报需要使用网际组管理协议IGMP 和多播路由选择协议。多播路由选择协议是使连接在局域网上的多播路由器与互联网上的其他多播路由器协同工作,以便将多播数据报送往多播组的所有成员。网际组管理协议IGMP与ICMP 相似,IGMP 使用IP 数据报传递报文。图7.17使用隧道技术的IP 多播

互联网上传送多播数据报需要使用网际组管理协议IGMP 和多播路由选择协议。网际组管理协议IGMP(Internet Group Management Protocol)的主要作用是让连接在本地局域网上的多播路由器知道本局域网是否有主机参与或退出某个多播组。多播路由选择协议是使连接在局域网上的多播路由器与互联网上的其他多播路由器协同工作,以便将多播数据报送往多播组的所有成员。

(1)网际组管理协议IGMP

与ICMP 相似,IGMP 使用IP 数据报传递报文(即IGMP 报文加上IP 首部构成IP 数据报)。从概念上讲,IGMP 的工作可分为以下两个阶段:

第一个阶段:当某主机要求加入新的多播组时,该主机应以多播地址向该多播组发送一个IGMP 报文,声明自己要成为该组的成员。本地多播路由器收到这个IGMP 报文后,就利用多播路由选择协议将这种成员关系转发给互联网上的其他多播路由器。

第二个阶段:因为多播组成员的关系是动态的,本地多播路由器需周期性地探询本地局域网上的主机,以便了解这些主机是否还继续是该组的成员。只要组内有一个主机予以响应,就认为该多播组是活跃的。但若经过数次探询仍没有一台主机响应,多播路由器就认为本网络上的主机已经离开本组,因此也就不再将这个组的成员关系转发给其他的多播路由器。

为了避免多播控制信息给网络增加更多的开销,IGMP 还采取了如下的措施:

①主机与多播路由器之间的所有通信都使用IP 多播,并尽力用硬件多播来传送携带IGMP 报文的数据报。这样,在支持硬件多播的网络上,没有参加IP 多播的主机是收不到IGMP 报文的。

②多播路由器在探询组成员关系时,只需要对所有的组发送一个询问报文,而不需要对每一个组发送一个询问报文。

③当同一个网络上连接有几个多播路由器时,它们能够迅速和有效地选择其中一个来探询主机的成员关系。

④在IGMP 的询问报文中,有一个指明最长响应时间的数值N(默认值为10 s)。当收到询问时,主机在0 ~N 中随机选择发送响应所需经过的时延。因此,若一台主机同时参加了几个多播组,则主机对每一个多播组选择不同的随机数,且对应于最小时延的响应最先发送。

⑤同一个组内的每一个主机都要监听响应。但是,只要有本组的其他主机先发送了响应,自己就可以不必再发送响应。这样就减少了不必要的通信量。(www.chuimin.cn)

多播路由器并不需要保留组成员关系的准确记录,多播路由器只需知道网络上是否至少还有一个主机是本组成员。对询问报文实际上每一个组内只有一个成员发送响应。

如果一个主机有多个进程加入某个多播组,则这个主机对发给这个多播组的每个多播数据报只接收一个副本,然后再给主机中的每一个进程发送一个本地复制的副本。

最后还需指出,多播数据报的发送者和接收者不知道一个多播组中的成员和数量,互联网中的路由器和主机也不知道哪个应用进程将向哪个多播组发送多播数据报。

(2)多播路由选择协议

在多播过程中,多播组的成员是随时变化的,多播路由选择协议必须动态地适应这种变化,因此,多播路由选择协议要比单播路由选择协议复杂得多。多播路由选择需要找出以源主机为根结点的多播转发树,在多播转发树上,每一个多播路由器向树的叶结点方向转发所收到的多播数据报。显然,不同的多播组对应着不同的多播转发树。同一个多播组,对不同的源主机也会有不同的多播转发树。

目前虽然没有在整个互联网上使用多播路由选择协议,但已有一些建议使用的多播路由选择协议,主要有距离向量多播路由选择协议DVMRP(Distance Vector Multicast Routing Procol),基于核心的转发树CBT(Core Based Tree),开放最短路径优先的多播扩展MOSPF(Multicast Extensions to OSPF)、协议无关多播-稀疏方式PIM-SM(Protocol Independent Multicast-Sparse Mode)、协议无关多播-密集方式PIM-DM(Protocol Independent Multicast-Dense Mode)等。这些协议在转发多播数据报时,采用了洪泛与剪除以及基于核心的发现技术等方法。

在多播数据报的传输过程中,若遇到不支持多播的路由器或网络时,还可以使用隧道技术来传输多播数据报。如图7.17所示为使用隧道技术进行多播数据报传输的示例。在图中,网络1 中的主机A 向网络2 中的一些主机进行多播,但所经过网络中的路由器不支持多播,为此,路由器R1 就对多播数据报进行再次封装,使之成为向单一目的站发送的单播IP 数据报,然后通过“隧道”从R1 发送到R2。单播数据报到达路由器R2 后,再剥去首部,恢复为原来的多播数据报,继续向多个目的站转发。

图7.17 使用隧道技术的IP 多播