sokiiya 发表于 2008-9-2 17:47:14

弱问个有关网络监控的通用问题

关于监控一个进程对外的连接,如果监控程序和被监控进程分离,那么监控程序是不是只能通过系统命令netstat监控到连接端口、对方地址等等信息。
如果要想监控每一条连接传输速度,是不是就需要把监控程序写到被监控进程里面,比如用ace的qos那样把传输句柄注册到reactor,在handle_qos中读取传输速度了?:$

winston 发表于 2008-9-2 21:57:10

没明白你想做的事情。。。

_coco 发表于 2008-9-3 09:22:43

实现类似防火墙的功能? 监视进程网络连接流量? 如果是这个,不应该从ACE着手,应该从系统 API着手,或者驱动。

sokiiya 发表于 2008-9-3 09:38:48

想做的就是监控一个我们的那个程序中的每一条连接的速度,就比如平时下载东西,有提示速率、完成百分比这样的情况。
防火墙这样的级别倒是不用。
我想,是不是只有从已经使用的reactor框架中多注册一个QOS_MASK才可以监控qos(ACE_Flow_Spec)。
用netstat能看到我的程序的所有对外的连接,但是看不到传输速度、完成百分比。这样,做监控程序就一定要写入做好的reactor连接管理了?

[ 本帖最后由 sokiiya 于 2008-9-3 09:39 编辑 ]

_coco 发表于 2008-9-3 14:09:42

netstat命令是看当前网络的连接情况,当然不会显示网络流量了。要知道流量,只有程序本身实现,用你说的在Reactor中注册QOS_MASK。外部程序需要知道某个进程A的网络流量的话,只有通过网络驱动了,或者通过PCAP抓报文(先获得A进程的相关端口,然后设置规则抓取报文)。

sokiiya 发表于 2008-9-3 15:00:47

恩问的就是这个。
谢谢。
另外,多说句,怎么感觉只有抓报文,对udp的监控,有没有外部捕获tcp的。。。?

_coco 发表于 2008-9-3 17:04:59

外部捕获tcp的...是什么意思?

sokiiya 发表于 2008-9-3 18:47:55

就是抓tcp的传输流。。。答案是肯定的,呵呵。
不过感觉ace的qos对ACE_SOCK_Stream不怎么好使。我把原来用好的reactor框架里面的每一条连接(ACE_SOCK_Stream)的QOS_MASK都注册reactor,可惜handle_qos没有反应,而handle_input照常使用。估计handle_input的时候才有qos事件,所以又试着把那些连接的qos都单注册到一个新的reactor,这时,qos没响应,handle_input也什么事件也不响应了。

coffee 发表于 2009-2-25 17:30:49

QoS我也想用下,跟你的类似的情况,呵呵

不知道你进展如何,我还在研究。。。:lol
页: [1]
查看完整版本: 弱问个有关网络监控的通用问题