计算机网络-IP多播

多播(Muliticast),也称为组播,是实现了“一对多”通信技术。

IP多播地址和多播组

IP多播地址依赖于IP多播地址,D类地址,一般称呼为多播地址。

前面固定为:1110

范围是:224.0.0.0-239.255.255.255

20240421215903

局域网的硬件多播

局域网支持硬件多播:

实现:IPV4地址映射为硬件多播地址

但是多播MAC是25bit相同,而IPV4只有23bit,所以可能出现相同的

20240421221125

因特网上IP多播

IP多播在因特网上实现, 就需要经过多个路由器的转发。多播路由器必须按照IP多播地址转发到多播组的局域网下。

所以出现了IGMP来实现IP的路由多播

网际组管理协议IGMP

IGMP有三种报文类型:

  • 成员报告报文
  • 成员查询报文
  • 离开组报文

20240421222235

工作原理

1.加入多播组

  • IGMP成员报告报文中包含加入多播组的地址
  • IP多播数据报的目的地址也是加入IP多播组的地址

在这个过程中,多播路由器通过维护多播组列表,记录该路由器已知道的直连的各个网络中多播组成员的多播组地址,多播路由器只关心自己网络的多播地址

2.监视多播组的成员变化

多播路由器默认125s发送查询IGMP成员查询报文

3.退出多播组

  • 离开报文的内容包含主机要退出的多播组的地址
  • IP多播数据报的目的地址是224.0.0.2,这是一个特殊的IP多播地址,在本网络中的所有多播路由器都会收到该多播数据

多播路由选择协议

主要核心:在多播路由器之间建立,每一个多播转发树

  • 基于源树多播路由选择
  • 基于共享树多播路由选择

基于源树的多播路由选择

经典算法:反向路径多播

主要是以下步骤实现

  • 利用反向路径广播,建立一个广播转发树
  • 利用剪枝算法,剪除广播转发树的中下游非成员路由器,获得一个多播转发树

建立广播转发树,可以使用泛洪法。就算源节点发送所有的广播副本,然后继续复制广播继续发送所有邻接节点

但是如果网络中存在环路,泛洪就会无止境的继续

所以出现了RPB:每一台路由器收到一个广播分组时候,先检查该广播分组是否从源路径经最短路径而来。如果是就除了这个接口,进行广播。

基于共享树的多播路由选择

基于核心的分布式生成树建立共享树。该方法在每一个多播组中指定一个核心路由器,以核心路由器为根,建立一颗所有成员的路由选择树。

因特网的多播路由选择协议

  • 距离向量多播路由选择协议
  • 开放最短路径优先多播协议
  • 协议无关多播-稀疏方式
  • 协议无关多播-密集方式
  • 基于核心的转发树