从Skype看VOIP的技术优势2008-07-02 10:59:05 楼主
从
Skype
看
VOIP
的技术优势
Skype
与
P2P
所谓
P2P
(
Peer to Peer
),其最本质的含义即
“
对等
”
,该技术最早是用于网络中对等节点之间的资源和信息共享的技术,通常人们所知道的是将
P2P
技术用在文件下载过程中,即网络上的对等终端在下载共享文件的同时又作为一个
“
种子
”
为其他对等终端提供资源和信息。后来,
Skype
在网络通话业务系统中灵活应用了该技术。由于冲击了传统通信领域,
Skype
在引起很多争议的同时也使人耳目一新,可以说,
Skype
是发展和演进了的
P2P
应用。目前对于
P2P
技术还没有规范的定义,结合其已有的应用,就更广泛的意义而言,
P2P
技术是指网络中的所有节点都动态参与到路由、信息处理和带宽增强等工作中,而不是单纯依靠服务器来完成这些工作。
Skype
是
P2P
技术演进到混合模式后的典型应用,它结合了集中式和分布式的特点,在网络的边缘节点采用集中式的网络结构,而在超级节点之间采用分布式的网络结构,混合模式的
P2P
网络模型如图
1
所示。
从网络模型来看,这种混合模式的
P2P
是经过多年的发展和演进而来的,严格讲,这已经不是纯粹的对等网络结构了,只能称做发展了的
P2P
。下面就介绍一下采用混合模式
P2P
网络模型的
Skype
的通信原理。
Skype
的通信原理
1. Skype
网络结构
与常规的电信业务网络不同的是,
Skype
的网络中除了注册服务器,没有其他任何集中的服务器,只是将用户节点分为普通节点和超级节点。
Skype
的系统连接结构如图
2
所示。
注册服务器是
Skype
惟一需要维护的设备,它负责完成客户端的注册,存储并管理用户名和密码信息,当用户登录系统时,对用户进行身份认证。注册服务器还需要检验并保证用户名的全球惟一性。
普通节点即普通主机终端,只需要下载了
Skype
的应用,就具有提供语音呼叫和文本消息传送的能力。
超级节点实际上是满足某些要求的普通节点,这些要求包括:具有公网地址、具有足够的
CPU
、存储空间足够大、具有足够的网络带宽。也就是说,任何符合条件的主机终端都可以成为超级节点,当然前提是加载了
Skype
应用。
2.
通信流程
Skype
的通信流程分为:启动、注册(认证)、查找用户、呼叫和释放的过程。其中注册流程只是在用户初次安装了
Skype
的客户端软件后进行注册,后期使用的过程中该步骤就变成认证过程。
(
1
)启动流程
Skype
的用户终端启动时,采用
HTTP
协议连接到注册服务器,用户初次安装的启动流程中携带
“installed”
的参数,使用时启动流程则在消息中携带
“getlatestversion”
参数,具体流程分别见图
3
和图
4
。
(
2
)注册(认证)流程
注册(认证)流程可能是
Skype
所有流程中最复杂的一个,用户启动
Skype
后,首先需要连接到超级节点,通过超级节点向注册服务器发送身份认证信息,注册服务器验证用户名和密码的合法性,然后向其他对等节点及其好友发送在线信息,同时还需要判断该终端所在私网的
NAT
和防火墙类型。如果该终端先前默认的超级节点已不可用,则还要查找具有公网地址的
Skype
节点来作为该终端的超级节点,从而维持该终端与
Skype
网络的连接。
一旦超级节点都不可用,
Skype
的客户端采用了尽力而为的方式进行注册,即先用
UDP
包试注册,不成功超时则用
TCP
(
80
端口),再不成功则用
TCP
(
443
端口)。通常为防止其超级节点不可用,客户端必须建立一个可选连接节点列表,并定期维护该列表。
对于该流程通常会产生下面几点疑问:
初次登录时如何连接到超级节点?
我们发现,用户初次安装了
Skype
客户端软件后,该客户端的主机缓存中就已经初始化了一个包含至少
7
个
IP
地址和端口组的列表,这些地址和端口组所代表的便是初始的超级节点。
如何向好友发送在线信息?
由于
Skype
采用路由缓存机制,即用户查找其好友的过程中会在中间的超级节点缓存其路由信息(缓存
72
小时),因此用户登录后,其状态信息可以通过其超级节点通知到好友终端,并将好友的状态返回给用户。一旦缓存超时,需要通过其他超级节点查找用户路由,这充分体现了
Skype
的用户路由信息动态分布式存储的特点。
如何判断
NAT
和防火墙类型?
客户端软件采用各种
STUN
协议与超级节点之间交换信息,从而判断终端所处私网的
NAT
和防火墙类型,客户端软件还采用定期刷新机制来保证任何时候都能穿越
NAT
和防火墙。
(
3
)查找用户
Skype
采用了一种称做全球索引(
Global Index
)的技术来查找用户,该技术结合前面所述的分层网络,超级节点之间采用全分布式的连接,每个超级节点具有最小时延前提下所有可用的用户和资源的全部信息。具体来说,
Skype
采用了下面两种机制来保证顺利完成用户的查找。
启动后向所有列表中的用户发送其上线信息,其他用户响应各自的信息;
在中间节点缓存查找到的用户信息
对于有公网地址的客户端,其查找用户的过程如下:点击发送要查找的用户信息-
>
通过
SN
获取四个节点地址-
>
不成功-
>
报告
SN
-
>
获取八个节点地址-
>……
-
>
成功(或失败返回)。
对于那些位于私网内的受限客户端,其查找用户的过程则是首先客户端将需要查找的用户信息发送给其
SN
,然后由
SN
完成查找后返回给私网内的客户端。
(
4
)呼叫建立和释放
查找到希望连接的用户后,可以将其加入好友列表,
Skype
用户可以随时与在线的好友进行呼叫。经过了稍微复杂的认证过程和用户查找过程,呼叫建立和释放的过程就变得简单了。用户位于公网和位于私网内部的情况会有所不同,两种情况下的呼叫建立和释放流程分别见图
5
和图
6
所示。
从上述流程图可见,
Skype
的呼叫信令都采用
TCP
封装,而媒体流则使用
UDP
封装,当有任何一方用户位于限制
UDP
包的防火墙内时,媒体流就会采用
TCP
封装。另外当
Skype
用户至少有一方位于私网内时,所有的信令和媒体消息都经过一个或多个中间节点转发。此时无需担心用户通话的媒体流因为经过中间节点转发而被窃听,因为
Skype
采用了对消息进行端到端加密的机制。
Skype
的技术优势
Skype
之所以引起了不小的轰动,是因为它的互联网特性,即免费、开放和较好的业务质量。事实上,
Skype
最大的意义在于,它开创了将
P2P
技术引入到话音通信的先河。也就是说,采用了网络中的所有节点都动态参与到路由、信息处理和带宽增强等工作中的机制,而不是单纯依靠服务器来完成这些工作,因此其管理成本大大降低,同时又保证了语音质量。
从具体技术的角度来看,
Skype
的优势有下面几点:
(
1
)
较强的
NAT
和防火墙穿越能力。首先识别
NAT
和防火墙类型,然后通过动态的选择信令和媒体代理,从而轻松实现
NAT
和防火墙的穿越。
(
2
)
快速路由机制,
Skype
采用了全球索引(
Global Index
)技术提供快速路由,其用户路由信息分布式存储于网络节点中。
(
3
)
结合互联网特点的语音编解码算法。
Skype
通过与
Global IP Sound
公司合作,引入语音质量增强软件,专门针对互联网的特点,从而降低了业务对带宽的要求。
(
4
)
很低的运行成本。很显然,
Skype
将很多工作下放给网络节点去完成,大大地降低了中心服务器的负担,进而减少了维护和管理的成本。
(
5
)
开放性。
Skype
采取开放的机制,鼓励互联网用户自己开发插件,目前此类开发如雨后春笋,在互联网上遍地开花。
其中第
1
条保证了通信无障碍,无论终端处于何种网络条件,都不会影响用户使用
Skype
提供的业务。第
2
条和第
3
条则保证了
Skype
较好的业务服务质量。第
4
条使得
Skype
可以轻松面对挑战。而第
5
条则给了
Skype
更强大的生命力,使其更加灵活,具有更高的可扩展性。
Skype
给电信运营带来的思考
Skype
的出现无疑给传统电信业带来一股强烈的冲击波,它从
2003
年下半年出现以来便广为流传,截至目前,
Skype
全球注册用户数已达
2.5
亿,每天增加的会员有
15.5
万人,而到
2005
年
3
月
14
日
为止,
Skype
在全球的通话量累计已经达到
60
亿分钟。
Skype
仍在迅速向各个国家渗透,最新的统计表明:使用
Skype
技术呼叫的分钟数已经占到美国
VoIP
分钟数的
46.2%
,这部分用户基本是
“
免费
”
享用电话业务的。
Skype
毕竟是一种互联网服务,而不是真正的电信服务,它也存在一些问题,比如网络的无管理性使得它只能通过这种免费的方式走向市场,企业用户也会因为担心它的安全隐患而不采用等。但是无论如何,
Skype
的理念很可能给传统的电信市场带来突破性的变革,也引起业界对于
VoIP
的新的思考,传统电信运营商决不可忽视其挑战。
首先,对于
VoIP
的态度问题,该积极应对还是消极回避?答案已经非常明显
——
微软公司的总裁曾说过这样的话:即使没有
Skype
,也会有另一个提供互联网电话的企业出现。我国在上个世纪
90
年代末成功地开展了
VoIP
的电信运营,到现在市场基本稳定,普通用户对
IP
电话已经不再陌生,然而几年来
VoIP
的电信运营却没有继续发展,几乎有点停滞不前了。事实上,
VoIP
应该具有更广阔的空间和更灵活的表现形式。
技术的进步往往是不可阻挡的,尤其是互联网带来的开放时代,给了新技术更广阔的发展空间,你不发展,别人会发展,因此国内电信运营商应该积极地迈出这一步。
VoIP
的发展可以采取开放的思路,
Skype
的成功也有一些可借鉴之处。首先,积极研究
P2P
技术的利弊:一旦将
P2P
技术引入可运营的
VoIP
系统,在降低运营成本、具有更高的网络可靠性(不依赖于集中的服务器)的同时,是否会带来不可预知的坏影响?另外,
VoIP
并不代表人们通常所理解的
“
低收费就一定提供低质量服务
”
,电信运营商可以结合
IP
网络的特点,引入相应的技术,来保证可靠的服务质量。最后,
VoIP
完全可以开发并向用户提供更丰富的业务形式。








