毕海霞
(西安电子工程研究所 西安 710100)
当前战争中,多军兵种协同的需求越来越迫切,协同作战所需的传输信息量急剧上升,传输业务种类也越来越多。自组网因其无中心、自组织、多跳路由和动态拓扑的特征,网络快速部署、抗毁性强和组网灵活等优点,成为了近年来军事信息化应用中的研究热点。自组网的网络协议分为物理层,数据链路层,网络层,传输层和应用层四部分。应用层的设计高效与否会影响整个自组网系统的性能,本文就此开展研究,提出了一种适用于自组网的流媒体应用层设计。
自组网应用层是一套基于PC 或嵌入式平台的软件系统,主要实现通信业务、运维管理类两部分功能。通信业务实现网络通信功能,主要包括语音、视频、拨号通话、短消息、01 数据、02 指令通信功能;此外,运维管理类用户信息管理可以从点名业务中获取应用层用户信息,包括用户状态、漫游状态等信息等。
网络管理包括拓扑显示、用户信息管理、网络参数配置和自组网设备状态管理四部分功能,其中拓扑显示实现点到点链路查询、业务拓扑查询和实时拓扑查询,分别反映网络本地节点和任意另外一个节点间的链路连接信息,网络传输业务的连接信息和即时的网络拓扑连接信息;用户信息管理通过点名及自组网设备状态管理功能获取自组网用户信息,生成用户信息数据库,一方面为通信业务类功能提供通信时所需的通信录,另一方面为运维管理类功能提供网络维护时所需的用户信息;网络参数配置主要对自组网设备的IP 地址、网关地址、频段及频点等信息进行配置。
ANI(Application Network Interface)接口及队列调度,对通信业务、网络管理及运维支撑三部分功能产生及收到的数据包进行封包或解包,并根据业务的优先级进行发送和接收队列的调度。
自组网应用层通信示意图如下所示。对音视频业务,应用层采集摄像头和话筒数据后,进行音视频编码,然后在网络协议控制下,进入通信网络进行传输,对端收到音视频数据,进行解码及恢复工作;对数据类通信业务,应用层接收到数据后,在网络协议处理后,进入通信网络传输至对端;对网络管理类及运维支撑类数据,应用层进行解析后,与底层协议进行交互,或进入通信网路。
通过对应用层软件功能进行分析,可将其分解为以下子功能:
(1)实现VOIP 语音及视频,包括语音及视频的采集、编码及封包和解包。
(2)实现对通信业务的差异化处理(封装ANI头,不同的优先级及QoS 处理策略),并实现网络管理及运维支撑类业务的功能。
(3)实现一个可移植、稳健的平台,功能包括操作系统适配,socket 抽象,消息包管理,进程监控,定时器管理及日志等。
(4)实现UI用户界面,便于用户操作。
综上分析,应用层逻辑架构如下图所示。
图1 应用层逻辑架构
VoIP(Voice Over Internet Protocol)是建立在Internet 基础上的新型数字化传输技术,是在IP(Internet Protocol)网上进行实时音视频,数据和文件等业务传输的技术[1]。
H.323[2]和SIP[3]是VoIP 协议中最主要的两种信令面协议,分别由ITU-T 和IETF 制定。两者均利用RTP/RTCP(Real-Time Protocol/Real-Time Control Protocol)作为多媒体通信的应用层控制协议,因此,两者所提供的信令功能类似;但由于制定机构不同,两者在设计风格上差别巨大。
下表从几个方面对两种协议进行比较与分析:
表1 H.323 和SIP 协议比较
续表
综上分析,H.323 基于传统的电话信令架构而设计,协议发展较成熟,但由于架构庞杂,难以理解和实现。并且,H.323 的版本更新必须遵循向前兼容的原则,这意味着,随着应用的不断更新,即使某些旧特性不再具有应用价值也不会被淘汰掉,而同时新特性不断累加,这无疑将导致协议越来越来庞杂。而SIP 协议在设计时遵循了简单、开放、兼容和可扩展等原则。随着应用的发展,被淘汰的旧的首部和取值将逐渐消失,保证了协议的简洁。同时,SIP 协议在消息格式上编码更方便,使得SIP 协议在扩展方面能够产生更有效率的应用。因此,本设计中选用SIP 协议作为VoIP 信令面协议。
一个SIP 系统主要由网络服务器和用户代理(User Agent)组成。UA(User Agent)也称作SIP 终端,而网络服务器包括代理服务器、注册服务器和重定向服务器等。SIP 会话主要由这四个应用实体来完成[6]。
●用户代理
UA 为终端用户的通信提供多功能的界面。目前的SIP UA 通常可支持语音,即时消息和视频等多种业务。其主要功能包括会话发起,会话保持,会话转接等6]。
●代理服务器
代理服务器的主要功能是路由并转发用户的呼叫请求。当某用户发起会话时,其UA 会生成一个SIP 请求消息并发送至对应的代理服务器,然后,代理服务器将请求消息转发至对端的UA,从而搭建起用户间交互的桥梁[6]。
●重定向服务器
重定向服务器的功能不同于代理服务器。当收到用户请求时,重定向服务器并不转发,而是执行查找操作,获得被请求用户的地址信息,并将其回复给请求用户。请求用户接收到地址信息后,将直接向被请求用户发送会话请求[6]。
●注册服务器
注册服务器的主要功能是处理用户的注册请求,从而完成用户地址的更新。当用户登录时,UA会向注册服务器发送注册消息,并将自己的IP 地址告诉注册服务器,注册服务器将用户的IP 地址与用户绑定,以方便其他用户对其进行查找[6]。
传统的SIP 呼叫流程如下图所示。
图2 SIP 会话的建立过程
传统的SIP 协议采用了C/S 架构。由于SIP 协议用户数目过于庞大,必须由专门的服务器完成用户注册(用户自身信息,包括ID 与地址之间的映射关系等注册于服务器上),以及用户的鉴权,重定向等工作。再通过邀请(INVITE)流程发起会话建立,协商双方的用户面(语音)编码方式、传输地址/端口等信息,为后续传输用户面语音帧的RTP/RTCP协议协商和分配资源,除此之外,INVITE 流程还包括一系列后续双方的行为交互,包括振铃、转接、接听/拒绝等等。
而自组网应用层的需求具有以下几个特点:,
●节点数目少
自组网节点数目一般为几十个。
●SIP 终端IP 地址固定
由于应用场景的特殊性,每个SIP 终端在使用前必须配置好IP 地址。即使IP 地址发生变更,也会通过网络传输告知其他相关SIP 终端。且,每个SIP 终端上均保存了其他SIP 终端的IP 地址。
●自组网中节点地位平等
出于抗毁性的考虑,自组网各节点地位平等,任何一个节点损毁都不会影响其他节点的通信。如果设置其中某些节点作为SIP 网络中的服务器,那如果该节点被毁,则网络将瘫痪。
综上分析,自组网应用场景下,SIP 协议中的服务器是不可以也无需存在的。针对该需求,剔除服务器的功能,将SIP 会话流程修改如下:
图3 适用于自组网的SIP 会话流程
(1)用户A 向用户B 通过“INVITE”消息发起会话请求,会话请求消息体中带有用户A 的媒体属性描述;
(2)用户B 振铃,向用户A 返回响应消息“180 RINGING”,用户A 播放回铃音;
(3)用户B 摘机,并向用户A 返回对“INVITE”请求的响应消息“200 OK”,响应消息的消息体中带有用户B 的媒体属性描述;
(4)用户A 发送针对响应消息“200 OK”的ACK 确认请求消息。此时,用户A 与B 会话建立,开始进行多媒体会话;
(5)用户B 挂机,用户B 向用户A 发送Bye 请求消息;
(6)用户A 返回对Bye 请求消息的“200 OK”响应消息,通话结束。
在流媒体研究中,对音视频文件的实时传输要求较低的时延和较小的丢包率。基于连接的TCP协议是一种可靠的传输层协议,但为保证可靠传输而设计的三次握手机制,拥塞控制技术和重发机制导致开销增大,时延增加,无法很好地支持稳定速率的流媒体数据的平滑传输;而无连接的传输层协议UDP 没有任何QoS 保证,无法保证数据的可靠传送。为解决上述矛盾,实现流媒体数据在IP 上的实时可靠传输,需要在传输层和应用层协议之间增加一个通信控制层,即RTP/RTCP[7]协议。RTP 可提供编码数据的实时传输,RTCP 则向会话中的所有成员周期性地发送控制信息反馈数据传送情况,以便对发送速率,服务质量和拥塞进行控制。其端到端传输流程描述如下:
音视频信息经编码器处理后形成多媒体数据流,RTP 协议对多媒体数据进行封装后交由网络传输。对端网络传输模块接收到多媒体数据后交由RTP 协议进行解封处理,然后音视频解码模块对数据进行解码,恢复原有音视频信号。在对多媒体数据进行封装和解封时,RTP 协议会根据数据包中所携带的载荷类型、时间戳、帧边界等包头信息对音视频信号进行同步控制。
在多媒体数据传输过程中,RTP/RTCP 协议多运行于UDP 协议之上。这是因为RTCP 协议能实时进行质量和拥塞控制,无需下层的传输层协议进行QoS 保证;同时,UDP 协议的传输时延低于TCP协议,能保证多媒体数据流的流畅传输。当然,当存在对可靠性要求非常高的数据传输需求时,也可将RTP/RTCP 协议运行于TCP 协议之上,数据和控制信令的传输即适用于该类情况。
图4(a)表示了RTP/RTCP 与各种网络协议的关系。
军事应用中,自组网系统的业务主要分为音视频和数据两部分。按照传统的RTP 使用方法,音视频一般采用UDP 传输,而数据和控制指令采用TCP传输。考虑到系统对时延要求较高,尤其是火控数据,而TCP 连接建立过程中需要三次握手,若采用该协议,将对时延指标的实现带来巨大压力。因此,本系统所有通信业务的传输均采用UDP 协议。
由于音视频数据对时延和抖动要求较高,因此,必须使用RTP/RTCP 监控数据传输,保证传输质量,因此,音视频传输协议栈定义如图4(b)所示
由于军事应用中的某些数据(比如火指控数据)对时延要求非常高,若使用SIP+RTP/RTCP 的方式进行传输,则在真正的数据传输前,必须首先进行四次SIP 握手,这将导致时延大幅增加。因此,建议数据传输时,不使用SIP 进行信令交互,同时,数据面协议中不封装RTP/RTCP 头以减小数据量。数据传输协议栈修改如图4(c)所示。
图4 自组网用户面协议栈图示
本文分析了应用层流媒体协议的特性,针对自组网的应用需求,进行了协议选型。由于自组网系统具有节点平等,移动性强及无线传输质量差的网络特性,对所选择的SIP 和RTP/RTCP 协议架构及呼叫流程进行了修改,使其适用于自组织网络,是一种可行的自组网流媒体协议。
[1]郝中伟,郝中娜.基于WEB 的呼叫中心[J].信息技术,2002,(6):61-64.
[2]H.323 Standards.http://www.h323forum.org/standards/.
[3]J.Rosenberg,H.Schulzrinne,G.Camarillo.SIP:Session Initiation Protocol.RFC 3261,IETF,June,2002.
[4]林韬.基于SIP 的多媒体通信研究与实现,[D].北京:北京邮电大学,2009:2-18.
[5]崔学敏.视频通信协议技术的分析研究与应用[D].昆明:昆明理工大学,2007:3-12.
[6]韩磊磊.基于P2P-SIP 的VoIP 关键技术研究[D].郑州:解放军信息工程大学,2010:44-20.
[7]RFC3550,RTP:A Transport Protocol for Real-Time Applications.