李佳琦
[摘 要] 本文基于P2P的即時通信系統的實現過程,采用了混合P2P模式,服務器端程序采用的是多線程技術。基于P2P的即時通信系統具有高效、方便、即時等優點,逐漸成為個人應用以及企業應用的重要工具。
[關鍵詞] P2P;即時通信;協議;模式;發展
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2017. 17. 088
[中圖分類號] TP393.09 [文獻標識碼] A [文章編號] 1673 - 0194(2017)17- 0187- 02
0 引 言
隨著網絡的不斷普及,人們運用網絡進行信息交換的頻率越來越突出,網絡逐漸成為人們生產生活中不可缺少的重要組成部分,當前互聯網的主要應用模式還是傳統的C/S架構與相對新一些的B/S架構,這兩種方式都是由我們的中央服務器來對其進行協調的,而隨著應用規模的不斷擴大,客戶端對網絡的要求也越來越嚴格,而互聯網用戶的不斷增加也使得這一問題越來越突出。
1 P2P技術
P2P技術可以將互聯網中的集中式管理逐漸轉換成分散式管理,將互聯網內容從原本比較單一的中央節點直接引向網絡的邊緣,利用互聯網的眾多終端節點來存儲潛在的資源。當前我國的P2P在具體應用上還存在一定的局限性,之所以會出現這一情況,主要是因為我國研究這一技術的公司相對較少,再加上研究機構在研究的時候還缺少技術上的創新。而且絕大多數都是商業性的軟件,這樣的一種研究狀態并不利于P2P技術的發展。
2 P2P網絡模式
對于P2P技術來說,其網絡中的每一個節點的地位都是對等存在的,這樣的一種模式擺脫了傳統的C/S模式,它的每一個節點不僅承擔著服務器的相關作用,而且還承擔著對其他的節點提供服務,在承擔這些責任的同時也享受著其他節點提供的相關服務。當前對P2P技術的研究主要停留在對網絡資源進行定位上,目前主要采取的方式有以下幾點。
2.1 集中方式索引
這一方式要求每一個節點都可以將自身共享的內容注冊到目錄服務器中,用戶在查找資源的時候要先通過服務器進行定位,然后兩個節點之間再進行通信。
2.2 廣播
這一方式并沒有任何的索引信息,查找內容的時候基本上都是通過相鄰的節點直接進行廣播傳遞的,一般來說運用這種方式對P2P技術帶寬的要求相對要高一些。
3 即時通信系統的架構形式
目前的即時通信系統主要有兩種模式,一種是用戶/服務器模式,一種是用戶/用戶模式。這兩種模式的主要區別就在于一種需要利用服務器來進行交流,而另一種并不需要服務器。
4 服務器端設計
系統服務器端主程序基本上都是多線程網絡監聽程序。接收UDP協議的數據包,并產生線程來分析數據包,根據數據包的協議格式來查詢數據庫返回的結果,具體如圖1所示。
服務器一般都具備三種工作狀態。一種是Authorization狀態,這種狀態要求客戶端節點要與服務器建立連接關系,服務器在接收信息的時候會進入到該狀態當中,并隨之生產線程查詢數據庫,從而實現返回驗證結果。第二種狀態是Query狀態,這種狀態需要客戶端的節點身份被確認,客戶端會查詢相關的消息。第三種狀態就是Update狀態,這一狀態是當客戶端發出注銷數據包之后才會進入到這一狀態中,此時服務器會釋放資源并關閉連接。
5 P2P網絡中地址的定位
在P2P網絡中,計算機是可以直接溝通在一起的,而當前的互聯網都是基于32位IP地址運行的,也就是說當前有效的IP地址有近五十億個,由于IP地址的使用方式時效性非常強,因此可用的IP地址也就越來越少。一些應用程序可以將IP地址和端口號直接隱藏在地址數據包當中,由于NAT不能夠準確地重寫他們,也就是說程序在NAT網絡中是不能夠正常運行的,還有的NAT網絡出于安全性考慮,只允許從發過去的數據外部地址接收數據,這也就是說不同的NAT后的兩臺計算機是不能以平時的方式來建立連接的。對于這一點我們的設計人員可以將兩節點之間的所有數據流都通過一個單一的端口運行。用戶要先與地址服務器進行連接,并且發送他們的IP地址,這時服務器就可以標記這一地址,然后服務器再將兩個地址都發送到其他節點上,進而實現節點與節點之間的互通。
6 結 語
我們此次主要是針對P2P技術的原理進行了系統的分析,并實現了P2P的即時通信應用,雖然說整個系統相對比較簡單,但是它很好地解釋了P2P技術的實現原理,為后續開發P2P技術提供了非常高效的參考。
主要參考文獻
[1]徐陳鋒,奚宏生,江琦,等.一類分層非結構化P2P系統的隨機切換模型[J].控制與決策,2008,23(3):263-266.
[2]楊艷春,孟祥武.P2P網絡服務環境中的節點相似性度量研究[C]//中國計算機學會服務計算學術會,2011.
[3]陳業芳.P2P的應用沖擊及電信運營商應對策略分析[C]//海南省通信學會學術年會,2006.endprint