目录
组播
对比:
- 单播:数据报文从一台主机,点对点的发给另外一台主机
- 广播:数据报文从一台主机,发给广播域内的全部主机
- 组播:数据报文从一台主机,发给一组特定的主机
- 单播:发给几个目标主机,源主机就发出几个数据包;
- 组播:无论发给几个目标主机,源主机都只发出一个数据包
单播的优势:
组播的优势:
IGMP工作原理
组播体系结构
- 组播协议分为主机-路由器组播协议、路由器-路由器组播协议
- 路由器-路由器组播协议包含域内组播协议和域间组播协议
- 域内组播协议包含PIM-SM、PIM-DM、DVMRP
组播地址
- IP地址:
- 组播MAC地址:01-00-5e-XX-XX-XX
常见的保留组播地址列表
IGMP定义:
- IGMP:Internet 组管理协议,用于主机与路由器之间交互信息的一种协议
- 所有要加入组播组的主机和所有连接到有组播主机的子网中的路由器都必须使用IGMP
- IGMP消息不能被路由器转发,只能限制在本地网段内部。IGMP的TTL参数永远是1,保证 了IGMP的使用范围
- IGMP的版本目前有V1/V2/V3三种
IGMP v2报文概述
- TYPE:IGMP报文类型
- Membership Report:TYPE值为0X16
- Leave Group,TYPE值为0X17
- General Query,TYPE值为0X11
- Group-Specific Query,TYPE值为0X11
- Checksum: 校验和
- Group Address:
- IGMPv2普通查询:组地址为0.0.0.0,目的地址为224.0.0.1
- IGMPv2特定组查询:组地址和目的地址为要查询的特定组地址
- IGMPv2成员报告:组地址和目的地址为要报告的组地址
- IGMPv2离开报文:组地址为要离开的组地址,目的地址为224.0.0.2
Membership Report
·Membership Report 用于指示一台主机希望加入一个组播组
---当主机首次加入到一个组时,它会主动向组发送Membership Report
·Membership Report还用来响应本地路由器发出的General Query和Group-Specific Query消息
Leave Group
·当主机退出一个组时,它用Leave Group消息通知本地的路由器
·这个消息包含又退出的组的地址,但与Membership Report 消息不同的是,Leave group消息是发向“子网中的所有路由器”地址224.0.0.2的,而Membership Report是发向想要加入的组播组地址
General Query
·路由器通过General Query消息向与其连接的所有子网进行轮询来发现是否有组员存在,并在子网中没有组员时检测到这一情况
·General Query消息被发向“子网中的所有主机”224.0.0.1这个地址,而且不涉及任何一个具体组播组
( 注意:如果一台组播路由器在3次查询的时间间隔里没有收到一个特定子网的Membership Report消息,那么这个路由器将宣布这个子网中没有组员,不在向这个子网发送组播数据 )
Group-Specific Query
Group-Spercific Query路由器的Group-Specific Query消息是根据主机发出的Leave Group消息而发出的,当路由器收到Leave Group消息时,必须判断子网中是否仍有组员存在。目的地址为该发出的Leave Group的主机所在组的组地址
- IGMPv1 主要基于查询和响应机制来完成对组播组成员的管理。当一个网段内有多台组播路由器时,由于它们都能从主机那里收到IGMP 成员关系报告报文(Membership Report Message)。因此,只需其中一 台路由器发送IGMP 查询报文(Query Message)就足够了
- 查询机制:
- 当子网中有多个路由器时,选举查询者的规则就十分简单:有较小的IP地址的路由器成为查询者
- 所有子网中现有的路由器在收到新路由器的General Query消息后,就检查源地址。如果它的IP地址的值更小,则会继续发送查询
- 当新的路由器收到其中一个查询,并发现这台路由器有较小的IP地址时,它就变成非查询者。非查询者将旁听整个IGMP过程
- 所有非查询路由器启动一个查询计时器,无论何时只要收到来自IGMP的General Query消息,计时器被复位。默认的计时器持续时间是查询间隔的两倍。如果查询计时器满,就认为IGMP查询有问题,选择查询者过程重新开始
IGMpv3
·在IGMpv3中主要增加了Group -and -Source -Specific Query,它能允许一个组不仅用组别地址进行识别,而且也能被源地址识别
·当一个组有多个源时,IGMpv3路由器可以根据组员的请求对源进行过滤
IGMP Snooping背景
·需要一个机制,让二层交换机只把组播数据转发给需要接收组播的主机
IGMP Snooping工作原理
IGMP Snooping能使二层交换机将组播数据只朝需要接收的用户所在的端口转发,从而不会影响到其它的用户
- IVGL:在该模式下,各VLAN间的组播流是相互独立的。主机只能朝与自己处于同一个VLAN的路由连接口请求组播。
- SVGL:在该模式下, 主机可以跨VLAN申请组播流。指定一个Multicast VLAN,在该VLAN收到的组播数据流可以向其他VLAN的主机转发
组播路由协议PIM
- 分为域内组播路由协议及域间组播路由协议
- 域内的组播路由协议又分为密集模式与稀疏模式,域内组播路由协议主要PIM-DM,PIM-SM,DVMRP等协议
- 我们在园区网中经常使用的域内组播路由协议为PIM-DM和PIM-SM
组播路由协议PIM
- PIM(Protocol Independent Multicasting)独立于单播协议,使用任意单播路由协议进行RPF检查.与其他的路由协议不同,PIM不在路由器之间发送和接收路由更新信息
- UDP端口号:103
- PIM路由器组地址为:224.0.0.13
- PIM协议分为:
- PIM-DM(协议无关组播-密集模式):PIM-DM使用推(push)模式将组播数据包扩散(flood)到网络的每个角落。这种推模式是一种使用蛮力将数据包传送到接收者的方法。如 果网络中的每个子网都有接收者,那么这种方法是高效的
- PIM-SM(协议无关组播-稀疏模式):PIM-SM使用一种拉(pull)模式来传送组播数据包。只有包含活动接收者,并且接收者直接发送数据接收请求的网段才会收到数据
总结
- IGMP是用于主机与路由器之间交互信息的一种协议,该协议使用4中消息报文。其中Membership Report和Leave Group是主机使用的消息报文,General Query和Group-Specific Query是组播路由器使用的消息报文;
- IGMP Snooping协议能使二层交换机将组播数据只朝需要接收的用户所在的端口转发,从而不会影响到其它的用户,节省了网络带宽资源
- 组播路由协议分为域内和域外,其中域内路由协议主要是PIM,有PIM-DM和PIM-SM两种模式,DM使用 push的方式转发组播数据,SM使用pull的方式转发组播数据