新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 一種即時通信監控系統的設計與實現

        一種即時通信監控系統的設計與實現

        作者: 時間:2010-12-28 來源:網絡 收藏

        2、采集及存儲

          系統采用基于網絡嗅探技術的采集方法,以WinPcap 4.0.1作為開發工具,Windows平臺下使用WinPcap從網絡適配器嗅探十分方便,圖3是使用WinPeap捕獲網絡數據包的基本流程。

          使用WinPcap開發應用程序除可以捕獲數據包外,最大的優點在于WinPcap可以對數據包進行過濾。WinPeap從網絡適配器上嗅探到 的是最原始的數據幀,這包括了所有流經的數據。如果不對數據包進行相應的過濾,將會捕獲到許多無關的數據,這會增加系統的負擔,使系統工作效率降低。

        圖3 WinPcap數據采集流程

          在數據采集之后,采用什么樣的存儲策略來存儲數據,以最大限度地保證采集到的網絡數據包(Pack.et)不丟失,是系統設計中必須面對的一個 重要問題。網絡丟包的原因可能有很多,包括內存緩沖技術、磁盤I/O能力、包過濾及處理技術、數據流量大小、網絡接口性能、CPU處理能力等諸多方面。

          網絡丟包的指標一般采用丟包率(Rate of PacketLoss,RPL)。計算公式為:L=((發送的數據包數一接收到的數據包數)/發送的數據包數)×100%。

          眾所周知。頻繁的磁盤I/O顯然會影響到系統的性能和效率,這在大的數據流量下尤為明顯。為了避免頻繁的磁盤I/O,需要在數據存儲時引入內存 緩沖處理技術。在基于WinPcap的網絡數據采集中,系統使用了多級內存緩沖,內核緩沖器和用戶緩沖器的大小分別設置為6MB和1MB,并設置內核緩沖 器和用戶緩沖器之間一次傳送的最小數據塊的大小為512kB。

        3、數據分析與處理

          數據分析與處理分為四部分。首先是Ethernet數據幀處理,主要完成鏈路層數據驗證、拆包,并將數據提交給IP層進行處理。IP數據報的處 理主要完成IP層數據驗證、拆包,并將數據提交給傳輸層進行處理。TCP分組的處理主要完成TCP層數據的驗證、拆分及TCP重復和無序分組的處理,完成 TCP會話重建,并將重組后的應用層數據提交至協議分析層處理。協議分析主要完成應用層數據和最終用戶數據的處理。對應用層數據主要進行命令解析和協議數 據重組,對最終用戶數據的處理包括聊天信息的提取、顯示圖片和自定義表情的提取、文件傳輸的提取等。MSNP協議分析模型如圖4所示。

        3.1、命令解析

          命令解析的本質就是分析字符串的含義,它類似計算機高級語言編譯器中詞法分析的功能。MSNP協議涉及多達幾十個命令,服務器和客戶端使用的命 令也不相同。系統對涉及信息傳輸的命令進行了重點解析,主要包括握手命令和數據傳輸命令。對于客戶端命令。主要解析“ANS”和“MSG”。服務器端主要 解析“IRO”、“USR”、“JOI”和“MSG”。

        圖4 MSNP協議分析模型

          3.2、協議數據重組

          協議數據重組主要針對P2P消息,當二進制頭和二進制尾之間的消息內容大小超過1202字節時。消息會被分片傳輸。通常被拆分的P2P消息包括 MSNSLP消息和實際傳輸的各種數據(如文件、表情)。二進制頭中共有9個字段,其中“Data Offset”、“Total Data Size”和“Message Length”3個字段和消息分片密切相關。這3個字段分別表示“總數據大小”、“數據偏移量”和“本條消息長度”。由于TCP處理模塊已對重復和無序的 數據流進行了處理,協議分析模塊的輸入是順序的數據流。按順序將數據取出即可。如圖5所示。



        關鍵詞: 數據

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 常熟市| 夏河县| 吉林市| 汝南县| 黄梅县| 扎赉特旗| 麻阳| 固阳县| 保康县| 罗甸县| 裕民县| 兴隆县| 遂川县| 武冈市| 崇信县| 宁强县| 兴文县| 随州市| 长兴县| 土默特右旗| 宜君县| 张家界市| 平潭县| 沧源| 都江堰市| 钟祥市| 侯马市| 江安县| 延吉市| 延边| 沙洋县| 耿马| 开化县| 云浮市| 仙居县| 夏津县| 望谟县| 巩留县| 台中县| 瑞安市| 台前县|