无论传统电信运营商愿意看到与否,以Skype为代表的VoIP软件已经在全球拥有越来越多的拥趸。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完全可以开发并向用户提供更丰富的业务形式。
来源:oschina
链接:https://my.oschina.net/u/2276921/blog/533998