新闻中心

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所示。



关键词:数据

评论


相关推荐

技术专区

关闭