免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1330 | 回复: 4

数据包计数问题(在线等) [复制链接]

论坛徽章:
0
发表于 2006-05-15 12:52 |显示全部楼层
1 各位高手,我想对某个以太网网卡发送数据的数据包进行计数。譬如说每秒钟网卡发送多少个数据包,失败了多少?该怎么办? 有谁知道这个原理,内核的网络堆栈里面应该有这样的代码,但是我不知道是怎么做的,怎么能够找到?

2  另外我怎么分辨是大的数据请求还是小的数据请求,譬如是请求视频的服务就挺大,有什么方法知道吗?

俺比较菜 请高手指示 在线等

[ 本帖最后由 newunixlearner 于 2006-5-15 14:10 编辑 ]

论坛徽章:
0
发表于 2006-05-15 13:07 |显示全部楼层
iptables有个-v参数可以实现数据包的计数,但是不能知道失败了多少~

论坛徽章:
0
发表于 2006-05-15 13:56 |显示全部楼层

re

原帖由 jerry017cn 于 2006-5-15 13:07 发表
iptables有个-v参数可以实现数据包的计数,但是不能知道失败了多少~



必须用iptables吗? 我的意思是在以太网卡发送数据中有没有这样的实现?
我想应该有,譬如说我们用ifconfig eth0,能够看到发送成功的数据包,fail了多少,应该有对应的计数实现,但是不知道如何找

论坛徽章:
0
发表于 2006-05-17 16:42 |显示全部楼层

re

就这样沉了? 俺不相信。。。 各位高手漏个脸 help!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2006-05-17 22:17 |显示全部楼层
自己解决吧
提示一下:
1.tcpdump是用什么方法抓包的? tcpdump可以看到源,目的端口,数据包长度, 这是应用层的办法(pcap编程)
2.这些数据网卡驱动肯定知道, 那么在内核里面用钩子函数(hook)也可以搞到, 这是内核模块的办法(最著名的钩子函数是netfilter,它有个外壳程序叫做iptable)
3.思科交换机的netflow(硬件方法)

最简单的也是最傻的方法:
cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:  966352     894    0    0    0     0          0         0   966352     894    0    0    0     0       0          0
  eth0: 1592167    1766    0    0    0     0          0         0   371755    2171    0    0    0     0       0          0
  sit0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP