组播:一对多或者多对多的通信方式称之为组播
组播分类:ASM任意源组播、SSM特定源组播
ASM:不管组播产生者
SSM:只接受指定源产生的组播流量
组播分为:组播源、组播转发者、组播接收者
组播MAC生成;01005E+0+组播IP地址后23bit
IGMP:组播成员管理协议,用于组播接收与本网络直连的组播
转发者之间管理组播成员关系
IGMPv1消息
1,Membership Report:主机用于告知路由器自己要接收
组播流量(224.0.0.2路由器接收)
2,Membership query:路由器用于查询本网络中是否还有主机
接收组播流量(224.0.0.1所有设备接收)
如果本网络中有多台路由器:选择IP地址大的成为查询者
IGMPv2消息
查询者:选择IP地址小的问题本网络查询者
除了 Membership report和Membership query消息以外
还新增 leave消息和特定组查询消息
1,主机使用Leave消息告知网络中路由器自己要离开的组
(224.0.0.2)
2,路由器在收到leave消息后,立刻发送特定组查询
询问该组是否还存在其他接收者(离开的组组播地址)
特定组查询消息发送2次,如果没有设备回复report消息
则停止向本网络发送该组的组播流量
IGMP snooping:侦听主机与路由之间通信IGMP消息
report消息和leave确认接收组播流量主机所在端口
生成组播MAC地址与多个端口映射关系,在后续有组播流量
需要进行转发则根据组播MAC地址表进行转发
查询消息确认路由器所在端口;
PIM协议:组播转发协议
dense模式和sparse模式
dense模式:密集模式转发组播流量时使用时SPT
SPT构成
1,组播第一跳路由器在从源收到组播流量后把组播
流量扩散给自己所有的邻居(其他邻居也将组播流量扩散)
2,下游邻居在收到组播流量后执行RPF检查,如果自己有接收
者则向上游发送jion消息说明自己要接收组播流量;如果没有
则向上游发送prune(修剪消息)表明不接收组播流量;
3,最终构成以组播源为根的一颗SPT组播转发数据
RPF:反向路径检查用于防止组播数据环路,同时构成到达组播源
最近路径
RPF原理:在接收到组播流量后核对组播数据包中源IP地址
所在单播路由是否与接收到该组播流量接口匹配
在接收到组播流量后核对接收接口与单播路由表中所指接口是否匹配
匹配则RPF检查成功,反之检查失败
state-refresh:每个60s时间,第一跳路由器都向外发送
state-refresh消息用于确认下游邻居是否需要保持现有状态
下游邻居在收到后如果需要继续接收组播流量则回复jion消息
反之不发送任何消息
graft消息:当出现组播接收者时立即只用graft消息告知
上游邻居自己要接收组播流量。上游邻居在收到后回复graft-ack
进行确认同时将组播流量发给下游邻居
上游:离组播源近的设备称之为上游
下游:离组播源远的设备称之为下游
Assert消息:用选择在多路访问网路中组播转发路由器
优选规则
1,优选路由优先级值小的
2,如果优先级相同则选cost小的
3,如果以上相同则选择接口IP地址大的
胜选设备继续向网络中发送组播流量,落选者停止向网络中
发送组播流量将自己的接口修剪;
胜选设备周期性发送state-refresh(携带:到达组播源
路由优先级+cost值+掩码长度)其他设备侦听该state-refresh
消息,核对携带内是否比自己优,如果优则保持修剪
状态,反之发送assert去抢网络中的组播转发路由器
Sparse模式:稀疏模式
RP:集结点网络所有PIM设备必须知道RP位置
RPT;共享树,是以RP为根构建的一棵最短路径树