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