1、1利用 MSTP 网络的组播功能实现中 IPTV 业务的承载摘要 IP 组播技术体系结构中,为了有效抑制组播数据在链路层的扩散,引入了 IGMP、IGMP Snooping、等二层组播协议。中兴传输 MSTP 设备提供二层交换功能,在二层上采用了 IGMP Snooping 的二层组播协议。本文主要介绍相关组播协议,然后提出一个 MSTP 网络使用组播功能实现IPTV 业务的承载的方案。 关键词 MSTP;组播;IPTV。 中图分类号:TN711 文献标识码: A Implementation of IPTV Service carried in MSTP Network based on t
2、he IP Multicast Technology Abstract CGMP, IGMP Snooping protocols on Layer Two are introduced to IP multicast network system structure, in order to prevention of the multicast data flooding on data link layer, ZTEs MSTP equipment provide L2 swtich function and enable IGMP Snooping protocol etc. In t
3、his paper, we introduce some 2relevantmulticast protocols, and then, put forward a practical technology solution of IPTV Service carried in MSTP Network. 什么时候需要使用到组播 互联网多媒体业务诸如:流媒体,视频会议和视频点播等,正在成为信息传送的重要组成部分。点对点传输的单播方式不能适应这一类业务传输特性单点发送多点接收,如 IPTV。因为服务器必须为每一个接收者提供一个相同内容的 IP 报文拷贝,同时网络上也重复地传输相同内容的报文,占用
4、了大量资源。如图 1.1 所示。虽然 IP 广播允许一个主机把一个 IP 报文发送给同一个网络的所有主机,但是由于不是所有的主机都需要这些报文,因而浪费了网络资源。在这种情况下组播(multicast)应运而生,它的出现解决了一个主机向特定的多个接收者发送消息的方法。 图 1.1 IP 组播技术有效地解决了单点发送多点接收的问题。实现了 IP 网络中点到多点的高效数据传送,能够大量节约网络带宽降低网络负载。组播技术涵盖的内容相当丰富从地址分配,组成员管理,到组播报文转发,路由建立,可靠性等诸多方面。 IP 组播 IP 组播是指一个 IP 报文向一个“主机组”的传送,这个包含零个或3多个主机的主
5、机组由一个单独的 IP 地址标识。主机组地址也称为“组播地址” ,或者 D 类地址。除了目的地址部分,组播报文与普通报文没有区别,网络尽力传送组播报文但是并不保证一定送达。主机组的成员可以动态变化,主机有权选择加入或者退出某个主机组。主机可以加入多个主机组,也可以向自己没有加入的主机组发送数据。主机组有两种:永久组和临时组。永久组的 IP 地址是周知的,由 Internet 管理机构分配,是保留地址。临时组的地址则使用除永久组地址外的非保留 D 类地址。 组播地址 IP 组播地址,或称为主机组地址,由 D 类 IP 地址标记,D 类 IP 地址的最高四位为“1110” ,起范围从 224.0.
6、0.0 到 239.255.255.255。临时主机组的组播地址由网络管理员选择,他需要保证这个地址在一定的范围内没有其他的主机组在使用这个组播地址。第 2 层的组播地址(组播 MAC 地址)可以从 IP 组播地址中衍生。计算方法是把 IP 地址的最后23 位拷贝到 MAC 地址的最后 23 位,然后把这 23 位前面的那一位置为0。MAC 地址的前 24 位必须为 0x01-00-5E。例如:组播 IP 地址224.0.1.128,16 进制表示为 0xE0-00-01-10,最低的 23 位为 0x00-01-10,计算得出的 MAC 地址为:0x01-00-5E-00-01-10。 IG
7、MP 和 IGMP Snooping 介绍 IGMP 原理 组播地址解决了组播数据发送给谁的问题。对于信息的发送方来说相当简单,但接收方却十分复杂。接下来就是如何接收组播消息。Internet 组管理协议(Internet Group Management Protocol,IGMP)4由主机成员关系协议发展而来,目前有三个版本:IGMPv1(RFC1112) ,IGMPv2 (RFC2326),IGMPv3(RFC3376)。IGMPv1 RFC1112 中定义了基本的组成员查询和报告过程。目前通用的是 IGMPv2,在 IGMPv1 的基础上添加了组成员快速离开的机制。IGMPv3 中增加
8、的主要功能是成员可以指定接收或指定不接收某些组播源的报文。 IGMP 协议运行于主机和与主机直接相连的组播路由器之间。IGMP 实现的功能是双向的:一方面通过 IGMP 协议,主机通知本地路由器希望加入并接收某个特定组播组的信息;另一方面路由器通过 IGMP 协议周期性地查询局域网内某个已知组的成员是否处于活动状态,即该网段是否仍有属于某个组播组的成员,实现所连网络组成员关系的收集与维护。通过 IGMP 在路由器中记录的信息是某个组播组是否在本地有组成员而不是组播组与主机之间的对应关系。IGMP 消息被置于 IP 报文中传送。IGMPv1 的报文如图 2.1 所示。IGMPv1 中定义了两种消
9、息类型:主机成员询问和主机成员报告。当某主机想要加入某个组播流量时,它向本地的组播路由器发送“主机成员报告“消息,告知欲接收的组播地址。组播路由器收到“主机成员报告“消息后把该主机加入指定的主机组,并在设定的周期内向组播地址 224.0.0.1(代表所有支持组播的主机) 发送“主机成员询问“消息。主机如果还想继续接收组播流量,必须发送“主机成员报告“消息。 图 2.1 IGMPv1 的报文格式 IGMPv2 的报文如图 2.2 所示。与 IGMPv1不同的是它将版本字段和消息类型字段融合,把未使用字段作了“最大响应时间“字段。IGMPv2 报文的消息类型字段定义了四种消息类型: 图 52.2
10、GMPv2 的报文格式 0x11 - 成员询问 0x12 - IGMPv1 成员报告 0x16 - IGMPv2 成员报告 0x17 - 退出主机组 IGMPv2 向前兼容 IGMPv1 协议, IGMPv1 的设备可以接收处理 IGMPv2 的消息报文。 IGMPv2 中允许路由器对指定的主机组地址做“成员询问“,非该组的主机不必响应。如果某主机想退出,它可以主动向路由器发送“退出主机组“消息,而不必像 IGMPv1 中那样只能被动退出。 IGMP Snooping 原理 二层交换设备使用 IGMP Snooping(IGMP 侦听)动态配置二层交换接口来限制多播业务的广播,多播业务只转发到
11、和 IP 多播业务相关的接口。顾名思义,IGMP Snooping 需要交换设备侦听路由器和主机之间的IGMP 协议报文的传送,跟踪组播组和成员端口。 当二层以太网交换机收到主机和路由器之间传递的 IGMP 报文时,IGMP Snooping 分析 IGMP 报文所带的信息。当监听到主机发出的 IGMP 主机报告报文(IGMP host report message)时,交换机就将与该主机加入到相应的组播表中;当监听到主机发出的 IGMP 离开报文(IGMP leave message)时,交换机向主机发送 IGMP 查询报文,同时启动定时器,当定时时间内没有收到报告报文,将 IGMP 离开报
12、文转发给路由器,并删除与该主机对应的组播表项,否则丢弃离开报文。当监听到路由器发出的 IGMP 查询报文(IGMP query message)时,一方面交换机就将IGMP 查询报文转发给主机,同时启动查询定时器,当查询定时器超时时,删除与该主机对应的组播表项;另一方面学习到路由器端口。通过不断6地监控 IGMP 报文,交换机就可以在建立和维护 IP 组播地址表。之后,交换机就可以根据 IP 组播地址表进行转发从路由器下发的组播报文。没有运行 IGMP Snooping 时,组播报文将在二层广播。如下图所示: 图 3.1 没有 IGMP Snooping 时组播报文传播过程 运行 IGMP S
13、nooping 后,报文将不再在二层广播,而是进行二层组播。如下图所示: 图 3.2 实现 IGMP Snooping 时组播报文传播过程 中兴 MSTP 数据板的 IGMP Snooping 实现 IGMP 查询报文(IGMP Query message)处理 IGMP 通用查询报文是组播路由器向组播组成员发送的报文,用于查询哪些组播组存在成员。处理过程如下: a) 接收到查询报文后,记录路由端口。 b) 重新设置老化标志 c)Vlan 内转发 2)IGMP 报告报文(IGMP Membership Report message)处理 IGMP 报告报文是主机向组播路由器发送的报告报文,用于
14、申请加入7某个组播组或者应答 IGMP 查询报文。处理过程如下: a) 从报文内容中获得组播地址。以组播地址和 VLAN ID 为关键字,查询组播表中表项是否已经存在。如果不存在,则增加表项,并填加接收端口;如果已存在,则查看端口是否已在表项中,不存在则增加;存在则不改变。 b) 设置或更新表项的老化定时器 c) 转发报文到路由端口 3)IGMP 离开报文(IGMP Leave message)处理 IGMP 离开报文是组播组成员向组播路由器发送的报文,用于告知路由器主机离开了某个组播组。处理过程如下: a) 记录离开报文内容,并启动定时器 b) 发送查询报文给接收到离开报文的端口 c) 若
15、1 秒内接收到报告报文,丢弃保存的离开报文,删除定时器 d) 若 1 秒内没有接收到报告报文,则转发离开报文到路由端口; 将该主机端口从组播表中删除;删除定时器。 4)协议启用/禁用处理 a) 协议禁用,置协议禁用标志;删除所有的组播表; b) 协议启用,置协议启用标志;重新启用定时任务 85)删除 Vlan 删除与此 VLAN 相关的所有组播表项 IGMP Snooping 配置和调试手段 IGMP Snooping 的配置比较简单,打开网管设备管理以太网管理数据板组播属性配置:(此项配置同时影响 IGMP Snooping 和PIM Snooping) 选择需要配置的单板, 如果启用组播则
16、选择“动态组播” ,禁用则选择“无限制” 。 在 IPTV 业务中的具体应用 IPTV 业务介绍 IPTV 是在电信网络 IP 技术架构基础上实现多媒体视频节目互动传播的方式。用户可以通过“IP 机顶盒+电视”的方式获得 IPTV 服务。 IPTV 音视频直播类业务的特点是,频道固定,数据传输带宽要求较高,访问量大。与点播类业务不同,收看直播节目的用户看到的是相同的内容,因此,网络适合采用组播方式向用户提供服务。组播技术可以减少直播对带宽资源的占用。因此,IPTV 承载网应提供对组播的支持。 SEC 数据板的组播功能在 IPTV 业务中的应用 组网图 9配置说明 NE1 的#11SEC GE
17、口连接至 BRAS 设备数据源,作为 IPTV 的源节点;NE1 的#12SEC 单板 GE 口连接至中心局 DSLAM 设备;NE2 的#11SEC GE 口连接至本地 DSLAM 设备,作为 IPTV 业务的本地接收节点。 NE1 的#11SEC 开启#1-#8VCG,其中#1-#4VCG 绑定在 Trunk-1#中对应NE2 方向,#5-#8VCG 绑定在 Trunk-2#对接给#12SEC 的 Trunk-1#使用。#12SEC #5-#8VCG 绑定在 Trunk-2#同时给下方的环上站点 IPTV 业务使用。NE2 的#11SEC 开启#1-#8VCG,其中其中#1-#4VCG 绑
18、定在 Trunk-1#对应 NE1 方向,#5-#8VCG 绑定在 Trunk-2#对接给下方的站点使用。 各 SEC 单板启用动态组播协议。所有端口都划分到同一个 VLAN#3999中。 运行效果检查 可以通过如下方式检查其 IPTV 业务的组播运行效果: 维护-以太网维护-查询组播状态 NE1 的 11#SEC 单板: (每个 IP 地址代表了一个组播组,这里显示 2 个组播组(也就是 2个 TV 频道)225.66.0.1、225.66.0.1,其中的 Port 端口信息表示这个组播组包括了哪些端口) 。 NE1 的 12#SEC 单板: 10维护-以太网维护-MSTP 通用查询,选择组
19、播组信息(MulticastGroupInfo) 。 结论 随着互联网的快速发展 IPTV 业务逐步普及。目前国内各运营商传输本地网仍以基于 SDH 技术的 MSTP 网络为主体,所以发挥 MSTP 网络资源去承载 IPTV 等新兴的互联网数据业务是运营商需要解决的一个课题。本文经过分析和研究,提出在中兴 MSTP 网络中利用组播功能实现 IPTV 业务承载的方案,并给出具体配置、调试记录和验证结果。实际证明了这种方案对于运营商现网是十分可行的,具有实际使用的价值。 参考文献: 1 中兴通讯股份有限公司,ZXMP S385 SEC 单板维护手册(V1.0),2010-4-19 2 中兴通讯股份有限公司,ZXMP 系列以太网板新功能维护手册(V1.2),2009.11.23 3 中兴通讯股份有限公司,E300(V3.19R2)网管操作手册(SDH网元分册)2010.6.30