浅谈组播

版权声明:商业使用请与博主联系 https://blog.csdn.net/NetRookieX/article/details/89206381

什么是组播?

先说单播,单播的接收者只有一个
再说广播,广播的接收者是所有设备
简单地说,组播的接收者是一组,由设备自行选择是否接收。

打个比方,公司高层在开视频会议,那所有的高层人员都必须接收视频。
而非高层人员则不必理会。

组播IP地址(D类地址)

224.0.0.1 #所有主机地址(包括路由器)
224.0.0.2 #所有组播路由器
224.0.0.9 #RIPv2路由器
224.0.0.5 #OSPF路由器组播地址
224.0.0.6 #OSPF DR组播地址

组播MAC地址

组播MAC地址:第8位为1
单播MAC地址:第8位为0

组播IP与MAC映射

01:00:5E + (0 + IP后23位映射)

名词解释

第一跳路由器:直连组播源路由器
最后一条路由器:直连组成员路由器

组播结构

组播源

无需任何协议

组播路由协议

PIM等协议
用在组播分发树中

组管理协议

扫描二维码关注公众号,回复: 5884568 查看本文章

IGMP协议
使用在接收者和最后一跳路由器之间

PIM协议

1.分类
  • PIM-DM

关于PIM-DM

密集模式,成员很多,所以组播源主动Push,即主动发送组播数据
组播数据转发至各个角落,若无需该组播数据再进行剪枝操作

扩散

SPT收敛完成后,组播流量发送到各个角落

剪枝

不需要组播流量的路由器周期性向上游发送Prune报文

嫁接

出现新接收者,最后一跳路由器向上游发送PIM-Graft,将自己嫁接进SPT

  • PIM-SM

关于PIM-SM

稀疏模式,成员很少,以至于不知道有没有成员。所以为被动模式,组成员向路由器Pull
假定不存在接受者,通过Join申请

2.构建组播分发树

组播源或RP为根,叶子节点为组成员

SPT

最短路径树
组播源为根

RPT

共享树
多组播源
可使用RP为根,RP为共享汇聚点
RP为一台路由器,由它接收组播源数据包,再作为根转发至其他成员

3.维护一张组播前传表 #即组播路由表

两种路由表项(S为组播源,G为组播组)

(S,G) #由此项指导报文转发
(*,G) #只知道组播组,则根据上游创建(S,G)

4.RPF检查

防止出现组播环路
只有从上游接口收到数据包才使用,否则丢弃
借助单播路由进行RPF检查

IGMP

  • 关于IGMP

采用IP封装
协议号为2
TTL通常为1

  • 版本
  1. IGMPv1

无离开信息,采用超时机制发现无成员的组

  1. IGMPv2

重点讲一讲GMPv2的报文类型

普遍组查询

查询器周期性查询组播组

特定组查询

查询器查询该组有无成员

成员关系报告

主机申请加入或者对查询报文进行应答

版本1成员关系报告

用于兼容IGMPv1

成员离开报文

主机发送该报文,宣告离开组播组

  1. IGMPv3

多组播源情况下,能够明确的要求接收或不接收某特定组播源S发出的组播信息,否则都要接收

举个例子:
网络中存在S1和S2两个组播源,均向组播组G发送组播报文,User仅希望接收从组播源S1发送组播组G的信息,典型组网如下图。
如果主机和路由器之间应该用IGMPv1或IGMv2,User加入到某组播组G后,将同时接收到来自组播源S1和S2的组播信息。如果采用IGMPv3,主机User可以选择紧接收S1组播信息。

猜你喜欢

转载自blog.csdn.net/NetRookieX/article/details/89206381