• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

    Skype協議分析

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

      是由Kazaa于2003年發明的基于技術的客戶端,用戶可以通過通過互聯網進行語音和文本的傳輸。 協議是不公開的,而且內容是加過密的,哥倫比亞大學的Baset和Schulzrinne完全在實驗的基礎上對Skype的機制進行分析,通過分析得出的結論主要有三個:

     (1)Skype的通話質量較MSN和Yahoo的即時通信工具要好;

      (2)可以無縫的在NATs和防火墻后使用;

     ?。?)安裝使用起來非常簡單。

      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的信息。客戶端會進行登錄初始化工作,針對三種不同類型的網絡情況有三種不同的登錄方式:

     ?。?)直接有公眾網的IP

     ?。?)在內部網,可以通過TCP訪問外部網絡

     ?。?)在內部網,但只能通過有限的幾個端口(例如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



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 托克逊县| 筠连县| 个旧市| 阿克陶县| 海盐县| 普兰店市| 丰台区| 广昌县| 沙湾县| 基隆市| 海城市| 宣恩县| 瑞昌市| 玛曲县| 泾源县| 碌曲县| 宁海县| 买车| 聊城市| 通江县| 黄大仙区| 庆元县| 康马县| 美姑县| 海宁市| 遂平县| 大埔区| 龙里县| 息烽县| 云南省| 揭西县| 汉中市| 方城县| 卢氏县| 武邑县| 靖州| 茂名市| 沙河市| 舒兰市| 镇平县| 兰州市|