新聞中心

        EEPW首頁 > 網絡與存儲 > 設計應用 > Skype協議分析

        Skype協議分析

        ——
        作者: 時間:2007-10-24 來源:Skype協議分析 收藏
        1、概述

          是由Kazaa于2003年發明的基于技術的客戶端,用戶可以通過通過互聯網進行語音和文本的傳輸。 協議是不公開的,而且內容是加過密的,哥倫比亞大學的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地址和端口號。

        Skype的網絡結構

        圖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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 桑植县| 黄陵县| 富锦市| 玉山县| 丰县| 房产| 新余市| 资兴市| 平乐县| 堆龙德庆县| 桦甸市| 东至县| 长垣县| 寿光市| 吉水县| 光山县| 三门峡市| 高青县| 饶河县| 靖宇县| SHOW| 太白县| 澄迈县| 瓦房店市| 松原市| 会泽县| 舞钢市| 河东区| 封开县| 昌图县| 茶陵县| 西城区| 德兴市| 曲靖市| 闵行区| 浦城县| 玛曲县| 高尔夫| 漾濞| 阳原县| 通州区|