Skype电话协议分析_第1页
Skype电话协议分析_第2页
Skype电话协议分析_第3页
Skype电话协议分析_第4页
Skype电话协议分析_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2006年第3期萍乡高等专科学校学报Jou rnal of P ingx iang Co llege2006NO.3 Skyp e电话协议分析蔡方萍1王继军2(1.萍乡高等专科学校;2.萍乡温盘中学,江西萍乡337055摘要:Skype是2003年由KaZaa开发的点对点宽频电话客户端。Skype做到几乎无缝地穿越网络地址转换和防火墙,并且比M SN和Yahoo等即时讯息软件具有更佳的语音质量。它实现端到端的呼叫加密,并以分布式存储用户信息。Skype也支持即时讯息和会议。本文分析Skype的主要功能,例如注册,穿越NA T和防火墙,呼叫建立,媒体传输,编解码以及在三种不同网络设置下的会议通讯

2、。关键词:点对点;网络电话;超级节点;用户数据简单传输协议;网络地址解析中图分类号:TN915文献标识码:A文章编号:1007-9149(200603-0038-05一、导言Skype是P2P覆盖网络。这种覆盖网络有两种类型的节点,普通节点和超级节点。普通节点是应用程序,能建立语音呼叫和发送文本信息。超级节点是普通节点的终端。任拥有公网IP地址的节点能成为一个超级节点的候选者。普通节点必须连接到一个超级节点并成功地注册到Skype注册服务器中。Skype节点和注册服务器都是Skyp e网络中的重要组成部分。服务器保存用户名和密码,注册时这台服务器处理用户身份认证;同时确保注册用户名在Skype

3、网络中是唯一。除了注册服务器,在Skyp e网络中没有中心服务器。在线和离线用户信息以分布方式存储和传播,用户的搜索请求也以同样的方式处理。Skype重要的功能是穿越NA T和防火墙。我们相信每个Skyp e节点使用不同的STUN协议来确定它所处NA T和防火墙的类型。Skype网络是一个P2P覆盖网络,因此每个Skyp e客户(SC将建立和更新可连接节点的列表。在Skyp e中,这张列表被称为Ho st Cache(HC,它包含超级节点的IP地址和端口号。列表存储在每个Skype节点的W indow s注册表中。Skype应用了被称为第三代P2P或全球索引技术用以保证能够查到过去72小时内曾

4、登陆到Skyp e网络中的用户。Skype使用宽频编解码器,使之在32kb s的有效带宽维持合理的呼叫质量。Skype使用TCP发信号, UD P和TCP媒体传输,两者使用不同的端口。二、Skype软件的主要构件Skype客户端(SC在指定端口侦听呼叫信息,维护更新其它Skype节点的列表,宽带编解码,维护好友列表,加密发送消息,并确定自身是否处于NA T 和防火墙后。以下详细说明这些构件及其功能。(一端口Skype客户(SC打开一个TCP和一个UD P侦听端口,在连接对话框中配置。客户端在安装时随机地选择配置的端口号。此外,客户也同时打开80号端口(H T T P端口和433号端口(H T

5、T PS端口作为TCP侦听端口。(二主机缓存(HCHC是记录超级节点IP地址和端口对的列表,客户端有规律的建立和更新该列表。它对于Skype 运行是最关键的部分。HC中至少存在一个有效的条目(一个在线Skype超级节点的IP地址和端口号。Skyp e客户存储HC在W indow s的注册表的H KEYCU RR EN TU SER SO FTW A R E SKT PE PHON E L I B CONN ECT I ON HO STCA CH E。在Skyp e客户端运行两天后,观察到HC中最多包含了200个条目。对于Skype而言,这样的主机和节点的缓存已不是新技术。Cho rd,另一个点

6、对点协议有一收稿日期:2006-02-21作者简介:蔡方萍(1975-,男,江西萍乡人,讲师,研究方向:计算机技术.个finger表,能用来快速查找节点。(三编码解码(CodecsSkype使用了i L BC8,iSA C9和第三个未知的编码解码。GlobalIPSound10运用i L BC和iSA C 编码解码,它的网站列出Skype为他们的合作伙伴。相信Skype使用他们的编码解码技术实现。实验测量-Skype编码解码允许频率为50-8000H z信号通过。这个频率范围是宽带编码解码的典型特性。(四好友列表Skype存储伙伴信息于W indow s注册表中并对伙伴列表进行数字签名和加密。

7、好友列表局限于一台机器而不是存储在中心服务器。如果用户在不同的机器上使用SC注册Skyp e网络,用户必须重新构建好友列表。(五加密Skype使用256位加密通话和文字信息,有总数为1.1x1077可能的密钥。Skype使用1536到2048位R SA来处理对称A ES密钥。用户公钥在注册时由Skype服务器验证。(六网络地址转换和防火墙SC使用不同的STUN1和TU RN协议来决定它所处在NA T和防火墙的类型,SC定期的更新这些信息。这些信息也存储在W indow s注册表中。三、Skyp e的协议分析Skype的协议被分为启动、注册、用户查找、呼叫建立、拆除、媒体传输和消息表示。以下从细

8、节上探讨每个功能。(一启动SC安装后第一次运行,它发送一个H T T P1.1 GET请求到Skyp e服务器。此请求的第一行中包含了关键字in stalled。随后的启动中,SC仅发送一个H T T P1.1GET 请求到Skyp e服务器决定是否一个新的版本可用。此请求的第一行中包括关键字getlatestversi on。(二注册对Skyp e操作注册是最关键的功能。在注册过程中,注册服务器验证SC的用户名和口令,将SC的注册通告其它节点和它的伙伴,确定它所处NA T和防火墙的类型,查找在线Skype超级节点的IP地址,新查找到的超级节点用来在其它超级节点失效的情况下维持客户端与Skyp

9、 e网络的连接。1.注册过程主机缓存(HC必须包含一个有效条目使得SC 能连接到Skyp e网络。如果HC中仅存在一条无效条目,SC将不能连接到Skype网络并报告注册失败。然而,通过观察SC和这无效HC条目的Skyp e注册过程的消息流获得有用的理解。对注册过程的实验配置和观察描述如下。首先,清除SC的HC中的内容,并对HC加载一个条目,该条目包含所指机器的IP地址和端口号,该机器没有SC运行。那时SC启动并作一次注册尝试。因为HC包含的是一个无效条目,SC不能连接到Skyp e网络。我们观察到SC首先发送一个UD P包到该条目所指的机器;如果在大概5秒钟后没有响应,SC尝试和该条目所指机器

10、建立一个TCP连接,尝试连接该条目所指的IP地址和80端口(H T T P端口;如果仍然不成功,他尝试联系到HC中的IP地址和端口443(H T T PS端口,SC那时等待大概6秒钟。在报告注册失败后将重复整个过程4次以上。可以发现SC为了连接到Skyp e网络必须和SN建立一个TCP连接。如果它不能连接到超级节点(SN,它将报告注册失败。大多数防火墙配置允许端口80和端口443外出TCP数据流。SC处在防火墙后,而防火墙阻断UD P 流,选择性的允许TCP流。利用这个因素,在注册时, SC与一个公有IP地址和端口号为80或433的Skyp e节点建立一个TCP连接。2.注册服务器在客户端与超

11、级节点连接之后,客户端必须通过注册服务器验证用户名和密码。注册服务器是Skype 网络中的唯一中心元件,它存储了所有Skype用户的用户名和密码,并确定所有的Skype用户名是唯一的。客户端不许自己与注册服务器连接完成注册。在试验过程中发现客户端总是与一个IP为80.160.91.11的节点交换数据,这个节点是Skype的注册服务器。3.引导超级节点在第一次安装程序并完成注册之后,Ho st Cache 被初始化,通过试验观察在第一次注册过程中,Ho st Cache总是被初始化为7组IP地址和端口号,即使在初始化过程中获得了超过7组的IP地址和端口号,其中也包括固定的7组,客户端在第一次连接

12、注册服务器时就是与7组中的一组建立TCP连接。我们就将这7组固定的IP地址和端口号所指的节点成为Boo tstrap超级节点。以下就是这7组入口:66.235.180.9:33033sls-cb10p6.dca2. 66.235.181.9:33033i p9.181.su sc.su 80.161.91.25:33033x50a15b19.boanxx15. adsl-dhcp.tele.dk80.160.91.12:330330x50a15b0c.albnxx9.adsl -dhcp.tele.dk93第三期萍乡高等专科学校学报64.246.49.60:33033rs-64-246-49-

13、60. 64.246.49.61:33033rs-64-246-49-61. 64.246.48.23:33033n 在首次安装完成第一次启动客户端的时候Ho st Cache中是空的,但是在第一次注册时,客户端给Boo tstrap超级节点中的至少4个发送UD P包,因此这些Boo tstrap节点的信息被固定写在了客户端程序当中或者被加密保存而不能通过W indow s注册表直接显示出来。之后研究发现,在首次注册之后再将Ho st Cache中的信息清除掉,客户端将不能连接到Skype网络中。这样就使我们必须进行单独的试验,分别是首次注册和之后的注册。4.首次注册过程客户端的Ho st C

14、ache在安装完成后是空的,因此,客户端必须与已知的超级节点联系以注册到Skype网络中。它发送UD P包给一些Boo tstrap节点然后等待它们的UD P回复,如此反复几次。但是客户端如何在所有Boo tstrap中选择其中几个发送UD P包仍是未知的。然后客户端就与回复UD P包的Boo tstrap节点建立TCP连接,如果受到多个UD P 回复,那么客户端就可以和多个Boo tstrap节点建立TCP连接,但是之后客户端保持与至少一个Boo tstrap节点的连接,同时关闭其它连接。在和超级节点通过TCP交换信息之后,客户端就会获得注册服务器的地址(80.160.91.11,之后就直接

15、与注册服务器建立TCP连接,交换验证信息然后关闭与注册服务器的TCP连接。一开始与引导节点和注册服务器的TCP数据交换显示了竞争响应机制的存在。与超级节点的TCP连接一直持续到超级节点的关闭,当正在连接的超级节点失效之后,客户端立刻与另外一个有效的超级节点建立TCP连接。注册过程中,我们观察到所有的客户端、超级节点、注册服务器以及其它节点之间的数据交换的总量大约是9KB。对于处在限制端口的NA T后的客户端,注册的消息流大致与处在公网的客户端相同,但是会有更多的数据交换,平均情况下,客户端与超级节点、注册服务器以及其它节点交换的数据量为10KB。处在限制端口的NA T和限制UD P的防火墙之后

16、的客户端,不能从防火墙外面的计算机接收到任何UD P包,因此只能发送和接收TCP包。客户端分别与超级节点和注册服务器建立TCP连接并交换信息。平均情况下,客户端与超级节点、注册服务器以及其它节点交换的数据量为8.5KB。(1确定NA T和防火墙客户端能够在注册的过程中确定它是否处在NA T和防火墙的后面。猜测至少有两种方式可以确定这些信息。一种可能的方式就是客户端可以使用STUN协议与超级节点交换信息来确定;另一种可能的方式是在注册的过程中客户端与超级节点建立TCP连接,然后发送数据到一些节点,再接收回复。客户端使用不同的STUN协议来确定NA T和防火墙的类型,一旦确定,客户端将这些信息保存

17、到W indow s的注册表中,并且会定时更新。(2预备节点列表Skype是P2P客户端,P2P网络是动态的,因此客户端必须保持对Skyp e网络中的节点进行追踪以便在原超级节点失效的情况下建立新的连接。客户端在注册的最后阶段发送UD P包给22个不同的节点,如果那些节点不是处在限制UD P的防火墙后的话,就会受到它们的回复,研究发现,客户端就是通过这样的消息发送通知给整个Skype网络-自己的到来,同时通过收到的消息回复来建立一个在线节点的列表,将这样的列表称为预备节点列表,就是这些节点使得客户端的原超级节点失效时能够建立新连接。接下来在建立连接的过程中与这些节点的信息交换更确定了这样一个列

18、表的存在,客户端发送I C M P 包给Skyp e网络中的一些节点。(3其后的注册过程其后的注册过程和首次注册过程很相似,客户端在首次安装注册后建立Ho st Cache,Ho st Cache定时更新一些新的节点的IP地址和端口号,在其后的注册中,客户端使用注册算法确定Ho st Cache中至少存在一个有效的节点,然后与有效节点建立TCP 连接。观察发现在其后的注册过程中客户端就不再发送任何的I C M P包了。(4注册过程时间试验测算注册过程时间也是按照三种不同网络设置进行的。试验中,Ho st Cache已经包含了最大数量的200个入口,在公网的客户端和在限制端口的NA T后面的客户

19、端大约要花费37秒的时间来完成注册过程;处在限制UD P的防火墙后面的客户端花费了大约34秒完成注册过程。对于处在限制UD P 的防火墙后面的客户端,发现它发送UD P包给Ho st Cache中的30个入口,然后断定它是处在限制UD P 的防火墙后面,然后就与Ho st Cache中的入口建立TCP连接,最终实现与超级节点的连接。(三用户查找Skype应用Global Index(G I技术查找用户,这是分布式的查找并能够保证查询到最近72小时登陆过的用户。经过广泛的测试表明,Skype总是能够定4萍乡高等专科学校学报第三期位在72小时内登陆过的公网和私网用户。Skyp e是一个非开放的协议

20、并且它的消息都是加密的,然而在注册中,我们可以在相关的入口方面获得相当精确的结论,在查找过程中却不能,因为不能追踪与超级节点的消息流,同时也不能强迫客户端连接一个指定的超级节点,不过观测到并列出了三种不同网络设置时的消息流。客户端有一个查找对话框,在输入了用户I D后点击“查找”按钮,客户端就开始查找指定用户。对于处在公网的客户端,它发送TCP包给它的超级节点,超级节点给它回复4个节点的IP地址和端口号用于查询,与超级节点交换数据结束后,客户端发送UD P 包给那4个节点,而之前的注册过程中客户端从来没有和这4个节点交换数据。客户端发UD P包给这些节点,如果不能找到需要的用户,客户端就会通过

21、TCP告知超级节点,之后超级节点就会让客户端联系8个不同的节点,然后客户端就往这8个节点发UD P包,这样的过程持续到客户端查找到需要的用活或者确定用户不存在。平均情况下客户端会联系8个节点,整个过程花费34秒的时间,但是客户端时如何确定用户不存在这点仍未知。处在限制端口的NA T和限制UD P的防火墙后的客户端通过TCP向超级节点查找发送请求,然后超级节点执行查找操作并且告知客户端查找结果。与公网的客户端不同,这里的客户端不与任何节点联系,说明客户端知道自己时处在限制UD P的防火墙后的。1.查询结果缓冲为了验证缓冲查询结果的中间节点的存在,进行了以下试验:用户A是处在限制端口的NA T和限

22、制UD P的防火墙后的客户端,它注册进了Skype网络,用户B是公网的客户端,由用户B查找用户A,发现查找的过程耗时68秒,然后将B端的客户端卸载,清除W indow s注册表中的Skyp e相关信息,之后重新安装客户端,再次由用户B查找用户A,这次查找过程耗时34秒,这样的试验在不同时间重复进行了4次,获得的结果都相似。从以上的试验讨论可以推断处客户端的查找结果缓冲在了中间节点中。(四通话的建立与取消在三种不同的网络设置情况下分析通话的建立,此外,对每一种网络设置,分析在好友列表中存在的用户和在好友列表中不存在的用户建立通话连接。值得注意的一点是通话的信号发送接收总是使用TCP 连接。对于不

23、在好友列表的用户,通话的建立其实就是用户查找的过程加上通话的信号发送接收。因此,我们只讨论被叫用户在主叫用户的好友列表中时建立通话的情况。第一种双方都在公网上、在线,并且都在对方的好友列表中,那么在按下呼叫按钮后,呼叫方就与被叫方建立TCP连接,通话的信息通过TCP 交换。最初主叫方和被叫方之间的消息交换表明了竞争响应机制的存在。主叫方同时也通过UD P发送消息来更换在注册过程中发现的在线的Skype节点。在这个过程中交换的数据量为3KB。第二种网络设置中,即主叫方处在限制端口的NA T后,而被叫方处在公网,信号和媒体传输并不是直接建立在主叫方和被叫方之间的,而是主叫方通过TCP发送信号给一个

24、Skype节点,通过它来使用TCP转接给被叫方。这个在线的节点同时也通过UD P转发来自被叫者的声音包,反之也相同。主叫方发送在注册过程中UD P消息给节点并收到回复,说明主叫方就储存了这些节点的IP地址和端口。对于第三中网络设置,即双方用户都处于限制端口的NA T和限制UD P的防火墙之后,主叫方和被叫方都式通过另外节点的TCP连接转交控制信息。主叫方发送通过媒体信息给中间节点,然后由中间节点将信息通过TCP连接转交给被叫方,反之相同。使用节点为主叫方和被叫方中转声音包有很多优点。首先,它提供了一种处在NA T和防火墙后的用户建立通话的机制;其次,如果处在NA T和防火墙后的用户加入一个讨论

25、会议,同时公网的用户也想加入到其中,这个中间节点将作为一个服务节点提供混合和广播会议消息的服务。不好的一面是将会有很多的信息流量通过这个接节点。当然用户大都不希望任意的消息流通过自己的电脑。在建立和取消通话的过程中,如果主叫方和被叫方是处在公网则控制信息是通过之间的TCP连接。对于第二种和第三钟网络设置,建立和取消连接的控制信息也是通过TCP传输的。(五媒体传输和编解码双方用户都是处在公网地址,则媒体传输直接在它们之间使用UD P传输。媒体传输流的进出是通过在选项窗口中设置的UD P端口属性中。声音包的大小为67字节,即为UD P包的有效载荷。对于两个处在同一个100M以太网的用户,大约140

26、个声音包在一秒钟内传输。因此,总共用于声音传输的上行和下行带宽为5KB每秒。这个带宽符合Skyp e宣布的3 16KB每秒。如果主叫方和被叫方有一方或者两方处在限制端口的NA T后,它们通过向另外一个节点发送UD P包来传送声音数据。那个节点作为中间代理转发声音数据从主叫方到被叫方。声音包的大小为67字节,正好是UD P的载荷。使用的带宽是5KB每秒。如果双方用户都处在限制端口的NA T和显示UD P的防火墙后,则主叫方和被叫方发送和接受声14第三期萍乡高等专科学校学报音数据通过与另外一个节点的TCP 连接。声音数据的TCP 包载荷为69字节。总共用于声音传输的上行和下行带宽为5KB 每秒。对

27、于媒体数据,客户端使用TCP 作为传输方式。在Skype 的协议中,似乎非常喜欢使用UD P 作为数据传输协议。如果客户端处在允许UD P 的NA T 或防火墙后,就使用UD P 传输。1.静音压缩Skype 不支持静音压缩。当没有通话时,声音数据仍然在用户之间传输。传输这样的Silence 包有两个优点,首先,它保持了NA T 上的UD P 绑定,其次,这些包能够用来传输背景噪音。当声音数据通过TCP 传输的时候,Silence 包仍然发送。2.保持通话连接Skype 允许保持通话连接,因为客户端可以确保NA T 上的UD P 端口绑定。平均的,客户端每秒钟发送三个UD P 包给呼叫节点、超

28、级节点或者再现的Skype 节点作为传输代理。除了UD P 消息外,客户端同时也周期性的通过TCP 发送消息给节点、超级节点或者在线的Skyp e 节点。3.编解码频率范围通过实验确定了Skyp e 编解码起的频率范围。在两个Skyp e 节点之间建立通话连接,不同频率的音调通过N CH 音调发生器生成并输出给被叫方。观察到最小和最大可听见的频率范围在50H z 到8000H z 。使用N etPeeker 来降低上行和下行带宽至1500字节每秒。4.压缩通过使用N etPeeker 调节上传和下载的带宽来测试低带宽情况下的通话质量。上行和下行带宽为2KB 每秒是理想通话质量的必要条件。当上行

29、和下行贷款降到1.5KB 每秒的时候声音质量就会大幅下降。(六保持连接控制消息在三种不同的网络设置中客户端每60秒通过TCP 向它的超级节点发送一次刷新信息 。图Skype 节点向超级节点发送刷新信息四、结论Skype 是第一个基于P 2P 技术的V o IP 客户端。它如此快速的发展有三个原因,首先,它提供了比M SN 和Yahoo I M 更好的声音质量;其次,它可以无缝的工作在NA T 和防火墙后;最后,它简单易用。Skyp e 客户端使用STUN 协议确定NA T 和防火墙的类型。Skyp e 的NA T 和防火墙的穿越技术与现在存在的诸如网络游戏的技术相似。Skype 使用TCP 作为控制信息传输协议使用高带宽的编解码器。参考文献1J .Ro senberg ,J .W einberger ,C .H uitem a ,and R .M ahy .STUN :Si m p le T raversal of U ser D atagram P ro toco l (UD P .T h rough N etw o rk A ddress T ranslato rs (NA T s .R FC 3489,IET F ,M ar .200

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论