IPTV又称为网络电视、宽带电视,是利用宽带网络为用户提供交互式服务的一种业务。通过IPTV业务,用户可以得到高质量(接近DVD水平)的数字媒体服务,可以自由选择宽带IP网的视频节目,实现媒体提供者和媒体消费者的实质性互动。

IP组播

在ADSL上实现IPTV业务是基于IP组播技术的。组播技术是一种点到多点的网络技术,其目的是减轻网络负载和媒体服务器的负担。组播方式分为静态组播和动态组播,由于实际应用中用户的需求总是变化的,所以在IPTV中一般采用动态组播。

1. 组播协议

从协议角度讲,在IP组播中用到的协议由两部分组成:运行在主机与组播路由器之间的路由协议IGMP(Internet Group Management Protocol)和运行在各个组播路由器之间的组播路由协议,如PIM-SM、PIM-DM、MSDP和DVMRP等。

IP组播的实现主要是基于IGMP协议的,IGMP协议是第三层协议,是TCP/IP的标准之一,所有接收IP组播的机器都需要IGMP。

2. 组播地址


图1 IP地址和MAC组播地址的映射

从通信层次上讲,IP组播分为两个层面:IP组播和以太网组播。根据IANA(Internet Assigned Number Authority)规定,组播报文的地址使用D类IP地址,其范围从224.0.0.0到239.255.255.255。组播MAC地址的高24bit固定为0x015e,同时需要注意的是组播地址都只能作为目的地址,而不能作为源地址来使用。IP组播地址和MAC地址以一种映射关系相关联,MAC地址的低23位映射为组播MAC的低23位,如图一所示。组播MAC地址和组播IP地址的这种映射关系不是唯一对应的,因为在32位IP组播地址可以变化的28bit中只映射了其中的23bit,还剩下5bit是可以自由变化的,所以每32个IP组播地址映射一个组播MAC地址。

DSLAM上实现IP组播基本原理

1. DSLAM简介

DSLAM(数字用户线路接入复用器)是ADSL系统中的局端设备,其功能是接纳所有的DSL线路,汇聚流量,相当于一个二层交换机。其在ADSL系统中的位置如图二所示。


图2 G.lite标准ADSL结构图

DSLAM从产生到现在大致经历了三个阶段,各阶段的区别在于交换内核,上联口以及由此引起的不同QoS,具体如表一所示。


表1 各种DSLAM比较

2. IGMP Proxy和IGMP Snooping

由于采用了不同的交换内核和上联口,因此在DSLAM上进行IP组播可以采用IGMP Proxy和IGMP Snooping两种方式。

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

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

早期的基于纯ATM交换内核的DSLAM,由于PVC的终结是在BAS上,DSLAM支持数据的透传,不能对数据进行任何的处理,所以只能实现IGMP Snooping功能,而不能支持IGMP Proxy功能。现在基于纯IP交换的第三代DSLAM,可以同时支持IGMP Proxy和IGMP Snooping功能。

3. DSLAM上实现IP组播的一般流程

组播系统由视频组播业务系统、IP城域网、接入网络和家庭网络四部分组成。如图三所示。


图3 组播系统组成

DSLAM下行与ADSL Modem之间为ATM 信元方式,现在的Modem虽然一般都支持8条PVC,但只用到了3条,一条用于组播业务,一条用于单播业务,一条用于信令,而且一般不提供PVC和端口的绑定。当用户打算要加入组播组时,流程如下:

1) STB(Set-top Box)通过发送DHCP报文获得一个IP地址;
    2) 对STB上报的用户名和密码进行验证,获得电子节目表;
    3) 用户进行节目选择;
    4) 选中节目后,STB就发送一个IGMP加入报文,在组播路由器上建立组播映射表(组和VLAN相对应)和DSLAM上建立组播转发表(组和用户板端口对应),同时建立组播业务和PVC的绑定;
    5) 用户观看组播节目。

其中关键的是要在组播路由器中建立组播映射表和DSLAM上建立组播转发表。具体实现因IGMP Proxy和IGMP Snooping的不同而不同。以下的部分将以第三代DSLAM为例进行说明。

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

在IGMP Snooping模式下当用户板端口收到IGMP加入报文后,DSLAM通过侦听获得组播转发表消息,但对IGMP报文而言,它是透传经过DSLAM的。

在路由器上根据对IGMP报文的分析来建立组播组和VLAN的映射表,通过VLAN划分不同的组,可以防止泛洪同时也增强了不同组用户间的安全性。

4. DSLAM上实现IP组播性能的衡量

DSLAM上实现IP组播性能的衡量主要分为功能和性能两部分。

功能方面包括:
    1) DSLAM组播流的转发。DSLAM能按组播转发表正确转发。
    2) 多个组成员的加入不会影响到组内其它成员收看组播节目;同样的,单个组成员的离开和单个组的离开也不会影响到组内其它成员和其它组的成员观看组播节目。
    3) 对组播权限的控制。对权限的控制应该是基于端口号、MAC地址或者IP地址的灵活控制,而且控制的颗粒度应能控制某个用户可以加入此组播组但是不能加入彼组播组。
    4) IPTV频道切换时延。时延要在用户能接收的范围内,与电视频道切换时间相当是比较理想的。

性能方面主要包括:
    1) 组成员Join/Leave的时延。Join时延是指从待测路由器收到指定组播组的Join消息到它开始向该指定组播组转发组播流的时延; Leave时延是指从待测路由器收到组的Leave消息到它停止向该指定组转发组播流的时延。
    2) 在单/多PVC下多业务的QoS。保证在同一条PVC或者多条PVC上能传送不同的业务。
    3) 单板组播性能。该性能用于表征单用户板满配情况下最大无差错转发时的组播流速率,速率的大小关系到组播源可以向用户提供的业务类型,如果速率不够大就有可能会限制某些业务的开展。

5. 实际运用中还需要注意的问题

在DSLAM上开展IP组播作为一项新的宽带视频业务,在即将走向大规模商用之际还存在不少的问题。

由于采用了IP城域网作为组播流承载网,那么IP固有的QoS问题就将成为需要首先解决的问题之一。QoS涉及方面较多,对在DSLAM上实现IP组播来讲,其影响主要有以下几个方面:

ADSL带宽:在现有编码技术下,要获得如DVD(采用MPEG4/H.264编码技术)效果的画面需要的带宽大约为2M左右,而目前ADSL通常只提供512K~1M的接入速率。

设备: DSLAM设备自身的发展还是一个逐步完善,逐步走向商用的过程。

QoS实现方式:由于采用了基于IP交换内核和IP上联,那么以前ATM特有的QoS实现方式就不能应用了。在这种情况下,想通过对业务的识别来保证其QoS,就要采用如IEEE802.1P的优先级划分协议等来实现不同业务的QoS。

要开展IP组播业务,接入认证也是一个很重要的方面,现在主流的接入认证方式有PPPoE和DHCP+Web 认证。组播流要经由BAS才能到达DSLAM,这无疑会加重BAS的负担,容易使BAS成为瓶颈,所以PPPoE接入认证限制了多播协议的存在,有悖于组播要减轻网络负载的初衷,影响多播视频业务的开展。在这种情况下,组播流旁路BAS,经过边缘L3交换机或路由器直接到DSLAM,使用DHCP+Web认证。DHCP+Web认证不用在用户主机和BRAS之间建立类似PPP的通道,因此不会加重BAS的负担,不存在对多播协议的限制。

此外计费和对用户的管理也是要重点考虑的问题。

总结

综上所述,本文首先介绍了IP组播的协议和组播地址;然后对DSLAM进行了简单的描述,并在此基础上阐明了DSLAM上实现IP组播的一般流程;最后再对在DSLAM上实现IP组播的衡量指标和存在的问题进行了简单的说明。相信在不久的将来,基于DSLAM实现IP组播的IPTV业务必会带给用户更多的惊喜的同时,也会给运营商带来不小的收益。

IGMP PROXY和IGMP SNOOPING 有什么区别?相关推荐

  1. 2022-11- 10 网工进阶(三十六)IP组播协议--IGMP(v1、v2、v3)、IGMP snooping、IGMP SSM Mapping、IGMP Proxy(代理)

    感知组播组成员 组播通信中,组播网络需要将组播数据发送给特定的组播组成员,因此组播网络需要知道组成员的位置与组成员所加的组播组. 组播网络感知组播组成员的方法有手工静态配置和动态感知. 手工静态配置 ...

  2. IGMP Snooping和IGMP Proxy区别

    1.了解组播地址范围分类 224.0.0.0–224.0.0.255 预留,路由器不会转发的地址 224.0.1.0–238.255.255.255 可以组播地址,用于INTERNET大网上传输 23 ...

  3. igmpproxy_Linux IGMP PROXY 学习笔记 之二 igmp proxy的处理流程分析

    上一节中我们分析了linux kernel中igmp proxy相关的数据结构与实现需求分析,本节我们分析kernel中对组播数据流和组播数据的处理流程. 对于目的ip地址为组播地址的数据,可以分为两 ...

  4. linux 查看igmp类型,Linux IGMP 学习笔记 之一 IGMP协议格式

    一.IGMP定义及分类 IGMP:INTERNET组管理协议,与广播最大的不同是,IGMP允许每一个网络设备决定是否参与到一个特定的多播群组中. IGMP的ip地址,组播ip地址的范围为224.0.0 ...

  5. linux内核关闭igmp,Linux kernel IGMP多个安全漏洞

    受影响系统: Linux kernel 2.6.9 Linux kernel 2.6.8 Linux kernel 2.6.7 Linux kernel 2.6.6 Linux kernel 2.6. ...

  6. 华为数通笔记-组播协议介绍之IGMP

    组播网络需要基于多种组播协议才能建立转发路径: 工作在成员端网络的主要是IGMP(Internet Group Management Protocol,因特网组管理协议)协议 用于告知组播网络,组成员 ...

  7. CCIE知识点总结——组播

    1.组播概述 (1)组播解决了网络中用户数量不确定的问题,一份信息,多个接收者,相同的组播数据流在每一条链路上最多仅有一份.示意图如下. (2)组播的优势与劣势 优势:减轻服务器和CPU负荷,减少了链 ...

  8. 组播简介(二层组播)

    1 承载网组播模型 2 二层组播技术 2.1 组管理协议 Internet 组管理协议称为IGMP协议(Internet Group Management Protocol),是因特网协议家族中的一个 ...

  9. 单播、广播、组播详解

    组播协议允许将一台主机发送的数据通过网络路由器和交换机复制到多个加入此组播的主机,是一种一对多的通讯方式. IP组播的好处.优势 组播协议与现在广泛使用的单播协议的不同之处在于,一个主机用单播协议向n ...

最新文章

  1. 控件的呈现方法(Rendering)的内核
  2. 试验OSPF域内IP地址冲突会造成的安全问题
  3. golang 截取字符串
  4. Spring IOC(控制反转)详解及示例
  5. 修改 cmd 控制台默认代码页编码的几种方法【GBK、UTF-8】
  6. 瑞士桁架机器人_机器人库晚报:人工智能可以在实验室中预测人的血糖水平
  7. 【ROS问题】rqt_plot运行报错
  8. Python和Java结合的项目实战_[项目实战] Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 [...
  9. 专业软件 —— 硬件评测
  10. leetcode 141 环形链表 C++
  11. java怎样写入五个人的成绩_用java输入5个学员姓名和分数,显示分数最高的学员姓名和分数?...
  12. Linux 编程和系统管理新手入门
  13. Android开机自动启动程序设置
  14. java向mysql插入数据乱码问题解决
  15. 服务器系统更新失败进不了系统,第五人格更新后进不去怎么办 更新连接服务器失败...
  16. 最新php在线扒站程序源码分享
  17. 量子计算机底层逻辑,高通AI研究院提出通过量子场论,可将深度神经网络映射到量子计算机...
  18. c语言一元多项式求和
  19. 升级wamp的php版本,Wamp升级PHP版本
  20. PDF怎么合并?分享几种非常简单的合并方法

热门文章

  1. ZLG 发布开源 GUI 引擎 AWTK
  2. 华润置地php面试题_华润置地有限公司面试攻略,面试题,面试技巧及流程(附笔试,评论,薪资)-金针菇企评网...
  3. 在jupyter安装jieba出错ModuleNotFoundError: No module named ‘jieba‘的解决办法
  4. nRF52832之硬件I2C
  5. 平时用电脑需要注意什么
  6. 熬夜加班赚钱?放弃吧,你的基因里有一个大写的穷。
  7. 攀登者张梁将出席深圳户外展宣传登山文化,讲述18年登山探险史
  8. 单片机如何发出类似和弦的声音
  9. 小米路由器开启外网访问SSH和WEB管理界面
  10. ios怎么引入masonry_IOS Masonry的基本使用