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