一種即時通信監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
圖5 P2P消息重組方法
3.3、數(shù)據(jù)存儲
在協(xié)議數(shù)據(jù)重組之后,對重組的數(shù)據(jù)進行分析及數(shù)據(jù)提取。分析主要針對MSNSLP消息,MSNSLP消息負責會話的建立和結(jié)束。對MSNSLP 的分析除取得傳輸?shù)念愋屯?,最重要的是提取文件名,以備存儲時使用。顯示圖片和自定義表情的文件名封裝在各自的MSNObi對象中,而傳輸文件的文件名以 Unicode格式存儲在INVITE方法的Context中類CFileName用于存儲文件名,其結(jié)構(gòu)如下:
//name of file transfered in asession
class CFileName{
public:CHIcNanle();
~CFileNameTram();
public:
U_int m_nSessioID;//Session ID
char*m_pszFileName;//Name of current file
};
其中數(shù)據(jù)成員m_nSessionID用于確定文件名和文件數(shù)據(jù)的對應(yīng)關(guān)系。在數(shù)據(jù)提取完畢后根據(jù)CHle.Name和CDataTrans的m_nSessionID大小得到對應(yīng)關(guān)系,進行數(shù)據(jù)存儲。
3.4、性能方面的考慮
在數(shù)據(jù)流量比較大的時候,數(shù)據(jù)處理會導(dǎo)致大量的內(nèi)存占用,從而降低系統(tǒng)的效率。對于協(xié)議數(shù)據(jù)重組模塊,尤其是傳輸文件的提取,系統(tǒng)使用定時器機制和定量存儲機制進行控制。
當接收到第1個分片的時候?qū)ο鄳?yīng)的CDataTrans對象設(shè)置定時器。如果在定時器超時的時候仍沒有接收到新的分片,就認為此次傳輸失敗,將 之前緩存的數(shù)據(jù)清除,釋放所占用的空間。若有新的分片到達,還原定時器的超時時間。系統(tǒng)預(yù)設(shè)的定時器為10分鐘,管理員可以重設(shè)超時時間。
對于大小超過1MB的文件,系統(tǒng)采用定量存儲。當接收的數(shù)據(jù)大小達到一定量,便進行一次存儲操作。當然。頻繁的存儲操作會增加磁盤讀寫的開銷。系統(tǒng)預(yù)設(shè)大小為1MB,管理員同樣可以更改大小,以減少磁盤讀寫的開銷。
4、系統(tǒng)測試
系統(tǒng)測試主要是對系統(tǒng)進行性能測試。目標是測試系統(tǒng)在給定工作環(huán)境下的性能,檢查系統(tǒng)對指定數(shù)據(jù)的監(jiān)聽提取能力。監(jiān)控服務(wù)器主機一臺,客戶機 (目標主機)若干,客戶機通過交換機連接在一個局域網(wǎng)中,并與Internet互聯(lián)。對上述測試環(huán)境進行一個工作周(周一到周五)測試。每個工作日測試時 間為12小時(早8點到晚8點),每個工作日客戶機數(shù)量維持在124--168之間,測試結(jié)果如表1所示。
表1測試結(jié)果
從上表可以看出顯示圖片和自定義表情的提取率均在96%以上。數(shù)據(jù)丟失的原因主要是由于丟包造成的,由于系統(tǒng)采用過濾策略進行數(shù)據(jù)包捕獲,在網(wǎng) 絡(luò)流量比較大的時候,可能會導(dǎo)致一定的丟包率,而顯示圖片和自定義表情文件比較都比較小,若干數(shù)據(jù)包的丟失對結(jié)果會有一定影響。文件傳輸?shù)奶崛÷手挥?61.7%,原因主要有3個方面:一是丟包率;二是協(xié)議分析中對NAT穿越的判斷結(jié)果;第三點,也是最重要的一點,當傳輸?shù)碾p方位于同一局域網(wǎng)時,實際數(shù) 據(jù)傳輸僅在局域網(wǎng)中進行,而不會通過服務(wù)器中轉(zhuǎn),這樣系統(tǒng)僅能監(jiān)聽到傳輸邀請,而無法監(jiān)聽到實際傳輸?shù)臄?shù)據(jù)。測試結(jié)果沒有對文字信息進行評估,因為文字信 息的傳輸沒有握手過程,難以評估。系統(tǒng)的設(shè)計實現(xiàn)能夠保證在丟包率較小的情況下,使文字信息的提取率接近100%。
5、結(jié)束語
針對中小規(guī)模企業(yè)網(wǎng)對即時通信安全的實際需求,研究、設(shè)計并實現(xiàn)了MSN協(xié)議的監(jiān)控分析系統(tǒng)。首先分析了系統(tǒng)的功能和性能需求,并給出了系統(tǒng)的 體系結(jié)構(gòu)、總體實現(xiàn)模型。接著詳細討論了數(shù)據(jù)采集與存儲策略,數(shù)據(jù)分析與處理的過程,重點研究了MSNP協(xié)議的分析。最后,對系統(tǒng)性能進行測試,并對測試 結(jié)果進行了分析。
評論