zoukankan      html  css  js  c++  java
  • 组播

    一、
    1.

    单播、组播、广播是计算机网络上三种基本的通信方式。
    单播是相互感兴趣的主机双方进行通信的方式,主机不能接收对其不感兴趣的其它主机发送的信息,属于点对点通信。
    广播是主机向子网内所有主机发送信息,子网内所有主机都能收到来自某台主机的广播信息,属于点对所有点的通信。
    组播则介于两者之间,是主机向一组主机发送信息,存在于某个组的所有主机都可以接收到信息,属于点对多点通信。
    从这个意义上讲,广播可以认为是组范围最大化的组播。当然,二者还是存在显著区别的:首先,广播被限制在子网内,不会被路由器转发。其次,主机被默认为是接收者,而组播方式则需要主机主动加入。

    单播与组播实现点对多点传输比较

    解决点到多点的通信,可以通过单播和组播方式实现。
    单播可以通过建立多个点对点的连接来达到点对多点的传输。 这种方式将在源点(服务器)与各个接收点建立连接,从服务器开始,就将有多份数据流分别流向分散的接收点。这种方式将加重服务器的负荷,增大对服务器性能的要求;同时还在网络中造成大流量,从而增加网络的负载,导致网络拥塞。
    组播则不然,发送方仅发一份数据包,此后数据包只是在需要复制分发的地方才会被复制分发,每一网段中都将保持只有一份数据流。这样就可以减轻服务器的负担,节省网络带宽。

    2.组播应用
    多媒体会议

    IP组播最早的应用是音频/视频会议。但音频/视频会议只是众多IP组播应用之一。除此之外,还包括数据分发,实时数据组播,以及游戏和仿真应用等。
    一些出色的IP组播,用于多媒体会议的工具最先在UNIX环境下被开发出来。这些工具允许通过IP组播实现多对多的音频/视频会议。除音频与视频工具之外,还有基于UNIX的白板工具被开发出来,它允许用户共享公共的电子白板。但是由于带宽和工作站、路由器处理能力的限制,最后只有音频会议得到了广泛应用。但音频会议和基于IP组播的数据共享应用相结合(如先前提到的白板工具),提供了一个功能非常强大的多媒体会议系统,而它并不消耗很多的带宽,同时这也适用于网络教学。

    数据分发

    数据分发是IP组播应用的另一个领域,并且非常实用。通过使用IP组播,在可靠组播区域内,允许将文件和数据传送到各个网络节点。这就允许大型跨国公司每天都可以向它们的远程子公司发布新的信息,比如向连锁零售店发布产品相关信息。

    实时数据组播

    对大主机组的实时数据传送是使IP组播受欢迎的有益应用领域。一个好的例子是实时音频/视频点播。网络用户可以通过网络收看现场足球比赛、现场演唱会等。还有,就是将股票信息发送到交易大厅的工作站。通过指定不同的财务分类(债券、运输、药品等)给不同的组播组,交易员可以使用他们的工作站来接收他们感兴趣的实时金融数据。

    游戏与仿真

    IP组播非常适合于网络游戏和仿真应用。现在,很多网络游戏使用单播 ,是点到点的连接。这对于PC机或工作站的处理能力而言是N2数量级的负担,这样的游戏通常只有5到10个玩家。即便是参与者都连接到服务器上,由于受限于服务器的处理能力,通常也只能容纳100个玩家。
    IP组播可用于有大量参与者的游戏与仿真。PC机或工作站只需进入IP组播组就可以接收游戏或仿真数据。通过把数据分成多个信息流,分属不同的组播组,PC机或工作站还可以对他们当前参加的游戏或仿真所需要的收发做出限制。

    3.组播技术的特点
    +优点
    增强效率,控制网络流量,减少服务器和CPU负载
    优化性能,消除流量冗余
    分布式应用,使多点传输成为可能
    +缺点
    IP组播是基于UDP
    尽最大努力交付
    无拥塞控制
    数据包重复
    数据包的无序交付

    二、组播实现技术
    1.组播体系结构
    +组播协议分为主机-路由器之间的组成员关系协议和路由器-路由器之间的组播路由协议
    +组成员关系协议包括IGMP(互联网组管理协议)。组播路由协议分为域内组播路由协议及域间组播路由协议
    +域内的组播协议又分为密集模式与稀疏模式。域内组播路由协议主要使用PIM-SM,PIM-DM,DVMRP协议. DVMRP,PIM-DM,MOSPF属于密集模式,CBT,PIM-SM属于稀疏模式。在域内,主要使用PIM-SM,PIM-DM,DVMRP协议。

    针对域间组播路由有两类解决方案:短期方案和长期方案。
    短期方案包括三个协议MBGP/MSDP/PIM-SM:MBGP(组播边缘网关协议),用于在自治域间交换组播路由信息;MSDP(组播信源发现协议),用于在ISP之间交换组播信源信息;以及域内组播路由协议PIM-SM。
    长期方案目前讨论最多的是MASC/MBGP/BGMP,它建立在现有的组播业务模型上,其中MASC实现域间组播地址的分配、MBGP在域间传递组播路由信息、BGMP完成域间路由树的构造。
    此外还有一些组播路由策略,如PIM-SSM(特定信源协议无关组播)等,建立在其它的组播业务模型上。目前仅短期方案MBGP/MSDP/PIM-SM是成熟的,并在许多的运营商中广泛使用。
    同时为了有效抑制组播数据在链路层的扩散,引入了IGMP Snooping、HGMP,HMVR,RGMP,GMRP等二层组播协议。
    IGMP建立并且维护路由器直联网段的组成员关系信息。域内组播路由协议根据IGMP维护的这些组播组成员关系信息,运用一定的组播路由算法构造组播分发树进行组播数据包转发。域间组播路由协议在各自治域间发布具有组播能力的路由信息以及组播源信息,以使组播数据在域间进行转发。

    2.组播地址
    组播IP地址:
    +组播地址范围
    224.0.0.0--239.255.255.255
    +保留组播地址
    224.0.0.0--224.0.0.255
    +本地管理组地址
    239.0.0.0--239.255.255.255
    +用户组播地址
    224.0.1.0--238.255.255.255

    组播MAC地址:
    以太网:01-00-5e-xx-xx-xx

    组播数据IP报文的目的地址是特殊的IP地址,称之为组地址。每一个加入到该组的主机都敏感该组地址并接收以该组地址为目的地址的IP报文。组播地址都以0x1110开始。
    IP地址可分为A、B、C、D、E五类。IANA(互联网编号授权委员会)把D类地址空间分配给IP组播。即:从224.0.0.0到239.255.255.255为IP组播地址的范围。 IANA控制着IP组播地址的分配。并不是所有的D类地址都可以分配给用户,IANA预留了两个地址范围:224.0.0.0~224.0.0.255和239.0.0.0~239.255.255.255。前一个地址范围的所有地址都有特殊用途,如:224.0.0.1表示所有组播成员(包括路由器),224.0.0.2表示所有组播路由器。可以向IANA就某个特殊用途申请专用IP组播地址,如:224.0.0.13表示所有PIM路由器。后一个地址范围作为用于私人组播领域的管理权限地址,犹如单播的10.x.x.x/8等私有地址网段。
    组播IP地址在网络层解决了如何寻址的问题,但通信最终还要依赖于数据链路层和物理层。因此组播在数据链路层如何寻址?
    在物理层,也有专门的MAC地址被用于组播。就以太网而言,以0x01005Exx.xxxx的24位前缀开始的MAC层地址都是组播地址。
    组播有了网络地址、物理地址,还需要建立IP地址到MAC地址的映射。

    3.IP地址到MAC地址的映射

    在以太网中,第3层的IP组播地址信息的全部28位不能映射进入只有23位的第2层MAC地址空间,所以在映射过程中丢失5位地址信息,导致32:1的地址不明确。这意味着一个IEEE MAC地址能表示32个IP组播地址。主机C必须考察每一个收到帧的IP部分才能确定是不是需要的组播信息。

    4.IP组播数据包的转发
    +逆向路径转发(RPF-Reverse Path Forwarding)
    组播包的转发不是基于IP包的目的地址的,而是用RPF检查决定是否转发和丢弃输入信息包
    RPF检查的过程如下:
    路由器检查到达组播包的源地址,如果信息包是在可返回源站点的接口上到达,则RPF检查成功,信息包被转发
    如果RPF检查失败,丢弃信息包
    +对组播包源地址的检查是通过查询单播路由表来实现的

    在单播中,数据转发的依据是数据包的目的地址.该目的地址明确表示了一个主机位置。路由器(声明:三层交换机具有与路由器同样的路由功能,只不过转发速度更快。所以,三层交换机的组播实现与路由器的组播实现在IP层完全一致。在这里,路由器亦即三层以太网交换机。以下将以路由器为例介绍组播)组播必须工作在查找单播路由表获得到目的地址的路径和本地出接口。
    但在组播中,这种方式显然不行。因为组播数据包中的目的地址是组地址而不是一个明确的主机地址;并且在与路由器相连的每条路径上或者说每个接口都可能有组成员。
    因此,组播数据转发将采用逆向数据转发.即:对到达的组播数据包作逆向检查(Reverse Path Forward检查),判断数据包是否是从指向源站点的接口(指向源的接口是根据单播路由获得的,亦即单播路由的目的网络)上到达;如果是,逆向检查成功,数据包被转发;否则,数据包就被丢弃。



    组播转发项至少包括入接口、出接口。至于入接口是谁、出接口有哪些,则是组播路由协议要完成的任务。

    5.组播数据包的二层交换

    具有组播功能的二层交换机可以做到只在需要的接口上才转发组播数据。如何实现 ?

    二层交换机将在转发表中添加一项:MAC地址是组播地址,端口包含与希望接收到组播数据的主机相连所有的端口。以后当二层交换机接收到组播数据报后,将向除接收端口外的所有转发表项的其它希望接收组播数据的端口转发组播数据。

    www.huawei.com

  • 相关阅读:
    volatile 和 mutable 关键字
    字符串第一个只出现一次的字符
    学一下HDFS,很不错(大数据技术原理及应用)
    把数组排成最小的数
    求第K大的数字
    数组中超过一半的数字
    打印字符的任意排列
    实时推荐系统架构
    带有任意指向指针的链表进行复制
    surfaceflinger中各个layer的排序
  • 原文地址:https://www.cnblogs.com/OceanF/p/9249779.html
Copyright © 2011-2022 走看看