P2P技術(shù)應(yīng)用現(xiàn)狀
由于能夠極大緩解傳統(tǒng)架構(gòu)中服務(wù)器端的壓力過(guò)大、單一失效點(diǎn)等問(wèn)題,又能充分利用終端的豐富資源,所以P2P技術(shù)被廣泛應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)的各個(gè)應(yīng)用領(lǐng)域,如分布式科學(xué)計(jì)算、文件共享、流媒體直播與點(diǎn)播、語(yǔ)音通信及在線游戲支撐平臺(tái)等方面。
(1)分布式科學(xué)計(jì)算
我們知道,許多計(jì)算機(jī)的CPU資源并不是時(shí)刻保持峰值運(yùn)轉(zhuǎn)的,甚至很多時(shí)候計(jì)算機(jī)處于“空閑”狀態(tài),比如使用者暫時(shí)離開等情況。而P2P技術(shù)可以使得眾多終端的CPU資源聯(lián)合起來(lái),服務(wù)于一個(gè)共同的計(jì)算。這種計(jì)算一般是計(jì)算量巨大、數(shù)據(jù)極多、耗時(shí)很長(zhǎng)的科學(xué)計(jì)算。在每次計(jì)算過(guò)程中,任務(wù)(包括邏輯與數(shù)據(jù)等)被劃分成多個(gè)片,被分配到參與科學(xué)計(jì)算的P2P節(jié)點(diǎn)機(jī)器上。在不影響原有計(jì)算機(jī)使用的前提下,人們利用分散的CPU資源完成計(jì)算任務(wù),并將結(jié)果返回給一個(gè)或多個(gè)服務(wù)器,將眾多結(jié)果進(jìn)行整合,以得到最終結(jié)果。
世界最著名的P2P分布式科學(xué)計(jì)算系統(tǒng)非“SETI@home”項(xiàng)目莫屬。SETI@home項(xiàng)目(簡(jiǎn)稱為S@H或SETI),由美國(guó)加利福尼亞大學(xué)伯克利分校在1999年發(fā)起,是至今最成功的分布式計(jì)算項(xiàng)目。SETI@home通過(guò)分析從射電望遠(yuǎn)鏡傳來(lái)的數(shù)據(jù)來(lái)搜尋地外文明,這在不少科幻迷甚至是很多普通大眾眼里都是一個(gè)“很酷”的應(yīng)用。SETI的早期版本截至2005年已經(jīng)吸引了543萬(wàn)用戶,分析了大量積壓數(shù)據(jù)。正如宇宙的浩瀚一般,需要計(jì)算的數(shù)據(jù)(即存在宇宙空間的無(wú)數(shù)無(wú)線電信號(hào))也是海量的。可以說(shuō),這幾百萬(wàn)臺(tái)終端組成了一個(gè)目前最快的高性能計(jì)算機(jī)都望塵莫及的“超級(jí)計(jì)算機(jī)”。
(2)文件共享
要問(wèn)一百個(gè)網(wǎng)友目前中國(guó)最流行的文件下載方式,恐怕99個(gè)都會(huì)回答是“BT”。“BT”是BitTorrent[7]的簡(jiǎn)稱,是一種依賴P2P方式將文件在大量互聯(lián)網(wǎng)用戶之間進(jìn)行共享與傳輸?shù)膮f(xié)議,對(duì)應(yīng)的客戶端軟件有BitTorrent、BitComet和BitSpirit等。由于其實(shí)現(xiàn)簡(jiǎn)單、使用方便,在中國(guó)用戶之間被廣泛使用。BitTorrent中的節(jié)點(diǎn)在共享一個(gè)文件時(shí),首先將文件分片并將文件和分片信息保存在一個(gè)流(Torrent)類型文件中,這種節(jié)點(diǎn)被形象地稱作“種子”節(jié)點(diǎn)。其他用戶在下載該文件時(shí)根據(jù)Torrent文件的信息,將文件的部分分片下載下來(lái),然后在其他下載該文件的節(jié)點(diǎn)之間共享自己已經(jīng)下載的分片,互通有無(wú),從而實(shí)現(xiàn)文件的快速分發(fā)。由于每個(gè)節(jié)點(diǎn)在下載文件的同時(shí)也在為其他用戶上傳該文件的分片,所以整體來(lái)看,不會(huì)隨著用戶數(shù)的增加而降低下載速度,反而下載的人越多,速度越快。
BitTorrent是一種無(wú)結(jié)構(gòu)的網(wǎng)絡(luò)協(xié)議。除了BitTorrent之外,還有不少著名的無(wú)結(jié)構(gòu)化的P2P文件共享協(xié)議,典型的有Gnutella[8]和KaZaA[6]。
Gnutella協(xié)議是一種最典型的完全分布式、無(wú)等級(jí)結(jié)構(gòu)的P2P網(wǎng)絡(luò)模型。網(wǎng)絡(luò)中的節(jié)點(diǎn)隨機(jī)連接若干個(gè)其他節(jié)點(diǎn),稱之為“鄰居”。這種結(jié)構(gòu)能夠很好地適應(yīng)P2P網(wǎng)絡(luò)中節(jié)點(diǎn)頻繁加入與離開的動(dòng)態(tài)特性,因?yàn)槿我庖粋€(gè)節(jié)點(diǎn)都可以被新加入的節(jié)點(diǎn)作為“鄰居”而連接,任意一個(gè)“鄰居”也可以隨意地離開網(wǎng)絡(luò)。同時(shí),這種加入節(jié)點(diǎn)和離開節(jié)點(diǎn)的選擇是節(jié)點(diǎn)間的獨(dú)立行為,隨機(jī)分布于網(wǎng)絡(luò)之中。所以說(shuō)Gnutella的網(wǎng)絡(luò)具有健壯性、實(shí)時(shí)性、可靠性、負(fù)載平衡等優(yōu)勢(shì)。
上一篇:TCP穿透主流商用NAT產(chǎn)品的主要技術(shù)研究
下一篇:語(yǔ)音技術(shù)