2024年4月17日发(作者:)
SKYPE分析
SKYPE是P2P语音技术中最典型的例子,SKYPE是迄今为止公认的最成功的P2P VoIP
软件,在可用性和通话质量方面都非常出色,它可以无缝地穿越防火墙和NAT(网络地址
转换)设备,用户无需进行任何配置。在语音质量方面,在拨号连接的带宽下就可获得传
统电话的语音质量,这也比MSN或Yahoo messenger等即时消息软件要出色。它采用
私有协议,所有的语音数据都进行端对端的加密,所有用户数据都是分布方式存储,同时
它也支持即时消息和会议功能。 SKYPE全球拥有2亿多用户,在所有的P2P语音流量中,
SKYPE流量约占95%。
SKYPE是一种完全分布式的P2P VoIP系统,它的设计原理是一种重叠的对等网络设
计。在SKYPE网络中有注册服务器、普通节点和超级节点3种角色。注册服务器是SKYPE
系统中唯一的有集中控制功能的服务器。它存储着所有SKYPE用户的用户名和密码信息。
用户通过它进行注册认证,广播它的在线状态和好友信息,并能够检测是否用户位于防火
墙或NAT后,同时判断防火墙的种类。另外,通过注册服务器SKYPE客户端软件还可以
获得更新的超级节点列表,用于后续的通信。注册之后,SKYPE客户端就不再需要注册服
务器的参与,VoIP接续和用户查找功能都由SKYPE普通节点和超级节点组成的SKYPE网
络完成。普通节点就是可以进行普通的VoIP呼叫和即时消息的客户端。超级节点除了可以
进行普通节点的通话和即时消息外,还可以当作普通节点的转接点。
在SKYPE网络中,普通节点和超级节点都是由SKYPE客户端来充当的。每个SKYPE
客户端运行时可以以两种方式工作,一是作为做普通节点,另一种是作为超级节点。一个
SKYPE客户端软件运行在何种状态下是由软件根据带宽和处理器性能自动选择的。任何一
个客户端,只要它具有公共的IP地址、具有足够的CPU,内存和带宽都可以成为超级节
点,完成其它普通节点的转接工作。每一个SKYPE客户端软件都会维护一个超级节点的列
表,如果一个超级节点连接不上,它会尝试与列表中的其它节点连接。另外,为了保证SKYPE
网络的可用性,除了普通用户的客户端可以作为超级节点,网络中还有一些固定的超级节
点。这些节点可以作为SKYPE客户端首次运行时的默认超级节点来帮助客户端完成呼叫功
能。也就是说一个普通的SKYPE客户端在运行时,除了在注册时需要与SKYPE的注册服
务器通信进行用户口令的认证,其它时候它不需要与任何集中的服务器进行通信,所有的
呼叫信令和媒体流都由超级节点来完成。
SKYPE不同于传统VoIP系统的主要方面之一是可以无缝地穿越防火墙和NAT(网络
地址转换)设备,用户无需进行任何配置。在现实网络中,由于IPv4的地址资源问题和安
全问题,防火墙和NAT设备的使用非常频繁,一般大多数VoIP客户端都是以RTP协议进
行媒体传输的,这也严重影响了VoIP的可用性。因为,防火墙设备可以针对TCP和UDP
协议以及端口进行限制。很多的企业防火墙为了安全起见会禁止未知的UDP端口,而一般
的VoIP媒体流都是以UDP(一般都是通过RTP)形式传输的。也就是说,如果一个企业
想禁止VoIP语音通信,只要禁止所有未知的UDP端口(一般是端口号10000以上)就
可以了。除了防火墙可以人为地影响VoIP系统,NAT设备从设计原理上就会导致VoIP的
不可用。在H.323或SIP等VoIP协议中,主叫和被叫客户端会通过呼叫信令协商会话中
所采用的IP地址和端口等信息,当会话建立起来后,媒体流会使用协商好的IP地址和端
口等信息进行传输。而如果客户端在NAT设备之后,NAT设备会对IP包头的地址进行转
换,但不识别应用层VoIP信令内的IP地址,如果VoIP系统不进行相应的处理,呼叫将
不能正确建立。SKYPE系统在防火墙和NAT的处理上做的非常智能,在不要用户设置的
情况下可以自动做出识别,完成在防火墙和NAT后的呼叫接续。首先,针对防火墙,SKYPE
可以做到信令和媒体流即可以在UDP上传输,也可以在TCP上传输。对于信令,SKYPE
通常使用TCP进行传输,它可以使用TCP端口80(HTTP端口)和443(HTTPS端口),
一般防火墙不会禁止这两个端口。对于媒体流,SKYPE将首选UDP进行传输(UDP没有
差错重传机制适合媒体流的传输),如果不成功,它也会使用TCP进行媒体流的传输。在


发布评论