国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于P2P的即時通信系統(tǒng)的設(shè)計與實現(xiàn)

2014-02-25 04:31:09朱苗苗牛國鋒
電腦知識與技術(shù) 2014年1期
關(guān)鍵詞:通信系統(tǒng)

朱苗苗 牛國鋒

摘要:該文基于對等網(wǎng)絡(luò)(P2P)設(shè)計了一種即時通信系統(tǒng),該系統(tǒng)采用基于中心服務(wù)器的中心化拓?fù)浣Y(jié)構(gòu),利用SOCKET編程實現(xiàn)。與傳統(tǒng)的C/S模式相比,該模式大大弱化了服務(wù)器的作用,服務(wù)器只是為維護(hù)用戶列表,用戶之間的通信完全是點對點的,不需要經(jīng)過服務(wù)器中轉(zhuǎn),從而能夠承載更多的用戶,大大提高了網(wǎng)絡(luò)效率。

關(guān)鍵詞:P2P;即時;通信系統(tǒng);SOCKET

中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)01-0072-04

隨著Internet的快速發(fā)展,人們在日常生活工作中應(yīng)用網(wǎng)絡(luò)即時通信工具,相互之間的通信交流越來越頻繁,但是以往廣泛采用的傳統(tǒng)通信系統(tǒng)都是通過中間的服務(wù)器來中轉(zhuǎn)實現(xiàn)數(shù)據(jù)傳輸和交換的,這樣的系統(tǒng)勢必對起主要作用的中心服務(wù)器具有較強的依賴,中心服務(wù)器在遭受網(wǎng)絡(luò)攻擊或服務(wù)器出錯的情況下,將有可能導(dǎo)致整個網(wǎng)絡(luò)系統(tǒng)被破壞而陷于癱瘓,因此這樣的系統(tǒng)安全性就受到了很大考驗,而且隨著用戶的增加,當(dāng)遭遇網(wǎng)絡(luò)瓶頸時服務(wù)器就會不堪重負(fù),極大地危機到網(wǎng)絡(luò)安全。

當(dāng)前正處于互聯(lián)網(wǎng)技術(shù)大發(fā)展時代,網(wǎng)絡(luò)上各種基于P2P的應(yīng)用軟件也正在蓬勃發(fā)展,層出不窮,技術(shù)也日趨成熟,隨著網(wǎng)絡(luò)用戶數(shù)量的不斷增加,傳統(tǒng)的分布式網(wǎng)絡(luò)系統(tǒng)已不能滿足人們對于Internet高性能的需求,與之相比,P2P技術(shù)具有無可比擬的優(yōu)越性。同時,P2P技術(shù)也在不斷地完善和成熟,并將應(yīng)用到商業(yè)領(lǐng)域、網(wǎng)絡(luò)通訊、政府信息以及軍事領(lǐng)域等,具有廣闊的應(yīng)用前景和市場價值[1]。

1 P2P技術(shù)

1.1 P2P技術(shù)介紹

P2P技術(shù),也被稱為對等網(wǎng)絡(luò)(peer-to-peer)技術(shù)[2],簡單地說,就是一種網(wǎng)絡(luò)用戶之間不經(jīng)過中繼設(shè)備而直接進(jìn)行相互數(shù)據(jù)交換或服務(wù)的技術(shù)。這種新的技術(shù)將傳統(tǒng)的互聯(lián)網(wǎng)以“內(nèi)容位于中心”模式改變?yōu)椤皟?nèi)容位于邊緣”模式,相比以往的網(wǎng)絡(luò)模式有較大突破,實現(xiàn)了在網(wǎng)絡(luò)系統(tǒng)中每個結(jié)點用戶的地位和功能對等,并將網(wǎng)絡(luò)資源和服務(wù)權(quán)利交還給用戶,在這種系統(tǒng)架構(gòu)下,由于每個節(jié)點的地位和功能都對等,同時具備服務(wù)器和客戶端的雙重特性,因此可以同時作為服務(wù)使用者和服務(wù)提供者。P2P構(gòu)架網(wǎng)絡(luò)模式示意圖如圖1所示。

圖1 P2P構(gòu)架網(wǎng)絡(luò)模式示意圖

從P2P的網(wǎng)絡(luò)連接結(jié)構(gòu)圖可以看出,P2P網(wǎng)絡(luò)在結(jié)構(gòu)上呈現(xiàn)為一種分布式網(wǎng)絡(luò)結(jié)構(gòu),各個用戶之間相互建立連接和對話機制,可以資源共享和相互通信,這些硬件資源包括網(wǎng)絡(luò)核心處理能力、系統(tǒng)存儲能力、打印機等有效資源,這些共享網(wǎng)絡(luò)資源通過系統(tǒng)提供的服務(wù)和內(nèi)容,能夠被該網(wǎng)絡(luò)內(nèi)的其他用戶直接訪問。系統(tǒng)中的所有用戶既作為資源提供者,又是資源獲取者。通過P2P技術(shù)構(gòu)建的網(wǎng)絡(luò),使人們在網(wǎng)絡(luò)上的溝通、信息交流變得更加容易和即時,更利于直接共享和交互,各節(jié)點用戶通過直接連接到網(wǎng)絡(luò)內(nèi)其他用戶的計算機進(jìn)行共享文件信息的交換,這種便捷使得互聯(lián)網(wǎng)信息共享更為便捷、即時、安全可靠。

1.2 P2P技術(shù)的特點

P2P技術(shù)相比C/S模式具有很大的優(yōu)越性,其特點主要體現(xiàn)在以下幾個方面[3]:

1) 網(wǎng)絡(luò)非中心化結(jié)構(gòu):基于P2P技術(shù)構(gòu)建的網(wǎng)絡(luò),系統(tǒng)共享資源和各種網(wǎng)絡(luò)服務(wù)分散在網(wǎng)絡(luò)系統(tǒng)的各個用戶結(jié)點上,用戶之間相互通信和網(wǎng)絡(luò)服務(wù)的實現(xiàn)都可直接進(jìn)行,不需要服務(wù)器的介入和通過其他中間環(huán)節(jié),這就避免了可能引起的網(wǎng)絡(luò)瓶頸問題,風(fēng)險大大減小。

2) 具有良好的可擴展性:隨著互聯(lián)網(wǎng)的不斷發(fā)展,網(wǎng)絡(luò)用戶也隨之大量增加,人們對于服務(wù)的需求也就增加了,P2P網(wǎng)絡(luò)始終能夠根據(jù)需求較快地響應(yīng)并滿足網(wǎng)絡(luò)用戶的需要,同步地進(jìn)行網(wǎng)絡(luò)系統(tǒng)整體的資源和服務(wù)能力的擴充,體現(xiàn)了P2P網(wǎng)絡(luò)具有良好的可擴展性。

3) 具有較高性價比:對于網(wǎng)絡(luò)用戶來說,整體網(wǎng)絡(luò)性能優(yōu)勢是被廣泛關(guān)注并看重的一個重要原因。P2P網(wǎng)絡(luò)能夠整合該系統(tǒng)中其他閑置普通節(jié)點,把大量的網(wǎng)絡(luò)服務(wù)、資料存儲和計算等任務(wù)分布到各個節(jié)點上,從而達(dá)到有效利用閑置各節(jié)點的計算能力和存儲空間,實現(xiàn)海量存儲和高性能計算的目的,提高網(wǎng)絡(luò)性能。

4) 較強的網(wǎng)絡(luò)健壯性:由于P2P結(jié)構(gòu)網(wǎng)絡(luò)提供的服務(wù)和內(nèi)容不是集中與中心服務(wù)器之間進(jìn)行,而是分散在各個結(jié)點用戶之間進(jìn)行,當(dāng)部分網(wǎng)絡(luò)用戶結(jié)點遭到攻擊、結(jié)點斷開或失效時,P2P網(wǎng)絡(luò)及時根據(jù)需要自動調(diào)整網(wǎng)絡(luò)整體拓?fù)浣Y(jié)構(gòu)。P2P構(gòu)架網(wǎng)絡(luò)的建立方式也和其他網(wǎng)絡(luò)有所不同,用戶自發(fā)地根據(jù)網(wǎng)絡(luò)加入和組網(wǎng)機制并以自組織的方式建立起來的,各個節(jié)點的加入和離開比較靈活自由,網(wǎng)絡(luò)能夠按照系統(tǒng)參數(shù)變化情況不斷地做自適應(yīng)式的調(diào)整,優(yōu)化網(wǎng)絡(luò)資源。P2P架構(gòu)網(wǎng)絡(luò)具有耐攻擊、高容錯等優(yōu)點,使其更加健壯穩(wěn)定。

5) 實現(xiàn)整個網(wǎng)絡(luò)負(fù)載均衡: 基于P2P網(wǎng)絡(luò)構(gòu)建環(huán)境下,系統(tǒng)中的所有節(jié)點用戶既充當(dāng)了資源的提供者—服務(wù)器,又作為網(wǎng)絡(luò)中的一個獨立個體—客戶端,這種結(jié)構(gòu)對服務(wù)器的存儲需求和計算能力大大減少了,同時網(wǎng)絡(luò)資源不是集中在中心服務(wù)器,而是分布在多個用戶節(jié)點上,使得整個網(wǎng)絡(luò)的負(fù)載均衡得以更好的實現(xiàn)。

1.3 P2P的拓?fù)浣Y(jié)構(gòu)

根據(jù)拓?fù)浣Y(jié)構(gòu)的特點可以將P2P結(jié)構(gòu)分為4種形式拓?fù)浣Y(jié)構(gòu):集中式拓?fù)?、完全分布式非結(jié)構(gòu)化拓?fù)?、完全分布式結(jié)構(gòu)化拓?fù)浜突旌鲜酵負(fù)?。四種拓?fù)浣Y(jié)構(gòu)的性能比較如表1所示。

2 P2P通信系統(tǒng)的體系結(jié)構(gòu)設(shè)計

2.1 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的設(shè)計

按照P2P網(wǎng)絡(luò)系統(tǒng)組網(wǎng)特點,需要構(gòu)造一個擴展性能良好、可靠性高、維護(hù)方便的拓?fù)浣Y(jié)構(gòu)。本設(shè)計采用基于中心服務(wù)器的P2P拓?fù)浣Y(jié)構(gòu),也稱為集中式拓?fù)浣Y(jié)構(gòu),因為對一個即時的通信系統(tǒng)來說,這種拓?fù)浣Y(jié)構(gòu)可以很方便的管理用戶節(jié)點,縮短了查找用戶節(jié)點的時間,更能達(dá)到即時通信的目的,它的網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖2所示。

在該系統(tǒng)中服務(wù)器的作用就是維護(hù)用戶列表,用戶注冊登錄以后,會把所有在線用戶的一些信息包括用戶的ID,用戶名,用戶IP,端口等搜集統(tǒng)一匯總進(jìn)行維護(hù)??蛻舳艘矔ㄟ^一個數(shù)據(jù)顯示結(jié)構(gòu)把所有服務(wù)器發(fā)送過來的用戶信息保存起來,并在客戶端的界面上顯示出在線用戶。同時,客戶端可以直接雙擊其他用戶的圖標(biāo)與之建立連接,進(jìn)行即時對話通信和數(shù)據(jù)交互。當(dāng)有用戶動態(tài)加入或者是退出時,會先將消息發(fā)送給中心服務(wù)器,然后服務(wù)器再把這些消息發(fā)送給其他的在線用戶,其他的用戶會根據(jù)消息的不同采取不同的操作,既將該用戶信息加入或是刪除。

2.2 總體架構(gòu)設(shè)計

根據(jù)該系統(tǒng)所采用的拓?fù)浣Y(jié)構(gòu)設(shè)計總體架構(gòu)如圖3所示。

在該系統(tǒng)中無論是服務(wù)器端還是客戶端都同時存在兩個Socket,即ClientSocket與ServerSocket。在剛啟動客戶端程序時,客戶端的ClientSocket會與服務(wù)器端的ServerSocket相連接,此時用戶要完成的任務(wù)是注冊新用戶或者是登錄系統(tǒng),一旦注冊成功,服務(wù)器端會返回一個新的用戶ID,并且服務(wù)器會將新用戶信息添加到數(shù)據(jù)庫??蛻舳说玫絀D后即可有權(quán)限進(jìn)行登錄操作,用戶登錄成功后,服務(wù)器就會將所有在線的用戶信息發(fā)送到客戶端。然后,服務(wù)器會將該用戶的信息發(fā)送給其他的在線用戶,此時需要考慮一種極端的情況就是所有用戶的ClientSocket都與服務(wù)器端的相連接,那么服務(wù)器端就會通過ServerSocket將新登錄的用戶信息發(fā)送給其他在線的所有用戶;否則,服務(wù)器端就會通過ClientSocket發(fā)送。

客戶端將接收到的所有的用戶信息存儲起來,并在客戶端程序的界面上顯示出來相關(guān)信息,雙擊任一在線用戶,即刻會彈出與之交流的對話框。也就是主叫客戶端的ClientSocket與被叫客戶端的ServerSocket相連接成功,兩者之間就可以進(jìn)行即時通信交流。

當(dāng)客戶端退出時,客戶端的ClientSocket會重新與服務(wù)器端的ServerSocket相連接,然后向服務(wù)器發(fā)送退出消息,服務(wù)器接收到退出消息時會利用服務(wù)器端的ClientSocket與每個服務(wù)端的其他在線用戶的ServerSocket相連接,然后向他們發(fā)出該用戶退出的消息,其他在線用戶接收到退出消息后會處理這一消息,也即是將該用戶的信息從存儲數(shù)據(jù)中刪除。

3 客戶端軟件界面設(shè)計

3.1 客戶端界面設(shè)計

此通訊軟件的登錄窗口與一般使用的騰訊QQ、飛信等界面較為相似,最上端為“用戶登錄”字樣和圖片,然后是賬號和密碼輸入框,正確輸入帳號和密碼,點擊登錄按鈕即可登錄;初次使用需點擊“帳號申請”并按要求填寫相關(guān)的信息申請一個新的帳號。在登錄的同時還可選擇“記住密碼”和“自動登錄”選項,那樣在登錄以后系統(tǒng)就會把這些信息寫進(jìn)系統(tǒng)的配置文件中,下次重新登錄時就會自動登錄或者是不用輸入帳號和密碼。當(dāng)點擊界面上的“設(shè)置服務(wù)器”選項時,可以設(shè)置連接指定的服務(wù)器和端口。客戶端登錄界面如圖4所示。

3.2 注冊界面設(shè)計

申請賬戶窗口為注冊界面,初次使用的客戶在這里設(shè)置個人登陸賬戶的昵稱和個人登陸密碼,選擇用戶性別,點擊“提交”按鈕成功后,就完成了注冊的操作。注冊成功后,登錄窗口的帳號內(nèi)容就是注冊時返回的用戶ID,密碼就是注冊該ID時輸入的密碼。

3.3 通信界面設(shè)計

用戶登錄成功以后,會顯示自己的用戶名、用戶ID、在線狀態(tài),以及好友列表。好友列表里會顯示所有在線用戶的姓名,欲與之進(jìn)行通信,雙擊即會彈出交談窗口。在通信窗口內(nèi)輸入你要發(fā)送的信息就可以一點擊“發(fā)送”按鈕進(jìn)行發(fā)送信息進(jìn)行即時通信,如果你要加入魔法表情,點擊選擇展開窗口內(nèi)不同表情按鈕即可,對方在收到消息前會顯示魔法表情。該窗體顯示接收到的消息,點擊“回復(fù)”按鈕,會顯示回復(fù)信息窗口。

除了以上一些客戶端的主要窗口外,還有一些簡單界面設(shè)置窗口,可以選擇設(shè)置系統(tǒng)是否要開機自動運行、是否取消自動登錄以及調(diào)節(jié)窗口的透明度等等。

4 客戶端SOCKET程序設(shè)計

客戶端是實現(xiàn)P2P通信的載體,客戶端之間的通信就是靠主叫端ClientSocket與被叫端的ServerSocket相連接實現(xiàn)的,同一個客戶端的ClientSocket和ServerSocket的作用也會不同??蛻舳说腃lientSocket主要負(fù)責(zé)系統(tǒng)啟動時的注冊、登錄,還有負(fù)責(zé)主動與其他客戶端交流以及退出系統(tǒng)的作用;而客戶端的ServerSocket的作用則是負(fù)責(zé)接收服務(wù)器發(fā)送而來的其他在線用戶信息和其他客戶端的主叫信息;所以一個客戶端的ClientSocket和ServerSocket的處理函數(shù)也會不同。在進(jìn)行程序設(shè)計時,ClientSocket的消息處理函數(shù)與ServerSocket的消息處理函數(shù)會有一些相同的地方,這些相同的地方就是用于用戶之間通信交流的。

5 總結(jié)

本系統(tǒng)是基于P2P技術(shù)設(shè)計出一款弱化服務(wù)器的即時通信系統(tǒng)。傳統(tǒng)的C/S通信模式對服務(wù)器的依賴較強,一旦服務(wù)器遭受了攻擊而癱瘓,導(dǎo)致整個系統(tǒng)受到嚴(yán)重影響,即使系統(tǒng)有多個服務(wù)器工作,那么此時其他服務(wù)器的負(fù)載也會相應(yīng)增加;且隨著用戶的大量增加,系統(tǒng)的服務(wù)器的數(shù)量也會增加,從而大大增加了整個系統(tǒng)運行成本[4]。該設(shè)計實現(xiàn)了一些簡單的P2P的底層實現(xiàn)機制和即時通信系統(tǒng)的基本功能,弱化中心服務(wù)器承載的作用,使用戶之間的實現(xiàn)直接通信而不需要服務(wù)器的中轉(zhuǎn),從而使服務(wù)器的承載量大大減少,只是保證用戶列表的正常有序維護(hù)。不僅對于整個系統(tǒng)的服務(wù)器數(shù)量需求大大減少,降低了成本,而且整個網(wǎng)絡(luò)的安全穩(wěn)定性大大提高了。

參考文獻(xiàn):

[1] 雷蕾.P2P環(huán)境下即時通信軟件的設(shè)計[J].徐州工程學(xué)院學(xué)報:自然科學(xué)版, 2010( 2) .

[2] 李振汕.基于P2P的即時通信系統(tǒng)的設(shè)計[J].計算機與現(xiàn)代化,2011(7).

[3] 李京文,高燕,張在騰.論P2P技術(shù)的研究現(xiàn)狀[J].電腦知識與技術(shù):學(xué)術(shù)交流,2007(9).

[4] 張春紅,裘曉峰.P2P 技術(shù)全面解析[M].北京:人民郵電出版社,2010: 191-197.

猜你喜歡
通信系統(tǒng)
對寧夏高速公路干線網(wǎng)絡(luò)維護(hù)現(xiàn)狀及未來監(jiān)測方式的探討
失效網(wǎng)絡(luò)中節(jié)點可通信性能評估方法研究
基于電力線信道分析的調(diào)制解調(diào)方式選擇
淺析計算機網(wǎng)絡(luò)與通信系統(tǒng)
商情(2016年40期)2016-11-28 11:24:37
基于html5及android平臺的幼兒接送系統(tǒng)
城市燃?xì)釹CADA系統(tǒng)的分析和設(shè)計
普定县| 瓦房店市| 长垣县| 莒南县| 常宁市| 新乡市| 印江| 资阳市| 江源县| 同德县| 兰考县| 景洪市| 永昌县| 屏边| 乡宁县| 鹤山市| 合山市| 东兰县| 青铜峡市| 固安县| 翁牛特旗| 博兴县| 梅河口市| 平山县| 赫章县| 虹口区| 罗平县| 武夷山市| 四平市| 民乐县| 安岳县| 尚义县| 汝阳县| 蒲城县| 周宁县| 临高县| 黔西| 闻喜县| 三明市| 铁力市| 交口县|