Skype協(xié)議分析
Skype是由Kazaa于2003年發(fā)明的基于P2P技術(shù)的VoIP客戶端,用戶可以通過(guò)Skype通過(guò)互聯(lián)網(wǎng)進(jìn)行語(yǔ)音和文本的傳輸。 Skype的通訊協(xié)議是不公開(kāi)的,而且通訊內(nèi)容是加過(guò)密的,哥倫比亞大學(xué)的Baset和Schulzrinne完全在實(shí)驗(yàn)的基礎(chǔ)上對(duì)Skype的通訊機(jī)制進(jìn)行分析,通過(guò)分析得出的結(jié)論主要有三個(gè):
(1)Skype的通話質(zhì)量較MSN和Yahoo的即時(shí)通信工具要好;
(2)可以無(wú)縫的在NATs和防火墻后使用;
?。?)安裝使用起來(lái)非常簡(jiǎn)單。
2、Skype的網(wǎng)絡(luò)結(jié)構(gòu)
Skype的節(jié)點(diǎn)有兩種:客戶端(ordinary node)和超級(jí)節(jié)點(diǎn)(super node,SN)。客戶端必須鏈接到超級(jí)節(jié)點(diǎn),并且在Skype的中央服務(wù)器登錄。中央服務(wù)器保存用戶的用戶名和密碼,完成登錄的認(rèn)證工作。圖1中的小黑點(diǎn)是客戶端,大黑點(diǎn)是超級(jí)節(jié)點(diǎn)(用于為其它客戶端提供登錄跳板及廣播服務(wù)),灰色的點(diǎn)是Skype的登錄服務(wù)器。
Skype可以看作是一個(gè)疊加在互聯(lián)網(wǎng)之上的網(wǎng)絡(luò)。與以往MSN等IM工具最大的不同在于其除了用戶登錄,其余工作基本不依賴(lài)中央服務(wù)器。 Skype在穿透防火墻通訊時(shí)完全使用了Peer to Peer,而沒(méi)用到中央服務(wù)器。每一個(gè)客戶端都維護(hù)一個(gè)可以到達(dá)的主機(jī)列表(host cache,HC),包括其IP地址和端口號(hào)。
圖1 Skype的網(wǎng)絡(luò)結(jié)構(gòu)
用戶下載安裝完Skype后,Skype客戶端會(huì)發(fā)送一段HTTP 1.1的請(qǐng)求到中央服務(wù)器,告訴它我裝完了一個(gè)什么樣的版本,服務(wù)器會(huì)返回一個(gè)200 OK的信息。客戶端會(huì)進(jìn)行登錄初始化工作,針對(duì)三種不同類(lèi)型的網(wǎng)絡(luò)情況有三種不同的登錄方式:
(1)直接有公眾網(wǎng)的IP
?。?)在內(nèi)部網(wǎng),可以通過(guò)TCP訪問(wèn)外部網(wǎng)絡(luò)
(3)在內(nèi)部網(wǎng),但只能通過(guò)有限的幾個(gè)端口(例如80和443)訪問(wèn)外部網(wǎng)絡(luò)
Skype在登錄的時(shí)候會(huì)先使用UDP請(qǐng)求HC中的IP,如果不行,就用TCP請(qǐng)求HC中的IP及端口,如果還不行。就用TCP請(qǐng)求HC中的 IP及80端口,如果又不行,就再請(qǐng)求HC中的IP及443端口。如果這時(shí)候還不行,那就登錄不了了。整個(gè)過(guò)程中傳輸?shù)臄?shù)據(jù)量大概在8k-10k,持續(xù)的時(shí)間在3至35秒。
3、Skype的主要組成部分
3.1 端口
在Skype的連接屬性對(duì)話框中可以設(shè)置監(jiān)聽(tīng)的端口號(hào),在安裝的時(shí)候Skype會(huì)隨機(jī)的選擇一個(gè)端口作為監(jiān)聽(tīng)的端口,這一點(diǎn)與HTTP協(xié)議等不同,Skype沒(méi)有默認(rèn)的服務(wù)端口。同時(shí),它還會(huì)打開(kāi)對(duì)80和443端口的監(jiān)聽(tīng)。80是常見(jiàn)的HTTP服務(wù)默認(rèn)端口,而443則是HTTPS服務(wù)的默認(rèn)端口。
3.2 主機(jī)列表
這里的主機(jī)指的是可以提供跳板及廣播服務(wù)的SN的IP地址和端口號(hào),這是Skype最重要的部分之一,HC中至少要有一個(gè)可用的主機(jī)地址和端口號(hào)。通常它被存儲(chǔ)在注冊(cè)表里的HKEY_CURRENT_USER/SOFTWARE/Skype/PHONE/LIB/CONNEC- TION/HOSTCACHE中。一般情況下,在Skype運(yùn)行兩天后,HC中的SN地址及對(duì)應(yīng)的端口號(hào)會(huì)達(dá)到約200個(gè)。
3.3 編解碼器
Skype采用了iLBC、iSAC和一個(gè)保密的編解碼器,能夠?qū)?0-8,000 Hz范圍內(nèi)的語(yǔ)音信號(hào)進(jìn)行編碼。Global IP Sound已經(jīng)實(shí)現(xiàn)了iLBC和iSAC編解碼器,其網(wǎng)站表明了Skype是他們的合作伙伴。由此來(lái)看Skype應(yīng)該是使用了Global IP Sound的編解碼器實(shí)現(xiàn)的語(yǔ)音通訊。
3.4 好友列表
Skype的好友列表沒(méi)有保存在服務(wù)器上,而是保存在本地的注冊(cè)表中,并進(jìn)行了加密。這就使得用戶如果更換了另外一臺(tái)電腦之后需要重新構(gòu)建好友列表。
3.5 加密
Skype使用AES(Advanced Encryption Standard)加密標(biāo)準(zhǔn),這也是美國(guó)政府使用的一個(gè)加密標(biāo)準(zhǔn)。Skype采用了256比特加密,可能的密鑰有1.1
評(píng)論