网络层(7.IP多播)

一、IP多播的基本概念

        IP多播是指由一个源点发送到许多终点,即一对多的通信

        现在IP多播属于互联网热点,例如:直播、实时信息交付(股票、新闻)、软件更新等。

多播可以大大节约互联网资源:

        例如视频服务器要向90台主机发送相同的视频。

①单播:

        采用单播方式, 向 90 台主机传送同样的视频节目,需要发送 90 个单播。

                                        

②多播:

        采用多播方式, 只需发送一次到多播组。

        路由器复制分组。

        局域网具有硬件多播功能,不需要复制分组。

                                

        当多播组的主机数很大时(如成千上万个),采用多播方式就可明显地减轻网络中各种资源的消耗。

IP多播:

        在互联网上进行多播就叫作 IP 多播

        互联网范围的多播要靠路由器来实现。

        能够运行多播协议的路由器称为多播路由器。当然它也可以转发普通的单播IP数据报。

        从1992年起,在互联网上开始试验虚拟的多播主干网MBONE 。 现在多播主干网已经有了相当大的规模。

多播IP地址:

        IP 多播所传送的分组需要使用多播 IP 地址

        在多播数据报的目的地址写入的是多播组的标识符

        多播组的标识符就是 IP 地址中的 D 类地址(多播地址)

        每一个D类地址标志一个多播组。

        多播地址只能用于目的地址,不能用于源地址

多播数据报:

        多播数据报和一般的 IP 数据报的区别就是它使用 D 类 IP 地址作为目的地址,并且首部中的协议字段值是2,表明使用网际组管理协议 IGMP。

        多播数据报也是“尽最大努力交付”,不保证一定能够交付多播组内的所有成员。

        对多播数据报不产生 ICMP 差错报文。因此,若在 PING 命令后面键入多播地址,将永远不会收到响应。

二、在局域网上进行硬件多播

        互联网号码指派管理局 IANA 拥有的以太网多播地址块的高 24 位为 00-00-5E。 因此 TCP/IP 协议使用的以太网多播地址块的范围是  从  00-00-5E-00-00-00  到  00-00-5E-FF-FF-FF

        不难看出,在每一个地址中,只有23位可用作多播。

        D 类 IP 地址可供分配的有 28 位,在这 28 位中的前 5 位不能用来构成以太网硬件地址。这样就都是只有23位了。

        由于多播IP地址与以太网硬件地址的映射关系不是唯一的,因此收到多播数据报的主机,还要在 IP 层利用软件进行过滤,把不是本主机要接收的数据报丢弃。

三、网际管理协议IGMP和多播路由选择协议

1. IP多播需要两种协议

网际管理协议IGMP:

        

        如上图,R1、R2、R3三个路由器参加了多播,因此多播数据报应该转发到它们三个,不应该转发到R4。

        但是这些路由器怎么知道多播组成员的信息,这就用到了网际管理协议IGMP。

         IGMP 并非在互联网范围内对所有多播组成员进行管理的协议。

        IGMP 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。

        IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。

多播路由选择协议:

        显然,仅有IGMP不够,连接在局域网上的多播路由器还必须和互联网上的其他多播路由器协同工作,以便把多播数据报用最小的代价传送给所有的组成成员,这就要使用多播路由选择协议


        多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化)。请注意,单播路由选择通常是在网络拓扑发生变化时才需要更新路由。

        多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去

        多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。

二、网际组管理协议IGMP

        和 ICMP 相似,IGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成 IP 数据报),但它也向 IP 提供服务。

        因此,我们不把 IGMP 看成是一个单独的协议,而是属于整个网际协议 IP 的一个组成部分。

IGMP工作分为两部分:

第一阶段:

        当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。

        本地的多播路由器收到 IGMP 报文后,将组成员关系转发给互联网上的其他多播路由器。

第二阶段:

        因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。

        只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的

        但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。

IGMP具体措施:

        ①在主机和多播路由器之间的所有通信都是使用 IP 多播

        ②多播路由器在探询组成员关系时,只需要对所有的组发送一个请求信息的询问报文,而不需要对每一个组发送一个询问报文。默认的询问速率是每 125 秒发送一次。

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

        ④在 IGMP 的询问报文中有一个数值 N,它指明一个最长响应时间(默认值为 10秒)。当收到询问时,主机在 0 到 N 之间随机选择发送响应所需经过的时延。对应于最小时延的响应最先发送。

        ⑤同一个组内的每一个主机都要监听响应,只要有本组的其他主机先发送了响应,自己就可以不再发送响应了。

三、多播路由选择协议

        多播路由选择协议实际上就以源主机为根节点的多播转发树

        多播路由选择协议有多种,未形成标准。但是它们在转发数据报时使用了以下三种方法:

(1) 洪泛与剪除

        这种方法适合于较小的多播组,而所有的组成员接入的局域网也是相邻接的

        一开始,路由器转发多播数据报使用洪泛的方法(这就是广播)。

        为了避免兜圈子,采用了叫作反向路径广播 RPB 的策略。

RPB要点:

        路由器收到多播数据报时,先检查它是否是从源点经最短路径传送来的

        若是,就向所有其他方向转发刚才收到的多播数据报(但进入的方向除外),否则就丢弃而不转发。

        如果存在几条同样长度的最短路径,那么只能选择一条最短路径,选择的准则就是看这几条最短路径中的相邻路由器谁的 IP 地址最小

        最后就得出了用来转发多播数据报的多播转发树,以后就按这个多播转发树转发多播数据报。避免了多播数据报的兜圈子,同时每一个路由器也不会接收重复的多播数据报。

        如果在多播转发树上的某个路由器发现它的下游树枝(即叶节点方向)已没有该多播组的成员,就应把它和下游的树枝一起剪除

        当某个树枝有新增加的组成员时,可以再接入到多播转发树上。

 

(2)隧道技术

        适用于多播组在地理位置上很分散的情况。

        

        就是将多播数据报封装成IP数据报进行单播传送,然后再恢复成多播数据报。

(3)基于核心的发现技术

        这种方法对于多播组的大小在较大范围内变化时都适合

        这种方法是对每一个多播组 G 指定一个核心路由器,给出它的 IP 单播地址。

        核心路由器按照前面讲过的方法创建出对应于多播组 G 的转发树。

几种多播路由器选择协议:

        距离向量多播路由选择协议 DVMRP

        基于核心的转发树 CBT

        开放最短通路优先的多播扩展 MOSPF

        协议无关多播-稀疏方式 PIM-SM

        协议无关多播-密集方式 PIM-DM 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值