<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 一種即時(shí)通信監控系統的設計與實(shí)現

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

作者: 時(shí)間:2010-12-28 來(lái)源:網(wǎng)絡(luò ) 收藏

2、采集及存儲

  系統采用基于網(wǎng)絡(luò )嗅探技術(shù)的采集方法,以WinPcap 4.0.1作為開(kāi)發(fā)工具,Windows平臺下使用WinPcap從網(wǎng)絡(luò )適配器嗅探十分方便,圖3是使用WinPeap捕獲網(wǎng)絡(luò )數據包的基本流程。

  使用WinPcap開(kāi)發(fā)應用程序除可以捕獲數據包外,最大的優(yōu)點(diǎn)在于WinPcap可以對數據包進(jìn)行過(guò)濾。WinPeap從網(wǎng)絡(luò )適配器上嗅探到 的是最原始的數據幀,這包括了所有流經(jīng)的數據。如果不對數據包進(jìn)行相應的過(guò)濾,將會(huì )捕獲到許多無(wú)關(guān)的數據,這會(huì )增加系統的負擔,使系統工作效率降低。

圖3 WinPcap數據采集流程

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

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

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

3、數據分析與處理

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

3.1、命令解析

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

圖4 MSNP協(xié)議分析模型

  3.2、協(xié)議數據重組

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



關(guān)鍵詞: 數據

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>