组播, 英文原文为Multicast, 也有人把它译为多播, 是IP网络中三种通讯方式之一(其它两种为广播-Broadcast, 点到点通讯也叫单播-Unicast)。 在工业现场总线工业以太网化的应用环境下, 组播技术是目前最为常用的一种保证同属于一个通讯主站下的多个通讯从站之间能较为实时的收到来自该主站的同一信息, 即每个从站收到该信息的时刻比较一致。
组播技术主要是依靠将某一组播地址(包含了多个目的地址)作为信息的目的地址, 并使用最高效的传输策略: 信息在每条网络链路上只需传递一次,只有在链路分叉的时,该信息才会被复制。那么组播技术是如何管理由多个目的地址组成的组播组的呢? 以下这些常见的组播技术协议都有相关的规定: 互联网组管理协议(IGMP), 协议无关组播(PIM), 距离矢量组播路由协议(DVMRP), 组播OSPF(MOSPF), 组播BGP(MBGP), 组播源发现协议(MSDP)和组播监听器发现(MLD)。 由于篇幅的关系, 本人首先介绍IGMP - Internet Group Management Protocol即因特网组管理协议, 因为这是目前几乎所有的工业以太网交换产品均支持的组播技术, 也是最为常用的组播技术。
因特网组管理协议被用在IP主机和它们即时相邻组播代理之间,用以支持临时组播组地址的分配和组播组成员的添加删除。IP组播定义为一个去往"(目的)主机群"的IP数据报(packet)的传输,有零个或多个主机组成的"主机群"通过单个IP目的地址标识。一个组播数据报被投递给它的目的主机群的所有成员,具有和常规单路传送IP数据报同样的"尽力地(best effort-UDP)"安全性,那就是说该数据报不保证达到目的地组的所有成员,或者不和其他数据报具有相同的顺序。主机组的成员数是动态的;也就是说,主机随时可以参加和离开组。 没有对主机组中的成员的数目或地点加以限制,但是成员仅限于那些拥有专用的存取键的主机。一个主机可能同时是多个组的成员。一个主机即时不是一个组的成员也可以给它发送数据报。主机组可能永久性或暂时性的。永久性组具有一个众所周知的,官方分配的IP地址。它是地址,非该组的成员,也就是说永久性;任何时间,一个永久性组也许有许多成员,甚至可能有零个成员。 另一方面,临时性的组,当应一个主机的请求创建时被动态地指派一个地址。当它的成员跌至零,临时性的组要解散时,它的地址可以重新分配。临时组的创建和组员身份信息的维护是“组播代理”(存在于因特网网关或其他专用的主机内的实体)的职责。至少有一个组播代理直接与每个支持IP多点广播的IP网络或子网相连。主机通过用邻机代理交换报文来请求新建一个组、加入或离开现有组。组播代理还担负多点播送IP数据报的互连网络运送工作。发送一个多点播送IP数据报时,主机将它传送到一个局域网组播地址那里,哪些地址标识目的地主机组的所有邻机成员。如果该组具有在其他网络的成员,组播代理成为本地组播的辅助接收器并且通过因特网网关系统中继该数据报给其他网络上的代理。最后,另一个网络上的代理将数据报作为一个本地的组播传送给他们自己目的组的邻机成员。
目前市面上的绝大多数用于现场的工业以太网交换设备为二层交换设备,即不支持三层技术如刚才提到的组播技术。所有这些工业以太网交换机采用IGMP snooping的技术-通过动态地配置二层端口的方法来抑制组播流量的泛滥,这样才能保证组播流量仅被转发给那些与IP组播设备相关联的端口。正如其名称的含义,IGMP snooping需要工业以太网交换机去打探在主机和三层设备之间的IGMP传输意图并记录组播组及其成员的端口。当工业以太网交换机收到来自某一主机的IGMP报告欲加入某一特定的组播组的报告时,该交换机会在其转发表项中加入该主机所连接的端口号;当工业以太网交换机收到来自某一主机的欲离开某一特定组播组的报告时,它将其连接的交换机端口号从这一表项中删除。交换机也会定时地删除它的组播组成员表项,如果它没有从组播客户端收到IGMP组播成员报告。网络中的三层交换设备如三层交换机或路由器等会定期地送出IGMP通用问询给所有的VLAN(虚拟局域网)。一旦工业以太网交换机上的IGMP snooping功能被打开,该交换机将基于MAC组播组为所连接设备的加入请求来响应三层交换设备的询问,并为每个VLAN、每个MAC组播组在其转发表项中创建相应的表项。
由于篇幅的原因,对IGMP的介绍先到此结束。欢迎各位专家指正。 |