1. 组播与IPTV
提起组播,很多人会将它与IPTV划上等号,其实不然
组播是与广播/单播并列的一种IP网络的传输方式,而IPTV是一种基于宽带网络开展的视频业务
VoD(Video on Demand)和BTV(Boradcast TV)是IPTV的两种典型类型,那么组播语广播/单播之间的差异是什么,它和IPTV又有什么关系?
广播实现点到多点传输,服务器发送一份报文,在局域网内,所有客户端接收到这份报文,不管客户端是否需要,传统有线电视网就是典型的广播型网络,同一时间广播域内所有用户共享视频资源,并且我们的电视机实际上是接收到所有频道的信号,但只将一个频道的信号还原成画面。
单播实现点到点传输,服务器和客户端之间需要建立一个单独的数据通道用于端到端传输,如果一台服务器同时要给多个客户端发送相同的报文,则需要复制多份,VoD点播即通过单播方式传输,用户专享视频资源,可以不受时间限制随时观看自己喜欢的节目,并可进行快进,暂停等操作。
组播也实现点到多点传输,它与广播最核心的差异在于组播只将报文以组为单位传输给感兴趣的多个客户端,BTV直播电视即通过组播方式传输。BTV业务中,根据节目分组播组,收看相同节目用户划分到同一组播组中并共享视频资源,用户可以随时进行频道切换,即可以动态的加入或离开组播。
广播服务器负担小,但将报文传输给不需要客户白白浪费带宽,并存在安全隐患
单播可以实现个性化服务,但是随着客户端的增多,运营商服务器不堪重负,并且终端客户需要为个性化需求买单
组播是运营商基于带宽和用户体验综合考虑的一种传输方式,有效解决了单播和广播在“单点发送,多点接收”中的问题,可以节约带宽,减轻服务器负担,提升报文传输可靠性,还可提供新的增值业务,比如远程教育,远程医疗,实时视频会议等互联网的信息服务领域。
2. 组播IGMP协议
我们常说人与人之间要多沟通,在通信网络中,设备间也需要通过“协议”来进行沟通和协商。
组播业务中,路由器和组播成员间使用三层协议IGMP协议进行组成员关系管理和维护。
IGMP协议报文封装在IP数据包中进行传输,它有三个版本,目前使用比较普遍的是V2版本,下面将以V2版本为例说明
IGMP协议中等级分明,组播组成员是员工,路由器是领导,员工发送“报告(Report)”和“离开(Leave)”报文来申请主动加入和离开组播组;领导通过发送“通用组查询”和“特定组查询”报文了解各组播组成员的在线情况,收到查询报文的员工发送“Report”报文响应领导的查询;当组播组成员向路由器发送离开报文时,路由器会向此成员所在组发送“特定组查询”确认此组中是否还有其它成员,当查询超时后,如果还未收到响应报文,则在转发表中删除此组信息;领导为了掌控全局,还会周期性向所在网段内所有用户发送“通用组查询”,了解组成员在线情况,不同的用户响应不同,非组播用户不答复,组播用户在定时器超时,如果监听到所在组没有其它用户响应,则向路由器发送响应报文,否则将抑制自己的报文;
路由器要连接到组播成员中间还会经过ONU/OLT等二层设备。二层设备为了实现二层组成员管理衍生出IGMP Snooping和IGMP Poxy功能; IGMP Snooping即侦听,顾名思义就是二层设备通过侦听IGMP报文,来维护和管理二层组播转发表,并在路由器和组播组成员间透传所有IGMP报文,像不像部门秘书?二层设备开启IGMP Snooping后可以保证组播数据在二层设备上准确转发,不再被在VLAN域内广播,但是并没有为路由器减轻多少负担。
IGPM Proxy即IGMP代理,在此模式下,二层设备除了管理和维护转发表外,还代理组播组成员和路由器的IGMP报文信息,一旦开启IGMP Proxy功能,二层设备就像部门经理一样有两个身份,对于组播用户,他是领导发送查询报文;对于路由器,他是员工发送report和离开报文。二层设备收到同一组中多个用户的加入或离开报文,只向路由器发送一份;除此之外,当有新成员加入组时,如果二层设备中已有此组的组播数据,则直接将组播数据复制转发给对应的用户,不用再向路由器发送Report报文。 IGMP Proxy的使用大大减轻路由器的报文处理负担,
3. 组播实现原理
组播业务,即将数据以组的形式传输给用户的过程,BTV业务是组播最常见的应用,在BTV业务中,组播源就是存放用户所需节目的服务器,不同的服务器使用单播IP地址(Source IP)SIP 标识,节目信息的接收者(如机顶盒)是组播用户,机顶盒不可能与节目源直接相连,首先机顶盒与ONT相连,不同楼宇的用户需要经过多次汇聚到ONU或OLT等二层设备,接着汇聚到路由器,途径IP网络连接到节目源。
为了区分不同的节目,我们给节目定义一个身份识别的ID,这个ID就是组播组IP地址(如224.1.1.1),即Group IP(GIP),它使用D类IP地址(从224.0.0.0 到239.255.255.255),由于二层数据链路层不能识别IP地址,因此需要将IP地址映射成MAC地址;组播IP地址映射成组播MAC地址时,有32个IP组播地址映射到同一MAC地址上,因此网络管理员需要合理分配组播地址,避免在同一网段内发生不同的组播IP地址映射到同一个MAC地址的现象。组播组IP地址和MAC地址不是某个用户的地址,是整个组播组的地址,你向组内发信息的时候,目的地址是整个组,而不是单独的一个成员。
组播复制和转发:是组播技术中两大核心技术,组播复制是指网络设备支持把入口一份组播报文复制多份到多个出口,组播核心就是把报文复制工作尽可能放到距离接收者最近的地方来完成,减少中间网络带宽浪费。
网络结果错综复杂,用户如何能够收看自己想看的节目呢?设备上同时有多条组播节目流传输,要准确转发,首先要找到需要转发的节目流,不同组播节目使用不同的GIP区分,但是不同的ISP(Internet Service Provider)之间隔离,我们定义了组播VLAN(即MVLAN),MVLAN类似通道,不同的ISP走不同的通道相互隔离,从而保证了不同的ISP之间能够设置相同的IP;在这种情况下,确定一个节目需要两个元素:GIP和MVLAN。
但是相同ISP也希望能够对于不同的节目定义相同的组播IP地址,这时就需要通过不同的组播源IP地址区分不同的节目,此时确定一个节目需要三个元素:GIP,MVLAN和SIP,确定节目后,透过转发表转发。
点播实例:
接下来以FTTH场景,IGMP V2版本,IGMP Snooping模式,GIP+MVLAN节目索引为例演示用户如何收看到组播节目
- 首先,用户按照节目菜单点播节目后,应用软件提取节目的IP地址即GIP
- STB向上连的ONT发送携带了节目信息(GIP+MVLAN)加入的报文
- ONT捕获IGMP报文,将组播用户键入到组播组成员列表中,并生成转发表项
- ONT透传IGMP加入报文给OLT,OLT业务板捕获IGMP加入报文
- 业务版将组播IP地址映射成组播MAC地址,并将GPON端口加入到转发表项中
- OLT业务板将IGMP加入报文透传给OLT主控板,OLT主控板捕获到IGMP报文,并将业务板加入到组播组成员表中,并生成组播转发表项
- OLT主控板将IGMP加入报文发给路由器,路由器捕获IGMP加入报文,并将OLT加入到组播组成员表中,并生成组播转发表项
- 路由器终结IGMP协议报文,并转换成PIM报文,路由器将PIM加入报文发送给视频服务器
- 视频服务器捕获PIM加入报文,并建立转发表项,视频服务器根据节目流的MVLAN和GIP在设备上查找对应的转发表项,依次转发直到STB端口
- 节目流到STB端口后,如果节目流有权限,STB会解码密钥并还原出视频节目流信号