RTX2009
正式版
技术白皮书
腾讯科技(深圳)有限公司
2011
年
8
月
3.4.1
数据加密打包传输(
128
位标准对称加密算法)
11
第一章
系统概述
随着互联网的普及发展,即时通信(
Instant Messaging
)已经成为人们交流的重要手段。
在企业中,目前交流信息的手段除了传统的会议、电话、纸质文档之外,文件共享、电子邮件是比较常见的方式,即时通信作为一种更加便捷、更加有效的交流方式,在企业中也得到了广泛的应用,许多企业的员工都在非正式的使用
QQ
、
MSN
等即时通信软件。在这方面,很多企业需要一个专门面向商业应用的即时通信软件,来加强企业内部、企业与客户之间的信息交流。
腾讯公司
作为国内及亚洲最大的即时通信供应商,利用在个人即时通信市场积累的产品开发经验及市场运营经验,为国内广大的企业用户提供适合中国国情的商用即时通信软件。原有的
QQ
品牌,带有娱乐交友色彩,并不太适用于企业市场;针对商务人士和企业用户的需要,腾讯推出了
RTX
(腾讯通)这个新的产品品牌,以更好的服务广大企业用户。
RTX
(腾讯通)是腾讯公司的核心技术品牌,同时作为腾讯商业实时应用的品牌。
RTX
的前身是
BQQ
(企业
QQ
),在将
BQQ
更名为
RTX
之后,更突出了腾讯公司在企业即时通信产品方面的定位:
图
1.1 “RTX”的定位:实时交换、实时快递和实时扩展
RTX
(腾讯通)是腾讯公司推出的企业级即时通信平台。该平台定位于降低企业通信费用,增强企业内部沟通能力,改善企业与客户之间的沟通渠道,创造新兴的企业沟通文化,提高企业生产力。
RTX
平台的主要功能,包括企业内部实时信息交互、语音视频交流、企业短信中心、自动存档主题讨论等等。
RTX
平台具有很高的实用性、易用性和可管理性。除了底层采用
128
位对称加密技术之外,在实际应用中,
RTX
可以通过员工实名制、记录交互信息等措施,确保企业应用的通信安全。
同时,腾讯公司为所有的
RTX
用户提供企业级的信息服务,主要包括企业黄页、企业间协作、网络
IP
电话、集团短信,以及企业与网络消费者实时沟通等等服务。
RTX
包括服务器端和客户端软件,可在企业本地自建服务器,迅速搭建企业的内部即时通信平台。同时,
RTX
提供二次开发接口,支持第三方在
RTX
上进行二次开发。
第二
体系架构
从整体架构来讲,
RTX
系统是一个开放的体系结构,是一个平台化、组件化的可扩展平台。第三方厂商可以在
RTX
系统所提供
SDK API
的基础上,开发具有即时通讯特性的应用。
2.1
系统整体架构
图
2.1 RTX
系统整体架构图
图
2.2 RTX
系统总线图
图
2.3 RTX
应用服务架构图
2.2
软硬件部署
RTX
系统的软硬件部署,主要包括三个部分:
RTX
用户工作台(安装
RTXClient
)、
RTX
服务器(安装
RTX
各类服务)、数据
/
文件服务器(安装数据库软件
/
文件系统)。其中,在实际应用中,
RTX
服务器与数据
/
文件服务器可以根据实际情况整合为一台服务器。另外,整个系统通过应用网关——
RTX_Gateway——与Internet
连接,所以,网关的服务器与应用服务器为同一台服务器。
示意图
2.4
如下:
图
2.4
软硬件部署示意图
第三章
技术特点
RTX
系统的技术应用,以
“先进合理的企业应用理念”、“高效率的通信服务”、“安全的企业系统服务”、“灵活的系统可拓展性”等几个方向为指导,力求在合理理解应用逻辑的基础上,最大限度的提高技术含量,为企业用户提供一套优质的即时通信系统软件。
3.1
先进合理的企业应用理念
3.1.1
组织架构的自由定义
RTX
系统在数据结构上将人员和部门分开定义,采用部门多层的应用,让企业用户可以根据自身的实际组织架构,自由的定义企业内部的部门结构和
RTX
用户结构,以满足企业的内部分组、分部、分级等实际需求。示例图
3.1
如下:
左边
--
管理台(用户管理器)进行组织架构的自由定义和权限分配;
右边
--
客户端在好友列表里面所呈现的组织架构;
图
3.1
组织架构的定义和展示
3.2
高效率的通信服务
3.2.1
高效的数据传输机制
前面我们提到,
RTX
系统除了即时通信的常用功能,还有会议、讨论组等功能。
RTX
系统的通信方式不是只在
RTXClient
与
RTXServer
的单一
TCP
或
UDP
连接上进行通信,这其中还有
File-Storage
(文件存储服务,即
FileServer
)的参与。
RTX
通信数据按字节大小和应用上的区别,可以走两种途径:
1
、小块数据(小于
4K
),走的是吞吐量较小、持续时间相对较长的
RTXClient
与
RTXServer
之间的轻总线;
2
、大型数据(文件),通过与高效、大吞吐量的
FileServer
或者
SessionServer
建立的重总线进行中转发送;
这个模型可以让数据合理分包传输,最大限度的利用网络带宽,提高传输速率。原理示例图
3.2
如下:
图
3.2
数据分类传递示意
另外,在进行语音和视频数据传递的时候,一般采用的是
UDP
方式进行数据传输,充分发挥了
UDP
协议的大数据量传输的高效性。
3.2.2
先进的多媒体技术应用
RTX使用了业界最先进的视频和语音引擎。
RTX
用户可以进行包括
Audio/Video
的直接交流。在技术上,
RTX
系统采用了业界先进的
Audio/Video
处理和传播技术,传输通道上采用了
P2P
优选网络技术,同时可以根据网络带宽情况进行自适应调节,确保最佳的表现效果。
Audio
应用的基本过程是:采样
->
编码
->
传输
->
解码
->
播放。
其中,
Audio
编码技术主要分为三类:
第一类是波形编码,力图使重建语音的波形保持原始语音的波形形状,如
PCM
和
ADPCM(G.711
、
G.721
、
G.722
、
G.723
、
G.726
、
G.727)
。
第二类是参数编码,通过提取、编码语音的特征参数,保持重建语音的可懂度,如
LPC-10e
等
(G.723.1)
。
第三类是混合编码
,
结合了上述两种方法的优点
,
能重构高质量的语音
,
如矢量和激励线性预测和码激励线性预测
(CELP)
等
,
如
G.728
、
G.729
、
GIPS
。
在
RTX
系统中,
Audio
采用了业界最先进的
GIPS
编码技术
,保证了音频在采集后的快速、准确、高效的编码及最佳的表现效果。
Video
应用的基本过程与
Audio
类似,也是:采样
->
编码
->
传输
->
解码
->
播放。
其中,
Video
编码技术主要分为三类:
第一类,考虑到图像信源的统计特性采用的预测编码方法、变换编码方法、矢量量化编码方法、子带
-
小波编码方法及神经网络编码方法等;
第二类,考虑到视觉特性采用的基于方向滤波的图像编码方法、基于图像轮廓
/
纹理的编码方法;
第三类,考虑到图像传递的景物特征,采用的分形编码、基于模块的编码方法。
在
IP
视频通信应用中,编码方法的选择不但要考虑到压缩比、信噪比,还要考虑到算法的复杂性。太复杂的编码算法可能会产生较高的压缩比,但也会带来较大的计算开销,软件实现时会影响通信的实时性。目前,在众多视频编码算法中,影响最大并被广泛应用的算法是
MPEG
和
H.26x
系列。
在
RTX
系统中,
Video
采用的是在
H264
基础上自行研究的增强编码方法
。
H264
编码就是
MPEG4
与
H26L
的有机结合,是
ITU
和
IETF
后续统一的视频标准。
3.2.3
稳定高效的数据
/
文件存储
RTX
系统服务器端采用了
Access
数据库作为数据存储方式,利用
ODBC
访问技术,采用最优的系统分析方法指导数据库表的设计,充分发挥了
Access
数据库小巧、稳定、高效、灵活的特点。
另外,当交互的数据流比较大的时候,
RTX
系统采用文件的方式存储数据流,利用操作系统提供的文件管理功能,灵活的避免了
Access
数据库日渐庞大所带来的效率降低。在以后的升级版本中,
RTX
系统将引入腾讯公司自己开发的一套更灵活、简便、稳定的文件存储系统。
3.3
远程登录支持
RTX2010
对用户提供可控的透明的远程登录支持。当
RTX
用户出差或者其他情况下和企业部署的
RTX Server
不在同一个局域网内,只要
RTX Client
可以连接
Internet
,就可以通过腾讯公司提供的服务来远程登录到企业内部部署的
RTX Server
,与自己的同事进行沟通。
3.3.1
远程登录的管理
RTX通过权限来对RTX
用户的远程登录能力进行约束。操作界面如
3.3
图所示。
图
3.3
远程登录权限设置
3.4
安全的企业系统服务
RTX
系统在数据通信中,采用
128
位消息加密机制,确保信息在各个通路之间中的传输安全,同时,配合严谨而灵活的用户权限机制,最大程度上解决了企业应用中的安全隐患问题。
3.4.1
数据加密打包传输(
128
位标准对称加密算法)
RTX
系统中各个模块之间、各个插件之间的数据通信,都采用的是
TCP
协议与
UDP
协议相结合的传输方式,增强了通信方式的灵活性。同时,为了避免数据的明文传递,系统采用了多种
128
位标准对称加密算法进行数据加密,支持
IDEA
、
TEA
、
THEA
等多种算法以及在算法之间的轮换应用。这样,即时通信信息、文件、讨论组信息等等可能因为明文而造成的网络传输安全隐患,在
RTX
系统中得以合理消除。
在实际应用中,涉及登录信息、权限变更等关键数据,都是采用数据加密并从服务器转行
TCP
协议的方式;而非关键的数据,类似语音流、视频流等,才是通过
UDP
协议实现高效的传送。
UDP
协议在传输中是可以被伪装的,要实现高安全性,需要通过若干次“握手”通讯以及
SessionKey
的方式来保证,而这样的保证,又大大降低了它的高效性,因此,我们应用
UDP
协议来进行非关键数据的高效传输。
3.4.2
严谨的用户权限机制
在企业用户应用RTX
系统的时候,系统管理员、普通客户端用户、信息服务部门管理员等等,不同的角色在系统中有不同的用户权限。
RTX
系统采用了严谨而又非常灵活的用户权限机制:以求能够合理的搭建企业实际应用的权限框架。
RTX
的用户权限机制分为两方面的内容,身份验证和访问控制。
身份验证
:是可以唯一确认客户身份,而不是其他假冒的身份的过程。
访问控制
:是通过身份验证的客户对某个服务器端对象访问的控制。主要是指对服务器对象的访问权限,比如信息服务中文件的读写、会议室的建立、讨论组的发起等等。
权限模型自动根据不同用户的不同身份验证资料,在系统的各个应用层面,赋予用户不同的访问控制权限(即访问令牌)。不同的用户,获得若干不同的访问令牌,以不同的访问令牌,享有各个不同服务的访问权限。
权限模块是作为一种服务存在的,为各种服务器对象提供权限的服务,主要提供RTX
用户的访问令牌的管理,服务器对象的访问控制的管理等
3.4.3
签名和令牌
Kxxx
:一般代表某种用于加密的密钥。密钥的类型由xxx标示。例如
Ks
表示
Session Key
。
Kxxx(a,b,c…)
:一般代表用密钥加密的内容。括号内的内容字段用适号分隔。例如:Ks(dwUin,dwIP,dwPort)表示用
Session Key
加密内容为
Uin,IP,Port
的信息。
Signature(Buin,Cuin)
:一般代表用户的签名。例如:Signature(72800008,
1001)
。
SS Key
:Server体系内部约定的
Key
,
Client
程序是绝对不应该知道的,
SS Key
只用于
Server
体系内部用于分布式身份认证使用。
每个客户端登录RTX Server后,会从
RTXServer
处获得一个二进制的加密信息,我们称之为签名。签名中含有用户的标志信息以及存活期,可以作为访问其他RTX服务时的身份标识。
签名的内部信息包含:用户的BUin,
CUin
,服务器当前时间,签名的存活期。
签名是采用RTX服务系统内部约定的一个密钥(
Kss
)进行加密的,只有知道
Kss
的服务程序才能解开。
Signature(Buin,Cuin) = Kss( dwBUin, dwCUin, dwTime, dwLifeTime )
dwBuin:企业号
dwCUin:分机号
dwTime:当前的服务器时间
dwLifeTime:签名的有效时间(存活期),一般为8
小时。
客户端在登录其他服务器(例如File Server,
Session Server
)之前,需要到
RTX Server
取到一个其他服务器的访问令牌
(Access Token)
。
AT(Buin,Cuin)=Kss( Kcs, dwBUin, dwCUin, dwTime, dwLifeTime)。
第三方服务器的认证步骤:
图3.4:令牌验证时序
1、
Client向RTX Server
取第三方服务的验证串。
2、
RTX Server返回 Kcs,AT(Buin,Cuin)。Kcs是与第三方服务进行双向认证的握手Key
。
3、
Client程序将AT
,以及用
Kcs
加密的相关协议信息发到第三方服务。
4、
第三方服务用Kss解开
AT
,如果解密失败,表示
Client
身份不正确。如果解密成功,则取出
AT
里的
Kcs
,处理完相应信息后,用
Kcs
加密要返回的信息,其中包括后续
C\S
通讯的
Session Key
,
Ks
。
5、
第三方服务将用Kcs加密的信息返回给客户端。客户端用
Kcs
进行解密,如果解密失败,表示服务器身份不正确。如果解密成功,取出新的
Ks
作为后续与第三方服务器进行通讯的密钥。
3.5 RTX
的可扩展性
RTX提供了功能强大的可扩展性,第三方可以在RTX
提供的
API
的基础上获得即时通讯的能力,为自己的产品增加即时通讯的特性。
3.5.1
为用户提供二次开发接口(
API
)
企业的需求是多样化的,即便是一个成熟的系统,也不可能满足所有用户的功能需求,因此,
RTX2010
供一个可供二次开发的接口体系,为第三方在
RTX
平台上开发特定要求的功能,提供便利。
RTX API
(应用编程接口)是一套基于
RTX
体系,用来控制
RTX
进行一系列自动化工作的接口和对象。
详细信息请参阅RTX产品相关的
SDK
文档。
3.5.2
高度
OA
应用集成
[消息提醒]
l
特点
Ø
服务器后台发送消息提醒
Ø
隐式URL链接支持
Ø
窗口浮动计时
Ø
紧急与普通消息
Ø
离线自动转为短信
[状态感知(NAME
)
]
l
特点
Ø
随时随地感知RTX用户当前状态
Ø
WEB页面嵌入方式
Ø
一分钟集成
Ø
立即沟通与协作
3.5.3
灵活强大的应用,服务扩展体系
在
RTX2010
新的体系架构下,第三方可以非常方便容易的进行应用扩展和服务端扩展,同时用户也可以根据自己的需要定制和扩展应用。
通过调用
SERVER
端
API
接口,用户可以向
RTX SDK
服务器注册自行开发的应用服务,一旦注册成功,该服务将自动融入
RTX
服务体系,提供各种特色应用。比如:第三方视频会议系统,自己的短信网关应用
……
CLIENT
方面用户可以按照简单的插件接口编程规范,开发出独立的插件应用,而且该应用可以非常方便智能的加入到菜单和各功能接口应用上。基于该体系同样用户可以自行扩展基于企业和公司需求的各种应用。比如:投票,监控状态
……
另外,我们会提供一套全流程的企业插件认证部署体系,确保插件的可管理维护及安全保障。
第四章
技术参数
4.1
客户端
l
RTX
客户端网络要求
局域网环境;
在
TCP/IP
协议下的固定或动态
IP
地址;
l
RTX
客户端硬件要求
硬盘:
50M
以上剩余空间;
内存:
128M
以上;
CPU
:
450133MHz
以上
连接数码摄像头的
USB
接口(可选)
声卡上可连接麦克风的接口(可选)
l
RTX
客户端软件要求
微软视窗系列操作系统(
Windows2000
以上)
4.2
服务器端
l
RTX
服务器网络要求
局域网环境;能连接到因特网(可选);
在
TCP/IP
协议下的固定
IP
地址,
或者动态
IP
加动态域名
;
l
RTX
服务器硬件要求
硬盘:
5G
以上剩余空间;
内存:
512256M
以上;
CPU
:
奔腾
PentiumⅣ系列,主频1G以上,
在线人数达到
500
人以上,上建议使用双
CPU
服务器;
磁盘阵列
/
光盘库
/
磁带机(可选);
l
RTX
服务器软件要求
微软视窗系统环境(
Windows2000 Server
以上);
4.3
操作要求
l
用户要了解
Windows
的基本操作
l
用户可以通过局域网访问系统