当前位置:首页 > 组播学习笔记
组播学习笔记
一、基础知识
1、组播的概念: 使用组播的好处:
一个源可以利用组播向多个目标发送数据(如:IGP的无类路由协议使用的组播) 使用组播可以节省带宽和设备的cost ………… 组播的缺点:
组播是基于UDP发送的。(数据层面) 2、RTP(real-time transport protocol):实时传输协议,因为组播是基于UDP的,其传输是无序的,为了
解决接受数据时有序的,就需要对数据的实时传输。
3、由于是基于UDP的所以他的传输和UDP一样都是尽力的传输。没有拥塞避免机制。因为是无序传
输,需要利用RTP来解决。在冗余拓扑中,可能让接受者收到多个一样的报文,可以通过PIM来解决。
4、组播应用的类型,
a、1对多 b、多对多(视频会议) c、多对1
5、组播的专用名词。
First-hop:第一跳路由器 Last-hop:最后一跳路由器 IGMP:典型的个人PC和路由器之间沟通的协议。 6、
PIM:协议无关的组播,即和运
行的IGP没有关系。
7、ip地址的分类回顾:A类:0~127 B类:128~191 C类:192~223 D类:224~239
其中D类是组播地址,不能被配置在设备的接口上。在A类地址中127是被保留的特色地址,也就是我们常用的本地环回地址。
8、组播地址不能被当做源地址,只能被当做目标地址。
9、组播地址的细分:
A、保留的本地链路地址:224.0.0.0~224.0.0.255 B、公网组播地址:224.0.1.0~238.255.255.255
保留的公网组播地址
SSM(source specific multicast)指定源的组播(在CCSP中会涉及)这种协议时PIM的高级协议(232.0.0.0~232.255.255.255)
GLOP地址(233.0.0.0~233.255.255.255)就是申请一个BGP的AS号会送一段组播地址,这段地址就是GLOP地址。这个地址是可以根据AS号来算出来的,如下所示: 如果AS:64521,那么所得组播地址是?? 1、将64521转化成十六进制的数FC09 2、将FC09从中间断开得到FC 09
3、将FC和09 分别转化成两个十进制的数得到252 9
4、分别将这两个数字放在GLOP地址的第二位和第三位。就得到基于本AS的地址 :232.252.9.0/24
C、私有的组播地址:239.0.0.0~239.255.255.255 10、典型的私有地址的使用:
224.0.0.1——发向所有的主机和路由器 224.0.0.2——发向所有的路由器
224.0.0.5——OSPF向所有路由器发送路由信息使用的组播地址。 224.0.0.6——OSPF中MA网络,发向DR使用的组播地址 224.0.0.9——RIPv2 224.0.0.10——EIGRP
224.0.0.13——PIM发送hello包的组播地址
二、IGMP协议
1、IGMP的定义:( internet group management protocol) internet组管理协议,本协议有三个版本
V1、V2、V3、这里我们重点学习V2。IGMP是封装在IP包里面的,这里IGMP的IP协议号是2。IGMPv1的数据包模型: 2、IGMPv1:他有两种报文;
(1)、查询包,由最后一跳路由器发送,查询有哪些组员(每60秒发一次,发送的组播地址是:224.0.0.2)查询报文的目标地址和组地址 D:224.0.0.2 group:0.0.0.0 (2)、report包,由主机发送,说明加入了某个组。他的目标地址和组地址分别是:
D:224.1.1.1 G:224.1.1.1 如左所示:其目标和组地址都一样,这是因为通过路由器向下发送查询报文,主机收到该报文后,会向路由器发送report报文来回复,而发送的report的报文由本地主机运行的应用程序而决定加入什么样的组,故而确定了组地址。而用本地的组地址作为发送report包的目的地址。则是有两方面的优点:使用组地址作为report报文的目标地址,可以将报文发给网关路由器和加入同一个组的PC,这时,所有的PC都会以这个地址来发report报文,而相同的报文会被抑制掉,从而只发一个相同的report报文给网关路由器。
(3)离组消息:在180S内发送三次查询包,如果一直没有收到该组的report回复报文,则意
味这该组自动解散。最后一跳路由器清除该组相关表项。(缺点是在180s内还在转发组播消息)
3、IGMPv2:版本2相对于版本1的常规查询和report新增了2中报文。其解决了版本1在180s内仍然
转发组播消息的问题。 IGMPv2的四种报文
1、常规查询,和版本1一样; 2、report报文和版本1一样。 3、group-specific query 指定组的查询。 4、leave group massage 离组消息。
在最后一跳路由器冗余的情况下会出现查询者的选举,既在这样的一个网络下会出现querier的选举,其选择的原则是选取IP地址小的设备作为查询者。由于发送查询的时候使用的目标地址是224.0.0.1(路由器和PC都接收)所以在查询的过程中就会选出来查询者。(在版本1 中也存在这样的选路,而在版本1 中则使用的是PIM来选
择DR选出的DR就充当了查询者)当查询者down了之后,非查询者在120S之内没有收到查询者的查询,那么非查询者就会充当查询者。 4、IGMPv2的报文格式:(右图) 5、离组报文,其发送离组消息的
目标地址是:224.0.0.1.
group 地址是:就是原有的group地址
6、当查询者收到了这个PC的离
组报文后,路由器就会发送一个指定组的查询报文。发送指定组的查询报文后,路由器会等待2s,如果没有收到这个组的report报文,那么路由器就会删除这个组的所有表项。到目前为止,离组完成。如果PC收到指定查询,那么PC就会马上发送一个report的报文。
7、在路由器上面启用组播路由协议:全局下#ip mlticast-routing 在接口下运行PIM协议:# ip pim sparse-mode
查看谁是查询者以及相关信息:show ip igmp interface Debug ip igmp 可以详细的看看离组的过程。
查看组员信息:show ip igmp groups.在查看的同时,思科路由器会自动加入一个组:224.0.1.40
三、二层的组播地址
1、mac地址:mac地址是一个48位。其前24位是需要申请的,简称是OUI .后24位是厂家自己任
意指定的。
2、理论上组播地址有2的28次方个组播地址。因为前四位是固定的。
3、在一个需要运行组播的网络中,当数据进行封装的时候,在IP报文前面会封装以太网包头,在
分装以太网包头的时候,需要有源和目标mac地址。当然,封装的时候源mac地址就是该报文出去的以太网口的mac地址,那么目标mac地址就需要和运行的组播地址进行换算了,其换算的方法是:首先,这个目标mac地址的前25为是确定的,既:01-00-5e-0(0是固定的)后面的23为是自己分配的。其次,将本组的组播地址转换成二进制,取后23位直接放在前面的25位后面,这就得到了我们需要的目的mac地址。那么着就意味着我们有32个组播地址对应了一个组播数据包的目标mac地址。就有可能有32个组播地址映射到了一个mac地址。
4、当一个交换机接受到一个组播地址或者广播地址的数据包时,就会向所有属于同一个vlan的接
口泛红这个数据,但是在在实际工程中为了减少不必要的组播泛红到其他的链路上去,这时就有了IGMP snooping 协议和思科私有的cisco group management protocol (CGMP)协议。 5、IGMP snooping:他是一个业界标准,其只需要在交换机上面做就可以解决问题。 原理:默认的一台交换机只可以将包拆到mac地址就可以转发了,但是IGMP snooping之后就可
以将包拆到三层的iip地址。当PC加入一个组之后会发送report 报文,而且目标ip地址和组ip地址是一样的,如果这个交换机启用的IGMP snooping 功能,他就会把这个报文截获下来,这时,就会将截获来的报文的组地址和接口就会有一个映射表。当交换机接受来的组播报文,就只会向有映射的接口发送。而不会向所有本vlan的接口发送。 全局下:#iip igmp snooping vlan 1 针对vlan1 开启snooping 。不加vlan的话就是针对所有的vlan
都开启snooping。 查看交换机上IGMP snooping 表项:#show ip igmp snooping group 6、CGMP:需要交换机和路由器的一个协同工作。(思科私有的)
原理: PC向路由器发送report报文,当交换机和路由器都启用了CGMP功能后,report报文会直
接透传交换机发送给路由器。而路由器会截获report报文的目标mac地址和源mac地址作为GDA(group destination address 组的目标地址)和USA(unicast source address单播的源mac地址 )封装成CGMP报文,再将CGMP报文发送给交换机,交换机就有了这个表项。既一个PC的mac地址和一个组播mac地址的映射表项。当交换机收到一个224.1.1.1 的组播数据,数据转发时的目标mac地址就变成GDA了,交换机收到这个数据包之后就会向和GDP mac地址映射表项的USA mac地址的接口区转发。
开启交换机cgmp 全局#cgmp;开启路由器cgmp 接口下#ip cgmp(运行多播协议和PIM)
四、组播路由协议——PIM(协议无关的组播协议)
共分享92篇相关文档