接着上一篇写, 上一篇写到收集到了IP包信息,利用这些信息,就可以基本监控一些基本流量信息了。
如上图所示,可以基本监视到上行下行流量,TCP以及UDP流量。下方区域显示了对应通信IP的数据包累计总长度。
需要注意的地方是,raw socket采集到的数据包,包含了很多不属于自己的UDP包,需要把这些包丢弃再进行流量统计。
于是我写了个简单的实现统计流量信息的类,代码如下:
在NetProvider::OnReceiveData中,调用AnalyzeMgr::PushPackage把数据包加入分析队列,AnalyzeMgr中每过一秒进行一次流量分析,把数据显示到界面上。
到此为止,基本实现了流量的监视,和通信IP的监视。但是还没有达到目标,我需要知道哪个进程在进行网络通讯,其使用的端口是啥,流量如何等等,这几天太忙,这些内容下次继续了。