OnebyOnePlease
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2010-03-19
  • 粉丝0
  • 关注0
  • 积分99分
  • 威望31点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:2522回复:19

如何控制流量?(100分奉上)

楼主#
更多 发布于:2004-06-09 17:18
前面有个帖子讨论过,但没有结论.
在win200 ddk下
我有两种方法:
一种是用缓冲区加定时器的方法,定时器定为10ms
这种方法是定时器频繁中断,机器根本动不了.
第二中方法是在ptsendpcomplete函数中加计算器,如果没有到一定数目就不调用NdisMSendComplete.
这种方法发现数据传不出去?为什么,我头大?
请版主及各位大侠帮忙,100分奉 上.

最新喜欢:

hbnhbnhbnhbnhbn...
OnebyOnePlease
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2010-03-19
  • 粉丝0
  • 关注0
  • 积分99分
  • 威望31点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-11 09:35
真的是很需要各位的帮助,给点希望好不好!
我现在不知如何入手
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-11 12:23
你要控制“流量”,还是“流速”?
看你的意思是要控制流速了。这有点难。因为数据被NDISSEND以后的即时速度就是网卡的最大速度了,此时根本就控制不住了。要在SEND以前控制,除非你一个一个字节的发送,方可达到基本匀速。
如果是流量,那就好办了。累加到一定字节数,阻止发送接受就好了。
longriver2003
驱动小牛
驱动小牛
  • 注册日期2003-09-14
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-18 19:56
请教asmsys老大:

流量控制做在miniport上好还是IM上好?能否具体讲讲。谢谢
给分才有动力!所以我坚决给分!
OnebyOnePlease
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2010-03-19
  • 粉丝0
  • 关注0
  • 积分99分
  • 威望31点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-20 13:23
我现在已经能实现流量的控制,是在IM层做的,
用了定时器加缓冲,但发现是把MPSEND的包先存在一个缓冲区
中,然后返回pending ,等定时器来发缓冲区的包,
但发现如果pending 到一定的数量后,重协议层发的包将发生阻涉,
MPSEND收到的包很少,是不是直到收到MPSENDCOMPLETE后协议层才再次发送包,还有协议层的缓冲区有多大呢?
longriver2003
驱动小牛
驱动小牛
  • 注册日期2003-09-14
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-20 22:10
1.应该是NDISSENDCOMPLETE吧。
2.协议层缓冲区多大?1664?是个变量?
3.定时器加缓冲不知你做的效果如何?可否有更好的办法?
给分才有动力!所以我坚决给分!
OnebyOnePlease
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2010-03-19
  • 粉丝0
  • 关注0
  • 积分99分
  • 威望31点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-21 09:13
感觉不行啊,流量大了就控制不住
longriver2003
驱动小牛
驱动小牛
  • 注册日期2003-09-14
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-06-21 21:20
期待新办法
给分才有动力!所以我坚决给分!
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-06-22 09:32
你想做流量控制还是带宽控制?需要做到这么细吗?你想做网关?
longriver2003
驱动小牛
驱动小牛
  • 注册日期2003-09-14
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-06-22 09:44
你想做流量控制还是带宽控制?需要做到这么细吗?你想做网关?

做带宽控制该怎么做比较好?
给分才有动力!所以我坚决给分!
bingjie
驱动小牛
驱动小牛
  • 注册日期2001-08-15
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-06-23 11:01
我现在已经能实现流量的控制,是在IM层做的,
用了定时器加缓冲,但发现是把MPSEND的包先存在一个缓冲区
中,然后返回pending ,等定时器来发缓冲区的包,
但发现如果pending 到一定的数量后,重协议层发的包将发生阻涉,
MPSEND收到的包很少,是不是直到收到MPSENDCOMPLETE后协议层才再次发送包,还有协议层的缓冲区有多大呢?
 

如果缓冲能够保存数据,则复制Packet,然后调用NdisMSendComplet,否则再Pending该数据包。
OnebyOnePlease
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2010-03-19
  • 粉丝0
  • 关注0
  • 积分99分
  • 威望31点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-06-23 12:43
我现在没有复制包,我只是保持包的指针,然后返回pending。
这样会不会有问题?
asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-06-23 13:10
如果NDIS_STATUS_RESOURCE时必须COPY。
OnebyOnePlease
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2010-03-19
  • 粉丝0
  • 关注0
  • 积分99分
  • 威望31点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-06-24 17:55
不爽,今天又让老大k.
我用了各种方法,丢包,pending包,
虽然都有一定的控制,但就是不稳定.
我下了个老外的流量控制软件,设4M就一点不多.牛.
国产的就没看见有.
OnebyOnePlease
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2010-03-19
  • 粉丝0
  • 关注0
  • 积分99分
  • 威望31点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-06-24 17:57
它们是在MI做流量控制吗?楼上的各位老大可有高建
longriver2003
驱动小牛
驱动小牛
  • 注册日期2003-09-14
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-06-27 18:28
它们是在MI做流量控制吗?


请问他们是指?能说说你下的那个软件吗?我想看看。
给分才有动力!所以我坚决给分!
OnebyOnePlease
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2010-03-19
  • 粉丝0
  • 关注0
  • 积分99分
  • 威望31点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-07-01 18:06
bandcontrol
longriver2003
驱动小牛
驱动小牛
  • 注册日期2003-09-14
  • 最后登录2005-03-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-07-01 22:06
我的MSN:longriver2004@hotmail.com 请联系我。谢谢!
给分才有动力!所以我坚决给分!
robman
驱动牛犊
驱动牛犊
  • 注册日期2004-07-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-07-21 16:03
[quote]我现在已经能实现流量的控制,是在IM层做的,
用了定时器加缓冲,但发现是把MPSEND的包先存在一个缓冲区
中,然后返回pending ,等定时器来发缓冲区的包,
但发现如果pending 到一定的数量后,重协议层发的包将发生阻涉,
MPSEND收到的包很少,是不是直到收到MPSENDCOMPLETE后协议层才再次发送包,还有协议层的缓冲区有多大呢?
 

如果缓冲能够保存数据,则复制Packet,然后调用NdisMSendComplet,否则再Pending该数据包。
 [/quote]
这个方法不可以吗,我也想做一个流量控制,想用这种方法,请高手指点一个新得方法
robman
驱动牛犊
驱动牛犊
  • 注册日期2004-07-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-07-21 16:07
在driverstudio中有一个例子,是利用IM进行延迟转发的,可不可以在这个例子的基础上利用缓冲和定时器来进行转发,控制带宽流量
游客

返回顶部