admin管理员组

文章数量:1531231

2024年6月6日发(作者:)

第9章 P2P VoIP的技术分析

类型;二是建立隧道,也就是通常所说的在NAT设备上进行“打洞”,完成输出和输入消息

的NAT穿越。应用程序启动时,在向超级节点进行连接时就完成了NAT和防火墙类型的检

测。通过中继节点传输消息时大部分通信都采用UDP连接,但如果UDP端口被防火墙阻止,

内部节点则会与中继节点建立TCP连接,用于消息的输入和输出。

9.3 Skype技术

9.3.1 Skype概述

Skype是由KaZaa于2003年发明的基于P2P技术的VoIP应用软件,用户可以通过Skype

在互联网上进行语音和文本的传输。Skype公司于2003年8月推出首个产品,截至2006年,

已经成为VoIP的顶级提供商,注册用户超过1亿,同时在线的用户数超过500万。仅从Skype

的功能上看,Skype是一款提供语音对话、即时消息、文件传输和电话会议的即时通信工具,

和MSN、QQ在功能上差别不大。但是Skype的底层构架和关键技术与以往的即时通信软件

有很大的不同,总的来说,有以下3点,这些也正是Skype取得巨大成功的重要原因。

(1)采用P2P系统结构。Skype系统采取了P2P系统结构,避免了中心服务设备的瓶颈

问题。

(2)NAT和防火墙穿越。Skype在设计中,考虑了NAT和防火墙的影响,实现了完整的

NAT和防火墙穿越方案。

(3)高效的音频编解码器。Skype的音频编解码器由专门开发商设计,可以在占用较少

带宽的情况下完成高质量的通话。

Skype是基于KaZaa框架的对等网络应用系统。与KaZaa的结构类似,Skype系统中的

节点可以分为两类:普通节点和超级节点。普通节点仅通过运行Skype应用来进行语音通话

和消息传递。超级节点也是一组运行Skype应用的节点,只不过超级节点必须具备一些特殊

条件:第一,超级节点必须具有一个公网IP;第二,超级节点的处理能力、存储能力和带宽

要高于普通节点。普通节点和超级节点都需要先通过登录服务器来加入Skype覆盖网。登录

服务器不是Skype覆盖网的组成部分,是一个特殊的控制节点。登录服务器记载了

Skype系

统的所有用户的登录信息(主要包括用户名和密码),同时还要验证用户的登录合法性,并保

证用户名字符串在整个Skype覆盖网上的唯一性。

由于Skype覆盖网采用的是对等网络的分布式组织方式,因此,每个Skype节点还必须

建立和维护一定的路由信息和拓扑维护信息。在本章后面的介绍中,普通Skype节点被称为

SC(Skype Client),超级节点被称为SN(Super Node),每个SC上保存的主机列表被称为

HC(Host Cache)

[2][5][6]

9.3.2 Skype的工作原理

1.Skype的网络结构

Skype的网络结构如图9-6所示。图中黑点代表普通节点,大黑点代表超级节点,灰色

的点是登录服务器。普通节点必须连接到超级节点,并且需要在Skype的登录服务器上注册

登录。Skype可以看作是一个叠加在互联网之上的网络,与传统的集中式VoIP通信方式最大

191

P2P技术全面解析

的不同在于其除了用户登录,其余工作基本不依赖中心服务器。每一个客户端都维护一个可

以到达的主机列表(HC),列表中包含可到达主机的IP地址和端口号信息。

2.Skype的主要功能构件

Skype节点的主要功能有监听特定端口的语音呼叫信

号、维护主机列表、使用宽频带音频编码、维护好友列表、

加密端到端传输的信息和确定NAT和防火墙信息。因此

其功能构件就是端口、主机列表、编解码器、好友列表,

加密及NAT与防火墙

[2][5][6]

(1)端口

打开Skype的连接属性对话框,其中可以设置监听的

端口号,Skype系统在运行中会监听该端口的语音呼叫。

安装Skype软件时系统会随机定义该端口,这点与SIP和

HTTP等其他网络应用程序不同,Skype没有特定的监听

端口。除了设置的监听端口号外,Skype节点同时也会监

听HTTP应用的80端口和HTTPS应用的443端口。

(2)主机列表

主机列表(HC)是Skype最重要的部分之一,在主

机列表中记录和维护当前Skype节点所连接到的一组超

级节点的IP地址和端口号。为了正常工作,在HC中需

要至少保证一条记录是当前可用的,即要保证列表中的一

图9-6 Skype的网络结构

个超级节点是当前可用的。一般Skype节点的HC中会保存有多个固定的由Skype提供商提

供的超级节点,以保证在HC中多数情况下都存在可用的超级节点。HC通常被保存在

Windows操作系统注册表中的HKEY_CURRENT_ USER/SOFTWARE/SKYPE/PHONE/

LIB/CONNECTION/HOSTCACHE键值下,HC的最大条目数为200条。Skype采用HC的原

因就是由于其采用的是P2P构架,要求每个Skype节点必须建立和维护一定的路由信息和拓

扑维护信息,其他P2P应用系统也使用的是相似的主机列表。

(3)编解码器

iSAC以及iPCM。

Skype使用了3种音频编码方案:由Global IP Sound公司开发的iLBC

Skype所采用的音频编码范围为50~8 000Hz,频带很宽,因此其编码方案称为宽频带编码

技术。

(4)好友列表

与传统的VoIP不同,Skype的好友列表并没有保存在登录服务器上,而是仅存储在本地

主机的Windows操作系统的注册表中,Skype对存储的内容还进行了数字签名和加密。由于

好友列表仅存储于用户本地的计算机中,这就使得用户在不同的计算机上登录Skype时,需

要重新构建好友列表。

(5)加密

Skype使用高级加密标准(AES,Advanced Encryption Standard)方式进行加密,这也是

美国政府使用的一个加密标准。Skype采用了256比特加密,即总共可以有1.1×10

77

个不同

192

本文标签: 节点登录列表信息