企業(yè)即時通--EIM_第1頁
企業(yè)即時通--EIM_第2頁
企業(yè)即時通--EIM_第3頁
企業(yè)即時通--EIM_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、企業(yè)即時通EIM摘 要:主要功能是實現(xiàn)pc客戶端之間,pc客戶端和手機(jī),小靈通之間的通信關(guān)鍵詞:0 引言:目前即時通協(xié)議有三種方式:點對點方式,服務(wù)器中轉(zhuǎn)方式,融合前兩種方式。由于已有的網(wǎng)絡(luò)架構(gòu)(比如收發(fā)和處理短信的網(wǎng)關(guān))采用TCP連接方式,所以我們采用的是服務(wù)器中轉(zhuǎn)方式。由于socket連接方式有UDP/和TCP兩種方式,因此,為了保證即時通的可靠性和安全性,我們使用TCP協(xié)議作為主要連接方式。當(dāng)然在未來客戶量不斷增加的情況下,我們也可以增加UDP協(xié)議來整合網(wǎng)絡(luò)連接方式以便于提高系統(tǒng)的效率和負(fù)載平衡。不同的網(wǎng)絡(luò)存在,為了使各種網(wǎng)絡(luò)中的客戶能連接服務(wù)器(教育網(wǎng)),因此需要用到代理技術(shù)(就目前而

2、言有sock4,sock5,http等)。為了保證通訊的安全性,對所發(fā)送的數(shù)據(jù)使用MD5加密技術(shù)。1 系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖:2 EIM客戶端和服務(wù)器端之間的消息流動示意圖:EIM ClientEIM Server GroupLoginLogin_ReplySubmit(1)Submit(2)Submit(1)_ReplySubmit(3)Submit(2)_ReplySubmit(3)_ReplyDeliver(1)Deliver(2)Deliver(2)_ReplyDeliver(1)_Reply 圖2 典型的EIM客戶端和服務(wù)器之間的消息流動示例3 通訊協(xié)議設(shè)計:由于采用第三種通訊方式,所以

3、將協(xié)議分為兩類:客戶端和服務(wù)器之間的協(xié)議及客戶端之間的協(xié)議。即時通的消息一般分為三類:文本消息(文字),二進(jìn)制數(shù)據(jù)流(音頻和視頻)和文件傳輸。為了消息傳輸?shù)姆奖?,將消息包分為消息頭和消息體,消息頭用于承載消息命令,而消息體用于承載數(shù)據(jù)。用于詢問客戶端狀態(tài)的心跳包(HeartBeat)是不需要消息體的,僅僅消息頭即可。為了便于說明先結(jié)構(gòu)體來表示。如,TCP消息頭可以使用如下的結(jié)構(gòu)體:TCP消息頭格式struct TCP_PACKET_HDRshort ver;/版本號short cmd_id/消息命令idshort cmd_status/命令狀態(tài)short seq_id/包的順序號id,用于識別

4、對方應(yīng)答;消息體可能包括多個數(shù)據(jù),特別是像一個注冊客戶的屬性信息就會有多種數(shù)據(jù),如nick,time,age等。因此,消息體需要使用一個列表,列表的每一個元素承載一種類型數(shù)據(jù),這樣就能整合多個數(shù)據(jù)。各種數(shù)據(jù)整合好之后,計算出整個包得長度(消息頭+消息體)就可以統(tǒng)一寫入緩沖區(qū),再sendto,這樣數(shù)據(jù)就流向?qū)Ψ?。實現(xiàn)例子:以上所述實為“協(xié)議流”中的封包過程,為了防止網(wǎng)絡(luò)封包異常,必須保證封包格式和封包內(nèi)容正確。在控制封包過程中的異常后,就要直面收包拼包異常了。就TCP而言,TCP在發(fā)送包時會根據(jù)網(wǎng)絡(luò)情況和neagle算法,或者將應(yīng)用層傳過來的包(1個包)單獨地發(fā)送出去,或者分成幾次發(fā)送出去(1個

5、包),或者幾個包一起發(fā)送出去,由于TCP采用這種發(fā)包策略,因此我們需要收包端采取相應(yīng)收包,拼包和解包方法。在應(yīng)用層定義包格式時,一般除了對數(shù)據(jù)格式進(jìn)行定義之外,還要定義包的開始和結(jié)束標(biāo)志,通常情況下有兩種方式:(1),以特殊的字符串來標(biāo)志包的開始和結(jié)束,如FF00表示開始,00FF表示結(jié)束。(2),直接以包的長度來控制包在緩沖區(qū)位置。如,可以用前四個字節(jié)表示包的總長度(DWORD),當(dāng)然用一個兩個或者三個字節(jié)也可以的。用四個字節(jié)是為了說明表示,更何況現(xiàn)在的機(jī)器一般都是32位的,這樣更是為了使字節(jié)對齊。所以收包拼包的設(shè)計如下:偽代碼;4 EIM的安全設(shè)計作為企業(yè)的即時通,安全就顯得非常重要。EI

6、M的安全分為客戶端,消息傳遞層,服務(wù)器三部分:(1).客戶端安全。由于在客戶端需要進(jìn)行輸入和保存輸入或者服務(wù)器傳回的數(shù)據(jù),因此如何使得數(shù)據(jù)不被盜用或者丟失就成為關(guān)鍵。比如監(jiān)視鍵盤的HOOK技術(shù)就很容易記錄下所輸入的數(shù)據(jù),但是軟鍵盤可以解決此問題。還有其他的木馬技術(shù)可以得到密碼,這就跟本地的計算機(jī)安全有關(guān)系了。另外密碼還要保存本地,因此必須使用加密技術(shù),EIM使用MD5加密技術(shù),并把密文保存到一個二進(jìn)制文件。用戶則沒有使用加密技術(shù)。除了密碼需要加密之外還有收發(fā)消息和好友列表等重要數(shù)據(jù)。EIM使用Berkley DB來保存收發(fā)到的消息,當(dāng)然先對消息進(jìn)行加密。其他的如好友列表,群組信息等也通過加密后

7、保存到Berkley DB中。(2).消息傳遞層。這一部分重要考慮發(fā)送數(shù)據(jù)的安全,如被截獲發(fā)送的包里的數(shù)據(jù)應(yīng)是加密的,也就是說加密的數(shù)據(jù)難以被破解的。因此,這里的數(shù)據(jù)采用MD5和DES加密體系。同時由于包的格式是已知的,所以可以做一個過濾網(wǎng)關(guān),對于一些有害的信息進(jìn)行過濾,比如對于一些有害網(wǎng)址,特別對于像QQ尾巴那樣病毒,就可以防止中毒的客戶端繼續(xù)傳染給其他的客戶端。(3).服務(wù)器安全。由于所有客戶端的消息都要經(jīng)過服務(wù)器中轉(zhuǎn),所以服務(wù)器所承擔(dān)的壓力非常大,同樣,服務(wù)器也有收包,解包,解密,訪問數(shù)據(jù)庫,拼包,發(fā)包等行為。因此需要類似于過濾網(wǎng)關(guān)對包進(jìn)行過濾,對一些敏感的,帶攻擊性或者帶病毒的包做出相

8、應(yīng)的處理,如拋棄數(shù)據(jù)包,斷開連接,在數(shù)據(jù)庫里紀(jì)錄此包的行為。同客戶端一樣,服務(wù)器發(fā)包時也對包進(jìn)行加密處理,所采用的也是MD5和DES體系。5 客戶端和服務(wù)器設(shè)計前面定義了協(xié)議架構(gòu)和安全框架,接下來便是客戶端和服務(wù)器的具體實現(xiàn)了,他們一般的實現(xiàn)有幾個方面:客戶端皮膚系統(tǒng),各種組件(如:收發(fā)文件組件,音頻組件,還有視頻組件),proxy系統(tǒng),數(shù)據(jù)庫設(shè)計,服務(wù)器負(fù)載平衡,數(shù)據(jù)庫訪問策略等。解析服務(wù)器域名輸入ID和密碼連接服務(wù)器發(fā)送ID和加密的密碼重新連接5次退出ID或者密碼不正確,重新輸入成功登陸,返回好友,系統(tǒng)信息和其他消息系統(tǒng)開始運行退出注冊申請ID登陸Exit注冊正確成功成功失敗成功失敗(1)

9、.客戶端設(shè)計 圖3 客戶端的流程圖客戶端的主要窗體有:登陸窗體,注冊窗體,主界面窗體,會話窗體(包括發(fā)送文件,音頻和視頻窗體),消息管理器,個人信息窗體,系統(tǒng)設(shè)置窗體等。最后皮膚系統(tǒng)是使用windowsblinds來設(shè)計皮膚和利用HOOK技術(shù)進(jìn)行換膚。(2).服務(wù)器設(shè)計 由于EIM是采用消息中轉(zhuǎn)方式,所以服務(wù)器需要對客戶端的連接采取措施,如保存到列表中,收到包時就需要在列表中查找,同時有可能多個客戶端,因此需要線程來處理。另外,有時候需要訪問數(shù)據(jù)庫,還要管理連接,因此還需要增加多個線程。隨著用戶增加,一個服務(wù)器遠(yuǎn)遠(yuǎn)不能滿足需求。因此,需要改善負(fù)載平衡,EIM采取的方案是用一臺服務(wù)器用負(fù)責(zé)其他服務(wù)器分配和記錄登陸的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論