位置:51电子网 » 技术资料 » 通信网络

Skype协议分析

发布时间:2008/5/29 0:00:00 访问次数:497

  1、概述

  skype是由kazaa于2003年发明的基于p2p技术的voip客户端,用户可以通过skype通过互联网进行语音和文本的传输。 skype的通讯协议是不公开的,而且通讯内容是加过密的,哥伦比亚大学的baset和schulzrinne完全在实验的基础上对skype的通讯机制进行分析,通过分析得出的结论主要有三个:

 (1)skype的通话质量较msn和yahoo的即时通信工具要好;

  (2)可以无缝的在nats和防火墙后使用;

  (3)安装使用起来非常简单。

  2、skype的网络结构

  skype的节点有两种:客户端(ordinary node)和超级节点(super node,sn)。客户端必须链接到超级节点,并且在skype的中央服务器登录。中央服务器保存用户的用户名和密码,完成登录的认证工作。图1中的小黑点是客户端,大黑点是超级节点(用于为其它客户端提供登录跳板及广播服务),灰色的点是skype的登录服务器。

  skype可以看作是一个叠加在互联网之上的网络。与以往msn等im工具最大的不同在于其除了用户登录,其余工作基本不依赖中央服务器。 skype在穿透防火墙通讯时完全使用了peer to peer,而没用到中央服务器。每一个客户端都维护一个可以到达的主机列表(host cache,hc),包括其ip地址和端口号。

图1 skype的网络结构

  用户下载安装完skype后,skype客户端会发送一段http 1.1的请求到中央服务器,告诉它我装完了一个什么样的版本,服务器会返回一个200 ok的信息。客户端会进行登录初始化工作,针对三种不同类型的网络情况有三种不同的登录方式:

  (1)直接有公众网的ip

  (2)在内部网,可以通过tcp访问外部网络

  (3)在内部网,但只能通过有限的几个端口(例如80和443)访问外部网络

  skype在登录的时候会先使用udp请求hc中的ip,如果不行,就用tcp请求hc中的ip及端口,如果还不行。就用tcp请求hc中的 ip及80端口,如果又不行,就再请求hc中的ip及443端口。如果这时候还不行,那就登录不了了。整个过程中传输的数据量大概在8k-10k,持续的时间在3至35秒。

  3、skype的主要组成部分

  3.1 端口

  在skype的连接属性对话框中可以设置监听的端口号,在安装的时候skype会随机的选择一个端口作为监听的端口,这一点与http协议等不同,skype没有默认的服务端口。同时,它还会打开对80和443端口的监听。80是常见的http服务默认端口,而443则是https服务的默认端口。

  3.2 主机列表

  这里的主机指的是可以提供跳板及广播服务的sn的ip地址和端口号,这是skype最重要的部分之一,hc中至少要有一个可用的主机地址和端口号。通常它被存储在注册表里的hkey_current_user/software/skype/phone/lib/connec- tion/hostcache中。一般情况下,在skype运行两天后,hc中的sn地址及对应的端口号会达到约200个。

  3.3 编解码器

  skype采用了ilbc、isac和一个保密的编解码器,能够对50-8,000 hz范围内的语音信号进行编码。global ip sound已经实现了ilbc和isac编解码器,其网站表明了skype是他们的合作伙伴。由此来看skype应该是使用了global ip sound的编解码器实现的语音通讯。

  3.4 好友列表

  skype的好友列表没有保存在服务器上,而是保存在本地的注册表中,并进行了加密。这就使得用户如果更换了另外一台电脑之后需要重新构建好友列表。

  3.5 加密

  skype使用aes(advanced encryption standard)加密标准,这也是美国政府使用的一个加密标准。skype采用了256比特加密,可能的密钥有1.1×1077个。

  3.6 nat与防火墙

  skype应该是使用了stun和turn协议来检测所处的nat及防火墙环境。skype定期的刷新这些信息,这些信息也是存储在注册表中的。与另外一个点对点文件共享系统kazza不同,普通客户端无法阻止自己成为super node(sn),就是说它随时可能被征用成为别人登录服务和广播服务的提供者,就是类似于bt中的种子提供者的角色。

  4、skype的主要功能

  skype的功能主要可以分为:初始化,登录,用户搜索,呼叫建立与终止,媒体传输和状态消息。



  1、概述

  skype是由kazaa于2003年发明的基于p2p技术的voip客户端,用户可以通过skype通过互联网进行语音和文本的传输。 skype的通讯协议是不公开的,而且通讯内容是加过密的,哥伦比亚大学的baset和schulzrinne完全在实验的基础上对skype的通讯机制进行分析,通过分析得出的结论主要有三个:

 (1)skype的通话质量较msn和yahoo的即时通信工具要好;

  (2)可以无缝的在nats和防火墙后使用;

  (3)安装使用起来非常简单。

  2、skype的网络结构

  skype的节点有两种:客户端(ordinary node)和超级节点(super node,sn)。客户端必须链接到超级节点,并且在skype的中央服务器登录。中央服务器保存用户的用户名和密码,完成登录的认证工作。图1中的小黑点是客户端,大黑点是超级节点(用于为其它客户端提供登录跳板及广播服务),灰色的点是skype的登录服务器。

  skype可以看作是一个叠加在互联网之上的网络。与以往msn等im工具最大的不同在于其除了用户登录,其余工作基本不依赖中央服务器。 skype在穿透防火墙通讯时完全使用了peer to peer,而没用到中央服务器。每一个客户端都维护一个可以到达的主机列表(host cache,hc),包括其ip地址和端口号。

图1 skype的网络结构

  用户下载安装完skype后,skype客户端会发送一段http 1.1的请求到中央服务器,告诉它我装完了一个什么样的版本,服务器会返回一个200 ok的信息。客户端会进行登录初始化工作,针对三种不同类型的网络情况有三种不同的登录方式:

  (1)直接有公众网的ip

  (2)在内部网,可以通过tcp访问外部网络

  (3)在内部网,但只能通过有限的几个端口(例如80和443)访问外部网络

  skype在登录的时候会先使用udp请求hc中的ip,如果不行,就用tcp请求hc中的ip及端口,如果还不行。就用tcp请求hc中的 ip及80端口,如果又不行,就再请求hc中的ip及443端口。如果这时候还不行,那就登录不了了。整个过程中传输的数据量大概在8k-10k,持续的时间在3至35秒。

  3、skype的主要组成部分

  3.1 端口

  在skype的连接属性对话框中可以设置监听的端口号,在安装的时候skype会随机的选择一个端口作为监听的端口,这一点与http协议等不同,skype没有默认的服务端口。同时,它还会打开对80和443端口的监听。80是常见的http服务默认端口,而443则是https服务的默认端口。

  3.2 主机列表

  这里的主机指的是可以提供跳板及广播服务的sn的ip地址和端口号,这是skype最重要的部分之一,hc中至少要有一个可用的主机地址和端口号。通常它被存储在注册表里的hkey_current_user/software/skype/phone/lib/connec- tion/hostcache中。一般情况下,在skype运行两天后,hc中的sn地址及对应的端口号会达到约200个。

  3.3 编解码器

  skype采用了ilbc、isac和一个保密的编解码器,能够对50-8,000 hz范围内的语音信号进行编码。global ip sound已经实现了ilbc和isac编解码器,其网站表明了skype是他们的合作伙伴。由此来看skype应该是使用了global ip sound的编解码器实现的语音通讯。

  3.4 好友列表

  skype的好友列表没有保存在服务器上,而是保存在本地的注册表中,并进行了加密。这就使得用户如果更换了另外一台电脑之后需要重新构建好友列表。

  3.5 加密

  skype使用aes(advanced encryption standard)加密标准,这也是美国政府使用的一个加密标准。skype采用了256比特加密,可能的密钥有1.1×1077个。

  3.6 nat与防火墙

  skype应该是使用了stun和turn协议来检测所处的nat及防火墙环境。skype定期的刷新这些信息,这些信息也是存储在注册表中的。与另外一个点对点文件共享系统kazza不同,普通客户端无法阻止自己成为super node(sn),就是说它随时可能被征用成为别人登录服务和广播服务的提供者,就是类似于bt中的种子提供者的角色。

  4、skype的主要功能

  skype的功能主要可以分为:初始化,登录,用户搜索,呼叫建立与终止,媒体传输和状态消息。



相关IC型号

热门点击

 

推荐技术资料

耳机的焊接
    整机电路简单,用洞洞板搭线比较方便。EM8621实际采... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!