2007/07/02
Skype與 P2P所謂P2P(Peer to Peer),其最本質(zhì)的含義即“對等”,該技術(shù)最早是用于網(wǎng)絡(luò)中對等節(jié)點(diǎn)之間的資源和信息共享的技術(shù),通常人們所知道的是將P2P技術(shù)用在文件下載過程中,即網(wǎng)絡(luò)上的對等終端在下載共享文件的同時又作為一個“種子”為其他對等終端提供資源和信息。后來,Skype在網(wǎng)絡(luò)通話業(yè)務(wù)系統(tǒng)中靈活應(yīng)用了該技術(shù)。由于沖擊了傳統(tǒng)通信領(lǐng)域,Skype在引起很多爭議的同時也使人耳目一新,可以說,Skype是發(fā)展和演進(jìn)了的P2P應(yīng)用。目前對于P2P技術(shù)還沒有規(guī)范的定義,結(jié)合其已有的應(yīng)用,就更廣泛的意義而言, P2P技術(shù)是指網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都動態(tài)參與到路由、信息處理和帶寬增強(qiáng)等工作中,而不是單純依靠服務(wù)器來完成這些工作。
Skype是P2P技術(shù)演進(jìn)到混合模式后的典型應(yīng)用,它結(jié)合了集中式和分布式的特點(diǎn),在網(wǎng)絡(luò)的邊緣節(jié)點(diǎn)采用集中式的網(wǎng)絡(luò)結(jié)構(gòu),而在超級節(jié)點(diǎn)之間采用分布式的網(wǎng)絡(luò)結(jié)構(gòu),混合模式的P2P網(wǎng)絡(luò)模型如圖1所示。
Skype的通信原理
1. Skype網(wǎng)絡(luò)結(jié)構(gòu)
與常規(guī)的電信業(yè)務(wù)網(wǎng)絡(luò)不同的是,Skype的網(wǎng)絡(luò)中除了注冊服務(wù)器,沒有其他任何集中的服務(wù)器,只是將用戶節(jié)點(diǎn)分為普通節(jié)點(diǎn)和超級節(jié)點(diǎn)。Skype的系統(tǒng)連接結(jié)構(gòu)如圖2所示。
普通節(jié)點(diǎn)即普通主機(jī)終端,只需要下載了Skype的應(yīng)用,就具有提供語音呼叫和文本消息傳送的能力。
超級節(jié)點(diǎn)實(shí)際上是滿足某些要求的普通節(jié)點(diǎn),這些要求包括:具有公網(wǎng)地址、具有足夠的CPU、存儲空間足夠大、具有足夠的網(wǎng)絡(luò)帶寬。也就是說,任何符合條件的主機(jī)終端都可以成為超級節(jié)點(diǎn),當(dāng)然前提是加載了Skype應(yīng)用。
2. 通信流程
Skype的通信流程分為:啟動、注冊(認(rèn)證)、查找用戶、呼叫和釋放的過程。其中注冊流程只是在用戶初次安裝了Skype的客戶端軟件后進(jìn)行注冊,后期使用的過程中該步驟就變成認(rèn)證過程。
(1)啟動流程
Skype的用戶終端啟動時,采用HTTP協(xié)議連接到注冊服務(wù)器,用戶初次安裝的啟動流程中攜帶“installed”的參數(shù),使用時啟動流程則在消息中攜帶“getlatestversion”參數(shù),具體流程分別見圖3和圖4。
(2)注冊(認(rèn)證)流程
注冊(認(rèn)證)流程可能是Skype所有流程中最復(fù)雜的一個,用戶啟動Skype后,首先需要連接到超級節(jié)點(diǎn),通過超級節(jié)點(diǎn)向注冊服務(wù)器發(fā)送身份認(rèn)證信息,注冊服務(wù)器驗(yàn)證用戶名和密碼的合法性,然后向其他對等節(jié)點(diǎn)及其好友發(fā)送在線信息,同時還需要判斷該終端所在私網(wǎng)的NAT和防火墻類型。如果該終端先前默認(rèn)的超級節(jié)點(diǎn)已不可用,則還要查找具有公網(wǎng)地址的Skype節(jié)點(diǎn)來作為該終端的超級節(jié)點(diǎn),從而維持該終端與Skype網(wǎng)絡(luò)的連接。
一旦超級節(jié)點(diǎn)都不可用,Skype的客戶端采用了盡力而為的方式進(jìn)行注冊,即先用UDP包試注冊,不成功超時則用TCP(80端口),再不成功則用TCP(443端口)。通常為防止其超級節(jié)點(diǎn)不可用,客戶端必須建立一個可選連接節(jié)點(diǎn)列表,并定期維護(hù)該列表。
對于該流程通常會產(chǎn)生下面幾點(diǎn)疑問:
- 初次登錄時如何連接到超級節(jié)點(diǎn)?
- 如何向好友發(fā)送在線信息?
我們發(fā)現(xiàn),用戶初次安裝了Skype客戶端軟件后,該客戶端的主機(jī)緩存中就已經(jīng)初始化了一個包含至少7個IP地址和端口組的列表,這些地址和端口組所代表的便是初始的超級節(jié)點(diǎn)。
由于Skype采用路由緩存機(jī)制,即用戶查找其好友的過程中會在中間的超級節(jié)點(diǎn)緩存其路由信息(緩存72小時),因此用戶登錄后,其狀態(tài)信息可以通過其超級節(jié)點(diǎn)通知到好友終端,并將好友的狀態(tài)返回給用戶。一旦緩存超時,需要通過其他超級節(jié)點(diǎn)查找用戶路由,這充分體現(xiàn)了Skype的用戶路由信息動態(tài)分布式存儲的特點(diǎn)。
Skype采用了一種稱做全球索引(Global Index)的技術(shù)來查找用戶,該技術(shù)結(jié)合前面所述的分層網(wǎng)絡(luò),超級節(jié)點(diǎn)之間采用全分布式的連接,每個超級節(jié)點(diǎn)具有最小時延前提下所有可用的用戶和資源的全部信息。具體來說,Skype采用了下面兩種機(jī)制來保證順利完成用戶的查找。
對于那些位于私網(wǎng)內(nèi)的受限客戶端,其查找用戶的過程則是首先客戶端將需要查找的用戶信息發(fā)送給其SN,然后由SN完成查找后返回給私網(wǎng)內(nèi)的客戶端。
。4)呼叫建立和釋放
查找到希望連接的用戶后,可以將其加入好友列表,Skype用戶可以隨時與在線的好友進(jìn)行呼叫。經(jīng)過了稍微復(fù)雜的認(rèn)證過程和用戶查找過程,呼叫建立和釋放的過程就變得簡單了。用戶位于公網(wǎng)和位于私網(wǎng)內(nèi)部的情況會有所不同,兩種情況下的呼叫建立和釋放流程分別見圖5和圖6所示。
從上述流程圖可見,Skype的呼叫信令都采用TCP封裝,而媒體流則使用UDP封裝,當(dāng)有任何一方用戶位于限制UDP包的防火墻內(nèi)時,媒體流就會采用TCP封裝。另外當(dāng)Skype用戶至少有一方位于私網(wǎng)內(nèi)時,所有的信令和媒體消息都經(jīng)過一個或多個中間節(jié)點(diǎn)轉(zhuǎn)發(fā)。此時無需擔(dān)心用戶通話的媒體流因?yàn)榻?jīng)過中間節(jié)點(diǎn)轉(zhuǎn)發(fā)而被竊聽,因?yàn)镾kype采用了對消息進(jìn)行端到端加密的機(jī)制。
Skype的技術(shù)優(yōu)勢
Skype之所以引起了不小的轟動,是因?yàn)樗幕ヂ?lián)網(wǎng)特性,即免費(fèi)、開放和較好的業(yè)務(wù)質(zhì)量。事實(shí)上,Skype最大的意義在于,它開創(chuàng)了將P2P技術(shù)引入到話音通信的先河。也就是說,采用了網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都動態(tài)參與到路由、信息處理和帶寬增強(qiáng)等工作中的機(jī)制,而不是單純依靠服務(wù)器來完成這些工作,因此其管理成本大大降低,同時又保證了語音質(zhì)量。
從具體技術(shù)的角度來看,Skype的優(yōu)勢有下面幾點(diǎn):
。2) 快速路由機(jī)制,Skype采用了全球索引(Global Index)技術(shù)提供快速路由,其用戶路由信息分布式存儲于網(wǎng)絡(luò)節(jié)點(diǎn)中。
。3) 結(jié)合互聯(lián)網(wǎng)特點(diǎn)的語音編解碼算法。Skype通過與Global IP Sound公司合作,引入語音質(zhì)量增強(qiáng)軟件,專門針對互聯(lián)網(wǎng)的特點(diǎn),從而降低了業(yè)務(wù)對帶寬的要求。
。4) 很低的運(yùn)行成本。很顯然,Skype將很多工作下放給網(wǎng)絡(luò)節(jié)點(diǎn)去完成,大大地降低了中心服務(wù)器的負(fù)擔(dān),進(jìn)而減少了維護(hù)和管理的成本。
。5) 開放性。Skype采取開放的機(jī)制,鼓勵互聯(lián)網(wǎng)用戶自己開發(fā)插件,目前此類開發(fā)如雨后春筍,在互聯(lián)網(wǎng)上遍地開花。
其中第1條保證了通信無障礙,無論終端處于何種網(wǎng)絡(luò)條件,都不會影響用戶使用Skype提供的業(yè)務(wù)。第2條和第3條則保證了Skype較好的業(yè)務(wù)服務(wù)質(zhì)量。第4條使得Skype可以輕松面對挑戰(zhàn)。而第5條則給了Skype更強(qiáng)大的生命力,使其更加靈活,具有更高的可擴(kuò)展性。
Skype給電信運(yùn)營帶來的思考
Skype的出現(xiàn)無疑給傳統(tǒng)電信業(yè)帶來一股強(qiáng)烈的沖擊波,它從2003年下半年出現(xiàn)以來便廣為流傳,截至目前,Skype全球注冊用戶數(shù)已達(dá)2.5億,每天增加的會員有15.5萬人,而到2005年3月14日為止,Skype在全球的通話量累計已經(jīng)達(dá)到60億分鐘。Skype仍在迅速向各個國家滲透,最新的統(tǒng)計表明:使用Skype技術(shù)呼叫的分鐘數(shù)已經(jīng)占到美國VoIP分鐘數(shù)的46.2%,這部分用戶基本是“免費(fèi)”享用電話業(yè)務(wù)的。
Skype畢竟是一種互聯(lián)網(wǎng)服務(wù),而不是真正的電信服務(wù),它也存在一些問題,比如網(wǎng)絡(luò)的無管理性使得它只能通過這種免費(fèi)的方式走向市場,企業(yè)用戶也會因?yàn)閾?dān)心它的安全隱患而不采用等。但是無論如何,Skype的理念很可能給傳統(tǒng)的電信市場帶來突破性的變革,也引起業(yè)界對于VoIP的新的思考,傳統(tǒng)電信運(yùn)營商決不可忽視其挑戰(zhàn)。
首先,對于VoIP的態(tài)度問題,該積極應(yīng)對還是消極回避?答案已經(jīng)非常明顯——微軟公司的總裁曾說過這樣的話:即使沒有Skype,也會有另一個提供互聯(lián)網(wǎng)電話的企業(yè)出現(xiàn)。我國在上個世紀(jì)90年代末成功地開展了VoIP的電信運(yùn)營,到現(xiàn)在市場基本穩(wěn)定,普通用戶對IP電話已經(jīng)不再陌生,然而幾年來VoIP的電信運(yùn)營卻沒有繼續(xù)發(fā)展,幾乎有點(diǎn)停滯不前了。事實(shí)上,VoIP應(yīng)該具有更廣闊的空間和更靈活的表現(xiàn)形式。
技術(shù)的進(jìn)步往往是不可阻擋的,尤其是互聯(lián)網(wǎng)帶來的開放時代,給了新技術(shù)更廣闊的發(fā)展空間,你不發(fā)展,別人會發(fā)展,因此國內(nèi)電信運(yùn)營商應(yīng)該積極地邁出這一步。
VoIP的發(fā)展可以采取開放的思路,Skype的成功也有一些可借鑒之處。首先,積極研究P2P技術(shù)的利弊:一旦將P2P技術(shù)引入可運(yùn)營的VoIP系統(tǒng),在降低運(yùn)營成本、具有更高的網(wǎng)絡(luò)可靠性(不依賴于集中的服務(wù)器)的同時,是否會帶來不可預(yù)知的壞影響?另外,VoIP并不代表人們通常所理解的“低收費(fèi)就一定提供低質(zhì)量服務(wù)”,電信運(yùn)營商可以結(jié)合IP網(wǎng)絡(luò)的特點(diǎn),引入相應(yīng)的技術(shù),來保證可靠的服務(wù)質(zhì)量。最后,VoIP完全可以開發(fā)并向用戶提供更豐富的業(yè)務(wù)形式。
CTI論壇編輯