IP组播

2024-06-28

IP组播(共7篇)

IP组播 篇1

摘要:本文介绍了IP组播技术的基本概念、IP组播的产生、编码方式及应用。

关键词:IP组播,组播编址,转发算法

在IP网络早期, 传统的通信有单播和广播两种方式:第一种是在一台源IP主机和一台目的IP主机之间进行, 即单播 (unicast) ;第二种是在一台源IP主机和网络中所有其他的IP主机之间进行, 即广播 (broadcast) ;如果要将信息发送给网络中的多个主机而非所有主机则要么采用广播方式, 要么由源主机分别向网络中的多台目标主机以单播方式发送IP包。但使用单播方式会造成IP报文的重复发送, 造成带宽的大量浪费, 并加重服务器的负担;使用广播方式会将报文发送给不需要的主机, 造成带宽浪费的同时还可能引起广播风暴。组播技术的出现解决了以上问题。

组播技术最早产生于20世纪80年代中期, 由斯坦福大学进行了第一次实验, 并提出了IP组播的可能性。组播是将一群有共同需求的用户划分到一个群组内, 一个发送者或多个发送者将数据同时发送给一组 (多个) 接受者, 数据的分发仅限于组内, 数据源仅发送一次数据, 数据在传送过程中由组播路由器在最远的交叉路口将数据复制并传送给需要数据的主机, 组播方式下, 单一的信息流沿树型路径被同时发送给一组用户, 相同的组播数据流在每一条链路上最多仅有一份。相比单播来说, 使用组播方式传递信息, 用户的增加不会显著增加网络的负载, 减轻了服务器和CPU的负荷。组播报文可以跨网段传输, 不需要此报文的用户不能收到此报文。相比广播来说, 使用组播方式可以远距离传输信息, 且只将信息传输到有接收者的地方, 保障了信息的安全性。组播技术有效地解决了单点发送多点接收的问题, 实现了IP网络中点到多点的高效数据传送。

1 IP组播基本概念

1.1 组播组

组播组使用一个IP组播地址标识。任何用户主机 (或其它接收设备) , 加入一个组播组, 就成为了该组成员, 可以识别并接收以该IP组播地址为目的地址的IP报文。

1.2 组播源

以组播组地址为目的地址, 发送IP报文的信源称为组播源。一个组播源可以同时向多个组播组发送数据。多个组播源可以同时向一个组播组发送报文。

1.3 组播组成员

组播组中的成员是动态的, 网络中的用户主机可以在任何时刻加入和离开组播组。组成员可能广泛分布在网络中的任何地方。组播源通常不会同时是数据的接收者, 不属于组播组成员。

以收看某电视频道的节目为例, 组播组是发送者和接收者之间的一个约定, 如同电视频道。电视台是组播源, 它向某频道内发送数据。电视机是接收者主机, 观众打开电视机选择收看某频道的节目, 表示主机加入某组播组;然后电视机播放该频道电视节目, 表示主机接收到发送给这个组的数据。观众可以随时控制电视机的开关和频道间的切换, 表示主机动态的加入或退出某组播组。

1.4 组播分发树

根据组播组成员的分布情况, 组播路由协议为多目的端的数

2 IP组播组播编址

组播设备使用D类IP地址进行通信。这些地址属于从224.0.0.0到239.255.255.255的范围内。对于每个组播地址, 存在0台主机或多台主机集合侦听传输到这个地址的消息。这个设备集合就叫做一个主机组 (host group) 。把消息发送到一个特定的主机组的主机不必是这个主机组的成员, 这台主机甚至有可能不知道这个主机组中当前的成员。

2.1 单个物理网络上的组播技术

这个进程比较直接。发送进程规定一个目的IP组播地址, 设备IP驱动程序把这个IP地址转换为相应的以太网地址, 并把消息发送到目的进程。目的进程通知它的网络设备驱动器, 它希望接收发往一个给定的组播地址的数据报。设备驱动程序使那个地址可以接收消息。

2.2 网络段之间的组播技术

组播流量并非仅仅限于一个单独的物理网络。然而, 在网络间传输组播时存在内在的危险。如果环境中包含多个路由器, 则为了确保组播消息不会连续地在网络上循环必须十分地小心。组播路由循环很容易发生。为了解决这个问题, 开发了组播路由器由协议来发送消息, 并同时避免了路由循环和过量传输。

3 组播转发算法

3组播算法用于建立到达网络的路径。这些路径允许组播流量有效地到达所有组成员。每种算法应当只把数据路由到组成员, 必须优化从源到目的的路径, 算法必须维护没有循环的路由, 算法必须提供用于建立和维护组成员关系的可伸缩的信令 (signaling) 功能, 算法不应把流量集中到链路的一个子集上。

3.1 s ig反na向lin路g径转发算法

这个算法维护了一个用于到达每个源的反向路径表 (Reverse Path Table) 。这个表将每个已知的源网络映射到为到达源端而优选的接口。转发数据时, 如果数据报通过用于把数据报传回源端的接口到达, 则通过所有合适的下行接口转发数据报。否则, 数据报通过一个次优路径到达, 并且被丢弃。

3.2 基于中心的树算法

这个过程为每个组播组建立了一颗传送树。这颗树对于所有源端来说都是相同的。每个路由器为整个组维护一颗单独的树。这与RPF算法中使用的过程相对应。RPF算法为一个组播组中的每个发送方建立一颗树。

4 市场前景

IP组播基本概念当前已经有大量通信设备制造商的设备支持组播路由协议。IP组播技术有效地解决了单点发送多点接收、多点发送多点接收的问题, 实现了IP网络中点到多点的高效数据传送。能够有效地节约网络带宽、降低网络负载。IP组播技术在实时数据传送、网络电视、多媒体会议、数据复制、游戏和仿真等诸多方面都得到了广泛的应用。

参考文献

[1]华为3COM技术有限公司.华为3COM网络学院教材 (第四学期) .

IP组播密钥管理技术研究 篇2

IP组播是一种一次传输发送IP数据报文给多个接收者的数据传输方式[1]。发送者只需发送一份数据包,由路由器复制并分发给组播群组中的多个接收者。IP组播可以降低网络传输开销,节省主干网带宽资源。但是IP组播在设计之初并没有在组播成员认证、访问控制等方面多做考虑。以此为出发点,本文提出一种基于门限技术、并利用椭圆曲线密码体制实现用户认证系统及组播密钥管理的实用性方法。

1 Shamir门限密钥共享方案

Shamir在1979年提出了一种基于Lagrange插值公式的(t,n)门限密钥共享方案[2]。该方案通过构造一个t-1次拉格朗日多项式,将共享密钥K作为多项式的常数项。其中,共享密钥K由n个共享者共享,任何不少于t个共享者合作就可以恢复共享密钥。Shamir门限密钥共享方案具体算法流程如下:

(1)初始化

密钥管理者A首先选择n个不同的非零元素xi,1≤i≤n。A将xi分配给对应的密钥共享者Pi,这里xi是公开的。

(2)子密钥分发

密钥管理者A随机选取t-1个元素a1,a2,…,at-1,构造一个t-1次的多项式f(x)=K+a1x+a2x2+…+at-1xt-1,再计算yi=f(xi),1≤i≤n。并通过秘密信道将yi分发给共享者Pi,而(xi,yi)作为一个子密钥由Pi保存。

(3)密钥恢复

为了恢复密钥,需要至少t个共享者合作才能完成。个共享者首先出示各自持有的子密钥:(x1,y1),(x2,y2)…,(xt,yt),利用Lagrange插值法,可以求出f(x),而密钥则为K=f(0)。

2 椭圆曲线密码体制

椭圆曲线密码体制(ECC)是由Miller和Koblitz分别独立提出的[3],主要原理是有限域上的椭圆曲线离散对数问题的难解性。ECC没有亚指数攻击[4],其密钥长度较小。256位的ECC密码体制可以认为是目前已知的公钥密码体制中每位提供加密强度最高的一种密码体制。

椭圆曲线指的是由Weierstrass方程y 2+a1xy+a3y=x3+a2x2+a4x+a6所确定的平面曲线[5]。其中,满足方程的数偶(x,y)称为F域上的椭圆曲线E的点。F域可以是有理数域,复数域或有限域。椭圆曲线的一般形式可表示为Y3=X3+a X+b,其判别式Δ=4 a 3+27 b 2≠0。椭圆曲线上的运算包括点加、点乘、多点乘等运算。

3 拉格朗日插值法

门限密钥的重构需要使用拉格朗日插值法[6],具体实现为:假设x1,x2,…,xn为n个组播参与者,为了恢复密钥,需要在n个组播者中的至少t个参与者,不妨设为x1,x2,…,xt。这t个参与者持有的密钥片分别为邀(x1,y1),(x2,y2),…,(xn,yn)妖,其中,xi(1≤i≤t)互不相同。这t个点可以看做是二维平面上的t个点,那么这个平面上有且仅有一个t-1次多项式f(x)通过这t个点,使得yi=f(xi)(1≤i≤t)。根据这t个点可以求出这个多项式的所有系数,如果把需要共享的密钥SEK取做f(0),那么可以通过t个点重构得到SEK,SEK=f(0)=Σti=1yi∏1≤j≤t,j≠i(-xj/(xi-xj))。

4 IP组播密钥管理体系

为了实现IP组播上的用户认证与管理,本文实现了一个IP组播安全服务体系,该系统由五种成员角色组成:IP组播数据服务器IMDS(IP Multicast Data Server)、IP组播参与者IMU(IP Multicast User)、IP组播超级用户IMSU(IP Multicast Super User)、密钥分发代理SDP(Secret Distribute Proxy)、心跳服务器HBS(Heart Beat Server)。

4.1 IP组播系统结构

组播系统结构为三层树形结构,组播过程中的通信密钥为SEK,并假设SEK的传输信道为安全信道。系统结构如图1所示。

IMDS是IP组播系统的数据源,IMDS发送的组播数据是经过当前有效SEK加密的,SEK是使用椭圆曲线生成的,加密运算为流加密。SDP按照HBS的心跳信息定期更新SEK,SEK更新后会立刻分发给IMDS。

SDP是一种计算机上运行的服务,主要负责用户和密钥的管理。IP组播顶层的SDP对系统的所有用户进行身份认证与管理,并负责从各个群组中选取合适的用户成为超级用户IMSU。SDP同时负责根据HBS的心跳信息生成与更新组播服务通信密钥SEK,并将SEK分发到IMDS。通过与下层SDP进行SEK共享,隐藏计算生成SEK密钥片,并将生成的密钥片分发到下层SDP中。针对所有SDP设立公告板,公开SEK共享的相关信息,维护所有IMSU的信息数据库。IP组播树第二层SDP,即IMSU上的SDP,主要负责接收顶层SDP分发的SEK,并维护组内IMU的成员信息。

IP组播树第二层SDP在顶层SDP的管理下使用Shamir门限技术共享通信密钥SEK,每一个二层SDP负责一个组播群组的通信密钥的分发,通过将有效管理组密钥,并将其转发给该组播群组成员,使组成员拥有当前有效的通信密钥SEK的密钥片,组成员可以使用门限技术恢复SEK。

IMSU也是普通的用户,用户的行为是不可预知的,IM-SU有可能会出现退出或掉线等情况。如果IMSU失效,IMSU上的SDP管理的子群的所有IMU无法获得SEK密钥片,即IMU无法获得IMDS传来的数据。为防止出现这种情况,本文设计了一个后备IMSU队列。一旦IMSU失效,就从IMSU队列中选择一个继续工作。

4.2 组播密钥的管理

组播密钥管理体系是在IP组播系统结构基础之上实现的,针对参与IP组播角色上的不同,管理结构上共分为两个层次:顶层SDP和二层SDP(S-S)、二层SDP和IMU(S-I)。其中,顶层SDP与二层SDP之间采用历史门限方案与椭圆曲线相结合的方式实现,二层SDP与IMU之间采用IMU合作形式下的门限与椭圆曲线相结合的方式实现。

4.2.1 S-S密钥初始化

S-S密钥管理方案由顶层SDP与二层SDP参与完成。S-S密钥初始化使用历史门限方案,首先由顶层SDP生成一个大素数p,取有限域Zp上椭圆曲线y2=x3+ax+b,是由一个称为无穷远点的特殊点O满足同余方程y2≡x3+ax+b mod p的点(x,y)∈Zp×Zp组成集合E,a,b∈Zp,4a2+27 b2≠0。E是定义在有限域Zp上的安全椭圆曲线,e∈E是椭圆曲线上的一个点,{e,2e,…,qe}⊆E是由点e生成的q阶循环子群。这里(p,E,e)是公开的。

4.2.2 S-S密钥分发

顶层SDP生成一个通信密钥SEK,然后将SEK分发给n个二层SDP,设每个代理为Pi(i=1,2,…,n)。密钥分发算法描述如下:

(1)首先,顶层SDP选取一个有限域Zp上的t-1次方程fi(x)=a0+a1x+a2x2+…+at-1xt-1mod p,其中a0=f(0)=SEK,最高项系数at-1≠0。

(2)顶层SDP选取t-1个互不相同的数xj∈邀1,2,…,n妖(j=1,2,…,t-1),然后顶层SDP计算Kj=fi(xj)(j=1,2,…,t-1),同时计算aie(i=0,1,…,t-1)。再后顶层SDP将生成的密钥片集合邀(x1,K1),(x2,K2),…,(xt-1,Kt-1)妖和邀a0e,a1e,…,at-1e妖通过安全信道发送给二层SDP,二层SDP接收顶层SDP生成的密钥片,即将邀(x1,K1),(x2,K2),…,(xt-1,Kt-1)妖作为历史密钥保存。

(3)顶层SDP将邀a0,a1,…,at-1妖保存并选取一个数xt≠xj,t∈邀1,2,…,n妖,j∈邀1,2,…,t-1妖作为二层SDP的子密钥。顶层SDP计算Kt=fi(xt),然后通过安全信道将(xt,Kt)发送给二层SDP。

4.2.3 S-S密钥恢复

二层SDP收到顶层SDP发送的密钥片后,首先验证密钥片是否合法。如果密钥片不合法,则要求顶层SDP重新发送密钥片。密钥恢复过程如下:

(1)对于每个Kj(j=1,2,…,t)验证是否成立,这里设置一个抱怨行为机制,即对于每个二层SDP,如果其验证失效,顶层SDP则将其抱怨次数加一。如果在短时间内,某个二层SDP抱怨次数达到一定的数量L,则认为这个二层SDP具有攻击行为或其节点不能正常工作[7]。这时要取消这个二层SDP对应的IMSU的资格,重新从IMSU队列中选取一个节点作为组内的IMSU。当检测所有Kj均合法,还要将其一并代入椭圆曲线验证。

(2)利用拉格朗日插值法恢复密钥SEK=fi(0)Σt i=1Ki∏1≤j≤t,j≠i(-xj/(xi-xj))。

4.2.4 S-S密钥更新

二层SDP本质上也是普通的IP组播成员节点,节点的行为是不可预知的,一旦IMSU退出IP组播或节点失效,为了保证密钥体系的安全性,密钥需要定期更新。顶层SDP根据心跳信息或者IMSU失效信息重新生成密钥,并分发密钥片。密钥更新过程如下:

(1)顶层SDP为二层SDP重新选取一组随机数xt∈Zp并且xt∉{1,2,…,t-1},Kt∈Zp,xt≠xj(j=1,2,…,t-1),这里Kt≠fi(xt)。

(2)顶层SDP将(xt,Kt)通过安全信道发送给二层SDP。

(3)顶层SDP计算xte与Kte,并将计算结果通过安全信道发送给二层SDP。

4.2.5 S-I密钥初始化

为了保证组内的密钥传输效率,当组成员在线个数小于预设值x时,采用直接发送密钥的形式;当组成员个数大于x时,采用门限技术分发密钥。直接发送形式毋需赘言。采用门限技术的密钥分发首先需要二层SDP构造有限域Zp上的t-1次方程f(x)=a0+a1x+…+at-1xt-1mod p,其中a0=f(0)=SEK,且at-1≠0。t是(t,n)门限,n为子组成员数。

4.2.6 S-I密钥分发

二层SDP首先选取n个互不相同的数xi∈邀1,2,…,n妖(i=1,2,…,n),接下来计算yi=f(x)(i=1,2,…,n)。然后将(xi,yi)通过安全信道发送给组内的IMU。二层SDP计算aie(i=0,1,…,t-1),并将计算得到的邀a0e,a1e,…,at-1e妖广播给组内的所有在线成员。

4.2.7 S-I密钥恢复

S-I密钥恢复采用组内成员合作的方式,密钥恢复过程如下:

(1)首先将组内的成员编号,根据编号给自身编号后面紧邻的t个组员发送密钥片。若第i个组员参与密钥恢复,则给第i+1,i+2,…,i+t(mod n)个组员发送密钥片。

(2)每个在线组员得到足够多的密钥片后,验证是否成立,并验证是否在椭圆曲线E上。

(3)利用拉格朗日插值公式恢复密钥

4.2.8 S-I密钥更新

S-I的密钥更新是与S-S的密钥更新同步实现的,这种同步保证了系统的整体性与安全性。S-I密钥更新需要重选多项式函数,并将生成的密钥广播给组内的IMU。

4.2.9 两层管理结构的优点

采用两层结构可以减少顶层SDP的工作压力,将组播密钥的分发与用户管理等工作分散到各个二层SDP来完成。IP组播过程中,IMU可能频繁加入或退出。通过子群的通信密钥来处理这种变化,而只有当IMSU失效时才更新密钥,尽量保证了组播密钥管理系统的稳定性。

5 实验及结果分析

针对本文的安全架构,在linux环境下实现了一个简单的IP组播服务系统以验证门限技术和椭圆曲线密码在IP组播密钥管理方面的可行性。在该服务系统上实现了一个简单的安全管理系统,并设计不同数量的IMSU(或二层SDP)、S-S门限值及不同长度的SEK,综合得到测试结果如表1所示。

由表1的测试结果可知,在密钥分发和恢复过程中,主要的时间消耗是在密钥生成上,而密钥恢复的时间相比密钥片的生成时间少之又少。密钥片的生成时间受密钥长度影响较大,受门限值的影响很小。本文的密钥管理方案分为S-S和S-I两层树形结构,假设该树为完全m叉树,共包括m2+m个节点,且需要m个IMSU节点上的SDP存储共2m个密钥片,而余下的m2个叶节点,每一个只需要存储1个密钥片。所以共需要m2+2m个密钥片,而单个IMU的加入或退出对于子组密钥更新的影响为m,IMSU的改变对于组密钥更新的影响则为m 2+m。

6 结束语

本文使用门限技术和椭圆曲线加密算法,为开放的、安全性较差的IP组播应用实现了用户认证与密钥管理。通过使用S-S和S-I双层密钥管理方法,根据系统角色的不同区别对待以实现灵活而又统一的密钥体系。并通过构建一个基于门限和椭圆曲线安全IP组播系统验证该方案在IP组播中的可行性,实验结果表明:该方案实现效率较高,可扩展性强,是可以被应用在当前的各种实时IP组播应用之上的。而在IPv6上实现安全组播则是今后的研究方向。

摘要:为了在IP组播中实现用户身份认证等安全管理,避免IP组播中的不安全因素,提出了一种运用门限技术和椭圆曲线密钥体制相结合的方案,构建一个IP组播服务系统并在其上分层实现了组播密钥的分发与恢复。最后通过实验测试给出了此方案的管理代价,证明了此方案可以很好地实现IP组播应用中的密钥管理,有效地解决了用户身份认证和授权管理问题,实现了安全IP组播。

关键词:门限,椭圆曲线密码,密钥分发,IP组播

参考文献

[1]QUINN B,ALMEROTH K.RFC3170:IP multicast applicatio-ns:challenges and solutions[S].IETF,2001,9:1-2.

[2]SHAMIR A.How to Share a Secret[J].Communications of the ACM,1979,22(11):612-613.

[3]陈厚友,马传贵.椭圆曲线密码中一种多标量乘算法[J].软件学报,2011,22(4):782-783.

[4]陈逢林,胡万宝,孙广人.基于超椭圆曲线的顺序多重盲签名[J].计算机工程,2011,37(9):160-161.

[5]许德武,陈伟.基于椭圆曲线的数字签名和加密算法[J].计算机工程,2011,37(4):168-169.

[6]PANG Liaojun,SUN Xi,WANG Yumin.An efficient and sec-ure(t,n)threshold secret sharing scheme[J].Journal of Electr-onics,2006,23(5):731-733.

IP组播技术及相关路由协议 篇3

1 IP组播技术概述

1.1 IP组播技术的概念

IP组播(也称多址广播或多播)技术,是一种允许一台或多台主机(组播源)发送单一数据包到多台主机(一次的,同时的)的TCP/IP网络技术。组播是一种数据包传输方式,当有多台主机同时成为一个数据包的接受者时,出于对带宽和CPU负担的考虑,组播成为了一种最佳选择。在网络音频/视频广播的应用中,当需要将一个节点的信号传送到多个节点时,无论是采用重复点对点通信方式,还是采用广播方式,都会严重浪费网络带宽,只有组播才是最好的选择。组播能使一个或多个组播源只把数据包发送给特定的组播组,而只有加入该组播组的主机才能接收到数据包。

1.2 IP组播地址和组播组

IP组播通信必须依赖于IP组播地址,在IPv4中它是一个D类IP地址,范围从224.0.0.0到239.255.255.255,并被划分为本地组播地址、全局组播地址和管理组播地址三类。其中,本地组播地址范围在224.0.0.0~224.0.0.255,这是为路由协议和其它用途保留的地址,路由器并不转发属于此范围的IP包;全局组播地址为224.0.1.0~238.255.255.255,可用于全球范围(如Internet)或网络协议;管理组播地址为239.0.0.0~239.255.255.255,可供组织内部使用,类似于私有IP地址,不能用于公网,可限制组播范围。

使用同一个IP组播地址接收组播数据包的所有主机构成了一个主机组,也称为组播组。一个组播组的成员是随时变动的,一台主机可以随时加入或离开组播组,组播组成员的数目和所在的地理位置也不受限制,一台主机也可以属于几个组播组。此外,不属于某一个组播组的主机也可以向该组播组发送数据包。

2 组成员关系协议IGMP

IGMP协议运行于主机和与主机直接相连的组播路由器之间,IGMP实现的功能是双向的:一方面,通过IGMP协议,主机通知本地路由器希望加入并接收某个特定组播组的信息;另一方面,路由器通过IGMP协议周期性地查询局域网内某个已知组的成员是否处于活动状态(即该网段是否仍有属于某个组播组的成员),实现所连网络组成员关系的收集与维护。通过IGMP,在路由器中记录的信息是某个组播组是否在本地有组成员,而不是组播组与主机之间的对应关系。

到目前为止,IGMP有三个版本。IGMPv1(RFC1112)中定义了基本的组成员查询和报告过程;目前通用的是IGMPv2,由RFC2236定义,在IGMPv1的基础上添加了组成员快速离开的机制;IGMPv3中增加的主要功能是成员可以指定接收或指定不接收某些组播源的报文。以下着重介绍IGMPv2协议的原理。

当同一个网段内有多个组播路由器时,IGMPv2通过查询器选举机制从中选举出唯一的查询器。查询器周期性地发送通用组查询消息进行成员关系查询;主机发送报告消息来响应查询。主机发送报告消息的时间有随机性,当检测到同一网段内有其它成员发送同样的消息时,则抑制自己的响应报文。如果有新的主机要加入组播组,不必等待查询器的查询消息,而是主动发送报告消息。当要离开组播组时,主机发送离开组消息;收到离开组消息后,查询器发送特定组查询消息来确定是否所有组成员都已离开。对于作为组成员的路由器而言,其行为和普通的主机一样,响应其它路由器的查询。通过上述机制,在组播路由器里建立起一张表,其中记录了路由器的各个接口所对应的子网上都有哪些组的成员。当路由器接收到某个组G的数据报文后,只向那些有G的成员的接口上转发数据报文。至于数据报文在路由器之间如何转发则由路由协议决定,不是IGMP协议的功能。

3 组播路由协议

3.1 组播路由的分类

组播路由可以分为两类:源分发树(Source Tree)和共享分发树(Shared Tree)。源分发树是指以组播源作为树根,将组播源到每一个接收者的最短路径结合起来构成的转发树。由于信源树使用的是从组播源到接收者的最短路径,因此也称为最短路径树(Shortest Path Tree,SPT)。对于某个组,网络要为任何一个向该组发送报文的组播源建立一棵树。共享分发树以某个路由器作为路由树的树根,该路由器称为汇集点(RP),将RP到所有接收者的最短路结合起来构成转发树。使用共享分发树时,对应某个组,网络中只有一棵树。所有的组播源和接收者都使用这棵树来收发报文,组播源先向树根发送数据报文,之后报文又向下转发到达所有的接收者。

源分发树的优点是能构造组播源和接收者之间的最短路径,使端到端的延迟达到最小;但是付出的代价是,在路由器中必须为每个组播源保存路由信息,这样会占用大量的系统资源,路由表的规模也比较大。共享分发树的最大优点是路由器中保留的状态数可以很少,缺点是组播源发出的报文要先经过RP,再到达接收者,经由的路径通常并非最短,而且对RP的可靠性和处理能力要求很高。

3.2 组播路由协议

与单播路由一样,组播路由也分为域内和域间两大类。域内组播路由目前已经发展的相当成熟,域间组播目前仍然处于研究和试验阶段。在众多的域内路由协议中,PIM-DM(密集模式协议无关组播)和PIM-SM(稀疏模式协议无关组播)目前应用最多的协议。

3.2.1 PIM-DM(密集模式协议无关组播)

PIM-DM协议使用了反向路径组播机制来构建分布树。PIM不依赖于网络中的单播路由协议和所有的密集模式路由协议一样也是数据驱动的。在PIM-DM域中,运行PIM-DM协议的路由器周期性的发送Hello消息,发现邻接的PIM路由器,进行叶子网络、叶子路由器的判断,并且负责在多路访问网络中选举指定路由器(DR)。

PIM-DM协议使用下面的假设:当组播源开始发送组播数据时,域内所有的网络节点都需要接收数据,因此采用"扩散/剪枝"的方式进行组播数据包的转发。组播源开始发送数据时,沿途路由器向除组播源对应的RPF接口之外的所有接口转发组播数据包。这样,PIM-DM域中所有网络节点都会收到这些组播数据包。为了完成组播转发,沿途的路由器需要为组G和源S创建相应的组播路由项(S,G)。(S,G)路由项包括组播源地址、组播组地址、入接口、出接口列表、定时器和标志等。

3.2.2 PIM-SM(稀疏模式协议无关组播)

在PIM-SM域中,运行PIM-SM协议的路由器周期性的发送Hello消息,用以发现邻接的PIM路由器,并且负责在多路访问网络中进行DR的选举。这里,DR负责为与其直连的组成员向组播树根节点的方向发送“加入/剪枝”消息,或是将直连组播源的数据发向组播分发树。

PIM-SM通过建立组播分发树来进行组播数据包的转发。组播分发树分为两种:以组G的RP为根的共享树和以组播源为根的最短路径树。PIM-SM通过显式的加入/剪枝机制来完成组播分发树的建立与维护。

PIM-SM中还涉及到RP的选择机制。在PIM-SM域内配置了一个或多个候选自举路由器。使用一定的规则从中选出自举路由器。PIM-SM域中还配置有候选RP路由器,这些候选RP将包含了它们地址及可以服务的组播组等信息的报文单播发送给自举路由器,再由BSR定期生成包括一系列候选RP以及相应的组地址的“自举”消息。“自举”消息在整个域中逐跳发送。路由器接收并保存这些“自举”消息。若DR从直连主机收到了IGMP加入报文后,如果它没有这个组的路由项,将使用hash算法将组地址映射到一个候选RP。然后朝RP方向逐跳组播“加入/剪枝”消息。若DR从直连主机收到组播数据包,如果它没有这个组的路由项,也将使用hash算法将组地址映射到一个候选RP,然后将组播数据封装在注册消息中单播发送到RP。

结束语

IP组播 篇4

近年来, 随着通信技术的不断发展, I P网络业务在卫星通信领域应用越来越广泛。在I P网络业务中, 很多是高带宽的应用, 这就需要采用IP Mu lt ica st (组播、多播或多路广播技术) 技术来解决带宽的急剧消耗和网络拥挤的问题。在我国已经建成或正在建设的卫星通信网中, IP业务都是采用点对点的单播或全网广播。随着卫星通信网和地面I P网络的融合、接入, 组播方式的作用日益突出, 已成为卫星通信正在研究的重要内容之一。本文对IP组播作了综合的介绍, 结合笔者的研究, 详细描述了卫星通信中IP组播的多种实现方式。

2 基于卫星通信系统的IP组播模型

卫星通信和传统的地面IP有线网络通信相比较, 具有很多优点。卫星通信中可以应用单播、广播、组播传输IP网络信息。使用单播 (Unicast) 传输时, 在发送者和接收者之间需要单独的一对全双工卫星通信信道。如果有大量主机同时希望获得数据包的同一份拷贝时, 则需要使用多路全双工的卫星通信信道来完成, 这就需要增加硬件和带宽等珍贵的资源。使用广播 (Broadcast) 传输时, 只能在I P子网内广播数据包, 所有在子网内部的主机都将收到这些数据包。广播意味着网络向子网主机都投递一份数据包, 不论这些主机是否乐于接收该数据包。广播的使用范围非常小, 只在本地子网内有效, 因为路由器会封锁广播通信, 也就是广播不能跨越不同的网段传输, 现实中不跨越网段的传输模式应用很少。

在目前流行的单向信息流量较大 (业务信息) 而反方向信息流量小 (主要是路由协议和管理信息) 的多种IP组播业务中, 单播和广播存在的缺陷根本不能实现这些需求, 而组播则可以满足需求。卫星通信信道为全双工的通道, 对于信息量大的方向, 可以使用高带宽、高速率的资源, 而信息量小的方向使用低带宽、低速率的资源。

卫星通信中典型的IP组播传输模型如图1所示。关键设备宽带调制解调器实现信息的调制和解调功能;IP加速器对空间传输链路上的IP报文进行加速, 提高了网络吞吐量;保密机实现IP报文的加密和解密;路由器实现不同网络在IP网络层的互联互通。由于宽带信道、IP加速器、IP加密机都工作在TCP/I P协议族的物理层或数据链路层, 在IP业务传输过程中只做比特流的透明传输或者简单的差错控制, 不具备IP报文的具体寻路工作, 因此, 可以将图1的模型简化为图2的模型。

在卫星组播发送站和接收站中接入不同的IP组播业务终端, 通过路由器生成的多播路由表来寻路, 实现多种业务的组播传输。各卫星地球站使用支持组播功能的路由器 (以Cisco 2801系列为例) 作为接入点。

3 卫星通信中IP组播的规划

根据图1进行通信资源的规划, 建立好卫星通信传输链路。根据图2进行IP地址的规划。研究工作以音视频业务组播为例 (其他组播业务与之雷同) , 其传输方案为:音视频信号通过IP编码器接入卫星组播发送站, 以IP组播报文的形式途径卫星通信链路传输, 卫星组播接收站1和2同步接收组播报文, 经过IP解码器还原出音频信号。

3.1 通信资源规划

配置卫星组播发送站的卫星通道1和2的宽带调制解调器发送带宽2Mb/s, 接收带宽8kb/s;配置卫星组播接收站1和2的卫星通道的宽带调制解调器发送带宽8kb/s, 接收带宽2Mb/s。建立卫星发送站的卫星通道1和卫星接收站1卫星通道的通信传输链路;建立卫星发送站的卫星通道2和卫星接收站2卫星通道的通信传输链路。

3.2 IP地址的规划

(1) 卫星发送站。路由器A网络互联口F0/0I P地址为19 2.16 8.1.1/2 4, 本地互联口FA0/1的I P地址为192.168.11.1/24。音视频编码器IP地址为192.168.11.2/24, 默认网关为路由器A的FA0/1口I P地址。

(2) 卫星接收站1。路由器B网络互联口F0/0I P地址为19 2.16 8.1.2/2 4, 本地互联口FA0/1的I P地址为192.168.21.1/24。音视频编码器IP地址为192.168.21.2/24, 默认网关为路由器B的FA0/1口I P地址。

(3) 卫星接收站2。路由器C网络互联口F0/0I P地址为19 2.16 8.1.3/2 4, 本地互联口FA0/1的I P地址为192.168.31.1/24。音视频编码器IP地址为192.168.31.2/24, 默认网关为路由器C的FA0/1口I P地址。

(4) 组播套接字。组播需要用组播套接字进行通信传输, 组播套接字是组地址和端口号的组合序列, 规划卫星地球站之间使用组播地址224.10.10.10, 端口号2009进行IP组播传输 (可以使用任意的合法组播地址和端口号) , 在卫星发送站或接收站各音视频编码/解码器中配置组播套接字。

4 卫星通信中IP组播的实现

卫星通信中IP组播可以通过多种方式来实现, 笔者根据实际的研究结果详细介绍3种模式, 包括动态路由协议 (R IP, OSPF, BGP) +PIM协议模式、RP (静态、动态) 模式和混合模式。

4.1 动态路由协议+PIM协议模式

动态路由协议是指运行同一种路由协议的路由器之间动态相互交互信息, 形成路由表的过程, 包括内部路由协议 (典型的有RIP, OSPF) 和外部路由协议 (典型的有BGP) 。PIM使用PIM-SDM (SDM是SM和DM两种方式的结合体) , 任何一种动态路由协议配合PIM协议可以实现组播。

4.1.1 RIP+PIM模式

路由器配置R I P动态路由协议, 组播发送端配置互联网段和业务终端网段, 组播接收端配置互联网段, 而业务终端网段可选配 (可配置也可不配置) , 本实现方式全部配置, 路由器各接口配置PIM模式。

4.1.2 OSPF+PIM模式

路由器配置OSPF动态路由协议。组播发送端配置互联网段和业务终端网段;组播接收端配置互联网段, 而业务终端网段可选配。本实现方式全部配置。将互联网段划分到域序号0中, IP终端网段分别划分到域序号1, 2, 3中, 路由器各接口配置PIM模式。

4.1.3 BGP+PIM模式

路由器配置BGP动态路由。组播发送端互联网段的邻居需要配置, 同时配置业务终端网段;组播接收端配置互联网段的邻居, 而业务终端网段可选配。本实现方式全部配置。将路由器A, B, C分别划分到域100, 200, 300中, 路由器各接口配置PIM模式。

4.2 RP模式

所有的组播业务信息先发送到带RP功能的路由器, 然后再根据策略发送到相应的路由器。RP模式包括手工配置的静态选定RP和自动选择的动态发现RP。动态发现RP有包括Auto-RP和PIM V2BSR两种方式。

4.2.1 静态选定RP。

静态RP需要在所有的路由器上进行配置。所有的路由器配置的RP必须是一致的, 是同一台路由器。通常将组播发送方路由器配置为静态RP。

4.2.2 动态发现RP

相对于静态选定RP模式, 动态发现RP模式配置更加简便。只需要在组播发送方路由器上全局配置, 组接收路由器不需要作任何的全局配置, 双方通过信息传递发现RP。动态发现RP又分为Auto R P和PIM V2 BSR两种方式。

(1) Auto-RP方式。Auto-RP是Cisco的私有解决方案。需要配置候选RP (C-RP, candidate-rp) 和动态影射代理MA (Mapping Agents) 。C-RP会利用管理组地址发送一个自己是RP的通告, MA监听判决, 然后向所有的路由器发送RP的地址。

(2) PIM V2 BSR。PIM V2 BSR是PIM自带的一种RP选举机制。在域内BSR选定后, 向所有设备发送自己是BSR的通告, RP向BSR发送注册信息, BSR将此信息发送给所有的路由器, 所有路由器都使用这些信息, 根据自己的算法计算出谁是R P。

4.2.3 混合模式

对于以上两种应用模式, 使用的都是域内PIM组播路由协议。而在域间则是使用组播源发现协议 (MSDP) 。MSDP通过各PIM域的RP之间建立MSDP对等关系, 使它们能在域间转发信源有效信息。共享组播信息源。此时既需要在本域内路由器各个网络接口配置PIM协议, 又需要在域之间配置MSDP协议。

将路由器A, B, C分别划分到域100, 200, 300中。首先配置BGP路由协议。

通过不同的配置方法, 上面所描述的三种模式都可以在卫星通信中实现IP组播传输。在三种模式中, 采用动态路由协议和PIM协议实现IP组播的模式应用最为广泛。因为在卫星通信中, 需要配置动态路由协议来实现不同物理网络IP单播业务的传输。因此只需要增加相应的PIM配置就可以实现IP组播业务的传输。而且组播业务和单播业务不会互相影响, 它们可以同时进行传输。

4.2.4 后序

在完成上述的研究后, 笔者还进行了下列研究:

⊙多个音视频组播同时发送和接收。

⊙多个网络数据组播同时发送和接收。

⊙单个音视频组播和单个网络数据组播同时混合发送和接收。

⊙多个音视频组播和多个网络数据组播同时混合发送和接收。

这些研究都取得了成功, 对今后组播业务在卫星通信领域中的应用具有相当大的参考价值。

5 结束语

本文提出了基于卫星通信的IP组播模型, 并给出了该模型下实现组播的条件、组播的地址分配、Internet组管理协议、组播转发、组播路由协议, 该模型在卫星通信系统下能较好地实现IP业务的互联互通。随着卫星通信网与地面有线IP网络的逐渐融合, 本文所提的IP组播模型将在卫星通信领域中的应用得越来越广泛, 具有较强的应用性和推广型。

参考文献

[1]魏大新, 李育龙.Cisco网络技术教程.北京:机械工业出版社, 2007

[2]黄传河.网络规划设计师教程.北京:清华大学出版社, 2009

[3]Jeff Doyle, Jennifer Carrol.Routing TCP/IP.北京:人民邮电出版社, 2008

[4]Randy Zhang, Micah Bartell.BGP Design and Implementation.北京:人民邮电出版社, 2008

IP组播 篇5

组播是一种一对多或多对多的通信方式, 也就是将相同的信息从一个或多个发送者传递给多个接收者。如果网络中有大量的接收者, 需要传送大量的流媒体信息, 采用组播传递方式具有非常明显的优势。组播一开始应用的环境是固定的有线网络, 然而, 在无线网络中为移动节点提供组播服务, 如何在节点切换到新的网络维持其组成员关系和组播传递树, 具有很大的困难。我们不仅要处理动态的组成员关系, 还要保证原本“最优的”组播传递树在组成员切换后的有效性[1]。而且, 如果组播源在网络间漫游, 其地址将会发生改变, 整个组播传递树都要重构, 从而导致大量的路由和处理开销, 以及组播会话的中断[2]。

业界普遍的观点是将移动IP与IP组播相结合, 为移动中的节点提供组播服务。但是组播源的移动又引发了新的问题, 由于种种挑战使得这类问题的解决方案目前还很少。本文中我们陈述了在移动IP的网络环境下, 对现有主要的源特定的组播机制进行了系统的概述, 重点讨论了每种方法的优点和缺点, 目的是为移动环境下源特定的组播这一特定研究领域提供较为深入的剖析。

1 源特定的组播服务模型

ASM (任意源组播) 模型是传统的IP组播服务模型, IP报文传送给由单个IP目的地址标识的节点组。这种模型支持一对多或多对多的通信方式。节点可以随时加入或离开组播组, 组播成员的位置和数量没有任何限制, 任何节点 (即使不是组中成员) 都可以向组播组发送组播数据。组播成员关系协议 (如IPv4中的IGMP2, IPv6中的MLD1) 允许接收者指定它所希望加入的组播组IP地址, 但不必指定组播源, 如图1中 (a) 所示。

SSM模型[4]支持一对多的通信方式。当源S向目的地址G发送组播数据时, 接收者需要订阅通道 (S, G) 之后才能接收到数据, 如图1中 (b) 所示。通道由组播源地址和组播组IP地址来标识, 因此一个通道刚好指定了一个发送者和任意数目的接收者。接收者在发出订阅请求前必须获取通道地址的信息, 组播成员关系协议必须采用IGMP3 (用于IPv4) 或者MLD2 (用于IPv6) , 如图1中 (b) 所示。

基于SSM模型的协议是通过建立以特定的源为根的最短路径树来转发数据。节点在响应路由器的查询消息时不仅指定了感兴趣的组播组, 还指明了它希望从哪个源接收组播数据。路由器收到这种报告消息时, 需要直接向源发出订阅请求, 建立起基于源的最短路径树。这种服务模型缓解了部署ASM模型所遇到的困难[5]:

· SSM协议建立的是以源为根的传递树, 因此不需要共享树结构。也就是说避免了PIM-SM协议中的基于汇聚点的共享树结构, 也不要求MSDP协议, 因此从根本上降低了组播传递机制的复杂性, 便于部署。SSM模型还避免了单点故障, 消除了针对汇聚点的拒绝服务攻击。

· SSM是在源的基础上定义通道, 因此不同的源具有不同的通道地址。每个源负责为它创建的通道分配通道地址, 这就避免了全局范围内的地址冲突问题。

· 普遍认为, 一对多的应用如网络电视等在未来的组播应用中将占主导地位, 而SSM模型很适合于这类应用。因此, SSM协议的部署将会给域间IP组播提供巨大的推动力, 从而为多对多的组播服务铺平道路。

2 移动环境下提供组播服务所引发的问题

给移动节点提供组播服务又引出了很多问题。首先, 移动IP主要集中于给移动节点提供单播传递服务, 必须扩展它的功能来提供组播支持。其次, 节点的移动意味着原来的数据传递路径不再有效, 组播路由算法要解决如何将组播服务有效传递到节点所在的当前位置。第三, 许多组播协议 (如DVMRP, MOSPF, PIM) 所用到的算法在建立组播传递树时假定节点位置是固定的。组播成员的移动破坏了传递树的结构, 比如共享树的汇聚点在节点移动后将偏离中心, 引起非最优的传递路径。第四, 在组播源也是移动节点的情况下, 如果所建立的组播转发树是相对于源所在的特定位置, 当源处于外地链路时, 只能通过外地子网进行直接发送。当源所在的位置发生改变时, 将会导致逆向路径转发 (RPF) 检查出错。RPF检查的方式是比较报文的源地址和接收报文的接口。当切换发生时, 由于进入过滤问题组播源就不能使用家乡地址作为源地址发送组播报文, 导致RPF检查出错[2]。这时必须引入新的机制在源的位置发生改变时, 能够避免RPF检查的失效。另外, 无线链路带宽更低、出错率更高, 所有这些使得在移动环境中提供有效的IP组播支持是件很困难的事情。

3 移动环境下基于SSM模型的组播实现

SSM模型是新近出现的一种技术, 与ASM相比其所具有的优势使之引起了研究者的广泛关注。目前, IETF已经制订出一个相关的标准[4], 为以后深入的研究提供参考。不过, 由于SSM与移动IP都是相对较新的领域, 将两者结合, 使得SSM模型也能够应用于移动节点, 具有非常多的挑战。如今还没有任何相关的标准出现。但是, 人们在这方面已经做了一定的研究工作, 他们的努力将会推动基于SSM模型的移动组播标准化进程。

3.1 可能的实现机制

(1) 基于家乡代理的方法

双向隧道方法可以通过简单的扩展应用到SSM模型[6]中。组播源首先形成会话通告消息, 发送给网络中的路由器。家乡代理截取到通告消息后, 经所建立的双向隧道传递给漫游的移动节点。如果需要加入组播组, 移动节点的订阅请求消息先发送给家乡代理, 由家乡代理转发给组播源。最后形成了以源为根, 移动节点的家乡代理为叶子节点的SSM传递树。为了支持组播源的移动, 源必须用家乡地址和组播组地址 (HoA, G) 来宣告SSM会话和通道。接收者申请订阅地址为 (HoA, G) 的通道, 源所发送的组播数据的源地址设置为节点的家乡地址HoA, 目的地址设置为组播组地址G。源将组播数据封装后以隧道的方式发送给家乡代理, 然后在组播树上传递。因此, 当组播源是移动节点时, 所建立的是以源的家乡代理为根的SSM传递树。

优点 组播传递树不会受到节点移动的影响, 节点的位置对外界来说是隐蔽的, 这在某些应用中可能比较有用。协议简单, 容易实现。对组播源移动的支持非常好, 即使组播源移动, 通道地址也不会改变, 路由状态信息也不需要更新。

缺点 路由效率低下, 组播数据需要经由家乡代理通过隧道的方式转交给移动节点, 违背了IP组播的本质, 网络资源没有得到充分利用。当组播源是移动节点时, 源的家乡代理形成了单点故障, 家乡代理的失效将会破坏整个组播传递树。当多个组播源属于同一个家乡代理时, 将引起可扩展性问题。

(2) SSM源切换通告方法

文献[7]提出以移动节点所在的外地代理为根建立组播传递树的方法。如果组播源是移动节点, 通道地址由源的转交地址和组播组地址构成。因此, SSM传递树的根位于节点所在的当前网络上。为了维持会话的连续性, SSM会话还是由源的家乡地址和组播组地址来标识。节点发生切换时, 首先向原来的路由器 (oAR) 发送一个包含源切换通告的绑定更新消息, 消息中指明了节点新获取的转交地址。原来的路由器通过组播树将消息传递给组成员, 组成员收到消息后立即向新的通道地址发出订阅请求。组播数据还会经由原来的路由器在旧的组播树上传递, 直到旧的通道没有订阅者。最终, 以当前网络为根的组播传递树取代原来的传递树。

优点 该方法以节点所在的当前网络为根建立组播传递树, 因此提供了最优的数据传递路径。避免了对家乡代理的依赖, 该方法具有很好的可扩展性。同时, 提供了对组播源移动的支持。在源切换需要订阅新的通道时, 通过oAR在旧的组播树上传递数据可以迅速恢复中断的组播服务。

缺点 组播源的移动会引起整个组播传递树的重构, 势必将增加中断延迟的时间和数据的丢失。而且, 频繁的源移动会使得组成员无法及时完成订阅新的通道, 从而留下很多不完整的组播传递树, 这时源不得不多次拷贝发送数据给每个不完整的树, 严重浪费了带宽资源。

(3) 分层的基于SSM移动IP组播方法

文献[8]在SSM模型的基础上, 引入了层次结构来设计移动组播路由协议。将从源到接收者的组播传递分成两级:宏级组播和微级组播。宏级组播是从源到每个域的边界网关路由器 (BGR) , 微级组播是从边界网关路由器到节点所在的外地代理。节点首先发送SSM请求订阅通道 (S, G) , 外地代理收到订阅请求后向上传递, 直到传递给BGR。BGR将订阅请求转换为注册请求传递给组播源, 源在缓存表中保存请求订阅的通道地址和BGR地址, 并通过隧道的方式将组播数据发送给BGR, 接着BGR继续在SSM传递树上转发组播数据, 如图2所示。

优点 该方法将组播树的重构控制在微级, 当切点在域内切换时, 不仅降低了组播树的维护开销, 还使得组播服务中断延迟得以控制。该方法不仅提供了域间组播路由机制, 而且, 从源到接收者的组播数据传递路径一直都是最优的。

缺点 当节点在不同的域间切换时, 中断延迟可能会非常大。文中没有表述移动节点在切换时如何发现通道地址, 没有提供对组播源移动的支持。源既要保留注册信息, 也要保留订阅信息, 数据结构变得复杂。

(4) 树迁移方法

树迁移方法[9]建立的是以源所在代理为根的组播传递树, 在建树过程中引入了一种迁移机制:尽量重复使用和修改已存在的树分支。当源切换到新的网络时, 首先将树的根从原来的路由器 (pDR) 延伸到新的路由器 (nDR) , 然后经由pDR向组目的地址发送一个状态更新信息 (存放在逐跳选项头中) (如图3中蓝色箭头所示) 。消息所到之处, 路由器就会获悉组播源新的转交地址, 并使用RPF检查来发现潜在的最短路径。如果不同于原来的转发路径, 就向源注册以建立最短的转发路径;否则路由器只是将旧的状态信息修改为含有新的转交地址的状态信息 (如图3中红色箭头所示) 。直到消息所经过的所有路由器都建立了正确的转发状态, 就形成了一棵以源为根的最短路径树 (如图3中绿色箭头所示) 。

优点 树迁移方法不需要对数据进行封装和解封, 不依赖特定的组播路由算法, 建立的是最短路径转发树, 在建树的过程中利用了原来的状态信息。通过记录 (CoA, G, HoA) 三元信息, 路由器很容易识别数据是否来自同一个发送者。

缺点 路由器的负担加重, 网络中可能会存在大量的订阅和修剪信息。特别是在源快速切换时, 将产生大量的状态更新消息。在接收端增加了一个新的栈, 用来存放移动节点的绑定信息, 使得协议变得更加复杂, 不利于协议的推广应用。

3.2 性能小结

表1对基于SSM模型的移动组播方法进行了对比, 由于SSM模型所建立的是源特定的组播树, 组播源的切换不仅会使得整个组播树发生重构, 而且还会由于源地址的改变使得组播数据的转发出现问题, 比如RPF检查的出错。所以, 在SSM模型中, 为移动节点提供组播服务遇到很大的挑战。为了在源切换时能够将数据正确地转发给接收者, 同时减少组播服务的中断延迟, 不同的方法使用了不同的机制, 在改善系统性能时也相应地增加了协议的复杂性。

4 总结和展望

通过深入的对比分析可以看出, 在移动环境下实现SSM服务模型, 源的移动给组播路由设计带来了很多障碍, 目前还没有一个好的解决方案。而且, 大多数方法的仿真环境没有体现实际网络环境的特征, 所设定的参数与真实的情形相差太大, 因而不具备很强的说服力[10]。

迄今为止, 以下几个方面的问题亟待解决:

服务质量 在多点通信中实现资源预留非常困难, 而在无线移动网络中这个问题变得更加突出。不同的应用对服务质量的要求是不一样的, 根据不同的应用可以考虑提供不同的服务质量保障。

组播源的移动:目前很多协议都是针对接收者移动而设计的, 但发送者移动所引起的问题往往更加严重。因为接收者的移动影响的是组播树的一个分支, 而发送者的移动会影响整个组播传递树。特别地, 在SSM模型中, 源的切换会产生大量的状态更新消息和较长的中断延迟, 在源快速而又频繁切换时, 接收者可能无法完成向新的通道的订阅操作。

层次结构 已经普遍认为在移动IP中引入层次移动管理结构是有益的, 在规模较大的网络中如果不采用分层思想直接部署组播协议也是非常困难的。如何在移动组播协议中建立有效的层次结构, 不仅要改善系统的性能, 还要保证与已经部署好的Internet的兼容。

仿真方法 必须改善现有的仿真方法和评价指标。使用数学方法来模拟实际的网络环境、节点的移动、组成员关系变化、树的拓扑结构等。在评价系统性能时, 还需要考虑协议的复杂性和协议在节点频繁切换时等特殊情况下的性能变化情况。

访问技术的独立性 不管当前的无线链路访问采用什么样的技术 (如802.11, 蓝牙) , 所提出的方法都不会受到任何影响。

摘要:移动IP和IP组播技术是下一代网络中的热点研究问题。如何将这两者结合起来, 为移动节点提供有效的组播支持, 已经引起了很多人的兴趣。但是, 由于设计移动组播路由协议时遇到诸多的困难, 比如处理组播源的切换问题, 研究工作进展非常缓慢。详细讨论了各种在移动环境下源特定的组播实现机制, 自身所具有的优点和存在的不足, 并综合对比了它们的主要性能。希望通过这种系统的讨论, 能够帮助大家在以后的研究中更好地把握住发展方向。

关键词:IP组播,ASM,SSM,移动,无线网络

参考文献

[1]Gossain H, Agrawal D.Multicast:Wired to Wireless.IEEE Communica-tion Magazine, 2002:116-123.

[2]Romdhani I, Kellil M, Lach H.IP Mobile Multicast:Challenges and Solu-tions[J].IEEE Communications Surveys&Tutorials, 2004, 6 (1) :18-41.

[3] Perkins C, Calhoun P, Bharatia J.Mobile IPv4 Challenge/Response, IETF RFC4721, January 2007.

[4] Bhattacharyya S.An Overview of Source-Specific Multicast (SSM) .RFC3569, July 2003.

[5] Almeroth K C, Bhattacharyya S, Diot C.Challenges of Integrating ASM and SSM IP Multicast Protocol Architectures[C]//In Proceedings of the Thyrrhenian International Workshop on Digital Communications:Evolutionary Trends of the Internet, 2001:343-360.

[6] Jelger C, Noel T.Supporting Mobile SSM Sources[R].IEEE Global Commun.Conf., Taipei, Taiwan, Nov, 2008.

[7]Jelger C, Noel T.Performance evaluation of multicast transmissions withmobile sources[R].ICON2003, The 11th IEEE International Confer-ence on Networks, 2003:723-728.

[8] Kim K-I, et al.New Approach for Mobile Multicast Based on SSM[R].Proc.9th IEEE Int’l.Conf.Net. (ICON’01) , Oct.2001:405-08.

[9]Thomas C Schmidt.Matthias Wahlisch.Extending SSM to MIPv6---Problems Solutions and Improvements[C]//Proceedings of the TERE-NA Networking Conference 2005, TERENA, June2005.

IP组播 篇6

关键词:P2P,流媒体,应用层组播,IP组播

在当前较流行的基于P2P的文件下载、网络电视、视频点播、视频会议等以流媒体为核心的新业务应用中,组播(Multicast)技术是解决这些应用的关键技术之一。所谓组播(也称多址广播)就是组播源把数据包发送到特定组播群组,而只有属于该组播群组的地址才能接收到数据包。在组播传输中,某数据源向多个接收者发送同一数据包,在每条物理链路上只有一份数据(如果采用TCP 协议,那么物理链路上将有多份数据传输),它能够提高数据传送效率,减少主干网拥塞出现的可能性。对于组播技术,应用较多的是IP组播(IP Multicast)和应用层组播(ALM: Application Layer Multicast),两者均使用基于UDP协议的数据传输。就目前这两种组播技术在流媒体传输的实际应用来看,两者都存在一些问题需要解决。如延迟、可靠性不高、可控性及可管理性差等。

通过采用应用层组播和IP层组播相结合的方式来对当前基于P2P的流媒体传输技术中的延时、可控性及可管理性差等问题予以改进。

1 改进后的网络拓扑结构

IP 组播技术是对互联网“单播、尽力转发”模型的重要扩充,主要功能在路由器上实现[2],是一种允许一台或者多台主机(组播源)发送单一数据包到多台主机(一次的同时的)的TCP/IP网络技术,能实现一个或多个组播源把数据发送到特定组播组的成员中去,主要优点就是实现比较灵活,有效地节省了多点通信中的网络带宽。

应用层组播是在应用层而不是网络层上实现组播能力,由端系统而不是路由器实现组播转发功能。在P2P网络结构中使用应用层组播即使用客户的带宽资源传送和分离流[3]。这更能节约主干网络带宽,提高网络传输速率,而且采用客户机充当软路由对数据流进行处理而无需路由器支持。

借鉴HMTP[4]及文献[3]中的设计思想,将以上两种技术的优点相结合,提出以下流媒体传输网络拓扑结构,如图1所示。如图1所示,流媒体数据从源端到客户终端的传输按顺序分为以下几部分:①数据源到组播树顶级路由器:这由数据源端的服务器来控制管理;②数据流在组播路由器中的IP组播:数据以IP组播方式,按照一定的组播路由协议,在按一定算法建立的组播树中分层传输到组播群组服务器端;③群组服务器端到客户终端的基于P2P的应用层组播:结合图2所示[5],数据从群组服务器端以应用层组播方式经过交换机或Hub传输到客户端,并在客户端以P2P重传机制相互传输。结合实际应用,当有不同内容的数据源时,同一个客户可以同时接收不同数据源的流媒体数据,即同一个客户端可以处于多个不同的组播群组中同时享受多个不同的流媒体服务。

注:① 图中不同内容的数据源可以有多个;② 箭头表示数据的流向不代表数据流大小;③ 群组服务器不是必须的,可以由性能优越的客户端主机充当;④ 客户终端有可能通过交换机或Hub来与群组服务器相连。

2 核心实现技术

2.1 减少传输延时的实现技术

2.3.1 组播路由选择及组播树的建立

组播路由主要完成路由器间组播数据转发与传输,其基本思想是在组成员之间构造一棵分发树, 组播数据在这颗分发树上传播至所有接收者。组播路由协议分为域内组播路由协议和域间组播路由协议,域内组播路由协议包括MOSPF,CBT , PIM -SM、PIM - DM、DVMRP 等协议;域间组播路由技术中较成熟的短期方案包括三个协议MBGP/ MS2DP/ PIM - SM:MBGP(组播边缘网关协议) 。

现主要介绍域内密集型开放式组播最短路径优先协议MOSPF(multicast open shortest path first) 及基于该协议之上建立最短路径树(Shortest Path Tree: SPT)的技术。采用此协议考虑到MOSPF对网络拓扑改变能快速响应,从而减少网络时延,适合于对时时性要求较高的流媒体传输。

MOSPF是对单播路由协议OSPF的扩展,由RFC 1584 定义, 是一种链路状态路由协议, OSPF中链路状态通告LSA (link state advertisement)类型7 用来携带组播路由信息, 实现对组播路由的查找。其每个路由器都必须维护一份最新的网络拓扑表,并用Dijkstra 算法为每个组播源生成SPT树[6]。MOSPF 要先运行OSPF, 结合图1拓扑结构完成以下路由:① 从数据源到每个组播树顶层组播路由器的组播路由:由数据源服务器按照预定的路由算法根据数据流的不同内容选择不同组播树的顶层路由器进行路由,并尽量选择性能优越负载较小的路由器来担当高层路由器;② 非终端组播路由器的路由:组播树中从高层组播路由器到终端组播群组服务器之间各层组播路由器均按MOSPF路由协议进行路由,在代价许可下,推荐设置专用的路由器来充当IP组播路由器。对组播路由器的选择及对性能的要求甚至配置专用的组播路由器,虽付出了一定的硬件代价,但是却换来了流媒体数据传输的稳定性和对传输延时的减小。本拓扑结构中主要的协议及位置如下图3所示。

组播中常用的两种组播树是有源组播树和共享组播树,本拓扑结构中采用有源树。所谓有源树,也称为基于信源的树或最短路径树SPT,它是在MOSPF协议基础上,在路由过程中动态创建的以组播源为根构造的从根到所有接收者路径都最短的分布树。从组播源到每个接收者的路径最短,时延性能较好,有利于流量大、时延性能要求较高的实时媒体应用[7]。实践证明,尽管存在构造最短路径树的有效算法,但在实际中构造这样的一棵树却不简单,因为:在互联网上取得完整的覆盖网的连接图不容易;同时,构造出的最短路径树常包含高出度的结点,这些结点很容易过载,成为系统的瓶颈。因此,在实践中许多组播算法不寻求构造最短路径树,而是根据部分连接图构造一出度受限的近似最短路径树以符合实际应用。对于组播树的建立都要求组播树尽可能扁平,树的层次和深度不能太多,以最大限度减少时延。

2.3.2 客户端群组应用层组播

由于采用基于P2P网络的应用层组播技术,每个客户端既是服务器又是客户端,自己享受数据流的同时也给其他客户传输数据或从其它客户端那里索取数据[8]。如图2所示,组播群组中的数据传输步骤为:① 组播群组服务器直接以应用层组播方式向组播群组内的部分客户传输流媒体数据,该步骤可按所有终端接点的拓扑有序序列实现;② 客户终端将收到的数据进行缓存,一方面自己使用,另一方面同时为其它客户提供数据的P2P重传。采用此方法是基于以下两点原因:① 客户从服务器或者从远端组播路由器索取数据流远没有在本网络内部从其它客户端那里直接索取数据快捷(考虑到服务器及客户机性能的差别,极少数情况下有可能出现从服务器获取快于从客户端获取);② 使用P2P技术时,除了与组播同样需要网络时延、解码时延等因素外,P2P还增加了Cache时延。由于P2P技术是通过Cache存贮数据而为其它用户提供数据流,所以Cache时延的大小如果太小则效果会很差,目前一般P2PCache时延均在十几秒以上,大大降低了用户对影音视频的使用体验。为此,本方法只在客户端组播群组里使用P2P重传机制,目的就是为了充分利用客户机资源,提高主干网络带宽的速率和利用率,并最终减少网络传输延迟。

2.2 客户终端管理及数据流的控制实现

如图2所示,该群组服务器担当组播服务器和管理服务器两种角色,在完成组播功能的同时,还要随时接受客户加入、退出群组的请求并对本组所有成员进行管理。所以,要求客户端群组服务器的性能要好些足以承担以上所述任务。

当流媒体数据传输到客户终端组播服务器时,可通过在组播服务器端和客户端主机上同时运行互联网组管理协议IGMP(Internet Group Management Protocol)对组播组成员及数据流进行管理控制。在整个网络中,根据流媒体数据内容不同,给每个群组服务器赋予全局唯一的一个标识号,并给每个加入某个群组的终端客户分配一个结点号,并使同一个群组中的结点号和服务器标识号接近或者前几位相同,类似于本地区的电话号码。从图1可知,同一终端客户,可同时申请至少一个但绝不相同的结点号。因为同一终端客户可同时申请享受不同内容的流媒体数据服务。

基于IGMP协议并结合图1、图2对终端客户的控制、管理如下:① 建立群组服务器:群组服务器根据流媒体数据内容获得全局唯一的一个标识号,此时,该群组服务器有效;② 终端加入:终端客户向群组服务器申请加入该组播群并共享流媒体数据,待组播服务器批准后,该终端客户得到一个群组里结点号;③ 终端管理、控制:由群组服务器统一管理和分配结点号并根据结点号对每个群组终端客户进行权限管理和流量控制;④ 终端重传机制控制:对于基于P2P的重传机制,组播服务器只能控制每个客户端的权限,对流量的控制较困难,这是P2P网络自身的一个弊端;⑤ 终端退出:当终端客户要求退出该组播群组时,向自己的群组服务器提出申请,群组服务器批准并收回该终端的标识号,该终端就退出了该组播组;⑥ 终端异常处理:当群组终端客户在一定时间内(如一周或一个月)内传输流量极小或者为零时,群组服务器会根据一定的管理策略认为该结点发生永久性故障并把该终端从该群组中删除以节约网络资源。客户终端接收P2P环境下的组播关键流程具体可参考参考文献[5]。

3 系统测试与性能评价

3.1 系统测试

在组播网络中, 网络里的发送和接收主机、网络路由器以及它们之间的网络结构必须支持组播, 防火墙必须设置为允许组播通过。主要包括: (1) 主机的TCP/ IP实现支持发送和接收IP组播;(2) 主机的网络接口支持组播;(3) 有一套用于加入、离开、查询的组管理协议, 即IGMPvl(v2)( IGMP 的两个版本);(4) 有一套IP地址分配策略, 并能将第三层IP 组播地址映射到第二层MAC 地址(硬件地址);(5) 支持IP组播的应用软件;(6) 所有介于组播源和接收者之间的路由器、集线器、交换机、TCP/IP栈、防火墙均需支持组播。根据以上要求,测试网络的基本配置环境如下:

●基于TCP/IP的校园局域网;

●使用支持组播的Cisco交换机;

●配置Windows2000Sever服务器,并使用Windows2000Professional操作系统;

●使用一台高性能的主机作为数据源服务器,发送各种流媒体数据。

网络的具体部署可参考文献[9]。经过在以上所述网络环境中进行测试,测试结果均达到当前流媒体业务QoS的基本要求,结果如表1所示。

3.2 性能评价

3.2.1 带宽的使用

由于本系统主要以IP组播为主,应用层组播及P2P重传机制为辅,取各种技术的优点,所以本系统的带宽使用率介于IP组播与应用层组播之间,比较适合当前宽带流媒体业务的应用。

3.2.2 时间延迟

从拓扑的建立,硬件选择到协议选择,都首先考虑时延问题,从测试结果可知,低时延是本结构的一大优点。

3.2.3 可控性

因采用了组播服务器,所以对终端客户的管理及控制显得非常方便,但对基于P2P的应用层组播数据流量的控制无法实现,这是P2P网络自身的一个弊端。

3.2.4 易维护性

通过组播组中的服务器,对整个组播组的维护非常方便,把系统中复杂的管理功能都可放在组播服务器中实现,大大简化了组播路由器的额外开销,减少了数据传输的延时。

3.2.5 安全性

流媒体业务的安全性主要在于只允许经过注册的合法用户享受到流媒体数据服务。组播安全除了当前较成熟的常用技术外,还可从管理软件中对组播安全做进一步加强。

4 结束语

本文通过在IP组播和应用层组播及P2P技术基础之上,提出了将三者优点相结合用于改进流媒体数据传输的网络拓扑结构,对该拓扑结构的主要实现方法做了详细的分析,并在相关网络测试基础上对其性能进行了评价。如文中所述,有些技术问题如对基于P2P客户端数据流重传机制的控制仍待进一步研究解决。

参考文献

[1]王大伟.组播技术在实际应用中的优势与不足.网络安全技术与应用,2005.4:38—39

[2]章淼,徐明伟,吴建平,等.应用层组播研究综述.电子学报,2004;(12A):38—39

[3]张諝,吴慧中,肖亮,等.支持流媒体的应用层组播研究.计算机科学,2007;(34)(6):53—57

[4] Zhang Beichuan,Sugih Jamin.Host multicast:a framework for deliv-ering multicast to end users.In:Proceedings of IEEEINFOCOM,2002:11366—1375

[5]陈戈.P2P与组播结合实现高质量IP视频直播承载,广东通信技术,2007;(1):19—23

[6]江魁,杨文玲.IP网络组播路由研究,中山大学学报,2002;6,(41):42—44

[7]张志方.IP组播技术及其基于宽带IP网的解决方案.大众科技,2005;(1):34—37

[8]郑纬民.对等计算研究概论,中国计算机学会通讯,2006;(12)1—21

IP组播 篇7

3G时代的数据业务迅猛增长, 传统的传输网络已经很难适应[1,2], 为了适应新的网络需求, PTN (分组传输网络) 随即出现。PTN作为一种面向分组的传送网络, 具有端到端连接、多业务支持、低成本、高QoS (服务质量) 、高效的带宽管理机制等优点[3,4,5]。高带宽多媒体应用的涌现, 导致网络数据量的急剧增加, 带来了带宽的急剧消耗和网络拥挤问题。这对PTN芯片的转发容量、速率、拥塞避免和流量管理等方面提出了更高的要求。IP组播查找电路作为PTN芯片中转发单元的核心电路, 它的查找速度及延迟决定了转发单元的工作频率和转发延迟。PTN芯片中的IP组播查找通常需要根据VLAN (虚拟局域网) 表的内容确定组播数据的输出端口, 而一次调度只能将组播数据输出到一个目的端口, 这就需要大量的存储资源来记录当前组播的扫描位置, 以便下次调度到该队列时, 能够根据记录的扫描位置继续查找下一个组播输出端口。另一方面, 在进行目标端口扫描时, 需要完成最多64位的bitmap图的查找、比较操作, 所以实现查找功能需要用大量的逻辑电路, 因此应该尽量降低查找组合电路的延迟。

为了提高PTN芯片中IP组播查找电路的工作速率, 同时降低电路设计的复杂度, 本文采用流水线结构, 利用RAM (随机访问存储器) 记录查找中间状态信息等技术, 完成了对IP组播查找电路的设计。所设计的IP组播查找电路能够根据要求从VLAN表中正确地查找到输出端口信息, 并将该信息发送给下一级处理单元, 最终电路设计在Altera系列FPGA (现场可编程门阵列) 开发板EP4SGX230KF40C2ES上进行了验证。

1 设计与实现

IP组播查找电路的主要功能是通过顶层的接口完成Vlan表和Group表的配置, 同时, 对三层组播包进行IP组播查表, 查找出该组播包的下一跳地址, 并随组播包一起发送到调度模块。因此将IP组播查找电路分为第一次请求判断模块、Vlan地址选择模块和输出端口扫描模块3个部分, 如图1所示。

当接收到Ipmc查找请求信号Ipmc_req后, 首先判断该请求是否为第一次请求, 如果是, 将请求状态寄存器相应位的值置1, 根据Group_ptr和Ipmc_req_num信息查找Group表, 得到14位的Vlan地址信息;如果不是, 根据Ipmc_req_num信息查找INF_RAM缓存, 得到20位的数据信息, 其中包含了Vlan地址信息。然后, 根据得到的Vlan表的地址信息读取出IP组播包的Vlan索引值, Vlan索引值有模式0和模式1两种, 针对不同的索引模式进行扫描, 得到下一跳地址, 进而记录当前的扫描位置和Vlan表项地址, 并将纪录值写入到对应的信息存储RAM中, 最后判断当前的查找是否结束, 如果结束, 将请求状态寄存器对应位的值置0。

1.1 第一次请求判断模块

第一次请求判断模块的主要功能是接收IP组播查找请求, 并根据目的端口号、Impc_index和请求状态寄存器的内容, 首先判断是否为第一次请求, 如果是, 则将请求状态寄存器相应位的值置1, 并根据请求的地址从Group表中查找到Valn表的地址;如果不是, 则根据请求地址, 从信息存储RAM中读取出Valn表地址以及扫描标识。第一次请求判断模块的电路实现结构图如图2所示。

1.2 Vlan地址选择模块

Vlan地址选择模块的主要功能如下:根据第1次查表的结果, 如果是第一次请求, 则查找到的是Vlan_ptr信息, 反之, 得到的是current_ptr信息;然后根据第一次请求判断的结果进行二选一, 得到Vlan表的查找地址信息, 查找Vlan表, 得到Vlan表的88位数据信息。Vlan地址选择模块的结构如图3所示。

其中, 信息存储RAM主要用于存储从Vlan中读取出来的数据信息, 以便完成后续的查表和发送下一跳地址等工作。数据格式由两部分构成, 即14位current_ptr信息和6位的Cnt_sent信息, 其中current_ptr用于存储当前查找的Vlan表的地址, Cnt_sent用于存储当前发送到的bitmap (在模式0下即为64位Lsb_vlan_bm中的某一位地址;在模式1下即为Mode_1_bitmap中的某一位地址) 的位置。

1.3 输出端口扫描模块

输出端口扫描模块的主要功能是根据接收到的88位数据信息及上一次查找结束时的状态信息完成对模式0和模式1的扫描, 根据扫描结果得到最终的输出端口信息。其中, 模式0主要针对64位bitmap信息进行扫描, 模式1则针对4位bitmap信息进行扫描, 因此将输出端口扫描模块分为去已扫描模块、64位bitmap扫描器、4位bitmap扫描器以及输出选择器4个部分, 如图4所示。

去已扫描模块的主要功能是滤除64位bitmap和4位bitmap中已经扫描过的端口, 并将滤除后的结果分别送给64位bitmap扫描器和4位bitmap扫描器;64位bitmap扫描器的主要功能是完成64位bitmap从低位到高位的扫描, 直到扫到第1个“1”出现的位置, 并将扫到的结果输送到输出选择器;4位bitmap扫描器的主要功能是完成4位bitmap从低位到高位的扫描, 直到扫到第1个“1”出现的位置, 并将扫到的结果输送到输出选择器;输出选择器的主要功能是根据当前的模式, 选择64位bitmap扫描结果或者4位bitmap扫描结果进行输出, 各模块实现电路图如图5所示。

2 仿真验证

本文设计的IP组播查找电路应用于PTN芯片的存储转发单元中, 在Altera系列FPGA开发板EP4SGX230KF40C2ES上对存储转发单元进行了验证。为了验证电路的正确性, 增加了必要的外围电路:流量产生器和数据包收集器。在200MHz的工作频率下, 通过NiosII软核对Vlan表和Group表进行配置, 启动电路工作后, 从数据包收集器中读取出统计的结果。PTN存储转发单元FPGA测试界面如图6所示。测试结果显示, IP组播查找电路能够完成IP组播查找功能, 并能稳定工作在200 MHz频率下。

3 结束语

为了提高电路工作频率, 本文设计的IP组播查找电路采用4级流水线操作完成IP组播输出端口扫描:第1级完成第1次请求的判断并从Group表和信息RAM中读取出相关数据;第2级完成Vlan表的信息读取操作;第3级完成部分64位bitmap以4位bitmap的扫描;第4级完成剩余部分64位bitmap的扫描及输出结果选择。同时采用信息存储RAM记录上一次IP组播输出端口扫描的状态, 与采用寄存器存储方式相比较, 信息存储RAM技术降低了电路的复杂度, 保证了系统的可靠性。为了进一步提高速度, 对两种模式并行扫描, 这种扫描模式减少了两种模式判断的等待时间, 有效地提高了电路的速度。最后, 在Altera系列FPGA开发板EP4SGX230KF40C2ES上对所设计的电路进行了验证, 验证结果表明, 该电路能够完成IP组播查找功能, 并能稳定工作在200MHz频率下。

参考文献

[1]圣钱生, 张桂英.PTN的关键技术及优势[J].信息技术, 2010, (12) :202-205.

[2]彭霖.面向3G和全业务运营的PTN组网策略探讨[J].信息系统工程, 2011, (12) :88-89, 98.

[3]赵科然, 张小红, 郑晶晶.PTN技术及应用前景[J].科技传播, 2011, (22) :170.

[4]赵亚光, 何崇博, 龚军辉, 等.关于分组传送网络 (PTN) 关键技术研究[J].科技创新导报, 2012, (6) :35.

【IP组播】推荐阅读:

上一篇:中波发射天线下一篇:钢桁架结构

本站热搜

    相关推荐