【路由交换技术】多播和多播协议(二)

134 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第34天,点击查看活动详情


12.3.1组管理

IGMP不是一个多播路由选择协议,它是管理组成员关系的协议。GMP协议把连接到网络上的主机(路由器)的成员关系状态信息交给多播路由器。

IGMP是个组管理协议。它帮助多播路由器创建和更新与每一个路由器接口有关的忠实成员的列表。

IGMP经历了三个版本的发展。版本1和版本2提供的是任意源多播,不管是从哪来的多播报文,组成员都会接收。IGMP版本3则提供特定源多播( SSM),就是说接收者可以选择只接收来自预先定义好的源列表中的某个源的多播报文。

12.3.2 IGMP报文

IGMPv3有两种类型的报文: 成员关系查询报文、成员关系报告报文。第一种类型有三种不同的格式: 一般的格式、特定组的格式、特定组和源的格式

成员关系查询报文格式 路由器为了找出网络中活跃的组成员而发送的报文。

成员关系查询报文 的三个格式的不同作用:

a.在一般的查询报文中,发起查询的路由器探询每个邻站,使之报告组成员关系的完整列表(对任何多播组都感兴趣)。

b.在特定组的查询报文中,发起查询的路由器探询每个邻站,使之报告是否仍然对某个特定的多播组感兴趣。

c.在特定组和源的查询报文中,发起查询的路由器探询每个邻站,使之报告是否仍然对来自N个源之一的且到特定多播组的多播分组感兴趣,这些源的单播地址在分组中指明。

12.3.3 在主机上应用IGMP协议

接口状态 套接字的记录中可能有重叠信息。两个或多个套接字可能具有同一个多播组的记录。为了提高效率,组管理要求将主机连接到网络的接口也要保存一个接口状态。合并记录存在的唯一问题就是对源列表的处理。

如果同一个多播组的记录具有两个或多个源列表,那么在合并源列表时需要遵守以下两个规则:

1.如果被合并的记录之中有某个记录具有exclude过滤模式,那么结果得到的接口记录也将具有exclude过滤模式,且源地址列表的生成方法如下:

a.对用exclude过滤的所有地址列表进行交集操作。

b.把a部分得出的结果与用include 过滤的所有地址列表进行差集操作。

2.如果被合并的所有记录都是include过滤模式,那么结果得到的接口记录也是include过滤模式,且新的源地址列表就是对所有地址列表的并集操作。

当任何一个套接字记录发生变化时,接口状态就要采用上述规则进行修改。

发送改变状态的报告 不管接口状态有任何变化,主机都需要立即用相应的组记录为该多播组发送一个成员关系报告报文。

计时器到期 当计时器到期时,主机就发送成员报告报文。不过,这个报文中包含的组记录的类型和数量都取决于到期的计时器。

报告抑制 在IGMP前面的两个版本中,如果一台主机接收到了由另一台主机发送的报告,它就会取消接口状态中对应的计时器,也就是说抑制了正在等待发送的报告。而在 IGMPv3中,基于某些在RFC 3376中描述的原因,这个机制被从协议中被删除了。

12.9本章小结

多播就是向多个接收者同时发送相同的报文。多播有很多应用,包括分布式数据库、信息发布、电视会议、远程学习。

在无分类编址中,地址块224.0.0.0/4被用作多播地址。这个地址块有时也称为多播地址空间,并且根据不同的用途被划分为几个小地址块。

在收集本地的组成员状态信息时要涉及到因特网组管理协议(IGMP)。IGMP最新的版本是IGMPv3,它使用了两种类型的报文:查询和报告。