基于ITU-T T.120协议族的数据会议的设计和实现

来源:岁月联盟 作者:邓洵 曾家智 时间:2010-08-30
摘  要  数据会议系统是实现远程通信、实时协作、指挥和学习的有效工具。国际电信联盟(ITU)为远程数据会议系统制定了专门的标准:T.120系列标准。本文从数据会议系统期望实现的功能引入,介绍了数据会议系统的设计原理(T.120协议族),系统设计方案,并举例介绍了系统部分模块的内部逻辑实现。关键词  数据会议,T.120协议,GCC(通用会议控制),MCS(多点通信服务)1 引言随着信息的普及和全球化的,人们对实时通信的需求正在与日俱增。商务单位和大众都期待能够通过信息,更快的进行远程协作,达到信息交流的目的。远程,远程商务洽谈,远程咨询等活动中,除了实时视频,音频的交流外,实时信息共享的需求也不断增加。因此,在进行视频会议、音频会议的同时,能够支持文档通信、应用程序共享、白板通信的数据会议也同样成为不可缺少的信息交流手段。和视频会议,音频会议不同,数据会议的概念是通过文档会议和应用共享实现数据信息的远程共享。现今的多媒体数据会议,可以包括Web会议,文本聊天,应用共享,表现技术等。国际上公认的数据会议标准是ITU-T T.120标准。T.120协议属于ITU-T H.323的一部分,支持多点会议通信,会议管理和数据应用。T.120底层强大可靠的群组通信协议,使在该协议基础上的数据会议系统可以在复杂的网络环境下应用。因此,数据会议的上层应用,包括电子白板、应用程序共享、文件传输、实时聊天等,都可在群组通信的基础上准确的进行数据传输。2 系统设计2.1 功能需求现今,Windows的Netmeeting客户端能实现点对点的数据传输功能,而我们要实现的是IP网上多人的数据会议。希望实现的功能有: -数据会议的发起 /结束;-主席邀请其它成员参加数据会议;收到邀请的成员加入数据会议;会议成员退出会议;-数据会议成员之间的应用程序共享 /实时电子白板 /聊天 /文件传输要实现数据会议的功能,可将整个系统设计为Client/Server的模型:

图1 数据会议功能流程

2.2 设计原理服务器端的设计,基于ITU-T的数据会议标准T.120。H.323制定了无QoS(服务质量)保证的分组网络PBN(packet Based Networks)上的多媒体通信系统标准,这些网络包括基于TCP/IP、IPX分组交换的以太网、快速以太网、令牌网、FDDI等。T.120协议在H.323协议中属于终端应用协议,同视频编解码(H.263/ H.261)、音频编解码(H.723.1等)、H.245(控制单元)共同组成H.323的终端协议框图。T.120包括从T.120到T.128一系列协议栈:

图2  T.120协议栈
在IP网上,T.120处于传输层以上,数据通道和呼叫信号通道都用TCP控制。T.120作为应用层协议,上层提供了与底层网络无关的数据传输服务,并根据协作应用的需要定义了在协同工作环境中的一些基本数据应用协议。 

T.120的分层结构可以分成两大部分来考虑,即底层的核心通信架构和高层的应用协议。底层的核心通信架构包括T.123(多媒体数据会议特殊数据网络协议栈),T.122(声音图像和声音视觉会议服务定义多点通信业务),T.125(多点通信服务协议特点)和T.124(普通会议控制),它们在会议和群组工作的环境中提供了多点数据通信服务的机制。  高层应用协议包括T.126和T.127等,它们定义了用于数据会议的具体应用的方法和协议标准,例如电子白板和文件传输等。2.3 系统模块设计服务器可按照此协议栈,分为以下几个模块设计:n          节点控制器(Node Controller):负责管理控制整个会议的活动,也负责控制本地节点的所有活动,它使用GCC提供的服务。n          通用会议管理模块(GCC):会议建立、中止;会议名册管理;应用名册管理;应用注册表;会议主席控制n          多点通讯服务模块(MCS)提供域管理功能:包括域的建立、撤销、合并,域用户的接入与退出等提供信道管理功能:包括信道加入、退出,专有信道的召集、撤销等管理功能。数据传送功能:提供带优先级的一到多点的数据传送服务,提供数据分段能力,n          X.224服务模块(X.224)对上(MCS层)提供数据连结和传送服务。接口包括 对下(网络层),需要网络层提供相应的数据连结和传输服务。对IP网,使用TCP作为网络层流服务,在其上封装TPKT协议。n          BER/PER编解码模块(BER/PER)实现ASN.1基本类型的BER/PER编解码。实现MCS消息(PDU)的BER/PER编解码。实现GCC消息(PDU)的BER/PER编解码。

图3  DCS服务器模块逻辑关系
 各功能模块之间的逻辑关系可作这样的设计(图3):

n          节点控制器(Node Controller)与GCC的逻辑关系⑴      点控制器通过函数调用使用GCC提供的服务,通过通知消息来接受、响应来自GCC 的应答和证实。⑵      为发起方,节点控制器向GCC发起创建会议,邀请节点加入会议,中止会议等服务请求,GCC收到服务请求后,进行内部处理,并根据需要使用BER/PER编解码模块提供的服务把请求翻译成PDU,再使用MCS提供的服务把请求送至网络层。最终GCC会向节点控制器发送证实(confirm)消息以响应最初的请求。⑶      作为接受方,节点控制器会收到来自GCC的Indication消息,告知某个事件发生,如创建会议的Indication消息,节点控制器需要对此进行处理,并回送Respnse消息。n          GCC与MCS的逻辑关系⑴      CC在MCS之上建立会议控制功能。GCC使用MCS提供的域管理功能来管理会议,⑵      节点控制器发起创建会议请求时,GCC会把创建会议请求编码为PDU,并作为参数调用MCS提供的MCS-Connect-Provider服务,MCS-Connect-Provider服务完成下层具体的消息交互过程,最终返回一个confirm消息给GCC。⑶      GCC使用MCS层提供的MCS-Connect-Provider,MCS-Send-Data,MCS-Uniform-Send-Data服务,GCCPDU包含在这些服务的UserData字段中。n          MCS与X.224的逻辑关系X224完成层数据传送功能,MCS完成多点的数据传送功能。MCS通过向X224发起T-CONNECT请求,或接受X224来的T-CONNECT指示,来完成MCS域的建立。MCS通过向X224发起T-DATA请求,或接受X224来的T-DATA指示,来完成MCSPDU的传送。

3 实现方案

3.1  服务器模块实现

按照T.120协议栈,通用会议管理(GCC)模块的实现基于T.124协议。GCC是一个能力集,其它模块通过调用GCC的服务原语集,也就是功能函数的接口来调用GCC的服务。因此,GCC模块的实现也就是原语API的实现。我们在Solaris上开发DCS服务器,使用C++来编写API内部功能,包括的原语有会议创建终止(GCC-Conference-Create / GCC-Conference-Terminate),会议增加/邀请节(GCC-Conference-Add/ GCC-Conference-Invite),会议信息库管理维护(GCC-Conference-Announce-Presence宣布节点加入/GCC-Conference-Roster-Inquire信息查询),会议领导权管理(GCC-Conductor-Assign / GCC-Conductor-Release)等等。GCC和其它模块通信,采用原语方式进行调用和消息传递。以上每种原语都分为请求(Request)、指示(Indication)、响应(Response)和确认(Confirm)四步交互机制来完成一个操作流程。创建会议的时候,用户节点先调用GCC里的GCCConferenceCreate建立会议,接着GCC调用MCS中的建立连接函数MCSConnectProvider传递请求数据包,数据包中包含会议名称、会议模式和权限信息等。MCS收到指示消息后,通知该端的GCC接收消息,GCC发出响应消息并将响应数据报传到对等层。会议创建后,每个会议都有一个对应的信息库,维护和管理整个会议的数据。处于GCC下层的多点通信服务模块MCS,实现数据会议服务器的基本通信功能,所有上层的功能都通过MCS层提供的服务向其它与会节点发送数据,同时MCS调用协议栈中下层的T.123传输协议来实现通信的底层服务。基于T.122和T.125的MCS模块也通过提供服务原语的方式与外部模块通信。MCS实现对域,通道,令牌,和多点传输几个方面的管理。这里举例讲一下域的概念和实现。域(Domain)在MCS中是一个树型层次结构,为相互连接的MCS用户划定了数据传输的边界。MCS建立连接后,将一个用户实体绑定到指定的域中,上层通过调用MCS_Connect_Provider原语与远端节点建立连接并绑定域。然后通过MCS_Attach_User原语将应用用户与域联系。服务器中建立一个域之后,将域信息放在一个结构信息中,该结构包括域状态,域标志,下层连接数和该域中所有用户的域信息表,从而区分各个不同的客户端连接。客户端的域信息结构同样也记录自己域的状态,标志,和下层连接。客户端调用MCSConnectProviderRequest原语加入服务器已经建立的域中,接着就可以调用MCSChannelJoinRequest函数建立通道。域通道的信息结构包括通道类型,通道标志,通道中的用户标志。一个特定标志的通道在域中是唯一的,该域将所有通道的结构信息以队列的方式保存起来,从而便于通道信息的修改和维护。用通道进行据传输的时候,可使用一个统一定序数据传输方式,由MCSUniformSendData原语实现,信息将统一发送给通道内所有的用户,从而,就可实现当一个客户端打开白板,会议中所有其它用户都能收到消息并且自动打开电子白板。MCS的下层通信,将调用X224服务模块。X.224在传输层之上,调用传输层服务,将传输层提供的服务封装在服务原语中,实现TCP连接。X.224基于T.123协议 ,在TCP上引入了TPKT协议包对运输传输协议数据单元TPDU进行封装。TPKT头加在TPDU头之上,独立于TPDU, 包括最高TPKE长,最低TPKT长和版本号、保留号(拓展用)。X.224模块对上层MCS传来的TSDU加头下传,对收到的TPKT包解头并上报。下层封装的TCP服务,包括建立连接,打开监听,数据发送,关闭连接等。我们可以把整个TCP通信分为几个线程:监听线程,用来监听TCP连接;服务器和客户端各自的网络连接线程,用来连接对方和进行数据包收发;服务器和客户端各自的处理线程,用来处理上层MCS请求事件和收到包之后的处理操作。数据包以先进先出的队列存储,防止丢包和阻塞。在IP网上,我们就调用支持组播通信的Winsock2 API进行功能的封装,就可以实现TCP连接了。

3.2 客户端实现

在客户端这边,我们可以使用Windows提供的Netmeeting API。NetMeeting本身是基于Microsoft COM技术设计,提供了一整套接口函数,使我们可以跳过客户端网络通信的底层技术细节,在Netmeeting的基础上进行二次开发。由于每个COM对象都有一个相应的Notification对象,它在运行时刻获得COM对象的事件。客户端召开会议的流程可以这样:1.客户端给服务器发送创建会议的消息,这个消息可以是自定义的XML消息,通过UDP发送出去,服务器收到消息后上报,交由节点控制器处理;2.节点控制器调用GCC创建会议,会议创建成功后,通过XML消息将会议名,会议密钥回送给客户端;3.客户端收到回应后,便可直接调用Netmeeting的API: HRESULT CallConference(INmCall **ppCall,NM_CALL_TYPE callType, NM_ADDR_TYPE addrType,BSTR bstrAddr,BSTR bstrName,BSTR bstrPassword), 填入会议名,服务器地址和会议密钥,加入该会议.4服务器端收到加入会议的消息之后,GCC将该成员加入会议信息表,并调用下层MCS将用户加入域,建立通道; 5.加入成功后,服务器给客户端回一个会议状态改变的消息,Netmeeting COM组件的Notification对象收到消息,将事件NM_CONFERENCE_ACTIVE返回给用户。 接下来便可邀请其它用户加入:通过UDP传送XML消息,将会议名、服务器地址和密钥发给另一个客户端,邀请另一客户端加入。当两个客户端都在会议中之后,只要一方客户端调用Netmeeting的API   ShowLocal(NM_APPID_WHITEBOARD),便可将启动白板的消息发送给服务器,服务器将通知另一客户端的Notification对象,Notification对象自动启动白板,这时候,两个客户端就可以通过服务器建立的通道进行电子白板的数据传输了。同样,调用ShowLocal(NM_APPID_APPSHARING / NM_APPID_FILE_TRANSFER/ NM_APPID_CHAT)就可以直接实现应用程序共享,文件发送和实时聊天信息的传送。使用Netmeeting的时候,先调用COM组件中的初始化函数,可选择让Netmeeting在后台运行,只启 conf.exe进程,占用1503和1720端口和服务器通信,同时屏蔽了Windows Netmeeting的主窗口,这样,开发者就可以实现自己的界面。

4 功能

在商务会谈和远程中,数据会议系统的使用可以大大促进面对面商务活动和现场教授的效果。例如教师教授的时候,可以使用电子白板演示和绘制图例,使用应用共享将文档共享给所有会议成员,如果加上音频会议的配套讲解,那么就和现场讲授的声音图象环境都相同了。电子商务会谈中,按照实际环境定制一套特定的电子洽谈方案,在此基础上开发特定的会议软件界面,实时、快捷的多人的商务会议就可以随时、随地的召开了。

[1].ITU-T Recommendation T.120 (1996).Data protocols for multimedia conferencing.[2].ITU-T Recommendation T.121 (1996).Generic application template. [3].ITU-T Recommendation T.122 (1998).ultipoint communication service for audiographics and audiovisual conferencing service definition.[4].ITU-T Recommendation T.123 (1999).otocol stacks for audiographic and audiovisual teleconference applications.        [5].ITU-T Recommendation T.124 (1998).Generic conference control.[6].ITU-T Recommendation T.125 (1998).Multipoint communication serviceprotocol specification.[7].季琛. 基于ITU-T T.120 数据会议标准的群组通信技术研究与实现. 上海: 华东师范大学2002年度硕士学位[8].顾君忠.《ITU-T T.120协议族和多媒体数据会议系统》.北京:清华大学出版社.2003.1

图片内容