精华内容
下载资源
问答
  • 地址类外,还根据传输的消息特征将IP地址分为单、广播或多播。主机使用IP地址进行一对一(单)、一对多播)或一对所有(广播)的通信。 1.单播地址是IP网络中最常见的。包含单目标地址的分组...
    转自:https://www.cnblogs.com/songdada/articles/4039468.html

    除地址类外,还可根据传输的消息特征将IP地址分为单播、广播或多播。主机使用IP地址进行一对一(单播)、一对多(多播)或一对所有(广播)的通信。

    1.单播

    单播地址是IP网络中最常见的。包含单播目标地址的分组发送给特定主机,一个这样的例子是,IP地址为192.168.1.5(源地址)的主机向IP地址为192.168.1.200(目标地址)的服务器请求网页,如图5.8所示。

    图5.8 单播IP分组

    要发送和接收单播分组,IP分组报头中必须有一个目标IP地址,而以太网帧报头中必须有相应的目标MAC地址。IP地址和MAC地址一起将数据传输到特定的目标主机。

    提 示

    如果目标IP地址属于另一个网络,则在帧中使用的目标MAC地址将为与源IP地址位于同一个网络中的路由器接口的MAC地址。

    2.广播

    广播分组的目标IP地址的主机部分全为1,这意味着本地网络(广播域)中的所有主机都将接收并查看该分组。诸如ARP和DHCP等很多网络协议都使用广播。

    例如:

    C类网络192.168.1.0的默认子网掩码为255.255.255.0(掩码的255个数对应网络的网络地址个数),其广播地址为192.168.1.255,其主机部分为十进制数255或二进制数11111111(全为1);

    B类网络172.16.0.0的默认子网掩码为255.255.0.0,其广播地址为172.16.255.255;

    A类网络10.0.0.0的默认子网掩码为255.0.0.0,其广播地址为10.255.255.255。

    在以太网帧中,必须包含与广播IP地址对应的广播MAC地址。在以太网中,广播MAC地址长48位,其十六进制表示为FF-FF-FF-FF-FF-FF(全1为广播mac,主机地址为全1即广播ip地址)。图5.9所示的是一个广播IP分组。

    图5.9 广播IP分组

    3.多播

    多播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个多播组IP地址,多播地址范围为224.0.0.0~239.255.255.255。由于多播地址表示一组设备(有时被称为主机组),因此只能用作分组的目标地址。源地址总是为单播地址。

    远程游戏就是一个使用多播地址的例子,很多玩家通过远程连接玩同一个游戏;另一例子是通过视频会议进行远程教学,其中很多学生连接到同一个教室。还有一个例子是硬盘映像应用程序,这种程序用于同时恢复众多硬盘的内容。

    同单播地址和广播地址一样,多播IP地址也需要相应的多播MAC地址在本地网络中实际传送帧。多播MAC地址以十六进制值01-00-5E打头,余下的6个十六进制位是根据IP多播组地址的最后23位转换得到的。一个MAC多播地址是01-00-5E-0F-64-C5,如图5.10所示。每个十六进制位相对于4个二进制位。

    图5.10 多播IP分组

    练习5.5 谁将收到消息(5.2.3.4)

    在这个练习中,读者将根据目标IP地址判断哪些主机将收到消息。请使用本书配套光盘中的文件ia-5234来完成该练习。

     

     

     

     

     

    IP地址的分类——a,b,c 类是如何划分的 (根据网络地址的字节长度划分(abc,123字节),最小值:0,10,110.。。。)

    现在的IP网络使用32位地址,以点分十进制表示,如172.16.0.0。地址格式为:IP地址=网络地址+主机地址 或 IP地址=主机地址+子网地址+主机地址。

    IP地址类型

    最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。
    1. A类IP地址

    一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。

    一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围1.0.0.1-126.255.255.254(二进制表示为:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110,第一字节的网络地址后七位不能全为1,所以网络地址的最大值为126,非127)。

     


    2. B类IP地址

    一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。

    3. C类IP地址

    一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。

    4. D类地址用于多点广播(Multicast)。

    D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。

    5. E类IP地址

    以“llll0”开始,为将来使用保留。

    全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。

    在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:

    A类地址:10.0.0.0~10.255.255.255

    B类地址:172.16.0.0~172.31.255.255

    C类地址:192.168.0.0~192.168.255.255

    A类地址的第一组数字为1~126。注意,数字0和 127不作为A类地址,数字127保留给内部回送函数,而数字0则表示该地址是本地宿主机,不能传送。

    B类地址的第一组数字为128~191。

    C类地址的第一组数字为192~223。


    1. A类地址

    A类地址的表示范围为:0.0.0.0~126.255.255.255,默认网络掩码为:255.0.0.0;A类地址分配给规模特别大的网络使用。A类网络用第一组数字表示网络本身的地址,后面三组数字作为连接于网络上的主机的地址。分配给具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如IBM公司的网络。

    2. B类地址

    B类地址的表示范围为:128.0.0.0~191.255.255.255,默认网络掩码为:255.255.0.0;B类地址分配给一般的中型网络。B类网络用第一、二组数字表示网络的地址,后面两组数字代表网络上的主机地址。

    3. C类地址

    C类地址的表示范围为:192.0.0.0~223.255.255.255,默认网络掩码为:255.255.255.0;C类地址分配给小型网络,如一般的局域网和校园网,它可连接的主机数量是最少的,采用把所属的用户分为若干的网段进行管理。C类网络用前三组数字表示网络的地址,最后一组数字作为网络上的主机地址。

    实际上,还存在着D类地址和E类地址。但这两类地址用途比较特殊,在这里只是简单介绍一下:D类地址称为广播地址,供特殊协议向选定的节点发送信息时用。E类地址保留给将来使用。

     

     

     

     

     

    组播IP地址与组播MAC地址之间的换算方法与例子

     

     

     

    MAC地址介绍

    络接口卡硬件地址(MAC)是在数据链路层由标准组织IEEE统一定义的。
    该定义类型大体上分为:
    EtherNET 802.3 , Token Ring 802.5 , Token Bus 802.4 等。
    这个地址可以是2字节,也可以是6字节,通常使用的是6字节,所以以下讨论都只对6字节而言。
    被IEEE定义的MAC类型可以分成三种地址:
    1、个人地址
    2、广播地址
    3、多级地址

    在网络中,每台主机至少要有两个地址,个人地址和广播地址,根据网络结构,一个工作站可以有一个工作组共用的多级地址。
     

    就6字节48位地址而言,它的结构如下:

    I/G bit : U/L bit : 22 bit 法定地址 : 24 bit 用户地址

     

     


    其中:
    I/G位决定该地址是个人地址(0)还是组地址(1),当为组地址情况下,如果所有的地址位都为1,那么I/G位就表示这是一个广播地址。

    U/L位决定该地址是本地分配的(1)还是统一分配的(0)

    22位法定地址通常是由IEEE分配给网络设备生产厂商的,全世界每一家有生产网络接口设备的厂家都必须获得IEEE指定的一个22位地址,而且不许该地址和另外的厂家相同。

    24位用户地址则是由用户自己可以配置和修改的,但是要确保你修改的地址不能和别人有相同的地方。

    可见,以上48位MAC地址中,真正可以由用户修改的是后24位。用户通常不必去修改该地址。

    在乙太网中,如果需要必须修改mac地址时,请注意:
    1、两个工作站不要共用相同的地址
    2、保留所有位为“1”的地址为广播使用。

    在Apple Talk 中,MAC的分配由DDA协议管理(动态地址协议

     

    组播IP地址与组播MAC地址之间的换算方法与例子

     

    1个oui 有2 的24方个MAC地址

     

    组播地址 :2的28次方,224.0.0.0-239.255.255.255

    可用组播范围:0100.5E00.0000----0100.5E07.FFFF

     

    MAC由48bit组成:前24位是OUI ,后24位由厂商定义

     

    共需要:16个OUI才可以与一个IP来一一对应。

    32个IP才可以与一个oui来一一对应

     

    典故:Dr.Steve Deering此人研究出来的,当时因为分他的OUI是(0100.5E 0)所以这7个不变。

     

     

     

    算法:

    最笨的方法,也是最安全的方法,就是把IP地址,换成二进制数。再把二进制换成16进制,第1个8位(从左往右看)不用,因为有组播MAC的限制已经规定是0100.5E开头,

    第2个8位中的第1位规定为0(从左往右看).所以当不为0时,要改成0来换算。

     

    Example:

    源IP 224.1.1.1

    换算成二进制 11100000.00000001.00000001.00000001

    再换成16进制 01 .01 .01

    加上组播MAC头 0100.5E

    最后形成: 0100.5E01.01.01

    可用的其它31个组播IP地址:

    224.129.1.1

    225.1.1.1 225.129.1.1

    226.1.1.1 226.129.1.1

    227.1.1.1 227.129.1.1

    228.1.1.1 228.129.1.1

    229.1.1.1 229.129.1.1

    230.1.1.1 230.129.1.1

    231.1.1.1 231.129.1.1

    232.1.1.1 232.129.1.1

    233.1.1.1 233.129.1.1

    234.1.1.1 234.129.1.1

    235.1.1.1 235.129.1.1

    236.1.1.1 236.129.1.1

    237.1.1.1 237.129.1.1

    238.1.1.1 238.129.1.1

    239.1.1.1 239.129.1.1

    加上:224.1.1.1 刚好32个。

     

    源IP 224.132.1.1

    换算成二进制 11100000.10000100.00000001.00000001

    第24位为0 11100000.00000100.00000001.00000001

    再换成16进制 04 .01 .01

    加上组播MAC头 0100.5E

    最后形成: 0100.5e04.01.01

    可用的其它31个组播IP地址:

    224.4.1.1

    225.4.1.1 225.132.1.1

    226.4.1.1 226.132.1.1

    227.4.1.1 227.132.1.1

    228.4.1.1 228.132.1.1

    229.4.1.1 229.132.1.1

    230.4.1.1 230.132.1.1

    231.4.1.1 231.132.1.1

    232.4.1.1 232.132.1.1

    233.4.1.1 233.132.1.1

    234.4.1.1 234.132.1.1

    235.4.1.1 235.132.1.1

    236.4.1.1 236.132.1.1

    237.4.1.1 237.132.1.1

    238.4.1.1 238.132.1.1

    239.4.1.1 239.132.1.1

    加上224.132.1.1,刚好32个。

     

     

     

    另一种方法是:如果给的IP地址第1、2、3位都大于128,可以用128除以16(因为可用IP是28位,可用MAC是23位,剩5位可变,2的4次方是16),得出来的商换成16进制是MAC的左位,得出来的余数换成16进制是MAC的右位。第4组8位不看,因为是规定是0100.5E开头。

    第3组第8位必需为0.当为1时,要去掉换成0.

    Example:

    源IP 224.215.145.230

    除16: 215/16商:13余:7 . 145/16商:9余:1 . 230/16商:14余:6

    换成(16进制): D7 . 91. E6

    第24位为0 57.91.E6

    加上组播MAC头 0100.5E

    形成: 0100.5E57.91.E6

    可用的其它31们组播IP地址:

    224.87.145.230

    225.87.145.230 225.215.145.230

    225.87.145.230 225.215.145.230

    226.87.145.230 226.215.145.230

    227.87.145.230 227.215.145.230

    228.87.145.230 228.215.145.230

    229.87.145.230 229.215.145.230

    230.87.145.230 230.215.145.230

    231.87.145.230 231.215.145.230

    232.87.145.230 232.215.145.230

    233.87.145.230 233.215.145.230

    234.87.145.230 234.215.145.230

    235.87.145.230 235.215.145.230

    236.87.145.230 236.215.145.230

    237.87.145.230 237.215.145.230

    238.87.145.230 238.215.145.230

    239.87.145.230 239.215.145.230

    加上224.215.145.230.刚好32个。

     

     

     

    计算剩于其它的可用组播IP方法:

    刚第三位大于128时,要减去128

    当第三位小于128时,要加上128

    这样从224-239每一组里有两个地址,刚好32个。

    展开全文
  • 多播地址基础

    千次阅读 2017-08-10 16:32:58
    为 239.0.0.0~239.255.255.255,供组织内部使用,类似于私有 IP 地址,不能用于 Internet,限制多播范围。 一些多播地址被 IANA 确定为知名地址,它们也被当作永久主机组,这和 TCP 及 UDP ...

    转载至:http://blog.csdn.net/tennysonsky/article/details/44493407

    一、概述

    单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信。单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信。实际情况下,经常需要对一组特定的主机进行通信,而不是整个局域网上的所有主机,这就是多播的用途。


    IP 多播(也称多址广播或组播)技术,是一种允许一台或多台主机(多播源)发送单一数据包到多台主机(一次的,同时的)的 TCP/IP 网络技术。多播是 IPv6 数据包的 3 种基本目的地址类型之一,多播是一点对多点的通信, IPv6 没有采用 IPv4 中的组播术语,而是将广播看成是多播的一个特殊例子


    多播作为一点对多点的通信,数据的收发仅仅在同一分组中进行,是节省网络带宽的有效方法之一。在网络应用中,当需要将一个节点的信号传送到多个节点时,无论是采用重复点对点通信方式,还是采用广播方式,都会严重浪费网络带宽,只有多播才是最好的选择。多播能使一个或多个多播源只把数据包发送给特定的多播组,而只有加入该多播组的主机才能接收到数据包。


    IP 多播应用大致可以分为三类:点对多点应用多点对点应用多点对多点应用

    1)点对多点应用是指一个发送者,多个接收者的应用形式,这是最常见的多播应用形式。典型的应用包括:媒体广播、媒体推送、信息缓存、事件通知和状态监视等。

    2)多点对点应用是指多个发送者,一个接收者的应用形式。通常是双向请求响应应用,任何一端(多点或点)都有可能发起请求。典型应用包括:资源查找、数据收集、网络竞拍、信息询问等。

    3)多点对多点应用是指多个发送者和多个接收者的应用形式。通常,每个接收者可以接收多个发送者发送的数据,同时,每个发送者可以把数据发送给多个接收者。典型应用包括:多点会议、资源同步、并行处理、协同处理、远程学习、讨论组、分布式交互模拟(DIS)、多人游戏等。


    二、多播地址

    IP 多播通信必须依赖于 IP 多播地址,在 IPv4 中它是一个 D 类 IP 地址,范围从 224.0.0.0 到 239.255.255.255,并被划分为局部链接多播地址、预留多播地址和管理权限多播地址三类:

    1)局部链接多播地址范围在 224.0.0.0~224.0.0.255,这是为路由协议和其它用途保留的地址,路由器并不转发属于此范围的IP包;

    2)预留多播地址为 224.0.1.0~238.255.255.255,可用于全球范围(如Internet)或网络协议;

    3)管理权限多播地址为 239.0.0.0~239.255.255.255,可供组织内部使用,类似于私有 IP 地址,不能用于 Internet,可限制多播范围。


    一些多播组地址被 IANA 确定为知名地址,它们也被当作永久主机组,这和 TCP 及 UDP 中的知名端口相似。同样,这些知名多播地址在 RFC 最新分配数字中列出,注意这些多播地址所代表的组是永久组,而它们的组成员却不是永久的。这些地址如下:

    224.0.0.1    所有组播主机

    224.0.0.2    所有组播路由器

    224.0.0.4    DRMRP 路由器

    224.0.0.5    所有 OSPF 的路由器

    224.0.0.6    OSPF 指派路由器

    224.0.0.9    RPIv2 路由器

    224.0.0.10  EIGRP 路由器

    224.0.0.13  PIM 路由器

    224.0.0.22  IGMPv3

    224.0.0.25  RGMP

    224.0.1.1    NTP 网络时间协议


    多播地址与 MAC 地址的映射

    使用同一个 IP 多播地址接收多播数据包的所有主机构成了一个主机组,也称为多播组。一个多播组的成员是随时变动的,一台主机可以随时加入或离开多播组,多播组成员的数目和所在的地理位置也不受限制,一台主机也可以属于几个多播组。


    这个我们可以这样理解,多播地址就类似于 QQ 群号,多播组相当于 QQ 群,一个个的主机就相当于群里面的成员


     IPv4 的 D 类地址是多播地址。IEEE 把一块以太网多播组地址分给 IANA 以支持IP多播。块的地址都以 01:00:5e 开头,第 25 位为 0,低 23 位为 IPv4 多播地址( D类地址 )的低 23 位。IPv4 多播地址与 MAC 地址的映射关系如图所示:



    由于多播地址( D类地址 )中的最高 5bit 在映射过程中被忽略,因此每个以太网多播地址对应的多播组是不唯一的。32 个不同的多播组号被映射为一个以太网地址。例如,多播地址 224.128.64.32(十六进制 e0.80.40.20)和 224.0.64.32(十六进制 e0.00.40.20)都映射为同一以太网地址 01:00:5e:00:40:20。


    既然地址映射是不唯一的,那么设备驱动程序或 IP 层就必须对数据报进行过滤。因为网卡可能接收到主机不想接收的多播数据帧,如下图,假如主机 1 加入的多播为 224.128.64.32, 主机 2 加入的多播为 224.0.64.32,我们想给 224.0.64.32 所在的多播组 ( 主机 2 ) 发送信息,数据经过网卡时,224.128.64.32 (主机 1 ) 和 224.0.64.32 (主机 2 ) 所在多播组的网卡都会收到数据,因为它们的 MAC 地址都是 01:00:5e:00:40:20。这时候,如果网卡不提供足够的多播数据帧过滤功能,设备驱动程序就必须接收所有多播数据帧,然后对它们进行过滤,这个过滤过程是网络驱动或IP层自动完成。


    Linux多播编程

    套接口选项

    int setsockopt( int sockfd, int level,int optname,   

    const void *optval, socklen_t optlen );



    成功执行返回0,否则返回-1


    选项 IP_ADD_MEMBERSHIP 和 IP_DROP_MEMBERSHIP

    加入或者退出一个多播组,通过选项 IP_ADD_MEMBERSHIP 和 IP_DROP_MEMBERSHIP,对一个结构 struct ip_mreq 类型的变量进行控制,struct ip_mreq 原型如下:

    struct in_addr
    {

    in_addr_t s_addr;

    }


    struct ip_mreq          

    struct in_addr imn_multiaddr; // 多播组 IP,类似于 QQ 群号

    struct in_addr imr_interface;   // 将要添加到多播组的 IP,类似于QQ 成员号

    };


    多播只能用 UDP 或原始 IP 实现,不能用 TCP。

    展开全文
  • 判断当前音效是否播放完毕

    千次阅读 2018-05-08 17:36:48
    //把作业票作为手柄的子物体  other.transform.localPosition = Vector3.zero; //把作业票的自身位置归0,0,0;  //解除物体之间的父子关系  // other.gameObject.transform.parent.  SoundController._...

    public class ZhuaZuoYePiao : MonoBehaviour {


        public bool IsOnce = true;
        public GameObject daimaoren;
        public GameObject zuoyepiao;




        void OnTriggerEnter(Collider other)
        {                       //抓取物体,把被抓物体归为子物体
            if (other.tag == "zuoyepiao")
            {
                other.transform.parent = this.gameObject.transform;         //把作业票作为手柄的子物体
                other.transform.localPosition = Vector3.zero;               //把作业票的自身位置归0,0,0;


                //解除物体之间的父子关系
                // other.gameObject.transform.parent.


                SoundController._instance.SetAudio(AudioClipType.duzuoyepiao);      //播放作业票内容
            }
            
        }
        
        void Update()
        {
            if (SoundController._instance.audioSource.clip == SoundController._instance.audioClips[(int)AudioClipType.duzuoyepiao])     //判断当前播放的是不是作业票内容
            {
                if (!SoundController._instance.audioSource.isPlaying)                                   //判断作业票内容是否播放完毕
                {
                    Debug.Log("带帽人高亮显示");
                    Destroy(zuoyepiao);
                }
            }


        }


    }

    展开全文
  • IP多播(ip组

    千次阅读 2019-07-15 21:39:49
    IP多播(ip组) 1数据传递的方式 一对一数据传递:单数据传递 一对所有数据传递:广播数据传递 一对数据传递:多播数据传递 2网络设备如何处理不同形式的设备 单数据 路由器收到,能处理就处理,不能...

    IP多播(ip组播)

    1数据传递的方式

    1. 一对一数据传递:单播数据传递
    2. 一对所有数据传递:广播数据传递
    3. 一对多数据传递:多播数据传递

    2网络设备如何处理不同形式的设备

    1. 单播数据
      1. 路由器收到,能处理就处理,不能丢弃。
      2. 交换机处理:已知mac单播数据帧,定向转发,未知mac单播数据帧,泛洪。
    2. 广播数据
      1. 路由器收到:路由器能够接收广播数据,路由器会根据情况做处理:路由器本身有进程和策略允许接收处理广播流,就处理。如果没有,则不允许广播流量穿越设备,丢弃。
      2. 交换机收到;泛洪。
    3. 多播数据:与广播数据处理方式一样。

    3多播标识

    1. 多播i的目标ip标识

      D 224-239

      多播IP标识不标识目标网络,只标识服务和应用。

    2. 多播的目标mac地址

      01005E 后六个16进制数由多播IP演算而来。

      224.0.0.1

      ​ 0000 0000.0000 0000.0000 0001

      取后23位之后在加一位,之后将每四位二进制数转为一位16进制。

    !!补充知识

    多播mac地址可能重复。

    多播终端必须用IP+MAC的方式来确认数据是否自己处理,而不能让网卡直接通过mac地址来判断自己是否处理。

    4.路由器如何发现子网中有多播用户(IGMP,CGMP)

    1. IGMPv1( 互联网组管理协议)

    IGMP是一个公开的技术标准。其作用帮助路由器发现所连子网的组成员。(组成员就是需要接收多播的终端。)

    IGMPv1是需要在路由器和终端上同时启用的.

    IGMPv1消息

    • 报告消息(report):报告消息来自于终端PC,用于告诉所连路由器,自己是某个组的成员,希望接收多播流。
    • 查询消息(query):查询消息来自于路由器,其目的是为了确认是否存在组成员或者是否有必要从上游接收多播流。

    !!补充知识

    报告消息的压制机制:报告消息本身是多播的,被所

    连交换机防洪给其它终端后,其它终端如果发现自身

    也是同一个组的成员,就不会发送报告消息。

    !!注意事项

    IGMPV1的缺陷:

    1. 显性加入,隐性离开

      (IGMPV1组成员离开的敏感度降低。导致无效的多播流下发。

      路由器收到REPORT(间隔60S一次)消息后,得知组成员消息。会建立180s组成员有效计时。)

    2. 可能存在多个IGMPV1 查询者

    3. 可能存在多个多播数据转发者

    2. IGMPv2

    IGMPv2消息:

    • 报告消息
    • 查询消息
    • 离开消息
    • 特定查询消息

    报告消息 查询消息功能和作用和IGMPv1一样。

    离开消息:来自终端PC,当终端pc不再是组成员时,pc机发送离开消息,扩散给路由器,告知路由器有组成员离开。

    特定查询消息:来自于路由器,是路由器接收离开消息之后发送的,用于判断刚才发送离开消息的终端是不是组成员中最后一位。特定查询消息发送出去后,必须三秒内给予报告消息回应,否则就认为发送离开消息的终端是组中最后一个设备。

    !!注意事项

    IGMPv2的优势和缺憾

    优势:

    1. 显性加入,显性离开

    2. 提供查询者竞选机制,通过查询消息携带的源ip地址做比较,来判断谁是最终的IGMPV2查询者(源IP地址越小越优)

    缺憾:

    • 无法克服多个转发者问题。
    3. CGMP(思科组管理协议):IGMP Snooping侦听

    CGMP启用在交换机和路由器上,防止交换机泛洪不必要的多播流给非组成员。

    1. 理解交换机mac地址列表和交换机数据转发过程:

      交换机mac地址列表:

      目的终端mac地址 本地出口 类型 老化计时器

      交换机数据转发过程:已知目的MAC 单播帧严格的依据MAC 地址列表做转发,其它都是泛洪。

    2. CGMP的工作机制

      CGMP的JOIN(加入消息)协助交换机完成组成员MAC 地址和多播组MAC地址及出口的关联,最终达到多播流在交换机上不是泛洪的方式转发,而是定向转发。

      CGMP的LEAVE (离开消息)协助交换机删除无效的组成员MAC地址和多播组MAC及出口关联关系。

      CGMP 在路由器上实际上也是通过IGMP消息来发现哪些终端PC对哪些多播组流量有兴趣,从而达到目的。

    5 多播路由协议

    多播路由协议是协助多播路由器完成多播路由表的机制

    show ip mroute
    

    DVMARP:距离矢量多播路由协议,不主流

    MOSPF:多播的ospf,不主流

    CBT:基于源的数,不主流

    如上协议在原有基础上开发


    PIM:协议独立多播路由协议,主流

    MSDP:多播源发现协议,主流(特定情况下必须用)

    如上两个协议和原有协议完全没有关系,是新开发的。


    M-BGP 多播bgp,鸡肋

    6 PIM详解

    1 PIM的模式
    • 稀疏模式 sparse-mode

      组成员和子网成员比例是稀疏的。

      100个PC,10个组成员

      稀疏模式建议采用IGMPV2,因为组成员比较稀少,所以组成员的加入和离开必须被及时发现。

    • 密集模式 dense-mode

      组成员和子网成员的比例关系是密集的:

      100个PC,99个组成员。

      密集模式建议采用IGMPV1,因为组成员比较多,组成员的加入和离开不需要太敏感。

    !!注意事项

    现在密集模式用的也是IGMPv2,因为不在乎资源的浪费,更在乎组成员的维护。

    • 混合模式sparse-dense-mode

      混合模式默认情况下是稀疏模式的机制先工作,稀疏模式故障后,密集模式马上取代。

    2 PIM密集模式的消息
    • Join加入消息:来自下游路由器,下游设备通过加入消息告知加入消息接收者,请把接收到加入消息的接口作为下游接口用于传递多播流量,但是同时上游设备因为接收了加入消息,上游也必须开始尝试寻找抵达多播流源的最短路径及本地最佳出口,尝试发送加入消息,给下一个上游设备。
    • Prune修剪消息:修剪消息通常也来自于下游设备,该消息用于告知原有的上游设备请撤销某个下游接口,因为潜在的多播客户不存在了,上游设备不需要发送多播流。
    • Graft接枝请求消息:来自下游,下游设备又发现了多播组成员,希望重新嫁接多播路径
    • Graft-ack接枝确认消息:来自上游设备,发送给下游设备告知路径已经嫁接完毕
    • Assert禁言消息:该消息用于竞选多播流转发者。
    3 PIM密集模式多播树构建机制和过程

    扩散,剪枝

    所有启用PIM 的路由器收到多播流量之后,会先利用扩散的方式将多播流量扩散给所有的PIM 邻居,因为PIM DM 假定是存在多播组成员的,但是不知道在哪,那么利用扩散的多播流来触发连接子网的路由器发送IGMP 查询消息,从而判断是否有组成员存在,如果有组成员存在路由器就向上游发送加入消息,如果没有就发送修剪消息,通过这种方式构建多播树。

    !!注意事项

    上游设备:转发多播流的设备

    下游设备:接收多播流的设备

    一个设备可能用拥有两个角色。

    运行PIM设备的接口角色:

    • 上游接口:接收多播流的接口,往往位于下游设备。

    • 下游接口:下游接口是发送多播流的接口,往往位于上游设备。

    接口如何成为上游接口:

    • 必须参与了PIM

    • 必须能够收到多播流

    • 必须通过RPF 检测,保证成为上游接口之后不会造成环路。

    接口如何成为下游接口:

    ​ 接口收到JOIN或者GRAFT或者REPORT基本就有资格成为下游接口

    4 PIM的RPF检测(反向路径检测)

    用于确保参与PIM 接收多播流的接口有资格成为上游接口,并且没有环路。接收多播流的接口必须是抵达多播源的最佳路径出口,才有资格成为上游接口,才有资格处理接收到的多播流量。

    !!接口启用PIM 的三个理由

    1. 连接了子网,子网内有组成员,路由器接口希望能处理收到的IGMP REPORT 消息,那么必须启用PIM,因为IGMP 会随着PIM的接口下启用而启用。
    2. 连接的子网有多播源存在,路由器接口希望能处理来自于多播源的多播流。
    3. 路由器相互连接的接口构成的链路最终是需要传递多播流量的,那么就必须启用PIM,形成PIM 邻居,方便多播流的扩散和PIM 的多播树构建。
    5 PIM DM 模式的DR作用和竞选方式

    DR 用于竞选IGMPV1 查询者,PIM 密集模式如果发现启用PIM 的设备给同一个子网发送IGMP 查询消息,那么PIM 路由器会比较发送查询消息设备的优先级和接口IP地址,从而判定谁最终负责发送查询。(优先级大则优,IP大则优)实际上现在PIM 的密集模式用的是IGMPV2,所以查询者最终是IGMPV2 负责指定,PIM密集模式的DR 就没有意义了。


    6 PIM密集模式禁言消息的作用,机制

    目的:为避免多个转发者存在IGMPV1和IGMPV2的春天来了)

    一旦连接同一群多播组成员的多台路由器,发现大家都在转发同样的多播流,那么路由器就立刻发送禁言消息,禁言消息包含了 当前路由器抵达多播源路径所使用的路由协议管理距离、度量值和发送多播流下游接口的IP。管理距离小则优、度量值小则优、下游接口IP反而是大则优。最终胜出者负责转发多播数据,失败者时刻监控胜出者。

    7 多播树及多播路由表

    多播树实际上是多播路由协议构建出来用来传递多播流的路径

    PIM 的多播树分两种:

    • 最短路径树:SPT:PIM 的密集模式构建的就是SPT,指的是PIM 密集模式路径构建时用多播源当作树根,反向计算抵达多播源的最短路径,用该路径传递多播流。

    • 共享树:RPT ,稀疏模式提出共享树的概念,首先找到网络中负责中转多播流的设备,该设备该设备会被稀疏模式称为集合点(RP),稀疏模式以集合点为边界;集合点自身以多播源为根计算最短路径树,集合点所连接的下游设备都以集合点为根,计算抵达集合点的最短路径,构建出所谓的共享树。

    8多播路由表:
    • flag:标志,是多播路由表中很多英文字母的解释。

    • 多播路由表分为父条目和子条目。

      多播路由表条目分为 父条目 子条目

      父条目更像是一个申明,告诉路由器连接了某个组的成员,未来需要给这个组服务,

      但是多播组的流量源和上游接口都是为空的。父条目是不能给路由器传递多播流的。

      子条目实际是用于数据处理和转发的,子条目明确的知道多播源是谁,多播的上游接收接口和下游转发接口信息。子条目才能用于数据转发。

    9 多播的稀疏模式
    1. 稀疏模式的消息

      • 加入
      • 修剪
      • 接枝请求
      • 接枝确认
      • 禁言消息
      • 注册消息
      • 注册停止消息
    2. 稀疏模式的集合点(RP)

      负责中转多播流的设备就可以扮演RP,RP的作用是利用稀疏模式的机制完成共享树建立,从而提高工作效率,减轻设备负担的目的。

    3. 稀疏模式多播树构建机制

      下游主动加入,上游主动注册,双树拼接。

      拒绝扩散,剪枝

      连接多播组成员的路由器收到report消息后,以RP为根算出抵达RP的最短最佳路径,用于发送JOIN 消息给RP,并且发送JOIN 消息的路径就是日后传递多播流的路径,这部分就称作下游主动加入。此时实际上RP 和给RP发送JOIN 消息的设备都不知道多播源是谁,也都没有抵达多播源的精确路径,所以树是不完整的。连接多播源的路由器,在收到多播流量后,会将原本的多播流量进行二次封装,封装上新的IP包头,目的IP地址是RP的地址,源IP地址是发送该数据的出口IP(就是本地抵达RP的最短路径出口地址),那么这种形式的数据就被称作注册消息,该消息被RP 接收后主要是起到提醒RP有特定源即将通过RP发送多播流,请RP先计算抵达多播流源的路径,如果算好了,RP 就给发送注册消息的路由器发送注册停止消息,同时RP 尝试寻找共享树将两棵树拼接。

    4. 稀疏模式下DR 的作用

      • 确认谁发送JOIN消息
      • 确认谁发送注册消息
    5. 稀疏模式中路由器从共享树切换到源树

      所有运行PIM且工作在稀疏模式下的路由器,只要接收超过四个字节的多播流,就开始尝试寻找抵达多播源的最短最佳路径,用于避免次优多播路径的存在。

      稀疏必须依赖RP 才能使得自身多播树构建机制运行,并且达到多播树构建的目的。

      往往现实工作中,多播流其实可以找到不以RP为转发点的更优路径,那这就需要RP身后的下游设备能够以源为根重新计算路径。

    6. 稀疏模式获取RP方法

      • 管理员手动指定
      • 利用RP竞选机制完成RP竞选和公布
    10 利用RP竞选机制完成RP竞选和公布
    1. rp agent:RP代理:思科私有的

      C-RP角色路由器:所有期望成为RP的PIM 路由器,候选RP

      RP agent:RP代理,是管理员手动指定的,负责收集C-RP信息,并且根据竞选机制选出RP,最终通告出去。

      C-RP 地址最大的就是RP。

    2. BSR:自荐路由器:公有技术标准

      C-BSR:BSR的候选人

      BSR:BSR 是从C-BSR中竞选而来,它负责接收C-RP信息,统计信息并且发送出去,不负责裁决。

      BSR竞选参数:优先级和IP地址,都是大则优

      C-RP:RP候选人

      RP:RP 是PIM 路由器通过BSR 得到所有的C-RP信息后,利用RP竞选机制进行结果的判断。RP的竞选参数是优先级(小优)、哈希长度(长优,现在不用了),IP地址(大优)

    11 多播的启用和PIM的启用。
    1. 将路由器接口模拟成多播组成员

      Router(config-if)#ip igmp join-group <多播组地址>
      
    2. 路由器上多播路由功能的启用和接口加入PIM

      Router(config)# ip multicast-routing //启用多播路由功能
      Router(config-if)#ip pim <dense-mode/sparse-mode/spare-dense-mode>
      
      

    7 多播章节复习重点

    1. 数据传递的三个方式?运用的场景、各自的特点?
    2. 路由器和交换机对不同数据的处理方法?
    3. 多播IP标识和MAC 标识?
    4. 路由器如何发现多播组成员?
    5. IGMP V1 V2 如何工作的,区别是什么,优点和缺点是什么?
    6. 多播动态路由协议的作用?有哪些多播动态路由协议?
    7. CGMP 的作用和工作机制?
    8. PIM 的密集模式和稀疏模式定义上的不同?
    9. PIM 密集模式的消息以及密集模式构建树的机制?
    10. PIM 中DR的作用,禁言消息的作用?
    11. PIM 稀疏模式的消息及稀疏模式构建树的机制?
    12. PIM 稀疏模式中RP的作用?DR作用?
    13. PIM 稀疏模式为什么会共享树切换到源树?
    14. PIM 稀疏模式RP的获取方式?RP代理和自荐路由器工作原理?
    展开全文
  • 多播(组)原理分析

    千次阅读 2018-05-24 18:55:27
    为什么要使用多播: 网卡从网络上接收到目标物理地址对应的所有bit位都为1的数据报时,会收到这条消息并将其上传给驱动程序,网卡的这种工作模式称为广播模式,网卡的缺省工作模式包含直接模式和广播模式。...
  • 对于ip是否是公网ip,... <br />这五类IP地址的各自范围如下: <br />  在tcp/ip协议中,专门保留了三个IP地址区域作为私有地址,其地址范围如下:    10.0.0.0/8:10.0.0.0~10.2
  • IP地址判断

    千次阅读 2017-11-01 20:12:34
    简单的说: A类网络的IP地址范围为:1.0.0.1-126.255.255.254; B类网络的IP地址范围为:128.1.0.1-191.255.255.254;...一个A类IP地址由1字节(每个字节是8位)的网络地址和3个字节主机地址组成,网络地址的最
  • UDP、广播、多播与IGMP(七)

    千次阅读 2015-01-19 22:24:24
    IP 地址分三种:单播地址、广播地址多播地址。 广播和多播仅应用于UDP,它们对需将报文同时传往个接收者的应用来说十分重要。TCP是一个面向连接的协议,它意味着分别运行于两主机内的两进程间存在一连接。
  • 多播与广播原理分析及区别

    千次阅读 2019-01-08 14:50:17
    假定服务器主机在本地局域网上,但不知道它的单IP地址时对它进行定位,即进行资源发现。 当有个客户和单个服务器通信时,减少局域网上的数据流量。 使用广播的因特网应用的例子: ARP协议通过链路层广播定位...
  • netty实现UDP多播

    千次阅读 2018-11-02 21:13:45
    //允许端口重用,开启个接收方 .option(ChannelOption.SO_REUSEADDR,true) .handler( new ChannelInitializer() { @Override protected void initChannel(Channel channel) throws Exception { ...
  • 业务需求:最近在用百度编辑器ueditor,文章里面上传了视频后,在页面播放的时候,需要在视频没播放前取第一帧作为静态默认图片,然后判断环境是否是4G还是wife情况下,再进行是否自动播放。 直接上代码: jsp: &...
  • 多播(组)原理分析

    千次阅读 2017-04-08 13:56:51
    为什么要使用多播:  网卡从网络上接收到目标物理地址对应的所有bit位都为1的数据报时,会收到这条消息并将其上传给驱动程序,网卡的这种工作模式称为广播模式,网卡的缺省工作模式包含直接模式和广播模式。利用...
  • IP地址到底是谁的IP?

    千次阅读 2018-09-11 10:07:05
     组IP地址到底是谁的IP? 组IP地址是视频网站服务器的?还是ISP某个服务器的呢?加入组组意思是通过这个有组IP的服务器获取数据么?
  • 第48位一定为0,表示单播地址,否则表示组播地址 第47位一定为0,表示全球唯一地址,否则为1时表示本地地址 所以MAC地址第一字节不能随便修改,最好固定为0不允许修改,设置非法时会导致网卡无法正常启动 在...
  • C#实现UDP的单、广播和多播

    千次阅读 2019-01-04 14:13:56
    (3)组多播):对一组特定的主机进行通信,而不是整个局域网上的所有主机。即一对一组  将网络中同一业务类型主机进行了逻辑上的分组,进行数据收发的时候其数据仅仅在同一分组中进行,其他的主机没有加入此...
  • 利用VMWare和软路由多播实现校园网带宽叠加

    万次阅读 多人点赞 2017-01-12 17:10:19
    利用VMWare和软路由多播实现校园网带宽叠加声明 文章可以随意转载,但请注明出处。 文中有一些地方引用了其他文章,但都已标明出处。如有侵犯,立即删除。 文中肯定会有不足和错误,欢迎指出讨论。 文章概述实验室...
  • TCP/IP协议之单, 多播, 广播

    万次阅读 2016-01-29 22:49:53
    TCP/IP协议之单, 多播, 广播
  • CCNP路由实验之十 组多播

    万次阅读 2014-07-29 08:32:13
     CCNP路由实验之十 组多播) 单(Unicast):网络节点之间的通信通讯的模式是“一对一”的,此时信息的接收和传递只在两个节点之间进行。例如,你在收发电子邮件、浏览网页时,必须与邮件服务器、Web...
  • //发送附带msg参数的消息,EventHandler判断当前的事件类型,如MEDIA_PREPARED等,最后调用应用程序设置的相关回调处理相应的事件信息 void JNIMediaPlayerListener::notify(int msg, int ext1, int ext2, const Parcel...
  • IP地址分类/IP地址10开头和172开头和192开头的区别/判断是否同一网段 简单来说在公司或企业内部看到的就基本都是内网IP,ABC三类IP地址里的常见IP段。 每个IP地址都包含两部分,即网络号和主机号。  InterNIC将IP...
  • 如何判断IP地址是A类B类还是C类

    千次阅读 2020-05-30 08:53:11
    简单的说: A类网络的IP地址范围为:1.0.0.1-126.255.255.254; B类网络的IP地址范围为:128.1.0.1-191.255.255.254; ...每个A类地址可连接16387064台主机,Internet有126个 A类地址。 2.B类
  • Android弹幕功能实现,模仿斗鱼直播的弹幕效果

    万次阅读 多人点赞 2016-10-18 08:01:32
    大家好,感觉好像已经很久没...如今直播行业确实是非常火爆啊,大大小小的公司都要涉足一下直播的领域,用斗鱼的话来讲,现在就是千之战。而弹幕则无疑是直播功能当中最为重要的一个功能之一,那么今天,我就带着大
  • 理由 FIX协议由一个会话层协议,一个...本应用注释文档定义了FIX消息怎样通过多播传输技术(如,IP多播)进行发布。此注释并不描述具体的多播技术,而是讨论如何修改FIX回沪协议以使用该技术进行通信。 会话层概述
  • 直播的需要的流程

    万次阅读 2016-08-27 21:32:40
    直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通讯等技术,每一个技术都够你学几年...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,121
精华内容 27,248
关键字:

判断可作为多播地址