实时多媒体数据的传输和处理技术的研究

2020-09-10 07:22张宽
科教创新与实践 2020年34期

张宽

摘要:随着物联网产业的发展,实时多媒体数据传输业务显著增加。本文采用UDP-TCP混合机制实现传输速率控制和丢包重传,提出了一种基于代理的应用层组播(ALMP)方法实现多媒体数据的并发传输。最后,测试了数据转发节点在并发传输中的性能。结果表明,在用户具有高度并发操作的情况下,数据转发节点的工作是有效和可靠的,与传统方法相比,本文提出的基于代理的应用层组播方法在优化数据转发节点性能方面是有效的。

关键词:实时多媒体;并发;传输控制;应用层组播

1. 引言

随着物联网产业的兴起,越来越多的数据需要在异构网络中传输。监控设备、手机等作为终端设备需要传输大量的多媒体数据。特别是由这些设备组成的监控系统需要实时传输多媒体数据,其典型的传输方式是:采集的多媒体数据经过压缩编码后实时发送到网络。然后用户从互联网上接收数据,并对数据进行解码回放。与传统的FTP、E-mail等业务相比,这种传输方式在实时性、容错性、媒体同步性等方面有着严格的要求。

物联网的快速发展大大增加了终端设备的使用。多媒体数据业务的实时传输量呈爆炸式增长。当前的Internet是一个异构网络,它以尽力而为的方式工作。它的终端接入、可用带宽、时延抖动、损耗等因素都是动态的、不可预测的,因此单一的传输协议很难满足实时多媒体数据传输的要求,特别是当终端和用户数量达到一定水平时,关键节点的性能处于并发状态传播将是一个巨大的挑战。如何在当前的Internet环境下实现多媒体数据传输的高并发性是一个亟待解决的问题。

2. 基于代理的应用层组播方法

基于代理的应用层组播(ALMP)策略性地在Internet上部署了一些高性能的服务器。这些服务器由代理服务器维护,并进行数据复制和传输。该方法不需要与IP组播相关的固定网络设备,可以根据特定的网络环境动态调整一些参数[1]。ALMP按其功能可分为两个平面,一个是组播控制平面,另一个是组播数据转发平面。

2.1 多播控制平面

组播控制平面的核心功能是构造和维护应用层组播树。它负责每个节点的组成员合法地加入或退出组播树。ALMP采用分层的思想构建整个组播树。它将整个组播树分为两层,每层维护自己的组播组成员,其中一层的变化对另一层没有影响,从而降低了整个组播控制平面的维护成本。代理作为组播的根节点,负责数据复制和传输的服务器作为第一级子节点,构成组播树的第一层。提供源多媒体数据的设备是二级子节点,接收数据的用户是最终叶节点。设备和用户是多播树的第二层。组播树的整体结构如图1所示。

在ALMP组播树的第一层,代理节点是根节点r,相应的服务器是f(i)(i=1,2,3)。根节点根据每个子节点的负载状态动态调整f(i)的数据转发任务量。我们将转发节点中提供源数据的设备数作为每个f(i)的负载指数。假设每个节点的负载限制为100。节点f(1)在某个时刻达到最大负载,此时有新的数据源要加入到f(1)的组播组中,因此代理将检测其子节点的状态,并找到负载最小的节点f(2)。然后代理将部分转发任务从f(1)转移到f(2))。该方法可以优化组播树中第一级子节点的性能。该过程如图2所示。

在ALMP组播树的第二层中,每二级子节点都会自行维护其叶节点。用户加入二级子节点的组播组时,需要遵守一定的规则。规则如下。

(1)每个用户可以加入几个不同的多播组。

(2)尝试加入父节点加载较轻的第二级子节点。

(3)为了获得更好的多媒体质量,尝试选择网络条件较好的节点。

(4)加入多播组的用户使用“keepalive”机制(即心跳机制)来确保用户的在线状态。

用户离开第二级子节点时,有两种状态:叶节点:

1) 正常左:用户在离开节点之前向代理发送消息。

2) 左不正确:异常发生,用户突然下降。

在案例1中,在用户向代理发送离开消息后,需要在整个组播树中找到那些具有此叶节点的组播组,并删除这些组播组中的叶节点。因此,我们利用深度优先算法找到叶子,然后搜索其直接前体,即它所属的组。最后,我们删除了这些组中的叶节点。假设我们需要删除的叶节点是节点8。搜索此节点的顺序是选择最左边的路径,直到叶节点,然后访问叶节点的所有兄弟节点。如果所有兄弟节点不是我们需要的节点,那么返回到叶节点的父节点。然后访问右侧父节点及其子节点的最近兄弟节点。重复此过程,直到找到我们需要的节点。在找到节点8后,我们反向搜索其直接前体7和9,删除7和9组播组中8的信息[2]。该过程如图3所示。

在第二种情况下,我们根据keepalive机制检测叶节点。叶节点周期性地向其所属的组播组发送心跳数据报。如果组播组节点长时间没有接收到心跳数据报,则将该叶节点视为死节点,删除该叶节点的信息。

2.2 多播数据转发平面

组播数据转发平面的主要功能是基于ALMP组播树进行数据传输。在ALMP组播树中,我们可以看到每个第二级子节点都有n个叶节点,即提供源数据的每个设备都有n个用户。第一级子节点是数据复制转发节点,負责将源组播数据传输给每个用户[3]。

当数据源请求加入一级子节点的组播组时,服务器将为数据源打开一个信道,服务器和数据源之间的通信是单播的。当用户请求数据源的多媒体时,服务器和用户之间的通信也是单播的[4]。为了减少数据传输的延迟,我们不在服务器上设置缓冲区,即服务器在接收到任何数据时,根据组播组的信息立即传输数据。我们需要考虑服务器的上行带宽、下行带宽和CPU利用率。系统的性能特点是具有以下功能:

其中,fu是服务器的上行带宽,fd是下行带宽,sb(i)是CPU总利用率,sc(i)是数据源需要的带宽,tc(j)是设备需要的CPU利用率,是用户需要的CPU利用率。

3. 实验结果

在并发传输过程中,代理只维护组播树。由于单个数据源/用户与数据转发节点之间的通信是单播的,因此如果数据源和用户有足够的带宽,则可以保证传输可用。但是数据转发节点需要接收、复制和传输数据。通过UDP传输数据时,大量的多线程操作和socket文件描述符资源消耗了大量的CPU。因此在整个传输过程中,数据转发节点承受的压力最大。我们使用专业的性能测试工具LoadRunner对数据转发节点进行测试,关键性能指标是节点在高并发条件下的CPU利用率。

我们使用LoadRunner来模拟200个用户。首先,用户同时要求多媒体。数据到达后,用户切斷与数据转发节点的连接等。这样,数据转发节点需要做大量的资源请求和释放工作,此时CPU利用率最高。图4示出了数据转发节点在25分钟内的CPU利用率。

从图中可以看出,CPU利用率为21.6%,没有明显的波动。这说明在用户具有高度并发操作的情况下,数据转发节点的工作是有效和可靠的。

在第2节中,我们提到组播控制平面可以优化数据转发节点的性能,其调度策略类似于分布式系统。为此,我们设计了一个实验,通过两种方法来测试不同CPU数的节点的响应时间:一种是像传统的方法一样提高节点的硬件性能,即将所有CPU放在一个节点上;另一种是增加节点数,将CPU分散到不同的节点上,因此我们在组播控制中采用了调度方法飞机。最后得到的结果如图5所示。

从图5可以看出,当CPU数为2时,两种方式的节点响应时间没有明显差异。但是当CPU数量增加时,第二种方式的响应时间显著减少。这表明,在优化数据转发节点的性能时,提出的基于代理的应用层组播方法与传统方法相比是有效的。

4. 结论

本文分析了实时多媒体并发传输的关键技术,研究了实时多媒体的分层传输过程。特别是在传输控制层,采用UDP-TCP混合机制实现速率控制和丢包重传。在此基础上,提出了一种基于代理的应用层组播方法来实现路由固定场景的并发传输。分析了数据转发节点的性能。相信本文对实时多媒体的高并发传输具有一定的指导意义。

参考文献:

[1] 谷冰. 试析多媒体技术中关键技术[J]. 计算机光盘软件与应用, 2014, 17(24): 219-220.

[2] 陈小平. 基于移动互联网多媒体实时传输技术研究与应用[J]. 数字技术与应用, 2014(06): 25-28.

[3] 吴进, 贺辉, 洪辉. 多媒体数据流实时传输技术研究[J]. 通信技术, 2009, 42(01): 342-344.

[4] 王再见, 万婷, 吴丹丹, 等.一种嵌入式实时网络多媒体数据传输方法[J]. 系统仿真学报, 2017, 29(04): 808-817.

西安工业大学