多播系统范文
多播系统范文(精选7篇)
多播系统 第1篇
随着网络技术的飞速发展,Internet网络环境下由多方参与的应用正日益兴起。这些应用通常采用一对多或者多对多的传输方式,数据量大,带宽要求高。因此,多播(Multicast)技术得到了广泛的应用。多播可以节约带宽,减轻服务器和路由器的负载,具有广泛的应用领域。
1 安全多播准入控制的研究现状及发展
1.1 多播安全准入控制面临的问题
多播是Internet上一种有效的面向群组应用的通信机制。现有多播模型具有组成员关系开放性、多播源的任意性和组内信息不可区分性这三个基本特点,这些特性会带来商业化多播服务所不能容忍的一系列安全问题和隐患,包括多播组内容偷听、窃取,多播源身份冒充,拒绝服务攻击等问题。而多播组用户的不可知性和不可管理性是导致这些安全问题的根本原因,因此需要一套完善的多播组用户控制机制来管理和控制组内的通信。针对不同的安全问题,多播组用户控制机制中包含的研究领域有:多播接收者准入控制、多播源准入控制、多播组密钥管理、多播源身份鉴别和多播组指纹识别技术等。多播接收者准入控制是本文研究的重点。
1.2 基于传统IGMP协议的多播准入控制
(1)Ishikawa等人提出的方案
Ishikawa,Yamanouchi和Takahashi等提出的方案[1]采用挑战/应答协议实现子网路由器对发送者和接收者的鉴别。主要问题:①对多播子网路由器来说开销太大,需要在主机和多播路由器之间进行多次反复的挑战/应答握手。①多播系统的可伸缩性降低。
(2)Ballardie等人提出的方案
Ballardie和Crowcroft第一次指出了多播系统中IGMP存在的准入控制问题,并提出了相应的对策[2,3]。该方案要求接收者在加入多播组之前必须通过授权。该方案主要问题:①未授权用户在申请授权戳时可能存在IP地址假冒问题。②未授权用户可假冒授权戳。③授权戳内的多项内容是冗余的。
(3)Hardjono等人提出的方案
Hardjono和Cain提出的方案[4]利用已经建立的GKM协议基础设施[5],当接收者被密钥服务器鉴别完毕后,密钥服务器不仅向接收者传送组通信相关的密钥,而且同时向接收者传送Access Token(类似数字证书,由密钥服务器签名)[6]。该系统存在以下问题:①Access Token可伪造。②Token列表维护开销大。
1.3 基于角色的多播准入控制
RBAC(Role-Based Access Control)[7,8]的核心思想就是将访问权限与角色相联系,通过给用户分配合适的角色,让用户与访问权限相联系。
基于角色的多播准入控制体系结构[9]由六个基本组件构成:应用层多播软件,基于角色的准入控制系统,系统检测和日志分析,多播-RBAC服务器,数据库及成员结点。该方案有以下几个优点:①通过角色配置用户和权限,增加了灵活性。②支持多管理员的分布式管理。③支持由简到繁的层次模型,适合各种安全需要。④完全独立于其它安全手段,是策略中立的。使得该准入控制模型在不同的应用背景下都能得到应用。
1.4 基于IEEE 802.1x协议的多播准入控制
IEEE 802.1x[10]是IEEE 2001年6月通过的基于端口的准入控制协议议,IEEE 802.1x协议的系统模型包括三个重要的部分:客户端、认证系统、认证服务器。该方案优点:①802.1x协议为二层协议,设备要求低,成本低。②对多播业务的支持性好。③在二层网络上实现用户认证,具有很高的安全性。缺点:①多用户可共享一个端口存在安全隐患。②需要特定客户端软件支持,需要交换机等网络设备支持该功能。
1.5 应用层多播准入控制
该方案运行在现有网络协议上,无需对路由协议进行进行修改。它主要通过一个称为NetWrapper的管理设备对网络设备进行配置,从而达到准入控制的目的。该方案主要包括四个部分,Service portal:类似一台NAS-client。NAS(network Access Server)发送认证请求信息给Radius服务器并接收确认信息。Radius被用来存储用户认证信息、收集计费信息。Access control list用来控制允许或拒绝用户端设备接收多播信息。NetWrapper是结合了Radius认证和修改准入控制列表的一个功能实体。在该方案中NetWrapper通过Telnet连接来配置准入控制列表。
2 基于IGMP协议的安全多播准入控制
根据多播安全的实质可以分成3个部分:多播分发树安全;端到端数据安全;子网内的组成员准入控制[11]。本论文研究重点是子网内的组成员准入控制。本方案的多播准入控制系统由多播管理中心(Multicast Manager,MM)和子网路由器(Leaf Network Router,LNR)两部分组成。多播管理中心是该体系结构里的核心部分,存储已经注册的多播地址信息,定义和检查多播控制策略;子网路由器部署在各个第一跳路由器上,它负责拦截子网内的IGMP请求报文并转发给多播管理中心处理。
2.1 接收者访问控制
如图1所示,接收者准入控制的处理流程如下:
(1)子网上的用户想加入多播组接收多播信息,向LNR发送IGMPv3请求报文。请求报文被LNR上位于IP多播层与IGMP处理层之间的子网路由器控制单元截获。为了避免处理多个相同的请求报文,子网路由器控制单元存储并维护一个转发表,记录条目形式为R=>FR,这里R代表从本地网络上接收的请求报文,FR代表经过MM过滤处理后的报告(如果需要完全过滤掉R,则FR为空)。处理报文R的过程中,后续收到的相同报文都被丢弃。
(2)LNR将用户的IGMP请求报文以单偿的方式转发给MM。
(3)MM收到LNR的转发报文,检查报文内容,然后查询本地策略数据库,与多播管理员定义的策略进行匹配比较。
(4)根据策略,MM给LNR发回一个包含转发接收者请求与接收权限交集的信息FR;LNR收到MM处理后发送回来的信息FR,在转发表中构建规则R=>FR,当接收到的IGMPv3请求报文R跟转发表中的条目R=>FR相匹配,报文FR就被传送到本地的IGMP处理单元。
(5)MM给LNR发回一个决策控制信息,决定是否允许用户加入多播组,LNR收到MM返回的决策信息,对用户的IGMP请求报文作相应的处理。
2.2 发送者访问控制
如图1所示,发送者访问控制的处理流程如下:
(1)子网上的用户通过LNR向多播组发送数据流。当LNR探测到一个新的多播数据流,通信控制处理单元就把它截获。类似于前面的IGMP报文处理,数据流的主要信息(<发送者,多播组>)作为记录条目存储在LNR的转发表中。
(2)用一个被称为SEND的新的IGMPv3消息把有关数据流的信息转发给MM。本文在这里对接收者和源发送者采用相同的IGMPv3格式来处理。
(3)MM接收到转发消息,检查报文内容,然后查询本地策略数据库,与多播管理员定义的策略进行匹配比较,判断是否允许源发送者向多播组发送信息。
(4)根据策略,如果允许源发送,MM向LNR发送一个SEND的决策消息;如果拒绝源发送,MM向LNR发送一个NOSEND的决策消息。
(5)LNR收到MM处理后返回的信息,把它存储在LNR转发表的出口处。如果响应是NOSEND,那么它会触发一个过滤工具来丢弃源通信信息,或者直接修改MFIB(Multicast Forwarding Information Base,多播转发信息库)拒绝转发从这个源发来的数据包。
3 安全多播准入控制原型系统的设计实现
3.1 系统结构
本文提出的基于IGMP协议的安全多播准入控制系统的结构图2所示。它主要由两个大的单元模块组成:子网路由器IGMP报文控制单元和多播管理中心准入控制单元。
根据功能的细分,子网路由器IGMP报文控制单元又可以分为3个子模块。
(1)截包模块:主要负责拦截用户的IGMP请求报文,
(2)抓包与转发包模块:捕获IGMP请求报文,并转发给MM处理。
(3)IGMP报文处理模块:根据MM返回的决策信息,对IGMP请求做相应处理。
多播管理中心准入控制单元由后台数据库和4个子模块组成。
(1)策略数据库:存储管理员定义的策略信息。
(2)接收报文模块:负责接收LNR转发过来的IGMP请求报文。
(3)分析报文模块:检查接收到的IGMP请求报文内容,与数据库中定义的策略进行匹配,做出决策。
(4)转发报文模块:返回决策信息给LNR。
(5)策略模块:增加、修改、删除、查询策略。
3.2 系统工作流程
在一个网络上的主机,当它希望加入一个多播组时,向子网路由器(LNR)发送一个IGMP请求,LNR收到IGMP请求报文后,并没有立刻作处理,而是将报文转发给多播管理中心(MM)。
MM存储和维护一个策略数据库,当收到LNR转发过来的IGMP请求报文时,查询策略数据库,跟相应的规则进行匹配,判断申请加入多播组的主机是否合法。对于合法的主机,MM把决策结果返回给LNR,LNR收到MM的返回结果后,允许该主机加入到相应的多播组;对于非法主机,MM丢弃其IGMP请求报文,从而拒绝非法主机加入该多播组,结束多播准入控制。
3.3 子网路由器模块的实现
3.3.1 抓包与转发包模块
对于本文系统,LNR把IGMP请求报文拦截下来然后转发给MM是实现准入控制功能的一个前提,要捕获数据包,必须使用数据链梅访问技术。本文用基于BPF(BSD Packet Filter)Libpcap设计出高效的包捕获应用系统。通过调用Libpca的pcaploop()函数不断捕获IGMP请求包,一旦捕获自动调用回调函数ethernetprotocolpacketcallback()处理捕获的IGMP请求包,处理完成之后,调用pcapsendpacket()函数,把包转发给管理中心。该过程需要修改IGMP请求数据包,如表1所示。
3.3.2 截包模块
在本文系统的设计中,拦截IGMP请求数据包是该部分设计的一个难点。大部份开源的程序如Tcpdump,只能做到监听、复制数据包的一个副本,而不能彻底地把包拦截下来。如果没有把数据包彻底拦截下来导致LNR对IGMP请求报文进行正常的处理,那么MM的决策判断处理就没有意义。
经过调研和实验之后,本文采用Netfilter内核包过滤器拦截数据包[12,13,14]。在Netfilter中,协议栈每种协议都定义了若干个钩子(HOOK),如IPv6和IPv4均定义了5个钩子,而对应协议的数据包将按照一定的规则通过这些钩子,每一个钩子都是处理函数挂载点。内核模块则可以在各个钩子上注册处理函数,以操作经过对应钩子的数据包。函数处理后,根据一定的策略返回给内核进行下一步的处理。
为了使其它内核模块能够操作数据报,Netfilter为我们提供了接口 nfregisterhook(struct nfhookops *reg),函数原型在netfilter.h,定义在netfilter.c,返回值为int类型,注册成功返回零,失败则返回一个负值,参数reg为 nfhookops结构体类型指针。在内核模块初始化的时候调用这个接口来注册处理函数,而函数指针则保存在reg指针所指向的 nfhookops。
3.4 多播管理中心模块的实现
多播管理中心包括两大子系统:多播数据包处理子系统和多播策略后台管理子系统。多播数据包处理子系统包含接收报文模块、分析报文模块、转发报文模块。多播策略后台管理子系统包括添加策略模块、修改策略模块和删除策略模块。
3.4.1 接收报文模块
本模块主要是通过数据包捕获技术实现接收来自LNR数据包的功能。接收过来的数据包是LNR转发过来的主机申请加入多播组的IGMP请求报文。在本模块的开发中,本文采用Windows平台下专业的网络数据包捕获开发包WinPcap[15]来编程实现数据包的捕获功能,它具有为Win32应用程序提供访问网络底层的能力。
3.4.2 分析报文模块
本模块主要实现的功能是对接收到的数据包进行分析,并通过查询数据库的规则进行匹配,进而产生处理的结果。其中,对数据包分析工作的目的是获取请求主机的IP以及希望加入的多播组的地址,然后跟数据库的规则记录进行匹配,如果匹配是允许加入多播组的,则产生结果标志Y,否则产生结果标志N。
报文分析模块的输入数据是捕获到的IP数据包,分析出来的数据则是IP数据包中的源地址IP和多播IP。
获得从数据包中分析出来的IP地址后,通过ADO编程查询Access数据库,读取规则记录,数据库中的匹配规则是一些三元组(源地址,多播地址,规则),其中规则定义为允许或拒绝。进行查询匹配操作后,返回分析结果标志,允许加入多播组返回Y,拒绝则返回N。
3.4.3 转发报文模块
本模块主要是实现将经过分析的IGMP数据包转发给LNR的功能。当分析处理结果标志为Y时,发送一个包含有隐含源请求主机IP信息的IGMP请求数据包给LNR;若分析处理结果标志为N时,则不必转发IGMP请求数据包给LNR。
本模块的编码实现主要有两大要点:一是如何实现封装包含源请求主机地址的IGMP数据包;二是如何实现数据包的转发功能。
对于第二个问题,可以通过调用WinPcap库函数pcapsendpacket()来实现。而对于第一个问题,需要作深入的讨论。
如果是采用基于IP层的数据包封装方法,那么就需要将数据包的源IP地址变成多播管理中心(MM)的IP地址,如不做相应的处理,子网路由器(LNR)就会认为是错误包而丢弃或者对接收到的转发包误判断为MM请求加入多播组,这将是一个非常严重的问题。
基于上述缘由,本文采用了基于MAC层封装数据包的方法。因为数据包的封装是基于MAC层数据帧的封装,可以通过把源MAC地址设置为MM的MAC地址来实现。这样,LNR既不会误处理申请用户的请求,主机也能成功加入多播组。封装的整个数据包结构如表2所示:
本模块的输入数据有3个:分析结果标志(Yes/No),接收到的IGMP数据包,MM端的MAC地址,ER端的MAC地址。输出数据为:当分析结果标志为Y时,输出一个IGMP请求包;当分析结果标志为N时,丢弃IGMP请求包。
3.4.4 多播策略后台管理子系统
该模块主要实现后台管理数据库策略规则的添加、删除、修改等操作。其中数据库保存了准入控制策略的数据,以提供给数据包处理子系统进行准入控制的判断。
4 系统测试与评价
4.1 测试环境
本文在一台装有Fedora Code 6的Linux主机上安装路由软件XORP,成功搭建了支持IPv4多播的路由器。
硬件环境:一台Linux多播路由器(CPU:P4 2.8G 内存:512MB)、两台客户端PC机(CPU:C3 633MHz 内存:256MB)、一台多播管理中心(CPU:P3 733MHz 内存:256MB).
软件环境:Fedora Code 6 Linux OS、Windows XP SP2、XORP package、libpcap package、winpcap package、Microsoft Office Access 2003等。
4.2 测试试验
测试分功能测试和性能测试两部分。功能测试重点测试安全多播准入控制的接收者准入控制功能,包括:接收者能否加入多播组、子网路由器(LNR)能否正常转发接收者申请加入多播组的IGMP请求报文、多播管理中心(MM)能否根据管理策略决定接收者能否加入多播组。性能测试则测试在大数据量情况下系统性能情况。
4.3 测试结果
经过多次测试试验,多播路由功能正常,可实现接收者准入控制功能。在发包延时相同的情况下(50ms),多播管理中心处理IGMP请求的平均时间随着发包数量的增多而增加。当发包数量超过1000个时,多播管理中心处理IGMP请求的平均时间增加较为缓慢,大致趋于稳定(110ms),说明多播管理中心在负载较高时仍能保持较好的性能。
测试结果表明该系统实现了多播接收者准入控制的功能,具有较高的实际应用价值;同时,在中小规模用户数的情况下也表现出了较为出色的性能。
5 结束语
IP多播技术有广泛的应用范围,而不同的应用对于安全性有不同的需求。本文实现的基于IGMP的安全多播准入控制模型适用于中小用户规模并且对安全性要求较高的多播应用场合,如视频会议、股票交易、计费视频点播和机密数据资料分发等。
多播要做到安全实用仍然是一个比较难的问题,要想完善和丰富该领域,仍然需要做大量的工作。根据我们对本领域的研究体会,认为该系统在以下几个方面还需继续完善:
(1)多播发送者准入控制的实现。
(2)多播源认证的实现。
(3)多播统计(如计费)的实现。
(4)将现有模型从IPv4环境迁移到IPv6环境。
基于局域网的多播通信系统的设计 第2篇
IP多播技术, 其实是一种可以让若干台主机, 一次性的同时发送数据包到多台主机的一个基于TCP/IP协议的网络技术。而多播通信作为一种一对多的通信方式, 在节约网络带宽方面效果明显, 行之有效。现在的网络环境中, 音频和视频已经占据了相当的地位, 虽然现在的带宽比几年前有了长足的进步, 但是在应对一个信号发送点, 若干个信号接收点的时候, 之前的重复点对点通信以及广播的方式, 都会严重的浪费带宽资源, 所以通常情况下, 多播通信是一种很合适的选择。多播的作用是能够把一个或者多个多播源的数据包发送给某个多播组, 而只有满足某个条件的主机才能够被加入这个分组, 当然条件的设置也是可以由发射端来控制或者提前预置。
IP多播技术的依托则是IP地址, 在IPv4的体系中是一个D类的IP地址, 由预留多播地址, 局部链接多播地址和管理权限多播地址3部分构成, 范围是从224.0.0.0-239.255.255.255如表1所示。
上述的, 则是根据相同的IP多播地址来分类的, 所有的相同的IP多播地址的主机一起构成了一个主机组, 也可以称之为多播组。并且多播组中的主机的数量是动态的, 随着具体情况的不同而变化的, 任意一台主机无论地理位置和现有的多播组中的主机的数量的多少有什么分别, 只要满足条件都可以随时加入该多播组, 并且也可以随时离开, 并且一台主机还可以分属于若干个不同的主机组, 具有很强的灵活性。
下面具体区别下广播和多播的方式的异同点, 首先广播是把数据无差别的发送到某个网段或者网络的每一个地址, 不管对方需要不需要这些数据, 所以对网络带宽资源的消耗相对较高。而和广播不同的是, 多播则是针对性的发送到需要这些数据的地址中, 如果需要接收到多播的数据包, 则需要加入一个多播组才可以实现。在这里因为自己本身也是多播组中的一员, 所以也会同样收到一份自己所发送的多播的数据包, 用这个功能也可以实现一些其他的操作, 同样这个功能也是广播方式所不具备的。
2 实现方法
在TCP/IP协议中, 采用D类地址来支持多播技术, 所以一共有28位可以用来分组作为标记, 28位则可以同时支持做多大约25亿个多播组, 所以在用量环节不用担心没有地址用来分组或者不够用来分组。所以当一个进程通过一个D类地址来发送多播的数据包的时候, 则会尽最大努力的将其发送到, 但是不保证送到。通过这个能够看得出来这个传输模式数据包是类似于UDP的不可靠协议, 而不是TCP的可靠协议。当这些地址全部加入多播组之后, 源主机发送的任何数据都会完全的复制出来一份, 发送给组内包括原始源节点在内的所有地址。D类地址的IP范围在244.0.0.0-239.255.255.255。分为永久地址和临时地址2类, 其中永久地址主要保留下来以作为特殊用途, 比如244.0.0.0没有使用, 244.0.0.1代表子网内所有主机, 244.0.0.2则代表了所有的路由器。而临时主机在使用前要先创建一个多播组, 通过进程来控制主机加入或者退出某一个组, 而每一个主机都要实时的记录其进程所归属的组。
多播是由多播路由器实现, 普通路由器也可以经过设置而具备多播路由器的功能。多播路由器则发送信息给位于子网上的主机, 而主机则向多播路由器回复报告进程在当前所述的分组, 而各个主机则把相关的D类地址返回。这里面使用到了IGMP协议, 一种类似于ICMP, 一种格式相对简单只有询问和相应的2种分组功能的协议。
3 设计方法和步骤
3.1 初始化Winsock资源并创建套接字
在使用windows的套接字之前, 必须首先初始化windows sockets DLL, 这里通过调用WSAStartuo () 函数来实现, 可以让应用程序制定API要求的版本。可以随时根据情况需要加入所需要加入的多播组, 而且发送数据方式还是多方面的, 并且创建的套接字还具有重叠性。
3.2 设置多播套接字的模式
对于WSAIoct1 () 的函数来说, 命令码SIO_MULTICAST_LOOP的作用是用来开启或者禁止多播消息发送时候产生的通信数据数量能否在同一个套接字上收到回执。并且在最初的windows的版本中, 就是win2000之前的版本, 都是默认允许多播返回, 并且不能取消禁止;而在win2000之后的版本中, 才可以设置禁止功能多播返回。
多播传播的范围是通过WSAIoct1 () 函数中的SIO_MULTICAST_SCOPE来设置实现的, 也就是所谓的生存时间TTL。TTL的工作原理是这样的, TTL有一个初始值存在于数据包中, 每次多播路由器转发一次该数据包时, TTL则执行n=n-1操作, 然后再次进行多播发送, 而一旦当该数据包中的TTL数值减少到0的时候, 则不再对该数据包进行传递。所以由此可知, 例如TTL的数值如果为0, 则只能在本地主机上传播, 甚至无法发送出去;而TTL的如果数值为1的话, 则只能传递到第一个路由器, 不能传递出本地网络之外。
3.3加入一个多播组并向多播组发送数据
函数WSAJoin Leaf () 的功能是在加入一个多播组的同时并指定特定的主机来作为发送或者接受。在调用该参数时, dw Flags则指定一个套接字作JL_SENDER_ONLY或者JL_RECEIVER_ONLY, 分别是发送和接受, 或者是JL_BOTH, 该选项表示两者功能兼具。函数调用之后则有一个返回值, 然后再调用closesocket () 来关闭并且离开该多播组。
调用sendto () 函数, 可在指定的UDP套接字上向指定的多播组发送多播数据。调用时, 参数to应指向多播组的IP地址。值得注意的是, 若一个应用程序只是打算给多播组发送数据, 便不必加入一个多播组。
3.4从多播组接收数据随后关闭并释放资源
函数recvfrom () 的功能很简单, 在多播通信结束后, 则调用closesocket () 来关闭整个套接字体系, 然后释放资源。
4结语
多播作为一种行之有效的节约网络带宽的一对多的通信方式, 在现在的网络中有着广泛的使用。在网络中需要将节点信号发送到到多个节点的情况下, 重复点对点和广播方式都会浪费带宽, 所以多播有了广阔的适用范围。
摘要:由于管理和日常工作的需要, 网络管理员经常需要发送某条消息或者信号给一组用户, 将满足某种条件的用户编为一组, 假如每个用户单独的发送, 虽然可行, 但是操作相对过于繁琐, 并且也会出现一些漏发重发的情况。所以多播技术 (也称之为多播技术) 也就应运而生, 专门为了更加有效的应对这种多重发送的情况, 是一种基于IP层的通信技术。多播是一种在一个发送者和多个接收者之间进行通信的方法。与任播 (anycast) 和单播 (unicast) 一起, 多播也是一种IPv6的包传送方式。多播在CDPD技术中的无线数据网络中也可以使用。文章采用多播技术, 不但可以一次将通信信息传送给多人, 还可有效减轻网络通信的负担, 避免资源的浪费, 弥补了广播通信的不足。
关键词:多播,广播,套接字
参考文献
[1]于秋生.Visual C++程序设计教程[M].北京:机械工业出版社, 2004.
[2]任泰明.TCP/IP协议与网络编程[M].西安:西安电子科技大学出版社, 2004.
基于多播的线性网络编码 第3篇
多播通信实现通常是通过构造多播树实现, 但其存在局限性, 不能使多播传输达到最大流最小割定理所确定的容量上限, 针对传统多播通信存在的局限, R.Ahlswede等人在2000年首次提出网络编码的概念, 从信息论的角度出发, 严格证明了在组播通信网络中, 通过节点编码的方式可使信息传输的速率达到最大流最小割定理所确定的容量上限, 从而编码的方式优于路由的方式.这一发现推翻了在中间节点上对传输的数据进行加工不会带来任何收益这一传统观点, 由此给通信网络带来了根本性的变革.
1. 网络编码基本原理
1.1. 线性网络编码模型
如果网络节点对传输的信息进行线性操作, 则称为线性网络编码, 否则称为非线性网络编码.如果网络节点对信息进行操作的系数是随机选取的, 则称为随机网络编码, 如果是通过算法确定出来的, 则称为确定性网络编码.文献[3]证明:在有限域Fq中, 只要域足够大, 则通过合适的线性网络编码, 就能使多播传输达到最大的传输容量.目前, 网络编码研究均限于有限域Fq中的线性网络编码.本文将主要介绍线性网络编码的基本原理.为了方便陈述, 先介绍本文涉及的基本定义.
定义1[4] (非循环网络的线性网络编码的局部描述) 设F为有限域, ω为一正整数.一个非循环网络图上的ω-维F-赋值的线性网络编码机制如下:每一对相邻的边 (d, e) 其中d∈Input (v) , e∈Output (v) 对应一个标量kde, 称为局部编码核.则在节点v处的局部编码核就是一个Input (v) ×Output (v) 矩阵.Kv= (kd, e) d∈Input (v) , e∈Output (v)
定义2 (非循环网络的线性网络编码的全部描述) 设F为有限域, ω为一正整数.一个非循环网络图上的ω-维F-赋值的线性网络编码机制如下:每一对相邻的边 (d, e) 其中d∈Input (v) , e∈Output (v) 含有一个标量kd, e, 同时对于每一条边e有一个ω维列向量满足量fe满足: (1)
其中e∈Output (v) (2) 对于所有的虚拟信道e∈Input (s) , fe%e∈Input (s) ∈%%构成Fω的基向量
假设非循环网络中每条边的传输容量是1比特单位时间, 而且是一个无差错无时延的单信源多信宿的组播网络.设信源产生的信息符号x是ω维行向量.节点v接收到的信息符号是x.fd, d∈Input (v) , 则对于边e∈Output (v) 可以计算出传输的信息符号x·fe, 即
因为定义2中的条件 (2) 给出了边界条件, 所以只要给出了局部编码核, 全局编码核就可以按照由上到下的顺序算出.如图1所示, 网络中采用2维线性网络编码, 节点上的局部编码核可以表示为:
其中n, p, q, …, z为变量.已知道??
计算得到如下全局编码核:
1.2 网络编码可译的条件
对于非循环组播网络G= (V, E) , 其信宿节点Ti所接收到的信息流符号可用以下公式表示:, 其中表示Ti第n条输入链路传输的信息流符号, X表示信源的输出信息流符号, Ai表示Ti的n条输入链路的全局编码向量为列向量组成的矩阵, 那么每个信宿节点Ti可通过公式译出信源传输的信息流符号X, 要保证成功译出X, 必须确保矩阵Ai满秩.
2. 网络编码构造算法
网络编码构造算法的基本思想是要在时间复杂度和有限域Fq尽可能小的情况下得到每条链路的编码向量, 并保证每个信宿节点能成功译出信源节点传输的信息符号.本文主要讨论现在发展比较成熟基于单信源多信宿的线性网络编码的构造算法, 包括指数时间算法[5], 多项式时间算法[6]和针对分布式网络结构的随机网络编码[7].
2.1%指数时间算法
针对一个单信源多信宿的实行了网络编码的多播网络, 要保证整个网络组播速率达到最大流最小割定理所确定的上限, 必须保证每个信宿节点的输入链路所确定的全局编码核满秩即要保证每个信宿节点的系统转移矩阵满秩.要达到该目的, 只要保证每个信宿节点系统转移矩阵的行列式的乘积不等于零即可.针对上述问题, 文献[5]给出了一种复杂度为指数时间的构造算法.其基本思想如下:令ξ1ξ2......ξn (n=|E|) 表示组播网络中每条链路的编码向量, 令函数p=ξ1ξ2......ξn=0的点称作被p分割出来的代数族, 算法的目的就是求出一个不位于p分割出来的代数族的一个点.同时该算法给出了网络编码可译的有限域的上界, 如果一个无时延的有一个源节点和N个信宿节点的组播网络, 其最大组播速率为R, 则在有限域中网络编码可译.
2.2 多项式时间算法
针对已知拓扑结构的组播网络, Jaggi等[6]提出了一种时间复杂度为多项式的网络编码的构造算法.该算法的核心思想如下首先求出该组播网络的最大组播容量h, 然后求出信源和每个信宿节点的h条没有重叠链路的路径, 并按拓扑顺序对已知链路求解全局编码向量, 在求解过程中要保证每个信宿节点的h条输入链路的全局编码向量线性无关, 且能扩张成线性向量空间Fh, 最后得到的每个信宿节点的系统转移矩阵满秩序, 从而保证信宿节点可以恢复出信源的信息.在求解过程中, 根据局部编码核系数选择时采用算法的不同, 多项式时间算法的时间复杂度有所不同, 如果编码系数是采用确定性算法来获得, 则多项式时间算法的时间复杂度为, 如果编码系数是随机选取, 则时间复杂度为.
2.3随机网络编码
针对分布式网络结构, T.Ho等[7]提出了一种随机网络编码的分布式算法, 该算法核心思想如下:所有具有多条输入链路的中间节点的局部编码核的编码系数在有限域Fq随机选取, 而具有单条输入链路的中间节点进行存储转发操作, 其编码系数固定不变, 只要知道某个节点输入边的全局编码向量就可以求出该节点的输出边的全局编码向量, 运用迭代的方式就可以求出每个信宿节点的全局编码向量, 只要有限域Fq足够大就可以保证每个信宿节点的全局编码向量满秩, 从而使每个信宿节点成功将信源信息译出.
3.网络编码的研究趋势
经过近十年的发展, 关于网络编码的新的理论和新的应用层出不穷, 微软公司开发的以网络编码为核心技术的p2p雪崩型软件, 使网络编码也步入了实用化的进程.但从研究的深度来看很多研究仍处于探索阶段, 还有很多需要完善的地方.在本文最后, 将根据目前的研究现状和相关学者提出的预测, 对网络编码的研究趋势进行展望.
(1) 网络编码理论研究将更加深入.目前网络编码的理论研究还存在局限性, 其研究的范围还停留在单源组播网络的线性网络编码, 对于多源多播和非组播网络的网络编码研究涉及太少, 对于非线性网络编码的研究还不够深入, 有关多源多播的网络编码和非线性网络编码的研究及其应用将是未来一个重要的研究方向.
(2) 网络编码应用可行性的研究.首先要进行网络编码, 必须要求网络中的路由器具有编码功能, 但目前网络应用的路由器只能进行存储和转发操作, 所以必须对当前路由器进行更换, 那么怎样对路由器进行更换, 更换网络中多少路由器是是一个关键问题.其次, 基于网络编码的路由算法和当前的路由算法有很大的区别, 寻找基于特定编码算法的简单有效路由算法是网络编码迈向实用化的关键一步.目前对网络编码的路由算法的研究较少, 加强这方面的研究将大大推动网络编码实用化的实现.
(3) 网络编码优化问题的研究.实行网络编码可以显著提高网络性能, 例如提升网络的吞吐量, 均衡网络负载等.但同时也伴随相关的开销, 例如网络节点进行运算, 链路带宽的占用等网络资源耗费, 那么如何实现最小代价的网络编码将具有重要的理论意义和使用价值.
(4) 基于网络编码的网络连接也是目前的研究热点之一.网络通信中, 建立可靠的网络连接一直是人们重点关心的问题, 针对基于网络编码的网络连接已有相关学者进行研究, 但研究仍处于初步阶段.
4.%结束语
网络编码的提出改变了通信网络中网络节点对信息只能进行存储和转发操作的传统观点, 证明了网络节点进行编码操作可以使组播速率达到容量上限, 网络编码一经提出, 就成为学术界研究的热点, 经过几年的发展, 在理论和应用上都取得了一定的研究成果, 微软公司已把网络编码技术成功运用到p2p软件中预计在未来的发展中, 网络编码的研究和应用的领域将继续扩大, 更好的促进通信网络的发展。
参考文献
[1]Bollobas B.Graph theory an introductory course[M].New York:Springer-V erlag, 1979
[2]Rudo If Ahswede, Ning Cai, Shuo-Yen Robert Li, etal Network infor-mation flow[J].IEEE Trans Inform Theory, 2000, 46 (4) :1204-1216
[3]S.-Y.R.Li, R.W.Yeung, N.Cai.Linear network coding.IEEE Trans.Inf.Theory, 2003, 49 (2) :371-381.
[4]R.W.Yeung.Information Theory and Network Coding[M].Springer, J31, 2008.
[5]R.Koetter, M.Medard, An algebraic approach to network coding.IEEE/ACM Tranm.On Networking, 2003, 11 (5) ;782-795.
[6]P.Sanders, S.Egner, and L.Tolhuizen.Polynomial time algorithms fornetwork information flow.Proceedings of the fifteenth annual ACM sympo-sium on Parallel algorithms and architectures, 2003, 286-294.
[7]T.Ho, M.Medard, J.Shi, et al.On randomized network coding.41 st An-nual Allerton Conference on Communication, Control and Computing, Oct.2003.
无线数据的叠加编码多播技术 第4篇
简介:
无线信道衰落和传输数据完整性丢失是所有无线通信系统的一大难题, 特别是消费视频内容 (如, 与网络电视IPTV相关的服务) 的广播高带宽。导致信道衰落的原因很多 (例如:使用者与基站间的距离, 移动台传播, 城市建筑物等) , 这使得有效的多播技术 (多个终端使用者接受一个数据流) 成为无线网络服务商的一大挑战。
在无线视频多播过程中, 有必要选择一个各覆盖区域内多数接收机都能接受数据且数据丢失最小的传输速度。这必然会导致终端使用者对无线信道良好的接收机利用不足, 而无线信道不好的终端使用者可能接受较差的信号。由于终端使用者的接收机信道质量各不相同, 因此必须恰当选择传输速度, 以保证多数用户能接受信号, 这将需要无线网络服务商在频谱和基础设施方面的大力投资。
为了解决这种信道质量问题, UW研究人员已经研发出一种能产生专有编码的智能多播信号的新方法, 该方法融合可分级的视频编码SVC, 多描述视频编码MDC和叠加编码SPC, 以最大化所有预定接受者接受的视频质量, 而不用考虑接收机的信道质量。这种方法可被应用到硬件或软件实施中。优势/使用:
1.保证娱乐业和广告业的有效无线视频多播 (充分利用网络服务商的频谱和贷款)
2.保证在线视频或预约视频内容的有效无线多播
3.优化 (固定和移动) 终端使用者接受的数据质量
4.与主要的新兴宽带技术 (例如:Wi MAX, LTE和WCD-MA) 兼容
专利状态:
已申请PCT专利, 已在台湾申请专利
开发阶段:
功率控制下的协作多播能效优化 第5篇
关键词:功率控制,完全搜索,变功率,时间分配
随着无线通信技术的发展, 系统能耗与效率问题已经成为协作多播技术研究的焦点[1]。合理分配基站和中继节点的功率可以提高中继的工作时间和发射效率, 从而扩大覆盖范围, 延长系统生命期。目前研究方向主要有三个方向:发射功率最小化、剩余能量最大化以及能耗效率最大化。在能效方面, 文献[2][3][4]基于功率控制原则, 提出了一种功率代价函数的方案。文中使用多节点协作多播模型, 选出一个节点作为中继转发, 并定义了效用方程的概念, 文章中分别给出了三种最优节点选择方案:文献[2]注重降低基站和中继的总功耗;文献[3]注重降低基站和中继中较大的功耗, 在节点上获得较高的公平性;文献[4]注重整个系统的的功率分布, 使其更加平均化。本文依托导师课题, 针对协作多播中继选择策略展开研究, 探索基于能量控制的协作多播能效优化策略。
1 能量效率
协作传输中的最优功率分配问题, 要考虑两种场景:
(1) 跟源节点相比, 中继可以传输不同的功率, 因此优化空间是二维的:源和中继分配功率。这种设置的解提供了可能的最小总功耗。
(2) 源节点和中继节点发送功率相等。这个场景更容易执行, 因为最优化空间是一维的, 可以得出一个闭式解。
很显然, 等功率分配问题的解决方案为允许源节点和中继节点具有不同的发射功率的一般场景提供了次优解。这种条件下两种功率分配方案具有很近的性能。
传输的总平均功率可以表示为[5]:
最优化问题可以表示为[5]:
如果中继发射功率相同, 最优化问题可以表述为:
2 系统模型与算法
在半径为R的圆形单跳网络中, 基站向多播组中的N个节点传输信息, 节点i位置为 (di, θi) 。第一阶段, 基站在T1内以传输速率R1向所有节点传输信息。第一阶段成功接收到信息的一些或全部节点, 作为中继在T2内以传输速率S2转发信息。在这个过程中要确保S1*T1=S2*T2, 来确保信息的完整性。基站在第一阶段向多播组传输信息x, 对于节点i来说, 第一阶段接收到的信息可以表示为:
在第二阶段接收到的信号yij, 2将会是它从其他M个中继点接收到信息的叠加, 即:
为了提高单位能耗系统的吞吐量, 中继节点数目必须要限制, 可以下式限制:
在网络内, 接近基站节点信道状态要好于距离远的。因此, 系统按照一个最小信噪比原则, 将节点信道状态从差到好排序, 优先选择前面的作为中继。
2.1 完全搜索算法
完全搜索算法的原理就是, 系统不惜耗费计算复杂度来一次查找不同中继数目的吞吐量 (接收信息节点个数) 。具体流程为:
2.2 变功率中继选择算法
变功率中继选择算法的原理就是将中继转发功率有相等变为不等。具体为:
具体流程为:
2.3 时间分配算法
先前提出两个算法都是以基站和中继发射时间相同为前提的。事实上第二阶段节点接收的信息是由许多中继转发信号的叠加, 尽管每个中继的功率很小, 但叠加后的信息速率要比基站直接传输好很多。在第二阶段使用较长时间和较低传输速率, 是对资源的浪费。在此提出一种基于时间分配的中继选择算法。具体流程为:
3 实验结果与分析
假设用户节点均匀分布。传输时间T和覆盖率分别设定为1ms和0.5。基站和中继节点的功率Pbs和Pue分别为43d Bm和34.8d Bm, 噪声功率N0设定为-128d Bm。蜂窝网半径R为8km, 用户节点i的路径损耗为PL (di) =di-η。
在图1中可以看出当α大致小于2时, 完全搜索和变功率算法要好于CMS-min算法, 并且在α大致为1.2时, 变功率方案开始超过完全搜索算法。因为当α较小时, 变功率方案的优势不能显现, 而此时变功率方案中的节点功率太小, 其对其他节点的信噪比增加的贡献量极小, 而完全搜索算法是以耗费复杂度来找到最佳中继, 故此阶段完全搜索算法要好于变功率中继选择算法。随着α的增大, 变功率节点的贡献量开始增大, 作用逐渐显现。故会出现的图中的“超越”。
当α大于2.5时, 变功率算法结果趋于平稳, 而完全搜索算法仍然不断提高。这是由于当α很大时, 无论哪个算法, 每个节点功率都处于“充裕”水平, 故变功率算法会趋于平稳。而完全搜索算法依然耗费大量CPU计算最合适的节点集合, 故其依然在增大。但是此时计算复杂度过大, 会导致系统功耗增大, 时延增加。而且α过大, 就会使得系统效率变低, 也违背了基本功率控制的原则。故在适当的α时, 变功率中继选择算法性能要好。而α适中的话, 也符合实际网络中的情形。
图2和图3给出了时间分配方案的仿真图, 这两个图分别是功率控制因子α=1和α=1.5时求得的多次结果平均值。
在图2中可以看出CMS-min方案最合适的时间分配比大致为0.51-0.58左右;完全搜索算法的时间分配比例大致为0.57-0.63左右;而变功率中继选择算法分配的时间分配比例大致为0.61-0.72左右。显然在时间控制因子上来看, 变功率中继性能最好, 因为时间控制因子a是第二阶段的转发时间, a越大, 则第一阶段时间 (1-a) 越短, 从而基站的传输速率越大, 这样第二阶段传输速率越小, 进而会有更多的节点可以成功接收到信息。但是当a过大时, 第一阶段传输速率过大, 则可作为中继的节点会开始减少, 进而第二阶段转发信息也会受到影响。从而使信息量开始急剧下滑。
在图3可以看出, 在吞吐量上, 各方案相比图2有了提高, 这是因为可用的功率增大, 导致备选中继节点增多以及中继转发功率变大。并且, 各方案的最佳时间控制因子数值相比图2发生了“右移”。CMS-min方案最合适的时间分配比大致为0.54-0.61左右;完全搜索算法的时间分配比例大致为0.6-0.66左右;而变功率中继选择算法分配的时间分配比例大致为0.66-0.75左右。这说明功率控制因子增大可以使得传输速率增大。这与实际情况相符。
同时从两图中可以看出, 当a过大时, 曲线出现波动较为严重, 这是由于中继节点过少, 并且仿真运行过程中每次的节点位置都是随机产生所造成。
参考文献
[1]Fen Hou;Cai, L.X.;Pin-Han Ho;Xuemin Shen;Junshan Zhang, "A cooperative multicast scheduling scheme for multimedia services in IEEE 802.16 networks", IEEE Transactions on Wireless Communications, vol.8, no.3, pp.1508, 1519, March 2009 doi:10.1109/TWC.2009.08041.
[2]Binglai Niu;Hai Jiang;Zhao, H.V., "A Cooperative Multicast Strategy in Wireless Networks, "Vehicular Technology, IEEE Transactions on, vol.59, no.6, pp.3136, 3143, July 2010.
[3]Na Guan;Yiqing Zhou;Hang Liu;Lin Tian;Jinglin Shi, "An Energy Efficient Cooperative Multicast Transmission Scheme with Power Control, "Global Telecommunications Conference (GLOBECOM 2011) , 2011 IEEE, vol., no., pp.1, 5, 5-9 Dec.2011doi:10.1109/GLOCOM.2011.6133.
[4]Chi Kaikai, Jiang Xiaohong, Horiguchi S.Network Coding Opportunity Analysis of COPE in Multihop Wireless Networks[C]//IEEE Wireless Communications and Networking Conference, 2008:2858-2863.
[5]H.Zhao, and W.Su, “Cooperative wireless multicast:performance analysisand power/location optimization”, IEEE Trans.on Wireless Commun., vol.9, pp.2088-2100, Jun.2010.
[6]K.J.Ray Liu著.协作通信及网络[M].任品毅, 译.北京.电子工业出版社, 2010:95-106, 299-306.
[7]陈丹.协作与认知无线通信网络中若干关键技术研究[D].北京:北京邮电大学, 2012.
[8]ZHANG Qian-qian, GAO Wei-dong, PENG Mu-gen, WANG Wen-bo.Partner selection strategies in cooperative wireless networks with optimal power distribution.The Journal of China Universities of Posts and Telecommunications, 2008, 15 (3) :47-50.
多播系统 第6篇
互联网基于IP协议为不同服务类别提供尽力而为的服务。随着网络的发展,新的应用不断涌现,如视频点播、视频会议、远程教育、协同工作等,这些新应用的共同特点是:
(1) 对基于IP的网络提出了服务质量(Quality of Service,QoS)要求,如必要的带宽需求、低的端间延迟、低抖动、低丢失率和可靠传输等;
(2) 一点发送消息,多点接收,即多播。由于多播技术只是在多播树的分枝处复制多播流,因而节省了网络有限的带宽资源,也减轻了服务器负载,因而具有广阔的前景。
目前、为应用提供服务质量保证的技术有:多协议标签交换协议MPLS、集成服务模式IntServ和差分服务模式DiffServ[1]。MPLS协议使用标签交换在数据链路层和网络层提供快速流量传输,在MPLS网络中,入口路由器根据流的等价类为流加上标签,核心路由器检查标签并转发流,而在出口路由器,标签被移除,流被还原。这种方法使得边界路由器复杂,而核心路由器相对简单。
集成服务模式IntServ使用资源预留RSVP协议为每个流提供不同的服务质量保证,显然,该服务模式具有更多的QoS粒度,但是路由器必须为每个流维护状态信息,不具备可扩展性。
与IntServ模式比较,DiffServ模式是为每类应用提供QoS保证,具有较粗的服务粒度,因而具有更好的可扩展性。在DiffServ区域,边界路由器根据流的区分服务标记DSCP对流分类,确保符合流的TCA规范,并归入行为聚集。在该模式中,核心路由器要检查流的DSCP得到 QoS参数,也需要IP协议的支持(因为DiffServ中的DSCP替代了IP4中的ToS域或IP6中的CoS域)。
上述3种模式适用于满足服务质量的单播应用,当应用于多播时,由于上述协议的局限性,以及多播应用的特点,会遇到各种困难。本文分析这3种技术在多播中的应用,指出存在的不足之处,并综述了不同文献的解决方案。同时指出了混合网络为多播应用提供QoS的困难和解决的技术路线。
2 IntServ模式与多播
集成模式IntServ是为实时应用如视频会议等远程场景而设计的,其内在的固有特性就支持多播。在QoS方面,IntServ结构提供两类服务,即可控负载型服务和质量保证型服务,前者提供时延、带宽与丢包率等参数的保证,不能控制固定延迟,但能保证排队延迟的大小;后者使用资源预留协议RSVP,能保证最小的传输时延。
资源预留RSVP协议面向接收者,即由接收端发起资源预留,适用于单播通信和多播通信。针对不同的资源预留请求,RSVP协议定义了3种资源预留模式:固定模式、通配符模式和显示共享模式。资源预留使用了PATH消息和RESV消息,当信息发送源接收到不同接收成员的RESV消息时,便能根据接收到的消息计算出多播路由树。
一旦预留了资源,请求的服务质量便能得到保证。但在IntServ模式中,网络中的每个路由器都要维护各类数据库(含软状态信息等),并且功能模块实现复杂(如RSVP信令要提供QoS协商机制、各路由器要建立和维护预留信息、对用户的请求要实现接纳许可控制和传输流的监控等),导致的直接后果是可扩展性和鲁棒性差,导致IntServ模式在大型网络、尤其是重负载网络中的应用。
3 DiffServ模式与多播
IntServ模式的不可扩展性是差分模式DiffServ产生的主要原因。DiffServ模式提供两类QoS服务:快速转发EF和保证转发AF。DiffServ模式的主要成员有:核心路由器、边缘路由器、资源控制器。在该模式中,网络的边缘路由器对每个分组进行分类、标记DS域,用DS域来携带IP分组对服务的需求信息;在网络的核心节点上,路由器根据分组头上的DS码点选择码点所对应的转发处理;而资源控制器配置了管理规则,为客户分配资源,他可以通过服务级别协定SLA与客户进行相互协调以分享规定的带宽。由于DiffServ已有的框架、结构都是基于单播的,并且多播成员的加入、退出组的动态随机性以及网络的异构性使得入口边界路由器很难对多播流量进行准确的监控,因此将DiffServ模式应用于多播会产生新的问题[2,3],存在的问题主要表现在:
(1) 被忽视的预留子树问题NRS[4,5]
DiffServ模式中的资源必须先预留再使用,当新成员加入多播树时(使用PIM-SM,PIM-DM,DVMRP等[1] 协议),在流复制点,DS域的内容被复制到每个流的IP报头,并且复制的流会获得与原来多播组相同的DSCP值,并获得与原先相同的调度转发处理和区分服务,但是新的加入并没有经过接纳许可控制和资源预留的必要过程。由于额外的资源被绕过区域管理的新增接收节点所消耗,其他正确预留资源的接收者的服务质量将受到负面影响甚至遭到破坏。
要解决NRS问题,就要防止任何未经资源预留就享用高级服务的情况,因此,NRS问题的解决方案是:在子树与原多播树的接合点,转换发向新成员的DS编码,使其对应的PHB值比默认的PHB级别低,即使用BE(Best Effort)甚至更低的LE(Limited Effort)服务,从而制约新的传输流即使对BE服务的资源也不能抢占,维护了公平性,只有当新成员的资源预留许可得到管理实体的确认并得到新的DSCP后,才可以享受比BE和LE级别高的服务质量。
(2) 扩展性问题
在传统多播模型中,随着多播组成员的增加,多播树上的路由器需要保存的信息量也将随之增加,导致在DiffServ 网络中实现多播传输却存在着可扩展性问题[6]。
可扩展性问题解决方法之一是减少内部路由器的多播状态[6],即只在边界路由器进行多播树的计算与维护工作,在内部路由器中选择关键节点保存多播转发表,而其他非关键中间路由器等同于普通路由器,不保存任何多播组状态,从而减少内部节点的负担,提高了可扩展性。另一种方法是消除内部路由器的多播状态,如EBM[7]和DSMCast[8] 方案。EBM方案只在边界路由器实现多播,在域内设置一个逻辑管理员节点用于管理域内的多播组的信息,由管理员节点给要加入多播组的新成员选择一个边界节点作为加入点,多播流被转换为多个单播流,所以无须在内部路由器维护多播路由表;DSMCast 则利用了封装技术,在边界路由器将多播树的信息编码添加到报文头,内部路由器根据自己的标识符或IP地址以及数据报文中携带的多播树信息查找到相关的转发记录,根据此记录进行报文复制、重新标记与转发。
(3) 异构多播组问题
在一个异构的网络环境中,多播组的多个接收成员可能希望获得不同的服务质量,如有的仅希望获得基本的BE服务,而其他成员希望获得更高的服务。对服务质量参数要求的不同增加了问题的复杂性。更严重的是,不同成员要求的服务种类可能没有可比性而无发统一服务质量。
DiffServ 是面向接收者的,服务质量等级由发送源来决定。当新成员动态加入多播组时,要求中间路由器能根据用户不同的QoS 请求标记出口报文的DSCP 值, 而中间路由器不保存每个流的状态,并且不具备标记功能,如何实现异构多播组问题变成为多播关键问题之一。
较好的解决方案[4,9] 是扩展路由表并存储DSCP,再辅以管理措施。在没有预约资源的情况下,接收者仅允许获得LBE服务;当要求的两种服务类型不能比较优劣时,上游节点只需传送较好的即可。
(4) 发送方任意动态改变问题
在一个多播组中,任意成员都可以发送消息,而DiffServ是单向结构,这意味着,如果有多个发送者同时发送数据流的话,则其资源必须分别预留。
对于只需要BE服务的成员而言,可以在任何时候向组发送数据流而无需任何其他机制。当有QoS需求时,可以在多播路由表中为每个链路增加一项DSCP,并配以一定的管理机制。该方案简单,同时也保持了DiffServ模式良好的可扩展性。
其他如服务类间的公平性问题、多点到多点的多播传输问题和共享树的流量监控问题等[3]也限制了DiffServ模式在多播领域的使用。
4 MPLS协议与多播
多协议标签交换MPLS是面向连接和IP路由技术的一种新的IETF交换方案的标准。他使用第三层(L3)转发信息启动第二层(L2)分组交换,将第二层交换的高性能和第三层转发的高扩展性融为一体,而IntServ和DiffServ模式工作在网络层。
基于IP的MPLS网络包含2个主要组件:控制组件(边缘标签路由器LER)和转发组件(标签交换路由器LSR)。控制组件使用标准的路由协议(L3)与其他路由器交换标签并维护前向路由表,当分组到达时,转发组件使用分组中的标签信息和控制组件维护的路由表(标签转发信息)确定分组的路由。在MPLS多播中,一般使用反向路由协议(RPF协议)来确定接收的分组是否属于当前多播组,因此,MPLS中的多播路由树基于标签值和入口界面来建立。
MPLS协议实现多播存在的问题是:
(1) 标签交换路径LSP的设计
多播实现需要设计标签交换路径,而目前的MPLS协议只涉及点到点的LSP实现,并且组成员的动态关系使得LSP不够稳定,也需要消耗大量的标签和信息传递开销;
(2) 流量聚集问题
在MPLS网络入口,单播流要聚集为多播流并且映射到LSP,其目的在于获得MPLS的可扩展性,但是这种流量聚集并不适合多播,目前的研究也只是局限在转发路由器的状态,而不是包含一组路由器的LSP;
(3) 在核心路由器中L2层的分组交换和L3层的信息转发共存问题
如果有成员通过非MPLS网络加入到多播组,则MPLS网络中的某个边缘标签路由器LER必须维护两个前向路由表,一个路由表在L3层,另一个在L2层(通过非MPLS网络),使得分组通过该路由器的不同出口到达MPLS网络的下一个路由器和非MPLS网络;如图1所示,S1、S2是发送者,R1、R2是同组中的接收者,标签交换路由器LER使用RP路由协议[1],相应的多播树为RPT;当S1发送时,R1、R2通过RPT树接收分组,如果后来R1通过SPT多播树加入该会话组,则LER路由器必须为同一个多播组维护两棵多播树[10],导致在用SPT替换RPT时,一个成员接收到2份同样的分组。
对于上述问题,解决方法是要么借助于L3路由,要么建立基于特定源的标签交换LSP[11]:MPLS的L2层使用ATM模式传输标签,根据多播共享树中源的不同虚拟通道为不同的源赋以标签,在图1的LER路由器中,再将多播路由表从共享树映射特定源的树,并构造下一跳的标签转发入口。
在属于不同的自治系的多个MPLS子网络系统中,可能有些MPLS子网络不支持边界网关协议BGP,使得成员的加入请求不能到达其他AS中的数据发送源。解决方法是使用扩展的MPLS协议预先建立满足QoS约束的多播路由树[12],由于树的所有信息嵌套在MPLS协议中,MPLS网络的内部路由器就不需要支持多播,这种方法的缺点是不适合动态多播环境。
MPLS协议用于多播存在的其他问题是:标签的缺乏和可扩展性问题,其中后者表现在:路由器需要为每个活动的多播组维护路由状态信息,增加了组播路由器的处理开销。
5 混合网络结构与多播
实用网络一般是两种或者两种以上上述网络模式的组合,这样的混合网络结构在基于QoS的多播应用中同样存在问题[10],下面分别加以介绍并给出问题的解决方法。
(1) IntServ和DiffServ相结合的多播
如图2所示,S、R分别为QoS流的发送者和接收者,IntServ区域的边缘路由器(ER1,ER2)与DiffServ区域的边界路由器(BR1,BR2)通过接口直接相连,其中,IntServ区域内部使用RSVP信令传输分组。存在的主要问题是RSVP信令如何穿越DiffServ区的问题。
解决的方案是DiffServ网络区域的管理实体BB使用通用的开放策略服务[13](Common Open Policy Service,COPS):当多播组形成时,RSVP的PATH消息在DiffServ区域中通过隧道被广播到所有的接收者;当接收者希望获得比BE更好的服务时,使用RESV消息响应,DiffServ接收到RESV消息时,发送COPS消息给其内部的管理实体BB,BB和DiffServ内部的所有路由器进行交互并为接收者预留资源。
在提供端到端QoS方面,IntServ和DiffServ是一对很好的互补模式[2],因此,不同的文献提供了若干不同的方案和实现机制,如面向可扩展核心的动态分组状态的DPS方案[14,15],在分组头部对数据流的状态进行编码,缺点是实现比较困难;文献[16]提出了一种基于3种优先级别的带宽确保型服务BGS机制来提供端到端的QoS;文献[17]则提出了另外一种在DiffServ的网络中结合RSVP协议提供资源预留和QoS保证的框架,其中允许DiffServ边界路由器与RSVP协同工作,而内部路由器不识别RSVP消息。
(2) MPLS协议和IntServ模式相结合的多播
在MPLS网络中,一般扩展IntServ中使用的RSVP协议,让其具有流量工程(TE:Traffic Engineering)的功能来保证应用的QoS。严格来讲,流量工程TE是为单播应用设计的,文献[18,19]则在此基础上提出了不依赖于传统多播路由协议建立多播树的方法。
文献中的解决方案是预先建立在线/离线的满足流量工程规范的多播树(称为PRE-T)。在基于源的多播树[18]方法中,树PRE-T被包含在PATH消息中发送到所有的组成员,源接收到成员返回的RESV消息后自底向上产生多播树;而文献[19]既可以基于源(为新的多播会话建立多播树)、又可以基于接收者建立多播树(为成员动态加入/离开建立多播树),对于一个多播会话而言,预先计算的树的信息保存在源的多播信息数据库MIDB中,当新成员要加入时,发送JOIN信息给源,触发树的重新计算。
在MPLS中使用RSVP-TE实现多播的好处是扩展性强,因为MPLS中的路由器不需要维护MIDB信息,缺点是过多的PATH消息和RESV消息增加了网络的负载。
(3) MPLS和DiffServ相结合的多播
如上所述,MPLS在L2层实现,而DiffServ在IP头实现。因此,这两种方法结合实现多播时需要进行服务质量的映射,由于DSCP域有6 b,而MPLS的EXP域只有3 b,在映射时,某些信息将丢失。图3给出了MPLS和DiffServ结合实现多播的结构。
文献[20]提出了E-LSP方法,给出了在DiffServ网络中支持MPLS的细节:当多个行为聚集(BA)映射为单个LSP时,MPLS头部的EXP域被用来确定每跳行为(PHB),对于一个给定的EFC,一个LSP可以最多支持8个BA。文献[21]则扩展了E-LSP方法:在发布流量时,对相同的LSP使用相同分类,即标签被编码到EFC和服务类信息中,其中定义了三种服务类型:0类(BE服务)、1类(EF服务)、2类(AF1服务和AF2服务)。文献[22]则提出了在基于MPLS的ATM网络中支持DiffServ模式的实现算法。
6 结 语
IntServ集成模式、DiffServ差分模式和MPLS协议是Internet上实现服务质量的3种技术,应用于多播时各有其特点,其中IntServ技术固有的特点是支持多播,并且为每个流提供相应的QoS,其严重不足是可扩展性问题;DiffServ技术为每类流提供服务质量,具有很好的可扩展性;MPLS和DiffServ具有相似性,缺点是存在“胖边沿瘦核心”路由器问题。
本文给出上述3种模式在实现基于服务质量的多播时存在的问题和部分解决方案,也指出了3种技术混合实现满足服务质量的多播时的困难和解决策略。在多播应用需求日益增长的今天,对该问题进行研究具有现实意义。
摘要:互连网络为数据、音频和视频等应用提供不同的实现服务质量(QoS)的策略,如集成服务模型IntServ、差分服务模型DiffServ和多标签交换协议MPLS等。随着多播应用的出现,上述技术不能有效地为多播提供端到端的服务质量。分析上面各种技术在多播应用中的不足,并给出了不同文献提出的解决方案,同时也分析了异构网络实现满足服务质量的多播策略和遇到的问题。最后指出了实现多播服务质量要解决的问题。
多播系统 第7篇
关键词:网络多播路由,编码软件,网络吞吐量,软件设计
0 引言
随着计算机通信的发展,人们的生活方式逐渐趋于信息化,多播通信成为网络的一项基础通信服务,可大大减少网络带宽的使用,广泛应用于很多领域[1,2]。网络编码和网络多播技术的结合能够有效提高网络多播路由的性能,因此,对网络多播路由的改进编码软件的研究具有重要意义,已经成为相关学者研究的重点课题[3,4,5]。
目前,有关网络多播路由编码软件的研究有很多,其中,徐斌将网络多播路由的费用问题引入编码分组中,通过绘制最小费用子图给出最小费用编码算法,将传统网络编码问题转换成线性规划问题进行解决,但该方法实现过程复杂,不适用于实际应用;沈小建提出一种基于约简化网络的最短路径族编码算法,在一个约简化的网络中查找最短路径,从而获取编码方案,该方法计算复杂度较低,但对路径长度均衡的网络编码时,其编码路径的组合状态较为随机,导致资源消耗高[6];娄辉提出一种基于链路共享度的网络多播路由编码算法,通过链路共享度的大小可获取编码路径最高的共享链路集,实现网络编码,但该方法不能保证每条路径的长度尽可能短,浪费资源[7];韩莉提出一种基于随机线性的网络多播路由编码算法,该算法依据随机线性规则对路由进行编码,但无法适应随机改变的拓扑环境[8];徐斌提出一种基于代数学框架的网络多播路由编码算法,该算法通过代数研究使用线性编码的网络容量问题,依据容量大小完成编码,但该方法运行时间长、效率低下。
针对上述方法的缺陷,提出一种基于Koetter指数时间的网络多播路由改进编码算法对编码软件进行设计,分析了多播路由的总体设计。以降低带宽资源为目的,采用Koetter指数时间算法实现网络多播路由编码,给出了编码的详细代码。实验结果表明,所提方法不仅节省网络资源,且显著降低多播路由时延,增强网络吞吐量。
1 网络多播路由的改进编码软件设计与实现
1.1 网络多播路由总体设计分析
网络多播路由器为网络的核心,完成网络的主要协议和功能。和传统单播路由相比,多播路由的结构更为复杂,包括数据包编码转发模块、输入模块、开关仲裁模块、死锁控制模块和输出模块,详细结构如图1 所示。
网络多播路由器各模块详细功能如下:
数据包编码转发模块主要负责在多播拓扑的多条不相交路径上编码和转发多播数据包,增强网络吞吐率。在发送多播数据包的过程中,路由器依据多播路由表对数据包进行转发,同时在多播路由器上构建数据包编码算法,实现编码操作。
输入模块主要用于实现网络多播路由和上游节点的信息交换,为了从上游节点接收到的数据提供存储空间,依据开关仲裁模块的命令输出数据至交叉开关。
开关仲裁模块依据从每个输入端口接收到的仲裁请求信号判断能向特定输出端口传输信息。
死锁控制模块主要具有以下三个功能:当本地路由节点出现死锁现象时,通过死锁控制模块对其进行检测;完成检测后,将出现死锁现象的输入端口虚信道中的数据储存于死锁控制器中缓存空间中,一段时间后,正常发送数据;正常发送数据一段时间后使多播路由恢复正常的数据交换。
输出模块依据下游节点流对数据的输出进行管理,并且将所输出微片分配到合理的下一节点,同时对数据信息进行更新。
网络多播路由总体设计分析为基于Koetter指数时间的网络多播路由改进编码算法提供依据。
1.2 基于Koetter指数时间的网络多播路由改进编码算法设计与实现
传统网络多播路由编码方法采用多播分布树进行编码,链路容量遭遇瓶颈,编码节点较多,导致浪费带宽资源的问题。因此,采用基于Koetter指数时间的网络多播路由改进编码算法对编码软件进行设计,其基本思想如下:将网络多播路由看作是一个系统,将传输数据看作是输入和输出,将网络多播路由中各节点的局部编码核看作是参数,则输入与输出之间的关系可通过一个矩阵进行描述。所以,编码问题就转换为从中间节点寻找合适的编码系数问题。 在网络N(G(V,E),s,T,ω) 中,用x = (x1,x2,...,xω)描述信源节点要发出的消息向量,用ye描述信道e上发送的符号。则网络中任意信道e发送的符号ye均为原始信息向量x = (x1,x2,...,xω)的函数。针对多播路由,需对网络进行下述分析:在进行编码的过程中,假设和原网络图G(V,E) 相应的线图上的邻接矩阵F为:
在式(1)的基础上,信源处 ω×| E| 转移矩阵A可描述成:
式中,用于描述虚拟信道。由式(2)可描述输出向量的|T| ×| E| 转移矩阵B :
给出矩阵A,B和F的网络N(G(V,E),s,T,ω),则其系统转移矩阵可描述成:
式中,I用于描述的单位矩阵。
在多播路由中,可将信源和各信宿节点ti∈T的通信当成单播通信,相应的存在一个转移矩阵,用Mi进行描述。则个信宿节点分别和个转移矩阵对应,即。如果所有信宿节点均可准确译码,则上述转移矩阵必须全为非奇异。设F为全部转移矩阵的行列式的乘积,δ用于描述F中变量kei,ej(局部编码核)的最高次数。则存在一个元素取值于F2i(2i>δ)的网络编码,使得N(G(V,E),s,T,h)的信息传输能够满足网络的多播容量。
建立网络多播路由编码的关键就是获取合适的局部编码核kei,ej,head(e)i=tail(e)j。建立过程如下:
(1)输入:一个关于参数ξ1,ξ2,...,ξn的多项式F;初始化整数ℓ=1,i=1;
(2)通过步骤(1)得到多项式F中参数ξℓ的最高次数δ,用i描述能够满足2i>δ的最小整数,获得有限域F2i;
(3)在有限域F2i中获取能够使的元素aℓ,同时假设
()若ℓ=n,则结束迭代;否则,令ℓ=ℓ+1,重新进行步骤(2)。
输出:a1,a2,⋯,an。
通过输出模块对数据的输出进行管理实现了基于Koetter指数时间的网络多播路由改进编码算法设计。除此之外,通过该算法建立编码所在域的值主要与网络多播路由N(G(V,E),s,T,h)的信宿节点个数和信源速率有关,也就是
2 代码设计
采用上述算法进行网络多播路由编码的部分代码可描述如下:
3 实验结果与分析
为了证明本文方法的有效性,需要进行相关的实验加以验证。实验将HO编码方法作为对比进行分析。
3.1 两种方法时延的比对
分别将本文方法和HO方法应用于多播路由中,对两种方法下多播路由时延进行比对结果如图2 所示。
由图2 可知,采用本文方法和HO方法的多播路由时延均随网络负载的增加而增加。但本文方法的多播路由时延增加较慢,这是因为本文方法使多个数据分组同时被传输,降低了时延。
3.2 两种方法下多播路由网络吞吐量的比对
在本文方法和HO方法下,对多播路由网络吞吐量进行比对,结果如图3 所示。由图3 可知,采用本文方法的网络吞吐量明显大于HO方法。因为本文方法能够一次发送多个数据分组,增加了网络的吞吐量。
3.3 两种方法下多播路由网络带宽资源消耗总量比对
在本文方法和HO方法下,对多播路由网络带宽资源消耗总量进行比对如图4 所示。由图4 可知,采用本文方法下的网络带宽资源消耗总量远远小于HO方法,并随着网络负载的逐渐增加,资源消耗总量的差异越来越大,以此说明本文方法的资源消耗量较少。
4 结论
本文提出一种基于Koetter指数时间的网络多播路由改进编码算法对编码软件进行设计,分析了多播路由的总体设计,通过数据包编码转发模块在多播拓扑多条不相交路径上进行编码和转发多播数据包,利用输入模块实现网络多播路由和上游节点的信息交换,通过开关仲裁模块判断能够向特定输出端口传输信息的输入端口,利用死锁控制模块对出现死锁现象的路由节点进行检测,一段时间后使多播路由恢复正常的数据交换,通过输出模块对数据的输出进行管理。以降低带宽资源为目的,采用Koetter指数时间算法实现网络多播路由编码,给出了编码的详细代码。实验结果表明,所提方法不仅节省网络资源,而且显著降低多播路由时延,增强网络吞吐量。
参考文献
[1]谭丹丹,谭晶晶.基于网络编码的多播车载网路由算法研究[J].时代报告(学术版),2013(1):39.
[2]尹吉星,任平安.一种改进负载均衡的网络编码多播路由算法[J].计算机工程与应用,2015(13):81-85.
[3]史媛芳,李润丰.基于纵向优先多播路由算法的片上网络路由器设计[J].新乡学院学报,2015(3):28-32.
[4]苏亚娟,束国伟.一种小型多播路由器的设计与实现[J].福建电脑,2013,29(7):35-37.
[5]尹吉星,任平安.基于网络编码的多播路由算法研究[J].计算机技术与发展,2014(5):79-82.
[6]沈小建,陈志刚,刘立.无线mesh网络中编码感知且负载均衡的多播路由[J].通信学报,2015,36(4):89-95.
[7]娄辉,肖灿文,董德尊,等.一种基于气泡流控的改进多播路由算法[J].计算机工程与科学,2015,37(2):191-198.
多播系统范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


