IGMP/E-Tree/IPTV

1.     IGMP

组播协议允许将一台主机发送的数据通过通信设备复制到多个加入此组播的主机,是一种一对多的通讯方式。

组播地址范围:

“D”类地址空间224.0.0.0-239.255.255.255,第一个字节的高四位 = “1110”

    224.0.0.0-224.0.0.255为保留组播地址,例如:224.0.0.1=网内所有系统,224.0.0.2=网内的所有路由器,224.0.0.4=VMRP路由器,224.0.0.5=SPF路由器。本地管理组地址:239.0.0.0-239.255.255.255,用户组播地址:224.0.1.0-238.255.255.255

IP地址到MAC地址的映射:

IGMP/E-Tree/IPTV_第1张图片

例如:

225.1.1.1……0X01005E010101

238.0.0.5……0X01005E000005

IGMP/E-Tree/IPTV_第2张图片

路由器周期性的向主机侧发出查询报文(QUERY),DMAC=0x01005E000001,DIP=224.0.0.1

主机返回自己的报告(REPORT),比如PC1:DMAC=0x01005E010101,DIP=225.1.1.1

PC2:DMAC=0x01005E010102,DIP=225.1.1.2

这样IGMP Snooping会维护组播表的,比如:225.1.1.1--Port1,225.1.1.2--Port2

IGMP/E-Tree/IPTV_第3张图片

主机向224.0.0.2发送离开组消息(Leave),比如PC1离开后,删除组播表中的225.1.1.1

query:DA=01005e 000001 SA DIP=224.0.0.1

report:
PORT1:DA=01005e 010101 SA DIP=225.1.1.1
PORT2:DA=01005e 010102 SA DIP=225.1.1.2


leaf:FIB MAC1--PORT1 MAC2--PORT2 MAC3--PORT3

(P2P的广播中学习的)
IGMP snooping:225.1.1.1--PORT1 225.1.1.2--PORT2 PORT3
(这是协议维护的,实际中会IP转化为MAC,直接下到NP中以静态MAC-PORT存在,老化时间到之后没命中,协议删除IP组播表,顺便直接删除NP静态表;NP判断是01 00 5e ** ** **而且是IGMP协议报文,TRAP到CPU,送到IGMP SNOOPNG协议处理,协议会将组播IP +PORT0 PORT1 PORT2 放到一个组播表中去,下发到L2,L2转化组播IP为组播MAC+port0 port1 port2 下发到FIB表中)

服务器发出的组播包:
DA=01005e 010101 SA DIP=225.1.1.1
DA=01005e 010102 SA DIP=225.1.1.2


2.     ECI的PTN中的E-Tree实现

E-Tree是点到多点的业务,主要在IPTV应用,业务模型如图

IGMP/E-Tree/IPTV_第4张图片

中间网元PTN配置为ROOTMP-Root,数据报文需要配置一个4个出口的P2MP LSP,IGMP协议报文配置4条P2P的LSP(双向),相当于这4条全部广播;

PE侧PTN配置为ROOTMP-Leaf,运行有IGMP Snooping,数据报文需要配置一个P2MP的Transit&Tail,其实也就是为了Drop落地而已,实际组网Continue继续转发的并不多,IGMP协议报文配置1条P2P的LSP(双向),最后配置N个落地UNI端口,相当于N个端口广播,N个端口接终端

对数据转发平面

组播服务器发送Query报文到Root的UNI,Root发现时IGMP组播包,Root广播到4个出端口;Leaf收到后,发现是IGMP,广播到N个UNI端口,终端设备1~N收到Query包,分别返回Report报文;Leaf收到后,会维护组播表的,比如225.1.1.1--Port1,225.1.1.n--Portn之类的(会有很多组播地址是相同的,因为看的频道是一样的)

接着发送数据报文,数据报文的话,走P2MP的LSP,多播从4个端口出去;Leaf收到后,会查找组播表,决定报文送到哪个PORT

(成员关系报文报告抑制机制,是针对一个交换机中的HOST而言,交换机对接路由只有一个端口)

3.      EPON中的IPTV实现(转载自:组播技术在EPON系统中的应用)

IGMP/E-Tree/IPTV_第5张图片

OLT利用IGMP Proxy、ONU利用IGMPSnooping实现对组播组成员的管理,通过IGMP Join/Leave和Query消息实现组播成员的动态加入/退出和维持。

IGMP Proxy的实现原理:OLT靠拦截用户和路由器之间的IGMP报文建立组播表,Proxy设备的上联端口执行主机的角色,下联端口执行路由器的角色。

IGMP Snooping的实现原理:OLT以侦听主机发向路由器IGMP成员报告消息的方式,形成组成员和交换机端口的对应关系,并根据该对应关系,将收到的组播数据包转发到组成员的端口。

    组播系统由视频组播业务系统、IP城域网、接入网络和家庭网络4部分组成。

EPON系统实现视频组播的一般流程如下。

第1步:机顶盒(STB)或PC机通过发送DHCP报文从DHCP服务器获得一个IP地址。

第2步:BRAS对STB上报的用户名和密码进行验证,获得电子节目表。

第3步:用户在电子节目表进行节目选择。

第4步:选中节目后,STB就发送一个IGMP加入的请求报文。

第5步:在组播路由器上建立组播映射表(组和VLAN相对应)。

第6步:OLT上建立组播转发表,为每个加入组的用户复制视频流。

第7步:用户观看组播节目。

其中关键的是要在组播路由器中建立组播映射表和OLT上建立组播转发表并复制视频流。主要是通过IGMP Join/Leave和Query消息实现组播组成员的动态加入/退出和维持。具体实现因IGMP Proxy和IGMP Snooping的不同而不同。

在IGMP Proxy模式下,当OLT收到IGMP申请加入报文后,OLT启动IGMP Proxy功能,截获这个申请报文,然后是鉴权,鉴权通过后进行以下逻辑检查:若申请的组是OLT中还没有的,那么OLT就向上层路由器发送一个IGMP加入请求,并建立组播转发表;如果在OLT内已经存在一个这样的组播组,则直接将该用户加入OLT上的组播转发表,不再向上层路由器发送IGMP加入报文,同时建立组播业务和用户的对应表。

在IGMP Snooping模式下,当OLT收到IGMP加入报文后,通过侦听获得组播转发表消息,但对IGMP报文而言,它是透传经过OLT的。在实际应用中,EPON系统通过UNI端口的组播VLAN配置实现简单的用户组播权限控制,更复杂的业务权限控制(如预览、禁止等)由IPTV业务平台实现。

你可能感兴趣的:(计算机,网络通信,IGMP)