計算機網路應用層 之 P2P

2021-06-19 08:37:55 字數 2497 閱讀 6635

一、什麼是p2p

對等網路(peertopeer,簡稱p2p)也稱為對等連線,是一種新的通訊模式,每個參與者具有同等的能力,可以發起乙個通訊會話。

對於客戶機/伺服器體系結構,它要求總是開啟的基礎設施伺服器。相反,使用p2p體系結構,對總是開啟的基礎設施伺服器有最小的(或者沒有)依賴,任意間斷連線的主機對都稱為對等方,各個對等方直接通訊。對等方並不為服務提供商所有,而是為使用者控制的裝置。

二、p2p檔案分發

下面通過乙個具體的應用來研究p2p,這個應用是從單一伺服器向大量主機(對等方)分發大檔案。

在客戶機/伺服器檔案分發中,伺服器必須向每個客戶機傳送該檔案的乙個拷貝,這同時給伺服器造成了極大的負擔,並且消耗了大量的伺服器頻寬。在p2p檔案分發中,每個對等方(即對應客戶機/伺服器體系結構中的客戶機)都能夠重新分發其所有的該檔案的任何部分,從而協助伺服器進行分發。

1、客戶機/伺服器體系結構 vs p2p體系結構

首先,dcs = max

然後,對於p2p體系結構,其中每個對等方都能夠幫助伺服器來分發檔案。也就是說,當乙個對等方接收到檔案資料時,它可以利用自己的上載能力重新將資料分發給其他對等方。

在分發的開始,只有伺服器擁有檔案。為了使對等方得到該檔案,伺服器必須經其接入鏈路至少傳送一次該檔案。因此最小分發時間至少是f/u。因為在p2p體系結構中,伺服器傳送一次檔案就可能不用再次傳送了,因為其他對等方可以從擁有該檔案的對等方中獲得。

最後,系統的總上載能力等於伺服器的上載速率加上每個對等方的上載速率,即utotal=u+u1+u2...+un。系統必須向n個對等方的都交付(上載)f位元,因此總的交付為nf位元。所以最小分發時間至少是nf/(u+u1+u2...+un)。

綜上所述,使用p2p體系結構分發檔案所需要的時間為

dp2p = max

2、bittorrent——用於檔案分發的流行p2p協議

前面用數學的方法說明了基於客戶機/伺服器體系結構和基於p2p體系結構的檔案分發所需的時間的差別,下面來說一下,這個p2p檔案分發是如何實現的。下面以使用bittorrent協議為例子說明。

這裡有 二

個問題,

1)我們的主機或裝置加入乙個洪流中時如何知道它有哪些對等方,即它如何知道它要向哪些主機請求所需要的檔案。

首先再來

三、p2p區域搜尋資訊

p2p的另乙個重要應用就是資訊索引,即資訊到主機位置的對映。

為了說明什麼是索引,舉個例子說明吧,p2p檔案共享系統中有乙個索引,它動態地跟蹤這些對等方可供共享的檔案。該索引維護了乙個記錄,記錄將有關拷貝的資訊對映到具有拷貝對等方的ip位址。當乙個對等方加入系統時,它通知系統它所擁有的檔案索引。當乙個使用者希望獲得乙個檔案時,他搜尋索引以定位該檔案的拷貝的位置。

1、集中式索引

由一台大型伺服器(或伺服器場)來提供索引服務。當使用者啟動p2p檔案共享應用程式時,該應用程式將它的ip位址以及可供共享的檔名稱通知索引伺服器。索引伺服器收集可共享的物件,建立集中式的動態資料庫(物件名稱到ip位址的對映)。

它有如下的缺點:

1、單點故障

2、效能瓶頸

3、可靠性差

這種索引方式的

特點是:檔案傳輸是分散的(p2p的),但定位內容的過程是高度集中的(客戶機/伺服器)。

2、查詢洪氾

查詢洪氾採用完全分布式的方法,索引全面地分布在對等方的區域中,對等方形成了乙個抽象的邏輯網路,稱為覆蓋網路。當a要定位索引(例如abc)時,它向它的所有鄰居傳送一條查詢報文(包含關鍵字abc)。a的所有鄰居向它們的所有鄰居**該報文,這些鄰居又接著向它們的所有鄰居**該報文等。如果其中乙個對等主與索引(abc)配置,則返回乙個查詢命中報文。

但是這種簡單的方法卻有乙個致命的缺點,就是它會產生大量的流量。

乙個解決辦法就是採用範圍受限查詢洪氾。設定乙個計數值,對等方向其鄰居**請求之前就將對等方的計數字段減1,當乙個對等方的計數字段為0時,停止查詢。

3、層次覆蓋

該方法結合了集中式索引和查詢洪氾的優點,與查詢洪氾相似,層次覆蓋設計並不使用專用的伺服器來跟蹤和索引檔案。不同的是在層次覆蓋中並非所有的對等方都是平等的。

它的示意圖如下:

超級對等方(組長對等方)維護著乙個索引,該索引包括了其

子對等方(普通對待方)正在共享的所有檔案的識別符號、有關檔案的元資料和保持這些檔案的子對等方的ip位址。而超級對等方通常也只是乙個普通的對等方。超級對等方之間相互建立tcp連線,從而形成乙個覆蓋網路,超級對等方可以向其相信超級對等方**查詢,但是僅在超級對等方使用範圍受限查詢洪氾。

與受限查詢洪氾設計相比,層次覆蓋設計允許數量多得多的對等方檢查匹配,而不會產生過量的查詢流量。

通過這兩種p2p常用應用的介紹,大家對p2p應該有一定的認識了吧!

注:由於ip位址的不夠用,在ip的使用中有一種技術叫做nat位址轉換,從而對p2p的應用產生了一定的影響,因為使用了nat後,對等方不能正確地獲取處於同一洪流是的對等方的ip位址,從而把p2p的應用限制在乙個區域網中。這在後面說ip的nat時再作介紹。

計算機網路(十二) P2P應用

沒有一直執行的伺服器。任意端之間可以通訊。peers可以任意加入或修改ip位址。p2p應用中乙個重要部分是資訊索引,即資訊到主機位置的對映。在這些應用程式中,對等方動態地更新和搜尋索引。bittorrent協議只是乙個檔案分發協議,並沒有提供任何索引和搜尋檔案的功能。為了能夠在對等方區域中組織和搜尋...

計算機網路 2 應用層

顧客 server架構client server architecture於。稱為server,它為來自客戶機的請求提供服務。客戶機之間不進行直接通訊。server擁有固定的周知的位址,稱為ip位址,且總是處於開啟狀態。常會出現一台server主機跟不上其全部客戶機請求的情況。常使用主機群集a cl...

《計算機網路》之應用層

應用層作為和使用者互動的最高層,其任務是直接為使用者的應用程序提供服務。應用層的具體內容就是規定應用程序在通訊時所遵循的協議。網際網路的應用層協議有很多,如最為熟知的http 埠號80 和ftp 埠號21 支援電子郵件的smtp 埠號25 網域名稱系統dns 埠號53 等。下面我們來簡單介紹網域名稱...