RIPv2 hello包:

EIGRP hello包:

OSPF hello包及其它协议数据包:

IP地址分为A/B/C/D/E类,D类就是组播地址

IPV4分为单播、组播、广播:

单播中每一路TCP/IP会话都要占用一路带宽进行传输;

广播是只占用一路带宽进行传输,但所有设备都要接收处理;

组播相当于一个折中方案,也就是只占用一路带宽进行传输,特定的设备组才接收处理,这个特定的设备组就以某个组播地址来表示(设备必须是这个组的成员,或者说设备必须加入这个组)

组播的好处:

1、 增强效率

2、 优化性能

3、 分布式的应用

组播是基于UDP进行传输的,缺点如下:

1、 不可靠的,尽力而为的传输;

2、 无拥塞避免,而TCP有滑动窗口机制和确认机制;

3、 包的复制;

4、 无序列号机制;

组播工作主要由两部分构成:

S:源,产生组播流的设备,源地址是个单播地址;

G:组,接收组播流的设备组,目的地址是个组播地址,如下:

IP group addresses:

Class D address(high-order three bits are set)

Range from 224.0.0.0(11100000.00000000.00000000.00000000) through 239.255.255.255239.255.255.255(11101111.11111111.11111111.11111111)

Well-know addresses assigned by IANA

Reserved use:244.0.0.0 through 244.0.0.255

224.0.0.l---all muticast systems on subnet(所有的组播都监听这个地址)

224.0.0.2---all routers on subnet(这个子网的所有路由器)

224.0.0.4---all DVMRp routers(早期的基于RIP的组播路由选择协议)

224.0.0.13--all PIMv2 routers 关注重点

224.0.0.5,6,9,10 used by unicast routing protocols

224.0.1.39--RP 宣告

224.0.1.40--RP 发现

PIM与协议无关。

组织机构范围:239.0.0.0-239.255.255.255

父:239.1.0.0/16

站点:239.1.8.0/16

组播应用类型

点到多点

多点到多点

多点到点

组播地址通常分为三大类:

1、 保留的本地链路地址:被一些网络协议所使用,在一个子网内使用;

2、 全局范围地址:在互联网上做组播路同时使用

3、 管理范围地址:相当于组播地址中的私有地址,可子网化,类似于RFC1918

问题1:224.224.224.224属于D类地址,其子网掩码为多少?

答:224224.224.224属于D类地址,D类地址保留作为多播使用,其没有ABC类所因有的子网掩码,但在局域网中可以根据自己的设置而定,所谓ABCDE类只是传统的分类,将逐步被IPV6、CIDR和VLSM所淘汰。

问题2IP地址可分为ABCDE五类,如192.168.1.10本属于C类地址,但有了子网掩码后,IP地址的分类就无效了,例如:子网掩码255.255.0.0那么上述地址就变成了B类地址,是这样吗?

如何构建第二层的组播地地下:组播MAC地址的构建

clip_image001

一个组播MAC地址可对应多个组播IP地址,就是因为丢弃那5个bits造成

第二层的组播地址(组播MAC地址,与本机MAC地址无任何关系,只与组播IP地址有关系)从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-01-10

组播通信的三个阶段:

第一个阶段:源告诉它的本地路由器它是一个组播组的源,源不需要知道给谁发送流量,它只管发送到本地路由器上,目标地址是一个组播地址,代表了某种应用;

第二个阶段:主机告诉它的本地路由器它想加入某个组播组;重点关注

第三个阶段:路由器建立组国分发树,形成一个从S到G的路径;重点关注

第二个阶段使用IGMPV2。不再讲IGMPV1,因为它是设计给WIN95所使用

IGMPV2支持当前所有的WINDOWS及UNIX平台。它用于在本地子网的路由器与主机之间进行通信,所以它的包的TTL值是等于1的,它是个第三层协议,依靠同为第三层的IP协议进行封装和传输,IGMP在IP包中的协议号为2(协议号为1的IGMP,也是直接封装在IP包中的);

如果我们使用到了一些交换机这类的话,我们就需要去修改它的TTL值。

三层防环使用的是TTL值

二层防环使用的是STP

RFC 2236(IGMPV2的参考文档)

Leave group message 离开信息IGMPV2才有

类型字段:

类型1:两种查询,常规查询和组定制查询

类型2:版本1的成员关系报告,表示IGMPV2

IGMPV2-主机加入一个组:

H2如果想加入某个组,那么它就会启动自身的关于这个组播组的应用程序进程,这个进程会向组播地址224.0.0.2发关一个membership report的信息,H1/H3以及路由器都收到了这个信息,H2在没有得到回应之前每隔10秒发送一次来确保路由器能收到此报告,路由器收到后将H2增加到这个特定的组映射表中,并通过外出接口寻找此组播流量(这用于组播流量还没有到达此路由器的情况);(以下为组播流量已经到达此路由器的情况)路由器每隔60秒会通过对内接口向内发送general query,看看某个它知道的组是否有主机愿意加入(路由器向某个子网内转发组播信息的前提条件是这个组里面至少要有一台活动的主机愿意去接收相关信息),H2收到后会开启一个随机的递减计数器,当计数器清0时H2会发送一个membership report来响应general query,如果H1也想成为这个组的成员,它会否回应路由器的这个general query?不会的,因为一个组里面只需要一台主机响应即可。

单播:主要关心我们的数据从那里去,如何去

组播:主要关心我们的数据从那里来,如何来(刚才与单播相反)

IGMPV2-离开一个组:

1、 H2 sends a leave message。类型4的离组消息说要离开224.1.1.1这个组,目的地址为224.0.0.2

2、 Router sends group-specific query。连续三次发了都没有主机响应路由器就停止向这个子网转发这个组的流量。目的地址为224.0.0.1

3、 A remaining member host (H3) sends report, so group remains active.目的地址为224.0.0.2

IGMPV3目前处于开发状态

查询者选举:

如果在一个网络中出口有多台路由器,那么IP地址,谁大谁成为查询者

当某个子网存在有多个出口路由器时,就要进行一个查询者选举,以此来决定是A还是B来作为子网中的查询者,鞭原则是最高接口IP地址。上图中描术有误,实际上B为查询者,A在对它进行监听。

IGMPV2计时器

Query Interval 查询间隔 每隔60秒 (1-65535)

Query Timeout 查询超时 超时时间120秒 (60-300)

Maz Reponse Time最大响应时间 10秒 主要应用在IGMPV2/3里面。 可调范围(0-25.5秒)

实际工程中,路由器不会如上那样直接连接主机的,中间还有二层交换机的存在,二层交换机对于广播包和组播包的处理描述如下:

当交换机的某个接口收到广播包或组播包,交换机会各这个接口所属VLAN内的其它所有接口(这个接口除外)以及trunk接口进行转发。

二层交换机默认将组播包作为广播包对待,这样就很占用带宽和资源,最好能做到下需要的端口就不转发组播数据流,为实现此目标,有三种方法:

1、 手工添加静态条目,将组播MAC地址与需要接收的主机所连接的交换机端口进行绑定,实际工程不使用此方法。

2、 CGMP私有,运行于思科的路由器与交换机之间,CGMP协议包由思科的路由器产生并发送,交换机只是去读取

工作在路由器与交换机之间的。

GDA:组播组的MAC地址

USA:单播源MAC地址

image

Version-This is always set to version 1

Type-There are two types of CGMpacket created by a cisco router and sent to a cisco switch:

Type 1-Join packet – sent by the router to tell the switch to add a member to the multicast

Type 2 – Leave packet – sent by the router to tell the switch to remove the member from the multicast group

Group D

工作过程:

1、 the router infornms the switch on shich port it sits,by sending a Join packet with the GDA set to zero(0000.0000.0000)

第一步、路由器通过CGMP包告诉交换机我有一个组播接口,你把这个组播接口的MAC地址添加到你的CAM表里,GDA全0,USA是路由器的以太口MAC地址

第二步、交换机被配置去监听CGMP的包,现在交换机知道路由器的哪个详细的端口

第三步:路由器每隔60秒给交换机发送一次CGMP包用于维持关系,这样交换机就知道该路由器的组播转发一直在持续。

工作过程2:

第一步:主机发送IGMP的成员关系报告给路由器说要想加入226。239。1。10这个组播

第二步:路由器收到后将此组播IP地址衍算出一个组播的MAC地址,以CGMP加入包的方式发送给交换机,此包中具体内容就是一个GDA与主机USA的映射关系表。交换机将主机的MAC地址加入自己的CAM表中,这样交换机已经知道了这个组播的发送者和接收者的民接口了;

第三步:当形成了上一步的关联后,这时当路由器给交换机转发组播包时,交换机不会再按默认的方式,将

离开工作过程:

第一步:发送退组包;

第二步:交换机收到路由器发出的组定制查询后,会向这个组关联的所有的端口进行转发。

第三步:如果还有主机需要接收主播信息,路由器就会以CGMP的方式发送一个离组包通知交换机将那台离开的主机的相关组播MAC映射从CAM表中删除掉,并继续向剩下的主机发送组播信息,这时的USA是退组的那台主要的MAC地址。

第四步:如果没有主机响应,那么路由器就会以CGMP的方式发送一个离组包给交换机告诉它将所有这个组的组播MAC映射删除掉,这时的USA是00-00-00-00-00,并不再转发组播信息。

1、 IGMP snocping业界标准,只需要交换机支持并启动了IGMP snooping功能,由交换机自动完成,思科交换机默认是开启此功能的。

组播路由选择协议:构建组播分发树实现从S到G的数据转发

组播分发树分成两种:

1、 源分发树/Source-rooted,也叫最短路径树

源就是树根,而路径上的路由是branch

2、 共享分发树/shared trees,在共享分发树中,我们要选择一个特定的根,这个特定的根叫做RP/集合点,也就是说流量从RP发出再逐步向下分发的,而源也会往RP上进行注册。

总结:

相同点:

1、 都形成无环路径;

2、 成员都是动态的加组或离组;

3、 当某个主机通知最近的路由器想加入某个组时,该路由器会禹它上游的路由器去请求组播数据,同样,当某个组不再有成员时,该路由器会向上游路由器发出通知并执行一个剪切的操作并停止转发。

不同点:

树的形状及工作方式不同。

Reverse Path Forwarding:组播路由中可靠性、安全性的表现。比如路由器两个接口s0/e0,e0下接了192.168.1.0/24这个网络,而此时在s0的入口向方如果收到一个组播流要求此路由器进行转发,且这个组播流的源地址是192.168.1.200,路由器会将这个源地址,与自己的路由表进行比对,发现情况异常,则不会转发此组播数据流,也不会形成路由环路。

Types of multicast protocols:用组播路由选择协议来构建上面所说的分发树。

1、 Dense mode protocols:假定组成员密集的存在于网络之中,并且有足够的带宽建立和维护分发树;

如DMVRP(底层必须是RIP)/MOSPF(底层必须是OSPF)/PIM-DM

特点:通常用于局域网呀小网络;是一个push的模型(从路由器向其它路由器推,推到每个角落,当其它路由器表示不想接收后再一级一级的向上修剪回去);通常使用源分发树;

2、 Sparse mode protocols:假定网络带宽很低,而且组成员稀疏的分布在网络中,如PIM-SM/CBT

特点:通常用于广域网;是一个pull的模型(路由器等待一个加入包到达后再去创建一个分发树,主机主动去路由器上接组播流量);通常使用共享分发树;

PIM:protocol independ multicast/独立于协议的组播路由器选择协议或者叫做与协议无关的组播路由选择协议,不依赖于其它路由协议的存在而存在,PIM也不关注从哪种路由选择协议中得到了路由表,但它使用单播路由表来确认数据的源地址。

现在使用版本的PIMV2,协议号13,直接封装在IP包中,使用组播地址224.0.0.13进行协议包的转发

PIM的三种工作模式:PIM-DM/PIM-SM/PIM-SM-DM

PIM-DM与协议无关的密集模式

PIM-SM与协议无关的稀疏模式

PIM-SM-DM与协议无关的杂合模式